From 14fb3c3b25a6f81fa7496dab08657fa0c0eb0d09 Mon Sep 17 00:00:00 2001 From: eabdullin Date: Mon, 15 Sep 2025 12:00:38 +0000 Subject: [PATCH] import CS glibc-2.34-231.el9 --- SOURCES/glibc-RHEL-101986-1.patch | 148 + SOURCES/glibc-RHEL-101986-2.patch | 264 + SOURCES/glibc-RHEL-103952.patch | 51 + SOURCES/glibc-RHEL-104852-1.patch | 106 + SOURCES/glibc-RHEL-104852-2.patch | 457 + SOURCES/glibc-RHEL-105327.patch | 234 + SOURCES/glibc-RHEL-105957.patch | 33 + SOURCES/glibc-RHEL-105965.patch | 80 + SOURCES/glibc-RHEL-106206.patch | 34 + SOURCES/glibc-RHEL-107518.patch | 39 + SOURCES/glibc-RHEL-107564.patch | 35 + SOURCES/glibc-RHEL-108220.patch | 18 + SOURCES/glibc-RHEL-108221.patch | 36 + SOURCES/glibc-RHEL-24168-1.patch | 226 + SOURCES/glibc-RHEL-24168-10.patch | 43 + SOURCES/glibc-RHEL-24168-11.patch | 25 + SOURCES/glibc-RHEL-24168-12.patch | 273 + SOURCES/glibc-RHEL-24168-13.patch | 248 + SOURCES/glibc-RHEL-24168-14.patch | 105 + SOURCES/glibc-RHEL-24168-15.patch | 876 + SOURCES/glibc-RHEL-24168-16.patch | 27 + SOURCES/glibc-RHEL-24168-17.patch | 27 + SOURCES/glibc-RHEL-24168-18.patch | 32 + SOURCES/glibc-RHEL-24168-19.patch | 51 + SOURCES/glibc-RHEL-24168-2.patch | 344 + SOURCES/glibc-RHEL-24168-20.patch | 65 + SOURCES/glibc-RHEL-24168-21.patch | 142 + SOURCES/glibc-RHEL-24168-22.patch | 26 + SOURCES/glibc-RHEL-24168-3.patch | 286 + SOURCES/glibc-RHEL-24168-4.patch | 157 + SOURCES/glibc-RHEL-24168-5.patch | 125 + SOURCES/glibc-RHEL-24168-6.patch | 85 + SOURCES/glibc-RHEL-24168-7.patch | 176 + SOURCES/glibc-RHEL-24168-8.patch | 491 + SOURCES/glibc-RHEL-24168-9.patch | 399 + SOURCES/glibc-RHEL-28119.patch | 45 + SOURCES/glibc-RHEL-44920-1.patch | 135 + SOURCES/glibc-RHEL-44920-2.patch | 168 + SOURCES/glibc-RHEL-44920-3.patch | 81 + SOURCES/glibc-RHEL-44920-4.patch | 26 + SOURCES/glibc-RHEL-44920-5.patch | 277 + SOURCES/glibc-RHEL-44920-6.patch | 23 + SOURCES/glibc-RHEL-44920-7.patch | 471 + SOURCES/glibc-RHEL-44920-8.patch | 176 + SOURCES/glibc-RHEL-46726-1.patch | 15927 +++++++++++++ SOURCES/glibc-RHEL-46726-10.patch | 451 + SOURCES/glibc-RHEL-46726-11.patch | 495 + SOURCES/glibc-RHEL-46726-12.patch | 458 + SOURCES/glibc-RHEL-46726-13.patch | 458 + SOURCES/glibc-RHEL-46726-14.patch | 499 + SOURCES/glibc-RHEL-46726-15.patch | 32483 +++++++++++++++++++++++++++ SOURCES/glibc-RHEL-46726-2.patch | 9159 ++++++++ SOURCES/glibc-RHEL-46726-3.patch | 9223 ++++++++ SOURCES/glibc-RHEL-46726-4.patch | 5032 +++++ SOURCES/glibc-RHEL-46726-5.patch | 5035 +++++ SOURCES/glibc-RHEL-46726-6.patch | 4911 ++++ SOURCES/glibc-RHEL-46726-7.patch | 5116 +++++ SOURCES/glibc-RHEL-46726-8.patch | 4984 ++++ SOURCES/glibc-RHEL-46726-9.patch | 4953 ++++ SOURCES/glibc-RHEL-46729.patch | 578 + SOURCES/glibc-RHEL-46737-1.patch | 124 + SOURCES/glibc-RHEL-46737-2.patch | 1092 + SOURCES/glibc-RHEL-46737-3.patch | 112 + SOURCES/glibc-RHEL-47403-1.patch | 562 + SOURCES/glibc-RHEL-47403-10.patch | 158 + SOURCES/glibc-RHEL-47403-11.patch | 17 + SOURCES/glibc-RHEL-47403-2.patch | 26 + SOURCES/glibc-RHEL-47403-3.patch | 32 + SOURCES/glibc-RHEL-47403-4.patch | 275 + SOURCES/glibc-RHEL-47403-5.patch | 103 + SOURCES/glibc-RHEL-47403-6.patch | 342 + SOURCES/glibc-RHEL-47403-7.patch | 272 + SOURCES/glibc-RHEL-47403-8.patch | 218 + SOURCES/glibc-RHEL-47403-9.patch | 24 + SOURCES/glibc-RHEL-48820-1.patch | 120 + SOURCES/glibc-RHEL-48820-2.patch | 52 + SOURCES/glibc-RHEL-48820-3.patch | 77 + SOURCES/glibc-RHEL-48820-4.patch | 203 + SOURCES/glibc-RHEL-48820-5.patch | 228 + SOURCES/glibc-RHEL-48820-6.patch | 28 + SOURCES/glibc-RHEL-48820-7.patch | 30 + SOURCES/glibc-RHEL-49549-1.patch | 55 + SOURCES/glibc-RHEL-49549-2.patch | 174 + SOURCES/glibc-RHEL-49549-3.patch | 30 + SOURCES/glibc-RHEL-49549-4.patch | 102 + SOURCES/glibc-RHEL-49549-5.patch | 76 + SOURCES/glibc-RHEL-49549-6.patch | 34 + SOURCES/glibc-RHEL-49549-7.patch | 131 + SOURCES/glibc-RHEL-49549-8.patch | 76 + SOURCES/glibc-RHEL-49549-9.patch | 140 + SOURCES/glibc-RHEL-50086-1.patch | 647 + SOURCES/glibc-RHEL-50086-2.patch | 42 + SOURCES/glibc-RHEL-50546-1.patch | 67 + SOURCES/glibc-RHEL-50546-2.patch | 50 + SOURCES/glibc-RHEL-50546-3.patch | 38 + SOURCES/glibc-RHEL-50546-4.patch | 38 + SOURCES/glibc-RHEL-50546-5.patch | 51 + SOURCES/glibc-RHEL-50546-6.patch | 97 + SOURCES/glibc-RHEL-53909-1.patch | 148 + SOURCES/glibc-RHEL-53909-2.patch | 20 + SOURCES/glibc-RHEL-55471-1.patch | 94 + SOURCES/glibc-RHEL-55471-10.patch | 39 + SOURCES/glibc-RHEL-55471-2.patch | 205 + SOURCES/glibc-RHEL-55471-3.patch | 166 + SOURCES/glibc-RHEL-55471-4.patch | 445 + SOURCES/glibc-RHEL-55471-5.patch | 262 + SOURCES/glibc-RHEL-55471-6.patch | 39 + SOURCES/glibc-RHEL-55471-7.patch | 37 + SOURCES/glibc-RHEL-55471-8.patch | 34 + SOURCES/glibc-RHEL-55471-9.patch | 35 + SOURCES/glibc-RHEL-56546.patch | 144 + SOURCES/glibc-RHEL-56627-1.patch | 451 + SOURCES/glibc-RHEL-56627-2.patch | 143 + SOURCES/glibc-RHEL-56627-3.patch | 73 + SOURCES/glibc-RHEL-56627-4.patch | 47 + SOURCES/glibc-RHEL-56627-5.patch | 223 + SOURCES/glibc-RHEL-56627-6.patch | 20 + SOURCES/glibc-RHEL-56627-7.patch | 21 + SOURCES/glibc-RHEL-56627-8.patch | 149 + SOURCES/glibc-RHEL-57110-1.patch | 67 + SOURCES/glibc-RHEL-57110-2.patch | 36 + SOURCES/glibc-RHEL-57110-3.patch | 47 + SOURCES/glibc-RHEL-57110-4.patch | 39 + SOURCES/glibc-RHEL-57110-5.patch | 33 + SOURCES/glibc-RHEL-57585-1.patch | 41 + SOURCES/glibc-RHEL-57585-2.patch | 203 + SOURCES/glibc-RHEL-57585-3.patch | 1897 ++ SOURCES/glibc-RHEL-57585-4.patch | 113 + SOURCES/glibc-RHEL-57585-5.patch | 31 + SOURCES/glibc-RHEL-57587.patch | 65 + SOURCES/glibc-RHEL-57671-1.patch | 23 + SOURCES/glibc-RHEL-57671-2.patch | 121 + SOURCES/glibc-RHEL-57671-3.patch | 74 + SOURCES/glibc-RHEL-59712-1.patch | 193 + SOURCES/glibc-RHEL-59712-2.patch | 26 + SOURCES/glibc-RHEL-61558-1.patch | 237 + SOURCES/glibc-RHEL-61558-2.patch | 465 + SOURCES/glibc-RHEL-61558-3.patch | 43 + SOURCES/glibc-RHEL-61558-4.patch | 45 + SOURCES/glibc-RHEL-61560.patch | 60 + SOURCES/glibc-RHEL-61561.patch | 151 + SOURCES/glibc-RHEL-61569-1.patch | 111 + SOURCES/glibc-RHEL-61569-2.patch | 395 + SOURCES/glibc-RHEL-62188-1.patch | 301 + SOURCES/glibc-RHEL-62188-2.patch | 18 + SOURCES/glibc-RHEL-63210.patch | 249 + SOURCES/glibc-RHEL-65280-1.patch | 29 + SOURCES/glibc-RHEL-65280-2.patch | 152 + SOURCES/glibc-RHEL-65280-3.patch | 136 + SOURCES/glibc-RHEL-65280-4.patch | 54 + SOURCES/glibc-RHEL-65280-5.patch | 28 + SOURCES/glibc-RHEL-65280-6.patch | 158 + SOURCES/glibc-RHEL-65280-7.patch | 138 + SOURCES/glibc-RHEL-65355-1.patch | 223 + SOURCES/glibc-RHEL-65355-2.patch | 111 + SOURCES/glibc-RHEL-67593.patch | 85 + SOURCES/glibc-RHEL-68805-1.patch | 254 + SOURCES/glibc-RHEL-68805-2.patch | 71 + SOURCES/glibc-RHEL-68805-3.patch | 119 + SOURCES/glibc-RHEL-68805-4.patch | 358 + SOURCES/glibc-RHEL-68805-5.patch | 150 + SOURCES/glibc-RHEL-68805-6.patch | 115 + SOURCES/glibc-RHEL-68805-7.patch | 110 + SOURCES/glibc-RHEL-68805-8.patch | 595 + SOURCES/glibc-RHEL-68805-9.patch | 110 + SOURCES/glibc-RHEL-71584.patch | 32 + SOURCES/glibc-RHEL-71922.patch | 179 + SOURCES/glibc-RHEL-72017-1.patch | 39 + SOURCES/glibc-RHEL-72017-2.patch | 298 + SOURCES/glibc-RHEL-72017-3.patch | 60 + SOURCES/glibc-RHEL-72017-4.patch | 66 + SOURCES/glibc-RHEL-72017-5.patch | 197 + SOURCES/glibc-RHEL-74251.patch | 285 + SOURCES/glibc-RHEL-77082-1.patch | 87 + SOURCES/glibc-RHEL-77082-2.patch | 89 + SOURCES/glibc-RHEL-77082-3.patch | 93 + SOURCES/glibc-RHEL-77082-4.patch | 59 + SOURCES/glibc-RHEL-77082-5.patch | 56 + SOURCES/glibc-RHEL-80538-1.patch | 35 + SOURCES/glibc-RHEL-80538-2.patch | 121 + SOURCES/glibc-RHEL-80538-3.patch | 722 + SOURCES/glibc-RHEL-80538-4.patch | 70 + SOURCES/glibc-RHEL-83007.patch | 62 + SOURCES/glibc-RHEL-83527-1.patch | 24 + SOURCES/glibc-RHEL-83527-2.patch | 124 + SOURCES/glibc-RHEL-84305.patch | 161 + SOURCES/glibc-RHEL-92095.patch | 103 + SOURCES/glibc-RHEL-92697-1.patch | 95 + SOURCES/glibc-RHEL-92697-2.patch | 56 + SOURCES/glibc-RHEL-92697-3.patch | 41 + SOURCES/glibc-RHEL-92697-4.patch | 158 + SOURCES/glibc-RHEL-92697-5.patch | 42 + SOURCES/glibc-RHEL-92697-6.patch | 105 + SOURCES/glibc-RHEL-92697-8.patch | 52 + SOURCES/glibc-RHEL-92697-9.patch | 314 + SOURCES/glibc-RHEL-93320-1.patch | 781 + SOURCES/glibc-RHEL-93320-10.patch | 35 + SOURCES/glibc-RHEL-93320-11.patch | 55 + SOURCES/glibc-RHEL-93320-12.patch | 51 + SOURCES/glibc-RHEL-93320-13.patch | 58 + SOURCES/glibc-RHEL-93320-14.patch | 812 + SOURCES/glibc-RHEL-93320-15.patch | 35 + SOURCES/glibc-RHEL-93320-16.patch | 891 + SOURCES/glibc-RHEL-93320-17.patch | 963 + SOURCES/glibc-RHEL-93320-18.patch | 36 + SOURCES/glibc-RHEL-93320-19.patch | 185 + SOURCES/glibc-RHEL-93320-2.patch | 692 + SOURCES/glibc-RHEL-93320-3.patch | 119 + SOURCES/glibc-RHEL-93320-4.patch | 2764 +++ SOURCES/glibc-RHEL-93320-5.patch | 420 + SOURCES/glibc-RHEL-93320-6.patch | 124 + SOURCES/glibc-RHEL-93320-7.patch | 353 + SOURCES/glibc-RHEL-93320-8.patch | 70 + SOURCES/glibc-RHEL-93320-9.patch | 49 + SOURCES/glibc-RHEL-94634.patch | 29 + SOURCES/glibc-RHEL-95247.patch | 103 + SOURCES/glibc-RHEL-95546-1.patch | 199 + SOURCES/glibc-RHEL-95546-2.patch | 432 + SOURCES/glibc-RHEL-95546-3.patch | 294 + SOURCES/glibc.abignore | 52 + SOURCES/ld-so-abi-aarch64.baseline | 541 + SOURCES/ld-so-abi-i386.baseline | 568 + SOURCES/ld-so-abi-ppc64le.baseline | 539 + SOURCES/ld-so-abi-s390x.baseline | 534 + SOURCES/ld-so-abi-x86_64.baseline | 586 + SOURCES/verify-ld-so-abi.sh | 101 + SOURCES/wrap-find-debuginfo.sh | 1 + SPECS/glibc.spec | 536 +- 228 files changed, 140570 insertions(+), 9 deletions(-) create mode 100644 SOURCES/glibc-RHEL-101986-1.patch create mode 100644 SOURCES/glibc-RHEL-101986-2.patch create mode 100644 SOURCES/glibc-RHEL-103952.patch create mode 100644 SOURCES/glibc-RHEL-104852-1.patch create mode 100644 SOURCES/glibc-RHEL-104852-2.patch create mode 100644 SOURCES/glibc-RHEL-105327.patch create mode 100644 SOURCES/glibc-RHEL-105957.patch create mode 100644 SOURCES/glibc-RHEL-105965.patch create mode 100644 SOURCES/glibc-RHEL-106206.patch create mode 100644 SOURCES/glibc-RHEL-107518.patch create mode 100644 SOURCES/glibc-RHEL-107564.patch create mode 100644 SOURCES/glibc-RHEL-108220.patch create mode 100644 SOURCES/glibc-RHEL-108221.patch create mode 100644 SOURCES/glibc-RHEL-24168-1.patch create mode 100644 SOURCES/glibc-RHEL-24168-10.patch create mode 100644 SOURCES/glibc-RHEL-24168-11.patch create mode 100644 SOURCES/glibc-RHEL-24168-12.patch create mode 100644 SOURCES/glibc-RHEL-24168-13.patch create mode 100644 SOURCES/glibc-RHEL-24168-14.patch create mode 100644 SOURCES/glibc-RHEL-24168-15.patch create mode 100644 SOURCES/glibc-RHEL-24168-16.patch create mode 100644 SOURCES/glibc-RHEL-24168-17.patch create mode 100644 SOURCES/glibc-RHEL-24168-18.patch create mode 100644 SOURCES/glibc-RHEL-24168-19.patch create mode 100644 SOURCES/glibc-RHEL-24168-2.patch create mode 100644 SOURCES/glibc-RHEL-24168-20.patch create mode 100644 SOURCES/glibc-RHEL-24168-21.patch create mode 100644 SOURCES/glibc-RHEL-24168-22.patch create mode 100644 SOURCES/glibc-RHEL-24168-3.patch create mode 100644 SOURCES/glibc-RHEL-24168-4.patch create mode 100644 SOURCES/glibc-RHEL-24168-5.patch create mode 100644 SOURCES/glibc-RHEL-24168-6.patch create mode 100644 SOURCES/glibc-RHEL-24168-7.patch create mode 100644 SOURCES/glibc-RHEL-24168-8.patch create mode 100644 SOURCES/glibc-RHEL-24168-9.patch create mode 100644 SOURCES/glibc-RHEL-28119.patch create mode 100644 SOURCES/glibc-RHEL-44920-1.patch create mode 100644 SOURCES/glibc-RHEL-44920-2.patch create mode 100644 SOURCES/glibc-RHEL-44920-3.patch create mode 100644 SOURCES/glibc-RHEL-44920-4.patch create mode 100644 SOURCES/glibc-RHEL-44920-5.patch create mode 100644 SOURCES/glibc-RHEL-44920-6.patch create mode 100644 SOURCES/glibc-RHEL-44920-7.patch create mode 100644 SOURCES/glibc-RHEL-44920-8.patch create mode 100644 SOURCES/glibc-RHEL-46726-1.patch create mode 100644 SOURCES/glibc-RHEL-46726-10.patch create mode 100644 SOURCES/glibc-RHEL-46726-11.patch create mode 100644 SOURCES/glibc-RHEL-46726-12.patch create mode 100644 SOURCES/glibc-RHEL-46726-13.patch create mode 100644 SOURCES/glibc-RHEL-46726-14.patch create mode 100644 SOURCES/glibc-RHEL-46726-15.patch create mode 100644 SOURCES/glibc-RHEL-46726-2.patch create mode 100644 SOURCES/glibc-RHEL-46726-3.patch create mode 100644 SOURCES/glibc-RHEL-46726-4.patch create mode 100644 SOURCES/glibc-RHEL-46726-5.patch create mode 100644 SOURCES/glibc-RHEL-46726-6.patch create mode 100644 SOURCES/glibc-RHEL-46726-7.patch create mode 100644 SOURCES/glibc-RHEL-46726-8.patch create mode 100644 SOURCES/glibc-RHEL-46726-9.patch create mode 100644 SOURCES/glibc-RHEL-46729.patch create mode 100644 SOURCES/glibc-RHEL-46737-1.patch create mode 100644 SOURCES/glibc-RHEL-46737-2.patch create mode 100644 SOURCES/glibc-RHEL-46737-3.patch create mode 100644 SOURCES/glibc-RHEL-47403-1.patch create mode 100644 SOURCES/glibc-RHEL-47403-10.patch create mode 100644 SOURCES/glibc-RHEL-47403-11.patch create mode 100644 SOURCES/glibc-RHEL-47403-2.patch create mode 100644 SOURCES/glibc-RHEL-47403-3.patch create mode 100644 SOURCES/glibc-RHEL-47403-4.patch create mode 100644 SOURCES/glibc-RHEL-47403-5.patch create mode 100644 SOURCES/glibc-RHEL-47403-6.patch create mode 100644 SOURCES/glibc-RHEL-47403-7.patch create mode 100644 SOURCES/glibc-RHEL-47403-8.patch create mode 100644 SOURCES/glibc-RHEL-47403-9.patch create mode 100644 SOURCES/glibc-RHEL-48820-1.patch create mode 100644 SOURCES/glibc-RHEL-48820-2.patch create mode 100644 SOURCES/glibc-RHEL-48820-3.patch create mode 100644 SOURCES/glibc-RHEL-48820-4.patch create mode 100644 SOURCES/glibc-RHEL-48820-5.patch create mode 100644 SOURCES/glibc-RHEL-48820-6.patch create mode 100644 SOURCES/glibc-RHEL-48820-7.patch create mode 100644 SOURCES/glibc-RHEL-49549-1.patch create mode 100644 SOURCES/glibc-RHEL-49549-2.patch create mode 100644 SOURCES/glibc-RHEL-49549-3.patch create mode 100644 SOURCES/glibc-RHEL-49549-4.patch create mode 100644 SOURCES/glibc-RHEL-49549-5.patch create mode 100644 SOURCES/glibc-RHEL-49549-6.patch create mode 100644 SOURCES/glibc-RHEL-49549-7.patch create mode 100644 SOURCES/glibc-RHEL-49549-8.patch create mode 100644 SOURCES/glibc-RHEL-49549-9.patch create mode 100644 SOURCES/glibc-RHEL-50086-1.patch create mode 100644 SOURCES/glibc-RHEL-50086-2.patch create mode 100644 SOURCES/glibc-RHEL-50546-1.patch create mode 100644 SOURCES/glibc-RHEL-50546-2.patch create mode 100644 SOURCES/glibc-RHEL-50546-3.patch create mode 100644 SOURCES/glibc-RHEL-50546-4.patch create mode 100644 SOURCES/glibc-RHEL-50546-5.patch create mode 100644 SOURCES/glibc-RHEL-50546-6.patch create mode 100644 SOURCES/glibc-RHEL-53909-1.patch create mode 100644 SOURCES/glibc-RHEL-53909-2.patch create mode 100644 SOURCES/glibc-RHEL-55471-1.patch create mode 100644 SOURCES/glibc-RHEL-55471-10.patch create mode 100644 SOURCES/glibc-RHEL-55471-2.patch create mode 100644 SOURCES/glibc-RHEL-55471-3.patch create mode 100644 SOURCES/glibc-RHEL-55471-4.patch create mode 100644 SOURCES/glibc-RHEL-55471-5.patch create mode 100644 SOURCES/glibc-RHEL-55471-6.patch create mode 100644 SOURCES/glibc-RHEL-55471-7.patch create mode 100644 SOURCES/glibc-RHEL-55471-8.patch create mode 100644 SOURCES/glibc-RHEL-55471-9.patch create mode 100644 SOURCES/glibc-RHEL-56546.patch create mode 100644 SOURCES/glibc-RHEL-56627-1.patch create mode 100644 SOURCES/glibc-RHEL-56627-2.patch create mode 100644 SOURCES/glibc-RHEL-56627-3.patch create mode 100644 SOURCES/glibc-RHEL-56627-4.patch create mode 100644 SOURCES/glibc-RHEL-56627-5.patch create mode 100644 SOURCES/glibc-RHEL-56627-6.patch create mode 100644 SOURCES/glibc-RHEL-56627-7.patch create mode 100644 SOURCES/glibc-RHEL-56627-8.patch create mode 100644 SOURCES/glibc-RHEL-57110-1.patch create mode 100644 SOURCES/glibc-RHEL-57110-2.patch create mode 100644 SOURCES/glibc-RHEL-57110-3.patch create mode 100644 SOURCES/glibc-RHEL-57110-4.patch create mode 100644 SOURCES/glibc-RHEL-57110-5.patch create mode 100644 SOURCES/glibc-RHEL-57585-1.patch create mode 100644 SOURCES/glibc-RHEL-57585-2.patch create mode 100644 SOURCES/glibc-RHEL-57585-3.patch create mode 100644 SOURCES/glibc-RHEL-57585-4.patch create mode 100644 SOURCES/glibc-RHEL-57585-5.patch create mode 100644 SOURCES/glibc-RHEL-57587.patch create mode 100644 SOURCES/glibc-RHEL-57671-1.patch create mode 100644 SOURCES/glibc-RHEL-57671-2.patch create mode 100644 SOURCES/glibc-RHEL-57671-3.patch create mode 100644 SOURCES/glibc-RHEL-59712-1.patch create mode 100644 SOURCES/glibc-RHEL-59712-2.patch create mode 100644 SOURCES/glibc-RHEL-61558-1.patch create mode 100644 SOURCES/glibc-RHEL-61558-2.patch create mode 100644 SOURCES/glibc-RHEL-61558-3.patch create mode 100644 SOURCES/glibc-RHEL-61558-4.patch create mode 100644 SOURCES/glibc-RHEL-61560.patch create mode 100644 SOURCES/glibc-RHEL-61561.patch create mode 100644 SOURCES/glibc-RHEL-61569-1.patch create mode 100644 SOURCES/glibc-RHEL-61569-2.patch create mode 100644 SOURCES/glibc-RHEL-62188-1.patch create mode 100644 SOURCES/glibc-RHEL-62188-2.patch create mode 100644 SOURCES/glibc-RHEL-63210.patch create mode 100644 SOURCES/glibc-RHEL-65280-1.patch create mode 100644 SOURCES/glibc-RHEL-65280-2.patch create mode 100644 SOURCES/glibc-RHEL-65280-3.patch create mode 100644 SOURCES/glibc-RHEL-65280-4.patch create mode 100644 SOURCES/glibc-RHEL-65280-5.patch create mode 100644 SOURCES/glibc-RHEL-65280-6.patch create mode 100644 SOURCES/glibc-RHEL-65280-7.patch create mode 100644 SOURCES/glibc-RHEL-65355-1.patch create mode 100644 SOURCES/glibc-RHEL-65355-2.patch create mode 100644 SOURCES/glibc-RHEL-67593.patch create mode 100644 SOURCES/glibc-RHEL-68805-1.patch create mode 100644 SOURCES/glibc-RHEL-68805-2.patch create mode 100644 SOURCES/glibc-RHEL-68805-3.patch create mode 100644 SOURCES/glibc-RHEL-68805-4.patch create mode 100644 SOURCES/glibc-RHEL-68805-5.patch create mode 100644 SOURCES/glibc-RHEL-68805-6.patch create mode 100644 SOURCES/glibc-RHEL-68805-7.patch create mode 100644 SOURCES/glibc-RHEL-68805-8.patch create mode 100644 SOURCES/glibc-RHEL-68805-9.patch create mode 100644 SOURCES/glibc-RHEL-71584.patch create mode 100644 SOURCES/glibc-RHEL-71922.patch create mode 100644 SOURCES/glibc-RHEL-72017-1.patch create mode 100644 SOURCES/glibc-RHEL-72017-2.patch create mode 100644 SOURCES/glibc-RHEL-72017-3.patch create mode 100644 SOURCES/glibc-RHEL-72017-4.patch create mode 100644 SOURCES/glibc-RHEL-72017-5.patch create mode 100644 SOURCES/glibc-RHEL-74251.patch create mode 100644 SOURCES/glibc-RHEL-77082-1.patch create mode 100644 SOURCES/glibc-RHEL-77082-2.patch create mode 100644 SOURCES/glibc-RHEL-77082-3.patch create mode 100644 SOURCES/glibc-RHEL-77082-4.patch create mode 100644 SOURCES/glibc-RHEL-77082-5.patch create mode 100644 SOURCES/glibc-RHEL-80538-1.patch create mode 100644 SOURCES/glibc-RHEL-80538-2.patch create mode 100644 SOURCES/glibc-RHEL-80538-3.patch create mode 100644 SOURCES/glibc-RHEL-80538-4.patch create mode 100644 SOURCES/glibc-RHEL-83007.patch create mode 100644 SOURCES/glibc-RHEL-83527-1.patch create mode 100644 SOURCES/glibc-RHEL-83527-2.patch create mode 100644 SOURCES/glibc-RHEL-84305.patch create mode 100644 SOURCES/glibc-RHEL-92095.patch create mode 100644 SOURCES/glibc-RHEL-92697-1.patch create mode 100644 SOURCES/glibc-RHEL-92697-2.patch create mode 100644 SOURCES/glibc-RHEL-92697-3.patch create mode 100644 SOURCES/glibc-RHEL-92697-4.patch create mode 100644 SOURCES/glibc-RHEL-92697-5.patch create mode 100644 SOURCES/glibc-RHEL-92697-6.patch create mode 100644 SOURCES/glibc-RHEL-92697-8.patch create mode 100644 SOURCES/glibc-RHEL-92697-9.patch create mode 100644 SOURCES/glibc-RHEL-93320-1.patch create mode 100644 SOURCES/glibc-RHEL-93320-10.patch create mode 100644 SOURCES/glibc-RHEL-93320-11.patch create mode 100644 SOURCES/glibc-RHEL-93320-12.patch create mode 100644 SOURCES/glibc-RHEL-93320-13.patch create mode 100644 SOURCES/glibc-RHEL-93320-14.patch create mode 100644 SOURCES/glibc-RHEL-93320-15.patch create mode 100644 SOURCES/glibc-RHEL-93320-16.patch create mode 100644 SOURCES/glibc-RHEL-93320-17.patch create mode 100644 SOURCES/glibc-RHEL-93320-18.patch create mode 100644 SOURCES/glibc-RHEL-93320-19.patch create mode 100644 SOURCES/glibc-RHEL-93320-2.patch create mode 100644 SOURCES/glibc-RHEL-93320-3.patch create mode 100644 SOURCES/glibc-RHEL-93320-4.patch create mode 100644 SOURCES/glibc-RHEL-93320-5.patch create mode 100644 SOURCES/glibc-RHEL-93320-6.patch create mode 100644 SOURCES/glibc-RHEL-93320-7.patch create mode 100644 SOURCES/glibc-RHEL-93320-8.patch create mode 100644 SOURCES/glibc-RHEL-93320-9.patch create mode 100644 SOURCES/glibc-RHEL-94634.patch create mode 100644 SOURCES/glibc-RHEL-95247.patch create mode 100644 SOURCES/glibc-RHEL-95546-1.patch create mode 100644 SOURCES/glibc-RHEL-95546-2.patch create mode 100644 SOURCES/glibc-RHEL-95546-3.patch create mode 100644 SOURCES/glibc.abignore create mode 100644 SOURCES/ld-so-abi-aarch64.baseline create mode 100644 SOURCES/ld-so-abi-i386.baseline create mode 100644 SOURCES/ld-so-abi-ppc64le.baseline create mode 100644 SOURCES/ld-so-abi-s390x.baseline create mode 100644 SOURCES/ld-so-abi-x86_64.baseline create mode 100644 SOURCES/verify-ld-so-abi.sh diff --git a/SOURCES/glibc-RHEL-101986-1.patch b/SOURCES/glibc-RHEL-101986-1.patch new file mode 100644 index 0000000..b1fdce9 --- /dev/null +++ b/SOURCES/glibc-RHEL-101986-1.patch @@ -0,0 +1,148 @@ +commit 8329939a37f483a16013dd8af8303cbcb86d92cb +Author: Florian Weimer +Date: Fri Jul 4 21:46:16 2025 +0200 + + elf: Introduce _dl_debug_change_state + + It combines updating r_state with the debugger notification. + + The second change to _dl_open introduces an additional debugger + notification for dlmopen, but debuggers are expected to ignore it. + + Reviewed-by: H.J. Lu + +diff --git a/elf/dl-close.c b/elf/dl-close.c +index 236d89f67f3bf410..fa3974afba798073 100644 +--- a/elf/dl-close.c ++++ b/elf/dl-close.c +@@ -472,8 +472,7 @@ _dl_close_worker (struct link_map *map, bool force) + /* Notify the debugger we are about to remove some loaded objects. + LA_ACT_DELETE has already been signalled above for !unload_any. */ + struct r_debug *r = _dl_debug_update (nsid); +- r->r_state = RT_DELETE; +- _dl_debug_state (); ++ _dl_debug_change_state (r, RT_DELETE); + LIBC_PROBE (unmap_start, 2, nsid, r); + + if (unload_global) +@@ -762,8 +761,7 @@ _dl_close_worker (struct link_map *map, bool force) + __rtld_lock_unlock_recursive (GL(dl_load_tls_lock)); + + /* Notify the debugger those objects are finalized and gone. */ +- r->r_state = RT_CONSISTENT; +- _dl_debug_state (); ++ _dl_debug_change_state (r, RT_CONSISTENT); + LIBC_PROBE (unmap_complete, 2, nsid, r); + + #ifdef SHARED +diff --git a/elf/dl-debug.c b/elf/dl-debug.c +index 649386d5a6b885ed..f840a1b92292968d 100644 +--- a/elf/dl-debug.c ++++ b/elf/dl-debug.c +@@ -67,6 +67,13 @@ _dl_debug_update (Lmid_t ns) + return &r->base; + } + ++void ++_dl_debug_change_state (struct r_debug *r, int state) ++{ ++ atomic_store_release (&r->r_state, state); ++ _dl_debug_state (); ++} ++ + /* Initialize _r_debug_extended for the namespace NS. LDBASE is the + run-time load address of the dynamic linker, to be put in + _r_debug_extended.r_ldbase. Return the address of _r_debug. */ +diff --git a/elf/dl-load.c b/elf/dl-load.c +index 6714807946b60188..c118db811d8899f6 100644 +--- a/elf/dl-load.c ++++ b/elf/dl-load.c +@@ -946,8 +946,7 @@ _dl_notify_new_object (int mode, Lmid_t nsid, struct link_map *l) + /* Notify the debugger we have added some objects. We need to + call _dl_debug_initialize in a static program in case dynamic + linking has not been used before. */ +- r->r_state = RT_ADD; +- _dl_debug_state (); ++ _dl_debug_change_state (r, RT_ADD); + LIBC_PROBE (map_start, 2, nsid, r); + } + else +diff --git a/elf/dl-open.c b/elf/dl-open.c +index 1e61e402455da666..df6aa55a8842ee62 100644 +--- a/elf/dl-open.c ++++ b/elf/dl-open.c +@@ -787,8 +787,7 @@ dl_open_worker (void *a) + #ifdef SHARED + bool was_not_consistent = r->r_state != RT_CONSISTENT; + #endif +- r->r_state = RT_CONSISTENT; +- _dl_debug_state (); ++ _dl_debug_change_state (r, RT_CONSISTENT); + LIBC_PROBE (map_complete, 3, nsid, r, args->map); + + #ifdef SHARED +@@ -866,7 +865,7 @@ no more namespaces available for dlmopen()")); + } + + GL(dl_ns)[nsid].libc_map = NULL; +- _dl_debug_update (nsid)->r_state = RT_CONSISTENT; ++ _dl_debug_change_state (_dl_debug_update (nsid), RT_CONSISTENT); + } + /* Never allow loading a DSO in a namespace which is empty. Such + direct placements is only causing problems. Also don't allow +diff --git a/elf/rtld.c b/elf/rtld.c +index cd233174c9d944b2..0fe9986e4c7ed830 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -1842,8 +1842,7 @@ dl_main (const ElfW(Phdr) *phdr, + #endif + + /* We start adding objects. */ +- r->r_state = RT_ADD; +- _dl_debug_state (); ++ _dl_debug_change_state (r, RT_ADD); + LIBC_PROBE (init_start, 2, LM_ID_BASE, r); + + /* Auditing checkpoint: we are ready to signal that the initial map +@@ -2527,8 +2526,7 @@ dl_main (const ElfW(Phdr) *phdr, + /* Notify the debugger all new objects are now ready to go. We must re-get + the address since by now the variable might be in another object. */ + r = _dl_debug_update (LM_ID_BASE); +- r->r_state = RT_CONSISTENT; +- _dl_debug_state (); ++ _dl_debug_change_state (r, RT_CONSISTENT); + LIBC_PROBE (init_complete, 2, LM_ID_BASE, r); + + #ifdef SHARED +diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h +index 21dbe2d21ed8e605..371c32dd79c3ea2b 100644 +--- a/sysdeps/generic/ldsodefs.h ++++ b/sysdeps/generic/ldsodefs.h +@@ -1129,8 +1129,14 @@ extern void _dl_debug_state (void); + rtld_hidden_proto (_dl_debug_state) + + /* Initialize `struct r_debug_extended' for the namespace NS. LDBASE +- is the run-time load address of the dynamic linker, to be put in the +- `r_ldbase' member. Return the address of the structure. */ ++ is the run-time load address of the dynamic linker, to be put in ++ the `r_ldbase' member. ++ ++ Return the address of the r_debug structure for the namespace. ++ This is not merely a convenience or optimization, but it is ++ necessary for the LIBC_PROBE Systemtap/debugger probes to work ++ reliably: direct variable access can create probes that tools ++ cannot consume. */ + extern struct r_debug *_dl_debug_initialize (ElfW(Addr) ldbase, Lmid_t ns) + attribute_hidden; + +@@ -1138,6 +1144,10 @@ extern struct r_debug *_dl_debug_initialize (ElfW(Addr) ldbase, Lmid_t ns) + of the namespace NS. */ + extern struct r_debug *_dl_debug_update (Lmid_t ns) attribute_hidden; + ++/* Update R->r_state to STATE and notify the debugger by calling ++ _dl_debug_state. */ ++void _dl_debug_change_state (struct r_debug *r, int state) attribute_hidden; ++ + /* Initialize the basic data structure for the search paths. SOURCE + is either "LD_LIBRARY_PATH" or "--library-path". + GLIBC_HWCAPS_PREPEND adds additional glibc-hwcaps subdirectories to diff --git a/SOURCES/glibc-RHEL-101986-2.patch b/SOURCES/glibc-RHEL-101986-2.patch new file mode 100644 index 0000000..d382cd6 --- /dev/null +++ b/SOURCES/glibc-RHEL-101986-2.patch @@ -0,0 +1,264 @@ +commit ea85e7d55087075376a29261e722e4fae14ecbe7 +Author: Florian Weimer +Date: Fri Jul 4 21:46:30 2025 +0200 + + elf: Restore support for _r_debug interpositions and copy relocations + + The changes in commit a93d9e03a31ec14405cb3a09aa95413b67067380 + ("Extend struct r_debug to support multiple namespaces [BZ #15971]") + break the dyninst dynamic instrumentation tool. It brings its + own definition of _r_debug (rather than a declaration). + + Furthermore, it turns out it is rather hard to use the proposed + handshake for accessing _r_debug via DT_DEBUG. If applications want + to access _r_debug, they can do so directly if the relevant code has + been built as PIC. To protect against harm from accidental copy + relocations due to linker relaxations, this commit restores copy + relocation support by adjusting both copies if interposition or + copy relocations are in play. Therefore, it is possible to + use a hidden reference in ld.so to access _r_debug. + + Only perform the copy relocation initialization if libc has been + loaded. Otherwise, the ld.so search scope can be empty, and the + lookup of the _r_debug symbol mail fail. + + Reviewed-by: H.J. Lu + +Conflicts: + elf/rtld.c: Adjust for prelink. + +diff --git a/elf/Makefile b/elf/Makefile +index 721f254d121118c0..3eac746d21042ec9 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -404,6 +404,8 @@ tests += \ + tst-dlmopen1 \ + tst-dlmopen3 \ + tst-dlmopen4 \ ++ tst-dlmopen4-nonpic \ ++ tst-dlmopen4-pic \ + tst-dlopen-auditdup \ + tst-dlopen-constructor-null \ + tst-dlopen-self \ +@@ -1986,6 +1988,13 @@ $(objpfx)tst-dlmopen3.out: $(objpfx)tst-dlmopen1mod.so + + $(objpfx)tst-dlmopen4.out: $(objpfx)tst-dlmopen1mod.so + ++CFLAGS-tst-dlmopen4-pic.c += -fPIC ++$(objpfx)tst-dlmopen4-pic.out: $(objpfx)tst-dlmopen1mod.so ++ ++CFLAGS-tst-dlmopen4-nonpic.c += -fno-pie ++tst-dlmopen4-nonpic-no-pie = yes ++$(objpfx)tst-dlmopen4-nonpic.out: $(objpfx)tst-dlmopen1mod.so ++ + $(objpfx)tst-audit1.out: $(objpfx)tst-auditmod1.so + tst-audit1-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so + +diff --git a/elf/dl-debug-symbols.S b/elf/dl-debug-symbols.S +index 28456ab1f237ea87..629b0c0c6b2cd9e1 100644 +--- a/elf/dl-debug-symbols.S ++++ b/elf/dl-debug-symbols.S +@@ -38,3 +38,4 @@ + _r_debug: + _r_debug_extended: + .zero R_DEBUG_EXTENDED_SIZE ++rtld_hidden_def (_r_debug) +diff --git a/elf/dl-debug.c b/elf/dl-debug.c +index f840a1b92292968d..4388a04cdf828898 100644 +--- a/elf/dl-debug.c ++++ b/elf/dl-debug.c +@@ -16,6 +16,7 @@ + License along with the GNU C Library; if not, see + . */ + ++#include + #include + + +@@ -37,6 +38,37 @@ extern const int verify_link_map_members[(VERIFY_MEMBER (l_addr) + to LM_ID_BASE + 1. See elf/dl-debug-symbols.S. */ + struct r_debug_extended _r_debug_array[DL_NNS - 1]; + ++/* If not null, pointer to the _r_debug in the main executable. */ ++static struct r_debug *_r_debug_main; ++ ++void ++_dl_debug_post_relocate (struct link_map *main_map) ++{ ++ /* Perform a full symbol search in all objects, to maintain ++ compatibility if interposed _r_debug definitions. The lookup ++ cannot fail because there is a definition in ld.so, and this ++ function is only called if the ld.so search scope is not empty. */ ++ const ElfW(Sym) *sym = NULL; ++ lookup_t result =_dl_lookup_symbol_x ("_r_debug", main_map, &sym, ++ main_map->l_scope, NULL, 0, 0, NULL); ++ if (sym->st_size >= sizeof (struct r_debug)) ++ { ++ struct r_debug *main_r_debug = DL_SYMBOL_ADDRESS (result, sym); ++ if (main_r_debug != &_r_debug_extended.base) ++ { ++ /* The extended version of the struct is not available in ++ the main executable because a copy relocation has been ++ used. r_map etc. have already been copied as part of the ++ copy relocation processing. */ ++ main_r_debug->r_version = 1; ++ ++ /* Record that dual updates of the initial link map are ++ required. */ ++ _r_debug_main = main_r_debug; ++ } ++ } ++} ++ + /* Return the r_debug object for the namespace NS. */ + static inline struct r_debug_extended * + get_rdebug (Lmid_t ns) +@@ -71,6 +103,11 @@ void + _dl_debug_change_state (struct r_debug *r, int state) + { + atomic_store_release (&r->r_state, state); ++#ifdef SHARED ++ if (r == &_r_debug_extended.base && _r_debug_main != NULL) ++ /* Update the copy-relocation of _r_debug. */ ++ atomic_store_release (&_r_debug_main->r_state, state); ++#endif + _dl_debug_state (); + } + +@@ -103,7 +140,9 @@ _dl_debug_initialize (ElfW(Addr) ldbase, Lmid_t ns) + if (ns - 1 == LM_ID_BASE) + { + atomic_store_release (&_r_debug_extended.r_next, r); +- /* Now there are multiple namespaces. */ ++ /* Now there are multiple namespaces. Note that this ++ deliberately does not update the copy in the main ++ executable (if it exists). */ + atomic_store_release (&_r_debug_extended.base.r_version, 2); + } + else +@@ -116,8 +155,15 @@ _dl_debug_initialize (ElfW(Addr) ldbase, Lmid_t ns) + } + + if (r->base.r_map == NULL) +- atomic_store_release (&r->base.r_map, +- (void *) GL(dl_ns)[ns]._ns_loaded); ++ { ++ struct link_map_public *l = (void *) GL(dl_ns)[ns]._ns_loaded; ++ atomic_store_release (&r->base.r_map, l); ++#ifdef SHARED ++ if (ns == LM_ID_BASE && _r_debug_main != NULL) ++ /* Update the copy-relocation of _r_debug. */ ++ atomic_store_release (&_r_debug_main->r_map, l); ++#endif ++ } + + return &r->base; + } +diff --git a/elf/rtld.c b/elf/rtld.c +index 0fe9986e4c7ed830..dac827e249b2fe14 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -2395,6 +2395,9 @@ dl_main (const ElfW(Phdr) *phdr, + /* Likewise for the locking implementation. */ + __rtld_mutex_init (); + ++ /* Update copy-relocated _r_debug if necessary. */ ++ _dl_debug_post_relocate (main_map); ++ + /* Mark all the objects so we know they have been already relocated. */ + for (struct link_map *l = main_map; l != NULL; l = l->l_next) + { +@@ -2505,6 +2508,9 @@ dl_main (const ElfW(Phdr) *phdr, + + __rtld_mutex_init (); + __rtld_malloc_init_real (main_map); ++ ++ /* Update copy-relocated _r_debug if necessary. */ ++ _dl_debug_post_relocate (main_map); + } + + /* All ld.so initialization is complete. Apply RELRO. */ +diff --git a/elf/tst-dlmopen4-nonpic.c b/elf/tst-dlmopen4-nonpic.c +new file mode 100644 +index 0000000000000000..ad4e40995337f4f9 +--- /dev/null ++++ b/elf/tst-dlmopen4-nonpic.c +@@ -0,0 +1,2 @@ ++#define BUILD_FOR_NONPIC ++#include "tst-dlmopen4.c" +diff --git a/elf/tst-dlmopen4-pic.c b/elf/tst-dlmopen4-pic.c +new file mode 100644 +index 0000000000000000..919fa85c2579fb5d +--- /dev/null ++++ b/elf/tst-dlmopen4-pic.c +@@ -0,0 +1,2 @@ ++#define BUILD_FOR_PIC ++#include "tst-dlmopen4.c" +diff --git a/elf/tst-dlmopen4.c b/elf/tst-dlmopen4.c +index 3fe150e50bc259f0..633addf41978cee8 100644 +--- a/elf/tst-dlmopen4.c ++++ b/elf/tst-dlmopen4.c +@@ -53,6 +53,15 @@ do_test (void) + TEST_COMPARE (debug->base.r_version, 1); + TEST_VERIFY_EXIT (debug->r_next == NULL); + ++#ifdef BUILD_FOR_PIC ++ /* In a PIC build, using _r_debug directly should give us the same ++ object. */ ++ TEST_VERIFY (&_r_debug == &debug->base); ++#endif ++#ifdef BUILD_FOR_NONPIC ++ TEST_COMPARE (_r_debug.r_version, 1); ++#endif ++ + void *h = xdlmopen (LM_ID_NEWLM, "$ORIGIN/tst-dlmopen1mod.so", + RTLD_LAZY); + +@@ -64,6 +73,19 @@ do_test (void) + const char *name = basename (debug->r_next->base.r_map->l_name); + TEST_COMPARE_STRING (name, "tst-dlmopen1mod.so"); + ++#ifdef BUILD_FOR_NONPIC ++ /* If a copy relocation is used, it must be at version 1. */ ++ if (&_r_debug != &debug->base) ++ { ++ TEST_COMPARE (_r_debug.r_version, 1); ++ TEST_COMPARE ((uintptr_t) _r_debug.r_map, ++ (uintptr_t) debug->base.r_map); ++ TEST_COMPARE (_r_debug.r_brk, debug->base.r_brk); ++ TEST_COMPARE (_r_debug.r_state, debug->base.r_state); ++ TEST_COMPARE (_r_debug.r_ldbase, debug->base.r_ldbase); ++ } ++#endif ++ + xdlclose (h); + + return 0; +diff --git a/include/link.h b/include/link.h +index 0cf130ddb8af2e89..bafac6c9628b183c 100644 +--- a/include/link.h ++++ b/include/link.h +@@ -366,6 +366,8 @@ struct auditstate + dynamic linker. */ + extern struct r_debug_extended _r_debug_extended attribute_hidden; + ++rtld_hidden_proto (_r_debug) ++ + #if __ELF_NATIVE_CLASS == 32 + # define symbind symbind32 + # define LA_SYMBIND "la_symbind32" +diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h +index 371c32dd79c3ea2b..484893c2928db8e7 100644 +--- a/sysdeps/generic/ldsodefs.h ++++ b/sysdeps/generic/ldsodefs.h +@@ -1140,6 +1140,10 @@ rtld_hidden_proto (_dl_debug_state) + extern struct r_debug *_dl_debug_initialize (ElfW(Addr) ldbase, Lmid_t ns) + attribute_hidden; + ++/* This is called after relocation processing to handle a potential ++ copy relocation for _r_debug. */ ++void _dl_debug_post_relocate (struct link_map *main_map) attribute_hidden; ++ + /* Update the `r_map' member and return the address of `struct r_debug' + of the namespace NS. */ + extern struct r_debug *_dl_debug_update (Lmid_t ns) attribute_hidden; diff --git a/SOURCES/glibc-RHEL-103952.patch b/SOURCES/glibc-RHEL-103952.patch new file mode 100644 index 0000000..22c522f --- /dev/null +++ b/SOURCES/glibc-RHEL-103952.patch @@ -0,0 +1,51 @@ +commit cdcf24ee14c27b77744ff52ab3ae852821207eb0 +Author: Florian Weimer +Date: Thu Jul 17 14:44:05 2025 +0200 + + iconv: iconv -o should not create executable files (bug 33164) + + The mistake is that open must use 0666 to pick up the umask, + and not 0777 (which is required by mkdir). + + Fixes commit 8ef3cff9d1ceafe369f982d980678d749fb93bd2 + ("iconv: Support in-place conversions (bug 10460, bug 32033)"). + + Reviewed-by: H.J. Lu + +diff --git a/iconv/iconv_prog.c b/iconv/iconv_prog.c +index e3b051a309ff142b..08ea99d6adf6ea86 100644 +--- a/iconv/iconv_prog.c ++++ b/iconv/iconv_prog.c +@@ -437,7 +437,7 @@ input_error (const char *path) + static void + open_output_direct (void) + { +- output_fd = open64 (output_file, O_WRONLY | O_CREAT | O_TRUNC, 0777); ++ output_fd = open64 (output_file, O_WRONLY | O_CREAT | O_TRUNC, 0666); + if (output_fd < 0) + output_error (); + } +@@ -458,7 +458,7 @@ prepare_output_file (char **argv) + else + { + /* If iconv creates the output file, no overlap is possible. */ +- output_fd = open64 (output_file, O_WRONLY | O_CREAT | O_EXCL, 0777); ++ output_fd = open64 (output_file, O_WRONLY | O_CREAT | O_EXCL, 0666); + if (output_fd >= 0) + output_buffer_size = copy_buffer_size; + else +diff --git a/iconv/tst-iconv_prog-buffer.sh b/iconv/tst-iconv_prog-buffer.sh +index 23098ac56a344c48..562f90fe513e94d7 100644 +--- a/iconv/tst-iconv_prog-buffer.sh ++++ b/iconv/tst-iconv_prog-buffer.sh +@@ -75,6 +75,10 @@ run_iconv () { + } + + check_out_expected () { ++ if test -x "$tmp/out" ; then ++ echo "error: iconv output file is executable" ++ failure=true ++ fi + if ! cmp -s "$tmp/out" "$tmp/expected" ; then + echo "error: iconv output difference" >&$logfd + echo "*** expected ***" >&$logfd diff --git a/SOURCES/glibc-RHEL-104852-1.patch b/SOURCES/glibc-RHEL-104852-1.patch new file mode 100644 index 0000000..e74ca81 --- /dev/null +++ b/SOURCES/glibc-RHEL-104852-1.patch @@ -0,0 +1,106 @@ +commit 2cac9559e06044ba520e785c151fbbd25011865f +Author: Florian Weimer +Date: Fri Aug 1 10:20:23 2025 +0200 + + elf: Extract rtld_setup_phdr function from dl_main + + Remove historic binutils reference from comment and update + how this data is used by applications. + + Reviewed-by: Adhemerval Zanella + +Conflicts: + elf/rtld. + (missing __ehdr_start cleanup downstream) + +diff --git a/elf/rtld.c b/elf/rtld.c +index 667880e18ae816d8..a9073d4e14b07410 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -1306,6 +1306,45 @@ rtld_setup_main_map (struct link_map *main_map) + return has_interp; + } + ++/* Set up the program header information for the dynamic linker ++ itself. It can be accessed via _r_debug and dl_iterate_phdr ++ callbacks. */ ++static void ++rtld_setup_phdr (void) ++{ ++ const ElfW(Ehdr) *rtld_ehdr; ++ ++ /* Starting from binutils-2.23, the linker will define the magic symbol ++ __ehdr_start to point to our own ELF header if it is visible in a ++ segment that also includes the phdrs. If that's not available, we use ++ the old method that assumes the beginning of the file is part of the ++ lowest-addressed PT_LOAD segment. */ ++#ifdef HAVE_EHDR_START ++ extern const ElfW(Ehdr) __ehdr_start __attribute__ ((visibility ("hidden"))); ++ rtld_ehdr = &__ehdr_start; ++#else ++ rtld_ehdr = (void *) GL(dl_rtld_map).l_map_start; ++#endif ++ assert (rtld_ehdr->e_ehsize == sizeof *rtld_ehdr); ++ assert (rtld_ehdr->e_phentsize == sizeof (ElfW(Phdr))); ++ ++ const ElfW(Phdr) *rtld_phdr = (const void *) rtld_ehdr + rtld_ehdr->e_phoff; ++ ++ GL(dl_rtld_map).l_phdr = rtld_phdr; ++ GL(dl_rtld_map).l_phnum = rtld_ehdr->e_phnum; ++ ++ ++ /* PT_GNU_RELRO is usually the last phdr. */ ++ size_t cnt = rtld_ehdr->e_phnum; ++ while (cnt-- > 0) ++ if (rtld_phdr[cnt].p_type == PT_GNU_RELRO) ++ { ++ GL(dl_rtld_map).l_relro_addr = rtld_phdr[cnt].p_vaddr; ++ GL(dl_rtld_map).l_relro_size = rtld_phdr[cnt].p_memsz; ++ break; ++ } ++} ++ + /* Adjusts the contents of the stack and related globals for the user + entry point. The ld.so processed skip_args arguments and bumped + _dl_argv and _dl_argc accordingly. Those arguments are removed from +@@ -1790,39 +1829,7 @@ dl_main (const ElfW(Phdr) *phdr, + if (GLRO(dl_use_load_bias) == (ElfW(Addr)) -2) + GLRO(dl_use_load_bias) = main_map->l_addr == 0 ? -1 : 0; + +- /* Set up the program header information for the dynamic linker +- itself. It is needed in the dl_iterate_phdr callbacks. */ +- const ElfW(Ehdr) *rtld_ehdr; +- +- /* Starting from binutils-2.23, the linker will define the magic symbol +- __ehdr_start to point to our own ELF header if it is visible in a +- segment that also includes the phdrs. If that's not available, we use +- the old method that assumes the beginning of the file is part of the +- lowest-addressed PT_LOAD segment. */ +-#ifdef HAVE_EHDR_START +- extern const ElfW(Ehdr) __ehdr_start __attribute__ ((visibility ("hidden"))); +- rtld_ehdr = &__ehdr_start; +-#else +- rtld_ehdr = (void *) GL(dl_rtld_map).l_map_start; +-#endif +- assert (rtld_ehdr->e_ehsize == sizeof *rtld_ehdr); +- assert (rtld_ehdr->e_phentsize == sizeof (ElfW(Phdr))); +- +- const ElfW(Phdr) *rtld_phdr = (const void *) rtld_ehdr + rtld_ehdr->e_phoff; +- +- GL(dl_rtld_map).l_phdr = rtld_phdr; +- GL(dl_rtld_map).l_phnum = rtld_ehdr->e_phnum; +- +- +- /* PT_GNU_RELRO is usually the last phdr. */ +- size_t cnt = rtld_ehdr->e_phnum; +- while (cnt-- > 0) +- if (rtld_phdr[cnt].p_type == PT_GNU_RELRO) +- { +- GL(dl_rtld_map).l_relro_addr = rtld_phdr[cnt].p_vaddr; +- GL(dl_rtld_map).l_relro_size = rtld_phdr[cnt].p_memsz; +- break; +- } ++ rtld_setup_phdr (); + + /* Add the dynamic linker to the TLS list if it also uses TLS. */ + if (GL(dl_rtld_map).l_tls_blocksize != 0) diff --git a/SOURCES/glibc-RHEL-104852-2.patch b/SOURCES/glibc-RHEL-104852-2.patch new file mode 100644 index 0000000..eeafd86 --- /dev/null +++ b/SOURCES/glibc-RHEL-104852-2.patch @@ -0,0 +1,457 @@ +commit 20681be149b9eb1b6c1f4246bf4bd801221c86cd +Author: Florian Weimer +Date: Fri Aug 1 10:20:23 2025 +0200 + + elf: Handle ld.so with LOAD segment gaps in _dl_find_object (bug 31943) + + Detect if ld.so not contiguous and handle that case in _dl_find_object. + Set l_find_object_processed even for initially loaded link maps, + otherwise dlopen of an initially loaded object adds it to + _dlfo_loaded_mappings (where maps are expected to be contiguous), + in addition to _dlfo_nodelete_mappings. + + Test elf/tst-link-map-contiguous-ldso iterates over the loader + image, reading every word to make sure memory is actually mapped. + It only does that if the l_contiguous flag is set for the link map. + Otherwise, it finds gaps with mmap and checks that _dl_find_object + does not return the ld.so mapping for them. + + The test elf/tst-link-map-contiguous-main does the same thing for + the libc.so shared object. This only works if the kernel loaded + the main program because the glibc dynamic loader may fill + the gaps with PROT_NONE mappings in some cases, making it contiguous, + but accesses to individual words may still fault. + + Test elf/tst-link-map-contiguous-libc is again slightly different + because the dynamic loader always fills the gaps with PROT_NONE + mappings, so a different form of probing has to be used. + + Reviewed-by: Adhemerval Zanella + +Conflicts: + elf/dl-find_object.h + (missing SFrame support downstream. Update + l_find_object_processed early due to the possible + return from the for loop). + elf/dl-find_object.c + (missing is_rtld_link_map downstream) + elf/rtld.c + (missing GL(dl_rtld_map) refactoring downstream) + +diff --git a/elf/Makefile b/elf/Makefile +index b37636c0f865f4e6..190ee83120c498a3 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -519,6 +519,8 @@ tests-internal += \ + tst-dl-hwcaps_split \ + tst-dlmopen2 \ + tst-hash-collision3 \ ++ tst-link-map-contiguous-ldso \ ++ tst-link-map-contiguous-libc \ + tst-ptrguard1 \ + tst-stackguard1 \ + tst-tls-surplus \ +@@ -531,6 +533,10 @@ tests-internal += \ + tst-dl_find_object tst-dl_find_object-threads \ + # tests-internal + ++ifeq ($(build-hardcoded-path-in-tests),yes) ++tests-internal += tst-link-map-contiguous-main ++endif ++ + tests-container += \ + tst-dlopen-self-container \ + tst-dlopen-tlsmodid-container \ +diff --git a/elf/dl-find_object.c b/elf/dl-find_object.c +index 62a8a61f6b6032cf..128329aa20ef9ed6 100644 +--- a/elf/dl-find_object.c ++++ b/elf/dl-find_object.c +@@ -468,6 +468,37 @@ rtld_hidden_def (__dl_find_object_internal) + strong_alias (__dl_find_object_internal, _dl_find_object) + #endif + ++/* Subroutine of _dlfo_process_initial to split out noncontigous link ++ maps. NODELETE is the number of used _dlfo_nodelete_mappings ++ elements. It is incremented as needed, and the new NODELETE value ++ is returned. */ ++static size_t ++_dlfo_process_initial_noncontiguous_map (struct link_map *map, ++ size_t nodelete) ++{ ++ struct dl_find_object_internal dlfo; ++ _dl_find_object_from_map (map, &dlfo); ++ ++ /* PT_LOAD segments for a non-contiguous link map are added to the ++ non-closeable mappings. */ ++ const ElfW(Phdr) *ph = map->l_phdr; ++ const ElfW(Phdr) *ph_end = map->l_phdr + map->l_phnum; ++ for (; ph < ph_end; ++ph) ++ if (ph->p_type == PT_LOAD) ++ { ++ if (_dlfo_nodelete_mappings != NULL) ++ { ++ /* Second pass only. */ ++ _dlfo_nodelete_mappings[nodelete] = dlfo; ++ ElfW(Addr) start = ph->p_vaddr + map->l_addr; ++ _dlfo_nodelete_mappings[nodelete].map_start = start; ++ _dlfo_nodelete_mappings[nodelete].map_end = start + ph->p_memsz; ++ } ++ ++nodelete; ++ } ++ return nodelete; ++} ++ + /* _dlfo_process_initial is called twice. First to compute the array + sizes from the initial loaded mappings. Second to fill in the + bases and infos arrays with the (still unsorted) data. Returns the +@@ -479,29 +510,8 @@ _dlfo_process_initial (void) + + size_t nodelete = 0; + if (!main_map->l_contiguous) +- { +- struct dl_find_object_internal dlfo; +- _dl_find_object_from_map (main_map, &dlfo); +- +- /* PT_LOAD segments for a non-contiguous are added to the +- non-closeable mappings. */ +- for (const ElfW(Phdr) *ph = main_map->l_phdr, +- *ph_end = main_map->l_phdr + main_map->l_phnum; +- ph < ph_end; ++ph) +- if (ph->p_type == PT_LOAD) +- { +- if (_dlfo_nodelete_mappings != NULL) +- { +- /* Second pass only. */ +- _dlfo_nodelete_mappings[nodelete] = dlfo; +- _dlfo_nodelete_mappings[nodelete].map_start +- = ph->p_vaddr + main_map->l_addr; +- _dlfo_nodelete_mappings[nodelete].map_end +- = _dlfo_nodelete_mappings[nodelete].map_start + ph->p_memsz; +- } +- ++nodelete; +- } +- } ++ /* Contiguous case already handled in _dl_find_object_init. */ ++ nodelete = _dlfo_process_initial_noncontiguous_map (main_map, nodelete); + + size_t loaded = 0; + for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns) +@@ -513,11 +523,22 @@ _dlfo_process_initial (void) + /* lt_library link maps are implicitly NODELETE. */ + if (l->l_type == lt_library || l->l_nodelete_active) + { +- if (_dlfo_nodelete_mappings != NULL) +- /* Second pass only. */ +- _dl_find_object_from_map +- (l, _dlfo_nodelete_mappings + nodelete); +- ++nodelete; ++ /* The kernel may have loaded ld.so with gaps. */ ++ if (!l->l_contiguous ++#ifdef SHARED ++ && l == &GL(dl_rtld_map) ++#endif ++ ) ++ nodelete ++ = _dlfo_process_initial_noncontiguous_map (l, nodelete); ++ else ++ { ++ if (_dlfo_nodelete_mappings != NULL) ++ /* Second pass only. */ ++ _dl_find_object_from_map ++ (l, _dlfo_nodelete_mappings + nodelete); ++ ++nodelete; ++ } + } + else if (l->l_type == lt_loaded) + { +@@ -767,7 +788,6 @@ _dl_find_object_update_1 (struct link_map **loaded, size_t count) + /* Prefer newly loaded link map. */ + assert (loaded_index1 > 0); + _dl_find_object_from_map (loaded[loaded_index1 - 1], dlfo); +- loaded[loaded_index1 - 1]->l_find_object_processed = 1; + --loaded_index1; + } + +diff --git a/elf/dl-find_object.h b/elf/dl-find_object.h +index 11569efc9b7daf9c..fae25747edc6dca0 100644 +--- a/elf/dl-find_object.h ++++ b/elf/dl-find_object.h +@@ -87,7 +87,7 @@ _dl_find_object_to_external (struct dl_find_object_internal *internal, + } + + /* Extract the object location data from a link map and writes it to +- *RESULT using relaxed MO stores. */ ++ *RESULT using relaxed MO stores. Set L->l_find_object_processed. */ + static void __attribute__ ((unused)) + _dl_find_object_from_map (struct link_map *l, + struct dl_find_object_internal *result) +@@ -100,6 +100,8 @@ _dl_find_object_from_map (struct link_map *l, + atomic_store_relaxed (&result->eh_dbase, (void *) l->l_info[DT_PLTGOT]); + #endif + ++ l->l_find_object_processed = 1; ++ + for (const ElfW(Phdr) *ph = l->l_phdr, *ph_end = l->l_phdr + l->l_phnum; + ph < ph_end; ++ph) + if (ph->p_type == DLFO_EH_SEGMENT_TYPE) +diff --git a/elf/rtld.c b/elf/rtld.c +index a9073d4e14b07410..425003e6c8e452ab 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -1308,7 +1308,7 @@ rtld_setup_main_map (struct link_map *main_map) + + /* Set up the program header information for the dynamic linker + itself. It can be accessed via _r_debug and dl_iterate_phdr +- callbacks. */ ++ callbacks, and it is used by _dl_find_object. */ + static void + rtld_setup_phdr (void) + { +@@ -1334,6 +1334,29 @@ rtld_setup_phdr (void) + GL(dl_rtld_map).l_phnum = rtld_ehdr->e_phnum; + + ++ GL(dl_rtld_map).l_contiguous = 1; ++ /* The linker may not have produced a contiguous object. The kernel ++ will load the object with actual gaps (unlike the glibc loader ++ for shared objects, which always produces a contiguous mapping). ++ See similar logic in rtld_setup_main_map above. */ ++ { ++ ElfW(Addr) expected_load_address = 0; ++ for (const ElfW(Phdr) *ph = rtld_phdr; ph < &rtld_phdr[rtld_ehdr->e_phnum]; ++ ++ph) ++ if (ph->p_type == PT_LOAD) ++ { ++ ElfW(Addr) mapstart = ph->p_vaddr & ~(GLRO(dl_pagesize) - 1); ++ if (GL(dl_rtld_map).l_contiguous && expected_load_address != 0 ++ && expected_load_address != mapstart) ++ GL(dl_rtld_map).l_contiguous = 0; ++ ElfW(Addr) allocend = ph->p_vaddr + ph->p_memsz; ++ /* The next expected address is the page following this load ++ segment. */ ++ expected_load_address = ((allocend + GLRO(dl_pagesize) - 1) ++ & ~(GLRO(dl_pagesize) - 1)); ++ } ++ } ++ + /* PT_GNU_RELRO is usually the last phdr. */ + size_t cnt = rtld_ehdr->e_phnum; + while (cnt-- > 0) +diff --git a/elf/tst-link-map-contiguous-ldso.c b/elf/tst-link-map-contiguous-ldso.c +new file mode 100644 +index 0000000000000000..04de808bb234fe38 +--- /dev/null ++++ b/elf/tst-link-map-contiguous-ldso.c +@@ -0,0 +1,98 @@ ++/* Check that _dl_find_object behavior matches up with gaps. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ struct link_map *l = xdlopen (LD_SO, RTLD_NOW); ++ if (!l->l_contiguous) ++ { ++ puts ("info: ld.so link map is not contiguous"); ++ ++ /* Try to find holes by probing with mmap. */ ++ int pagesize = getpagesize (); ++ bool gap_found = false; ++ ElfW(Addr) addr = l->l_map_start; ++ TEST_COMPARE (addr % pagesize, 0); ++ while (addr < l->l_map_end) ++ { ++ void *expected = (void *) addr; ++ void *ptr = xmmap (expected, 1, PROT_READ | PROT_WRITE, ++ MAP_PRIVATE | MAP_ANONYMOUS, -1); ++ struct dl_find_object dlfo; ++ int dlfo_ret = _dl_find_object (expected, &dlfo); ++ if (ptr == expected) ++ { ++ if (dlfo_ret < 0) ++ { ++ TEST_COMPARE (dlfo_ret, -1); ++ printf ("info: hole without mapping data found at %p\n", ptr); ++ } ++ else ++ FAIL ("object \"%s\" found in gap at %p", ++ dlfo.dlfo_link_map->l_name, ptr); ++ gap_found = true; ++ } ++ else if (dlfo_ret == 0) ++ { ++ if ((void *) dlfo.dlfo_link_map != (void *) l) ++ { ++ printf ("info: object \"%s\" found at %p\n", ++ dlfo.dlfo_link_map->l_name, ptr); ++ gap_found = true; ++ } ++ } ++ else ++ TEST_COMPARE (dlfo_ret, -1); ++ xmunmap (ptr, 1); ++ addr += pagesize; ++ } ++ if (!gap_found) ++ FAIL ("no ld.so gap found"); ++ } ++ else ++ { ++ puts ("info: ld.so link map is contiguous"); ++ ++ /* Assert that ld.so is truly contiguous in memory. */ ++ volatile long int *p = (volatile long int *) l->l_map_start; ++ volatile long int *end = (volatile long int *) l->l_map_end; ++ while (p < end) ++ { ++ *p; ++ ++p; ++ } ++ } ++ ++ xdlclose (l); ++ ++ return 0; ++} ++ ++#include +diff --git a/elf/tst-link-map-contiguous-libc.c b/elf/tst-link-map-contiguous-libc.c +new file mode 100644 +index 0000000000000000..eb5728c765ac3cfb +--- /dev/null ++++ b/elf/tst-link-map-contiguous-libc.c +@@ -0,0 +1,57 @@ ++/* Check that the entire libc.so program image is readable if contiguous. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ struct link_map *l = xdlopen (LIBC_SO, RTLD_NOW); ++ ++ /* The dynamic loader fills holes with PROT_NONE mappings. */ ++ if (!l->l_contiguous) ++ FAIL_EXIT1 ("libc.so link map is not contiguous"); ++ ++ /* Direct probing does not work because not everything is readable ++ due to PROT_NONE mappings. */ ++ int pagesize = getpagesize (); ++ ElfW(Addr) addr = l->l_map_start; ++ TEST_COMPARE (addr % pagesize, 0); ++ while (addr < l->l_map_end) ++ { ++ void *expected = (void *) addr; ++ void *ptr = xmmap (expected, 1, PROT_READ | PROT_WRITE, ++ MAP_PRIVATE | MAP_ANONYMOUS, -1); ++ if (ptr == expected) ++ FAIL ("hole in libc.so memory image after %lu bytes", ++ (unsigned long int) (addr - l->l_map_start)); ++ xmunmap (ptr, 1); ++ addr += pagesize; ++ } ++ ++ xdlclose (l); ++ ++ return 0; ++} ++#include +diff --git a/elf/tst-link-map-contiguous-main.c b/elf/tst-link-map-contiguous-main.c +new file mode 100644 +index 0000000000000000..2d1a054f0fbb0855 +--- /dev/null ++++ b/elf/tst-link-map-contiguous-main.c +@@ -0,0 +1,45 @@ ++/* Check that the entire main program image is readable if contiguous. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ struct link_map *l = xdlopen ("", RTLD_NOW); ++ if (!l->l_contiguous) ++ FAIL_UNSUPPORTED ("main link map is not contiguous"); ++ ++ /* This check only works if the kernel loaded the main program. The ++ dynamic loader replaces gaps with PROT_NONE mappings, resulting ++ in faults. */ ++ volatile long int *p = (volatile long int *) l->l_map_start; ++ volatile long int *end = (volatile long int *) l->l_map_end; ++ while (p < end) ++ { ++ *p; ++ ++p; ++ } ++ ++ xdlclose (l); ++ ++ return 0; ++} ++#include diff --git a/SOURCES/glibc-RHEL-105327.patch b/SOURCES/glibc-RHEL-105327.patch new file mode 100644 index 0000000..24a102f --- /dev/null +++ b/SOURCES/glibc-RHEL-105327.patch @@ -0,0 +1,234 @@ +commit 7ea06e994093fa0bcca0d0ee2c1db271d8d7885d +Author: Florian Weimer +Date: Mon Jul 21 21:43:49 2025 +0200 + + posix: Fix double-free after allocation failure in regcomp (bug 33185) + + If a memory allocation failure occurs during bracket expression + parsing in regcomp, a double-free error may result. + + Reported-by: Anastasia Belova + Co-authored-by: Paul Eggert + Reviewed-by: Andreas K. Huettel + +Conflicts: + posix/Makefile (New test added) + +diff --git a/posix/Makefile b/posix/Makefile +index 7b70b4a736bc1215..562e8cb85fdb6f43 100644 +--- a/posix/Makefile ++++ b/posix/Makefile +@@ -112,7 +112,8 @@ tests := test-errno tstgetopt testfnm runtests runptests \ + tst-sched_getaffinity \ + tst-cpuset-dynamic \ + tst-cpuset-static \ +- tst-spawn6 ++ tst-spawn6 \ ++ tst-regcomp-bracket-free + + # Test for the glob symbol version that was replaced in glibc 2.27. + ifeq ($(have-GLIBC_2.26)$(build-shared),yesyes) +diff --git a/posix/regcomp.c b/posix/regcomp.c +index 887e5b50684e22f5..005e6459bbe8bd55 100644 +--- a/posix/regcomp.c ++++ b/posix/regcomp.c +@@ -3365,6 +3365,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, + { + #ifdef RE_ENABLE_I18N + free_charset (mbcset); ++ mbcset = NULL; + #endif + /* Build a tree for simple bracket. */ + br_token.type = SIMPLE_BRACKET; +@@ -3380,7 +3381,8 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, + parse_bracket_exp_free_return: + re_free (sbcset); + #ifdef RE_ENABLE_I18N +- free_charset (mbcset); ++ if (__glibc_likely (mbcset != NULL)) ++ free_charset (mbcset); + #endif /* RE_ENABLE_I18N */ + return NULL; + } +diff --git a/posix/tst-regcomp-bracket-free.c b/posix/tst-regcomp-bracket-free.c +new file mode 100644 +index 0000000000000000..3c091d8c44ebe56f +--- /dev/null ++++ b/posix/tst-regcomp-bracket-free.c +@@ -0,0 +1,176 @@ ++/* Test regcomp bracket parsing with injected allocation failures (bug 33185). ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* This test invokes regcomp multiple times, failing one memory ++ allocation in each call. The function call should fail with ++ REG_ESPACE (or succeed if it can recover from the allocation ++ failure). Previously, there was double-free bug. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Data structure allocated via MAP_SHARED, so that writes from the ++ subprocess are visible. */ ++struct shared_data ++{ ++ /* Number of tracked allocations performed so far. */ ++ volatile unsigned int allocation_count; ++ ++ /* If this number is reached, one allocation fails. */ ++ volatile unsigned int failing_allocation; ++ ++ /* The subprocess stores the expected name here. */ ++ char name[100]; ++}; ++ ++/* Allocation count in shared mapping. */ ++static struct shared_data *shared; ++ ++/* Returns true if a failure should be injected for this allocation. */ ++static bool ++fail_this_allocation (void) ++{ ++ if (shared != NULL) ++ { ++ unsigned int count = shared->allocation_count; ++ shared->allocation_count = count + 1; ++ return count == shared->failing_allocation; ++ } ++ else ++ return false; ++} ++ ++/* Failure-injecting wrappers for allocation functions used by glibc. */ ++ ++void * ++malloc (size_t size) ++{ ++ if (fail_this_allocation ()) ++ { ++ errno = ENOMEM; ++ return NULL; ++ } ++ extern __typeof (malloc) __libc_malloc; ++ return __libc_malloc (size); ++} ++ ++void * ++calloc (size_t a, size_t b) ++{ ++ if (fail_this_allocation ()) ++ { ++ errno = ENOMEM; ++ return NULL; ++ } ++ extern __typeof (calloc) __libc_calloc; ++ return __libc_calloc (a, b); ++} ++ ++void * ++realloc (void *ptr, size_t size) ++{ ++ if (fail_this_allocation ()) ++ { ++ errno = ENOMEM; ++ return NULL; ++ } ++ extern __typeof (realloc) __libc_realloc; ++ return __libc_realloc (ptr, size); ++} ++ ++/* No-op subprocess to verify that support_isolate_in_subprocess does ++ not perform any heap allocations. */ ++static void ++no_op (void *ignored) ++{ ++} ++ ++/* Perform a regcomp call in a subprocess. Used to count its ++ allocations. */ ++static void ++initialize (void *regexp1) ++{ ++ const char *regexp = regexp1; ++ ++ shared->allocation_count = 0; ++ ++ regex_t reg; ++ TEST_COMPARE (regcomp (®, regexp, 0), 0); ++} ++ ++/* Perform regcomp in a subprocess with fault injection. */ ++static void ++test_in_subprocess (void *regexp1) ++{ ++ const char *regexp = regexp1; ++ unsigned int inject_at = shared->failing_allocation; ++ ++ regex_t reg; ++ int ret = regcomp (®, regexp, 0); ++ ++ if (ret != 0) ++ { ++ TEST_COMPARE (ret, REG_ESPACE); ++ printf ("info: allocation %u failure results in return value %d," ++ " error %s (%d)\n", ++ inject_at, ret, strerrorname_np (errno), errno); ++ } ++} ++ ++static int ++do_test (void) ++{ ++ char regexp[] = "[:alpha:]"; ++ ++ shared = support_shared_allocate (sizeof (*shared)); ++ ++ /* Disable fault injection. */ ++ shared->failing_allocation = ~0U; ++ ++ support_isolate_in_subprocess (no_op, NULL); ++ TEST_COMPARE (shared->allocation_count, 0); ++ ++ support_isolate_in_subprocess (initialize, regexp); ++ ++ /* The number of allocations in the successful case, plus some ++ slack. Once the number of expected allocations is exceeded, ++ injecting further failures does not make a difference. */ ++ unsigned int maximum_allocation_count = shared->allocation_count; ++ printf ("info: successful call performs %u allocations\n", ++ maximum_allocation_count); ++ maximum_allocation_count += 10; ++ ++ for (unsigned int inject_at = 0; inject_at <= maximum_allocation_count; ++ ++inject_at) ++ { ++ shared->allocation_count = 0; ++ shared->failing_allocation = inject_at; ++ support_isolate_in_subprocess (test_in_subprocess, regexp); ++ } ++ ++ support_shared_free (shared); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-105957.patch b/SOURCES/glibc-RHEL-105957.patch new file mode 100644 index 0000000..76c7f67 --- /dev/null +++ b/SOURCES/glibc-RHEL-105957.patch @@ -0,0 +1,33 @@ +Downstream patch only. + +Revert changes made to elf/dl-readonly-area.c compared to +ed6a68bac7cd056abda9008019c71b167f0362dc since `_dl_find_object` has +been backported. + +Note: `_dl_find_object` isn't directly made available internally +downstream, we can use `__dl_find_object_internal` instead. + +diff --git a/elf/dl-readonly-area.c b/elf/dl-readonly-area.c +index 570b99b11527db13..3b39eed06a379ce3 100644 +--- a/elf/dl-readonly-area.c ++++ b/elf/dl-readonly-area.c +@@ -40,16 +40,11 @@ check_relro (const struct link_map *l, uintptr_t start, uintptr_t end) + enum dl_readonly_area_error_type + _dl_readonly_area (const void *ptr, size_t size) + { +- /* Protect against concurrent loads and unloads. */ +- __rtld_lock_lock_recursive (GL(dl_load_lock)); +- +- const struct link_map *l = _dl_find_dso_for_object ((ElfW(Addr)) ptr); +- +- __rtld_lock_unlock_recursive (GL(dl_load_lock)); +- +- if (l == NULL) ++ struct dl_find_object dlfo; ++ if (__dl_find_object_internal ((void *)ptr, &dlfo) != 0) + return dl_readonly_area_not_found; + ++ const struct link_map *l = dlfo.dlfo_link_map; + uintptr_t ptr_start = (uintptr_t) ptr; + uintptr_t ptr_end = ptr_start + size; + diff --git a/SOURCES/glibc-RHEL-105965.patch b/SOURCES/glibc-RHEL-105965.patch new file mode 100644 index 0000000..ff9aca5 --- /dev/null +++ b/SOURCES/glibc-RHEL-105965.patch @@ -0,0 +1,80 @@ +commit 620f0730f311635cd0e175a3ae4d0fc700c76366 +Author: Florian Weimer +Date: Mon Jul 28 14:16:52 2025 +0200 + + elf: Compile _dl_debug_state separately (bug 33224) + + This ensures that the compiler will not inline it, so that + debuggers which do not use the Systemtap probes can reliably + set a breakpoint on it. + + Reviewed-by: Andreas K. Huettel + Tested-by: Andreas K. Huettel + +diff --git a/elf/Makefile b/elf/Makefile +index b181150b36773d24..b37636c0f865f4e6 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -56,6 +56,7 @@ dl-routines = \ + dl-close \ + dl-debug \ + dl-debug-symbols \ ++ dl-debug_state \ + dl-deps \ + dl-exception \ + dl-execstack \ +diff --git a/elf/dl-debug.c b/elf/dl-debug.c +index 4388a04cdf828898..8c1472a84ebfefe7 100644 +--- a/elf/dl-debug.c ++++ b/elf/dl-debug.c +@@ -167,14 +167,3 @@ _dl_debug_initialize (ElfW(Addr) ldbase, Lmid_t ns) + + return &r->base; + } +- +- +-/* This function exists solely to have a breakpoint set on it by the +- debugger. The debugger is supposed to find this function's address by +- examining the r_brk member of struct r_debug, but GDB 4.15 in fact looks +- for this particular symbol name in the PT_INTERP file. */ +-void +-_dl_debug_state (void) +-{ +-} +-rtld_hidden_def (_dl_debug_state) +diff --git a/elf/dl-debug_state.c b/elf/dl-debug_state.c +new file mode 100644 +index 0000000000000000..40c134a49e2455f3 +--- /dev/null ++++ b/elf/dl-debug_state.c +@@ -0,0 +1,30 @@ ++/* Debugger hook called after dynamic linker updates. ++ Copyright (C) 1996-2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++/* This function exists solely to have a breakpoint set on it by the ++ debugger. The debugger is supposed to find this function's address by ++ examining the r_brk member of struct r_debug, but GDB 4.15 in fact looks ++ for this particular symbol name in the PT_INTERP file. Therefore, ++ this function must not be inlined. */ ++void ++_dl_debug_state (void) ++{ ++} ++rtld_hidden_def (_dl_debug_state) diff --git a/SOURCES/glibc-RHEL-106206.patch b/SOURCES/glibc-RHEL-106206.patch new file mode 100644 index 0000000..d8232fc --- /dev/null +++ b/SOURCES/glibc-RHEL-106206.patch @@ -0,0 +1,34 @@ +commit 87afbd7a1ad9c1dd116921817fa97198171045db +Author: Sam James +Date: Mon Jul 28 21:55:30 2025 +0100 + + inet-fortified: fix namespace violation (bug 33227) + + We need to use __sz, not sz, as we do elsewhere. + + Reviewed-by: Florian Weimer + +diff --git a/inet/bits/inet-fortified.h b/inet/bits/inet-fortified.h +index 8420a4b7fb41086f..5d16b1f871c49e6f 100644 +--- a/inet/bits/inet-fortified.h ++++ b/inet/bits/inet-fortified.h +@@ -38,15 +38,15 @@ __fortify_function int + __NTH (inet_pton (int __af, const char *__restrict __src, + void * __restrict __dst)) + { +- size_t sz = 0; ++ size_t __sz = 0; + if (__af == AF_INET) +- sz = sizeof (struct in_addr); ++ __sz = sizeof (struct in_addr); + else if (__af == AF_INET6) +- sz = sizeof (struct in6_addr); ++ __sz = sizeof (struct in6_addr); + else + return __inet_pton_alias (__af, __src, __dst); + +- return __glibc_fortify (inet_pton, sz, sizeof (char), ++ return __glibc_fortify (inet_pton, __sz, sizeof (char), + __glibc_objsize (__dst), + __af, __src, __dst); + }; diff --git a/SOURCES/glibc-RHEL-107518.patch b/SOURCES/glibc-RHEL-107518.patch new file mode 100644 index 0000000..4c4d18c --- /dev/null +++ b/SOURCES/glibc-RHEL-107518.patch @@ -0,0 +1,39 @@ +commit e5363e6f460c2d58809bf10fc96d70fd1ef8b5b2 +Author: Jens Remus +Date: Fri Jul 25 15:40:03 2025 +0200 + + Use TLS initial-exec model for __libc_tsd_CTYPE_* thread variables [BZ #33234] + + Commit 10a66a8e421b ("Remove ") removed the TLS initial-exec + (IE) model attribute from the __libc_tsd_CTYPE_* thread variable declarations + and definitions. Commit a894f04d8776 ("Optimize __libc_tsd_* thread + variable access") restored it on declarations. + + Restore the TLS initial-exec model attribute on __libc_tsd_CTYPE_* thread + variable definitions. + + This resolves test tst-locale1 failure on s390 32-bit, when using a + GNU linker without the fix from GNU binutils commit aefebe82dc89 + ("IBM zSystems: Fix offset relative to static TLS"). + + Reviewed-by: Florian Weimer + +diff --git a/ctype/ctype-info.c b/ctype/ctype-info.c +index e0752b4a1af6df15..315cedcfaa357ead 100644 +--- a/ctype/ctype-info.c ++++ b/ctype/ctype-info.c +@@ -24,11 +24,11 @@ + __ctype_init before user code runs, but this does not happen for + threads in secondary namespaces. With the initializers, secondary + namespaces at least get locale data from the C locale. */ +-__thread const uint16_t * __libc_tsd_CTYPE_B ++__thread const uint16_t * __libc_tsd_CTYPE_B attribute_tls_model_ie + = (const uint16_t *) _nl_C_LC_CTYPE_class + 128; +-__thread const int32_t * __libc_tsd_CTYPE_TOLOWER ++__thread const int32_t * __libc_tsd_CTYPE_TOLOWER attribute_tls_model_ie + = (const int32_t *) _nl_C_LC_CTYPE_tolower + 128; +-__thread const int32_t * __libc_tsd_CTYPE_TOUPPER ++__thread const int32_t * __libc_tsd_CTYPE_TOUPPER attribute_tls_model_ie + = (const int32_t *) _nl_C_LC_CTYPE_toupper + 128; + + diff --git a/SOURCES/glibc-RHEL-107564.patch b/SOURCES/glibc-RHEL-107564.patch new file mode 100644 index 0000000..06cd360 --- /dev/null +++ b/SOURCES/glibc-RHEL-107564.patch @@ -0,0 +1,35 @@ +Downstream-only patch correcting the GLIBC_PRIVATE ABI preservation +change in glibc-RHEL-93320-19.patch. + +This patch adds a symbol alias that supplies the expect external +name _dl_find_object within libc.a, where the forwarder in +elf/libc-dl_find_object.c no longer exists after the changes +in glibc-RHEL-93320-19.patch. It also brings back the +tst-dl_find_object-static static linking test. + +diff --git a/elf/Makefile b/elf/Makefile +index ba11f3a8b81e7218..7b75afda32bcd579 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -281,6 +281,7 @@ tests-static-normal := \ + # tests-static-normal + + tests-static-internal := \ ++ tst-dl_find_object-static \ + tst-ptrguard1-static \ + tst-stackguard1-static \ + tst-tls1-static \ +diff --git a/elf/dl-find_object.c b/elf/dl-find_object.c +index 99797580066cdce8..62a8a61f6b6032cf 100644 +--- a/elf/dl-find_object.c ++++ b/elf/dl-find_object.c +@@ -464,6 +464,9 @@ __dl_find_object_internal (void *pc1, struct dl_find_object *result) + } /* Transaction retry loop. */ + } + rtld_hidden_def (__dl_find_object_internal) ++#ifndef SHARED ++strong_alias (__dl_find_object_internal, _dl_find_object) ++#endif + + /* _dlfo_process_initial is called twice. First to compute the array + sizes from the initial loaded mappings. Second to fill in the diff --git a/SOURCES/glibc-RHEL-108220.patch b/SOURCES/glibc-RHEL-108220.patch new file mode 100644 index 0000000..d6382ae --- /dev/null +++ b/SOURCES/glibc-RHEL-108220.patch @@ -0,0 +1,18 @@ +Downstream-only patch to remove duplicate Makefile target entry for +tst-dlmopen1mod. + +Conflict resolution in glibc-RHEL-93320-4.patch led to the duplicate +tst-dlmopen1mod entry. Therefore remove it. + +diff --git a/elf/Makefile b/elf/Makefile +index 190ee83120c498a3..e8587b10c1a8bedd 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -811,7 +811,6 @@ modules-names = \ + tst-dl_find_object-mod7 \ + tst-dl_find_object-mod8 \ + tst-dl_find_object-mod9 \ +- tst-dlmopen1mod \ + tst-dlclose-lazy-mod1 \ + tst-dlclose-lazy-mod2 \ + tst-dlmopen-dlerror-mod \ diff --git a/SOURCES/glibc-RHEL-108221.patch b/SOURCES/glibc-RHEL-108221.patch new file mode 100644 index 0000000..5702bd9 --- /dev/null +++ b/SOURCES/glibc-RHEL-108221.patch @@ -0,0 +1,36 @@ +In glibc-RHEL-93320-9.patch, the elf/tst-dl_find_object test was +added. It was later disabled in glibc-RHEL-93320-19.patch, +as noted in the patch description. This was missed when the +patch was re-added in glibc-RHEL-107564.patch. The test remains +valuable because we do not test _dl_find_object in libc.a elsewhere +in the glibc build, so this patch disables just the failing subtest, +and puts an explanation directly into the test. + +diff --git a/elf/tst-dl_find_object.c b/elf/tst-dl_find_object.c +index d8c217545d116453..6bfda7bd23a34c0d 100644 +--- a/elf/tst-dl_find_object.c ++++ b/elf/tst-dl_find_object.c +@@ -231,6 +231,7 @@ do_test (void) + check (map_start, &expected, __LINE__); + check (map_end, &expected, __LINE__); + ++#ifndef FOR_STATIC + /* Check that _dl_find_object works from a shared object (mostly for + static dlopen). */ + __typeof (_dl_find_object) *find_object +@@ -238,6 +239,15 @@ do_test (void) + struct dl_find_object actual; + TEST_COMPARE (find_object (&main_program_data, &actual), 0); + check (&main_program_data, &actual, __LINE__); /* Reversed check. */ ++#else ++ /* Downstream, _dl_find_object does not work after static dlopen ++ because the ld.so copy loaded as part of static dlopen is not ++ initialized. Upstream, we redirect _dl_find_object to the ++ statically version from the main program by patching a function ++ pointer in _rtld_global_ro. Downstream, we have not changed the ++ layout of _rtld_global_ro, so this patching is missing. */ ++ printf ("info: skipping dlopen-based test for static build\n"); ++#endif + + return 0; + } diff --git a/SOURCES/glibc-RHEL-24168-1.patch b/SOURCES/glibc-RHEL-24168-1.patch new file mode 100644 index 0000000..b645f32 --- /dev/null +++ b/SOURCES/glibc-RHEL-24168-1.patch @@ -0,0 +1,226 @@ +Downstream-only patch to add arc4random to support/ for use in qsort +testing. + +The arc4random implementation is up-to-date with upstream commit +2642002380aafb71a1d3b569b6d7ebeab3284816, with minor changes to keep +everything self-contained within support infrastructure. Unlike the +upstream version, this implementation is a cancellation point. + +diff --git a/support/Makefile b/support/Makefile +index d6d03c2ed3af3e6d..bffcb06d7185d674 100644 +--- a/support/Makefile ++++ b/support/Makefile +@@ -41,6 +41,8 @@ libsupport-routines = \ + resolv_response_context_free \ + resolv_test \ + set_fortify_handler \ ++ support-arc4random \ ++ support-arc4random_uniform \ + support-open-dev-null-range \ + support_become_root \ + support_can_chroot \ +diff --git a/support/support-arc4random.c b/support/support-arc4random.c +new file mode 100644 +index 0000000000000000..c4462b098c68cef5 +--- /dev/null ++++ b/support/support-arc4random.c +@@ -0,0 +1,99 @@ ++/* Pseudo Random Number Generator ++ Copyright (C) 2022-2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static void ++arc4random_getrandom_failure (void) ++{ ++ __libc_fatal ("Fatal glibc error: cannot get entropy for arc4random\n"); ++} ++ ++void ++arc4random_buf (void *p, size_t n) ++{ ++ static int seen_initialized; ++ ssize_t l; ++ int fd; ++ ++ if (n == 0) ++ return; ++ ++ for (;;) ++ { ++ l = TEMP_FAILURE_RETRY (getrandom (p, n, 0)); ++ if (l > 0) ++ { ++ if ((size_t) l == n) ++ return; /* Done reading, success. */ ++ p = (uint8_t *) p + l; ++ n -= l; ++ continue; /* Interrupted by a signal; keep going. */ ++ } ++ else if (l < 0 && errno == ENOSYS) ++ break; /* No syscall, so fallback to /dev/urandom. */ ++ arc4random_getrandom_failure (); ++ } ++ ++ if (atomic_load_relaxed (&seen_initialized) == 0) ++ { ++ /* Poll /dev/random as an approximation of RNG initialization. */ ++ struct pollfd pfd = { .events = POLLIN }; ++ pfd.fd = TEMP_FAILURE_RETRY ( ++ __open64_nocancel ("/dev/random", O_RDONLY | O_CLOEXEC | O_NOCTTY)); ++ if (pfd.fd < 0) ++ arc4random_getrandom_failure (); ++ if (TEMP_FAILURE_RETRY (poll (&pfd, 1, -1)) < 0) ++ arc4random_getrandom_failure (); ++ if (__close_nocancel (pfd.fd) < 0) ++ arc4random_getrandom_failure (); ++ atomic_store_relaxed (&seen_initialized, 1); ++ } ++ ++ fd = TEMP_FAILURE_RETRY ( ++ __open64_nocancel ("/dev/urandom", O_RDONLY | O_CLOEXEC | O_NOCTTY)); ++ if (fd < 0) ++ arc4random_getrandom_failure (); ++ for (;;) ++ { ++ l = TEMP_FAILURE_RETRY (__read_nocancel (fd, p, n)); ++ if (l <= 0) ++ arc4random_getrandom_failure (); ++ if ((size_t) l == n) ++ break; /* Done reading, success. */ ++ p = (uint8_t *) p + l; ++ n -= l; ++ } ++ if (__close_nocancel (fd) < 0) ++ arc4random_getrandom_failure (); ++} ++ ++uint32_t ++arc4random (void) ++{ ++ uint32_t r; ++ arc4random_buf (&r, sizeof (r)); ++ return r; ++} +diff --git a/support/support-arc4random_uniform.c b/support/support-arc4random_uniform.c +new file mode 100644 +index 0000000000000000..20108e7409cca81b +--- /dev/null ++++ b/support/support-arc4random_uniform.c +@@ -0,0 +1,70 @@ ++/* Random pseudo generator number which returns a single 32 bit value ++ uniformly distributed but with an upper_bound. ++ Copyright (C) 2022-2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++/* Return a uniformly distributed random number less than N. The algorithm ++ calculates a mask being the lowest power of two bounding the upper bound ++ N, successively queries new random values, and rejects values outside of ++ the request range. ++ ++ For reject values, it also tries if the remaining entropy could fit on ++ the asked range after range adjustment. ++ ++ The algorithm avoids modulo and divide operations, which might be costly ++ depending on the architecture. */ ++uint32_t ++arc4random_uniform (uint32_t n) ++{ ++ if (n <= 1) ++ /* There is no valid return value for a zero limit, and 0 is the ++ only possible result for limit 1. */ ++ return 0; ++ ++ /* Powers of two are easy. */ ++ if (powerof2 (n)) ++ return arc4random () & (n - 1); ++ ++ /* mask is the smallest power of 2 minus 1 number larger than n. */ ++ int z = __builtin_clz (n); ++ uint32_t mask = ~UINT32_C(0) >> z; ++ int bits = CHAR_BIT * sizeof (uint32_t) - z; ++ ++ while (1) ++ { ++ uint32_t value = arc4random (); ++ ++ /* Return if the lower power of 2 minus 1 satisfy the condition. */ ++ uint32_t r = value & mask; ++ if (r < n) ++ return r; ++ ++ /* Otherwise check if remaining bits of entropy provides fits in the ++ bound. */ ++ for (int bits_left = z; bits_left >= bits; bits_left -= bits) ++ { ++ value >>= bits; ++ r = value & mask; ++ if (r < n) ++ return r; ++ } ++ } ++} +diff --git a/support/support.h b/support/support.h +index b69f588e2edce6be..ed7862daf9e4120a 100644 +--- a/support/support.h ++++ b/support/support.h +@@ -220,6 +220,19 @@ void support_stack_free (struct support_stack *stack); + The returned value is the lowest file descriptor number. */ + int support_open_dev_null_range (int num, int flags, mode_t mode); + ++/* Return a random integer between zero and 2**32-1 (inclusive). */ ++extern uint32_t arc4random (void) ++ __THROW __wur; ++ ++/* Fill the buffer with random data. */ ++extern void arc4random_buf (void *__buf, size_t __size) ++ __THROW __nonnull ((1)); ++ ++/* Return a random number between zero (inclusive) and the specified ++ limit (exclusive). */ ++extern uint32_t arc4random_uniform (__uint32_t __upper_bound) ++ __THROW __wur; ++ + __END_DECLS + + #endif /* SUPPORT_H */ diff --git a/SOURCES/glibc-RHEL-24168-10.patch b/SOURCES/glibc-RHEL-24168-10.patch new file mode 100644 index 0000000..ae3fc8a --- /dev/null +++ b/SOURCES/glibc-RHEL-24168-10.patch @@ -0,0 +1,43 @@ +commit f8cfb6836e8d91bb789b2e7fd65338d6f5bd459c +Author: Florian Weimer +Date: Wed Nov 8 15:18:02 2023 +0100 + + stdlib: Avoid element self-comparisons in qsort + + This improves compatibility with applications which assume that qsort + does not invoke the comparison function with equal pointer arguments. + + The newly introduced branches should be predictable, as leading to a + call to the comparison function. If the prediction fails, we avoid + calling the function. + + Reviewed-by: Adhemerval Zanella + +diff --git a/stdlib/qsort.c b/stdlib/qsort.c +index cb1619aa0ae7de72..2ee39e2c492f792e 100644 +--- a/stdlib/qsort.c ++++ b/stdlib/qsort.c +@@ -137,7 +137,7 @@ siftdown (void *base, size_t size, size_t k, size_t n, + if (j < n && cmp (base + (j * size), base + ((j + 1) * size), arg) < 0) + j++; + +- if (cmp (base + (k * size), base + (j * size), arg) >= 0) ++ if (j == k || cmp (base + (k * size), base + (j * size), arg) >= 0) + break; + + do_swap (base + (size * j), base + (k * size), size, swap_type); +@@ -333,10 +333,12 @@ __qsort_r (void *const pbase, size_t total_elems, size_t size, + that this algorithm runs much faster than others. */ + do + { +- while ((*cmp) ((void *) left_ptr, (void *) mid, arg) < 0) ++ while (left_ptr != mid ++ && (*cmp) ((void *) left_ptr, (void *) mid, arg) < 0) + left_ptr += size; + +- while ((*cmp) ((void *) mid, (void *) right_ptr, arg) < 0) ++ while (right_ptr != mid ++ && (*cmp) ((void *) mid, (void *) right_ptr, arg) < 0) + right_ptr -= size; + + if (left_ptr < right_ptr) diff --git a/SOURCES/glibc-RHEL-24168-11.patch b/SOURCES/glibc-RHEL-24168-11.patch new file mode 100644 index 0000000..ac24cde --- /dev/null +++ b/SOURCES/glibc-RHEL-24168-11.patch @@ -0,0 +1,25 @@ +commit e4d8117b82065dc72e8df80097360e7c05a349b9 +Author: Florian Weimer +Date: Tue Nov 21 16:45:35 2023 +0100 + + stdlib: Avoid another self-comparison in qsort + + In the insertion phase, we could run off the start of the array if the + comparison function never runs zero. In that case, it never finds the + initial element that terminates the iteration. + + Reviewed-by: Adhemerval Zanella + +diff --git a/stdlib/qsort.c b/stdlib/qsort.c +index 2ee39e2c492f792e..0d5f8b92e8072965 100644 +--- a/stdlib/qsort.c ++++ b/stdlib/qsort.c +@@ -218,7 +218,7 @@ insertion_sort_qsort_partitions (void *const pbase, size_t total_elems, + while ((run_ptr += size) <= end_ptr) + { + tmp_ptr = run_ptr - size; +- while (cmp (run_ptr, tmp_ptr, arg) < 0) ++ while (run_ptr != tmp_ptr && cmp (run_ptr, tmp_ptr, arg) < 0) + tmp_ptr -= size; + + tmp_ptr += size; diff --git a/SOURCES/glibc-RHEL-24168-12.patch b/SOURCES/glibc-RHEL-24168-12.patch new file mode 100644 index 0000000..e43ecde --- /dev/null +++ b/SOURCES/glibc-RHEL-24168-12.patch @@ -0,0 +1,273 @@ +commit 55364e1f7dfab372f0710513c4d1c967c4965f71 +Author: Florian Weimer +Date: Tue Nov 21 16:45:35 2023 +0100 + + stdlib: Handle various corner cases in the fallback heapsort for qsort + + The previous implementation did not consistently apply the rule that + the child nodes of node K are at 2 * K + 1 and 2 * K + 2, or + that the parent node is at (K - 1) / 2. + + Add an internal test that targets the heapsort implementation + directly. + + Reported-by: Stepan Golosunov + Reviewed-by: Adhemerval Zanella + +diff --git a/stdlib/Makefile b/stdlib/Makefile +index 4039e5395eeea2b0..ee005ce8caa48abe 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile +@@ -254,6 +254,7 @@ tests := \ + # tests + + tests-internal := \ ++ tst-qsort4 \ + tst-strtod1i \ + tst-strtod3 \ + tst-strtod4 \ +diff --git a/stdlib/qsort.c b/stdlib/qsort.c +index 0d5f8b92e8072965..b207c12d2f0a38cc 100644 +--- a/stdlib/qsort.c ++++ b/stdlib/qsort.c +@@ -126,29 +126,44 @@ pop (stack_node *top, char **lo, char **hi, size_t *depth) + return top; + } + +-/* NB: N is inclusive bound for BASE. */ ++/* Establish the heap condition at index K, that is, the key at K will ++ not be less than either of its children, at 2 * K + 1 and 2 * K + 2 ++ (if they exist). N is the last valid index. */ + static inline void + siftdown (void *base, size_t size, size_t k, size_t n, + enum swap_type_t swap_type, __compar_d_fn_t cmp, void *arg) + { +- while (k <= n / 2) ++ /* There can only be a heap condition violation if there are ++ children. */ ++ while (2 * k + 1 <= n) + { +- size_t j = 2 * k; ++ /* Left child. */ ++ size_t j = 2 * k + 1; ++ /* If the right child is larger, use it. */ + if (j < n && cmp (base + (j * size), base + ((j + 1) * size), arg) < 0) + j++; + ++ /* If k is already >= to its children, we are done. */ + if (j == k || cmp (base + (k * size), base + (j * size), arg) >= 0) + break; + ++ /* Heal the violation. */ + do_swap (base + (size * j), base + (k * size), size, swap_type); ++ ++ /* Swapping with j may have introduced a violation at j. Fix ++ it in the next loop iteration. */ + k = j; + } + } + ++/* Establish the heap condition for the indices 0 to N (inclusive). */ + static inline void + heapify (void *base, size_t size, size_t n, enum swap_type_t swap_type, + __compar_d_fn_t cmp, void *arg) + { ++ /* If n is odd, k = n / 2 has a left child at n, so this is the ++ largest index that can have a heap condition violation regarding ++ its children. */ + size_t k = n / 2; + while (1) + { +@@ -158,32 +173,38 @@ heapify (void *base, size_t size, size_t n, enum swap_type_t swap_type, + } + } + +-/* A non-recursive heapsort, used on introsort implementation as a fallback +- routine with worst-case performance of O(nlog n) and worst-case space +- complexity of O(1). It sorts the array starting at BASE and ending at +- END, with each element of SIZE bytes. The SWAP_TYPE is the callback +- function used to swap elements, and CMP is the function used to compare +- elements. */ ++/* A non-recursive heapsort, used on introsort implementation as a ++ fallback routine with worst-case performance of O(nlog n) and ++ worst-case space complexity of O(1). It sorts the array starting ++ at BASE and ending at END (inclusive), with each element of SIZE ++ bytes. The SWAP_TYPE is the callback function used to swap ++ elements, and CMP is the function used to compare elements. */ + static void + heapsort_r (void *base, void *end, size_t size, enum swap_type_t swap_type, + __compar_d_fn_t cmp, void *arg) + { +- const size_t count = ((uintptr_t) end - (uintptr_t) base) / size; +- +- if (count < 2) ++ size_t n = ((uintptr_t) end - (uintptr_t) base) / size; ++ if (n <= 1) ++ /* Handled by insertion sort. */ + return; + +- size_t n = count - 1; +- + /* Build the binary heap, largest value at the base[0]. */ + heapify (base, size, n, swap_type, cmp, arg); + +- /* On each iteration base[0:n] is the binary heap, while base[n:count] +- is sorted. */ +- while (n > 0) ++ while (true) + { ++ /* Indices 0 .. n contain the binary heap. Extract the largest ++ element put it into the final position in the array. */ + do_swap (base, base + (n * size), size, swap_type); ++ ++ /* The heap is now one element shorter. */ + n--; ++ if (n == 0) ++ break; ++ ++ /* By swapping in elements 0 and the previous value of n (now at ++ n + 1), we likely introduced a heap condition violation. Fix ++ it for the reduced heap. */ + siftdown (base, size, 0, n, swap_type, cmp, arg); + } + } +diff --git a/stdlib/tst-qsort4.c b/stdlib/tst-qsort4.c +new file mode 100644 +index 0000000000000000..a7abaa1a37461666 +--- /dev/null ++++ b/stdlib/tst-qsort4.c +@@ -0,0 +1,134 @@ ++/* Test the heapsort implementation behind qsort. ++ Copyright (C) 2023 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "qsort.c" ++ ++#include ++#include ++#include ++ ++static int ++cmp (const void *a1, const void *b1, void *closure) ++{ ++ const signed char *a = a1; ++ const signed char *b = b1; ++ return *a - *b; ++} ++ ++/* Wrapper around heapsort_r that set ups the required variables. */ ++static void ++heapsort_wrapper (void *const pbase, size_t total_elems, size_t size, ++ __compar_d_fn_t cmp, void *arg) ++{ ++ char *base_ptr = (char *) pbase; ++ char *lo = base_ptr; ++ char *hi = &lo[size * (total_elems - 1)]; ++ ++ if (total_elems <= 1) ++ /* Avoid lossage with unsigned arithmetic below. */ ++ return; ++ ++ enum swap_type_t swap_type; ++ if (is_aligned (pbase, size, 8)) ++ swap_type = SWAP_WORDS_64; ++ else if (is_aligned (pbase, size, 4)) ++ swap_type = SWAP_WORDS_32; ++ else ++ swap_type = SWAP_BYTES; ++ heapsort_r (lo, hi, size, swap_type, cmp, arg); ++} ++ ++static void ++check_one_sort (signed char *array, int length) ++{ ++ signed char *copy = xmalloc (length); ++ memcpy (copy, array, length); ++ heapsort_wrapper (copy, length, 1, cmp, NULL); ++ ++ /* Verify that the result is sorted. */ ++ for (int i = 1; i < length; ++i) ++ if (copy[i] < copy[i - 1]) ++ { ++ support_record_failure (); ++ printf ("error: sorting failure for length %d at offset %d\n", ++ length, i - 1); ++ printf ("input:"); ++ for (int i = 0; i < length; ++i) ++ printf (" %d", array[i]); ++ printf ("\noutput:"); ++ for (int i = 0; i < length; ++i) ++ printf (" %d", copy[i]); ++ putchar ('\n'); ++ break; ++ } ++ ++ /* Verify that no elements went away or were added. */ ++ { ++ int expected_counts[256]; ++ for (int i = 0; i < length; ++i) ++ ++expected_counts[array[i] & 0xff]; ++ int actual_counts[256]; ++ for (int i = 0; i < length; ++i) ++ ++actual_counts[copy[i] & 0xff]; ++ for (int i = 0; i < 256; ++i) ++ TEST_COMPARE (expected_counts[i], expected_counts[i]); ++ } ++ ++ free (copy); ++} ++ ++/* Enumerate all possible combinations of LENGTH elements. */ ++static void ++check_combinations (int length, signed char *start, int offset) ++{ ++ if (offset == length) ++ check_one_sort (start, length); ++ else ++ for (int i = 0; i < length; ++i) ++ { ++ start[offset] = i; ++ check_combinations(length, start, offset + 1); ++ } ++} ++ ++static int ++do_test (void) ++{ ++ /* A random permutation of 20 values. */ ++ check_one_sort ((signed char[20]) {5, 12, 16, 10, 14, 11, 9, 13, 8, 15, ++ 0, 17, 3, 7, 1, 18, 2, 19, 4, 6}, 20); ++ ++ ++ /* A permutation that appeared during adversarial testing for the ++ quicksort pass. */ ++ check_one_sort ((signed char[16]) {15, 3, 4, 2, 1, 0, 8, 7, 6, 5, 14, ++ 13, 12, 11, 10, 9}, 16); ++ ++ /* Array lengths 2 and less are not handled by heapsort_r and ++ deferred to insertion sort. */ ++ for (int i = 3; i <= 8; ++i) ++ { ++ signed char *buf = xmalloc (i); ++ check_combinations (i, buf, 0); ++ free (buf); ++ } ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-24168-13.patch b/SOURCES/glibc-RHEL-24168-13.patch new file mode 100644 index 0000000..9574444 --- /dev/null +++ b/SOURCES/glibc-RHEL-24168-13.patch @@ -0,0 +1,248 @@ +commit 64e4acf24da15c11cb83f933947df3b2e8a700cd +Author: Florian Weimer +Date: Tue Nov 21 16:45:35 2023 +0100 + + stdlib: The qsort implementation needs to use heapsort in more cases + + The existing logic avoided internal stack overflow. To avoid + a denial-of-service condition with adversarial input, it is necessary + to fall over to heapsort if tail-recursing deeply, too, which does + not result in a deep stack of pending partitions. + + The new test stdlib/tst-qsort5 is based on Douglas McIlroy's paper + on this subject. + + Reviewed-by: Adhemerval Zanella + +Conflicts: + stdlib/Makefile: Adjust for getenv tests in glibc-RHEL-67692-4.patch. + +diff --git a/stdlib/Makefile b/stdlib/Makefile +index ee005ce8caa48abe..a1a511da37f0c18e 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile +@@ -212,6 +212,7 @@ tests := \ + tst-qsort \ + tst-qsort2 \ + tst-qsort3 \ ++ tst-qsort5 \ + tst-quick_exit \ + tst-rand48 \ + tst-rand48-2 \ +@@ -483,6 +484,7 @@ $(objpfx)tst-setcontext3.out: tst-setcontext3.sh $(objpfx)tst-setcontext3 + $(common-objpfx)stdlib/; \ + $(evaluate-test) + ++$(objpfx)tst-qsort5: $(libm) + $(objpfx)tst-getenv-signal: $(shared-thread-library) + $(objpfx)tst-getenv-thread: $(shared-thread-library) + $(objpfx)tst-getenv-unsetenv: $(shared-thread-library) +diff --git a/stdlib/qsort.c b/stdlib/qsort.c +index b207c12d2f0a38cc..df8d0012c759e509 100644 +--- a/stdlib/qsort.c ++++ b/stdlib/qsort.c +@@ -390,14 +390,23 @@ __qsort_r (void *const pbase, size_t total_elems, size_t size, + { + if ((size_t) (hi - left_ptr) <= max_thresh) + /* Ignore both small partitions. */ +- top = pop (top, &lo, &hi, &depth); ++ { ++ top = pop (top, &lo, &hi, &depth); ++ --depth; ++ } + else +- /* Ignore small left partition. */ +- lo = left_ptr; ++ { ++ /* Ignore small left partition. */ ++ lo = left_ptr; ++ --depth; ++ } + } + else if ((size_t) (hi - left_ptr) <= max_thresh) + /* Ignore small right partition. */ +- hi = right_ptr; ++ { ++ hi = right_ptr; ++ --depth; ++ } + else if ((right_ptr - lo) > (hi - left_ptr)) + { + /* Push larger left partition indices. */ +diff --git a/stdlib/tst-qsort5.c b/stdlib/tst-qsort5.c +new file mode 100644 +index 0000000000000000..d3a88c30f8ffb135 +--- /dev/null ++++ b/stdlib/tst-qsort5.c +@@ -0,0 +1,171 @@ ++/* Adversarial test for qsort_r. ++ Copyright (C) 2023 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* The approach follows Douglas McIlroy, A Killer Adversary for ++ Quicksort. Software—Practice and Experience 29 (1999) 341-344. ++ Downloaded ++ (2023-11-17). */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++struct context ++{ ++ /* Called the gas value in the paper. This value is larger than all ++ other values (length minus one will do), so comparison with any ++ decided value has a known result. */ ++ int undecided_value; ++ ++ /* If comparing undecided values, one of them as to be assigned a ++ value to ensure consistency with future comparisons. This is the ++ value that will be used. Starts out at zero. */ ++ int next_decided; ++ ++ /* Used to trick pivot selection. Deciding the value for the last ++ seen undcided value in a decided/undecided comparison happens ++ to trick the many qsort implementations. */ ++ int last_undecided_index; ++ ++ /* This array contains the actually asigned values. The call to ++ qsort_r sorts a different array that contains indices into this ++ array. */ ++ int *decided_values; ++}; ++ ++static int ++compare_opponent (const void *l1, const void *r1, void *ctx1) ++{ ++ const int *l = l1; ++ const int *r = r1; ++ struct context *ctx = ctx1; ++ int rvalue = ctx->decided_values[*r]; ++ int lvalue = ctx->decided_values[*l]; ++ ++ if (lvalue == ctx->undecided_value) ++ { ++ if (rvalue == ctx->undecided_value) ++ { ++ /* Both values are undecided. In this case, make a decision ++ for the last-used undecided value. This is tweak is very ++ specific to quicksort. */ ++ if (*l == ctx->last_undecided_index) ++ { ++ ctx->decided_values[*l] = ctx->next_decided; ++ ++ctx->next_decided; ++ /* The undecided value or *r is greater. */ ++ return -1; ++ } ++ else ++ { ++ ctx->decided_values[*r] = ctx->next_decided; ++ ++ctx->next_decided; ++ /* The undecided value for *l is greater. */ ++ return 1; ++ } ++ } ++ else ++ { ++ ctx->last_undecided_index = *l; ++ return 1; ++ } ++ } ++ else ++ { ++ /* *l is a decided value. */ ++ if (rvalue == ctx->undecided_value) ++ { ++ ctx->last_undecided_index = *r; ++ /* The undecided value for *r is greater. */ ++ return -1; ++ } ++ else ++ return lvalue - rvalue; ++ } ++} ++ ++/* Return a pointer to the adversarial permutation of length N. */ ++static int * ++create_permutation (size_t n) ++{ ++ struct context ctx = ++ { ++ .undecided_value = n - 1, /* Larger than all other values. */ ++ .decided_values = xcalloc (n, sizeof (int)), ++ }; ++ for (size_t i = 0; i < n; ++i) ++ ctx.decided_values[i] = ctx.undecided_value; ++ int *scratch = xcalloc (n, sizeof (int)); ++ for (size_t i = 0; i < n; ++i) ++ scratch[i] = i; ++ qsort_r (scratch, n, sizeof (*scratch), compare_opponent, &ctx); ++ free (scratch); ++ return ctx.decided_values; ++} ++ ++/* Callback function for qsort which counts the number of invocations ++ in *CLOSURE. */ ++static int ++compare_counter (const void *l1, const void *r1, void *closure) ++{ ++ const int *l = l1; ++ const int *r = r1; ++ unsigned long long int *counter = closure; ++ ++*counter; ++ return *l - *r; ++} ++ ++/* Count the comparisons required for an adversarial permutation of ++ length N. */ ++static unsigned long long int ++count_comparisons (size_t n) ++{ ++ int *array = create_permutation (n); ++ unsigned long long int counter = 0; ++ qsort_r (array, n, sizeof (*array), compare_counter, &counter); ++ free (array); ++ return counter; ++} ++ ++/* Check the scaling factor for one adversarial permutation of length ++ N, and report some statistics. */ ++static void ++check_one_n (size_t n) ++{ ++ unsigned long long int count = count_comparisons (n); ++ double factor = count / (n * log (count)); ++ printf ("info: length %zu: %llu comparisons ~ %f * n * log (n)\n", ++ n, count, factor); ++ /* This is an arbitrary factor which is true for the current ++ implementation across a wide range of sizes. */ ++ TEST_VERIFY (factor <= 4.5); ++} ++ ++static int ++do_test (void) ++{ ++ check_one_n (100); ++ check_one_n (1000); ++ for (int i = 1; i <= 15; ++i) ++ check_one_n (i * 10 * 1000); ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-24168-14.patch b/SOURCES/glibc-RHEL-24168-14.patch new file mode 100644 index 0000000..db8cbed --- /dev/null +++ b/SOURCES/glibc-RHEL-24168-14.patch @@ -0,0 +1,105 @@ +commit b9390ba93676c4b1e87e218af5e7e4bb596312ac +Author: Florian Weimer +Date: Mon Dec 4 06:35:56 2023 +0100 + + stdlib: Fix array bounds protection in insertion sort phase of qsort + + The previous check did not do anything because tmp_ptr already + points before run_ptr due to the way it is initialized. + + Fixes commit e4d8117b82065dc72e8df80097360e7c05a349b9 + ("stdlib: Avoid another self-comparison in qsort"). + + Reviewed-by: Adhemerval Zanella + +diff --git a/stdlib/Makefile b/stdlib/Makefile +index a1a511da37f0c18e..82d9d909890853b7 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile +@@ -213,6 +213,7 @@ tests := \ + tst-qsort2 \ + tst-qsort3 \ + tst-qsort5 \ ++ tst-qsort6 \ + tst-quick_exit \ + tst-rand48 \ + tst-rand48-2 \ +diff --git a/stdlib/qsort.c b/stdlib/qsort.c +index df8d0012c759e509..3d5405705862ddf0 100644 +--- a/stdlib/qsort.c ++++ b/stdlib/qsort.c +@@ -239,7 +239,7 @@ insertion_sort_qsort_partitions (void *const pbase, size_t total_elems, + while ((run_ptr += size) <= end_ptr) + { + tmp_ptr = run_ptr - size; +- while (run_ptr != tmp_ptr && cmp (run_ptr, tmp_ptr, arg) < 0) ++ while (tmp_ptr != base_ptr && cmp (run_ptr, tmp_ptr, arg) < 0) + tmp_ptr -= size; + + tmp_ptr += size; +diff --git a/stdlib/tst-qsort6.c b/stdlib/tst-qsort6.c +new file mode 100644 +index 0000000000000000..8ec0a6b633bc8398 +--- /dev/null ++++ b/stdlib/tst-qsort6.c +@@ -0,0 +1,60 @@ ++/* Test qsort with invalid comparison functions. ++ Copyright (C) 2023 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++/* Invalid comparison function that always returns -1. */ ++static int ++invalid_compare_1 (const void *a1, const void *b1) ++{ ++ const int *a = a1; ++ const int *b = b1; ++ /* Check that the marker value matches, which means that we are ++ likely within the array. */ ++ TEST_COMPARE (*a, 842523635); ++ TEST_COMPARE (*b, 842523635); ++ TEST_VERIFY_EXIT (*a == 842523635); ++ TEST_VERIFY_EXIT (*b == 842523635); ++ return -1; ++} ++ ++/* Invalid comparison function that always returns 1. */ ++static int ++invalid_compare_2 (const void *a1, const void *b1) ++{ ++ const int *a = a1; ++ const int *b = b1; ++ TEST_COMPARE (*a, 842523635); ++ TEST_COMPARE (*b, 842523635); ++ TEST_VERIFY_EXIT (*a == 842523635); ++ TEST_VERIFY_EXIT (*b == 842523635); ++ return 1; ++} ++ ++static int ++do_test (void) ++{ ++ int array[] = {842523635, 842523635, 842523635, 842523635, 842523635}; ++ qsort (array, array_length (array), sizeof (array[0]), invalid_compare_1); ++ qsort (array, array_length (array), sizeof (array[0]), invalid_compare_2); ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-24168-15.patch b/SOURCES/glibc-RHEL-24168-15.patch new file mode 100644 index 0000000..7327901 --- /dev/null +++ b/SOURCES/glibc-RHEL-24168-15.patch @@ -0,0 +1,876 @@ +commit 709fbd3ec3595f2d1076b4fec09a739327459288 +Author: Adhemerval Zanella +Date: Mon Jan 15 11:07:21 2024 -0300 + + stdlib: Reinstate stable mergesort implementation on qsort + + The mergesort removal from qsort implementation (commit 03bf8357e8) + had the side-effect of making sorting nonstable. Although neither + POSIX nor C standard specify that qsort should be stable, it seems + that it has become an instance of Hyrum's law where multiple programs + expect it. + + Also, the resulting introsort implementation is not faster than + the previous mergesort (which makes the change even less appealing). + + This patch restores the previous mergesort implementation, with the + exception of machinery that checks the resulting allocation against + the _SC_PHYS_PAGES (it only adds complexity and the heuristic not + always make sense depending on the system configuration and load). + The alloca usage was replaced with a fixed-size buffer. + + For the fallback mechanism, the implementation uses heapsort. It is + simpler than quicksort, and it does not suffer from adversarial + inputs. With memory overcommit, it should be rarely triggered. + + The drawback is mergesort requires O(n) extra space, and since it is + allocated with malloc the function is AS-signal-unsafe. It should be + feasible to change it to use mmap, although I am not sure how urgent + it is. The heapsort is also nonstable, so programs that require a + stable sort would still be subject to this latent issue. + + The tst-qsort5 is removed since it will not create quicksort adversarial + inputs with the current qsort_r implementation. + + Checked on x86_64-linux-gnu and aarch64-linux-gnu. + Reviewed-by: Florian Weimer + +Conflicts: + stdlib/tst-qsort5.c: Deletion had conflicts due to copyright update. + +diff --git a/manual/argp.texi b/manual/argp.texi +index b77ad68285ecb732..0023441812d4e584 100644 +--- a/manual/argp.texi ++++ b/manual/argp.texi +@@ -735,7 +735,7 @@ for options, bad phase of the moon, etc. + @c hol_set_group ok + @c hol_find_entry ok + @c hol_sort @mtslocale @acucorrupt +-@c qsort dup ++@c qsort dup @acucorrupt + @c hol_entry_qcmp @mtslocale + @c hol_entry_cmp @mtslocale + @c group_cmp ok +diff --git a/manual/locale.texi b/manual/locale.texi +index f6afa5dc44a2a016..1b3f97839bb5d068 100644 +--- a/manual/locale.texi ++++ b/manual/locale.texi +@@ -253,7 +253,7 @@ The symbols in this section are defined in the header file @file{locale.h}. + @c calculate_head_size ok + @c __munmap ok + @c compute_hashval ok +-@c qsort dup ++@c qsort dup @acucorrupt + @c rangecmp ok + @c malloc @ascuheap @acsmem + @c strdup @ascuheap @acsmem +diff --git a/manual/search.texi b/manual/search.texi +index a550858478f7fc83..ffaadc46f51b18f9 100644 +--- a/manual/search.texi ++++ b/manual/search.texi +@@ -159,7 +159,7 @@ To sort an array using an arbitrary comparison function, use the + + @deftypefun void qsort (void *@var{array}, size_t @var{count}, size_t @var{size}, comparison_fn_t @var{compare}) + @standards{ISO, stdlib.h} +-@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++@safety{@prelim{}@mtsafe{}@assafe{}@acunsafe{@acucorrupt{}}} + The @code{qsort} function sorts the array @var{array}. The array + contains @var{count} elements, each of which is of size @var{size}. + +@@ -199,8 +199,9 @@ Functions}): + The @code{qsort} function derives its name from the fact that it was + originally implemented using the ``quick sort'' algorithm. + +-The implementation of @code{qsort} in this library is an in-place sort +-and uses a constant extra space (allocated on the stack). ++The implementation of @code{qsort} attempts to allocate auxiliary storage ++and use the merge sort algorithm, without violating C standard requirement ++that arguments passed to the comparison function point within the array. + @end deftypefun + + @node Search/Sort Example +diff --git a/stdlib/Makefile b/stdlib/Makefile +index 82d9d909890853b7..a9d91a57c08ac506 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile +@@ -212,7 +212,6 @@ tests := \ + tst-qsort \ + tst-qsort2 \ + tst-qsort3 \ +- tst-qsort5 \ + tst-qsort6 \ + tst-quick_exit \ + tst-rand48 \ +diff --git a/stdlib/qsort.c b/stdlib/qsort.c +index 3d5405705862ddf0..b95889047ba31193 100644 +--- a/stdlib/qsort.c ++++ b/stdlib/qsort.c +@@ -20,6 +20,7 @@ + Engineering a sort function; Jon Bentley and M. Douglas McIlroy; + Software - Practice and Experience; Vol. 23 (11), 1249-1265, 1993. */ + ++#include + #include + #include + #include +@@ -33,9 +34,13 @@ enum swap_type_t + { + SWAP_WORDS_64, + SWAP_WORDS_32, ++ SWAP_VOID_ARG, + SWAP_BYTES + }; + ++typedef uint32_t __attribute__ ((__may_alias__)) u32_alias_t; ++typedef uint64_t __attribute__ ((__may_alias__)) u64_alias_t; ++ + /* If this function returns true, elements can be safely copied using word + loads and stores. Otherwise, it might not be safe. BASE (as an integer) + must be a multiple of the word alignment. SIZE must be a multiple of +@@ -52,7 +57,6 @@ is_aligned (const void *base, size_t size, size_t wordsize) + static inline void + swap_words_64 (void * restrict a, void * restrict b, size_t n) + { +- typedef uint64_t __attribute__ ((__may_alias__)) u64_alias_t; + do + { + n -= 8; +@@ -65,7 +69,6 @@ swap_words_64 (void * restrict a, void * restrict b, size_t n) + static inline void + swap_words_32 (void * restrict a, void * restrict b, size_t n) + { +- typedef uint32_t __attribute__ ((__may_alias__)) u32_alias_t; + do + { + n -= 4; +@@ -89,43 +92,6 @@ do_swap (void * restrict a, void * restrict b, size_t size, + __memswap (a, b, size); + } + +-/* Discontinue quicksort algorithm when partition gets below this size. +- This particular magic number was chosen to work best on a Sun 4/260. */ +-#define MAX_THRESH 4 +- +-/* Stack node declarations used to store unfulfilled partition obligations. */ +-typedef struct +- { +- char *lo; +- char *hi; +- size_t depth; +- } stack_node; +- +-/* The stack needs log (total_elements) entries (we could even subtract +- log(MAX_THRESH)). Since total_elements has type size_t, we get as +- upper bound for log (total_elements): +- bits per byte (CHAR_BIT) * sizeof(size_t). */ +-enum { STACK_SIZE = CHAR_BIT * sizeof (size_t) }; +- +-static inline stack_node * +-push (stack_node *top, char *lo, char *hi, size_t depth) +-{ +- top->lo = lo; +- top->hi = hi; +- top->depth = depth; +- return ++top; +-} +- +-static inline stack_node * +-pop (stack_node *top, char **lo, char **hi, size_t *depth) +-{ +- --top; +- *lo = top->lo; +- *hi = top->hi; +- *depth = top->depth; +- return top; +-} +- + /* Establish the heap condition at index K, that is, the key at K will + not be less than either of its children, at 2 * K + 1 and 2 * K + 2 + (if they exist). N is the last valid index. */ +@@ -173,21 +139,35 @@ heapify (void *base, size_t size, size_t n, enum swap_type_t swap_type, + } + } + +-/* A non-recursive heapsort, used on introsort implementation as a +- fallback routine with worst-case performance of O(nlog n) and +- worst-case space complexity of O(1). It sorts the array starting +- at BASE and ending at END (inclusive), with each element of SIZE +- bytes. The SWAP_TYPE is the callback function used to swap +- elements, and CMP is the function used to compare elements. */ ++static enum swap_type_t ++get_swap_type (void *const pbase, size_t size) ++{ ++ if ((size & (sizeof (uint32_t) - 1)) == 0 ++ && ((uintptr_t) pbase) % __alignof__ (uint32_t) == 0) ++ { ++ if (size == sizeof (uint32_t)) ++ return SWAP_WORDS_32; ++ else if (size == sizeof (uint64_t) ++ && ((uintptr_t) pbase) % __alignof__ (uint64_t) == 0) ++ return SWAP_WORDS_64; ++ } ++ return SWAP_BYTES; ++} ++ ++ ++/* A non-recursive heapsort with worst-case performance of O(nlog n) and ++ worst-case space complexity of O(1). It sorts the array starting at ++ BASE with n + 1 elements of SIZE bytes. The SWAP_TYPE is the callback ++ function used to swap elements, and CMP is the function used to compare ++ elements. */ + static void +-heapsort_r (void *base, void *end, size_t size, enum swap_type_t swap_type, +- __compar_d_fn_t cmp, void *arg) ++heapsort_r (void *base, size_t n, size_t size, __compar_d_fn_t cmp, void *arg) + { +- size_t n = ((uintptr_t) end - (uintptr_t) base) / size; + if (n <= 1) +- /* Handled by insertion sort. */ + return; + ++ enum swap_type_t swap_type = get_swap_type (base, size); ++ + /* Build the binary heap, largest value at the base[0]. */ + heapify (base, size, n, swap_type, cmp, arg); + +@@ -209,226 +189,226 @@ heapsort_r (void *base, void *end, size_t size, enum swap_type_t swap_type, + } + } + +-static inline void +-insertion_sort_qsort_partitions (void *const pbase, size_t total_elems, +- size_t size, enum swap_type_t swap_type, +- __compar_d_fn_t cmp, void *arg) ++/* The maximum size in bytes required by mergesort that will be provided ++ through a buffer allocated in the stack. */ ++#define QSORT_STACK_SIZE 1024 ++ ++/* Elements larger than this value will be sorted through indirect sorting ++ to minimize the need to memory swap calls. */ ++#define INDIRECT_SORT_SIZE_THRES 32 ++ ++struct msort_param + { +- char *base_ptr = (char *) pbase; +- char *const end_ptr = &base_ptr[size * (total_elems - 1)]; +- char *tmp_ptr = base_ptr; +-#define min(x, y) ((x) < (y) ? (x) : (y)) +- const size_t max_thresh = MAX_THRESH * size; +- char *thresh = min(end_ptr, base_ptr + max_thresh); +- char *run_ptr; ++ size_t s; ++ enum swap_type_t var; ++ __compar_d_fn_t cmp; ++ void *arg; ++ char *t; ++}; + +- /* Find smallest element in first threshold and place it at the +- array's beginning. This is the smallest array element, +- and the operation speeds up insertion sort's inner loop. */ ++static void ++msort_with_tmp (const struct msort_param *p, void *b, size_t n) ++{ ++ char *b1, *b2; ++ size_t n1, n2; + +- for (run_ptr = tmp_ptr + size; run_ptr <= thresh; run_ptr += size) +- if (cmp (run_ptr, tmp_ptr, arg) < 0) +- tmp_ptr = run_ptr; ++ if (n <= 1) ++ return; + +- if (tmp_ptr != base_ptr) +- do_swap (tmp_ptr, base_ptr, size, swap_type); ++ n1 = n / 2; ++ n2 = n - n1; ++ b1 = b; ++ b2 = (char *) b + (n1 * p->s); + +- /* Insertion sort, running from left-hand-side up to right-hand-side. */ ++ msort_with_tmp (p, b1, n1); ++ msort_with_tmp (p, b2, n2); + +- run_ptr = base_ptr + size; +- while ((run_ptr += size) <= end_ptr) ++ char *tmp = p->t; ++ const size_t s = p->s; ++ __compar_d_fn_t cmp = p->cmp; ++ void *arg = p->arg; ++ switch (p->var) + { +- tmp_ptr = run_ptr - size; +- while (tmp_ptr != base_ptr && cmp (run_ptr, tmp_ptr, arg) < 0) +- tmp_ptr -= size; +- +- tmp_ptr += size; +- if (tmp_ptr != run_ptr) +- { +- char *trav; +- +- trav = run_ptr + size; +- while (--trav >= run_ptr) +- { +- char c = *trav; +- char *hi, *lo; +- +- for (hi = lo = trav; (lo -= size) >= tmp_ptr; hi = lo) +- *hi = *lo; +- *hi = c; +- } +- } ++ case SWAP_WORDS_32: ++ while (n1 > 0 && n2 > 0) ++ { ++ if (cmp (b1, b2, arg) <= 0) ++ { ++ *(u32_alias_t *) tmp = *(u32_alias_t *) b1; ++ b1 += sizeof (u32_alias_t); ++ --n1; ++ } ++ else ++ { ++ *(u32_alias_t *) tmp = *(u32_alias_t *) b2; ++ b2 += sizeof (u32_alias_t); ++ --n2; ++ } ++ tmp += sizeof (u32_alias_t); ++ } ++ break; ++ case SWAP_WORDS_64: ++ while (n1 > 0 && n2 > 0) ++ { ++ if (cmp (b1, b2, arg) <= 0) ++ { ++ *(u64_alias_t *) tmp = *(u64_alias_t *) b1; ++ b1 += sizeof (u64_alias_t); ++ --n1; ++ } ++ else ++ { ++ *(u64_alias_t *) tmp = *(u64_alias_t *) b2; ++ b2 += sizeof (u64_alias_t); ++ --n2; ++ } ++ tmp += sizeof (u64_alias_t); ++ } ++ break; ++ case SWAP_VOID_ARG: ++ while (n1 > 0 && n2 > 0) ++ { ++ if ((*cmp) (*(const void **) b1, *(const void **) b2, arg) <= 0) ++ { ++ *(void **) tmp = *(void **) b1; ++ b1 += sizeof (void *); ++ --n1; ++ } ++ else ++ { ++ *(void **) tmp = *(void **) b2; ++ b2 += sizeof (void *); ++ --n2; ++ } ++ tmp += sizeof (void *); ++ } ++ break; ++ default: ++ while (n1 > 0 && n2 > 0) ++ { ++ if (cmp (b1, b2, arg) <= 0) ++ { ++ tmp = (char *) __mempcpy (tmp, b1, s); ++ b1 += s; ++ --n1; ++ } ++ else ++ { ++ tmp = (char *) __mempcpy (tmp, b2, s); ++ b2 += s; ++ --n2; ++ } ++ } ++ break; + } +-} +- +-/* Order size using quicksort. This implementation incorporates +- four optimizations discussed in Sedgewick: + +- 1. Non-recursive, using an explicit stack of pointer that store the +- next array partition to sort. To save time, this maximum amount +- of space required to store an array of SIZE_MAX is allocated on the +- stack. Assuming a 32-bit (64 bit) integer for size_t, this needs +- only 32 * sizeof(stack_node) == 256 bytes (for 64 bit: 1024 bytes). +- Pretty cheap, actually. +- +- 2. Chose the pivot element using a median-of-three decision tree. +- This reduces the probability of selecting a bad pivot value and +- eliminates certain extraneous comparisons. ++ if (n1 > 0) ++ memcpy (tmp, b1, n1 * s); ++ memcpy (b, p->t, (n - n2) * s); ++} + +- 3. Only quicksorts TOTAL_ELEMS / MAX_THRESH partitions, leaving +- insertion sort to order the MAX_THRESH items within each partition. +- This is a big win, since insertion sort is faster for small, mostly +- sorted array segments. ++static void ++__attribute_used__ ++indirect_msort_with_tmp (const struct msort_param *p, void *b, size_t n, ++ size_t s) ++{ ++ /* Indirect sorting. */ ++ char *ip = (char *) b; ++ void **tp = (void **) (p->t + n * sizeof (void *)); ++ void **t = tp; ++ void *tmp_storage = (void *) (tp + n); + +- 4. The larger of the two sub-partitions is always pushed onto the +- stack first, with the algorithm then concentrating on the +- smaller partition. This *guarantees* no more than log (total_elems) +- stack size is needed (actually O(1) in this case)! */ ++ while ((void *) t < tmp_storage) ++ { ++ *t++ = ip; ++ ip += s; ++ } ++ msort_with_tmp (p, p->t + n * sizeof (void *), n); ++ ++ /* tp[0] .. tp[n - 1] is now sorted, copy around entries of ++ the original array. Knuth vol. 3 (2nd ed.) exercise 5.2-10. */ ++ char *kp; ++ size_t i; ++ for (i = 0, ip = (char *) b; i < n; i++, ip += s) ++ if ((kp = tp[i]) != ip) ++ { ++ size_t j = i; ++ char *jp = ip; ++ memcpy (tmp_storage, ip, s); ++ ++ do ++ { ++ size_t k = (kp - (char *) b) / s; ++ tp[j] = jp; ++ memcpy (jp, kp, s); ++ j = k; ++ jp = kp; ++ kp = tp[k]; ++ } ++ while (kp != ip); ++ ++ tp[j] = jp; ++ memcpy (jp, tmp_storage, s); ++ } ++} + + void + __qsort_r (void *const pbase, size_t total_elems, size_t size, + __compar_d_fn_t cmp, void *arg) + { +- char *base_ptr = (char *) pbase; +- +- const size_t max_thresh = MAX_THRESH * size; +- + if (total_elems <= 1) +- /* Avoid lossage with unsigned arithmetic below. */ + return; + +- enum swap_type_t swap_type; +- if (is_aligned (pbase, size, 8)) +- swap_type = SWAP_WORDS_64; +- else if (is_aligned (pbase, size, 4)) +- swap_type = SWAP_WORDS_32; +- else +- swap_type = SWAP_BYTES; ++ /* Align to the maximum size used by the swap optimization. */ ++ _Alignas (uint64_t) char tmp[QSORT_STACK_SIZE]; ++ size_t total_size = total_elems * size; ++ char *buf; + +- /* Maximum depth before quicksort switches to heapsort. */ +- size_t depth = 2 * (sizeof (size_t) * CHAR_BIT - 1 +- - __builtin_clzl (total_elems)); ++ if (size > INDIRECT_SORT_SIZE_THRES) ++ total_size = 2 * total_elems * sizeof (void *) + size; + +- if (total_elems > MAX_THRESH) ++ if (total_size < sizeof buf) ++ buf = tmp; ++ else + { +- char *lo = base_ptr; +- char *hi = &lo[size * (total_elems - 1)]; +- stack_node stack[STACK_SIZE]; +- stack_node *top = push (stack, NULL, NULL, depth); +- +- while (stack < top) +- { +- if (depth == 0) +- { +- heapsort_r (lo, hi, size, swap_type, cmp, arg); +- top = pop (top, &lo, &hi, &depth); +- continue; +- } +- +- char *left_ptr; +- char *right_ptr; +- +- /* Select median value from among LO, MID, and HI. Rearrange +- LO and HI so the three values are sorted. This lowers the +- probability of picking a pathological pivot value and +- skips a comparison for both the LEFT_PTR and RIGHT_PTR in +- the while loops. */ +- +- char *mid = lo + size * ((hi - lo) / size >> 1); +- +- if ((*cmp) ((void *) mid, (void *) lo, arg) < 0) +- do_swap (mid, lo, size, swap_type); +- if ((*cmp) ((void *) hi, (void *) mid, arg) < 0) +- do_swap (mid, hi, size, swap_type); +- else +- goto jump_over; +- if ((*cmp) ((void *) mid, (void *) lo, arg) < 0) +- do_swap (mid, lo, size, swap_type); +- jump_over:; +- +- left_ptr = lo + size; +- right_ptr = hi - size; +- +- /* Here's the famous ``collapse the walls'' section of quicksort. +- Gotta like those tight inner loops! They are the main reason +- that this algorithm runs much faster than others. */ +- do +- { +- while (left_ptr != mid +- && (*cmp) ((void *) left_ptr, (void *) mid, arg) < 0) +- left_ptr += size; +- +- while (right_ptr != mid +- && (*cmp) ((void *) mid, (void *) right_ptr, arg) < 0) +- right_ptr -= size; +- +- if (left_ptr < right_ptr) +- { +- do_swap (left_ptr, right_ptr, size, swap_type); +- if (mid == left_ptr) +- mid = right_ptr; +- else if (mid == right_ptr) +- mid = left_ptr; +- left_ptr += size; +- right_ptr -= size; +- } +- else if (left_ptr == right_ptr) +- { +- left_ptr += size; +- right_ptr -= size; +- break; +- } +- } +- while (left_ptr <= right_ptr); +- +- /* Set up pointers for next iteration. First determine whether +- left and right partitions are below the threshold size. If so, +- ignore one or both. Otherwise, push the larger partition's +- bounds on the stack and continue sorting the smaller one. */ +- +- if ((size_t) (right_ptr - lo) <= max_thresh) +- { +- if ((size_t) (hi - left_ptr) <= max_thresh) +- /* Ignore both small partitions. */ +- { +- top = pop (top, &lo, &hi, &depth); +- --depth; +- } +- else +- { +- /* Ignore small left partition. */ +- lo = left_ptr; +- --depth; +- } +- } +- else if ((size_t) (hi - left_ptr) <= max_thresh) +- /* Ignore small right partition. */ +- { +- hi = right_ptr; +- --depth; +- } +- else if ((right_ptr - lo) > (hi - left_ptr)) +- { +- /* Push larger left partition indices. */ +- top = push (top, lo, right_ptr, depth - 1); +- lo = left_ptr; +- } +- else +- { +- /* Push larger right partition indices. */ +- top = push (top, left_ptr, hi, depth - 1); +- hi = right_ptr; +- } +- } ++ int save = errno; ++ buf = malloc (total_size); ++ __set_errno (save); ++ if (buf == NULL) ++ { ++ /* Fallback to heapsort in case of memory failure. */ ++ heapsort_r (pbase, total_elems - 1, size, cmp, arg); ++ return; ++ } ++ } ++ ++ if (size > INDIRECT_SORT_SIZE_THRES) ++ { ++ const struct msort_param msort_param = ++ { ++ .s = sizeof (void *), ++ .cmp = cmp, ++ .arg = arg, ++ .var = SWAP_VOID_ARG, ++ .t = buf, ++ }; ++ indirect_msort_with_tmp (&msort_param, pbase, total_elems, size); ++ } ++ else ++ { ++ const struct msort_param msort_param = ++ { ++ .s = size, ++ .cmp = cmp, ++ .arg = arg, ++ .var = get_swap_type (pbase, size), ++ .t = buf, ++ }; ++ msort_with_tmp (&msort_param, pbase, total_elems); + } + +- /* Once the BASE_PTR array is partially sorted by quicksort the rest +- is completely sorted using insertion sort, since this is efficient +- for partitions below MAX_THRESH size. BASE_PTR points to the beginning +- of the array to sort, and END_PTR points at the very last element in +- the array (*not* one beyond it!). */ +- insertion_sort_qsort_partitions (pbase, total_elems, size, swap_type, cmp, +- arg); ++ if (buf != tmp) ++ free (buf); + } + libc_hidden_def (__qsort_r) + weak_alias (__qsort_r, qsort_r) +diff --git a/stdlib/tst-qsort4.c b/stdlib/tst-qsort4.c +index a7abaa1a37461666..4cf373f22e28fade 100644 +--- a/stdlib/tst-qsort4.c ++++ b/stdlib/tst-qsort4.c +@@ -30,35 +30,12 @@ cmp (const void *a1, const void *b1, void *closure) + return *a - *b; + } + +-/* Wrapper around heapsort_r that set ups the required variables. */ +-static void +-heapsort_wrapper (void *const pbase, size_t total_elems, size_t size, +- __compar_d_fn_t cmp, void *arg) +-{ +- char *base_ptr = (char *) pbase; +- char *lo = base_ptr; +- char *hi = &lo[size * (total_elems - 1)]; +- +- if (total_elems <= 1) +- /* Avoid lossage with unsigned arithmetic below. */ +- return; +- +- enum swap_type_t swap_type; +- if (is_aligned (pbase, size, 8)) +- swap_type = SWAP_WORDS_64; +- else if (is_aligned (pbase, size, 4)) +- swap_type = SWAP_WORDS_32; +- else +- swap_type = SWAP_BYTES; +- heapsort_r (lo, hi, size, swap_type, cmp, arg); +-} +- + static void + check_one_sort (signed char *array, int length) + { + signed char *copy = xmalloc (length); + memcpy (copy, array, length); +- heapsort_wrapper (copy, length, 1, cmp, NULL); ++ heapsort_r (copy, length - 1, 1, cmp, NULL); + + /* Verify that the result is sorted. */ + for (int i = 1; i < length; ++i) +diff --git a/stdlib/tst-qsort5.c b/stdlib/tst-qsort5.c +deleted file mode 100644 +index d3a88c30f8ffb135..0000000000000000 +--- a/stdlib/tst-qsort5.c ++++ /dev/null +@@ -1,171 +0,0 @@ +-/* Adversarial test for qsort_r. +- Copyright (C) 2023 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-/* The approach follows Douglas McIlroy, A Killer Adversary for +- Quicksort. Software—Practice and Experience 29 (1999) 341-344. +- Downloaded +- (2023-11-17). */ +- +-#include +-#include +-#include +-#include +-#include +- +-struct context +-{ +- /* Called the gas value in the paper. This value is larger than all +- other values (length minus one will do), so comparison with any +- decided value has a known result. */ +- int undecided_value; +- +- /* If comparing undecided values, one of them as to be assigned a +- value to ensure consistency with future comparisons. This is the +- value that will be used. Starts out at zero. */ +- int next_decided; +- +- /* Used to trick pivot selection. Deciding the value for the last +- seen undcided value in a decided/undecided comparison happens +- to trick the many qsort implementations. */ +- int last_undecided_index; +- +- /* This array contains the actually asigned values. The call to +- qsort_r sorts a different array that contains indices into this +- array. */ +- int *decided_values; +-}; +- +-static int +-compare_opponent (const void *l1, const void *r1, void *ctx1) +-{ +- const int *l = l1; +- const int *r = r1; +- struct context *ctx = ctx1; +- int rvalue = ctx->decided_values[*r]; +- int lvalue = ctx->decided_values[*l]; +- +- if (lvalue == ctx->undecided_value) +- { +- if (rvalue == ctx->undecided_value) +- { +- /* Both values are undecided. In this case, make a decision +- for the last-used undecided value. This is tweak is very +- specific to quicksort. */ +- if (*l == ctx->last_undecided_index) +- { +- ctx->decided_values[*l] = ctx->next_decided; +- ++ctx->next_decided; +- /* The undecided value or *r is greater. */ +- return -1; +- } +- else +- { +- ctx->decided_values[*r] = ctx->next_decided; +- ++ctx->next_decided; +- /* The undecided value for *l is greater. */ +- return 1; +- } +- } +- else +- { +- ctx->last_undecided_index = *l; +- return 1; +- } +- } +- else +- { +- /* *l is a decided value. */ +- if (rvalue == ctx->undecided_value) +- { +- ctx->last_undecided_index = *r; +- /* The undecided value for *r is greater. */ +- return -1; +- } +- else +- return lvalue - rvalue; +- } +-} +- +-/* Return a pointer to the adversarial permutation of length N. */ +-static int * +-create_permutation (size_t n) +-{ +- struct context ctx = +- { +- .undecided_value = n - 1, /* Larger than all other values. */ +- .decided_values = xcalloc (n, sizeof (int)), +- }; +- for (size_t i = 0; i < n; ++i) +- ctx.decided_values[i] = ctx.undecided_value; +- int *scratch = xcalloc (n, sizeof (int)); +- for (size_t i = 0; i < n; ++i) +- scratch[i] = i; +- qsort_r (scratch, n, sizeof (*scratch), compare_opponent, &ctx); +- free (scratch); +- return ctx.decided_values; +-} +- +-/* Callback function for qsort which counts the number of invocations +- in *CLOSURE. */ +-static int +-compare_counter (const void *l1, const void *r1, void *closure) +-{ +- const int *l = l1; +- const int *r = r1; +- unsigned long long int *counter = closure; +- ++*counter; +- return *l - *r; +-} +- +-/* Count the comparisons required for an adversarial permutation of +- length N. */ +-static unsigned long long int +-count_comparisons (size_t n) +-{ +- int *array = create_permutation (n); +- unsigned long long int counter = 0; +- qsort_r (array, n, sizeof (*array), compare_counter, &counter); +- free (array); +- return counter; +-} +- +-/* Check the scaling factor for one adversarial permutation of length +- N, and report some statistics. */ +-static void +-check_one_n (size_t n) +-{ +- unsigned long long int count = count_comparisons (n); +- double factor = count / (n * log (count)); +- printf ("info: length %zu: %llu comparisons ~ %f * n * log (n)\n", +- n, count, factor); +- /* This is an arbitrary factor which is true for the current +- implementation across a wide range of sizes. */ +- TEST_VERIFY (factor <= 4.5); +-} +- +-static int +-do_test (void) +-{ +- check_one_n (100); +- check_one_n (1000); +- for (int i = 1; i <= 15; ++i) +- check_one_n (i * 10 * 1000); +- return 0; +-} +- +-#include diff --git a/SOURCES/glibc-RHEL-24168-16.patch b/SOURCES/glibc-RHEL-24168-16.patch new file mode 100644 index 0000000..90d52b3 --- /dev/null +++ b/SOURCES/glibc-RHEL-24168-16.patch @@ -0,0 +1,27 @@ +commit 74d2731a5fb2676b64092bc25e7f193db1b17b2b +Author: Kuan-Wei Chiu +Date: Tue Jan 16 10:16:56 2024 +0800 + + stdlib: Fix heapsort for cases with exactly two elements + + When malloc fails to allocate a buffer and falls back to heapsort, the + current heapsort implementation does not perform sorting when there are + exactly two elements. Heapsort is now skipped only when there is + exactly one element. + + Signed-off-by: Kuan-Wei Chiu + Reviewed-by: Adhemerval Zanella + +diff --git a/stdlib/qsort.c b/stdlib/qsort.c +index b95889047ba31193..7b6c7e1f79974157 100644 +--- a/stdlib/qsort.c ++++ b/stdlib/qsort.c +@@ -163,7 +163,7 @@ get_swap_type (void *const pbase, size_t size) + static void + heapsort_r (void *base, size_t n, size_t size, __compar_d_fn_t cmp, void *arg) + { +- if (n <= 1) ++ if (n == 0) + return; + + enum swap_type_t swap_type = get_swap_type (base, size); diff --git a/SOURCES/glibc-RHEL-24168-17.patch b/SOURCES/glibc-RHEL-24168-17.patch new file mode 100644 index 0000000..5f8df13 --- /dev/null +++ b/SOURCES/glibc-RHEL-24168-17.patch @@ -0,0 +1,27 @@ +commit 1bb28b7b4f01709b841c86850e1bb83b554feafe +Author: Kuan-Wei Chiu +Date: Tue Jan 16 10:16:57 2024 +0800 + + stdlib: Verify heapsort for two-element cases + + Adjust the testing approach to start from scenarios with only 2 + elements, as insertion sort no longer handles such cases. + + Signed-off-by: Kuan-Wei Chiu + Reviewed-by: Adhemerval Zanella + +diff --git a/stdlib/tst-qsort4.c b/stdlib/tst-qsort4.c +index 4cf373f22e28fade..7909793d9eb3edc7 100644 +--- a/stdlib/tst-qsort4.c ++++ b/stdlib/tst-qsort4.c +@@ -96,9 +96,7 @@ do_test (void) + check_one_sort ((signed char[16]) {15, 3, 4, 2, 1, 0, 8, 7, 6, 5, 14, + 13, 12, 11, 10, 9}, 16); + +- /* Array lengths 2 and less are not handled by heapsort_r and +- deferred to insertion sort. */ +- for (int i = 3; i <= 8; ++i) ++ for (int i = 2; i <= 8; ++i) + { + signed char *buf = xmalloc (i); + check_combinations (i, buf, 0); diff --git a/SOURCES/glibc-RHEL-24168-18.patch b/SOURCES/glibc-RHEL-24168-18.patch new file mode 100644 index 0000000..8ae9f04 --- /dev/null +++ b/SOURCES/glibc-RHEL-24168-18.patch @@ -0,0 +1,32 @@ +commit 31bd548650673e8b5ae1a31f1c596ff8305a5d4c +Author: Adhemerval Zanella +Date: Wed Jan 17 08:08:01 2024 -0300 + + stdlib: Remove unused is_aligned function from qsort.c + + Checked on x86_64-linux-gnu. + +diff --git a/stdlib/qsort.c b/stdlib/qsort.c +index 7b6c7e1f79974157..8db8a81d182dd1fc 100644 +--- a/stdlib/qsort.c ++++ b/stdlib/qsort.c +@@ -41,19 +41,6 @@ enum swap_type_t + typedef uint32_t __attribute__ ((__may_alias__)) u32_alias_t; + typedef uint64_t __attribute__ ((__may_alias__)) u64_alias_t; + +-/* If this function returns true, elements can be safely copied using word +- loads and stores. Otherwise, it might not be safe. BASE (as an integer) +- must be a multiple of the word alignment. SIZE must be a multiple of +- WORDSIZE. Since WORDSIZE must be a multiple of the word alignment, and +- WORDSIZE is a power of two on all supported platforms, this function for +- speed merely checks that BASE and SIZE are both multiples of the word +- size. */ +-static inline bool +-is_aligned (const void *base, size_t size, size_t wordsize) +-{ +- return (((uintptr_t) base | size) & (wordsize - 1)) == 0; +-} +- + static inline void + swap_words_64 (void * restrict a, void * restrict b, size_t n) + { diff --git a/SOURCES/glibc-RHEL-24168-19.patch b/SOURCES/glibc-RHEL-24168-19.patch new file mode 100644 index 0000000..23510fe --- /dev/null +++ b/SOURCES/glibc-RHEL-24168-19.patch @@ -0,0 +1,51 @@ +commit dfa3394a605c8f6f25e4f827789bc89eca1d206c +Author: Xi Ruoyao +Date: Tue Jan 23 04:29:18 2024 +0800 + + qsort: Fix a typo causing unnecessary malloc/free (BZ 31276) + + In qsort_r we allocate a buffer sized QSORT_STACK_SIZE (1024) on stack + and we intend to use it if all elements can fit into it. But there is a + typo: + + if (total_size < sizeof buf) + buf = tmp; + else + /* allocate a buffer on heap and use it ... */ + + Here "buf" is a pointer, thus sizeof buf is just 4 or 8, instead of + 1024. There is also a minor issue that we should use "<=" instead of + "<". + + This bug is detected debugging some strange heap corruption running the + Ruby-3.3.0 test suite (on an experimental Linux From Scratch build using + Binutils-2.41.90 and Glibc trunk, and also Fedora Rawhide [1]). It + seems Ruby is doing some wild "optimization" by jumping into somewhere + in qsort_r instead of calling it normally, resulting in a double free of + buf if we allocate it on heap. The issue can be reproduced + deterministically with: + + LD_PRELOAD=/usr/lib/libc_malloc_debug.so MALLOC_CHECK_=3 \ + LD_LIBRARY_PATH=. ./ruby test/runner.rb test/ruby/test_enum.rb + + in Ruby-3.3.0 tree after building it. This change would hide the issue + for Ruby, but Ruby is likely still buggy (if using this "optimization" + sorting larger arrays). + + [1]:https://kojipkgs.fedoraproject.org/work/tasks/9729/111889729/build.log + + Signed-off-by: Xi Ruoyao + +diff --git a/stdlib/qsort.c b/stdlib/qsort.c +index 8db8a81d182dd1fc..2cdd5c1fe790f55c 100644 +--- a/stdlib/qsort.c ++++ b/stdlib/qsort.c +@@ -354,7 +354,7 @@ __qsort_r (void *const pbase, size_t total_elems, size_t size, + if (size > INDIRECT_SORT_SIZE_THRES) + total_size = 2 * total_elems * sizeof (void *) + size; + +- if (total_size < sizeof buf) ++ if (total_size <= sizeof tmp) + buf = tmp; + else + { diff --git a/SOURCES/glibc-RHEL-24168-2.patch b/SOURCES/glibc-RHEL-24168-2.patch new file mode 100644 index 0000000..aebb3f7 --- /dev/null +++ b/SOURCES/glibc-RHEL-24168-2.patch @@ -0,0 +1,344 @@ +commit d275970ab56f8ba6a3ca598aba75db4daabe5924 +Author: Adhemerval Zanella +Date: Fri Apr 8 09:57:57 2022 -0300 + + stdlib: Reflow and sort most variable assignments + +diff --git a/stdlib/Makefile b/stdlib/Makefile +index fe43bec0f9d581d5..03f8478c64408ed3 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile +@@ -22,49 +22,145 @@ subdir := stdlib + + include ../Makeconfig + +-headers := stdlib.h bits/stdlib.h bits/stdlib-ldbl.h bits/stdlib-float.h \ +- monetary.h bits/monetary-ldbl.h \ +- inttypes.h stdint.h bits/wordsize.h bits/timesize.h \ +- errno.h sys/errno.h bits/errno.h bits/types/error_t.h \ +- ucontext.h sys/ucontext.h bits/indirect-return.h \ +- alloca.h fmtmsg.h \ +- bits/stdlib-bsearch.h sys/random.h bits/stdint-intn.h \ +- bits/stdint-uintn.h bits/time64.h \ +- +-routines := \ +- atof atoi atol atoll \ +- abort \ +- bsearch qsort msort \ +- getenv putenv setenv secure-getenv \ +- exit on_exit atexit cxa_atexit cxa_finalize old_atexit \ +- quick_exit at_quick_exit cxa_at_quick_exit cxa_thread_atexit_impl \ +- abs labs llabs \ +- div ldiv lldiv \ +- mblen mbstowcs mbtowc wcstombs wctomb \ +- random random_r rand rand_r \ +- drand48 erand48 lrand48 nrand48 mrand48 jrand48 \ +- srand48 seed48 lcong48 \ +- drand48_r erand48_r lrand48_r nrand48_r mrand48_r jrand48_r \ +- srand48_r seed48_r lcong48_r \ +- drand48-iter getrandom getentropy \ +- strfromf strfromd strfroml \ +- strtol strtoul strtoll strtoull \ +- strtol_l strtoul_l strtoll_l strtoull_l \ +- strtof strtod strtold \ +- strtof_l strtod_l strtold_l \ +- strtof_nan strtod_nan strtold_nan \ +- system canonicalize \ +- a64l l64a \ +- rpmatch strfmon strfmon_l getsubopt xpg_basename fmtmsg \ +- getcontext setcontext makecontext swapcontext +-aux = grouping groupingwc tens_in_limb ++headers := \ ++ alloca.h \ ++ bits/errno.h \ ++ bits/indirect-return.h \ ++ bits/monetary-ldbl.h \ ++ bits/stdint-intn.h \ ++ bits/stdint-uintn.h \ ++ bits/stdlib-bsearch.h \ ++ bits/stdlib-float.h \ ++ bits/stdlib.h \ ++ bits/stdlib-ldbl.h \ ++ bits/time64.h \ ++ bits/timesize.h \ ++ bits/types/error_t.h \ ++ bits/wordsize.h \ ++ errno.h \ ++ fmtmsg.h \ ++ inttypes.h \ ++ monetary.h \ ++ stdint.h \ ++ stdlib.h \ ++ sys/errno.h \ ++ sys/random.h \ ++ sys/ucontext.h \ ++ ucontext.h \ ++ # headers ++ ++routines := \ ++ a64l \ ++ abort \ ++ abs \ ++ at_quick_exit \ ++ atof \ ++ atoi \ ++ atol\ ++ atoll \ ++ bsearch \ ++ canonicalize \ ++ cxa_at_quick_exit \ ++ cxa_atexit \ ++ cxa_finalize \ ++ cxa_thread_atexit_impl \ ++ div \ ++ drand48 \ ++ drand48-iter \ ++ drand48_r \ ++ erand48 \ ++ erand48_r \ ++ exit \ ++ fmtmsg \ ++ getcontext \ ++ getentropy \ ++ getenv \ ++ getrandom \ ++ getsubopt \ ++ jrand48 \ ++ jrand48_r \ ++ l64a \ ++ labs \ ++ lcong48 \ ++ lcong48_r \ ++ ldiv \ ++ llabs \ ++ lldiv \ ++ lrand48 \ ++ lrand48_r \ ++ makecontext \ ++ mblen \ ++ mbstowcs \ ++ mbtowc \ ++ mrand48 \ ++ mrand48_r \ ++ msort \ ++ nrand48 \ ++ nrand48_r \ ++ old_atexit \ ++ on_exit atexit \ ++ putenv \ ++ qsort \ ++ quick_exit \ ++ rand \ ++ rand_r \ ++ random \ ++ random_r \ ++ rpmatch \ ++ secure-getenv \ ++ seed48 \ ++ seed48_r \ ++ setcontext \ ++ setenv \ ++ srand48 \ ++ srand48_r \ ++ strfmon \ ++ strfmon_l \ ++ strfromd \ ++ strfromf \ ++ strfroml \ ++ strtod \ ++ strtod_l \ ++ strtod_nan \ ++ strtof \ ++ strtof_l \ ++ strtof_nan \ ++ strtol \ ++ strtol_l \ ++ strtold \ ++ strtold_l \ ++ strtold_nan \ ++ strtoll \ ++ strtoll_l \ ++ strtoul \ ++ strtoul_l \ ++ strtoull \ ++ strtoull_l \ ++ swapcontext \ ++ system \ ++ wcstombs \ ++ wctomb \ ++ xpg_basename \ ++ # routines ++ ++aux = \ ++ grouping \ ++ groupingwc \ ++ tens_in_limb \ ++ # aux + + # These routines will be omitted from the libc shared object. + # Instead the static object files will be included in a special archive + # linked against when the shared library will be used. +-static-only-routines = atexit at_quick_exit ++static-only-routines = \ ++ atexit \ ++ at_quick_exit \ ++ # static-only-routines ++ ++test-srcs := \ ++ tst-fmtmsg \ ++ #test-srcs + +-test-srcs := tst-fmtmsg + tests := \ + bug-fmtmsg1 \ + bug-getcontext \ +@@ -155,15 +251,29 @@ tests := \ + tst-width \ + tst-width-stdint \ + tst-xpg-basename \ +-# tests ++ # tests ++ ++tests-internal := \ ++ tst-strtod1i \ ++ tst-strtod3 \ ++ tst-strtod4 \ ++ tst-strtod5i \ ++ tst-tls-atexit \ ++ tst-tls-atexit-nodelete \ ++ # tests-internal ++ ++tests-static := \ ++ tst-secure-getenv \ ++ # tests-static + +-tests-internal := tst-strtod1i tst-strtod3 tst-strtod4 tst-strtod5i \ +- tst-tls-atexit tst-tls-atexit-nodelete +-tests-static := tst-secure-getenv +-tests-container := tst-system ++tests-container := \ ++ tst-system \ ++ #tests-container + + ifeq ($(build-hardcoded-path-in-tests),yes) +-tests += tst-empty-env ++tests += \ ++ tst-empty-env \ ++ # tests + endif + + LDLIBS-test-atexit-race = $(shared-thread-library) +@@ -188,30 +298,76 @@ CFLAGS-tst-thread-quick_exit.o = -std=c++11 + LDLIBS-tst-thread-quick_exit = -lstdc++ + $(objpfx)tst-thread-quick_exit: $(shared-thread-library) + else +-tests-unsupported += tst-quick_exit tst-thread-quick_exit ++tests-unsupported += \ ++ tst-quick_exit \ ++ tst-thread-quick_exit \ ++ # tests-unsupported + endif + +-modules-names = tst-tls-atexit-lib test-dlclose-exit-race-helper ++modules-names = \ ++ test-dlclose-exit-race-helper \ ++ tst-tls-atexit-lib \ ++ # modules-names + extra-test-objs += $(addsuffix .os, $(modules-names)) + + ifeq ($(build-shared),yes) +-tests += tst-putenv ++tests += \ ++ tst-putenv \ ++ # tests + endif + + # Several mpn functions from GNU MP are used by the strtod function. +-mpn-routines := inlines add_n addmul_1 cmp divmod_1 divrem udiv_qrnnd \ +- lshift rshift mod_1 mul mul_1 mul_n sub_n submul_1 +-mpn-headers = longlong.h gmp.h gmp-impl.h gmp-mparam.h asm-syntax.h +- +-routines := $(strip $(routines) $(mpn-routines)) \ +- dbl2mpn ldbl2mpn \ +- mpn2flt mpn2dbl mpn2ldbl +-aux += fpioconst mp_clz_tab +- +-tests-extras += tst-putenvmod +-extra-test-objs += tst-putenvmod.os +- +-generated += isomac isomac.out tst-putenvmod.so ++mpn-routines := \ ++ add_n \ ++ addmul_1 \ ++ cmp \ ++ divmod_1 \ ++ divrem \ ++ inlines \ ++ lshift \ ++ mod_1 \ ++ mul \ ++ mul_1 \ ++ mul_n \ ++ rshift \ ++ sub_n \ ++ submul_1 \ ++ udiv_qrnnd \ ++ # mpn-routines ++mpn-headers = \ ++ asm-syntax.h \ ++ gmp-impl.h \ ++ gmp-mparam.h \ ++ gmp.h \ ++ longlong.h \ ++ # mpn-headers ++ ++routines := \ ++ $(strip $(routines) $(mpn-routines)) \ ++ dbl2mpn \ ++ ldbl2mpn \ ++ mpn2dbl \ ++ mpn2flt \ ++ mpn2ldbl \ ++ # routines ++aux += \ ++ fpioconst \ ++ mp_clz_tab \ ++ # aux ++ ++tests-extras += \ ++ tst-putenvmod \ ++ # tests-extras ++ ++extra-test-objs += \ ++ tst-putenvmod.os \ ++ # extra-test-objs ++ ++generated += \ ++ isomac \ ++ isomac.out \ ++ tst-putenvmod.so \ ++ # generated + + CFLAGS-bsearch.c += $(uses-callbacks) + CFLAGS-msort.c += $(uses-callbacks) +@@ -247,9 +403,17 @@ endif + include ../Rules + + ifeq ($(run-built-tests),yes) +-LOCALES := cs_CZ.UTF-8 de_DE.UTF-8 en_US.ISO-8859-1 tr_TR.UTF-8 \ +- tr_TR.ISO-8859-9 tg_TJ.UTF-8 hr_HR.UTF-8 hi_IN.UTF-8 \ +- el_GR.UTF-8 ++LOCALES := \ ++ cs_CZ.UTF-8 \ ++ de_DE.UTF-8 \ ++ el_GR.UTF-8 \ ++ en_US.ISO-8859-1 \ ++ hi_IN.UTF-8 \ ++ hr_HR.UTF-8 \ ++ tg_TJ.UTF-8 \ ++ tr_TR.ISO-8859-9 \ ++ tr_TR.UTF-8 \ ++ # LOCALES + include ../gen-locales.mk + + $(objpfx)bug-strtod2.out: $(gen-locales) diff --git a/SOURCES/glibc-RHEL-24168-20.patch b/SOURCES/glibc-RHEL-24168-20.patch new file mode 100644 index 0000000..f829d9a --- /dev/null +++ b/SOURCES/glibc-RHEL-24168-20.patch @@ -0,0 +1,65 @@ +commit e7b90e6e605cf236d4bd79e4930cd6a46f9932c7 +Author: Paul Eggert +Date: Thu Feb 1 11:52:46 2024 -0800 + + stdlib: fix qsort example in manual + + * manual/search.texi (Comparison Functions, Array Sort Function): + Sort an array of long ints, not doubles, to avoid hassles + with NaNs. + + Reviewed-by: Siddhesh Poyarekar + +diff --git a/manual/search.texi b/manual/search.texi +index ffaadc46f51b18f9..db577a5332651c36 100644 +--- a/manual/search.texi ++++ b/manual/search.texi +@@ -35,19 +35,22 @@ second, zero if they are ``equal'', and positive if the first argument + is ``greater''. + + Here is an example of a comparison function which works with an array of +-numbers of type @code{double}: ++numbers of type @code{long int}: + + @smallexample + int +-compare_doubles (const void *a, const void *b) ++compare_long_ints (const void *a, const void *b) + @{ +- const double *da = (const double *) a; +- const double *db = (const double *) b; ++ const long int *la = a; ++ const long int *lb = b; + +- return (*da > *db) - (*da < *db); ++ return (*la > *lb) - (*la < *lb); + @} + @end smallexample + ++(The code would have to be more complicated for an array of @code{double}, ++to handle NaNs correctly.) ++ + The header file @file{stdlib.h} defines a name for the data type of + comparison functions. This type is a GNU extension. + +@@ -183,16 +186,16 @@ in the array before making some comparisons. The only way to perform + a stable sort with @code{qsort} is to first augment the objects with a + monotonic counter of some kind. + +-Here is a simple example of sorting an array of doubles in numerical ++Here is a simple example of sorting an array of @code{long int} in numerical + order, using the comparison function defined above (@pxref{Comparison + Functions}): + + @smallexample + @{ +- double *array; +- int size; ++ long int *array; ++ size_t nmemb; + @dots{} +- qsort (array, size, sizeof (double), compare_doubles); ++ qsort (array, nmemb, sizeof *array, compare_long_ints); + @} + @end smallexample + diff --git a/SOURCES/glibc-RHEL-24168-21.patch b/SOURCES/glibc-RHEL-24168-21.patch new file mode 100644 index 0000000..c14d359 --- /dev/null +++ b/SOURCES/glibc-RHEL-24168-21.patch @@ -0,0 +1,142 @@ +commit 57581acd9559217e859fdac693145ce6399f4d70 +Author: Paul Eggert +Date: Sat Apr 6 08:44:01 2024 -0700 + + Fix bsearch, qsort doc to match POSIX better + + * manual/search.texi (Array Search Function): + Correct the statement about lfind’s mean runtime: + it is proportional to a number (not that number), + and this is true only if random elements are searched for. + Relax the constraint on bsearch’s array argument: + POSIX says it need not be sorted, only partially sorted. + Say that the first arg passed to bsearch’s comparison function + is the key, and the second arg is an array element, as + POSIX requires. For bsearch and qsort, say that the + comparison function should not alter the array, as POSIX + requires. For qsort, say that the comparison function + must define a total order, as POSIX requires, that + it should not depend on element addresses, that + the original array index can be used for stable sorts, + and that if qsort still works if memory allocation fails. + Be more consistent in calling the array elements + “elements” rather than “objects”. + + Co-authored-by: Zack Weinberg + +diff --git a/manual/search.texi b/manual/search.texi +index db577a5332651c36..cb08c494092ef77f 100644 +--- a/manual/search.texi ++++ b/manual/search.texi +@@ -84,8 +84,9 @@ The return value is a pointer to the matching element in the array + starting at @var{base} if it is found. If no matching element is + available @code{NULL} is returned. + +-The mean runtime of this function is @code{*@var{nmemb}}/2. This +-function should only be used if elements often get added to or deleted from ++The mean runtime of this function is proportional to @code{*@var{nmemb}/2}, ++assuming random elements of the array are searched for. This ++function should be used only if elements often get added to or deleted from + the array in which case it might not be useful to sort the array before + searching. + @end deftypefun +@@ -122,26 +123,34 @@ bytes. If one is sure the element is in the array it is better to use + calling @code{lsearch}. + @end deftypefun + +-To search a sorted array for an element matching the key, use the +-@code{bsearch} function. The prototype for this function is in ++To search a sorted or partially sorted array for an element matching the key, ++use the @code{bsearch} function. The prototype for this function is in + the header file @file{stdlib.h}. + @pindex stdlib.h + + @deftypefun {void *} bsearch (const void *@var{key}, const void *@var{array}, size_t @var{count}, size_t @var{size}, comparison_fn_t @var{compare}) + @standards{ISO, stdlib.h} + @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +-The @code{bsearch} function searches the sorted array @var{array} for an object ++The @code{bsearch} function searches @var{array} for an element + that is equivalent to @var{key}. The array contains @var{count} elements, + each of which is of size @var{size} bytes. + + The @var{compare} function is used to perform the comparison. This +-function is called with two pointer arguments and should return an ++function is called with arguments that point to the key and to an ++array element, in that order, and should return an + integer less than, equal to, or greater than zero corresponding to +-whether its first argument is considered less than, equal to, or greater +-than its second argument. The elements of the @var{array} must already +-be sorted in ascending order according to this comparison function. +- +-The return value is a pointer to the matching array element, or a null ++whether the key is considered less than, equal to, or greater than ++the array element. The function should not alter the array's contents, ++and the same array element should always compare the same way with the key. ++ ++Although the array need not be completely sorted, it should be ++partially sorted with respect to @var{key}. That is, the array should ++begin with elements that compare less than @var{key}, followed by ++elements that compare equal to @var{key}, and ending with elements ++that compare greater than @var{key}. Any or all of these element ++sequences can be empty. ++ ++The return value is a pointer to a matching array element, or a null + pointer if no match is found. If the array contains more than one element + that matches, the one that is returned is unspecified. + +@@ -171,20 +180,22 @@ array elements. This function is called with two pointer arguments and + should return an integer less than, equal to, or greater than zero + corresponding to whether its first argument is considered less than, + equal to, or greater than its second argument. ++The function must not alter the array's contents, and must define a ++total ordering on the array elements, including any unusual values ++such as floating-point NaN (@pxref{Infinity and NaN}). ++Because the sorting process can move elements, ++the function's return value must not depend on the element addresses ++or the relative positions of elements within the array, ++as these are meaningless while @code{qsort} is running. + + @cindex stable sorting +-@strong{Warning:} If two objects compare as equal, their order after ++@strong{Warning:} If two elements compare equal, their order after + sorting is unpredictable. That is to say, the sorting is not stable. + This can make a difference when the comparison considers only part of +-the elements. Two elements with the same sort key may differ in other +-respects. +- +-Although the object addresses passed to the comparison function lie +-within the array, they need not correspond with the original locations +-of those objects because the sorting algorithm may swap around objects +-in the array before making some comparisons. The only way to perform +-a stable sort with @code{qsort} is to first augment the objects with a +-monotonic counter of some kind. ++the elements and two elements that compare equal may differ in other ++respects. To ensure a stable sort in this situation, you can augment ++each element with an appropriate tie-breaking value, such as its ++original array index. + + Here is a simple example of sorting an array of @code{long int} in numerical + order, using the comparison function defined above (@pxref{Comparison +@@ -202,18 +213,19 @@ Functions}): + The @code{qsort} function derives its name from the fact that it was + originally implemented using the ``quick sort'' algorithm. + +-The implementation of @code{qsort} attempts to allocate auxiliary storage ++The implementation of @code{qsort} attempts to allocate auxiliary memory + and use the merge sort algorithm, without violating C standard requirement + that arguments passed to the comparison function point within the array. ++If the memory allocation fails, @code{qsort} resorts to a slower algorithm. + @end deftypefun + + @node Search/Sort Example + @section Searching and Sorting Example + + Here is an example showing the use of @code{qsort} and @code{bsearch} +-with an array of structures. The objects in the array are sorted ++with an array of structures. The elements of the array are sorted + by comparing their @code{name} fields with the @code{strcmp} function. +-Then, we can look up individual objects based on their names. ++Then, we can look up individual elements based on their names. + + @comment This example is dedicated to the memory of Jim Henson. RIP. + @smallexample diff --git a/SOURCES/glibc-RHEL-24168-22.patch b/SOURCES/glibc-RHEL-24168-22.patch new file mode 100644 index 0000000..d9aa1e1 --- /dev/null +++ b/SOURCES/glibc-RHEL-24168-22.patch @@ -0,0 +1,26 @@ +commit 7eed691cc2b6c5dbb6066ee1251606a744c7f05c +Author: Arjun Shankar +Date: Wed Jul 2 17:11:32 2025 +0200 + + stdlib/Makefile: Remove deleted test's libm dependency + + tst-qsort5 was deleted in 709fbd3ec3595f2d1076b4fec09a739327459288. + Therefore remove its redundant libm dependency. + + Reviewed-by: Florian Weimer + +Conflicts: + stdlib/Makefile: Context line mismatch due to missing tests. + +diff --git a/stdlib/Makefile b/stdlib/Makefile +index a9d91a57c08ac506..e517e306b868c432 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile +@@ -484,7 +484,6 @@ $(objpfx)tst-setcontext3.out: tst-setcontext3.sh $(objpfx)tst-setcontext3 + $(common-objpfx)stdlib/; \ + $(evaluate-test) + +-$(objpfx)tst-qsort5: $(libm) + $(objpfx)tst-getenv-signal: $(shared-thread-library) + $(objpfx)tst-getenv-thread: $(shared-thread-library) + $(objpfx)tst-getenv-unsetenv: $(shared-thread-library) diff --git a/SOURCES/glibc-RHEL-24168-3.patch b/SOURCES/glibc-RHEL-24168-3.patch new file mode 100644 index 0000000..cf80613 --- /dev/null +++ b/SOURCES/glibc-RHEL-24168-3.patch @@ -0,0 +1,286 @@ +commit fccf38c51746e0817c2409bb361398f9465e0760 +Author: Adhemerval Zanella +Date: Tue Oct 3 09:22:45 2023 -0300 + + string: Add internal memswap implementation + + The prototype is: + + void __memswap (void *restrict p1, void *restrict p2, size_t n) + + The function swaps the content of two memory blocks P1 and P2 of + len N. Memory overlap is NOT handled. + + It will be used on qsort optimization. + + Checked on x86_64-linux-gnu and aarch64-linux-gnu. + Reviewed-by: Noah Goldstein + +diff --git a/string/Makefile b/string/Makefile +index 3e4331113f08424c..3ebf7597aad75bfe 100644 +--- a/string/Makefile ++++ b/string/Makefile +@@ -66,6 +66,18 @@ tests := tester inl-tester noinl-tester testcopy test-ffs \ + test-sig_np tst-strerror-fail \ + test-strdup test-strndup + ++tests-static-internal := \ ++ test-memswap \ ++# tests-static-internal ++ ++tests-internal := \ ++ $(tests-static-internal) \ ++ # tests-internal ++ ++tests-static := \ ++ $(tests-static-internal) \ ++ # tests-static ++ + # Both tests require the .mo translation files generated by msgfmt. + tests-translation := tst-strsignal \ + tst-strerror +diff --git a/string/test-memswap.c b/string/test-memswap.c +new file mode 100644 +index 0000000000000000..162beb91e3e96c23 +--- /dev/null ++++ b/string/test-memswap.c +@@ -0,0 +1,192 @@ ++/* Test and measure memcpy functions. ++ Copyright (C) 2023 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++#define TEST_MAIN ++#define BUF1PAGES 3 ++#include "test-string.h" ++ ++static unsigned char *ref1; ++static unsigned char *ref2; ++ ++static void ++do_one_test (unsigned char *p1, unsigned char *ref1, unsigned char *p2, ++ unsigned char *ref2, size_t len) ++{ ++ __memswap (p1, p2, len); ++ ++ TEST_COMPARE_BLOB (p1, len, ref2, len); ++ TEST_COMPARE_BLOB (p2, len, ref1, len); ++} ++ ++static inline void ++do_test (size_t align1, size_t align2, size_t len) ++{ ++ align1 &= page_size; ++ if (align1 + len >= page_size) ++ return; ++ ++ align2 &= page_size; ++ if (align2 + len >= page_size) ++ return; ++ ++ unsigned char *p1 = buf1 + align1; ++ unsigned char *p2 = buf2 + align2; ++ for (size_t repeats = 0; repeats < 2; ++repeats) ++ { ++ size_t i, j; ++ for (i = 0, j = 1; i < len; i++, j += 23) ++ { ++ ref1[i] = p1[i] = j; ++ ref2[i] = p2[i] = UCHAR_MAX - j; ++ } ++ ++ do_one_test (p1, ref1, p2, ref2, len); ++ } ++} ++ ++static void ++do_random_tests (void) ++{ ++ for (size_t n = 0; n < ITERATIONS; n++) ++ { ++ size_t len, size, size1, size2, align1, align2; ++ ++ if (n == 0) ++ { ++ len = getpagesize (); ++ size = len + 512; ++ size1 = size; ++ size2 = size; ++ align1 = 512; ++ align2 = 512; ++ } ++ else ++ { ++ if ((random () & 255) == 0) ++ size = 65536; ++ else ++ size = 768; ++ if (size > page_size) ++ size = page_size; ++ size1 = size; ++ size2 = size; ++ size_t i = random (); ++ if (i & 3) ++ size -= 256; ++ if (i & 1) ++ size1 -= 256; ++ if (i & 2) ++ size2 -= 256; ++ if (i & 4) ++ { ++ len = random () % size; ++ align1 = size1 - len - (random () & 31); ++ align2 = size2 - len - (random () & 31); ++ if (align1 > size1) ++ align1 = 0; ++ if (align2 > size2) ++ align2 = 0; ++ } ++ else ++ { ++ align1 = random () & 63; ++ align2 = random () & 63; ++ len = random () % size; ++ if (align1 + len > size1) ++ align1 = size1 - len; ++ if (align2 + len > size2) ++ align2 = size2 - len; ++ } ++ } ++ unsigned char *p1 = buf1 + page_size - size1; ++ unsigned char *p2 = buf2 + page_size - size2; ++ size_t j = align1 + len + 256; ++ if (j > size1) ++ j = size1; ++ for (size_t i = 0; i < j; ++i) ++ ref1[i] = p1[i] = random () & 255; ++ ++ j = align2 + len + 256; ++ if (j > size2) ++ j = size2; ++ ++ for (size_t i = 0; i < j; ++i) ++ ref2[i] = p2[i] = random () & 255; ++ ++ do_one_test (p1 + align1, ref1 + align1, p2 + align2, ref2 + align2, len); ++ } ++} ++ ++static int ++test_main (void) ++{ ++ test_init (); ++ /* Use the start of buf1 for reference buffers. */ ++ ref1 = buf1; ++ ref2 = buf1 + page_size; ++ buf1 = ref2 + page_size; ++ ++ printf ("%23s", ""); ++ printf ("\t__memswap\n"); ++ ++ for (size_t i = 0; i < 18; ++i) ++ { ++ do_test (0, 0, 1 << i); ++ do_test (i, 0, 1 << i); ++ do_test (0, i, 1 << i); ++ do_test (i, i, 1 << i); ++ } ++ ++ for (size_t i = 0; i < 32; ++i) ++ { ++ do_test (0, 0, i); ++ do_test (i, 0, i); ++ do_test (0, i, i); ++ do_test (i, i, i); ++ } ++ ++ for (size_t i = 3; i < 32; ++i) ++ { ++ if ((i & (i - 1)) == 0) ++ continue; ++ do_test (0, 0, 16 * i); ++ do_test (i, 0, 16 * i); ++ do_test (0, i, 16 * i); ++ do_test (i, i, 16 * i); ++ } ++ ++ for (size_t i = 19; i <= 25; ++i) ++ { ++ do_test (255, 0, 1 << i); ++ do_test (0, 4000, 1 << i); ++ do_test (0, 255, i); ++ do_test (0, 4000, i); ++ } ++ ++ do_test (0, 0, getpagesize ()); ++ ++ do_random_tests (); ++ ++ return 0; ++} ++ ++#include +diff --git a/sysdeps/generic/memswap.h b/sysdeps/generic/memswap.h +new file mode 100644 +index 0000000000000000..f09dae1ebbc2ec0f +--- /dev/null ++++ b/sysdeps/generic/memswap.h +@@ -0,0 +1,41 @@ ++/* Swap the content of two memory blocks, overlap is NOT handled. ++ Copyright (C) 2023 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++static inline void ++__memswap (void *__restrict p1, void *__restrict p2, size_t n) ++{ ++ /* Use multiple small memcpys with constant size to enable inlining on most ++ targets. */ ++ enum { SWAP_GENERIC_SIZE = 32 }; ++ unsigned char tmp[SWAP_GENERIC_SIZE]; ++ while (n > SWAP_GENERIC_SIZE) ++ { ++ memcpy (tmp, p1, SWAP_GENERIC_SIZE); ++ p1 = __mempcpy (p1, p2, SWAP_GENERIC_SIZE); ++ p2 = __mempcpy (p2, tmp, SWAP_GENERIC_SIZE); ++ n -= SWAP_GENERIC_SIZE; ++ } ++ while (n > 0) ++ { ++ unsigned char t = ((unsigned char *)p1)[--n]; ++ ((unsigned char *)p1)[n] = ((unsigned char *)p2)[n]; ++ ((unsigned char *)p2)[n] = t; ++ } ++} diff --git a/SOURCES/glibc-RHEL-24168-4.patch b/SOURCES/glibc-RHEL-24168-4.patch new file mode 100644 index 0000000..59ea6e5 --- /dev/null +++ b/SOURCES/glibc-RHEL-24168-4.patch @@ -0,0 +1,157 @@ +commit 21d30c774c7f9f5878f0bf9438736c702b0a58a3 +Author: Adhemerval Zanella +Date: Tue Oct 3 09:22:46 2023 -0300 + + stdlib: Optimization qsort{_r} swap implementation + + The optimization takes in consideration both the most common elements + are either 32 or 64 bit in size and inputs are aligned to the word + boundary. This is similar to what msort does. + + For large buffer the swap operation uses memcpy/mempcpy with a + small fixed size buffer (so compiler might inline the operations). + + Checked on x86_64-linux-gnu. + Reviewed-by: Noah Goldstein + +diff --git a/stdlib/qsort.c b/stdlib/qsort.c +index 23f2d283147073ac..59b220ba1c375ca3 100644 +--- a/stdlib/qsort.c ++++ b/stdlib/qsort.c +@@ -22,22 +22,73 @@ + + #include + #include ++#include + #include + #include ++#include + +-/* Byte-wise swap two items of size SIZE. */ +-#define SWAP(a, b, size) \ +- do \ +- { \ +- size_t __size = (size); \ +- char *__a = (a), *__b = (b); \ +- do \ +- { \ +- char __tmp = *__a; \ +- *__a++ = *__b; \ +- *__b++ = __tmp; \ +- } while (--__size > 0); \ +- } while (0) ++/* Swap SIZE bytes between addresses A and B. These helpers are provided ++ along the generic one as an optimization. */ ++ ++enum swap_type_t ++ { ++ SWAP_WORDS_64, ++ SWAP_WORDS_32, ++ SWAP_BYTES ++ }; ++ ++/* If this function returns true, elements can be safely copied using word ++ loads and stores. Otherwise, it might not be safe. BASE (as an integer) ++ must be a multiple of the word alignment. SIZE must be a multiple of ++ WORDSIZE. Since WORDSIZE must be a multiple of the word alignment, and ++ WORDSIZE is a power of two on all supported platforms, this function for ++ speed merely checks that BASE and SIZE are both multiples of the word ++ size. */ ++static inline bool ++is_aligned (const void *base, size_t size, size_t wordsize) ++{ ++ return (((uintptr_t) base | size) & (wordsize - 1)) == 0; ++} ++ ++static inline void ++swap_words_64 (void * restrict a, void * restrict b, size_t n) ++{ ++ typedef uint64_t __attribute__ ((__may_alias__)) u64_alias_t; ++ do ++ { ++ n -= 8; ++ u64_alias_t t = *(u64_alias_t *)(a + n); ++ *(u64_alias_t *)(a + n) = *(u64_alias_t *)(b + n); ++ *(u64_alias_t *)(b + n) = t; ++ } while (n); ++} ++ ++static inline void ++swap_words_32 (void * restrict a, void * restrict b, size_t n) ++{ ++ typedef uint32_t __attribute__ ((__may_alias__)) u32_alias_t; ++ do ++ { ++ n -= 4; ++ u32_alias_t t = *(u32_alias_t *)(a + n); ++ *(u32_alias_t *)(a + n) = *(u32_alias_t *)(b + n); ++ *(u32_alias_t *)(b + n) = t; ++ } while (n); ++} ++ ++/* Replace the indirect call with a serie of if statements. It should help ++ the branch predictor. */ ++static void ++do_swap (void * restrict a, void * restrict b, size_t size, ++ enum swap_type_t swap_type) ++{ ++ if (swap_type == SWAP_WORDS_64) ++ swap_words_64 (a, b, size); ++ else if (swap_type == SWAP_WORDS_32) ++ swap_words_32 (a, b, size); ++ else ++ __memswap (a, b, size); ++} + + /* Discontinue quicksort algorithm when partition gets below this size. + This particular magic number was chosen to work best on a Sun 4/260. */ +@@ -97,6 +148,14 @@ _quicksort (void *const pbase, size_t total_elems, size_t size, + /* Avoid lossage with unsigned arithmetic below. */ + return; + ++ enum swap_type_t swap_type; ++ if (is_aligned (pbase, size, 8)) ++ swap_type = SWAP_WORDS_64; ++ else if (is_aligned (pbase, size, 4)) ++ swap_type = SWAP_WORDS_32; ++ else ++ swap_type = SWAP_BYTES; ++ + if (total_elems > MAX_THRESH) + { + char *lo = base_ptr; +@@ -120,13 +179,13 @@ _quicksort (void *const pbase, size_t total_elems, size_t size, + char *mid = lo + size * ((hi - lo) / size >> 1); + + if ((*cmp) ((void *) mid, (void *) lo, arg) < 0) +- SWAP (mid, lo, size); ++ do_swap (mid, lo, size, swap_type); + if ((*cmp) ((void *) hi, (void *) mid, arg) < 0) +- SWAP (mid, hi, size); ++ do_swap (mid, hi, size, swap_type); + else + goto jump_over; + if ((*cmp) ((void *) mid, (void *) lo, arg) < 0) +- SWAP (mid, lo, size); ++ do_swap (mid, lo, size, swap_type); + jump_over:; + + left_ptr = lo + size; +@@ -145,7 +204,7 @@ _quicksort (void *const pbase, size_t total_elems, size_t size, + + if (left_ptr < right_ptr) + { +- SWAP (left_ptr, right_ptr, size); ++ do_swap (left_ptr, right_ptr, size, swap_type); + if (mid == left_ptr) + mid = right_ptr; + else if (mid == right_ptr) +@@ -217,7 +276,7 @@ _quicksort (void *const pbase, size_t total_elems, size_t size, + tmp_ptr = run_ptr; + + if (tmp_ptr != base_ptr) +- SWAP (tmp_ptr, base_ptr, size); ++ do_swap (tmp_ptr, base_ptr, size, swap_type); + + /* Insertion sort, running from left-hand-side up to right-hand-side. */ + diff --git a/SOURCES/glibc-RHEL-24168-5.patch b/SOURCES/glibc-RHEL-24168-5.patch new file mode 100644 index 0000000..414b261 --- /dev/null +++ b/SOURCES/glibc-RHEL-24168-5.patch @@ -0,0 +1,125 @@ +commit a035a9857e11faf16ed021b5e80faf215262afd1 +Author: Adhemerval Zanella +Date: Tue Oct 3 09:22:47 2023 -0300 + + stdlib: Move insertion sort out qsort + + Reviewed-by: Noah Goldstein + +diff --git a/stdlib/qsort.c b/stdlib/qsort.c +index 59b220ba1c375ca3..35020e4c00e5fce3 100644 +--- a/stdlib/qsort.c ++++ b/stdlib/qsort.c +@@ -112,6 +112,58 @@ typedef struct + #define STACK_NOT_EMPTY (stack < top) + + ++static inline void ++insertion_sort_qsort_partitions (void *const pbase, size_t total_elems, ++ size_t size, enum swap_type_t swap_type, ++ __compar_d_fn_t cmp, void *arg) ++{ ++ char *base_ptr = (char *) pbase; ++ char *const end_ptr = &base_ptr[size * (total_elems - 1)]; ++ char *tmp_ptr = base_ptr; ++#define min(x, y) ((x) < (y) ? (x) : (y)) ++ const size_t max_thresh = MAX_THRESH * size; ++ char *thresh = min(end_ptr, base_ptr + max_thresh); ++ char *run_ptr; ++ ++ /* Find smallest element in first threshold and place it at the ++ array's beginning. This is the smallest array element, ++ and the operation speeds up insertion sort's inner loop. */ ++ ++ for (run_ptr = tmp_ptr + size; run_ptr <= thresh; run_ptr += size) ++ if (cmp (run_ptr, tmp_ptr, arg) < 0) ++ tmp_ptr = run_ptr; ++ ++ if (tmp_ptr != base_ptr) ++ do_swap (tmp_ptr, base_ptr, size, swap_type); ++ ++ /* Insertion sort, running from left-hand-side up to right-hand-side. */ ++ ++ run_ptr = base_ptr + size; ++ while ((run_ptr += size) <= end_ptr) ++ { ++ tmp_ptr = run_ptr - size; ++ while (cmp (run_ptr, tmp_ptr, arg) < 0) ++ tmp_ptr -= size; ++ ++ tmp_ptr += size; ++ if (tmp_ptr != run_ptr) ++ { ++ char *trav; ++ ++ trav = run_ptr + size; ++ while (--trav >= run_ptr) ++ { ++ char c = *trav; ++ char *hi, *lo; ++ ++ for (hi = lo = trav; (lo -= size) >= tmp_ptr; hi = lo) ++ *hi = *lo; ++ *hi = c; ++ } ++ } ++ } ++} ++ + /* Order size using quicksort. This implementation incorporates + four optimizations discussed in Sedgewick: + +@@ -258,51 +310,6 @@ _quicksort (void *const pbase, size_t total_elems, size_t size, + for partitions below MAX_THRESH size. BASE_PTR points to the beginning + of the array to sort, and END_PTR points at the very last element in + the array (*not* one beyond it!). */ +- +-#define min(x, y) ((x) < (y) ? (x) : (y)) +- +- { +- char *const end_ptr = &base_ptr[size * (total_elems - 1)]; +- char *tmp_ptr = base_ptr; +- char *thresh = min(end_ptr, base_ptr + max_thresh); +- char *run_ptr; +- +- /* Find smallest element in first threshold and place it at the +- array's beginning. This is the smallest array element, +- and the operation speeds up insertion sort's inner loop. */ +- +- for (run_ptr = tmp_ptr + size; run_ptr <= thresh; run_ptr += size) +- if ((*cmp) ((void *) run_ptr, (void *) tmp_ptr, arg) < 0) +- tmp_ptr = run_ptr; +- +- if (tmp_ptr != base_ptr) +- do_swap (tmp_ptr, base_ptr, size, swap_type); +- +- /* Insertion sort, running from left-hand-side up to right-hand-side. */ +- +- run_ptr = base_ptr + size; +- while ((run_ptr += size) <= end_ptr) +- { +- tmp_ptr = run_ptr - size; +- while ((*cmp) ((void *) run_ptr, (void *) tmp_ptr, arg) < 0) +- tmp_ptr -= size; +- +- tmp_ptr += size; +- if (tmp_ptr != run_ptr) +- { +- char *trav; +- +- trav = run_ptr + size; +- while (--trav >= run_ptr) +- { +- char c = *trav; +- char *hi, *lo; +- +- for (hi = lo = trav; (lo -= size) >= tmp_ptr; hi = lo) +- *hi = *lo; +- *hi = c; +- } +- } +- } +- } ++ insertion_sort_qsort_partitions (pbase, total_elems, size, swap_type, cmp, ++ arg); + } diff --git a/SOURCES/glibc-RHEL-24168-6.patch b/SOURCES/glibc-RHEL-24168-6.patch new file mode 100644 index 0000000..ac10f44 --- /dev/null +++ b/SOURCES/glibc-RHEL-24168-6.patch @@ -0,0 +1,85 @@ +commit d097f3c79be55d646d86efb7ce876bf84d5ebe4e +Author: Adhemerval Zanella +Date: Tue Oct 3 09:22:48 2023 -0300 + + stdlib: qsort: Move some macros to inline function + + Reviewed-by: Noah Goldstein + +diff --git a/stdlib/qsort.c b/stdlib/qsort.c +index 35020e4c00e5fce3..821a87420638c5a5 100644 +--- a/stdlib/qsort.c ++++ b/stdlib/qsort.c +@@ -101,15 +101,28 @@ typedef struct + char *hi; + } stack_node; + +-/* The next 4 #defines implement a very fast in-line stack abstraction. */ + /* The stack needs log (total_elements) entries (we could even subtract + log(MAX_THRESH)). Since total_elements has type size_t, we get as + upper bound for log (total_elements): + bits per byte (CHAR_BIT) * sizeof(size_t). */ +-#define STACK_SIZE (CHAR_BIT * sizeof (size_t)) +-#define PUSH(low, high) ((void) ((top->lo = (low)), (top->hi = (high)), ++top)) +-#define POP(low, high) ((void) (--top, (low = top->lo), (high = top->hi))) +-#define STACK_NOT_EMPTY (stack < top) ++enum { STACK_SIZE = CHAR_BIT * sizeof (size_t) }; ++ ++static inline stack_node * ++push (stack_node *top, char *lo, char *hi) ++{ ++ top->lo = lo; ++ top->hi = hi; ++ return ++top; ++} ++ ++static inline stack_node * ++pop (stack_node *top, char **lo, char **hi) ++{ ++ --top; ++ *lo = top->lo; ++ *hi = top->hi; ++ return top; ++} + + + static inline void +@@ -213,11 +226,9 @@ _quicksort (void *const pbase, size_t total_elems, size_t size, + char *lo = base_ptr; + char *hi = &lo[size * (total_elems - 1)]; + stack_node stack[STACK_SIZE]; +- stack_node *top = stack; +- +- PUSH (NULL, NULL); ++ stack_node *top = stack + 1; + +- while (STACK_NOT_EMPTY) ++ while (stack < top) + { + char *left_ptr; + char *right_ptr; +@@ -282,7 +293,7 @@ _quicksort (void *const pbase, size_t total_elems, size_t size, + { + if ((size_t) (hi - left_ptr) <= max_thresh) + /* Ignore both small partitions. */ +- POP (lo, hi); ++ top = pop (top, &lo, &hi); + else + /* Ignore small left partition. */ + lo = left_ptr; +@@ -293,13 +304,13 @@ _quicksort (void *const pbase, size_t total_elems, size_t size, + else if ((right_ptr - lo) > (hi - left_ptr)) + { + /* Push larger left partition indices. */ +- PUSH (lo, right_ptr); ++ top = push (top, lo, right_ptr); + lo = left_ptr; + } + else + { + /* Push larger right partition indices. */ +- PUSH (left_ptr, hi); ++ top = push (top, left_ptr, hi); + hi = right_ptr; + } + } diff --git a/SOURCES/glibc-RHEL-24168-7.patch b/SOURCES/glibc-RHEL-24168-7.patch new file mode 100644 index 0000000..70136e6 --- /dev/null +++ b/SOURCES/glibc-RHEL-24168-7.patch @@ -0,0 +1,176 @@ +commit 274a46c9b25ab733a1fb9fb1497f1beecae30193 +Author: Adhemerval Zanella +Date: Tue Oct 3 09:22:49 2023 -0300 + + stdlib: Implement introsort for qsort (BZ 19305) + + This patch makes the quicksort implementation to acts as introsort, to + avoid worse-case performance (and thus making it O(nlog n)). It switch + to heapsort when the depth level reaches 2*log2(total elements). The + heapsort is a textbook implementation. + + Checked on x86_64-linux-gnu and aarch64-linux-gnu. + Reviewed-by: Noah Goldstein + +diff --git a/stdlib/qsort.c b/stdlib/qsort.c +index 821a87420638c5a5..db299eb333cf0302 100644 +--- a/stdlib/qsort.c ++++ b/stdlib/qsort.c +@@ -99,6 +99,7 @@ typedef struct + { + char *lo; + char *hi; ++ size_t depth; + } stack_node; + + /* The stack needs log (total_elements) entries (we could even subtract +@@ -108,22 +109,85 @@ typedef struct + enum { STACK_SIZE = CHAR_BIT * sizeof (size_t) }; + + static inline stack_node * +-push (stack_node *top, char *lo, char *hi) ++push (stack_node *top, char *lo, char *hi, size_t depth) + { + top->lo = lo; + top->hi = hi; ++ top->depth = depth; + return ++top; + } + + static inline stack_node * +-pop (stack_node *top, char **lo, char **hi) ++pop (stack_node *top, char **lo, char **hi, size_t *depth) + { + --top; + *lo = top->lo; + *hi = top->hi; ++ *depth = top->depth; + return top; + } + ++/* NB: N is inclusive bound for BASE. */ ++static inline void ++siftdown (void *base, size_t size, size_t k, size_t n, ++ enum swap_type_t swap_type, __compar_d_fn_t cmp, void *arg) ++{ ++ while (k <= n / 2) ++ { ++ size_t j = 2 * k; ++ if (j < n && cmp (base + (j * size), base + ((j + 1) * size), arg) < 0) ++ j++; ++ ++ if (cmp (base + (k * size), base + (j * size), arg) >= 0) ++ break; ++ ++ do_swap (base + (size * j), base + (k * size), size, swap_type); ++ k = j; ++ } ++} ++ ++static inline void ++heapify (void *base, size_t size, size_t n, enum swap_type_t swap_type, ++ __compar_d_fn_t cmp, void *arg) ++{ ++ size_t k = n / 2; ++ while (1) ++ { ++ siftdown (base, size, k, n, swap_type, cmp, arg); ++ if (k-- == 0) ++ break; ++ } ++} ++ ++/* A non-recursive heapsort, used on introsort implementation as a fallback ++ routine with worst-case performance of O(nlog n) and worst-case space ++ complexity of O(1). It sorts the array starting at BASE and ending at ++ END, with each element of SIZE bytes. The SWAP_TYPE is the callback ++ function used to swap elements, and CMP is the function used to compare ++ elements. */ ++static void ++heapsort_r (void *base, void *end, size_t size, enum swap_type_t swap_type, ++ __compar_d_fn_t cmp, void *arg) ++{ ++ const size_t count = ((uintptr_t) end - (uintptr_t) base) / size; ++ ++ if (count < 2) ++ return; ++ ++ size_t n = count - 1; ++ ++ /* Build the binary heap, largest value at the base[0]. */ ++ heapify (base, size, n, swap_type, cmp, arg); ++ ++ /* On each iteration base[0:n] is the binary heap, while base[n:count] ++ is sorted. */ ++ while (n > 0) ++ { ++ do_swap (base, base + (n * size), size, swap_type); ++ n--; ++ siftdown (base, size, 0, n, swap_type, cmp, arg); ++ } ++} + + static inline void + insertion_sort_qsort_partitions (void *const pbase, size_t total_elems, +@@ -209,7 +273,7 @@ _quicksort (void *const pbase, size_t total_elems, size_t size, + + const size_t max_thresh = MAX_THRESH * size; + +- if (total_elems == 0) ++ if (total_elems <= 1) + /* Avoid lossage with unsigned arithmetic below. */ + return; + +@@ -221,15 +285,26 @@ _quicksort (void *const pbase, size_t total_elems, size_t size, + else + swap_type = SWAP_BYTES; + ++ /* Maximum depth before quicksort switches to heapsort. */ ++ size_t depth = 2 * (sizeof (size_t) * CHAR_BIT - 1 ++ - __builtin_clzl (total_elems)); ++ + if (total_elems > MAX_THRESH) + { + char *lo = base_ptr; + char *hi = &lo[size * (total_elems - 1)]; + stack_node stack[STACK_SIZE]; +- stack_node *top = stack + 1; ++ stack_node *top = push (stack, NULL, NULL, depth); + + while (stack < top) + { ++ if (depth == 0) ++ { ++ heapsort_r (lo, hi, size, swap_type, cmp, arg); ++ top = pop (top, &lo, &hi, &depth); ++ continue; ++ } ++ + char *left_ptr; + char *right_ptr; + +@@ -293,7 +368,7 @@ _quicksort (void *const pbase, size_t total_elems, size_t size, + { + if ((size_t) (hi - left_ptr) <= max_thresh) + /* Ignore both small partitions. */ +- top = pop (top, &lo, &hi); ++ top = pop (top, &lo, &hi, &depth); + else + /* Ignore small left partition. */ + lo = left_ptr; +@@ -304,13 +379,13 @@ _quicksort (void *const pbase, size_t total_elems, size_t size, + else if ((right_ptr - lo) > (hi - left_ptr)) + { + /* Push larger left partition indices. */ +- top = push (top, lo, right_ptr); ++ top = push (top, lo, right_ptr, depth - 1); + lo = left_ptr; + } + else + { + /* Push larger right partition indices. */ +- top = push (top, left_ptr, hi); ++ top = push (top, left_ptr, hi, depth - 1); + hi = right_ptr; + } + } diff --git a/SOURCES/glibc-RHEL-24168-8.patch b/SOURCES/glibc-RHEL-24168-8.patch new file mode 100644 index 0000000..8158906 --- /dev/null +++ b/SOURCES/glibc-RHEL-24168-8.patch @@ -0,0 +1,491 @@ +commit 03bf8357e8291857a435afcc3048e0b697b6cc04 +Author: Adhemerval Zanella +Date: Tue Oct 3 09:22:50 2023 -0300 + + stdlib: Remove use of mergesort on qsort (BZ 21719) + + This patch removes the mergesort optimization on qsort implementation + and uses the introsort instead. The mergesort implementation has some + issues: + + - It is as-safe only for certain types sizes (if total size is less + than 1 KB with large element sizes also forcing memory allocation) + which contradicts the function documentation. Although not required + by the C standard, it is preferable and doable to have an O(1) space + implementation. + + - The malloc for certain element size and element number adds + arbitrary latency (might even be worse if malloc is interposed). + + - To avoid trigger swap from memory allocation the implementation + relies on system information that might be virtualized (for instance + VMs with overcommit memory) which might lead to potentially use of + swap even if system advertise more memory than actually has. The + check also have the downside of issuing syscalls where none is + expected (although only once per execution). + + - The mergesort is suboptimal on an already sorted array (BZ#21719). + + The introsort implementation is already optimized to use constant extra + space (due to the limit of total number of elements from maximum VM + size) and thus can be used to avoid the malloc usage issues. + + Resulting performance is slower due the usage of qsort, specially in the + worst-case scenario (partialy or sorted arrays) and due the fact + mergesort uses a slight improved swap operations. + + This change also renders the BZ#21719 fix unrequired (since it is meant + to fix the sorted input performance degradation for mergesort). The + manual is also updated to indicate the function is now async-cancel + safe. + + Checked on x86_64-linux-gnu. + Reviewed-by: Noah Goldstein + +Conflicts: + stdlib/msort.c: Deletion had conflicts due to skipped backports. + +diff --git a/include/stdlib.h b/include/stdlib.h +index 22c9fb65c3074765..fd108df58ddf8b89 100644 +--- a/include/stdlib.h ++++ b/include/stdlib.h +@@ -107,8 +107,6 @@ extern int __posix_openpt (int __oflag) attribute_hidden; + extern int __add_to_environ (const char *name, const char *value, + const char *combines, int replace) + attribute_hidden; +-extern void _quicksort (void *const pbase, size_t total_elems, +- size_t size, __compar_d_fn_t cmp, void *arg); + + extern int __on_exit (void (*__func) (int __status, void *__arg), void *__arg); + +diff --git a/manual/argp.texi b/manual/argp.texi +index 0023441812d4e584..b77ad68285ecb732 100644 +--- a/manual/argp.texi ++++ b/manual/argp.texi +@@ -735,7 +735,7 @@ for options, bad phase of the moon, etc. + @c hol_set_group ok + @c hol_find_entry ok + @c hol_sort @mtslocale @acucorrupt +-@c qsort dup @acucorrupt ++@c qsort dup + @c hol_entry_qcmp @mtslocale + @c hol_entry_cmp @mtslocale + @c group_cmp ok +diff --git a/manual/locale.texi b/manual/locale.texi +index 720e0ca952a665bd..f6afa5dc44a2a016 100644 +--- a/manual/locale.texi ++++ b/manual/locale.texi +@@ -253,7 +253,7 @@ The symbols in this section are defined in the header file @file{locale.h}. + @c calculate_head_size ok + @c __munmap ok + @c compute_hashval ok +-@c qsort dup @acucorrupt ++@c qsort dup + @c rangecmp ok + @c malloc @ascuheap @acsmem + @c strdup @ascuheap @acsmem +@@ -275,7 +275,6 @@ The symbols in this section are defined in the header file @file{locale.h}. + @c realloc @ascuheap @acsmem + @c realloc @ascuheap @acsmem + @c fclose @ascuheap @asulock @acsmem @acsfd @aculock +-@c qsort @ascuheap @acsmem + @c alias_compare dup + @c libc_lock_unlock @aculock + @c _nl_explode_name @ascuheap @acsmem +diff --git a/manual/search.texi b/manual/search.texi +index 5691bf2f2b2bb861..a550858478f7fc83 100644 +--- a/manual/search.texi ++++ b/manual/search.texi +@@ -159,7 +159,7 @@ To sort an array using an arbitrary comparison function, use the + + @deftypefun void qsort (void *@var{array}, size_t @var{count}, size_t @var{size}, comparison_fn_t @var{compare}) + @standards{ISO, stdlib.h} +-@safety{@prelim{}@mtsafe{}@assafe{}@acunsafe{@acucorrupt{}}} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} + The @code{qsort} function sorts the array @var{array}. The array + contains @var{count} elements, each of which is of size @var{size}. + +@@ -199,9 +199,8 @@ Functions}): + The @code{qsort} function derives its name from the fact that it was + originally implemented using the ``quick sort'' algorithm. + +-The implementation of @code{qsort} in this library might not be an +-in-place sort and might thereby use an extra amount of memory to store +-the array. ++The implementation of @code{qsort} in this library is an in-place sort ++and uses a constant extra space (allocated on the stack). + @end deftypefun + + @node Search/Sort Example +diff --git a/stdlib/Makefile b/stdlib/Makefile +index 03f8478c64408ed3..3b89bc2aa0307321 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile +@@ -94,7 +94,6 @@ routines := \ + mbtowc \ + mrand48 \ + mrand48_r \ +- msort \ + nrand48 \ + nrand48_r \ + old_atexit \ +@@ -370,7 +369,6 @@ generated += \ + # generated + + CFLAGS-bsearch.c += $(uses-callbacks) +-CFLAGS-msort.c += $(uses-callbacks) + CFLAGS-qsort.c += $(uses-callbacks) + CFLAGS-system.c += -fexceptions + CFLAGS-system.os = -fomit-frame-pointer +diff --git a/stdlib/msort.c b/stdlib/msort.c +deleted file mode 100644 +index 8750cc59db2337cf..0000000000000000 +--- a/stdlib/msort.c ++++ /dev/null +@@ -1,310 +0,0 @@ +-/* An alternative to qsort, with an identical interface. +- This file is part of the GNU C Library. +- Copyright (C) 1992-2021 Free Software Foundation, Inc. +- Written by Mike Haertel, September 1988. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-struct msort_param +-{ +- size_t s; +- size_t var; +- __compar_d_fn_t cmp; +- void *arg; +- char *t; +-}; +-static void msort_with_tmp (const struct msort_param *p, void *b, size_t n); +- +-static void +-msort_with_tmp (const struct msort_param *p, void *b, size_t n) +-{ +- char *b1, *b2; +- size_t n1, n2; +- +- if (n <= 1) +- return; +- +- n1 = n / 2; +- n2 = n - n1; +- b1 = b; +- b2 = (char *) b + (n1 * p->s); +- +- msort_with_tmp (p, b1, n1); +- msort_with_tmp (p, b2, n2); +- +- char *tmp = p->t; +- const size_t s = p->s; +- __compar_d_fn_t cmp = p->cmp; +- void *arg = p->arg; +- switch (p->var) +- { +- case 0: +- while (n1 > 0 && n2 > 0) +- { +- if ((*cmp) (b1, b2, arg) <= 0) +- { +- *(uint32_t *) tmp = *(uint32_t *) b1; +- b1 += sizeof (uint32_t); +- --n1; +- } +- else +- { +- *(uint32_t *) tmp = *(uint32_t *) b2; +- b2 += sizeof (uint32_t); +- --n2; +- } +- tmp += sizeof (uint32_t); +- } +- break; +- case 1: +- while (n1 > 0 && n2 > 0) +- { +- if ((*cmp) (b1, b2, arg) <= 0) +- { +- *(uint64_t *) tmp = *(uint64_t *) b1; +- b1 += sizeof (uint64_t); +- --n1; +- } +- else +- { +- *(uint64_t *) tmp = *(uint64_t *) b2; +- b2 += sizeof (uint64_t); +- --n2; +- } +- tmp += sizeof (uint64_t); +- } +- break; +- case 2: +- while (n1 > 0 && n2 > 0) +- { +- unsigned long *tmpl = (unsigned long *) tmp; +- unsigned long *bl; +- +- tmp += s; +- if ((*cmp) (b1, b2, arg) <= 0) +- { +- bl = (unsigned long *) b1; +- b1 += s; +- --n1; +- } +- else +- { +- bl = (unsigned long *) b2; +- b2 += s; +- --n2; +- } +- while (tmpl < (unsigned long *) tmp) +- *tmpl++ = *bl++; +- } +- break; +- case 3: +- while (n1 > 0 && n2 > 0) +- { +- if ((*cmp) (*(const void **) b1, *(const void **) b2, arg) <= 0) +- { +- *(void **) tmp = *(void **) b1; +- b1 += sizeof (void *); +- --n1; +- } +- else +- { +- *(void **) tmp = *(void **) b2; +- b2 += sizeof (void *); +- --n2; +- } +- tmp += sizeof (void *); +- } +- break; +- default: +- while (n1 > 0 && n2 > 0) +- { +- if ((*cmp) (b1, b2, arg) <= 0) +- { +- tmp = (char *) __mempcpy (tmp, b1, s); +- b1 += s; +- --n1; +- } +- else +- { +- tmp = (char *) __mempcpy (tmp, b2, s); +- b2 += s; +- --n2; +- } +- } +- break; +- } +- +- if (n1 > 0) +- memcpy (tmp, b1, n1 * s); +- memcpy (b, p->t, (n - n2) * s); +-} +- +- +-void +-__qsort_r (void *b, size_t n, size_t s, __compar_d_fn_t cmp, void *arg) +-{ +- size_t size = n * s; +- char *tmp = NULL; +- struct msort_param p; +- +- /* For large object sizes use indirect sorting. */ +- if (s > 32) +- size = 2 * n * sizeof (void *) + s; +- +- if (size < 1024) +- /* The temporary array is small, so put it on the stack. */ +- p.t = __alloca (size); +- else +- { +- /* We should avoid allocating too much memory since this might +- have to be backed up by swap space. */ +- static long int phys_pages; +- static int pagesize; +- +- if (pagesize == 0) +- { +- phys_pages = __sysconf (_SC_PHYS_PAGES); +- +- if (phys_pages == -1) +- /* Error while determining the memory size. So let's +- assume there is enough memory. Otherwise the +- implementer should provide a complete implementation of +- the `sysconf' function. */ +- phys_pages = (long int) (~0ul >> 1); +- +- /* The following determines that we will never use more than +- a quarter of the physical memory. */ +- phys_pages /= 4; +- +- /* Make sure phys_pages is written to memory. */ +- atomic_write_barrier (); +- +- pagesize = __sysconf (_SC_PAGESIZE); +- } +- +- /* Just a comment here. We cannot compute +- phys_pages * pagesize +- and compare the needed amount of memory against this value. +- The problem is that some systems might have more physical +- memory then can be represented with a `size_t' value (when +- measured in bytes. */ +- +- /* If the memory requirements are too high don't allocate memory. */ +- if (size / pagesize > (size_t) phys_pages) +- { +- _quicksort (b, n, s, cmp, arg); +- return; +- } +- +- /* It's somewhat large, so malloc it. */ +- int save = errno; +- tmp = malloc (size); +- __set_errno (save); +- if (tmp == NULL) +- { +- /* Couldn't get space, so use the slower algorithm +- that doesn't need a temporary array. */ +- _quicksort (b, n, s, cmp, arg); +- return; +- } +- p.t = tmp; +- } +- +- p.s = s; +- p.var = 4; +- p.cmp = cmp; +- p.arg = arg; +- +- if (s > 32) +- { +- /* Indirect sorting. */ +- char *ip = (char *) b; +- void **tp = (void **) (p.t + n * sizeof (void *)); +- void **t = tp; +- void *tmp_storage = (void *) (tp + n); +- +- while ((void *) t < tmp_storage) +- { +- *t++ = ip; +- ip += s; +- } +- p.s = sizeof (void *); +- p.var = 3; +- msort_with_tmp (&p, p.t + n * sizeof (void *), n); +- +- /* tp[0] .. tp[n - 1] is now sorted, copy around entries of +- the original array. Knuth vol. 3 (2nd ed.) exercise 5.2-10. */ +- char *kp; +- size_t i; +- for (i = 0, ip = (char *) b; i < n; i++, ip += s) +- if ((kp = tp[i]) != ip) +- { +- size_t j = i; +- char *jp = ip; +- memcpy (tmp_storage, ip, s); +- +- do +- { +- size_t k = (kp - (char *) b) / s; +- tp[j] = jp; +- memcpy (jp, kp, s); +- j = k; +- jp = kp; +- kp = tp[k]; +- } +- while (kp != ip); +- +- tp[j] = jp; +- memcpy (jp, tmp_storage, s); +- } +- } +- else +- { +- if ((s & (sizeof (uint32_t) - 1)) == 0 +- && ((char *) b - (char *) 0) % __alignof__ (uint32_t) == 0) +- { +- if (s == sizeof (uint32_t)) +- p.var = 0; +- else if (s == sizeof (uint64_t) +- && ((char *) b - (char *) 0) % __alignof__ (uint64_t) == 0) +- p.var = 1; +- else if ((s & (sizeof (unsigned long) - 1)) == 0 +- && ((char *) b - (char *) 0) +- % __alignof__ (unsigned long) == 0) +- p.var = 2; +- } +- msort_with_tmp (&p, b, n); +- } +- free (tmp); +-} +-libc_hidden_def (__qsort_r) +-weak_alias (__qsort_r, qsort_r) +- +- +-void +-qsort (void *b, size_t n, size_t s, __compar_fn_t cmp) +-{ +- return __qsort_r (b, n, s, (__compar_d_fn_t) cmp, NULL); +-} +-libc_hidden_def (qsort) +diff --git a/stdlib/qsort.c b/stdlib/qsort.c +index db299eb333cf0302..cb1619aa0ae7de72 100644 +--- a/stdlib/qsort.c ++++ b/stdlib/qsort.c +@@ -20,7 +20,6 @@ + Engineering a sort function; Jon Bentley and M. Douglas McIlroy; + Software - Practice and Experience; Vol. 23 (11), 1249-1265, 1993. */ + +-#include + #include + #include + #include +@@ -266,8 +265,8 @@ insertion_sort_qsort_partitions (void *const pbase, size_t total_elems, + stack size is needed (actually O(1) in this case)! */ + + void +-_quicksort (void *const pbase, size_t total_elems, size_t size, +- __compar_d_fn_t cmp, void *arg) ++__qsort_r (void *const pbase, size_t total_elems, size_t size, ++ __compar_d_fn_t cmp, void *arg) + { + char *base_ptr = (char *) pbase; + +@@ -399,3 +398,12 @@ _quicksort (void *const pbase, size_t total_elems, size_t size, + insertion_sort_qsort_partitions (pbase, total_elems, size, swap_type, cmp, + arg); + } ++libc_hidden_def (__qsort_r) ++weak_alias (__qsort_r, qsort_r) ++ ++void ++qsort (void *b, size_t n, size_t s, __compar_fn_t cmp) ++{ ++ return __qsort_r (b, n, s, (__compar_d_fn_t) cmp, NULL); ++} ++libc_hidden_def (qsort) diff --git a/SOURCES/glibc-RHEL-24168-9.patch b/SOURCES/glibc-RHEL-24168-9.patch new file mode 100644 index 0000000..7c06a98 --- /dev/null +++ b/SOURCES/glibc-RHEL-24168-9.patch @@ -0,0 +1,399 @@ +commit bc888a3976700a3607f6ec4a36dbf3030161cb3e +Author: Adhemerval Zanella +Date: Tue Oct 3 09:22:51 2023 -0300 + + stdlib: Add more qsort{_r} coverage + + This patch adds a qsort and qsort_r to trigger the worst case + scenario for the quicksort (which glibc current lacks coverage). + The test is done with random input, dfferent internal types (uint8_t, + uint16_t, uint32_t, uint64_t, large size), and with + different set of element numbers. + + Checked on x86_64-linux-gnu and i686-linux-gnu. + Reviewed-by: Noah Goldstein + +diff --git a/stdlib/Makefile b/stdlib/Makefile +index 3b89bc2aa0307321..4039e5395eeea2b0 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile +@@ -211,6 +211,7 @@ tests := \ + tst-on_exit \ + tst-qsort \ + tst-qsort2 \ ++ tst-qsort3 \ + tst-quick_exit \ + tst-rand48 \ + tst-rand48-2 \ +diff --git a/stdlib/tst-qsort3.c b/stdlib/tst-qsort3.c +new file mode 100644 +index 0000000000000000..421560d74434a116 +--- /dev/null ++++ b/stdlib/tst-qsort3.c +@@ -0,0 +1,366 @@ ++/* qsort(_r) tests to trigger worst case for quicksort. ++ Copyright (C) 2023 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++typedef enum ++{ ++ Sorted, ++ Random, ++ Repeated, ++ Bitonic, ++ Duplicated, ++} arraytype_t; ++ ++/* Ratio of total of elements which will be repeated. */ ++static const double RepeatedRatio = 0.2; ++ ++/* Ratio of duplicated element . */ ++static const double DuplicatedRatio = 0.4; ++ ++struct array_t ++{ ++ arraytype_t type; ++ const char *name; ++} static const arraytypes[] = ++{ ++ { Sorted, "Sorted" }, ++ { Random, "Random" }, ++ { Repeated, "Repeated" }, ++ { Bitonic, "Bitonic" }, ++ { Duplicated, "Duplicated" }, ++}; ++ ++/* Return the index of BASE as interpreted as an array of elements ++ of size SIZE. */ ++static inline void * ++arr (void *base, size_t idx, size_t size) ++{ ++ return (void*)((uintptr_t)base + (idx * size)); ++} ++ ++/* Functions used to check qsort. */ ++static int ++uint8_t_cmp (const void *a, const void *b) ++{ ++ uint8_t ia = *(uint8_t*)a; ++ uint8_t ib = *(uint8_t*)b; ++ return (ia > ib) - (ia < ib); ++} ++ ++static int ++uint16_t_cmp (const void *a, const void *b) ++{ ++ uint16_t ia = *(uint16_t*)a; ++ uint16_t ib = *(uint16_t*)b; ++ return (ia > ib) - (ia < ib); ++} ++ ++static int ++uint32_t_cmp (const void *a, const void *b) ++{ ++ uint32_t ia = *(uint32_t*)a; ++ uint32_t ib = *(uint32_t*)b; ++ return (ia > ib) - (ia < ib); ++} ++ ++static int ++uint64_t_cmp (const void *a, const void *b) ++{ ++ uint64_t ia = *(uint64_t*)a; ++ uint64_t ib = *(uint64_t*)b; ++ return (ia > ib) - (ia < ib); ++} ++ ++#define LARGE_SIZE 47 ++ ++static int ++large_cmp (const void *a, const void *b) ++{ ++ return memcmp (a, b, LARGE_SIZE); ++} ++ ++/* Function used to check qsort_r. */ ++typedef enum ++{ ++ UINT8_CMP_T, ++ UINT16_CMP_T, ++ UINT32_CMP_T, ++ UINT64_CMP_T, ++ LARGE_CMP_T ++} type_cmp_t; ++ ++static type_cmp_t ++uint_t_cmp_type (size_t sz) ++{ ++ switch (sz) ++ { ++ case sizeof (uint8_t): return UINT8_CMP_T; ++ case sizeof (uint16_t): return UINT16_CMP_T; ++ case sizeof (uint64_t): return UINT64_CMP_T; ++ case sizeof (uint32_t): return UINT32_CMP_T; ++ default: return LARGE_CMP_T; ++ } ++} ++ ++static int ++uint_t_cmp (const void *a, const void *b, void *arg) ++{ ++ type_cmp_t type = *(type_cmp_t*) arg; ++ switch (type) ++ { ++ case UINT8_CMP_T: return uint8_t_cmp (a, b); ++ case UINT32_CMP_T: return uint32_t_cmp (a, b); ++ case UINT16_CMP_T: return uint16_t_cmp (a, b); ++ case UINT64_CMP_T: return uint64_t_cmp (a, b); ++ default: return large_cmp (a, b); ++ } ++} ++ ++static void ++seq (void *elem, size_t type_size, int value) ++{ ++ if (type_size == sizeof (uint8_t)) ++ *(uint8_t*)elem = value; ++ else if (type_size == sizeof (uint16_t)) ++ *(uint16_t*)elem = value; ++ else if (type_size == sizeof (uint32_t)) ++ *(uint32_t*)elem = value; ++ else if (type_size == sizeof (uint64_t)) ++ *(uint64_t*)elem = value; ++ else ++ memset (elem, value, type_size); ++} ++ ++static void ++fill_array (void *array, void *refarray, size_t nmemb, size_t type_size, ++ arraytype_t type) ++{ ++ size_t size = nmemb * type_size; ++ ++ switch (type) ++ { ++ case Sorted: ++ for (size_t i = 0; i < nmemb; i++) ++ seq (arr (array, i, type_size), type_size, i); ++ break; ++ ++ case Random: ++ arc4random_buf (array, size); ++ break; ++ ++ case Repeated: ++ { ++ arc4random_buf (array, size); ++ ++ void *randelem = xmalloc (type_size); ++ arc4random_buf (randelem, type_size); ++ ++ /* Repeat REPEATED elements (based on RepeatRatio ratio) in the random ++ array. */ ++ size_t repeated = (size_t)(nmemb * RepeatedRatio); ++ for (size_t i = 0; i < repeated; i++) ++ { ++ size_t pos = arc4random_uniform (nmemb - 1); ++ memcpy (arr (array, pos, type_size), randelem, type_size); ++ } ++ free (randelem); ++ } ++ break; ++ ++ case Bitonic: ++ { ++ size_t i; ++ for (i = 0; i < nmemb / 2; i++) ++ seq (arr (array, i, type_size), type_size, i); ++ for ( ; i < nmemb; i++) ++ seq (arr (array, i, type_size), type_size, (nmemb - 1) - i); ++ } ++ break; ++ ++ case Duplicated: ++ { ++ int randelem1 = arc4random (); ++ for (size_t i = 0; i < nmemb; i++) ++ seq (arr (array, i, type_size), type_size, randelem1); ++ ++ size_t duplicates = (size_t)(nmemb * DuplicatedRatio); ++ int randelem2 = arc4random (); ++ for (size_t i = 0; i < duplicates; i++) ++ { ++ size_t pos = arc4random_uniform (nmemb - 1); ++ seq (arr (array, pos, type_size), type_size, randelem2); ++ } ++ } ++ break; ++ } ++ ++ memcpy (refarray, array, size); ++} ++ ++typedef int (*cmpfunc_t)(const void *, const void *); ++ ++/* Simple insertion sort to use as reference sort. */ ++static void ++qsort_r_ref (void *p, size_t n, size_t s, __compar_d_fn_t cmp, void *arg) ++{ ++ if (n <= 1) ++ return; ++ ++ int i = 1; ++ char tmp[s]; ++ while (i < n) ++ { ++ memcpy (tmp, arr (p, i, s), s); ++ int j = i - 1; ++ while (j >= 0 && cmp (arr (p, j, s), tmp, arg) > 0) ++ { ++ memcpy (arr (p, j + 1, s), arr (p, j, s), s); ++ j = j - 1; ++ } ++ memcpy (arr (p, j + 1, s), tmp, s); ++ i = i + 1; ++ } ++} ++ ++static void ++qsort_ref (void *b, size_t n, size_t s, __compar_fn_t cmp) ++{ ++ return qsort_r_ref (b, n, s, (__compar_d_fn_t) cmp, NULL); ++} ++ ++/* Check if ARRAY of total NMEMB element of size SIZE is sorted ++ based on CMPFUNC. */ ++static void ++check_array (void *array, void *refarray, size_t nmemb, size_t type_size, ++ cmpfunc_t cmpfunc) ++{ ++ for (size_t i = 1; i < nmemb; i++) ++ { ++ int ret = cmpfunc (arr (array, i, type_size), ++ arr (array, i-1, type_size)); ++ TEST_VERIFY_EXIT (ret >= 0); ++ } ++ ++ size_t size = nmemb * type_size; ++ TEST_COMPARE_BLOB (array, size, refarray, size); ++} ++ ++static void ++check_qsort (void *buf, void *refbuf, size_t nelem, size_t type_size, ++ arraytype_t type, cmpfunc_t cmpfunc) ++{ ++ fill_array (buf, refbuf, nelem, type_size, type); ++ ++ qsort (buf, nelem, type_size, cmpfunc); ++ qsort_ref (refbuf, nelem, type_size, cmpfunc); ++ ++ check_array (buf, refbuf, nelem, type_size, cmpfunc); ++} ++ ++static void ++check_qsort_r (void *buf, void *refbuf, size_t nelem, size_t type_size, ++ arraytype_t type, cmpfunc_t cmpfunc) ++{ ++ fill_array (buf, refbuf, nelem, type_size, type); ++ ++ type_cmp_t typecmp = uint_t_cmp_type (type_size); ++ ++ qsort_r (buf, nelem, type_size, uint_t_cmp, &typecmp); ++ qsort_r_ref (refbuf, nelem, type_size, uint_t_cmp, &typecmp); ++ ++ check_array (buf, refbuf, nelem, type_size, cmpfunc); ++} ++ ++static int ++do_test (void) ++{ ++ /* Some random sizes. */ ++ static const size_t nelems[] = { 0, 1, 7, 20, 32, 100, 256, 1024, 4256 }; ++ size_t max_nelems = 0; ++ for (int i = 0; i < array_length (nelems); i++) ++ if (nelems[i] > max_nelems) ++ max_nelems = nelems[i]; ++ ++ static const struct test_t ++ { ++ size_t type_size; ++ cmpfunc_t cmpfunc; ++ } ++ tests[] = ++ { ++ { sizeof (uint8_t), uint8_t_cmp }, ++ { sizeof (uint16_t), uint16_t_cmp }, ++ { sizeof (uint32_t), uint32_t_cmp }, ++ { sizeof (uint64_t), uint64_t_cmp }, ++ /* Test swap with large elements. */ ++ { LARGE_SIZE, large_cmp }, ++ }; ++ size_t max_type_size = 0; ++ for (int i = 0; i < array_length (tests); i++) ++ if (tests[i].type_size > max_type_size) ++ max_type_size = tests[i].type_size; ++ ++ void *buf = reallocarray (NULL, max_nelems, max_type_size); ++ TEST_VERIFY_EXIT (buf != NULL); ++ void *refbuf = reallocarray (NULL, max_nelems, max_type_size); ++ TEST_VERIFY_EXIT (refbuf != NULL); ++ ++ for (const struct test_t *test = tests; test < array_end (tests); ++test) ++ { ++ if (test_verbose > 0) ++ printf ("info: testing qsort with type_size=%zu\n", test->type_size); ++ for (const struct array_t *arraytype = arraytypes; ++ arraytype < array_end (arraytypes); ++ ++arraytype) ++ { ++ if (test_verbose > 0) ++ printf (" distribution=%s\n", arraytype->name); ++ for (const size_t *nelem = nelems; ++ nelem < array_end (nelems); ++ ++nelem) ++ { ++ if (test_verbose > 0) ++ printf (" nelem=%zu, total size=%zu\n", *nelem, ++ *nelem * test->type_size); ++ ++ check_qsort (buf, refbuf, *nelem, test->type_size, ++ arraytype->type, test->cmpfunc); ++ check_qsort_r (buf, refbuf, *nelem, test->type_size, ++ arraytype->type, test->cmpfunc); ++ } ++ } ++ } ++ ++ free (buf); ++ free (refbuf); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-28119.patch b/SOURCES/glibc-RHEL-28119.patch new file mode 100644 index 0000000..ea21088 --- /dev/null +++ b/SOURCES/glibc-RHEL-28119.patch @@ -0,0 +1,45 @@ +commit 7a76f218677d149d8b7875b336722108239f7ee9 +Author: Florian Weimer +Date: Fri Mar 15 19:08:24 2024 +0100 + + linux: Use rseq area unconditionally in sched_getcpu (bug 31479) + + Originally, nptl/descr.h included , but we removed that + in commit 2c6b4b272e6b4d07303af25709051c3e96288f2d ("nptl: + Unconditionally use a 32-byte rseq area"). After that, it was + not ensured that the RSEQ_SIG macro was defined during sched_getcpu.c + compilation that provided a definition. This commit always checks + the rseq area for CPU number information before using the other + approaches. + + This adds an unnecessary (but well-predictable) branch on + architectures which do not define RSEQ_SIG, but its cost is small + compared to the system call. Most architectures that have vDSO + acceleration for getcpu also have rseq support. + + Fixes: 2c6b4b272e6b4d07303af25709051c3e96288f2d + Fixes: 1d350aa06091211863e41169729cee1bca39f72f + Reviewed-by: Arjun Shankar + +diff --git a/sysdeps/unix/sysv/linux/sched_getcpu.c b/sysdeps/unix/sysv/linux/sched_getcpu.c +index 6f78edaea1495342..a33e30a1cb8e161b 100644 +--- a/sysdeps/unix/sysv/linux/sched_getcpu.c ++++ b/sysdeps/unix/sysv/linux/sched_getcpu.c +@@ -33,17 +33,9 @@ vsyscall_sched_getcpu (void) + return r == -1 ? r : cpu; + } + +-#ifdef RSEQ_SIG + int + sched_getcpu (void) + { + int cpu_id = THREAD_GETMEM_VOLATILE (THREAD_SELF, rseq_area.cpu_id); + return __glibc_likely (cpu_id >= 0) ? cpu_id : vsyscall_sched_getcpu (); + } +-#else /* RSEQ_SIG */ +-int +-sched_getcpu (void) +-{ +- return vsyscall_sched_getcpu (); +-} +-#endif /* RSEQ_SIG */ diff --git a/SOURCES/glibc-RHEL-44920-1.patch b/SOURCES/glibc-RHEL-44920-1.patch new file mode 100644 index 0000000..a1797aa --- /dev/null +++ b/SOURCES/glibc-RHEL-44920-1.patch @@ -0,0 +1,135 @@ +commit 4e4641164d2722d622a1bf3b5e4583538d9c7227 +Author: Florian Weimer +Date: Mon Apr 17 15:41:08 2023 +0200 + + debug: Re-flow and sort routines variable in Makefile + + Reviewed-by: Adhemerval Zanella + +Conflicts: + debug/Makefile (fixed context) + +diff --git a/debug/Makefile b/debug/Makefile +index 63395fc626610a53..c19c76e2b8564bd2 100644 +--- a/debug/Makefile ++++ b/debug/Makefile +@@ -28,31 +28,94 @@ headers := execinfo.h + # Note that ptsname_r_chk and getlogin_r are not here, but in + # login/Makefile instead. If that subdir is omitted from the + # build, its _FORTIFY_SOURCE support will be too. +-routines = backtrace backtracesyms backtracesymsfd noophooks \ +- memcpy_chk memmove_chk mempcpy_chk memset_chk stpcpy_chk \ +- strcat_chk strcpy_chk strncat_chk strncpy_chk stpncpy_chk \ +- sprintf_chk vsprintf_chk snprintf_chk vsnprintf_chk \ +- printf_chk fprintf_chk vprintf_chk vfprintf_chk \ +- gets_chk chk_fail readonly-area fgets_chk fgets_u_chk \ +- read_chk pread_chk pread64_chk recv_chk recvfrom_chk \ +- readlink_chk readlinkat_chk getwd_chk getcwd_chk \ +- realpath_chk fread_chk fread_u_chk \ +- wctomb_chk wcscpy_chk wmemcpy_chk wmemmove_chk wmempcpy_chk \ +- wcpcpy_chk wcsncpy_chk wcscat_chk wcsncat_chk wmemset_chk \ +- wcpncpy_chk \ +- swprintf_chk vswprintf_chk wprintf_chk fwprintf_chk \ +- vwprintf_chk vfwprintf_chk fgetws_chk fgetws_u_chk \ +- confstr_chk getgroups_chk ttyname_r_chk \ +- gethostname_chk getdomainname_chk wcrtomb_chk mbsnrtowcs_chk \ +- wcsnrtombs_chk mbsrtowcs_chk wcsrtombs_chk mbstowcs_chk \ +- wcstombs_chk asprintf_chk vasprintf_chk dprintf_chk \ +- vdprintf_chk obprintf_chk vobprintf_chk \ +- longjmp_chk ____longjmp_chk \ +- fdelt_chk poll_chk ppoll_chk \ +- explicit_bzero_chk \ +- stack_chk_fail fortify_fail \ +- readonly-area-fallback \ +- $(static-only-routines) ++routines = \ ++ ____longjmp_chk \ ++ asprintf_chk \ ++ backtrace \ ++ backtracesyms \ ++ backtracesymsfd \ ++ chk_fail \ ++ confstr_chk \ ++ dprintf_chk \ ++ explicit_bzero_chk \ ++ fdelt_chk \ ++ fgets_chk \ ++ fgets_u_chk \ ++ fgetws_chk \ ++ fgetws_u_chk \ ++ fortify_fail \ ++ fprintf_chk \ ++ fread_chk \ ++ fread_u_chk \ ++ fwprintf_chk \ ++ getcwd_chk \ ++ getdomainname_chk \ ++ getgroups_chk \ ++ gethostname_chk \ ++ gets_chk \ ++ getwd_chk \ ++ longjmp_chk \ ++ mbsnrtowcs_chk \ ++ mbsrtowcs_chk \ ++ mbstowcs_chk \ ++ memcpy_chk \ ++ memmove_chk \ ++ mempcpy_chk \ ++ memset_chk \ ++ noophooks \ ++ obprintf_chk \ ++ poll_chk \ ++ ppoll_chk \ ++ pread64_chk \ ++ pread_chk \ ++ printf_chk \ ++ read_chk \ ++ readlink_chk \ ++ readlinkat_chk \ ++ readonly-area \ ++ readonly-area-fallback \ ++ realpath_chk \ ++ recv_chk \ ++ recvfrom_chk \ ++ snprintf_chk \ ++ sprintf_chk \ ++ stack_chk_fail \ ++ stpcpy_chk \ ++ stpncpy_chk \ ++ strcat_chk \ ++ strcpy_chk \ ++ strncat_chk \ ++ strncpy_chk \ ++ swprintf_chk \ ++ ttyname_r_chk \ ++ vasprintf_chk \ ++ vdprintf_chk \ ++ vfprintf_chk \ ++ vfwprintf_chk \ ++ vobprintf_chk \ ++ vprintf_chk \ ++ vsnprintf_chk \ ++ vsprintf_chk \ ++ vswprintf_chk \ ++ vwprintf_chk \ ++ wcpcpy_chk \ ++ wcpncpy_chk \ ++ wcrtomb_chk \ ++ wcscat_chk \ ++ wcscpy_chk \ ++ wcsncat_chk \ ++ wcsncpy_chk \ ++ wcsnrtombs_chk \ ++ wcsrtombs_chk \ ++ wcstombs_chk \ ++ wctomb_chk \ ++ wmemcpy_chk \ ++ wmemmove_chk \ ++ wmempcpy_chk \ ++ wmemset_chk \ ++ wprintf_chk \ ++ $(static-only-routines) ++ # routines + static-only-routines := stack_chk_fail_local + + # Don't add stack_chk_fail_local.o to libc.a since __stack_chk_fail_local diff --git a/SOURCES/glibc-RHEL-44920-2.patch b/SOURCES/glibc-RHEL-44920-2.patch new file mode 100644 index 0000000..a375886 --- /dev/null +++ b/SOURCES/glibc-RHEL-44920-2.patch @@ -0,0 +1,168 @@ +commit b6b8a88cf59a00d7716e9dd2e5ba92eedfec69ce +Author: Arjun Shankar +Date: Mon Oct 2 14:55:13 2023 +0200 + + inet: Rearrange and sort Makefile variables + + Rearrange lists of routines, tests, etc. into one-per-line in + inet/Makefile and sort them using scripts/sort-makefile-lines.py. + Reviewed-by: Siddhesh Poyarekar + +diff --git a/inet/Makefile b/inet/Makefile +index cf4cf5cf8ae6732f..b7d6e40fb319f52d 100644 +--- a/inet/Makefile ++++ b/inet/Makefile +@@ -22,41 +22,123 @@ subdir := inet + + include ../Makeconfig + +-headers := netinet/ether.h netinet/in.h netinet/in_systm.h \ +- netinet/if_ether.h netinet/igmp.h \ +- netinet/tcp.h netinet/ip.h $(wildcard arpa/*.h protocols/*.h) \ +- aliases.h ifaddrs.h netinet/ip6.h netinet/icmp6.h bits/in.h \ +- rpc/netdb.h +- +-routines := htonl htons \ +- inet_lnaof inet_mkadr \ +- inet_netof inet_ntoa inet_net herrno herrno-loc \ +- gethstbyad gethstbyad_r gethstbynm gethstbynm2 gethstbynm2_r \ +- gethstbynm_r gethstent gethstent_r \ +- getnetbyad getnetbyad_r getnetbynm getnetent getnetent_r \ +- getnetbynm_r \ +- getproto getproto_r getprtent getprtent_r getprtname getprtname_r \ +- getsrvbynm getsrvbynm_r getsrvbypt getsrvbypt_r getservent \ +- getservent_r getrpcent getrpcbyname getrpcbynumber \ +- getrpcent_r getrpcbyname_r getrpcbynumber_r \ +- ether_aton ether_aton_r ether_hton ether_line \ +- ether_ntoa ether_ntoa_r ether_ntoh \ +- rcmd rexec ruserpass bindresvport \ +- getnetgrent_r getnetgrent \ +- getaliasent_r getaliasent getaliasname getaliasname_r \ +- in6_addr getnameinfo if_index ifaddrs inet6_option \ +- getipv4sourcefilter setipv4sourcefilter \ +- getsourcefilter setsourcefilter inet6_opt inet6_rth \ +- inet6_scopeid_pton deadline idna idna_name_classify ++headers := \ ++ $(wildcard arpa/*.h protocols/*.h) \ ++ aliases.h \ ++ bits/in.h \ ++ ifaddrs.h \ ++ netinet/ether.h \ ++ netinet/icmp6.h \ ++ netinet/if_ether.h \ ++ netinet/igmp.h \ ++ netinet/in.h \ ++ netinet/in_systm.h \ ++ netinet/ip.h \ ++ netinet/ip6.h \ ++ netinet/tcp.h \ ++ rpc/netdb.h \ ++ # headers ++ ++routines := \ ++ bindresvport \ ++ deadline \ ++ ether_aton \ ++ ether_aton_r \ ++ ether_hton \ ++ ether_line \ ++ ether_ntoa \ ++ ether_ntoa_r \ ++ ether_ntoh \ ++ getaliasent \ ++ getaliasent_r \ ++ getaliasname \ ++ getaliasname_r \ ++ gethstbyad \ ++ gethstbyad_r \ ++ gethstbynm \ ++ gethstbynm2 \ ++ gethstbynm2_r \ ++ gethstbynm_r \ ++ gethstent \ ++ gethstent_r \ ++ getipv4sourcefilter \ ++ getnameinfo \ ++ getnetbyad \ ++ getnetbyad_r \ ++ getnetbynm \ ++ getnetbynm_r \ ++ getnetent \ ++ getnetent_r \ ++ getnetgrent \ ++ getnetgrent_r \ ++ getproto \ ++ getproto_r \ ++ getprtent \ ++ getprtent_r \ ++ getprtname \ ++ getprtname_r \ ++ getrpcbyname \ ++ getrpcbyname_r \ ++ getrpcbynumber \ ++ getrpcbynumber_r \ ++ getrpcent \ ++ getrpcent_r \ ++ getservent \ ++ getservent_r \ ++ getsourcefilter \ ++ getsrvbynm \ ++ getsrvbynm_r \ ++ getsrvbypt \ ++ getsrvbypt_r \ ++ herrno \ ++ herrno-loc \ ++ htonl \ ++ htons \ ++ idna \ ++ idna_name_classify \ ++ if_index \ ++ ifaddrs \ ++ in6_addr \ ++ inet6_opt \ ++ inet6_option \ ++ inet6_rth \ ++ inet6_scopeid_pton \ ++ inet_lnaof \ ++ inet_mkadr \ ++ inet_net \ ++ inet_netof \ ++ inet_ntoa \ ++ rcmd \ ++ rexec \ ++ ruserpass \ ++ setipv4sourcefilter \ ++ setsourcefilter \ ++ # routines + + install-others = $(inst_sysconfdir)/rpc + + aux := check_pf check_native ifreq + +-tests := htontest test_ifindex tst-ntoa tst-ether_aton tst-network \ +- tst-gethnm test-ifaddrs bug-if1 test-inet6_opt tst-ether_line \ +- tst-getni1 tst-getni2 tst-inet6_rth tst-checks tst-checks-posix \ +- tst-sockaddr test-hnto-types tst-if_index-long ++tests := \ ++ bug-if1 \ ++ htontest \ ++ test-hnto-types \ ++ test-ifaddrs \ ++ test-inet6_opt \ ++ test_ifindex \ ++ tst-checks \ ++ tst-checks-posix \ ++ tst-ether_aton \ ++ tst-ether_line \ ++ tst-gethnm \ ++ tst-getni1 \ ++ tst-getni2 \ ++ tst-if_index-long \ ++ tst-inet6_rth \ ++ tst-network \ ++ tst-ntoa \ ++ tst-sockaddr \ ++ # tests + + # tst-deadline must be linked statically so that we can access + # internal functions. diff --git a/SOURCES/glibc-RHEL-44920-3.patch b/SOURCES/glibc-RHEL-44920-3.patch new file mode 100644 index 0000000..ca7ee81 --- /dev/null +++ b/SOURCES/glibc-RHEL-44920-3.patch @@ -0,0 +1,81 @@ +commit 84373ef7b72c9c8ab61ce1fdfd798777715a1a52 +Author: Frédéric Bérat +Date: Fri Mar 7 14:42:26 2025 +0100 + + Prepare inet_ntop to be fortified + + Rename inet_ntop to __inet_ntop and create the inet_ntop weak alias + based on it in order to prepare for disabling fortification when + available. + + Reviewed-by: Florian Weimer + +diff --git a/include/arpa/inet.h b/include/arpa/inet.h +index df9472ba3bc52689..d1ea13bb19d4a497 100644 +--- a/include/arpa/inet.h ++++ b/include/arpa/inet.h +@@ -5,7 +5,9 @@ + extern int __inet_aton_exact (const char *__cp, struct in_addr *__inp); + libc_hidden_proto (__inet_aton_exact) + +-libc_hidden_proto (inet_ntop) ++extern __typeof (inet_ntop) __inet_ntop; ++libc_hidden_proto (__inet_ntop) ++ + libc_hidden_proto (inet_pton) + extern __typeof (inet_pton) __inet_pton; + libc_hidden_proto (__inet_pton) +diff --git a/inet/getnameinfo.c b/inet/getnameinfo.c +index 8380d8578361b289..d0c6de6ba12b6298 100644 +--- a/inet/getnameinfo.c ++++ b/inet/getnameinfo.c +@@ -323,7 +323,7 @@ gni_host_inet_numeric (struct scratch_buffer *tmpbuf, + if (sa->sa_family == AF_INET6) + { + const struct sockaddr_in6 *sin6p = (const struct sockaddr_in6 *) sa; +- if (inet_ntop (AF_INET6, &sin6p->sin6_addr, host, hostlen) == NULL) ++ if (__inet_ntop (AF_INET6, &sin6p->sin6_addr, host, hostlen) == NULL) + return EAI_OVERFLOW; + + uint32_t scopeid = sin6p->sin6_scope_id; +@@ -350,7 +350,7 @@ gni_host_inet_numeric (struct scratch_buffer *tmpbuf, + else + { + const struct sockaddr_in *sinp = (const struct sockaddr_in *) sa; +- if (inet_ntop (AF_INET, &sinp->sin_addr, host, hostlen) == NULL) ++ if (__inet_ntop (AF_INET, &sinp->sin_addr, host, hostlen) == NULL) + return EAI_OVERFLOW; + } + return 0; +diff --git a/resolv/inet_ntop.c b/resolv/inet_ntop.c +index c4d38c0f951013e5..acf5f3cb885e2e47 100644 +--- a/resolv/inet_ntop.c ++++ b/resolv/inet_ntop.c +@@ -42,7 +42,7 @@ static const char *inet_ntop4 (const u_char *src, char *dst, socklen_t size); + static const char *inet_ntop6 (const u_char *src, char *dst, socklen_t size); + + /* char * +- * inet_ntop(af, src, dst, size) ++ * __inet_ntop(af, src, dst, size) + * convert a network format address to presentation format. + * return: + * pointer to presentation format address (`dst'), or NULL (see errno). +@@ -50,7 +50,7 @@ static const char *inet_ntop6 (const u_char *src, char *dst, socklen_t size); + * Paul Vixie, 1996. + */ + const char * +-inet_ntop (int af, const void *src, char *dst, socklen_t size) ++__inet_ntop (int af, const void *src, char *dst, socklen_t size) + { + switch (af) { + case AF_INET: +@@ -63,7 +63,8 @@ inet_ntop (int af, const void *src, char *dst, socklen_t size) + } + /* NOTREACHED */ + } +-libc_hidden_def (inet_ntop) ++libc_hidden_def (__inet_ntop) ++weak_alias (__inet_ntop, inet_ntop) + + /* const char * + * inet_ntop4(src, dst, size) diff --git a/SOURCES/glibc-RHEL-44920-4.patch b/SOURCES/glibc-RHEL-44920-4.patch new file mode 100644 index 0000000..ca6bade --- /dev/null +++ b/SOURCES/glibc-RHEL-44920-4.patch @@ -0,0 +1,26 @@ +commit 3cdb99d8bb9d0008b2b297080e61d6c10dd66cc8 +Author: Frédéric Bérat +Date: Tue Mar 11 10:40:11 2025 +0100 + + Add missing guards in include/arpa/inet.h + + Add the missing guards in the header, similarly to other headers at the + same level + + Reviewed-by: Florian Weimer + +diff --git a/include/arpa/inet.h b/include/arpa/inet.h +index d1ea13bb19d4a497..d9e55a3c7f2db9f2 100644 +--- a/include/arpa/inet.h ++++ b/include/arpa/inet.h +@@ -1,3 +1,5 @@ ++#ifndef _ARPA_INET_H ++/* Note: _ARPA_INET_H is defined by inet/arpa/inet.h below. */ + #include + + #ifndef _ISOMAC +@@ -17,3 +19,4 @@ libc_hidden_proto (inet_netof) + extern __typeof (inet_network) __inet_network; + libc_hidden_proto (__inet_network) + #endif ++#endif diff --git a/SOURCES/glibc-RHEL-44920-5.patch b/SOURCES/glibc-RHEL-44920-5.patch new file mode 100644 index 0000000..24ba239 --- /dev/null +++ b/SOURCES/glibc-RHEL-44920-5.patch @@ -0,0 +1,277 @@ +commit 090dfa40a5e46f7c0e4d6e8369bcbbd51267625f +Author: Frédéric Bérat +Date: Fri Mar 7 18:16:30 2025 +0100 + + Add _FORTIFY_SOURCE support for inet_ntop + + - Create the __inet_ntop_chk routine that verifies that the builtin size + of the destination buffer is at least as big as the size given by the + user. + - Redirect calls from inet_ntop to __inet_ntop_chk or __inet_ntop_warn + - Update the abilist for this new routine + - Update the manual to mention the new fortification + + Reviewed-by: Florian Weimer + +Conflicts: + debug/Makefile (New routine added to static-only-routines + instead of routines) + debug/Versions (Version not updated in the backport) + inet/Makefile (New headers) + manual/maint.texi (Not relevant in current Glibc Version) + */libc.abilist (Not added in the backport) + inet/bits/inet-fortified-decl.h (Replace __REDIRECT_FORTIFY_NTH + with __REDIRECT_NTH) + inet/bits/inet-fortified.h (removed attribute_overloadable and + clang specific handling) + +Note on the changes: +- Since we can't modify the ABI, __inet_ntop_chk has been added to + static-only-routines and `attribute_hidden` has been added to its definition. +- __REDIRECT_FORTIFY* macros aren't available in the current version, since + the patch to enable foritfication on glibc itself hasn't be ported. +- clang specific handling of foritifcation has not been ported, which means the + following had to be removed from the patch: + - use of __attribute_overloadable__ + - use of __fortify_clang_* macros + +diff --git a/debug/Makefile b/debug/Makefile +index c19c76e2b8564bd2..18be784e86bbaaab 100644 +--- a/debug/Makefile ++++ b/debug/Makefile +@@ -116,7 +116,8 @@ routines = \ + wprintf_chk \ + $(static-only-routines) + # routines +-static-only-routines := stack_chk_fail_local ++static-only-routines := stack_chk_fail_local \ ++ inet_ntop_chk \ + + # Don't add stack_chk_fail_local.o to libc.a since __stack_chk_fail_local + # is an alias of __stack_chk_fail in stack_chk_fail.o. +diff --git a/debug/inet_ntop_chk.c b/debug/inet_ntop_chk.c +new file mode 100644 +index 0000000000000000..8a3994dd3fc9bfe4 +--- /dev/null ++++ b/debug/inet_ntop_chk.c +@@ -0,0 +1,31 @@ ++/* Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++attribute_hidden ++const char * ++__inet_ntop_chk (int af, const void *src, char *dst, ++ socklen_t size, size_t dst_size) ++{ ++ if (size > dst_size) ++ __chk_fail (); ++ ++ return inet_ntop (af, src, dst, size); ++} ++libc_hidden_def (__inet_ntop_chk) +diff --git a/debug/tst-fortify.c b/debug/tst-fortify.c +index 01a8703de1e6e09a..50909d0af53da10e 100644 +--- a/debug/tst-fortify.c ++++ b/debug/tst-fortify.c +@@ -24,6 +24,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -1762,6 +1763,26 @@ do_test (void) + # endif + #endif + ++ struct in6_addr addr6 = {}; ++ struct in_addr addr = {}; ++ char addrstr6[INET6_ADDRSTRLEN]; ++ char addrstr[INET_ADDRSTRLEN]; ++ ++ if (inet_ntop (AF_INET6, &addr6, addrstr6, sizeof (addrstr6)) == NULL) ++ FAIL (); ++ if (inet_ntop (AF_INET, &addr, addrstr, sizeof (addrstr)) == NULL) ++ FAIL (); ++ ++#if __USE_FORTIFY_LEVEL >= 1 ++ CHK_FAIL_START ++ inet_ntop (AF_INET6, &addr6, buf, INET6_ADDRSTRLEN); ++ CHK_FAIL_END ++ ++ CHK_FAIL_START ++ inet_ntop (AF_INET, &addr, buf, INET_ADDRSTRLEN); ++ CHK_FAIL_END ++#endif ++ + return ret; + } + +diff --git a/include/arpa/inet.h b/include/arpa/inet.h +index d9e55a3c7f2db9f2..a02892f48a27454e 100644 +--- a/include/arpa/inet.h ++++ b/include/arpa/inet.h +@@ -3,12 +3,18 @@ + #include + + #ifndef _ISOMAC ++/* Declare functions with security checks. ++ This needs to be included unconditionally as these definition are needed even ++ when fortification is disabled in inet/arpa/inet.h. */ ++#include ++ + /* Variant of inet_aton which rejects trailing garbage. */ + extern int __inet_aton_exact (const char *__cp, struct in_addr *__inp); + libc_hidden_proto (__inet_aton_exact) + + extern __typeof (inet_ntop) __inet_ntop; + libc_hidden_proto (__inet_ntop) ++libc_hidden_proto (__inet_ntop_chk) + + libc_hidden_proto (inet_pton) + extern __typeof (inet_pton) __inet_pton; +diff --git a/include/bits/inet-fortified-decl.h b/include/bits/inet-fortified-decl.h +new file mode 100644 +index 0000000000000000..e6ad4d4663c61a0d +--- /dev/null ++++ b/include/bits/inet-fortified-decl.h +@@ -0,0 +1 @@ ++#include +diff --git a/include/bits/inet-fortified.h b/include/bits/inet-fortified.h +new file mode 100644 +index 0000000000000000..abba7c57014c2a23 +--- /dev/null ++++ b/include/bits/inet-fortified.h +@@ -0,0 +1 @@ ++#include +diff --git a/inet/Makefile b/inet/Makefile +index b7d6e40fb319f52d..ef6b94ed0b519d6d 100644 +--- a/inet/Makefile ++++ b/inet/Makefile +@@ -26,6 +26,8 @@ headers := \ + $(wildcard arpa/*.h protocols/*.h) \ + aliases.h \ + bits/in.h \ ++ bits/inet-fortified-decl.h \ ++ bits/inet-fortified.h \ + ifaddrs.h \ + netinet/ether.h \ + netinet/icmp6.h \ +diff --git a/inet/arpa/inet.h b/inet/arpa/inet.h +index 54c9c6d468b66a2f..2ac498061a533a7b 100644 +--- a/inet/arpa/inet.h ++++ b/inet/arpa/inet.h +@@ -101,6 +101,11 @@ extern char *inet_nsap_ntoa (int __len, const unsigned char *__cp, + char *__buf) __THROW; + #endif + ++#if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function ++/* Include functions with security checks. */ ++# include ++#endif ++ + __END_DECLS + + #endif /* arpa/inet.h */ +diff --git a/inet/bits/inet-fortified-decl.h b/inet/bits/inet-fortified-decl.h +new file mode 100644 +index 0000000000000000..229063ae7898ba2d +--- /dev/null ++++ b/inet/bits/inet-fortified-decl.h +@@ -0,0 +1,35 @@ ++/* Declarations of checking macros for inet functions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#ifndef _BITS_INET_FORTIFIED_DEC_H ++#define _BITS_INET_FORTIFIED_DEC_H 1 ++ ++#ifndef _ARPA_INET_H ++# error "Never include directly; use instead." ++#endif ++ ++extern const char *__inet_ntop_chk (int, const void *, char *, socklen_t, size_t); ++ ++extern const char *__REDIRECT_NTH (__inet_ntop_alias, ++ (int, const void *, char *, socklen_t), inet_ntop); ++extern const char *__REDIRECT_NTH (__inet_ntop_chk_warn, ++ (int, const void *, char *, socklen_t, size_t), __inet_ntop_chk) ++ __warnattr ("inet_ntop called with bigger length than " ++ "size of destination buffer"); ++ ++#endif /* bits/inet-fortified-decl.h. */ +diff --git a/inet/bits/inet-fortified.h b/inet/bits/inet-fortified.h +new file mode 100644 +index 0000000000000000..af26f36ef6ae0533 +--- /dev/null ++++ b/inet/bits/inet-fortified.h +@@ -0,0 +1,37 @@ ++/* Checking macros for inet functions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#ifndef _BITS_INET_FORTIFIED_H ++#define _BITS_INET_FORTIFIED_H 1 ++ ++#ifndef _ARPA_INET_H ++# error "Never include directly; use instead." ++#endif ++ ++#include ++ ++__fortify_function const char * ++__NTH (inet_ntop (int __af, const void * __restrict __src, ++ char *__restrict __dst, socklen_t __dst_size)) ++{ ++ return __glibc_fortify (inet_ntop, __dst_size, sizeof (char), ++ __glibc_objsize (__dst), ++ __af, __src, __dst, __dst_size); ++}; ++ ++#endif /* bits/inet-fortified.h. */ diff --git a/SOURCES/glibc-RHEL-44920-6.patch b/SOURCES/glibc-RHEL-44920-6.patch new file mode 100644 index 0000000..c2eca09 --- /dev/null +++ b/SOURCES/glibc-RHEL-44920-6.patch @@ -0,0 +1,23 @@ +commit 7f0d9e61f40c669fca3cfd1e342fa8236c7220b7 +Author: Paul Pluzhnikov +Date: Sat May 20 13:37:47 2023 +0000 + + Fix all the remaining misspellings -- BZ 25337 + +Note on the changes: +- Partial backport, the only file modified is `resolv/inet_pton.c` to + ease further backport for RHEL-44920. + +diff --git a/resolv/inet_pton.c b/resolv/inet_pton.c +index f1d5db75d0d47501..835f364794c1be96 100644 +--- a/resolv/inet_pton.c ++++ b/resolv/inet_pton.c +@@ -121,7 +121,7 @@ inet_pton4 (const char *src, const char *end, unsigned char *dst) + return 1; + } + +-/* Return the value of CH as a hexademical digit, or -1 if it is a ++/* Return the value of CH as a hexadecimal digit, or -1 if it is a + different type of character. */ + static int + hex_digit_value (char ch) diff --git a/SOURCES/glibc-RHEL-44920-7.patch b/SOURCES/glibc-RHEL-44920-7.patch new file mode 100644 index 0000000..51ee98f --- /dev/null +++ b/SOURCES/glibc-RHEL-44920-7.patch @@ -0,0 +1,471 @@ +commit a71db81ed1353edd00ca2901d2fefd98c53209d3 +Author: Aaron Merey +Date: Thu Mar 20 11:07:05 2025 -0400 + + Prepare inet_pton to be fortified + + Split inet_pton internals such as __inet_pton_length from the + inet_pton entry point. + + This allows the internals to be built with fortification while + leaving the inet_pton entry point unchanged. + + Co-authored-by: Frédéric Bérat + Reviewed-by: Florian Weimer + +diff --git a/resolv/Makefile b/resolv/Makefile +index e168a81d9e086df4..f3f5c260d0b7471f 100644 +--- a/resolv/Makefile ++++ b/resolv/Makefile +@@ -38,6 +38,7 @@ routines := \ + inet_addr \ + inet_ntop \ + inet_pton \ ++ inet_pton_length \ + ns_makecanon \ + ns_name_compress \ + ns_name_length_uncompressed \ +@@ -73,6 +74,11 @@ routines := \ + resolv_context \ + # routines + ++# Exclude fortified routines from being built with _FORTIFY_SOURCE ++routines_no_fortify += \ ++ inet_pton \ ++ # routines_no_fortify ++ + tests = tst-aton tst-leaks tst-inet_ntop + tests-container = tst-leaks2 + +diff --git a/resolv/inet_pton.c b/resolv/inet_pton.c +index 835f364794c1be96..cebccb2e1ee7bfd1 100644 +--- a/resolv/inet_pton.c ++++ b/resolv/inet_pton.c +@@ -33,33 +33,7 @@ + */ + + #include +-#include +-#include +-#include +-#include + #include +-#include +-#include +-#include +- +-static int inet_pton4 (const char *src, const char *src_end, u_char *dst); +-static int inet_pton6 (const char *src, const char *src_end, u_char *dst); +- +-int +-__inet_pton_length (int af, const char *src, size_t srclen, void *dst) +-{ +- switch (af) +- { +- case AF_INET: +- return inet_pton4 (src, src + srclen, dst); +- case AF_INET6: +- return inet_pton6 (src, src + srclen, dst); +- default: +- __set_errno (EAFNOSUPPORT); +- return -1; +- } +-} +-libc_hidden_def (__inet_pton_length) + + /* Like __inet_pton_length, but use strlen (SRC) as the length of + SRC. */ +@@ -71,164 +45,3 @@ __inet_pton (int af, const char *src, void *dst) + libc_hidden_def (__inet_pton) + weak_alias (__inet_pton, inet_pton) + libc_hidden_weak (inet_pton) +- +-/* Like inet_aton but without all the hexadecimal, octal and shorthand +- (and trailing garbage is not ignored). Return 1 if SRC is a valid +- dotted quad, else 0. This function does not touch DST unless it's +- returning 1. +- Author: Paul Vixie, 1996. */ +-static int +-inet_pton4 (const char *src, const char *end, unsigned char *dst) +-{ +- int saw_digit, octets, ch; +- unsigned char tmp[NS_INADDRSZ], *tp; +- +- saw_digit = 0; +- octets = 0; +- *(tp = tmp) = 0; +- while (src < end) +- { +- ch = *src++; +- if (ch >= '0' && ch <= '9') +- { +- unsigned int new = *tp * 10 + (ch - '0'); +- +- if (saw_digit && *tp == 0) +- return 0; +- if (new > 255) +- return 0; +- *tp = new; +- if (! saw_digit) +- { +- if (++octets > 4) +- return 0; +- saw_digit = 1; +- } +- } +- else if (ch == '.' && saw_digit) +- { +- if (octets == 4) +- return 0; +- *++tp = 0; +- saw_digit = 0; +- } +- else +- return 0; +- } +- if (octets < 4) +- return 0; +- memcpy (dst, tmp, NS_INADDRSZ); +- return 1; +-} +- +-/* Return the value of CH as a hexadecimal digit, or -1 if it is a +- different type of character. */ +-static int +-hex_digit_value (char ch) +-{ +- if ('0' <= ch && ch <= '9') +- return ch - '0'; +- if ('a' <= ch && ch <= 'f') +- return ch - 'a' + 10; +- if ('A' <= ch && ch <= 'F') +- return ch - 'A' + 10; +- return -1; +-} +- +-/* Convert presentation-level IPv6 address to network order binary +- form. Return 1 if SRC is a valid [RFC1884 2.2] address, else 0. +- This function does not touch DST unless it's returning 1. +- Author: Paul Vixie, 1996. Inspired by Mark Andrews. */ +-static int +-inet_pton6 (const char *src, const char *src_endp, unsigned char *dst) +-{ +- unsigned char tmp[NS_IN6ADDRSZ], *tp, *endp, *colonp; +- const char *curtok; +- int ch; +- size_t xdigits_seen; /* Number of hex digits since colon. */ +- unsigned int val; +- +- tp = memset (tmp, '\0', NS_IN6ADDRSZ); +- endp = tp + NS_IN6ADDRSZ; +- colonp = NULL; +- +- /* Leading :: requires some special handling. */ +- if (src == src_endp) +- return 0; +- if (*src == ':') +- { +- ++src; +- if (src == src_endp || *src != ':') +- return 0; +- } +- +- curtok = src; +- xdigits_seen = 0; +- val = 0; +- while (src < src_endp) +- { +- ch = *src++; +- int digit = hex_digit_value (ch); +- if (digit >= 0) +- { +- if (xdigits_seen == 4) +- return 0; +- val <<= 4; +- val |= digit; +- if (val > 0xffff) +- return 0; +- ++xdigits_seen; +- continue; +- } +- if (ch == ':') +- { +- curtok = src; +- if (xdigits_seen == 0) +- { +- if (colonp) +- return 0; +- colonp = tp; +- continue; +- } +- else if (src == src_endp) +- return 0; +- if (tp + NS_INT16SZ > endp) +- return 0; +- *tp++ = (unsigned char) (val >> 8) & 0xff; +- *tp++ = (unsigned char) val & 0xff; +- xdigits_seen = 0; +- val = 0; +- continue; +- } +- if (ch == '.' && ((tp + NS_INADDRSZ) <= endp) +- && inet_pton4 (curtok, src_endp, tp) > 0) +- { +- tp += NS_INADDRSZ; +- xdigits_seen = 0; +- break; /* '\0' was seen by inet_pton4. */ +- } +- return 0; +- } +- if (xdigits_seen > 0) +- { +- if (tp + NS_INT16SZ > endp) +- return 0; +- *tp++ = (unsigned char) (val >> 8) & 0xff; +- *tp++ = (unsigned char) val & 0xff; +- } +- if (colonp != NULL) +- { +- /* Replace :: with zeros. */ +- if (tp == endp) +- /* :: would expand to a zero-width field. */ +- return 0; +- size_t n = tp - colonp; +- memmove (endp - n, colonp, n); +- memset (colonp, 0, endp - n - colonp); +- tp = endp; +- } +- if (tp != endp) +- return 0; +- memcpy (dst, tmp, NS_IN6ADDRSZ); +- return 1; +-} +diff --git a/resolv/inet_pton_length.c b/resolv/inet_pton_length.c +new file mode 100644 +index 0000000000000000..c3614074a47140c1 +--- /dev/null ++++ b/resolv/inet_pton_length.c +@@ -0,0 +1,223 @@ ++/* Copyright (C) 1996-2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* ++ * Copyright (c) 1996,1999 by Internet Software Consortium. ++ * ++ * Permission to use, copy, modify, and distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS ++ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE ++ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL ++ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR ++ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ++ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS ++ * SOFTWARE. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int inet_pton4 (const char *src, const char *src_end, u_char *dst); ++static int inet_pton6 (const char *src, const char *src_end, u_char *dst); ++ ++int ++__inet_pton_length (int af, const char *src, size_t srclen, void *dst) ++{ ++ switch (af) ++ { ++ case AF_INET: ++ return inet_pton4 (src, src + srclen, dst); ++ case AF_INET6: ++ return inet_pton6 (src, src + srclen, dst); ++ default: ++ __set_errno (EAFNOSUPPORT); ++ return -1; ++ } ++} ++libc_hidden_def (__inet_pton_length) ++ ++/* Like inet_aton but without all the hexadecimal, octal and shorthand ++ (and trailing garbage is not ignored). Return 1 if SRC is a valid ++ dotted quad, else 0. This function does not touch DST unless it's ++ returning 1. ++ Author: Paul Vixie, 1996. */ ++static int ++inet_pton4 (const char *src, const char *end, unsigned char *dst) ++{ ++ int saw_digit, octets, ch; ++ unsigned char tmp[NS_INADDRSZ], *tp; ++ ++ saw_digit = 0; ++ octets = 0; ++ *(tp = tmp) = 0; ++ while (src < end) ++ { ++ ch = *src++; ++ if (ch >= '0' && ch <= '9') ++ { ++ unsigned int new = *tp * 10 + (ch - '0'); ++ ++ if (saw_digit && *tp == 0) ++ return 0; ++ if (new > 255) ++ return 0; ++ *tp = new; ++ if (! saw_digit) ++ { ++ if (++octets > 4) ++ return 0; ++ saw_digit = 1; ++ } ++ } ++ else if (ch == '.' && saw_digit) ++ { ++ if (octets == 4) ++ return 0; ++ *++tp = 0; ++ saw_digit = 0; ++ } ++ else ++ return 0; ++ } ++ if (octets < 4) ++ return 0; ++ memcpy (dst, tmp, NS_INADDRSZ); ++ return 1; ++} ++ ++/* Return the value of CH as a hexadecimal digit, or -1 if it is a ++ different type of character. */ ++static int ++hex_digit_value (char ch) ++{ ++ if ('0' <= ch && ch <= '9') ++ return ch - '0'; ++ if ('a' <= ch && ch <= 'f') ++ return ch - 'a' + 10; ++ if ('A' <= ch && ch <= 'F') ++ return ch - 'A' + 10; ++ return -1; ++} ++ ++/* Convert presentation-level IPv6 address to network order binary ++ form. Return 1 if SRC is a valid [RFC1884 2.2] address, else 0. ++ This function does not touch DST unless it's returning 1. ++ Author: Paul Vixie, 1996. Inspired by Mark Andrews. */ ++static int ++inet_pton6 (const char *src, const char *src_endp, unsigned char *dst) ++{ ++ unsigned char tmp[NS_IN6ADDRSZ], *tp, *endp, *colonp; ++ const char *curtok; ++ int ch; ++ size_t xdigits_seen; /* Number of hex digits since colon. */ ++ unsigned int val; ++ ++ tp = memset (tmp, '\0', NS_IN6ADDRSZ); ++ endp = tp + NS_IN6ADDRSZ; ++ colonp = NULL; ++ ++ /* Leading :: requires some special handling. */ ++ if (src == src_endp) ++ return 0; ++ if (*src == ':') ++ { ++ ++src; ++ if (src == src_endp || *src != ':') ++ return 0; ++ } ++ ++ curtok = src; ++ xdigits_seen = 0; ++ val = 0; ++ while (src < src_endp) ++ { ++ ch = *src++; ++ int digit = hex_digit_value (ch); ++ if (digit >= 0) ++ { ++ if (xdigits_seen == 4) ++ return 0; ++ val <<= 4; ++ val |= digit; ++ if (val > 0xffff) ++ return 0; ++ ++xdigits_seen; ++ continue; ++ } ++ if (ch == ':') ++ { ++ curtok = src; ++ if (xdigits_seen == 0) ++ { ++ if (colonp) ++ return 0; ++ colonp = tp; ++ continue; ++ } ++ else if (src == src_endp) ++ return 0; ++ if (tp + NS_INT16SZ > endp) ++ return 0; ++ *tp++ = (unsigned char) (val >> 8) & 0xff; ++ *tp++ = (unsigned char) val & 0xff; ++ xdigits_seen = 0; ++ val = 0; ++ continue; ++ } ++ if (ch == '.' && ((tp + NS_INADDRSZ) <= endp) ++ && inet_pton4 (curtok, src_endp, tp) > 0) ++ { ++ tp += NS_INADDRSZ; ++ xdigits_seen = 0; ++ break; /* '\0' was seen by inet_pton4. */ ++ } ++ return 0; ++ } ++ if (xdigits_seen > 0) ++ { ++ if (tp + NS_INT16SZ > endp) ++ return 0; ++ *tp++ = (unsigned char) (val >> 8) & 0xff; ++ *tp++ = (unsigned char) val & 0xff; ++ } ++ if (colonp != NULL) ++ { ++ /* Replace :: with zeros. */ ++ if (tp == endp) ++ /* :: would expand to a zero-width field. */ ++ return 0; ++ size_t n = tp - colonp; ++ memmove (endp - n, colonp, n); ++ memset (colonp, 0, endp - n - colonp); ++ tp = endp; ++ } ++ if (tp != endp) ++ return 0; ++ memcpy (dst, tmp, NS_IN6ADDRSZ); ++ return 1; ++} diff --git a/SOURCES/glibc-RHEL-44920-8.patch b/SOURCES/glibc-RHEL-44920-8.patch new file mode 100644 index 0000000..dbba29e --- /dev/null +++ b/SOURCES/glibc-RHEL-44920-8.patch @@ -0,0 +1,176 @@ +commit e3a6e85d67f1a48dec3e2557a83d6ce1544a58cb +Author: Aaron Merey +Date: Thu Mar 20 13:13:33 2025 -0400 + + Add _FORTIFY_SOURCE support for inet_pton + + Add function __inet_pton_chk which calls __chk_fail when the size of + argument dst is too small. inet_pton is redirected to __inet_pton_chk + or __inet_pton_warn when _FORTIFY_SOURCE is > 0. + + Also add tests to debug/tst-fortify.c, update the abilist with + __inet_pton_chk and mention inet_pton fortification in maint.texi. + + Co-authored-by: Frédéric Bérat + Reviewed-by: Florian Weimer + +Conflicts: + debug/Makefile (New routine added to static-only-routines + instead of routines) + debug/Versions (Not added in the backport) + manual/maint.texi (Not relevant for this version) + */libc.abilist (Not added in the backport) + inet/bits/inet-fortified-decl.h (Replace __REDIRECT_FORTIFY_NTH + with __REDIRECT_NTH) + inet/bits/inet-fortified.h (removed attribute_overloadable and + clang specific handling) + +Note on the changes: +- Since we can't modify the ABI, __inet_pton_chk has been added to + static-only-routines and `attribute_hidden` has been added to its definition. +- __REDIRECT_FORTIFY* macros aren't available in the current version, since + the patch to enable foritfication on glibc itself hasn't be ported. +- clang specific handling of foritifcation has not been ported, which means the + following had to be removed from the patch: + - use of __attribute_overloadable__ + - use of __fortify_clang_* macros + +diff --git a/debug/Makefile b/debug/Makefile +index 18be784e86bbaaab..c6ca9946d5fb5d19 100644 +--- a/debug/Makefile ++++ b/debug/Makefile +@@ -118,6 +118,7 @@ routines = \ + # routines + static-only-routines := stack_chk_fail_local \ + inet_ntop_chk \ ++ inet_pton_chk \ + + # Don't add stack_chk_fail_local.o to libc.a since __stack_chk_fail_local + # is an alias of __stack_chk_fail in stack_chk_fail.o. +diff --git a/debug/inet_pton_chk.c b/debug/inet_pton_chk.c +new file mode 100644 +index 0000000000000000..c9e4fd4683900141 +--- /dev/null ++++ b/debug/inet_pton_chk.c +@@ -0,0 +1,31 @@ ++/* Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++attribute_hidden ++int ++__inet_pton_chk (int af, const char *src, void *dst, size_t dst_size) ++{ ++ if ((af == AF_INET && dst_size < 4) ++ || (af == AF_INET6 && dst_size < 16)) ++ __chk_fail (); ++ ++ return inet_pton (af, src, dst); ++} ++libc_hidden_def (__inet_pton_chk) +diff --git a/debug/tst-fortify.c b/debug/tst-fortify.c +index 50909d0af53da10e..a87793e44ee36363 100644 +--- a/debug/tst-fortify.c ++++ b/debug/tst-fortify.c +@@ -1783,6 +1783,30 @@ do_test (void) + CHK_FAIL_END + #endif + ++ const char *ipv4str = "127.0.0.1"; ++ const char *ipv6str = "::1"; ++ ++ if (inet_pton (AF_INET, ipv4str, (void *) &addr) != 1) ++ FAIL (); ++ if (inet_pton (AF_INET6, ipv6str, (void *) &addr6) != 1) ++ FAIL (); ++ ++#if __USE_FORTIFY_LEVEL >= 1 ++ char smallbuf[2]; ++ ++ CHK_FAIL_START ++ inet_pton (AF_INET, ipv4str, (void *) smallbuf); ++ CHK_FAIL_END ++ ++ CHK_FAIL_START ++ inet_pton (AF_INET6, ipv6str, (void *) smallbuf); ++ CHK_FAIL_END ++ ++ CHK_FAIL_START ++ inet_pton (AF_INET6, ipv6str, (void *) &addr); ++ CHK_FAIL_END ++#endif ++ + return ret; + } + +diff --git a/include/arpa/inet.h b/include/arpa/inet.h +index a02892f48a27454e..3db8f1a96fdbd6fd 100644 +--- a/include/arpa/inet.h ++++ b/include/arpa/inet.h +@@ -19,6 +19,8 @@ libc_hidden_proto (__inet_ntop_chk) + libc_hidden_proto (inet_pton) + extern __typeof (inet_pton) __inet_pton; + libc_hidden_proto (__inet_pton) ++libc_hidden_proto (__inet_pton_chk) ++ + extern __typeof (inet_makeaddr) __inet_makeaddr; + libc_hidden_proto (__inet_makeaddr) + libc_hidden_proto (inet_netof) +diff --git a/inet/bits/inet-fortified-decl.h b/inet/bits/inet-fortified-decl.h +index 229063ae7898ba2d..189d35aee8bacab1 100644 +--- a/inet/bits/inet-fortified-decl.h ++++ b/inet/bits/inet-fortified-decl.h +@@ -32,4 +32,11 @@ extern const char *__REDIRECT_NTH (__inet_ntop_chk_warn, + __warnattr ("inet_ntop called with bigger length than " + "size of destination buffer"); + ++extern int __inet_pton_chk (int, const char *, void *, size_t); ++ ++extern int __REDIRECT_NTH (__inet_pton_alias, ++ (int, const char *, void *), inet_pton); ++extern int __REDIRECT_NTH (__inet_pton_chk_warn, ++ (int, const char *, void *, size_t), __inet_pton_chk) ++ __warnattr ("inet_pton called with a destination buffer size too small"); + #endif /* bits/inet-fortified-decl.h. */ +diff --git a/inet/bits/inet-fortified.h b/inet/bits/inet-fortified.h +index af26f36ef6ae0533..8420a4b7fb41086f 100644 +--- a/inet/bits/inet-fortified.h ++++ b/inet/bits/inet-fortified.h +@@ -34,4 +34,21 @@ __NTH (inet_ntop (int __af, const void * __restrict __src, + __af, __src, __dst, __dst_size); + }; + ++__fortify_function int ++__NTH (inet_pton (int __af, const char *__restrict __src, ++ void * __restrict __dst)) ++{ ++ size_t sz = 0; ++ if (__af == AF_INET) ++ sz = sizeof (struct in_addr); ++ else if (__af == AF_INET6) ++ sz = sizeof (struct in6_addr); ++ else ++ return __inet_pton_alias (__af, __src, __dst); ++ ++ return __glibc_fortify (inet_pton, sz, sizeof (char), ++ __glibc_objsize (__dst), ++ __af, __src, __dst); ++}; ++ + #endif /* bits/inet-fortified.h. */ diff --git a/SOURCES/glibc-RHEL-46726-1.patch b/SOURCES/glibc-RHEL-46726-1.patch new file mode 100644 index 0000000..e5bd447 --- /dev/null +++ b/SOURCES/glibc-RHEL-46726-1.patch @@ -0,0 +1,15927 @@ +commit d1a621b735247ba0f7bf288e35a1b172cb6803f6 +Author: Maciej W. Rozycki +Date: Tue Mar 25 09:40:20 2025 +0000 + + stdio-common: Add tests for formatted scanf input specifiers + + Add a collection of tests for formatted scanf input specifiers covering + the b, d, i, o, u, x, and X integer conversions, the a, A, e, E, f, F, + g, and G floating-point conversions, and the [, c, and s character + conversions. Also the hh, h, l, and ll length modifiers are covered + with the integer conversions as are the l and L length modifier with the + floating-point conversions. The tests cover assignment suppressing and + the field width as well, verifying the number of assignments made, the + number of characters consumed and the value assigned. + + Add the common test code here as well as test cases for scanf, and then + base Makefile infrastructure plus target-agnostic input data, for the + character conversions and the `char', `short', and `long long' integer + ones, signed and unsigned, with remaining input data and other functions + from the scanf family deferred to subsequent additions. + + Keep input data disabled and referring to BZ #12701 for entries that are + currently incorrectly accepted as valid data, such as '0b' or '0x' with + the relevant integer conversions or sequences of an insufficient number + of characters with the c conversion. + + Reviewed-by: Joseph Myers + +diff --git a/Makerules b/Makerules +index 689842ba56c71b0d..2b5deadced0f8c08 100644 +--- a/Makerules ++++ b/Makerules +@@ -1240,6 +1240,9 @@ check: tests + .PHONY: xcheck + xcheck: xtests + ++# Also handle test inputs in sysdeps. ++vpath %.input $(sysdirs) ++ + # Handle tests-time64 and xtests-time64 that should built with LFS + # and 64-bit time support. + include $(o-iterator) +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 077c1062756971e3..15525a0f768244c6 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -51,6 +51,33 @@ nonfmt-xprintf-stems := \ + + xprintf-stems := $(sort $(fmt-xprintf-stems) $(nonfmt-xprintf-stems)) + ++# List of markers for scanf family function tests. ++xscanf-funcs := s ++ ++# List of data types and formats for individual per-conversion scanf tests. ++# Further conversions are provided by sysdeps. ++xscanf-kinds := char int real uint ++fmt-xscanf-char-convs := c ++fmts-xscanf-char := b c s ++fmt-xscanf-int-convs := char llong short ++fmts-xscanf-int := d i ++fmt-xscanf-real-convs := ++fmts-xscanf-real := aa a ee e ff f gg g ++fmt-xscanf-uint-convs := uchar ullong ushort ++fmts-xscanf-uint := b o u xx x ++ ++xscanf-convs = $(sort $(fmt-xscanf-char-convs) $(fmt-xscanf-int-convs) \ ++ $(fmt-xscanf-real-convs) $(fmt-xscanf-uint-convs)) ++ ++xscanf-srcs = $(foreach p,$(xscanf-funcs), \ ++ $(foreach c,$(xscanf-convs),tst-scanf-format-$(p)-$(c))) ++ ++xscanf-stems = $(sort $(foreach k,$(xscanf-kinds), \ ++ $(foreach f,$(fmts-xscanf-$(k)), \ ++ $(foreach p,$(xscanf-funcs), \ ++ $(foreach c,$(fmt-xscanf-$(k)-convs), \ ++ tst-scanf-format-$(p)-$(c)-$(f)))))) ++ + headers := \ + bits/printf-ldbl.h \ + bits/stdio_lim.h \ +@@ -279,6 +306,7 @@ endif + + test-srcs = \ + $(xprintf-srcs) \ ++ $(xscanf-srcs) \ + tst-fwrite-bz29459 \ + tst-printf \ + tst-printfsz-islongdouble \ +@@ -288,6 +316,7 @@ test-srcs = \ + ifeq ($(run-built-tests),yes) + tests-special += \ + $(foreach f,$(xprintf-stems),$(objpfx)$(f).out) \ ++ $(foreach f,$(xscanf-stems),$(objpfx)$(f).out) \ + $(objpfx)tst-fwrite-bz29459.out \ + $(objpfx)tst-printf.out \ + $(objpfx)tst-printfsz-islongdouble.out \ +@@ -300,6 +329,7 @@ ifeq (yes,$(build-shared)) + ifneq ($(PERL),no) + tests-special += \ + $(foreach f,$(xprintf-stems),$(objpfx)$(f)-mem.out) \ ++ $(foreach f,$(xscanf-stems),$(objpfx)$(f)-mem.out) \ + $(objpfx)tst-freopen2-mem.out \ + $(objpfx)tst-freopen3-mem.out \ + $(objpfx)tst-freopen4-mem.out \ +@@ -321,6 +351,8 @@ tests-special += \ + generated += \ + $(foreach f,$(xprintf-stems),$(f)-mem.out) \ + $(foreach f,$(xprintf-stems),$(f).mtrace) \ ++ $(foreach f,$(xscanf-stems),$(f)-mem.out) \ ++ $(foreach f,$(xscanf-stems),$(f).mtrace) \ + tst-freopen2-mem.out \ + tst-freopen2.mtrace \ + tst-freopen3-mem.out \ +@@ -468,6 +500,26 @@ $(objpfx)tst-printf-format-%.out: \ + $(make-tst-printf-format-out) > $@; \ + $(evaluate-test) + ++# With scanf format tests reuse the same executable for all the inputs ++# of the same data type that use a different conversion specifier each. ++define tst-scanf-format-rule ++$$(objpfx)tst-scanf-format-$(1)-$(2)-$(3).out: \ ++ tst-scanf-format-$(2)-$(3).input $$(objpfx)tst-scanf-format-$(1)-$(2) ++ $$(make-tst-scanf-format-out) > $$@ < $$<; \ ++ $$(evaluate-test) ++endef ++make-tst-scanf-format-out = \ ++ $(test-wrapper-env) \ ++ $(run-program-env) \ ++ MALLOC_TRACE=$(@:.out=.mtrace) \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so \ ++ $(host-test-program-cmd) ++$(foreach k,$(xscanf-kinds), \ ++ $(foreach f,$(fmts-xscanf-$(k)), \ ++ $(foreach p,$(xscanf-funcs), \ ++ $(foreach c,$(fmt-xscanf-$(k)-convs), \ ++ $(eval $(call tst-scanf-format-rule,$(p),$(c),$(f))))))) ++ + $(objpfx)tst-printfsz-islongdouble.out: \ + tst-printfsz-islongdouble.sh $(objpfx)tst-printfsz-islongdouble + $(SHELL) $^ '$(test-program-prefix)' $@; \ +@@ -553,5 +605,13 @@ $(objpfx)tst-setvbuf1-cmp.out: tst-setvbuf1.expect $(objpfx)tst-setvbuf1.out + $(objpfx)tst-printf-round: $(libm) + $(objpfx)tst-scanf-round: $(libm) + ++# With scanf format tests real conversions depend on libm. ++define tst-scanf-format-libm-dep ++$$(objpfx)tst-scanf-format-$(1)-$(2): $$(libm) ++endef ++$(foreach p,$(xscanf-funcs), \ ++ $(foreach c,$(fmt-xscanf-real-convs), \ ++ $(eval $(call tst-scanf-format-libm-dep,$(p),$(c))))) ++ + $(objpfx)tst-freopen7: $(shared-thread-library) + $(objpfx)tst-freopen64-7: $(shared-thread-library) +diff --git a/stdio-common/tst-scanf-format-c-b.input b/stdio-common/tst-scanf-format-c-b.input +new file mode 100644 +index 0000000000000000..52b2dc1a4c9b7f7a +--- /dev/null ++++ b/stdio-common/tst-scanf-format-c-b.input +@@ -0,0 +1,90 @@ ++%[bcdefghijklmnopqrstuvw]::0:-1: ++%*[bcdefghijklmnopqrstuvw]::0:-1: ++%[bcdefghijklmnopqrstuvw]:The:0:-1: ++%*[bcdefghijklmnopqrstuvw]:The:0:-1: ++%[bcdefghijklmnopqrstuvw]:quick:1:5:quick: ++%*[bcdefghijklmnopqrstuvw]:quick:0:5: ++%[bcdefghijklmnopqrstuvw]:brown fox:1:5:brown: ++%*[bcdefghijklmnopqrstuvw]:brown fox:0:5: ++%[bcdefghijklmnopqrstuvw]:jumps over the lazy dog:1:5:jumps: ++%*[bcdefghijklmnopqrstuvw]:jumps over the lazy dog:0:5: ++%[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%*[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%[ Tabcdefghijklmnopqrstuvwxyz]:The:1:3:The: ++%*[ Tabcdefghijklmnopqrstuvwxyz]:The:0:3: ++%[ Tabcdefghijklmnopqrstuvwxyz]:quick:1:5:quick: ++%*[ Tabcdefghijklmnopqrstuvwxyz]:quick:0:5: ++%[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:1:9:brown fox: ++%*[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:0:9: ++%[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:1:23:jumps over the lazy dog: ++%*[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:0:23: ++%1[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%*1[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%1[ Tabcdefghijklmnopqrstuvwxyz]:The:1:1:T: ++%*1[ Tabcdefghijklmnopqrstuvwxyz]:The:0:1: ++%1[ Tabcdefghijklmnopqrstuvwxyz]:quick:1:1:q: ++%*1[ Tabcdefghijklmnopqrstuvwxyz]:quick:0:1: ++%1[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:1:1:b: ++%*1[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:0:1: ++%1[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:1:1:j: ++%*1[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:0:1: ++%2[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%*2[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%2[ Tabcdefghijklmnopqrstuvwxyz]:The:1:2:Th: ++%*2[ Tabcdefghijklmnopqrstuvwxyz]:The:0:2: ++%2[ Tabcdefghijklmnopqrstuvwxyz]:quick:1:2:qu: ++%*2[ Tabcdefghijklmnopqrstuvwxyz]:quick:0:2: ++%2[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:1:2:br: ++%*2[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:0:2: ++%2[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:1:2:ju: ++%*2[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:0:2: ++%5[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%*5[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%5[ Tabcdefghijklmnopqrstuvwxyz]:The:1:3:The: ++%*5[ Tabcdefghijklmnopqrstuvwxyz]:The:0:3: ++%5[ Tabcdefghijklmnopqrstuvwxyz]:quick:1:5:quick: ++%*5[ Tabcdefghijklmnopqrstuvwxyz]:quick:0:5: ++%5[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:1:5:brown: ++%*5[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:0:5: ++%5[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:1:5:jumps: ++%*5[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:0:5: ++%10[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%*10[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%10[ Tabcdefghijklmnopqrstuvwxyz]:The:1:3:The: ++%*10[ Tabcdefghijklmnopqrstuvwxyz]:The:0:3: ++%10[ Tabcdefghijklmnopqrstuvwxyz]:quick:1:5:quick: ++%*10[ Tabcdefghijklmnopqrstuvwxyz]:quick:0:5: ++%10[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:1:9:brown fox: ++%*10[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:0:9: ++%10[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:1:10:jumps over: ++%*10[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:0:10: ++%25[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%*25[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%25[ Tabcdefghijklmnopqrstuvwxyz]:The:1:3:The: ++%*25[ Tabcdefghijklmnopqrstuvwxyz]:The:0:3: ++%25[ Tabcdefghijklmnopqrstuvwxyz]:quick:1:5:quick: ++%*25[ Tabcdefghijklmnopqrstuvwxyz]:quick:0:5: ++%25[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:1:9:brown fox: ++%*25[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:0:9: ++%25[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:1:23:jumps over the lazy dog: ++%*25[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:0:23: ++%5[ Tabcdefghijklmnopqrstuvwxyz]: :1:1: : ++%*5[ Tabcdefghijklmnopqrstuvwxyz]: :0:1: ++%5[ Tabcdefghijklmnopqrstuvwxyz]: The :1:5: The : ++%*5[ Tabcdefghijklmnopqrstuvwxyz]: The :0:5: ++%5[ Tabcdefghijklmnopqrstuvwxyz]: quick :1:5: quic: ++%*5[ Tabcdefghijklmnopqrstuvwxyz]: quick :0:5: ++%5[ Tabcdefghijklmnopqrstuvwxyz]: brown fox :1:5: brow: ++%*5[ Tabcdefghijklmnopqrstuvwxyz]: brown fox :0:5: ++%5[ Tabcdefghijklmnopqrstuvwxyz]: jumps over the lazy dog :1:5: jump: ++%*5[ Tabcdefghijklmnopqrstuvwxyz]: jumps over the lazy dog :0:5: ++%25[ Tabcdefghijklmnopqrstuvwxyz]: :1:1: : ++%*25[ Tabcdefghijklmnopqrstuvwxyz]: :0:1: ++%25[ Tabcdefghijklmnopqrstuvwxyz]: The :1:5: The : ++%*25[ Tabcdefghijklmnopqrstuvwxyz]: The :0:5: ++%25[ Tabcdefghijklmnopqrstuvwxyz]: quick :1:7: quick : ++%*25[ Tabcdefghijklmnopqrstuvwxyz]: quick :0:7: ++%25[ Tabcdefghijklmnopqrstuvwxyz]: brown fox :1:11: brown fox : ++%*25[ Tabcdefghijklmnopqrstuvwxyz]: brown fox :0:11: ++%25[ Tabcdefghijklmnopqrstuvwxyz]: jumps over the lazy dog :1:25: jumps over the lazy dog : ++%*25[ Tabcdefghijklmnopqrstuvwxyz]: jumps over the lazy dog :0:25: +diff --git a/stdio-common/tst-scanf-format-c-c.input b/stdio-common/tst-scanf-format-c-c.input +new file mode 100644 +index 0000000000000000..a3a6ee26af755dec +--- /dev/null ++++ b/stdio-common/tst-scanf-format-c-c.input +@@ -0,0 +1,64 @@ ++%c:The:1:1:T: ++%*c:The:0:1: ++%c:quick:1:1:q: ++%*c:quick:0:1: ++%c:brown fox:1:1:b: ++%*c:brown fox:0:1: ++%c:jumps over the lazy dog:1:1:j: ++%*c:jumps over the lazy dog:0:1: ++%1c:The:1:1:T: ++%*1c:The:0:1: ++%1c:quick:1:1:q: ++%*1c:quick:0:1: ++%1c:brown fox:1:1:b: ++%*1c:brown fox:0:1: ++%1c:jumps over the lazy dog:1:1:j: ++%*1c:jumps over the lazy dog:0:1: ++%2c:The:1:2:Th: ++%*2c:The:0:2: ++%2c:quick:1:2:qu: ++%*2c:quick:0:2: ++%2c:brown fox:1:2:br: ++%*2c:brown fox:0:2: ++%2c:jumps over the lazy dog:1:2:ju: ++%*2c:jumps over the lazy dog:0:2: ++# BZ12701 %5c:The:0:-1: ++# BZ12701 %*5c:The:0:-1: ++%5c:quick:1:5:quick: ++%*5c:quick:0:5: ++%5c:brown fox:1:5:brown: ++%*5c:brown fox:0:5: ++%5c:jumps over the lazy dog:1:5:jumps: ++%*5c:jumps over the lazy dog:0:5: ++# BZ12701 %10c:The:0:-1: ++# BZ12701 %*10c:The:0:-1: ++# BZ12701 %10c:quick:0:-1: ++# BZ12701 %*10c:quick:0:-1: ++# BZ12701 %10c:brown fox:0:-1: ++# BZ12701 %*10c:brown fox:0:-1: ++%10c:jumps over the lazy dog:1:10:jumps over: ++%*10c:jumps over the lazy dog:0:10: ++# BZ12701 %25c:The:0:-1: ++# BZ12701 %*25c:The:0:-1: ++# BZ12701 %25c:quick:0:-1: ++# BZ12701 %*25c:quick:0:-1: ++# BZ12701 %25c:brown fox:0:-1: ++# BZ12701 %*25c:brown fox:0:-1: ++# BZ12701 %25c:jumps over the lazy dog:0:-1: ++# BZ12701 %*25c:jumps over the lazy dog:0:-1: ++%5c: The :1:5: The : ++%*5c: The :0:5: ++%5c: quick :1:5: quic: ++%*5c: quick :0:5: ++%5c: brown fox :1:5: brow: ++%*5c: brown fox :0:5: ++%5c: jumps over the lazy dog :1:5: jump: ++%*5c: jumps over the lazy dog :0:5: ++# BZ12701 %25c: The :0:-1: ++# BZ12701 %*25c: The :0:-1: ++# BZ12701 %25c: quick :0:-1: ++# BZ12701 %*25c: quick :0:-1: ++# BZ12701 %25c: brown fox :0:-1: ++# BZ12701 %*25c: brown fox :0:-1: ++%25c: jumps over the lazy dog :1:25: jumps over the lazy dog : ++%*25c: jumps over the lazy dog :0:25: +diff --git a/stdio-common/tst-scanf-format-c-s.input b/stdio-common/tst-scanf-format-c-s.input +new file mode 100644 +index 0000000000000000..52c992f190c7eec5 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-c-s.input +@@ -0,0 +1,64 @@ ++%s:The :1:3:The: ++%*s:The :0:3: ++%s:quick :1:5:quick: ++%*s:quick :0:5: ++%s:brown fox :1:5:brown: ++%*s:brown fox :0:5: ++%s:jumps over the lazy dog :1:5:jumps: ++%*s:jumps over the lazy dog :0:5: ++%1s:The :1:1:T: ++%*1s:The :0:1: ++%1s:quick :1:1:q: ++%*1s:quick :0:1: ++%1s:brown fox :1:1:b: ++%*1s:brown fox :0:1: ++%1s:jumps over the lazy dog :1:1:j: ++%*1s:jumps over the lazy dog :0:1: ++%2s:The :1:2:Th: ++%*2s:The :0:2: ++%2s:quick :1:2:qu: ++%*2s:quick :0:2: ++%2s:brown fox :1:2:br: ++%*2s:brown fox :0:2: ++%2s:jumps over the lazy dog :1:2:ju: ++%*2s:jumps over the lazy dog :0:2: ++%5s:The :1:3:The: ++%*5s:The :0:3: ++%5s:quick :1:5:quick: ++%*5s:quick :0:5: ++%5s:brown fox :1:5:brown: ++%*5s:brown fox :0:5: ++%5s:jumps over the lazy dog :1:5:jumps: ++%*5s:jumps over the lazy dog :0:5: ++%10s:The :1:3:The: ++%*10s:The :0:3: ++%10s:quick :1:5:quick: ++%*10s:quick :0:5: ++%10s:brown fox :1:5:brown: ++%*10s:brown fox :0:5: ++%10s:jumps over the lazy dog :1:5:jumps: ++%*10s:jumps over the lazy dog :0:5: ++%25s:The :1:3:The: ++%*25s:The :0:3: ++%25s:quick :1:5:quick: ++%*25s:quick :0:5: ++%25s:brown fox :1:5:brown: ++%*25s:brown fox :0:5: ++%25s:jumps over the lazy dog :1:5:jumps: ++%*25s:jumps over the lazy dog :0:5: ++%5s: The :1:4:The: ++%*5s: The :0:4: ++%5s: quick :1:6:quick: ++%*5s: quick :0:6: ++%5s: brown fox :1:6:brown: ++%*5s: brown fox :0:6: ++%5s: jumps over the lazy dog :1:6:jumps: ++%*5s: jumps over the lazy dog :0:6: ++%25s: The :1:4:The: ++%*25s: The :0:4: ++%25s: quick :1:6:quick: ++%*25s: quick :0:6: ++%25s: brown fox :1:6:brown: ++%*25s: brown fox :0:6: ++%25s: jumps over the lazy dog :1:6:jumps: ++%*25s: jumps over the lazy dog :0:6: +diff --git a/stdio-common/tst-scanf-format-char-d.input b/stdio-common/tst-scanf-format-char-d.input +new file mode 100644 +index 0000000000000000..eeb6920c705323f9 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-char-d.input +@@ -0,0 +1,266 @@ ++%hhd::0:-1: ++%*hhd::0:-1: ++%hhd:-251:1:4:5: ++%*hhd:-251:0:4: ++%hhd:-129:1:4:127: ++%*hhd:-129:0:4: ++%hhd:-128:1:4:-128: ++%*hhd:-128:0:4: ++%hhd:-123:1:4:-123: ++%*hhd:-123:0:4: ++%hhd:-1:1:2:-1: ++%*hhd:-1:0:2: ++%hhd:-0:1:2:0: ++%*hhd:-0:0:2: ++%hhd:0:1:1:0: ++%*hhd:0:0:1: ++%hhd:1:1:1:1: ++%*hhd:1:0:1: ++%hhd:42:1:2:42: ++%*hhd:42:0:2: ++%hhd:127:1:3:127: ++%*hhd:127:0:3: ++%hhd:128:1:3:-128: ++%*hhd:128:0:3: ++%hhd:169:1:3:-87: ++%*hhd:169:0:3: ++%hhd:+0:1:2:0: ++%*hhd:+0:0:2: ++%hhd:+1:1:2:1: ++%*hhd:+1:0:2: ++%hhd:+42:1:3:42: ++%*hhd:+42:0:3: ++%hhd:+127:1:4:127: ++%*hhd:+127:0:4: ++%hhd:+128:1:4:-128: ++%*hhd:+128:0:4: ++%hhd:+169:1:4:-87: ++%*hhd:+169:0:4: ++%1hhd::0:-1: ++%*1hhd::0:-1: ++%1hhd:-251:0:-1: ++%*1hhd:-251:0:-1: ++%1hhd:-129:0:-1: ++%*1hhd:-129:0:-1: ++%1hhd:-128:0:-1: ++%*1hhd:-128:0:-1: ++%1hhd:-123:0:-1: ++%*1hhd:-123:0:-1: ++%1hhd:-1:0:-1: ++%*1hhd:-1:0:-1: ++%1hhd:-0:0:-1: ++%*1hhd:-0:0:-1: ++%1hhd:0:1:1:0: ++%*1hhd:0:0:1: ++%1hhd:1:1:1:1: ++%*1hhd:1:0:1: ++%1hhd:42:1:1:4: ++%*1hhd:42:0:1: ++%1hhd:127:1:1:1: ++%*1hhd:127:0:1: ++%1hhd:128:1:1:1: ++%*1hhd:128:0:1: ++%1hhd:169:1:1:1: ++%*1hhd:169:0:1: ++%1hhd:+0:0:-1: ++%*1hhd:+0:0:-1: ++%1hhd:+1:0:-1: ++%*1hhd:+1:0:-1: ++%1hhd:+42:0:-1: ++%*1hhd:+42:0:-1: ++%1hhd:+127:0:-1: ++%*1hhd:+127:0:-1: ++%1hhd:+128:0:-1: ++%*1hhd:+128:0:-1: ++%1hhd:+169:0:-1: ++%*1hhd:+169:0:-1: ++%2hhd::0:-1: ++%*2hhd::0:-1: ++%2hhd:-251:1:2:-2: ++%*2hhd:-251:0:2: ++%2hhd:-129:1:2:-1: ++%*2hhd:-129:0:2: ++%2hhd:-128:1:2:-1: ++%*2hhd:-128:0:2: ++%2hhd:-123:1:2:-1: ++%*2hhd:-123:0:2: ++%2hhd:-1:1:2:-1: ++%*2hhd:-1:0:2: ++%2hhd:-0:1:2:0: ++%*2hhd:-0:0:2: ++%2hhd:0:1:1:0: ++%*2hhd:0:0:1: ++%2hhd:1:1:1:1: ++%*2hhd:1:0:1: ++%2hhd:42:1:2:42: ++%*2hhd:42:0:2: ++%2hhd:127:1:2:12: ++%*2hhd:127:0:2: ++%2hhd:128:1:2:12: ++%*2hhd:128:0:2: ++%2hhd:169:1:2:16: ++%*2hhd:169:0:2: ++%2hhd:+0:1:2:0: ++%*2hhd:+0:0:2: ++%2hhd:+1:1:2:1: ++%*2hhd:+1:0:2: ++%2hhd:+42:1:2:4: ++%*2hhd:+42:0:2: ++%2hhd:+127:1:2:1: ++%*2hhd:+127:0:2: ++%2hhd:+128:1:2:1: ++%*2hhd:+128:0:2: ++%2hhd:+169:1:2:1: ++%*2hhd:+169:0:2: ++%3hhd::0:-1: ++%*3hhd::0:-1: ++%3hhd:-251:1:3:-25: ++%*3hhd:-251:0:3: ++%3hhd:-129:1:3:-12: ++%*3hhd:-129:0:3: ++%3hhd:-128:1:3:-12: ++%*3hhd:-128:0:3: ++%3hhd:-123:1:3:-12: ++%*3hhd:-123:0:3: ++%3hhd:-1:1:2:-1: ++%*3hhd:-1:0:2: ++%3hhd:-0:1:2:0: ++%*3hhd:-0:0:2: ++%3hhd:0:1:1:0: ++%*3hhd:0:0:1: ++%3hhd:1:1:1:1: ++%*3hhd:1:0:1: ++%3hhd:42:1:2:42: ++%*3hhd:42:0:2: ++%3hhd:127:1:3:127: ++%*3hhd:127:0:3: ++%3hhd:128:1:3:-128: ++%*3hhd:128:0:3: ++%3hhd:169:1:3:-87: ++%*3hhd:169:0:3: ++%3hhd:+0:1:2:0: ++%*3hhd:+0:0:2: ++%3hhd:+1:1:2:1: ++%*3hhd:+1:0:2: ++%3hhd:+42:1:3:42: ++%*3hhd:+42:0:3: ++%3hhd:+127:1:3:12: ++%*3hhd:+127:0:3: ++%3hhd:+128:1:3:12: ++%*3hhd:+128:0:3: ++%3hhd:+169:1:3:16: ++%*3hhd:+169:0:3: ++%5hhd::0:-1: ++%*5hhd::0:-1: ++%5hhd:-251:1:4:5: ++%*5hhd:-251:0:4: ++%5hhd:-129:1:4:127: ++%*5hhd:-129:0:4: ++%5hhd:-128:1:4:-128: ++%*5hhd:-128:0:4: ++%5hhd:-123:1:4:-123: ++%*5hhd:-123:0:4: ++%5hhd:-1:1:2:-1: ++%*5hhd:-1:0:2: ++%5hhd:-0:1:2:0: ++%*5hhd:-0:0:2: ++%5hhd:0:1:1:0: ++%*5hhd:0:0:1: ++%5hhd:1:1:1:1: ++%*5hhd:1:0:1: ++%5hhd:42:1:2:42: ++%*5hhd:42:0:2: ++%5hhd:127:1:3:127: ++%*5hhd:127:0:3: ++%5hhd:128:1:3:-128: ++%*5hhd:128:0:3: ++%5hhd:169:1:3:-87: ++%*5hhd:169:0:3: ++%5hhd:+0:1:2:0: ++%*5hhd:+0:0:2: ++%5hhd:+1:1:2:1: ++%*5hhd:+1:0:2: ++%5hhd:+42:1:3:42: ++%*5hhd:+42:0:3: ++%5hhd:+127:1:4:127: ++%*5hhd:+127:0:4: ++%5hhd:+128:1:4:-128: ++%*5hhd:+128:0:4: ++%5hhd:+169:1:4:-87: ++%*5hhd:+169:0:4: ++%2hhd: :0:-1: ++%*2hhd: :0:-1: ++%2hhd: -251:1:3:-2: ++%*2hhd: -251:0:3: ++%2hhd: -129:1:3:-1: ++%*2hhd: -129:0:3: ++%2hhd: -128:1:3:-1: ++%*2hhd: -128:0:3: ++%2hhd: -123:1:3:-1: ++%*2hhd: -123:0:3: ++%2hhd: -1:1:3:-1: ++%*2hhd: -1:0:3: ++%2hhd: -0:1:3:0: ++%*2hhd: -0:0:3: ++%2hhd: 0:1:2:0: ++%*2hhd: 0:0:2: ++%2hhd: 1:1:2:1: ++%*2hhd: 1:0:2: ++%2hhd: 42:1:3:42: ++%*2hhd: 42:0:3: ++%2hhd: 127:1:3:12: ++%*2hhd: 127:0:3: ++%2hhd: 128:1:3:12: ++%*2hhd: 128:0:3: ++%2hhd: 169:1:3:16: ++%*2hhd: 169:0:3: ++%2hhd: +0:1:3:0: ++%*2hhd: +0:0:3: ++%2hhd: +1:1:3:1: ++%*2hhd: +1:0:3: ++%2hhd: +42:1:3:4: ++%*2hhd: +42:0:3: ++%2hhd: +127:1:3:1: ++%*2hhd: +127:0:3: ++%2hhd: +128:1:3:1: ++%*2hhd: +128:0:3: ++%2hhd: +169:1:3:1: ++%*2hhd: +169:0:3: ++%5hhd: :0:-1: ++%*5hhd: :0:-1: ++%5hhd: -251:1:5:5: ++%*5hhd: -251:0:5: ++%5hhd: -129:1:5:127: ++%*5hhd: -129:0:5: ++%5hhd: -128:1:5:-128: ++%*5hhd: -128:0:5: ++%5hhd: -123:1:5:-123: ++%*5hhd: -123:0:5: ++%5hhd: -1:1:3:-1: ++%*5hhd: -1:0:3: ++%5hhd: -0:1:3:0: ++%*5hhd: -0:0:3: ++%5hhd: 0:1:2:0: ++%*5hhd: 0:0:2: ++%5hhd: 1:1:2:1: ++%*5hhd: 1:0:2: ++%5hhd: 42:1:3:42: ++%*5hhd: 42:0:3: ++%5hhd: 127:1:4:127: ++%*5hhd: 127:0:4: ++%5hhd: 128:1:4:-128: ++%*5hhd: 128:0:4: ++%5hhd: 169:1:4:-87: ++%*5hhd: 169:0:4: ++%5hhd: +0:1:3:0: ++%*5hhd: +0:0:3: ++%5hhd: +1:1:3:1: ++%*5hhd: +1:0:3: ++%5hhd: +42:1:4:42: ++%*5hhd: +42:0:4: ++%5hhd: +127:1:5:127: ++%*5hhd: +127:0:5: ++%5hhd: +128:1:5:-128: ++%*5hhd: +128:0:5: ++%5hhd: +169:1:5:-87: ++%*5hhd: +169:0:5: +diff --git a/stdio-common/tst-scanf-format-char-i.input b/stdio-common/tst-scanf-format-char-i.input +new file mode 100644 +index 0000000000000000..31f7ff0508c73c00 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-char-i.input +@@ -0,0 +1,1526 @@ ++%hhi::0:-1: ++%*hhi::0:-1: ++%hhi:-251:1:4:5: ++%*hhi:-251:0:4: ++%hhi:-0Xfb:1:5:5: ++%*hhi:-0Xfb:0:5: ++%hhi:-0xFB:1:5:5: ++%*hhi:-0xFB:0:5: ++%hhi:-0373:1:5:5: ++%*hhi:-0373:0:5: ++%hhi:-0B11111011:1:11:5: ++%*hhi:-0B11111011:0:11: ++%hhi:-0b11111011:1:11:5: ++%*hhi:-0b11111011:0:11: ++%hhi:-129:1:4:127: ++%*hhi:-129:0:4: ++%hhi:-0X81:1:5:127: ++%*hhi:-0X81:0:5: ++%hhi:-0x81:1:5:127: ++%*hhi:-0x81:0:5: ++%hhi:-0201:1:5:127: ++%*hhi:-0201:0:5: ++%hhi:-0B10000001:1:11:127: ++%*hhi:-0B10000001:0:11: ++%hhi:-0b10000001:1:11:127: ++%*hhi:-0b10000001:0:11: ++%hhi:-128:1:4:-128: ++%*hhi:-128:0:4: ++%hhi:-0X80:1:5:-128: ++%*hhi:-0X80:0:5: ++%hhi:-0x80:1:5:-128: ++%*hhi:-0x80:0:5: ++%hhi:-0200:1:5:-128: ++%*hhi:-0200:0:5: ++%hhi:-0B10000000:1:11:-128: ++%*hhi:-0B10000000:0:11: ++%hhi:-0b10000000:1:11:-128: ++%*hhi:-0b10000000:0:11: ++%hhi:-123:1:4:-123: ++%*hhi:-123:0:4: ++%hhi:-0X7b:1:5:-123: ++%*hhi:-0X7b:0:5: ++%hhi:-0x7B:1:5:-123: ++%*hhi:-0x7B:0:5: ++%hhi:-0173:1:5:-123: ++%*hhi:-0173:0:5: ++%hhi:-0B1111011:1:10:-123: ++%*hhi:-0B1111011:0:10: ++%hhi:-0b1111011:1:10:-123: ++%*hhi:-0b1111011:0:10: ++%hhi:-1:1:2:-1: ++%*hhi:-1:0:2: ++%hhi:-0X1:1:4:-1: ++%*hhi:-0X1:0:4: ++%hhi:-0x1:1:4:-1: ++%*hhi:-0x1:0:4: ++%hhi:-01:1:3:-1: ++%*hhi:-01:0:3: ++%hhi:-0B1:1:4:-1: ++%*hhi:-0B1:0:4: ++%hhi:-0b1:1:4:-1: ++%*hhi:-0b1:0:4: ++%hhi:-0:1:2:0: ++%*hhi:-0:0:2: ++%hhi:-0X0:1:4:0: ++%*hhi:-0X0:0:4: ++%hhi:-0x0:1:4:0: ++%*hhi:-0x0:0:4: ++%hhi:-00:1:3:0: ++%*hhi:-00:0:3: ++%hhi:-0B0:1:4:0: ++%*hhi:-0B0:0:4: ++%hhi:-0b0:1:4:0: ++%*hhi:-0b0:0:4: ++%hhi:0:1:1:0: ++%*hhi:0:0:1: ++%hhi:0X0:1:3:0: ++%*hhi:0X0:0:3: ++%hhi:0x0:1:3:0: ++%*hhi:0x0:0:3: ++%hhi:00:1:2:0: ++%*hhi:00:0:2: ++%hhi:0B0:1:3:0: ++%*hhi:0B0:0:3: ++%hhi:0b0:1:3:0: ++%*hhi:0b0:0:3: ++%hhi:1:1:1:1: ++%*hhi:1:0:1: ++%hhi:0X1:1:3:1: ++%*hhi:0X1:0:3: ++%hhi:0x1:1:3:1: ++%*hhi:0x1:0:3: ++%hhi:01:1:2:1: ++%*hhi:01:0:2: ++%hhi:0B1:1:3:1: ++%*hhi:0B1:0:3: ++%hhi:0b1:1:3:1: ++%*hhi:0b1:0:3: ++%hhi:42:1:2:42: ++%*hhi:42:0:2: ++%hhi:0X2a:1:4:42: ++%*hhi:0X2a:0:4: ++%hhi:0x2A:1:4:42: ++%*hhi:0x2A:0:4: ++%hhi:052:1:3:42: ++%*hhi:052:0:3: ++%hhi:0B101010:1:8:42: ++%*hhi:0B101010:0:8: ++%hhi:0b101010:1:8:42: ++%*hhi:0b101010:0:8: ++%hhi:127:1:3:127: ++%*hhi:127:0:3: ++%hhi:0X7f:1:4:127: ++%*hhi:0X7f:0:4: ++%hhi:0x7F:1:4:127: ++%*hhi:0x7F:0:4: ++%hhi:0177:1:4:127: ++%*hhi:0177:0:4: ++%hhi:0B1111111:1:9:127: ++%*hhi:0B1111111:0:9: ++%hhi:0b1111111:1:9:127: ++%*hhi:0b1111111:0:9: ++%hhi:128:1:3:-128: ++%*hhi:128:0:3: ++%hhi:0X80:1:4:-128: ++%*hhi:0X80:0:4: ++%hhi:0x80:1:4:-128: ++%*hhi:0x80:0:4: ++%hhi:0200:1:4:-128: ++%*hhi:0200:0:4: ++%hhi:0B10000000:1:10:-128: ++%*hhi:0B10000000:0:10: ++%hhi:0b10000000:1:10:-128: ++%*hhi:0b10000000:0:10: ++%hhi:169:1:3:-87: ++%*hhi:169:0:3: ++%hhi:0Xa9:1:4:-87: ++%*hhi:0Xa9:0:4: ++%hhi:0xA9:1:4:-87: ++%*hhi:0xA9:0:4: ++%hhi:0251:1:4:-87: ++%*hhi:0251:0:4: ++%hhi:0B10101001:1:10:-87: ++%*hhi:0B10101001:0:10: ++%hhi:0b10101001:1:10:-87: ++%*hhi:0b10101001:0:10: ++%hhi:+0:1:2:0: ++%*hhi:+0:0:2: ++%hhi:+0X0:1:4:0: ++%*hhi:+0X0:0:4: ++%hhi:+0x0:1:4:0: ++%*hhi:+0x0:0:4: ++%hhi:+00:1:3:0: ++%*hhi:+00:0:3: ++%hhi:+0B0:1:4:0: ++%*hhi:+0B0:0:4: ++%hhi:+0b0:1:4:0: ++%*hhi:+0b0:0:4: ++%hhi:+1:1:2:1: ++%*hhi:+1:0:2: ++%hhi:+0X1:1:4:1: ++%*hhi:+0X1:0:4: ++%hhi:+0x1:1:4:1: ++%*hhi:+0x1:0:4: ++%hhi:+01:1:3:1: ++%*hhi:+01:0:3: ++%hhi:+0B1:1:4:1: ++%*hhi:+0B1:0:4: ++%hhi:+0b1:1:4:1: ++%*hhi:+0b1:0:4: ++%hhi:+42:1:3:42: ++%*hhi:+42:0:3: ++%hhi:+0X2a:1:5:42: ++%*hhi:+0X2a:0:5: ++%hhi:+0x2A:1:5:42: ++%*hhi:+0x2A:0:5: ++%hhi:+052:1:4:42: ++%*hhi:+052:0:4: ++%hhi:+0B101010:1:9:42: ++%*hhi:+0B101010:0:9: ++%hhi:+0b101010:1:9:42: ++%*hhi:+0b101010:0:9: ++%hhi:+127:1:4:127: ++%*hhi:+127:0:4: ++%hhi:+0X7f:1:5:127: ++%*hhi:+0X7f:0:5: ++%hhi:+0x7F:1:5:127: ++%*hhi:+0x7F:0:5: ++%hhi:+0177:1:5:127: ++%*hhi:+0177:0:5: ++%hhi:+0B1111111:1:10:127: ++%*hhi:+0B1111111:0:10: ++%hhi:+0b1111111:1:10:127: ++%*hhi:+0b1111111:0:10: ++%hhi:+128:1:4:-128: ++%*hhi:+128:0:4: ++%hhi:+0X80:1:5:-128: ++%*hhi:+0X80:0:5: ++%hhi:+0x80:1:5:-128: ++%*hhi:+0x80:0:5: ++%hhi:+0200:1:5:-128: ++%*hhi:+0200:0:5: ++%hhi:+0B10000000:1:11:-128: ++%*hhi:+0B10000000:0:11: ++%hhi:+0b10000000:1:11:-128: ++%*hhi:+0b10000000:0:11: ++%hhi:+169:1:4:-87: ++%*hhi:+169:0:4: ++%hhi:+0Xa9:1:5:-87: ++%*hhi:+0Xa9:0:5: ++%hhi:+0xA9:1:5:-87: ++%*hhi:+0xA9:0:5: ++%hhi:+0251:1:5:-87: ++%*hhi:+0251:0:5: ++%hhi:+0B10101001:1:11:-87: ++%*hhi:+0B10101001:0:11: ++%hhi:+0b10101001:1:11:-87: ++%*hhi:+0b10101001:0:11: ++%1hhi::0:-1: ++%*1hhi::0:-1: ++%1hhi:-251:0:-1: ++%*1hhi:-251:0:-1: ++%1hhi:-0Xfb:0:-1: ++%*1hhi:-0Xfb:0:-1: ++%1hhi:-0xFB:0:-1: ++%*1hhi:-0xFB:0:-1: ++%1hhi:-0373:0:-1: ++%*1hhi:-0373:0:-1: ++%1hhi:-0B11111011:0:-1: ++%*1hhi:-0B11111011:0:-1: ++%1hhi:-0b11111011:0:-1: ++%*1hhi:-0b11111011:0:-1: ++%1hhi:-129:0:-1: ++%*1hhi:-129:0:-1: ++%1hhi:-0X81:0:-1: ++%*1hhi:-0X81:0:-1: ++%1hhi:-0x81:0:-1: ++%*1hhi:-0x81:0:-1: ++%1hhi:-0201:0:-1: ++%*1hhi:-0201:0:-1: ++%1hhi:-0B10000001:0:-1: ++%*1hhi:-0B10000001:0:-1: ++%1hhi:-0b10000001:0:-1: ++%*1hhi:-0b10000001:0:-1: ++%1hhi:-128:0:-1: ++%*1hhi:-128:0:-1: ++%1hhi:-0X80:0:-1: ++%*1hhi:-0X80:0:-1: ++%1hhi:-0x80:0:-1: ++%*1hhi:-0x80:0:-1: ++%1hhi:-0200:0:-1: ++%*1hhi:-0200:0:-1: ++%1hhi:-0B10000000:0:-1: ++%*1hhi:-0B10000000:0:-1: ++%1hhi:-0b10000000:0:-1: ++%*1hhi:-0b10000000:0:-1: ++%1hhi:-123:0:-1: ++%*1hhi:-123:0:-1: ++%1hhi:-0X7b:0:-1: ++%*1hhi:-0X7b:0:-1: ++%1hhi:-0x7B:0:-1: ++%*1hhi:-0x7B:0:-1: ++%1hhi:-0173:0:-1: ++%*1hhi:-0173:0:-1: ++%1hhi:-0B1111011:0:-1: ++%*1hhi:-0B1111011:0:-1: ++%1hhi:-0b1111011:0:-1: ++%*1hhi:-0b1111011:0:-1: ++%1hhi:-1:0:-1: ++%*1hhi:-1:0:-1: ++%1hhi:-0X1:0:-1: ++%*1hhi:-0X1:0:-1: ++%1hhi:-0x1:0:-1: ++%*1hhi:-0x1:0:-1: ++%1hhi:-01:0:-1: ++%*1hhi:-01:0:-1: ++%1hhi:-0B1:0:-1: ++%*1hhi:-0B1:0:-1: ++%1hhi:-0b1:0:-1: ++%*1hhi:-0b1:0:-1: ++%1hhi:-0:0:-1: ++%*1hhi:-0:0:-1: ++%1hhi:-0X0:0:-1: ++%*1hhi:-0X0:0:-1: ++%1hhi:-0x0:0:-1: ++%*1hhi:-0x0:0:-1: ++%1hhi:-00:0:-1: ++%*1hhi:-00:0:-1: ++%1hhi:-0B0:0:-1: ++%*1hhi:-0B0:0:-1: ++%1hhi:-0b0:0:-1: ++%*1hhi:-0b0:0:-1: ++%1hhi:0:1:1:0: ++%*1hhi:0:0:1: ++%1hhi:0X0:1:1:0: ++%*1hhi:0X0:0:1: ++%1hhi:0x0:1:1:0: ++%*1hhi:0x0:0:1: ++%1hhi:00:1:1:0: ++%*1hhi:00:0:1: ++%1hhi:0B0:1:1:0: ++%*1hhi:0B0:0:1: ++%1hhi:0b0:1:1:0: ++%*1hhi:0b0:0:1: ++%1hhi:1:1:1:1: ++%*1hhi:1:0:1: ++%1hhi:0X1:1:1:0: ++%*1hhi:0X1:0:1: ++%1hhi:0x1:1:1:0: ++%*1hhi:0x1:0:1: ++%1hhi:01:1:1:0: ++%*1hhi:01:0:1: ++%1hhi:0B1:1:1:0: ++%*1hhi:0B1:0:1: ++%1hhi:0b1:1:1:0: ++%*1hhi:0b1:0:1: ++%1hhi:42:1:1:4: ++%*1hhi:42:0:1: ++%1hhi:0X2a:1:1:0: ++%*1hhi:0X2a:0:1: ++%1hhi:0x2A:1:1:0: ++%*1hhi:0x2A:0:1: ++%1hhi:052:1:1:0: ++%*1hhi:052:0:1: ++%1hhi:0B101010:1:1:0: ++%*1hhi:0B101010:0:1: ++%1hhi:0b101010:1:1:0: ++%*1hhi:0b101010:0:1: ++%1hhi:127:1:1:1: ++%*1hhi:127:0:1: ++%1hhi:0X7f:1:1:0: ++%*1hhi:0X7f:0:1: ++%1hhi:0x7F:1:1:0: ++%*1hhi:0x7F:0:1: ++%1hhi:0177:1:1:0: ++%*1hhi:0177:0:1: ++%1hhi:0B1111111:1:1:0: ++%*1hhi:0B1111111:0:1: ++%1hhi:0b1111111:1:1:0: ++%*1hhi:0b1111111:0:1: ++%1hhi:128:1:1:1: ++%*1hhi:128:0:1: ++%1hhi:0X80:1:1:0: ++%*1hhi:0X80:0:1: ++%1hhi:0x80:1:1:0: ++%*1hhi:0x80:0:1: ++%1hhi:0200:1:1:0: ++%*1hhi:0200:0:1: ++%1hhi:0B10000000:1:1:0: ++%*1hhi:0B10000000:0:1: ++%1hhi:0b10000000:1:1:0: ++%*1hhi:0b10000000:0:1: ++%1hhi:169:1:1:1: ++%*1hhi:169:0:1: ++%1hhi:0Xa9:1:1:0: ++%*1hhi:0Xa9:0:1: ++%1hhi:0xA9:1:1:0: ++%*1hhi:0xA9:0:1: ++%1hhi:0251:1:1:0: ++%*1hhi:0251:0:1: ++%1hhi:0B10101001:1:1:0: ++%*1hhi:0B10101001:0:1: ++%1hhi:0b10101001:1:1:0: ++%*1hhi:0b10101001:0:1: ++%1hhi:+0:0:-1: ++%*1hhi:+0:0:-1: ++%1hhi:+0X0:0:-1: ++%*1hhi:+0X0:0:-1: ++%1hhi:+0x0:0:-1: ++%*1hhi:+0x0:0:-1: ++%1hhi:+00:0:-1: ++%*1hhi:+00:0:-1: ++%1hhi:+0B0:0:-1: ++%*1hhi:+0B0:0:-1: ++%1hhi:+0b0:0:-1: ++%*1hhi:+0b0:0:-1: ++%1hhi:+1:0:-1: ++%*1hhi:+1:0:-1: ++%1hhi:+0X1:0:-1: ++%*1hhi:+0X1:0:-1: ++%1hhi:+0x1:0:-1: ++%*1hhi:+0x1:0:-1: ++%1hhi:+01:0:-1: ++%*1hhi:+01:0:-1: ++%1hhi:+0B1:0:-1: ++%*1hhi:+0B1:0:-1: ++%1hhi:+0b1:0:-1: ++%*1hhi:+0b1:0:-1: ++%1hhi:+42:0:-1: ++%*1hhi:+42:0:-1: ++%1hhi:+0X2a:0:-1: ++%*1hhi:+0X2a:0:-1: ++%1hhi:+0x2A:0:-1: ++%*1hhi:+0x2A:0:-1: ++%1hhi:+052:0:-1: ++%*1hhi:+052:0:-1: ++%1hhi:+0B101010:0:-1: ++%*1hhi:+0B101010:0:-1: ++%1hhi:+0b101010:0:-1: ++%*1hhi:+0b101010:0:-1: ++%1hhi:+127:0:-1: ++%*1hhi:+127:0:-1: ++%1hhi:+0X7f:0:-1: ++%*1hhi:+0X7f:0:-1: ++%1hhi:+0x7F:0:-1: ++%*1hhi:+0x7F:0:-1: ++%1hhi:+0177:0:-1: ++%*1hhi:+0177:0:-1: ++%1hhi:+0B1111111:0:-1: ++%*1hhi:+0B1111111:0:-1: ++%1hhi:+0b1111111:0:-1: ++%*1hhi:+0b1111111:0:-1: ++%1hhi:+128:0:-1: ++%*1hhi:+128:0:-1: ++%1hhi:+0X80:0:-1: ++%*1hhi:+0X80:0:-1: ++%1hhi:+0x80:0:-1: ++%*1hhi:+0x80:0:-1: ++%1hhi:+0200:0:-1: ++%*1hhi:+0200:0:-1: ++%1hhi:+0B10000000:0:-1: ++%*1hhi:+0B10000000:0:-1: ++%1hhi:+0b10000000:0:-1: ++%*1hhi:+0b10000000:0:-1: ++%1hhi:+169:0:-1: ++%*1hhi:+169:0:-1: ++%1hhi:+0Xa9:0:-1: ++%*1hhi:+0Xa9:0:-1: ++%1hhi:+0xA9:0:-1: ++%*1hhi:+0xA9:0:-1: ++%1hhi:+0251:0:-1: ++%*1hhi:+0251:0:-1: ++%1hhi:+0B10101001:0:-1: ++%*1hhi:+0B10101001:0:-1: ++%1hhi:+0b10101001:0:-1: ++%*1hhi:+0b10101001:0:-1: ++%2hhi::0:-1: ++%*2hhi::0:-1: ++%2hhi:-251:1:2:-2: ++%*2hhi:-251:0:2: ++%2hhi:-0Xfb:1:2:0: ++%*2hhi:-0Xfb:0:2: ++%2hhi:-0xFB:1:2:0: ++%*2hhi:-0xFB:0:2: ++%2hhi:-0373:1:2:0: ++%*2hhi:-0373:0:2: ++%2hhi:-0B11111011:1:2:0: ++%*2hhi:-0B11111011:0:2: ++%2hhi:-0b11111011:1:2:0: ++%*2hhi:-0b11111011:0:2: ++%2hhi:-129:1:2:-1: ++%*2hhi:-129:0:2: ++%2hhi:-0X81:1:2:0: ++%*2hhi:-0X81:0:2: ++%2hhi:-0x81:1:2:0: ++%*2hhi:-0x81:0:2: ++%2hhi:-0201:1:2:0: ++%*2hhi:-0201:0:2: ++%2hhi:-0B10000001:1:2:0: ++%*2hhi:-0B10000001:0:2: ++%2hhi:-0b10000001:1:2:0: ++%*2hhi:-0b10000001:0:2: ++%2hhi:-128:1:2:-1: ++%*2hhi:-128:0:2: ++%2hhi:-0X80:1:2:0: ++%*2hhi:-0X80:0:2: ++%2hhi:-0x80:1:2:0: ++%*2hhi:-0x80:0:2: ++%2hhi:-0200:1:2:0: ++%*2hhi:-0200:0:2: ++%2hhi:-0B10000000:1:2:0: ++%*2hhi:-0B10000000:0:2: ++%2hhi:-0b10000000:1:2:0: ++%*2hhi:-0b10000000:0:2: ++%2hhi:-123:1:2:-1: ++%*2hhi:-123:0:2: ++%2hhi:-0X7b:1:2:0: ++%*2hhi:-0X7b:0:2: ++%2hhi:-0x7B:1:2:0: ++%*2hhi:-0x7B:0:2: ++%2hhi:-0173:1:2:0: ++%*2hhi:-0173:0:2: ++%2hhi:-0B1111011:1:2:0: ++%*2hhi:-0B1111011:0:2: ++%2hhi:-0b1111011:1:2:0: ++%*2hhi:-0b1111011:0:2: ++%2hhi:-1:1:2:-1: ++%*2hhi:-1:0:2: ++%2hhi:-0X1:1:2:0: ++%*2hhi:-0X1:0:2: ++%2hhi:-0x1:1:2:0: ++%*2hhi:-0x1:0:2: ++%2hhi:-01:1:2:0: ++%*2hhi:-01:0:2: ++%2hhi:-0B1:1:2:0: ++%*2hhi:-0B1:0:2: ++%2hhi:-0b1:1:2:0: ++%*2hhi:-0b1:0:2: ++%2hhi:-0:1:2:0: ++%*2hhi:-0:0:2: ++%2hhi:-0X0:1:2:0: ++%*2hhi:-0X0:0:2: ++%2hhi:-0x0:1:2:0: ++%*2hhi:-0x0:0:2: ++%2hhi:-00:1:2:0: ++%*2hhi:-00:0:2: ++%2hhi:-0B0:1:2:0: ++%*2hhi:-0B0:0:2: ++%2hhi:-0b0:1:2:0: ++%*2hhi:-0b0:0:2: ++%2hhi:0:1:1:0: ++%*2hhi:0:0:1: ++# BZ12701 %2hhi:0X0:0:-1: ++# BZ12701 %*2hhi:0X0:0:-1: ++# BZ12701 %2hhi:0x0:0:-1: ++# BZ12701 %*2hhi:0x0:0:-1: ++%2hhi:00:1:2:0: ++%*2hhi:00:0:2: ++# BZ12701 %2hhi:0B0:0:-1: ++# BZ12701 %*2hhi:0B0:0:-1: ++# BZ12701 %2hhi:0b0:0:-1: ++# BZ12701 %*2hhi:0b0:0:-1: ++%2hhi:1:1:1:1: ++%*2hhi:1:0:1: ++# BZ12701 %2hhi:0X1:0:-1: ++# BZ12701 %*2hhi:0X1:0:-1: ++# BZ12701 %2hhi:0x1:0:-1: ++# BZ12701 %*2hhi:0x1:0:-1: ++%2hhi:01:1:2:1: ++%*2hhi:01:0:2: ++# BZ12701 %2hhi:0B1:0:-1: ++# BZ12701 %*2hhi:0B1:0:-1: ++# BZ12701 %2hhi:0b1:0:-1: ++# BZ12701 %*2hhi:0b1:0:-1: ++%2hhi:42:1:2:42: ++%*2hhi:42:0:2: ++# BZ12701 %2hhi:0X2a:0:-1: ++# BZ12701 %*2hhi:0X2a:0:-1: ++# BZ12701 %2hhi:0x2A:0:-1: ++# BZ12701 %*2hhi:0x2A:0:-1: ++%2hhi:052:1:2:5: ++%*2hhi:052:0:2: ++# BZ12701 %2hhi:0B101010:0:-1: ++# BZ12701 %*2hhi:0B101010:0:-1: ++# BZ12701 %2hhi:0b101010:0:-1: ++# BZ12701 %*2hhi:0b101010:0:-1: ++%2hhi:127:1:2:12: ++%*2hhi:127:0:2: ++# BZ12701 %2hhi:0X7f:0:-1: ++# BZ12701 %*2hhi:0X7f:0:-1: ++# BZ12701 %2hhi:0x7F:0:-1: ++# BZ12701 %*2hhi:0x7F:0:-1: ++%2hhi:0177:1:2:1: ++%*2hhi:0177:0:2: ++# BZ12701 %2hhi:0B1111111:0:-1: ++# BZ12701 %*2hhi:0B1111111:0:-1: ++# BZ12701 %2hhi:0b1111111:0:-1: ++# BZ12701 %*2hhi:0b1111111:0:-1: ++%2hhi:128:1:2:12: ++%*2hhi:128:0:2: ++# BZ12701 %2hhi:0X80:0:-1: ++# BZ12701 %*2hhi:0X80:0:-1: ++# BZ12701 %2hhi:0x80:0:-1: ++# BZ12701 %*2hhi:0x80:0:-1: ++%2hhi:0200:1:2:2: ++%*2hhi:0200:0:2: ++# BZ12701 %2hhi:0B10000000:0:-1: ++# BZ12701 %*2hhi:0B10000000:0:-1: ++# BZ12701 %2hhi:0b10000000:0:-1: ++# BZ12701 %*2hhi:0b10000000:0:-1: ++%2hhi:169:1:2:16: ++%*2hhi:169:0:2: ++# BZ12701 %2hhi:0Xa9:0:-1: ++# BZ12701 %*2hhi:0Xa9:0:-1: ++# BZ12701 %2hhi:0xA9:0:-1: ++# BZ12701 %*2hhi:0xA9:0:-1: ++%2hhi:0251:1:2:2: ++%*2hhi:0251:0:2: ++# BZ12701 %2hhi:0B10101001:0:-1: ++# BZ12701 %*2hhi:0B10101001:0:-1: ++# BZ12701 %2hhi:0b10101001:0:-1: ++# BZ12701 %*2hhi:0b10101001:0:-1: ++%2hhi:+0:1:2:0: ++%*2hhi:+0:0:2: ++%2hhi:+0X0:1:2:0: ++%*2hhi:+0X0:0:2: ++%2hhi:+0x0:1:2:0: ++%*2hhi:+0x0:0:2: ++%2hhi:+00:1:2:0: ++%*2hhi:+00:0:2: ++%2hhi:+0B0:1:2:0: ++%*2hhi:+0B0:0:2: ++%2hhi:+0b0:1:2:0: ++%*2hhi:+0b0:0:2: ++%2hhi:+1:1:2:1: ++%*2hhi:+1:0:2: ++%2hhi:+0X1:1:2:0: ++%*2hhi:+0X1:0:2: ++%2hhi:+0x1:1:2:0: ++%*2hhi:+0x1:0:2: ++%2hhi:+01:1:2:0: ++%*2hhi:+01:0:2: ++%2hhi:+0B1:1:2:0: ++%*2hhi:+0B1:0:2: ++%2hhi:+0b1:1:2:0: ++%*2hhi:+0b1:0:2: ++%2hhi:+42:1:2:4: ++%*2hhi:+42:0:2: ++%2hhi:+0X2a:1:2:0: ++%*2hhi:+0X2a:0:2: ++%2hhi:+0x2A:1:2:0: ++%*2hhi:+0x2A:0:2: ++%2hhi:+052:1:2:0: ++%*2hhi:+052:0:2: ++%2hhi:+0B101010:1:2:0: ++%*2hhi:+0B101010:0:2: ++%2hhi:+0b101010:1:2:0: ++%*2hhi:+0b101010:0:2: ++%2hhi:+127:1:2:1: ++%*2hhi:+127:0:2: ++%2hhi:+0X7f:1:2:0: ++%*2hhi:+0X7f:0:2: ++%2hhi:+0x7F:1:2:0: ++%*2hhi:+0x7F:0:2: ++%2hhi:+0177:1:2:0: ++%*2hhi:+0177:0:2: ++%2hhi:+0B1111111:1:2:0: ++%*2hhi:+0B1111111:0:2: ++%2hhi:+0b1111111:1:2:0: ++%*2hhi:+0b1111111:0:2: ++%2hhi:+128:1:2:1: ++%*2hhi:+128:0:2: ++%2hhi:+0X80:1:2:0: ++%*2hhi:+0X80:0:2: ++%2hhi:+0x80:1:2:0: ++%*2hhi:+0x80:0:2: ++%2hhi:+0200:1:2:0: ++%*2hhi:+0200:0:2: ++%2hhi:+0B10000000:1:2:0: ++%*2hhi:+0B10000000:0:2: ++%2hhi:+0b10000000:1:2:0: ++%*2hhi:+0b10000000:0:2: ++%2hhi:+169:1:2:1: ++%*2hhi:+169:0:2: ++%2hhi:+0Xa9:1:2:0: ++%*2hhi:+0Xa9:0:2: ++%2hhi:+0xA9:1:2:0: ++%*2hhi:+0xA9:0:2: ++%2hhi:+0251:1:2:0: ++%*2hhi:+0251:0:2: ++%2hhi:+0B10101001:1:2:0: ++%*2hhi:+0B10101001:0:2: ++%2hhi:+0b10101001:1:2:0: ++%*2hhi:+0b10101001:0:2: ++%3hhi::0:-1: ++%*3hhi::0:-1: ++%3hhi:-251:1:3:-25: ++%*3hhi:-251:0:3: ++# BZ12701 %3hhi:-0Xfb:0:-1: ++# BZ12701 %*3hhi:-0Xfb:0:-1: ++# BZ12701 %3hhi:-0xFB:0:-1: ++# BZ12701 %*3hhi:-0xFB:0:-1: ++%3hhi:-0373:1:3:-3: ++%*3hhi:-0373:0:3: ++# BZ12701 %3hhi:-0B11111011:0:-1: ++# BZ12701 %*3hhi:-0B11111011:0:-1: ++# BZ12701 %3hhi:-0b11111011:0:-1: ++# BZ12701 %*3hhi:-0b11111011:0:-1: ++%3hhi:-129:1:3:-12: ++%*3hhi:-129:0:3: ++# BZ12701 %3hhi:-0X81:0:-1: ++# BZ12701 %*3hhi:-0X81:0:-1: ++# BZ12701 %3hhi:-0x81:0:-1: ++# BZ12701 %*3hhi:-0x81:0:-1: ++%3hhi:-0201:1:3:-2: ++%*3hhi:-0201:0:3: ++# BZ12701 %3hhi:-0B10000001:0:-1: ++# BZ12701 %*3hhi:-0B10000001:0:-1: ++# BZ12701 %3hhi:-0b10000001:0:-1: ++# BZ12701 %*3hhi:-0b10000001:0:-1: ++%3hhi:-128:1:3:-12: ++%*3hhi:-128:0:3: ++# BZ12701 %3hhi:-0X80:0:-1: ++# BZ12701 %*3hhi:-0X80:0:-1: ++# BZ12701 %3hhi:-0x80:0:-1: ++# BZ12701 %*3hhi:-0x80:0:-1: ++%3hhi:-0200:1:3:-2: ++%*3hhi:-0200:0:3: ++# BZ12701 %3hhi:-0B10000000:0:-1: ++# BZ12701 %*3hhi:-0B10000000:0:-1: ++# BZ12701 %3hhi:-0b10000000:0:-1: ++# BZ12701 %*3hhi:-0b10000000:0:-1: ++%3hhi:-123:1:3:-12: ++%*3hhi:-123:0:3: ++# BZ12701 %3hhi:-0X7b:0:-1: ++# BZ12701 %*3hhi:-0X7b:0:-1: ++# BZ12701 %3hhi:-0x7B:0:-1: ++# BZ12701 %*3hhi:-0x7B:0:-1: ++%3hhi:-0173:1:3:-1: ++%*3hhi:-0173:0:3: ++# BZ12701 %3hhi:-0B1111011:0:-1: ++# BZ12701 %*3hhi:-0B1111011:0:-1: ++# BZ12701 %3hhi:-0b1111011:0:-1: ++# BZ12701 %*3hhi:-0b1111011:0:-1: ++%3hhi:-1:1:2:-1: ++%*3hhi:-1:0:2: ++# BZ12701 %3hhi:-0X1:0:-1: ++# BZ12701 %*3hhi:-0X1:0:-1: ++# BZ12701 %3hhi:-0x1:0:-1: ++# BZ12701 %*3hhi:-0x1:0:-1: ++%3hhi:-01:1:3:-1: ++%*3hhi:-01:0:3: ++# BZ12701 %3hhi:-0B1:0:-1: ++# BZ12701 %*3hhi:-0B1:0:-1: ++# BZ12701 %3hhi:-0b1:0:-1: ++# BZ12701 %*3hhi:-0b1:0:-1: ++%3hhi:-0:1:2:0: ++%*3hhi:-0:0:2: ++# BZ12701 %3hhi:-0X0:0:-1: ++# BZ12701 %*3hhi:-0X0:0:-1: ++# BZ12701 %3hhi:-0x0:0:-1: ++# BZ12701 %*3hhi:-0x0:0:-1: ++%3hhi:-00:1:3:0: ++%*3hhi:-00:0:3: ++# BZ12701 %3hhi:-0B0:0:-1: ++# BZ12701 %*3hhi:-0B0:0:-1: ++# BZ12701 %3hhi:-0b0:0:-1: ++# BZ12701 %*3hhi:-0b0:0:-1: ++%3hhi:0:1:1:0: ++%*3hhi:0:0:1: ++%3hhi:0X0:1:3:0: ++%*3hhi:0X0:0:3: ++%3hhi:0x0:1:3:0: ++%*3hhi:0x0:0:3: ++%3hhi:00:1:2:0: ++%*3hhi:00:0:2: ++%3hhi:0B0:1:3:0: ++%*3hhi:0B0:0:3: ++%3hhi:0b0:1:3:0: ++%*3hhi:0b0:0:3: ++%3hhi:1:1:1:1: ++%*3hhi:1:0:1: ++%3hhi:0X1:1:3:1: ++%*3hhi:0X1:0:3: ++%3hhi:0x1:1:3:1: ++%*3hhi:0x1:0:3: ++%3hhi:01:1:2:1: ++%*3hhi:01:0:2: ++%3hhi:0B1:1:3:1: ++%*3hhi:0B1:0:3: ++%3hhi:0b1:1:3:1: ++%*3hhi:0b1:0:3: ++%3hhi:42:1:2:42: ++%*3hhi:42:0:2: ++%3hhi:0X2a:1:3:2: ++%*3hhi:0X2a:0:3: ++%3hhi:0x2A:1:3:2: ++%*3hhi:0x2A:0:3: ++%3hhi:052:1:3:42: ++%*3hhi:052:0:3: ++%3hhi:0B101010:1:3:1: ++%*3hhi:0B101010:0:3: ++%3hhi:0b101010:1:3:1: ++%*3hhi:0b101010:0:3: ++%3hhi:127:1:3:127: ++%*3hhi:127:0:3: ++%3hhi:0X7f:1:3:7: ++%*3hhi:0X7f:0:3: ++%3hhi:0x7F:1:3:7: ++%*3hhi:0x7F:0:3: ++%3hhi:0177:1:3:15: ++%*3hhi:0177:0:3: ++%3hhi:0B1111111:1:3:1: ++%*3hhi:0B1111111:0:3: ++%3hhi:0b1111111:1:3:1: ++%*3hhi:0b1111111:0:3: ++%3hhi:128:1:3:-128: ++%*3hhi:128:0:3: ++%3hhi:0X80:1:3:8: ++%*3hhi:0X80:0:3: ++%3hhi:0x80:1:3:8: ++%*3hhi:0x80:0:3: ++%3hhi:0200:1:3:16: ++%*3hhi:0200:0:3: ++%3hhi:0B10000000:1:3:1: ++%*3hhi:0B10000000:0:3: ++%3hhi:0b10000000:1:3:1: ++%*3hhi:0b10000000:0:3: ++%3hhi:169:1:3:-87: ++%*3hhi:169:0:3: ++%3hhi:0Xa9:1:3:10: ++%*3hhi:0Xa9:0:3: ++%3hhi:0xA9:1:3:10: ++%*3hhi:0xA9:0:3: ++%3hhi:0251:1:3:21: ++%*3hhi:0251:0:3: ++%3hhi:0B10101001:1:3:1: ++%*3hhi:0B10101001:0:3: ++%3hhi:0b10101001:1:3:1: ++%*3hhi:0b10101001:0:3: ++%3hhi:+0:1:2:0: ++%*3hhi:+0:0:2: ++# BZ12701 %3hhi:+0X0:0:-1: ++# BZ12701 %*3hhi:+0X0:0:-1: ++# BZ12701 %3hhi:+0x0:0:-1: ++# BZ12701 %*3hhi:+0x0:0:-1: ++%3hhi:+00:1:3:0: ++%*3hhi:+00:0:3: ++# BZ12701 %3hhi:+0B0:0:-1: ++# BZ12701 %*3hhi:+0B0:0:-1: ++# BZ12701 %3hhi:+0b0:0:-1: ++# BZ12701 %*3hhi:+0b0:0:-1: ++%3hhi:+1:1:2:1: ++%*3hhi:+1:0:2: ++# BZ12701 %3hhi:+0X1:0:-1: ++# BZ12701 %*3hhi:+0X1:0:-1: ++# BZ12701 %3hhi:+0x1:0:-1: ++# BZ12701 %*3hhi:+0x1:0:-1: ++%3hhi:+01:1:3:1: ++%*3hhi:+01:0:3: ++# BZ12701 %3hhi:+0B1:0:-1: ++# BZ12701 %*3hhi:+0B1:0:-1: ++# BZ12701 %3hhi:+0b1:0:-1: ++# BZ12701 %*3hhi:+0b1:0:-1: ++%3hhi:+42:1:3:42: ++%*3hhi:+42:0:3: ++# BZ12701 %3hhi:+0X2a:0:-1: ++# BZ12701 %*3hhi:+0X2a:0:-1: ++# BZ12701 %3hhi:+0x2A:0:-1: ++# BZ12701 %*3hhi:+0x2A:0:-1: ++%3hhi:+052:1:3:5: ++%*3hhi:+052:0:3: ++# BZ12701 %3hhi:+0B101010:0:-1: ++# BZ12701 %*3hhi:+0B101010:0:-1: ++# BZ12701 %3hhi:+0b101010:0:-1: ++# BZ12701 %*3hhi:+0b101010:0:-1: ++%3hhi:+127:1:3:12: ++%*3hhi:+127:0:3: ++# BZ12701 %3hhi:+0X7f:0:-1: ++# BZ12701 %*3hhi:+0X7f:0:-1: ++# BZ12701 %3hhi:+0x7F:0:-1: ++# BZ12701 %*3hhi:+0x7F:0:-1: ++%3hhi:+0177:1:3:1: ++%*3hhi:+0177:0:3: ++# BZ12701 %3hhi:+0B1111111:0:-1: ++# BZ12701 %*3hhi:+0B1111111:0:-1: ++# BZ12701 %3hhi:+0b1111111:0:-1: ++# BZ12701 %*3hhi:+0b1111111:0:-1: ++%3hhi:+128:1:3:12: ++%*3hhi:+128:0:3: ++# BZ12701 %3hhi:+0X80:0:-1: ++# BZ12701 %*3hhi:+0X80:0:-1: ++# BZ12701 %3hhi:+0x80:0:-1: ++# BZ12701 %*3hhi:+0x80:0:-1: ++%3hhi:+0200:1:3:2: ++%*3hhi:+0200:0:3: ++# BZ12701 %3hhi:+0B10000000:0:-1: ++# BZ12701 %*3hhi:+0B10000000:0:-1: ++# BZ12701 %3hhi:+0b10000000:0:-1: ++# BZ12701 %*3hhi:+0b10000000:0:-1: ++%3hhi:+169:1:3:16: ++%*3hhi:+169:0:3: ++# BZ12701 %3hhi:+0Xa9:0:-1: ++# BZ12701 %*3hhi:+0Xa9:0:-1: ++# BZ12701 %3hhi:+0xA9:0:-1: ++# BZ12701 %*3hhi:+0xA9:0:-1: ++%3hhi:+0251:1:3:2: ++%*3hhi:+0251:0:3: ++# BZ12701 %3hhi:+0B10101001:0:-1: ++# BZ12701 %*3hhi:+0B10101001:0:-1: ++# BZ12701 %3hhi:+0b10101001:0:-1: ++# BZ12701 %*3hhi:+0b10101001:0:-1: ++%5hhi::0:-1: ++%*5hhi::0:-1: ++%5hhi:-251:1:4:5: ++%*5hhi:-251:0:4: ++%5hhi:-0Xfb:1:5:5: ++%*5hhi:-0Xfb:0:5: ++%5hhi:-0xFB:1:5:5: ++%*5hhi:-0xFB:0:5: ++%5hhi:-0373:1:5:5: ++%*5hhi:-0373:0:5: ++%5hhi:-0B11111011:1:5:-3: ++%*5hhi:-0B11111011:0:5: ++%5hhi:-0b11111011:1:5:-3: ++%*5hhi:-0b11111011:0:5: ++%5hhi:-129:1:4:127: ++%*5hhi:-129:0:4: ++%5hhi:-0X81:1:5:127: ++%*5hhi:-0X81:0:5: ++%5hhi:-0x81:1:5:127: ++%*5hhi:-0x81:0:5: ++%5hhi:-0201:1:5:127: ++%*5hhi:-0201:0:5: ++%5hhi:-0B10000001:1:5:-2: ++%*5hhi:-0B10000001:0:5: ++%5hhi:-0b10000001:1:5:-2: ++%*5hhi:-0b10000001:0:5: ++%5hhi:-128:1:4:-128: ++%*5hhi:-128:0:4: ++%5hhi:-0X80:1:5:-128: ++%*5hhi:-0X80:0:5: ++%5hhi:-0x80:1:5:-128: ++%*5hhi:-0x80:0:5: ++%5hhi:-0200:1:5:-128: ++%*5hhi:-0200:0:5: ++%5hhi:-0B10000000:1:5:-2: ++%*5hhi:-0B10000000:0:5: ++%5hhi:-0b10000000:1:5:-2: ++%*5hhi:-0b10000000:0:5: ++%5hhi:-123:1:4:-123: ++%*5hhi:-123:0:4: ++%5hhi:-0X7b:1:5:-123: ++%*5hhi:-0X7b:0:5: ++%5hhi:-0x7B:1:5:-123: ++%*5hhi:-0x7B:0:5: ++%5hhi:-0173:1:5:-123: ++%*5hhi:-0173:0:5: ++%5hhi:-0B1111011:1:5:-3: ++%*5hhi:-0B1111011:0:5: ++%5hhi:-0b1111011:1:5:-3: ++%*5hhi:-0b1111011:0:5: ++%5hhi:-1:1:2:-1: ++%*5hhi:-1:0:2: ++%5hhi:-0X1:1:4:-1: ++%*5hhi:-0X1:0:4: ++%5hhi:-0x1:1:4:-1: ++%*5hhi:-0x1:0:4: ++%5hhi:-01:1:3:-1: ++%*5hhi:-01:0:3: ++%5hhi:-0B1:1:4:-1: ++%*5hhi:-0B1:0:4: ++%5hhi:-0b1:1:4:-1: ++%*5hhi:-0b1:0:4: ++%5hhi:-0:1:2:0: ++%*5hhi:-0:0:2: ++%5hhi:-0X0:1:4:0: ++%*5hhi:-0X0:0:4: ++%5hhi:-0x0:1:4:0: ++%*5hhi:-0x0:0:4: ++%5hhi:-00:1:3:0: ++%*5hhi:-00:0:3: ++%5hhi:-0B0:1:4:0: ++%*5hhi:-0B0:0:4: ++%5hhi:-0b0:1:4:0: ++%*5hhi:-0b0:0:4: ++%5hhi:0:1:1:0: ++%*5hhi:0:0:1: ++%5hhi:0X0:1:3:0: ++%*5hhi:0X0:0:3: ++%5hhi:0x0:1:3:0: ++%*5hhi:0x0:0:3: ++%5hhi:00:1:2:0: ++%*5hhi:00:0:2: ++%5hhi:0B0:1:3:0: ++%*5hhi:0B0:0:3: ++%5hhi:0b0:1:3:0: ++%*5hhi:0b0:0:3: ++%5hhi:1:1:1:1: ++%*5hhi:1:0:1: ++%5hhi:0X1:1:3:1: ++%*5hhi:0X1:0:3: ++%5hhi:0x1:1:3:1: ++%*5hhi:0x1:0:3: ++%5hhi:01:1:2:1: ++%*5hhi:01:0:2: ++%5hhi:0B1:1:3:1: ++%*5hhi:0B1:0:3: ++%5hhi:0b1:1:3:1: ++%*5hhi:0b1:0:3: ++%5hhi:42:1:2:42: ++%*5hhi:42:0:2: ++%5hhi:0X2a:1:4:42: ++%*5hhi:0X2a:0:4: ++%5hhi:0x2A:1:4:42: ++%*5hhi:0x2A:0:4: ++%5hhi:052:1:3:42: ++%*5hhi:052:0:3: ++%5hhi:0B101010:1:5:5: ++%*5hhi:0B101010:0:5: ++%5hhi:0b101010:1:5:5: ++%*5hhi:0b101010:0:5: ++%5hhi:127:1:3:127: ++%*5hhi:127:0:3: ++%5hhi:0X7f:1:4:127: ++%*5hhi:0X7f:0:4: ++%5hhi:0x7F:1:4:127: ++%*5hhi:0x7F:0:4: ++%5hhi:0177:1:4:127: ++%*5hhi:0177:0:4: ++%5hhi:0B1111111:1:5:7: ++%*5hhi:0B1111111:0:5: ++%5hhi:0b1111111:1:5:7: ++%*5hhi:0b1111111:0:5: ++%5hhi:128:1:3:-128: ++%*5hhi:128:0:3: ++%5hhi:0X80:1:4:-128: ++%*5hhi:0X80:0:4: ++%5hhi:0x80:1:4:-128: ++%*5hhi:0x80:0:4: ++%5hhi:0200:1:4:-128: ++%*5hhi:0200:0:4: ++%5hhi:0B10000000:1:5:4: ++%*5hhi:0B10000000:0:5: ++%5hhi:0b10000000:1:5:4: ++%*5hhi:0b10000000:0:5: ++%5hhi:169:1:3:-87: ++%*5hhi:169:0:3: ++%5hhi:0Xa9:1:4:-87: ++%*5hhi:0Xa9:0:4: ++%5hhi:0xA9:1:4:-87: ++%*5hhi:0xA9:0:4: ++%5hhi:0251:1:4:-87: ++%*5hhi:0251:0:4: ++%5hhi:0B10101001:1:5:5: ++%*5hhi:0B10101001:0:5: ++%5hhi:0b10101001:1:5:5: ++%*5hhi:0b10101001:0:5: ++%5hhi:+0:1:2:0: ++%*5hhi:+0:0:2: ++%5hhi:+0X0:1:4:0: ++%*5hhi:+0X0:0:4: ++%5hhi:+0x0:1:4:0: ++%*5hhi:+0x0:0:4: ++%5hhi:+00:1:3:0: ++%*5hhi:+00:0:3: ++%5hhi:+0B0:1:4:0: ++%*5hhi:+0B0:0:4: ++%5hhi:+0b0:1:4:0: ++%*5hhi:+0b0:0:4: ++%5hhi:+1:1:2:1: ++%*5hhi:+1:0:2: ++%5hhi:+0X1:1:4:1: ++%*5hhi:+0X1:0:4: ++%5hhi:+0x1:1:4:1: ++%*5hhi:+0x1:0:4: ++%5hhi:+01:1:3:1: ++%*5hhi:+01:0:3: ++%5hhi:+0B1:1:4:1: ++%*5hhi:+0B1:0:4: ++%5hhi:+0b1:1:4:1: ++%*5hhi:+0b1:0:4: ++%5hhi:+42:1:3:42: ++%*5hhi:+42:0:3: ++%5hhi:+0X2a:1:5:42: ++%*5hhi:+0X2a:0:5: ++%5hhi:+0x2A:1:5:42: ++%*5hhi:+0x2A:0:5: ++%5hhi:+052:1:4:42: ++%*5hhi:+052:0:4: ++%5hhi:+0B101010:1:5:2: ++%*5hhi:+0B101010:0:5: ++%5hhi:+0b101010:1:5:2: ++%*5hhi:+0b101010:0:5: ++%5hhi:+127:1:4:127: ++%*5hhi:+127:0:4: ++%5hhi:+0X7f:1:5:127: ++%*5hhi:+0X7f:0:5: ++%5hhi:+0x7F:1:5:127: ++%*5hhi:+0x7F:0:5: ++%5hhi:+0177:1:5:127: ++%*5hhi:+0177:0:5: ++%5hhi:+0B1111111:1:5:3: ++%*5hhi:+0B1111111:0:5: ++%5hhi:+0b1111111:1:5:3: ++%*5hhi:+0b1111111:0:5: ++%5hhi:+128:1:4:-128: ++%*5hhi:+128:0:4: ++%5hhi:+0X80:1:5:-128: ++%*5hhi:+0X80:0:5: ++%5hhi:+0x80:1:5:-128: ++%*5hhi:+0x80:0:5: ++%5hhi:+0200:1:5:-128: ++%*5hhi:+0200:0:5: ++%5hhi:+0B10000000:1:5:2: ++%*5hhi:+0B10000000:0:5: ++%5hhi:+0b10000000:1:5:2: ++%*5hhi:+0b10000000:0:5: ++%5hhi:+169:1:4:-87: ++%*5hhi:+169:0:4: ++%5hhi:+0Xa9:1:5:-87: ++%*5hhi:+0Xa9:0:5: ++%5hhi:+0xA9:1:5:-87: ++%*5hhi:+0xA9:0:5: ++%5hhi:+0251:1:5:-87: ++%*5hhi:+0251:0:5: ++%5hhi:+0B10101001:1:5:2: ++%*5hhi:+0B10101001:0:5: ++%5hhi:+0b10101001:1:5:2: ++%*5hhi:+0b10101001:0:5: ++%2hhi: :0:-1: ++%*2hhi: :0:-1: ++%2hhi: -251:1:3:-2: ++%*2hhi: -251:0:3: ++%2hhi: -0Xfb:1:3:0: ++%*2hhi: -0Xfb:0:3: ++%2hhi: -0xFB:1:3:0: ++%*2hhi: -0xFB:0:3: ++%2hhi: -0373:1:3:0: ++%*2hhi: -0373:0:3: ++%2hhi: -0B11111011:1:3:0: ++%*2hhi: -0B11111011:0:3: ++%2hhi: -0b11111011:1:3:0: ++%*2hhi: -0b11111011:0:3: ++%2hhi: -129:1:3:-1: ++%*2hhi: -129:0:3: ++%2hhi: -0X81:1:3:0: ++%*2hhi: -0X81:0:3: ++%2hhi: -0x81:1:3:0: ++%*2hhi: -0x81:0:3: ++%2hhi: -0201:1:3:0: ++%*2hhi: -0201:0:3: ++%2hhi: -0B10000001:1:3:0: ++%*2hhi: -0B10000001:0:3: ++%2hhi: -0b10000001:1:3:0: ++%*2hhi: -0b10000001:0:3: ++%2hhi: -128:1:3:-1: ++%*2hhi: -128:0:3: ++%2hhi: -0X80:1:3:0: ++%*2hhi: -0X80:0:3: ++%2hhi: -0x80:1:3:0: ++%*2hhi: -0x80:0:3: ++%2hhi: -0200:1:3:0: ++%*2hhi: -0200:0:3: ++%2hhi: -0B10000000:1:3:0: ++%*2hhi: -0B10000000:0:3: ++%2hhi: -0b10000000:1:3:0: ++%*2hhi: -0b10000000:0:3: ++%2hhi: -123:1:3:-1: ++%*2hhi: -123:0:3: ++%2hhi: -0X7b:1:3:0: ++%*2hhi: -0X7b:0:3: ++%2hhi: -0x7B:1:3:0: ++%*2hhi: -0x7B:0:3: ++%2hhi: -0173:1:3:0: ++%*2hhi: -0173:0:3: ++%2hhi: -0B1111011:1:3:0: ++%*2hhi: -0B1111011:0:3: ++%2hhi: -0b1111011:1:3:0: ++%*2hhi: -0b1111011:0:3: ++%2hhi: -1:1:3:-1: ++%*2hhi: -1:0:3: ++%2hhi: -0X1:1:3:0: ++%*2hhi: -0X1:0:3: ++%2hhi: -0x1:1:3:0: ++%*2hhi: -0x1:0:3: ++%2hhi: -01:1:3:0: ++%*2hhi: -01:0:3: ++%2hhi: -0B1:1:3:0: ++%*2hhi: -0B1:0:3: ++%2hhi: -0b1:1:3:0: ++%*2hhi: -0b1:0:3: ++%2hhi: -0:1:3:0: ++%*2hhi: -0:0:3: ++%2hhi: -0X0:1:3:0: ++%*2hhi: -0X0:0:3: ++%2hhi: -0x0:1:3:0: ++%*2hhi: -0x0:0:3: ++%2hhi: -00:1:3:0: ++%*2hhi: -00:0:3: ++%2hhi: -0B0:1:3:0: ++%*2hhi: -0B0:0:3: ++%2hhi: -0b0:1:3:0: ++%*2hhi: -0b0:0:3: ++%2hhi: 0:1:2:0: ++%*2hhi: 0:0:2: ++# BZ12701 %2hhi: 0X0:0:-1: ++# BZ12701 %*2hhi: 0X0:0:-1: ++# BZ12701 %2hhi: 0x0:0:-1: ++# BZ12701 %*2hhi: 0x0:0:-1: ++%2hhi: 00:1:3:0: ++%*2hhi: 00:0:3: ++# BZ12701 %2hhi: 0B0:0:-1: ++# BZ12701 %*2hhi: 0B0:0:-1: ++# BZ12701 %2hhi: 0b0:0:-1: ++# BZ12701 %*2hhi: 0b0:0:-1: ++%2hhi: 1:1:2:1: ++%*2hhi: 1:0:2: ++# BZ12701 %2hhi: 0X1:0:-1: ++# BZ12701 %*2hhi: 0X1:0:-1: ++# BZ12701 %2hhi: 0x1:0:-1: ++# BZ12701 %*2hhi: 0x1:0:-1: ++%2hhi: 01:1:3:1: ++%*2hhi: 01:0:3: ++# BZ12701 %2hhi: 0B1:0:-1: ++# BZ12701 %*2hhi: 0B1:0:-1: ++# BZ12701 %2hhi: 0b1:0:-1: ++# BZ12701 %*2hhi: 0b1:0:-1: ++%2hhi: 42:1:3:42: ++%*2hhi: 42:0:3: ++# BZ12701 %2hhi: 0X2a:0:-1: ++# BZ12701 %*2hhi: 0X2a:0:-1: ++# BZ12701 %2hhi: 0x2A:0:-1: ++# BZ12701 %*2hhi: 0x2A:0:-1: ++%2hhi: 052:1:3:5: ++%*2hhi: 052:0:3: ++# BZ12701 %2hhi: 0B101010:0:-1: ++# BZ12701 %*2hhi: 0B101010:0:-1: ++# BZ12701 %2hhi: 0b101010:0:-1: ++# BZ12701 %*2hhi: 0b101010:0:-1: ++%2hhi: 127:1:3:12: ++%*2hhi: 127:0:3: ++# BZ12701 %2hhi: 0X7f:0:-1: ++# BZ12701 %*2hhi: 0X7f:0:-1: ++# BZ12701 %2hhi: 0x7F:0:-1: ++# BZ12701 %*2hhi: 0x7F:0:-1: ++%2hhi: 0177:1:3:1: ++%*2hhi: 0177:0:3: ++# BZ12701 %2hhi: 0B1111111:0:-1: ++# BZ12701 %*2hhi: 0B1111111:0:-1: ++# BZ12701 %2hhi: 0b1111111:0:-1: ++# BZ12701 %*2hhi: 0b1111111:0:-1: ++%2hhi: 128:1:3:12: ++%*2hhi: 128:0:3: ++# BZ12701 %2hhi: 0X80:0:-1: ++# BZ12701 %*2hhi: 0X80:0:-1: ++# BZ12701 %2hhi: 0x80:0:-1: ++# BZ12701 %*2hhi: 0x80:0:-1: ++%2hhi: 0200:1:3:2: ++%*2hhi: 0200:0:3: ++# BZ12701 %2hhi: 0B10000000:0:-1: ++# BZ12701 %*2hhi: 0B10000000:0:-1: ++# BZ12701 %2hhi: 0b10000000:0:-1: ++# BZ12701 %*2hhi: 0b10000000:0:-1: ++%2hhi: 169:1:3:16: ++%*2hhi: 169:0:3: ++# BZ12701 %2hhi: 0Xa9:0:-1: ++# BZ12701 %*2hhi: 0Xa9:0:-1: ++# BZ12701 %2hhi: 0xA9:0:-1: ++# BZ12701 %*2hhi: 0xA9:0:-1: ++%2hhi: 0251:1:3:2: ++%*2hhi: 0251:0:3: ++# BZ12701 %2hhi: 0B10101001:0:-1: ++# BZ12701 %*2hhi: 0B10101001:0:-1: ++# BZ12701 %2hhi: 0b10101001:0:-1: ++# BZ12701 %*2hhi: 0b10101001:0:-1: ++%2hhi: +0:1:3:0: ++%*2hhi: +0:0:3: ++%2hhi: +0X0:1:3:0: ++%*2hhi: +0X0:0:3: ++%2hhi: +0x0:1:3:0: ++%*2hhi: +0x0:0:3: ++%2hhi: +00:1:3:0: ++%*2hhi: +00:0:3: ++%2hhi: +0B0:1:3:0: ++%*2hhi: +0B0:0:3: ++%2hhi: +0b0:1:3:0: ++%*2hhi: +0b0:0:3: ++%2hhi: +1:1:3:1: ++%*2hhi: +1:0:3: ++%2hhi: +0X1:1:3:0: ++%*2hhi: +0X1:0:3: ++%2hhi: +0x1:1:3:0: ++%*2hhi: +0x1:0:3: ++%2hhi: +01:1:3:0: ++%*2hhi: +01:0:3: ++%2hhi: +0B1:1:3:0: ++%*2hhi: +0B1:0:3: ++%2hhi: +0b1:1:3:0: ++%*2hhi: +0b1:0:3: ++%2hhi: +42:1:3:4: ++%*2hhi: +42:0:3: ++%2hhi: +0X2a:1:3:0: ++%*2hhi: +0X2a:0:3: ++%2hhi: +0x2A:1:3:0: ++%*2hhi: +0x2A:0:3: ++%2hhi: +052:1:3:0: ++%*2hhi: +052:0:3: ++%2hhi: +0B101010:1:3:0: ++%*2hhi: +0B101010:0:3: ++%2hhi: +0b101010:1:3:0: ++%*2hhi: +0b101010:0:3: ++%2hhi: +127:1:3:1: ++%*2hhi: +127:0:3: ++%2hhi: +0X7f:1:3:0: ++%*2hhi: +0X7f:0:3: ++%2hhi: +0x7F:1:3:0: ++%*2hhi: +0x7F:0:3: ++%2hhi: +0177:1:3:0: ++%*2hhi: +0177:0:3: ++%2hhi: +0B1111111:1:3:0: ++%*2hhi: +0B1111111:0:3: ++%2hhi: +0b1111111:1:3:0: ++%*2hhi: +0b1111111:0:3: ++%2hhi: +128:1:3:1: ++%*2hhi: +128:0:3: ++%2hhi: +0X80:1:3:0: ++%*2hhi: +0X80:0:3: ++%2hhi: +0x80:1:3:0: ++%*2hhi: +0x80:0:3: ++%2hhi: +0200:1:3:0: ++%*2hhi: +0200:0:3: ++%2hhi: +0B10000000:1:3:0: ++%*2hhi: +0B10000000:0:3: ++%2hhi: +0b10000000:1:3:0: ++%*2hhi: +0b10000000:0:3: ++%2hhi: +169:1:3:1: ++%*2hhi: +169:0:3: ++%2hhi: +0Xa9:1:3:0: ++%*2hhi: +0Xa9:0:3: ++%2hhi: +0xA9:1:3:0: ++%*2hhi: +0xA9:0:3: ++%2hhi: +0251:1:3:0: ++%*2hhi: +0251:0:3: ++%2hhi: +0B10101001:1:3:0: ++%*2hhi: +0B10101001:0:3: ++%2hhi: +0b10101001:1:3:0: ++%*2hhi: +0b10101001:0:3: ++%5hhi: :0:-1: ++%*5hhi: :0:-1: ++%5hhi: -251:1:5:5: ++%*5hhi: -251:0:5: ++%5hhi: -0Xfb:1:6:5: ++%*5hhi: -0Xfb:0:6: ++%5hhi: -0xFB:1:6:5: ++%*5hhi: -0xFB:0:6: ++%5hhi: -0373:1:6:5: ++%*5hhi: -0373:0:6: ++%5hhi: -0B11111011:1:6:-3: ++%*5hhi: -0B11111011:0:6: ++%5hhi: -0b11111011:1:6:-3: ++%*5hhi: -0b11111011:0:6: ++%5hhi: -129:1:5:127: ++%*5hhi: -129:0:5: ++%5hhi: -0X81:1:6:127: ++%*5hhi: -0X81:0:6: ++%5hhi: -0x81:1:6:127: ++%*5hhi: -0x81:0:6: ++%5hhi: -0201:1:6:127: ++%*5hhi: -0201:0:6: ++%5hhi: -0B10000001:1:6:-2: ++%*5hhi: -0B10000001:0:6: ++%5hhi: -0b10000001:1:6:-2: ++%*5hhi: -0b10000001:0:6: ++%5hhi: -128:1:5:-128: ++%*5hhi: -128:0:5: ++%5hhi: -0X80:1:6:-128: ++%*5hhi: -0X80:0:6: ++%5hhi: -0x80:1:6:-128: ++%*5hhi: -0x80:0:6: ++%5hhi: -0200:1:6:-128: ++%*5hhi: -0200:0:6: ++%5hhi: -0B10000000:1:6:-2: ++%*5hhi: -0B10000000:0:6: ++%5hhi: -0b10000000:1:6:-2: ++%*5hhi: -0b10000000:0:6: ++%5hhi: -123:1:5:-123: ++%*5hhi: -123:0:5: ++%5hhi: -0X7b:1:6:-123: ++%*5hhi: -0X7b:0:6: ++%5hhi: -0x7B:1:6:-123: ++%*5hhi: -0x7B:0:6: ++%5hhi: -0173:1:6:-123: ++%*5hhi: -0173:0:6: ++%5hhi: -0B1111011:1:6:-3: ++%*5hhi: -0B1111011:0:6: ++%5hhi: -0b1111011:1:6:-3: ++%*5hhi: -0b1111011:0:6: ++%5hhi: -1:1:3:-1: ++%*5hhi: -1:0:3: ++%5hhi: -0X1:1:5:-1: ++%*5hhi: -0X1:0:5: ++%5hhi: -0x1:1:5:-1: ++%*5hhi: -0x1:0:5: ++%5hhi: -01:1:4:-1: ++%*5hhi: -01:0:4: ++%5hhi: -0B1:1:5:-1: ++%*5hhi: -0B1:0:5: ++%5hhi: -0b1:1:5:-1: ++%*5hhi: -0b1:0:5: ++%5hhi: -0:1:3:0: ++%*5hhi: -0:0:3: ++%5hhi: -0X0:1:5:0: ++%*5hhi: -0X0:0:5: ++%5hhi: -0x0:1:5:0: ++%*5hhi: -0x0:0:5: ++%5hhi: -00:1:4:0: ++%*5hhi: -00:0:4: ++%5hhi: -0B0:1:5:0: ++%*5hhi: -0B0:0:5: ++%5hhi: -0b0:1:5:0: ++%*5hhi: -0b0:0:5: ++%5hhi: 0:1:2:0: ++%*5hhi: 0:0:2: ++%5hhi: 0X0:1:4:0: ++%*5hhi: 0X0:0:4: ++%5hhi: 0x0:1:4:0: ++%*5hhi: 0x0:0:4: ++%5hhi: 00:1:3:0: ++%*5hhi: 00:0:3: ++%5hhi: 0B0:1:4:0: ++%*5hhi: 0B0:0:4: ++%5hhi: 0b0:1:4:0: ++%*5hhi: 0b0:0:4: ++%5hhi: 1:1:2:1: ++%*5hhi: 1:0:2: ++%5hhi: 0X1:1:4:1: ++%*5hhi: 0X1:0:4: ++%5hhi: 0x1:1:4:1: ++%*5hhi: 0x1:0:4: ++%5hhi: 01:1:3:1: ++%*5hhi: 01:0:3: ++%5hhi: 0B1:1:4:1: ++%*5hhi: 0B1:0:4: ++%5hhi: 0b1:1:4:1: ++%*5hhi: 0b1:0:4: ++%5hhi: 42:1:3:42: ++%*5hhi: 42:0:3: ++%5hhi: 0X2a:1:5:42: ++%*5hhi: 0X2a:0:5: ++%5hhi: 0x2A:1:5:42: ++%*5hhi: 0x2A:0:5: ++%5hhi: 052:1:4:42: ++%*5hhi: 052:0:4: ++%5hhi: 0B101010:1:6:5: ++%*5hhi: 0B101010:0:6: ++%5hhi: 0b101010:1:6:5: ++%*5hhi: 0b101010:0:6: ++%5hhi: 127:1:4:127: ++%*5hhi: 127:0:4: ++%5hhi: 0X7f:1:5:127: ++%*5hhi: 0X7f:0:5: ++%5hhi: 0x7F:1:5:127: ++%*5hhi: 0x7F:0:5: ++%5hhi: 0177:1:5:127: ++%*5hhi: 0177:0:5: ++%5hhi: 0B1111111:1:6:7: ++%*5hhi: 0B1111111:0:6: ++%5hhi: 0b1111111:1:6:7: ++%*5hhi: 0b1111111:0:6: ++%5hhi: 128:1:4:-128: ++%*5hhi: 128:0:4: ++%5hhi: 0X80:1:5:-128: ++%*5hhi: 0X80:0:5: ++%5hhi: 0x80:1:5:-128: ++%*5hhi: 0x80:0:5: ++%5hhi: 0200:1:5:-128: ++%*5hhi: 0200:0:5: ++%5hhi: 0B10000000:1:6:4: ++%*5hhi: 0B10000000:0:6: ++%5hhi: 0b10000000:1:6:4: ++%*5hhi: 0b10000000:0:6: ++%5hhi: 169:1:4:-87: ++%*5hhi: 169:0:4: ++%5hhi: 0Xa9:1:5:-87: ++%*5hhi: 0Xa9:0:5: ++%5hhi: 0xA9:1:5:-87: ++%*5hhi: 0xA9:0:5: ++%5hhi: 0251:1:5:-87: ++%*5hhi: 0251:0:5: ++%5hhi: 0B10101001:1:6:5: ++%*5hhi: 0B10101001:0:6: ++%5hhi: 0b10101001:1:6:5: ++%*5hhi: 0b10101001:0:6: ++%5hhi: +0:1:3:0: ++%*5hhi: +0:0:3: ++%5hhi: +0X0:1:5:0: ++%*5hhi: +0X0:0:5: ++%5hhi: +0x0:1:5:0: ++%*5hhi: +0x0:0:5: ++%5hhi: +00:1:4:0: ++%*5hhi: +00:0:4: ++%5hhi: +0B0:1:5:0: ++%*5hhi: +0B0:0:5: ++%5hhi: +0b0:1:5:0: ++%*5hhi: +0b0:0:5: ++%5hhi: +1:1:3:1: ++%*5hhi: +1:0:3: ++%5hhi: +0X1:1:5:1: ++%*5hhi: +0X1:0:5: ++%5hhi: +0x1:1:5:1: ++%*5hhi: +0x1:0:5: ++%5hhi: +01:1:4:1: ++%*5hhi: +01:0:4: ++%5hhi: +0B1:1:5:1: ++%*5hhi: +0B1:0:5: ++%5hhi: +0b1:1:5:1: ++%*5hhi: +0b1:0:5: ++%5hhi: +42:1:4:42: ++%*5hhi: +42:0:4: ++%5hhi: +0X2a:1:6:42: ++%*5hhi: +0X2a:0:6: ++%5hhi: +0x2A:1:6:42: ++%*5hhi: +0x2A:0:6: ++%5hhi: +052:1:5:42: ++%*5hhi: +052:0:5: ++%5hhi: +0B101010:1:6:2: ++%*5hhi: +0B101010:0:6: ++%5hhi: +0b101010:1:6:2: ++%*5hhi: +0b101010:0:6: ++%5hhi: +127:1:5:127: ++%*5hhi: +127:0:5: ++%5hhi: +0X7f:1:6:127: ++%*5hhi: +0X7f:0:6: ++%5hhi: +0x7F:1:6:127: ++%*5hhi: +0x7F:0:6: ++%5hhi: +0177:1:6:127: ++%*5hhi: +0177:0:6: ++%5hhi: +0B1111111:1:6:3: ++%*5hhi: +0B1111111:0:6: ++%5hhi: +0b1111111:1:6:3: ++%*5hhi: +0b1111111:0:6: ++%5hhi: +128:1:5:-128: ++%*5hhi: +128:0:5: ++%5hhi: +0X80:1:6:-128: ++%*5hhi: +0X80:0:6: ++%5hhi: +0x80:1:6:-128: ++%*5hhi: +0x80:0:6: ++%5hhi: +0200:1:6:-128: ++%*5hhi: +0200:0:6: ++%5hhi: +0B10000000:1:6:2: ++%*5hhi: +0B10000000:0:6: ++%5hhi: +0b10000000:1:6:2: ++%*5hhi: +0b10000000:0:6: ++%5hhi: +169:1:5:-87: ++%*5hhi: +169:0:5: ++%5hhi: +0Xa9:1:6:-87: ++%*5hhi: +0Xa9:0:6: ++%5hhi: +0xA9:1:6:-87: ++%*5hhi: +0xA9:0:6: ++%5hhi: +0251:1:6:-87: ++%*5hhi: +0251:0:6: ++%5hhi: +0B10101001:1:6:2: ++%*5hhi: +0B10101001:0:6: ++%5hhi: +0b10101001:1:6:2: ++%*5hhi: +0b10101001:0:6: +diff --git a/stdio-common/tst-scanf-format-character.h b/stdio-common/tst-scanf-format-character.h +new file mode 100644 +index 0000000000000000..b68a5e1f39687294 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-character.h +@@ -0,0 +1,130 @@ ++/* Test feature wrapper for formatted character input. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++ ++/* Reference data is a sequence of characters to match against ++ byte-wise. ++ ++ For the 's' conversion specifier the number of characters read ++ from input includes any leading white-space characters consumed ++ as well, so we also consider it a successful match when the ':' ++ character following the reference data matches a terminating null ++ character in the output produced by the 'scanf' family function ++ under test while the character count hasn't been exhausted yet. ++ ++ The buffer is preinitialized to contain repeating '\xa5' character ++ so as to catch missing data output. Also no data is expected to be ++ written beyond the character sequence received, which is verified ++ by checking the following character in the buffer to remain '\xa5'. */ ++ ++#define SCANF_BUFFER_SIZE 65536 ++ ++static struct support_next_to_fault ntf; ++ ++#define PREPARE initialize_value_init ++static void ++initialize_value_init (int argc, char **argv) ++{ ++ ntf = support_next_to_fault_allocate (SCANF_BUFFER_SIZE); ++} ++ ++static void __attribute__ ((destructor)) ++initialize_value_fini (void) ++{ ++ support_next_to_fault_free (&ntf); ++} ++ ++#define pointer_to_value(val) (val) ++ ++#define initialize_value(val) \ ++do \ ++ { \ ++ val = ntf.buffer; \ ++ memset (val, 0xa5, SCANF_BUFFER_SIZE); \ ++ } \ ++while (0) ++ ++#define verify_input(f, val, count, errp) \ ++({ \ ++ __label__ out, skip; \ ++ bool match = true; \ ++ int err = 0; \ ++ size_t i; \ ++ int ch; \ ++ \ ++ for (i = 0; i < count; i++) \ ++ { \ ++ ch = read_input (); \ ++ if (ch < 0) \ ++ { \ ++ err = ch; \ ++ goto out; \ ++ } \ ++ if (ch == ':' && val[i] == '\0' && f == 's') \ ++ goto skip; \ ++ if (ch != val[i]) \ ++ { \ ++ match = false; \ ++ goto out; \ ++ } \ ++ } \ ++ ch = read_input (); \ ++ if (ch < 0) \ ++ { \ ++ err = ch; \ ++ goto out; \ ++ } \ ++ \ ++skip: \ ++ if (f != 'c' && val[i++] != '\0') \ ++ { \ ++ err = OUTPUT_TERM; \ ++ goto out; \ ++ } \ ++ if (val[i] != '\xa5') \ ++ { \ ++ err = OUTPUT_OVERRUN; \ ++ goto out; \ ++ } \ ++ \ ++ while (ch != ':') \ ++ { \ ++ ch = read_input (); \ ++ if (ch < 0) \ ++ { \ ++ err = ch; \ ++ goto out; \ ++ } \ ++ match = false; \ ++ } \ ++ \ ++out: \ ++ if (err || !match) \ ++ { \ ++ printf ("error: %s:%d: input buffer: `", __FILE__, __LINE__); \ ++ for (size_t j = 0; j <= i; j++) \ ++ printf ("%c", val[j]); \ ++ printf ("'\n"); \ ++ } \ ++ \ ++ *errp = err; \ ++ match; \ ++}) +diff --git a/stdio-common/tst-scanf-format-integer.h b/stdio-common/tst-scanf-format-integer.h +new file mode 100644 +index 0000000000000000..28f91a431bb1e643 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-integer.h +@@ -0,0 +1,51 @@ ++/* Test feature wrapper for formatted integer input. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++/* Reference data is a signed decimal integer constant to compare against ++ arithmetically. */ ++ ++#define pointer_to_value(val) (&(val)) ++ ++#define initialize_value(val) \ ++ memset (&val, 0xa5, sizeof (val)) ++ ++#define verify_input(f, val, count, errp) \ ++({ \ ++ __label__ out; \ ++ bool match = true; \ ++ int err; \ ++ \ ++ UNSIGNED long long v = read_integer (&err); \ ++ if (err < 0) \ ++ goto out; \ ++ match = val == v; \ ++ \ ++out: \ ++ if (err || !match) \ ++ { \ ++ printf ("error: %s:%d: input: %016llx\n", \ ++ __FILE__, __LINE__, (long long) val); \ ++ printf ("error: %s:%d: value: %016llx\n", \ ++ __FILE__, __LINE__, v); \ ++ } \ ++ \ ++ *errp = err; \ ++ match; \ ++}) +diff --git a/stdio-common/tst-scanf-format-llong-d.input b/stdio-common/tst-scanf-format-llong-d.input +new file mode 100644 +index 0000000000000000..f027d1200d93bcf1 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-llong-d.input +@@ -0,0 +1,266 @@ ++%lld::0:-1: ++%*lld::0:-1: ++%lld:-9223372036867121486:1:20:-9223372036854775808: ++%*lld:-9223372036867121486:0:20: ++%lld:-9223372036854775809:1:20:-9223372036854775808: ++%*lld:-9223372036854775809:0:20: ++%lld:-9223372036854775808:1:20:-9223372036854775808: ++%*lld:-9223372036854775808:0:20: ++%lld:-123:1:4:-123: ++%*lld:-123:0:4: ++%lld:-1:1:2:-1: ++%*lld:-1:0:2: ++%lld:-0:1:2:0: ++%*lld:-0:0:2: ++%lld:0:1:1:0: ++%*lld:0:0:1: ++%lld:1:1:1:1: ++%*lld:1:0:1: ++%lld:42:1:2:42: ++%*lld:42:0:2: ++%lld:9223372036854775807:1:19:9223372036854775807: ++%*lld:9223372036854775807:0:19: ++%lld:9223372036854775808:1:19:9223372036854775807: ++%*lld:9223372036854775808:0:19: ++%lld:9223372036897200049:1:19:9223372036854775807: ++%*lld:9223372036897200049:0:19: ++%lld:+0:1:2:0: ++%*lld:+0:0:2: ++%lld:+1:1:2:1: ++%*lld:+1:0:2: ++%lld:+42:1:3:42: ++%*lld:+42:0:3: ++%lld:+9223372036854775807:1:20:9223372036854775807: ++%*lld:+9223372036854775807:0:20: ++%lld:+9223372036854775808:1:20:9223372036854775807: ++%*lld:+9223372036854775808:0:20: ++%lld:+9223372036897200049:1:20:9223372036854775807: ++%*lld:+9223372036897200049:0:20: ++%1lld::0:-1: ++%*1lld::0:-1: ++%1lld:-9223372036867121486:0:-1: ++%*1lld:-9223372036867121486:0:-1: ++%1lld:-9223372036854775809:0:-1: ++%*1lld:-9223372036854775809:0:-1: ++%1lld:-9223372036854775808:0:-1: ++%*1lld:-9223372036854775808:0:-1: ++%1lld:-123:0:-1: ++%*1lld:-123:0:-1: ++%1lld:-1:0:-1: ++%*1lld:-1:0:-1: ++%1lld:-0:0:-1: ++%*1lld:-0:0:-1: ++%1lld:0:1:1:0: ++%*1lld:0:0:1: ++%1lld:1:1:1:1: ++%*1lld:1:0:1: ++%1lld:42:1:1:4: ++%*1lld:42:0:1: ++%1lld:9223372036854775807:1:1:9: ++%*1lld:9223372036854775807:0:1: ++%1lld:9223372036854775808:1:1:9: ++%*1lld:9223372036854775808:0:1: ++%1lld:9223372036897200049:1:1:9: ++%*1lld:9223372036897200049:0:1: ++%1lld:+0:0:-1: ++%*1lld:+0:0:-1: ++%1lld:+1:0:-1: ++%*1lld:+1:0:-1: ++%1lld:+42:0:-1: ++%*1lld:+42:0:-1: ++%1lld:+9223372036854775807:0:-1: ++%*1lld:+9223372036854775807:0:-1: ++%1lld:+9223372036854775808:0:-1: ++%*1lld:+9223372036854775808:0:-1: ++%1lld:+9223372036897200049:0:-1: ++%*1lld:+9223372036897200049:0:-1: ++%2lld::0:-1: ++%*2lld::0:-1: ++%2lld:-9223372036867121486:1:2:-9: ++%*2lld:-9223372036867121486:0:2: ++%2lld:-9223372036854775809:1:2:-9: ++%*2lld:-9223372036854775809:0:2: ++%2lld:-9223372036854775808:1:2:-9: ++%*2lld:-9223372036854775808:0:2: ++%2lld:-123:1:2:-1: ++%*2lld:-123:0:2: ++%2lld:-1:1:2:-1: ++%*2lld:-1:0:2: ++%2lld:-0:1:2:0: ++%*2lld:-0:0:2: ++%2lld:0:1:1:0: ++%*2lld:0:0:1: ++%2lld:1:1:1:1: ++%*2lld:1:0:1: ++%2lld:42:1:2:42: ++%*2lld:42:0:2: ++%2lld:9223372036854775807:1:2:92: ++%*2lld:9223372036854775807:0:2: ++%2lld:9223372036854775808:1:2:92: ++%*2lld:9223372036854775808:0:2: ++%2lld:9223372036897200049:1:2:92: ++%*2lld:9223372036897200049:0:2: ++%2lld:+0:1:2:0: ++%*2lld:+0:0:2: ++%2lld:+1:1:2:1: ++%*2lld:+1:0:2: ++%2lld:+42:1:2:4: ++%*2lld:+42:0:2: ++%2lld:+9223372036854775807:1:2:9: ++%*2lld:+9223372036854775807:0:2: ++%2lld:+9223372036854775808:1:2:9: ++%*2lld:+9223372036854775808:0:2: ++%2lld:+9223372036897200049:1:2:9: ++%*2lld:+9223372036897200049:0:2: ++%15lld::0:-1: ++%*15lld::0:-1: ++%15lld:-9223372036867121486:1:15:-92233720368671: ++%*15lld:-9223372036867121486:0:15: ++%15lld:-9223372036854775809:1:15:-92233720368547: ++%*15lld:-9223372036854775809:0:15: ++%15lld:-9223372036854775808:1:15:-92233720368547: ++%*15lld:-9223372036854775808:0:15: ++%15lld:-123:1:4:-123: ++%*15lld:-123:0:4: ++%15lld:-1:1:2:-1: ++%*15lld:-1:0:2: ++%15lld:-0:1:2:0: ++%*15lld:-0:0:2: ++%15lld:0:1:1:0: ++%*15lld:0:0:1: ++%15lld:1:1:1:1: ++%*15lld:1:0:1: ++%15lld:42:1:2:42: ++%*15lld:42:0:2: ++%15lld:9223372036854775807:1:15:922337203685477: ++%*15lld:9223372036854775807:0:15: ++%15lld:9223372036854775808:1:15:922337203685477: ++%*15lld:9223372036854775808:0:15: ++%15lld:9223372036897200049:1:15:922337203689720: ++%*15lld:9223372036897200049:0:15: ++%15lld:+0:1:2:0: ++%*15lld:+0:0:2: ++%15lld:+1:1:2:1: ++%*15lld:+1:0:2: ++%15lld:+42:1:3:42: ++%*15lld:+42:0:3: ++%15lld:+9223372036854775807:1:15:92233720368547: ++%*15lld:+9223372036854775807:0:15: ++%15lld:+9223372036854775808:1:15:92233720368547: ++%*15lld:+9223372036854775808:0:15: ++%15lld:+9223372036897200049:1:15:92233720368972: ++%*15lld:+9223372036897200049:0:15: ++%25lld::0:-1: ++%*25lld::0:-1: ++%25lld:-9223372036867121486:1:20:-9223372036854775808: ++%*25lld:-9223372036867121486:0:20: ++%25lld:-9223372036854775809:1:20:-9223372036854775808: ++%*25lld:-9223372036854775809:0:20: ++%25lld:-9223372036854775808:1:20:-9223372036854775808: ++%*25lld:-9223372036854775808:0:20: ++%25lld:-123:1:4:-123: ++%*25lld:-123:0:4: ++%25lld:-1:1:2:-1: ++%*25lld:-1:0:2: ++%25lld:-0:1:2:0: ++%*25lld:-0:0:2: ++%25lld:0:1:1:0: ++%*25lld:0:0:1: ++%25lld:1:1:1:1: ++%*25lld:1:0:1: ++%25lld:42:1:2:42: ++%*25lld:42:0:2: ++%25lld:9223372036854775807:1:19:9223372036854775807: ++%*25lld:9223372036854775807:0:19: ++%25lld:9223372036854775808:1:19:9223372036854775807: ++%*25lld:9223372036854775808:0:19: ++%25lld:9223372036897200049:1:19:9223372036854775807: ++%*25lld:9223372036897200049:0:19: ++%25lld:+0:1:2:0: ++%*25lld:+0:0:2: ++%25lld:+1:1:2:1: ++%*25lld:+1:0:2: ++%25lld:+42:1:3:42: ++%*25lld:+42:0:3: ++%25lld:+9223372036854775807:1:20:9223372036854775807: ++%*25lld:+9223372036854775807:0:20: ++%25lld:+9223372036854775808:1:20:9223372036854775807: ++%*25lld:+9223372036854775808:0:20: ++%25lld:+9223372036897200049:1:20:9223372036854775807: ++%*25lld:+9223372036897200049:0:20: ++%2lld: :0:-1: ++%*2lld: :0:-1: ++%2lld: -9223372036867121486:1:3:-9: ++%*2lld: -9223372036867121486:0:3: ++%2lld: -9223372036854775809:1:3:-9: ++%*2lld: -9223372036854775809:0:3: ++%2lld: -9223372036854775808:1:3:-9: ++%*2lld: -9223372036854775808:0:3: ++%2lld: -123:1:3:-1: ++%*2lld: -123:0:3: ++%2lld: -1:1:3:-1: ++%*2lld: -1:0:3: ++%2lld: -0:1:3:0: ++%*2lld: -0:0:3: ++%2lld: 0:1:2:0: ++%*2lld: 0:0:2: ++%2lld: 1:1:2:1: ++%*2lld: 1:0:2: ++%2lld: 42:1:3:42: ++%*2lld: 42:0:3: ++%2lld: 9223372036854775807:1:3:92: ++%*2lld: 9223372036854775807:0:3: ++%2lld: 9223372036854775808:1:3:92: ++%*2lld: 9223372036854775808:0:3: ++%2lld: 9223372036897200049:1:3:92: ++%*2lld: 9223372036897200049:0:3: ++%2lld: +0:1:3:0: ++%*2lld: +0:0:3: ++%2lld: +1:1:3:1: ++%*2lld: +1:0:3: ++%2lld: +42:1:3:4: ++%*2lld: +42:0:3: ++%2lld: +9223372036854775807:1:3:9: ++%*2lld: +9223372036854775807:0:3: ++%2lld: +9223372036854775808:1:3:9: ++%*2lld: +9223372036854775808:0:3: ++%2lld: +9223372036897200049:1:3:9: ++%*2lld: +9223372036897200049:0:3: ++%25lld: :0:-1: ++%*25lld: :0:-1: ++%25lld: -9223372036867121486:1:21:-9223372036854775808: ++%*25lld: -9223372036867121486:0:21: ++%25lld: -9223372036854775809:1:21:-9223372036854775808: ++%*25lld: -9223372036854775809:0:21: ++%25lld: -9223372036854775808:1:21:-9223372036854775808: ++%*25lld: -9223372036854775808:0:21: ++%25lld: -123:1:5:-123: ++%*25lld: -123:0:5: ++%25lld: -1:1:3:-1: ++%*25lld: -1:0:3: ++%25lld: -0:1:3:0: ++%*25lld: -0:0:3: ++%25lld: 0:1:2:0: ++%*25lld: 0:0:2: ++%25lld: 1:1:2:1: ++%*25lld: 1:0:2: ++%25lld: 42:1:3:42: ++%*25lld: 42:0:3: ++%25lld: 9223372036854775807:1:20:9223372036854775807: ++%*25lld: 9223372036854775807:0:20: ++%25lld: 9223372036854775808:1:20:9223372036854775807: ++%*25lld: 9223372036854775808:0:20: ++%25lld: 9223372036897200049:1:20:9223372036854775807: ++%*25lld: 9223372036897200049:0:20: ++%25lld: +0:1:3:0: ++%*25lld: +0:0:3: ++%25lld: +1:1:3:1: ++%*25lld: +1:0:3: ++%25lld: +42:1:4:42: ++%*25lld: +42:0:4: ++%25lld: +9223372036854775807:1:21:9223372036854775807: ++%*25lld: +9223372036854775807:0:21: ++%25lld: +9223372036854775808:1:21:9223372036854775807: ++%*25lld: +9223372036854775808:0:21: ++%25lld: +9223372036897200049:1:21:9223372036854775807: ++%*25lld: +9223372036897200049:0:21: +diff --git a/stdio-common/tst-scanf-format-llong-i.input b/stdio-common/tst-scanf-format-llong-i.input +new file mode 100644 +index 0000000000000000..f63e35d099c4a330 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-llong-i.input +@@ -0,0 +1,1526 @@ ++%lli::0:-1: ++%*lli::0:-1: ++%lli:-9223372036867121486:1:20:-9223372036854775808: ++%*lli:-9223372036867121486:0:20: ++%lli:-0X8000000000bc614e:1:19:-9223372036854775808: ++%*lli:-0X8000000000bc614e:0:19: ++%lli:-0x8000000000BC614E:1:19:-9223372036854775808: ++%*lli:-0x8000000000BC614E:0:19: ++%lli:-01000000000000057060516:1:24:-9223372036854775808: ++%*lli:-01000000000000057060516:0:24: ++%lli:-0B1000000000000000000000000000000000000000101111000110000101001110:1:67:-9223372036854775808: ++%*lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:67: ++%lli:-0b1000000000000000000000000000000000000000101111000110000101001110:1:67:-9223372036854775808: ++%*lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:67: ++%lli:-9223372036854775809:1:20:-9223372036854775808: ++%*lli:-9223372036854775809:0:20: ++%lli:-0X8000000000000001:1:19:-9223372036854775808: ++%*lli:-0X8000000000000001:0:19: ++%lli:-0x8000000000000001:1:19:-9223372036854775808: ++%*lli:-0x8000000000000001:0:19: ++%lli:-01000000000000000000001:1:24:-9223372036854775808: ++%*lli:-01000000000000000000001:0:24: ++%lli:-0B1000000000000000000000000000000000000000000000000000000000000001:1:67:-9223372036854775808: ++%*lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:67: ++%lli:-0b1000000000000000000000000000000000000000000000000000000000000001:1:67:-9223372036854775808: ++%*lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:67: ++%lli:-9223372036854775808:1:20:-9223372036854775808: ++%*lli:-9223372036854775808:0:20: ++%lli:-0X8000000000000000:1:19:-9223372036854775808: ++%*lli:-0X8000000000000000:0:19: ++%lli:-0x8000000000000000:1:19:-9223372036854775808: ++%*lli:-0x8000000000000000:0:19: ++%lli:-01000000000000000000000:1:24:-9223372036854775808: ++%*lli:-01000000000000000000000:0:24: ++%lli:-0B1000000000000000000000000000000000000000000000000000000000000000:1:67:-9223372036854775808: ++%*lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:67: ++%lli:-0b1000000000000000000000000000000000000000000000000000000000000000:1:67:-9223372036854775808: ++%*lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:67: ++%lli:-123:1:4:-123: ++%*lli:-123:0:4: ++%lli:-0X7b:1:5:-123: ++%*lli:-0X7b:0:5: ++%lli:-0x7B:1:5:-123: ++%*lli:-0x7B:0:5: ++%lli:-0173:1:5:-123: ++%*lli:-0173:0:5: ++%lli:-0B1111011:1:10:-123: ++%*lli:-0B1111011:0:10: ++%lli:-0b1111011:1:10:-123: ++%*lli:-0b1111011:0:10: ++%lli:-1:1:2:-1: ++%*lli:-1:0:2: ++%lli:-0X1:1:4:-1: ++%*lli:-0X1:0:4: ++%lli:-0x1:1:4:-1: ++%*lli:-0x1:0:4: ++%lli:-01:1:3:-1: ++%*lli:-01:0:3: ++%lli:-0B1:1:4:-1: ++%*lli:-0B1:0:4: ++%lli:-0b1:1:4:-1: ++%*lli:-0b1:0:4: ++%lli:-0:1:2:0: ++%*lli:-0:0:2: ++%lli:-0X0:1:4:0: ++%*lli:-0X0:0:4: ++%lli:-0x0:1:4:0: ++%*lli:-0x0:0:4: ++%lli:-00:1:3:0: ++%*lli:-00:0:3: ++%lli:-0B0:1:4:0: ++%*lli:-0B0:0:4: ++%lli:-0b0:1:4:0: ++%*lli:-0b0:0:4: ++%lli:0:1:1:0: ++%*lli:0:0:1: ++%lli:0X0:1:3:0: ++%*lli:0X0:0:3: ++%lli:0x0:1:3:0: ++%*lli:0x0:0:3: ++%lli:00:1:2:0: ++%*lli:00:0:2: ++%lli:0B0:1:3:0: ++%*lli:0B0:0:3: ++%lli:0b0:1:3:0: ++%*lli:0b0:0:3: ++%lli:1:1:1:1: ++%*lli:1:0:1: ++%lli:0X1:1:3:1: ++%*lli:0X1:0:3: ++%lli:0x1:1:3:1: ++%*lli:0x1:0:3: ++%lli:01:1:2:1: ++%*lli:01:0:2: ++%lli:0B1:1:3:1: ++%*lli:0B1:0:3: ++%lli:0b1:1:3:1: ++%*lli:0b1:0:3: ++%lli:42:1:2:42: ++%*lli:42:0:2: ++%lli:0X2a:1:4:42: ++%*lli:0X2a:0:4: ++%lli:0x2A:1:4:42: ++%*lli:0x2A:0:4: ++%lli:052:1:3:42: ++%*lli:052:0:3: ++%lli:0B101010:1:8:42: ++%*lli:0B101010:0:8: ++%lli:0b101010:1:8:42: ++%*lli:0b101010:0:8: ++%lli:9223372036854775807:1:19:9223372036854775807: ++%*lli:9223372036854775807:0:19: ++%lli:0X7fffffffffffffff:1:18:9223372036854775807: ++%*lli:0X7fffffffffffffff:0:18: ++%lli:0x7FFFFFFFFFFFFFFF:1:18:9223372036854775807: ++%*lli:0x7FFFFFFFFFFFFFFF:0:18: ++%lli:0777777777777777777777:1:22:9223372036854775807: ++%*lli:0777777777777777777777:0:22: ++%lli:0B111111111111111111111111111111111111111111111111111111111111111:1:65:9223372036854775807: ++%*lli:0B111111111111111111111111111111111111111111111111111111111111111:0:65: ++%lli:0b111111111111111111111111111111111111111111111111111111111111111:1:65:9223372036854775807: ++%*lli:0b111111111111111111111111111111111111111111111111111111111111111:0:65: ++%lli:9223372036854775808:1:19:9223372036854775807: ++%*lli:9223372036854775808:0:19: ++%lli:0X8000000000000000:1:18:9223372036854775807: ++%*lli:0X8000000000000000:0:18: ++%lli:0x8000000000000000:1:18:9223372036854775807: ++%*lli:0x8000000000000000:0:18: ++%lli:01000000000000000000000:1:23:9223372036854775807: ++%*lli:01000000000000000000000:0:23: ++%lli:0B1000000000000000000000000000000000000000000000000000000000000000:1:66:9223372036854775807: ++%*lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:66: ++%lli:0b1000000000000000000000000000000000000000000000000000000000000000:1:66:9223372036854775807: ++%*lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:66: ++%lli:9223372036897200049:1:19:9223372036854775807: ++%*lli:9223372036897200049:0:19: ++%lli:0X80000000028757b1:1:18:9223372036854775807: ++%*lli:0X80000000028757b1:0:18: ++%lli:0x80000000028757B1:1:18:9223372036854775807: ++%*lli:0x80000000028757B1:0:18: ++%lli:01000000000000241653661:1:23:9223372036854775807: ++%*lli:01000000000000241653661:0:23: ++%lli:0B1000000000000000000000000000000000000010100001110101011110110001:1:66:9223372036854775807: ++%*lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:66: ++%lli:0b1000000000000000000000000000000000000010100001110101011110110001:1:66:9223372036854775807: ++%*lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:66: ++%lli:+0:1:2:0: ++%*lli:+0:0:2: ++%lli:+0X0:1:4:0: ++%*lli:+0X0:0:4: ++%lli:+0x0:1:4:0: ++%*lli:+0x0:0:4: ++%lli:+00:1:3:0: ++%*lli:+00:0:3: ++%lli:+0B0:1:4:0: ++%*lli:+0B0:0:4: ++%lli:+0b0:1:4:0: ++%*lli:+0b0:0:4: ++%lli:+1:1:2:1: ++%*lli:+1:0:2: ++%lli:+0X1:1:4:1: ++%*lli:+0X1:0:4: ++%lli:+0x1:1:4:1: ++%*lli:+0x1:0:4: ++%lli:+01:1:3:1: ++%*lli:+01:0:3: ++%lli:+0B1:1:4:1: ++%*lli:+0B1:0:4: ++%lli:+0b1:1:4:1: ++%*lli:+0b1:0:4: ++%lli:+42:1:3:42: ++%*lli:+42:0:3: ++%lli:+0X2a:1:5:42: ++%*lli:+0X2a:0:5: ++%lli:+0x2A:1:5:42: ++%*lli:+0x2A:0:5: ++%lli:+052:1:4:42: ++%*lli:+052:0:4: ++%lli:+0B101010:1:9:42: ++%*lli:+0B101010:0:9: ++%lli:+0b101010:1:9:42: ++%*lli:+0b101010:0:9: ++%lli:+9223372036854775807:1:20:9223372036854775807: ++%*lli:+9223372036854775807:0:20: ++%lli:+0X7fffffffffffffff:1:19:9223372036854775807: ++%*lli:+0X7fffffffffffffff:0:19: ++%lli:+0x7FFFFFFFFFFFFFFF:1:19:9223372036854775807: ++%*lli:+0x7FFFFFFFFFFFFFFF:0:19: ++%lli:+0777777777777777777777:1:23:9223372036854775807: ++%*lli:+0777777777777777777777:0:23: ++%lli:+0B111111111111111111111111111111111111111111111111111111111111111:1:66:9223372036854775807: ++%*lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:66: ++%lli:+0b111111111111111111111111111111111111111111111111111111111111111:1:66:9223372036854775807: ++%*lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:66: ++%lli:+9223372036854775808:1:20:9223372036854775807: ++%*lli:+9223372036854775808:0:20: ++%lli:+0X8000000000000000:1:19:9223372036854775807: ++%*lli:+0X8000000000000000:0:19: ++%lli:+0x8000000000000000:1:19:9223372036854775807: ++%*lli:+0x8000000000000000:0:19: ++%lli:+01000000000000000000000:1:24:9223372036854775807: ++%*lli:+01000000000000000000000:0:24: ++%lli:+0B1000000000000000000000000000000000000000000000000000000000000000:1:67:9223372036854775807: ++%*lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:67: ++%lli:+0b1000000000000000000000000000000000000000000000000000000000000000:1:67:9223372036854775807: ++%*lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:67: ++%lli:+9223372036897200049:1:20:9223372036854775807: ++%*lli:+9223372036897200049:0:20: ++%lli:+0X80000000028757b1:1:19:9223372036854775807: ++%*lli:+0X80000000028757b1:0:19: ++%lli:+0x80000000028757B1:1:19:9223372036854775807: ++%*lli:+0x80000000028757B1:0:19: ++%lli:+01000000000000241653661:1:24:9223372036854775807: ++%*lli:+01000000000000241653661:0:24: ++%lli:+0B1000000000000000000000000000000000000010100001110101011110110001:1:67:9223372036854775807: ++%*lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:67: ++%lli:+0b1000000000000000000000000000000000000010100001110101011110110001:1:67:9223372036854775807: ++%*lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:67: ++%1lli::0:-1: ++%*1lli::0:-1: ++%1lli:-9223372036867121486:0:-1: ++%*1lli:-9223372036867121486:0:-1: ++%1lli:-0X8000000000bc614e:0:-1: ++%*1lli:-0X8000000000bc614e:0:-1: ++%1lli:-0x8000000000BC614E:0:-1: ++%*1lli:-0x8000000000BC614E:0:-1: ++%1lli:-01000000000000057060516:0:-1: ++%*1lli:-01000000000000057060516:0:-1: ++%1lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:-1: ++%*1lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:-1: ++%1lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:-1: ++%*1lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:-1: ++%1lli:-9223372036854775809:0:-1: ++%*1lli:-9223372036854775809:0:-1: ++%1lli:-0X8000000000000001:0:-1: ++%*1lli:-0X8000000000000001:0:-1: ++%1lli:-0x8000000000000001:0:-1: ++%*1lli:-0x8000000000000001:0:-1: ++%1lli:-01000000000000000000001:0:-1: ++%*1lli:-01000000000000000000001:0:-1: ++%1lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:-1: ++%*1lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:-1: ++%1lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:-1: ++%*1lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:-1: ++%1lli:-9223372036854775808:0:-1: ++%*1lli:-9223372036854775808:0:-1: ++%1lli:-0X8000000000000000:0:-1: ++%*1lli:-0X8000000000000000:0:-1: ++%1lli:-0x8000000000000000:0:-1: ++%*1lli:-0x8000000000000000:0:-1: ++%1lli:-01000000000000000000000:0:-1: ++%*1lli:-01000000000000000000000:0:-1: ++%1lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1lli:-123:0:-1: ++%*1lli:-123:0:-1: ++%1lli:-0X7b:0:-1: ++%*1lli:-0X7b:0:-1: ++%1lli:-0x7B:0:-1: ++%*1lli:-0x7B:0:-1: ++%1lli:-0173:0:-1: ++%*1lli:-0173:0:-1: ++%1lli:-0B1111011:0:-1: ++%*1lli:-0B1111011:0:-1: ++%1lli:-0b1111011:0:-1: ++%*1lli:-0b1111011:0:-1: ++%1lli:-1:0:-1: ++%*1lli:-1:0:-1: ++%1lli:-0X1:0:-1: ++%*1lli:-0X1:0:-1: ++%1lli:-0x1:0:-1: ++%*1lli:-0x1:0:-1: ++%1lli:-01:0:-1: ++%*1lli:-01:0:-1: ++%1lli:-0B1:0:-1: ++%*1lli:-0B1:0:-1: ++%1lli:-0b1:0:-1: ++%*1lli:-0b1:0:-1: ++%1lli:-0:0:-1: ++%*1lli:-0:0:-1: ++%1lli:-0X0:0:-1: ++%*1lli:-0X0:0:-1: ++%1lli:-0x0:0:-1: ++%*1lli:-0x0:0:-1: ++%1lli:-00:0:-1: ++%*1lli:-00:0:-1: ++%1lli:-0B0:0:-1: ++%*1lli:-0B0:0:-1: ++%1lli:-0b0:0:-1: ++%*1lli:-0b0:0:-1: ++%1lli:0:1:1:0: ++%*1lli:0:0:1: ++%1lli:0X0:1:1:0: ++%*1lli:0X0:0:1: ++%1lli:0x0:1:1:0: ++%*1lli:0x0:0:1: ++%1lli:00:1:1:0: ++%*1lli:00:0:1: ++%1lli:0B0:1:1:0: ++%*1lli:0B0:0:1: ++%1lli:0b0:1:1:0: ++%*1lli:0b0:0:1: ++%1lli:1:1:1:1: ++%*1lli:1:0:1: ++%1lli:0X1:1:1:0: ++%*1lli:0X1:0:1: ++%1lli:0x1:1:1:0: ++%*1lli:0x1:0:1: ++%1lli:01:1:1:0: ++%*1lli:01:0:1: ++%1lli:0B1:1:1:0: ++%*1lli:0B1:0:1: ++%1lli:0b1:1:1:0: ++%*1lli:0b1:0:1: ++%1lli:42:1:1:4: ++%*1lli:42:0:1: ++%1lli:0X2a:1:1:0: ++%*1lli:0X2a:0:1: ++%1lli:0x2A:1:1:0: ++%*1lli:0x2A:0:1: ++%1lli:052:1:1:0: ++%*1lli:052:0:1: ++%1lli:0B101010:1:1:0: ++%*1lli:0B101010:0:1: ++%1lli:0b101010:1:1:0: ++%*1lli:0b101010:0:1: ++%1lli:9223372036854775807:1:1:9: ++%*1lli:9223372036854775807:0:1: ++%1lli:0X7fffffffffffffff:1:1:0: ++%*1lli:0X7fffffffffffffff:0:1: ++%1lli:0x7FFFFFFFFFFFFFFF:1:1:0: ++%*1lli:0x7FFFFFFFFFFFFFFF:0:1: ++%1lli:0777777777777777777777:1:1:0: ++%*1lli:0777777777777777777777:0:1: ++%1lli:0B111111111111111111111111111111111111111111111111111111111111111:1:1:0: ++%*1lli:0B111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1lli:0b111111111111111111111111111111111111111111111111111111111111111:1:1:0: ++%*1lli:0b111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1lli:9223372036854775808:1:1:9: ++%*1lli:9223372036854775808:0:1: ++%1lli:0X8000000000000000:1:1:0: ++%*1lli:0X8000000000000000:0:1: ++%1lli:0x8000000000000000:1:1:0: ++%*1lli:0x8000000000000000:0:1: ++%1lli:01000000000000000000000:1:1:0: ++%*1lli:01000000000000000000000:0:1: ++%1lli:0B1000000000000000000000000000000000000000000000000000000000000000:1:1:0: ++%*1lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1lli:0b1000000000000000000000000000000000000000000000000000000000000000:1:1:0: ++%*1lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1lli:9223372036897200049:1:1:9: ++%*1lli:9223372036897200049:0:1: ++%1lli:0X80000000028757b1:1:1:0: ++%*1lli:0X80000000028757b1:0:1: ++%1lli:0x80000000028757B1:1:1:0: ++%*1lli:0x80000000028757B1:0:1: ++%1lli:01000000000000241653661:1:1:0: ++%*1lli:01000000000000241653661:0:1: ++%1lli:0B1000000000000000000000000000000000000010100001110101011110110001:1:1:0: ++%*1lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1lli:0b1000000000000000000000000000000000000010100001110101011110110001:1:1:0: ++%*1lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1lli:+0:0:-1: ++%*1lli:+0:0:-1: ++%1lli:+0X0:0:-1: ++%*1lli:+0X0:0:-1: ++%1lli:+0x0:0:-1: ++%*1lli:+0x0:0:-1: ++%1lli:+00:0:-1: ++%*1lli:+00:0:-1: ++%1lli:+0B0:0:-1: ++%*1lli:+0B0:0:-1: ++%1lli:+0b0:0:-1: ++%*1lli:+0b0:0:-1: ++%1lli:+1:0:-1: ++%*1lli:+1:0:-1: ++%1lli:+0X1:0:-1: ++%*1lli:+0X1:0:-1: ++%1lli:+0x1:0:-1: ++%*1lli:+0x1:0:-1: ++%1lli:+01:0:-1: ++%*1lli:+01:0:-1: ++%1lli:+0B1:0:-1: ++%*1lli:+0B1:0:-1: ++%1lli:+0b1:0:-1: ++%*1lli:+0b1:0:-1: ++%1lli:+42:0:-1: ++%*1lli:+42:0:-1: ++%1lli:+0X2a:0:-1: ++%*1lli:+0X2a:0:-1: ++%1lli:+0x2A:0:-1: ++%*1lli:+0x2A:0:-1: ++%1lli:+052:0:-1: ++%*1lli:+052:0:-1: ++%1lli:+0B101010:0:-1: ++%*1lli:+0B101010:0:-1: ++%1lli:+0b101010:0:-1: ++%*1lli:+0b101010:0:-1: ++%1lli:+9223372036854775807:0:-1: ++%*1lli:+9223372036854775807:0:-1: ++%1lli:+0X7fffffffffffffff:0:-1: ++%*1lli:+0X7fffffffffffffff:0:-1: ++%1lli:+0x7FFFFFFFFFFFFFFF:0:-1: ++%*1lli:+0x7FFFFFFFFFFFFFFF:0:-1: ++%1lli:+0777777777777777777777:0:-1: ++%*1lli:+0777777777777777777777:0:-1: ++%1lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1lli:+9223372036854775808:0:-1: ++%*1lli:+9223372036854775808:0:-1: ++%1lli:+0X8000000000000000:0:-1: ++%*1lli:+0X8000000000000000:0:-1: ++%1lli:+0x8000000000000000:0:-1: ++%*1lli:+0x8000000000000000:0:-1: ++%1lli:+01000000000000000000000:0:-1: ++%*1lli:+01000000000000000000000:0:-1: ++%1lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1lli:+9223372036897200049:0:-1: ++%*1lli:+9223372036897200049:0:-1: ++%1lli:+0X80000000028757b1:0:-1: ++%*1lli:+0X80000000028757b1:0:-1: ++%1lli:+0x80000000028757B1:0:-1: ++%*1lli:+0x80000000028757B1:0:-1: ++%1lli:+01000000000000241653661:0:-1: ++%*1lli:+01000000000000241653661:0:-1: ++%1lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%1lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2lli::0:-1: ++%*2lli::0:-1: ++%2lli:-9223372036867121486:1:2:-9: ++%*2lli:-9223372036867121486:0:2: ++%2lli:-0X8000000000bc614e:1:2:0: ++%*2lli:-0X8000000000bc614e:0:2: ++%2lli:-0x8000000000BC614E:1:2:0: ++%*2lli:-0x8000000000BC614E:0:2: ++%2lli:-01000000000000057060516:1:2:0: ++%*2lli:-01000000000000057060516:0:2: ++%2lli:-0B1000000000000000000000000000000000000000101111000110000101001110:1:2:0: ++%*2lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:2: ++%2lli:-0b1000000000000000000000000000000000000000101111000110000101001110:1:2:0: ++%*2lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:2: ++%2lli:-9223372036854775809:1:2:-9: ++%*2lli:-9223372036854775809:0:2: ++%2lli:-0X8000000000000001:1:2:0: ++%*2lli:-0X8000000000000001:0:2: ++%2lli:-0x8000000000000001:1:2:0: ++%*2lli:-0x8000000000000001:0:2: ++%2lli:-01000000000000000000001:1:2:0: ++%*2lli:-01000000000000000000001:0:2: ++%2lli:-0B1000000000000000000000000000000000000000000000000000000000000001:1:2:0: ++%*2lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:2: ++%2lli:-0b1000000000000000000000000000000000000000000000000000000000000001:1:2:0: ++%*2lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:2: ++%2lli:-9223372036854775808:1:2:-9: ++%*2lli:-9223372036854775808:0:2: ++%2lli:-0X8000000000000000:1:2:0: ++%*2lli:-0X8000000000000000:0:2: ++%2lli:-0x8000000000000000:1:2:0: ++%*2lli:-0x8000000000000000:0:2: ++%2lli:-01000000000000000000000:1:2:0: ++%*2lli:-01000000000000000000000:0:2: ++%2lli:-0B1000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2lli:-0b1000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2lli:-123:1:2:-1: ++%*2lli:-123:0:2: ++%2lli:-0X7b:1:2:0: ++%*2lli:-0X7b:0:2: ++%2lli:-0x7B:1:2:0: ++%*2lli:-0x7B:0:2: ++%2lli:-0173:1:2:0: ++%*2lli:-0173:0:2: ++%2lli:-0B1111011:1:2:0: ++%*2lli:-0B1111011:0:2: ++%2lli:-0b1111011:1:2:0: ++%*2lli:-0b1111011:0:2: ++%2lli:-1:1:2:-1: ++%*2lli:-1:0:2: ++%2lli:-0X1:1:2:0: ++%*2lli:-0X1:0:2: ++%2lli:-0x1:1:2:0: ++%*2lli:-0x1:0:2: ++%2lli:-01:1:2:0: ++%*2lli:-01:0:2: ++%2lli:-0B1:1:2:0: ++%*2lli:-0B1:0:2: ++%2lli:-0b1:1:2:0: ++%*2lli:-0b1:0:2: ++%2lli:-0:1:2:0: ++%*2lli:-0:0:2: ++%2lli:-0X0:1:2:0: ++%*2lli:-0X0:0:2: ++%2lli:-0x0:1:2:0: ++%*2lli:-0x0:0:2: ++%2lli:-00:1:2:0: ++%*2lli:-00:0:2: ++%2lli:-0B0:1:2:0: ++%*2lli:-0B0:0:2: ++%2lli:-0b0:1:2:0: ++%*2lli:-0b0:0:2: ++%2lli:0:1:1:0: ++%*2lli:0:0:1: ++# BZ12701 %2lli:0X0:0:-1: ++# BZ12701 %*2lli:0X0:0:-1: ++# BZ12701 %2lli:0x0:0:-1: ++# BZ12701 %*2lli:0x0:0:-1: ++%2lli:00:1:2:0: ++%*2lli:00:0:2: ++# BZ12701 %2lli:0B0:0:-1: ++# BZ12701 %*2lli:0B0:0:-1: ++# BZ12701 %2lli:0b0:0:-1: ++# BZ12701 %*2lli:0b0:0:-1: ++%2lli:1:1:1:1: ++%*2lli:1:0:1: ++# BZ12701 %2lli:0X1:0:-1: ++# BZ12701 %*2lli:0X1:0:-1: ++# BZ12701 %2lli:0x1:0:-1: ++# BZ12701 %*2lli:0x1:0:-1: ++%2lli:01:1:2:1: ++%*2lli:01:0:2: ++# BZ12701 %2lli:0B1:0:-1: ++# BZ12701 %*2lli:0B1:0:-1: ++# BZ12701 %2lli:0b1:0:-1: ++# BZ12701 %*2lli:0b1:0:-1: ++%2lli:42:1:2:42: ++%*2lli:42:0:2: ++# BZ12701 %2lli:0X2a:0:-1: ++# BZ12701 %*2lli:0X2a:0:-1: ++# BZ12701 %2lli:0x2A:0:-1: ++# BZ12701 %*2lli:0x2A:0:-1: ++%2lli:052:1:2:5: ++%*2lli:052:0:2: ++# BZ12701 %2lli:0B101010:0:-1: ++# BZ12701 %*2lli:0B101010:0:-1: ++# BZ12701 %2lli:0b101010:0:-1: ++# BZ12701 %*2lli:0b101010:0:-1: ++%2lli:9223372036854775807:1:2:92: ++%*2lli:9223372036854775807:0:2: ++# BZ12701 %2lli:0X7fffffffffffffff:0:-1: ++# BZ12701 %*2lli:0X7fffffffffffffff:0:-1: ++# BZ12701 %2lli:0x7FFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2lli:0x7FFFFFFFFFFFFFFF:0:-1: ++%2lli:0777777777777777777777:1:2:7: ++%*2lli:0777777777777777777777:0:2: ++# BZ12701 %2lli:0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2lli:0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %2lli:0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2lli:0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%2lli:9223372036854775808:1:2:92: ++%*2lli:9223372036854775808:0:2: ++# BZ12701 %2lli:0X8000000000000000:0:-1: ++# BZ12701 %*2lli:0X8000000000000000:0:-1: ++# BZ12701 %2lli:0x8000000000000000:0:-1: ++# BZ12701 %*2lli:0x8000000000000000:0:-1: ++%2lli:01000000000000000000000:1:2:1: ++%*2lli:01000000000000000000000:0:2: ++# BZ12701 %2lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %2lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%2lli:9223372036897200049:1:2:92: ++%*2lli:9223372036897200049:0:2: ++# BZ12701 %2lli:0X80000000028757b1:0:-1: ++# BZ12701 %*2lli:0X80000000028757b1:0:-1: ++# BZ12701 %2lli:0x80000000028757B1:0:-1: ++# BZ12701 %*2lli:0x80000000028757B1:0:-1: ++%2lli:01000000000000241653661:1:2:1: ++%*2lli:01000000000000241653661:0:2: ++# BZ12701 %2lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %2lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2lli:+0:1:2:0: ++%*2lli:+0:0:2: ++%2lli:+0X0:1:2:0: ++%*2lli:+0X0:0:2: ++%2lli:+0x0:1:2:0: ++%*2lli:+0x0:0:2: ++%2lli:+00:1:2:0: ++%*2lli:+00:0:2: ++%2lli:+0B0:1:2:0: ++%*2lli:+0B0:0:2: ++%2lli:+0b0:1:2:0: ++%*2lli:+0b0:0:2: ++%2lli:+1:1:2:1: ++%*2lli:+1:0:2: ++%2lli:+0X1:1:2:0: ++%*2lli:+0X1:0:2: ++%2lli:+0x1:1:2:0: ++%*2lli:+0x1:0:2: ++%2lli:+01:1:2:0: ++%*2lli:+01:0:2: ++%2lli:+0B1:1:2:0: ++%*2lli:+0B1:0:2: ++%2lli:+0b1:1:2:0: ++%*2lli:+0b1:0:2: ++%2lli:+42:1:2:4: ++%*2lli:+42:0:2: ++%2lli:+0X2a:1:2:0: ++%*2lli:+0X2a:0:2: ++%2lli:+0x2A:1:2:0: ++%*2lli:+0x2A:0:2: ++%2lli:+052:1:2:0: ++%*2lli:+052:0:2: ++%2lli:+0B101010:1:2:0: ++%*2lli:+0B101010:0:2: ++%2lli:+0b101010:1:2:0: ++%*2lli:+0b101010:0:2: ++%2lli:+9223372036854775807:1:2:9: ++%*2lli:+9223372036854775807:0:2: ++%2lli:+0X7fffffffffffffff:1:2:0: ++%*2lli:+0X7fffffffffffffff:0:2: ++%2lli:+0x7FFFFFFFFFFFFFFF:1:2:0: ++%*2lli:+0x7FFFFFFFFFFFFFFF:0:2: ++%2lli:+0777777777777777777777:1:2:0: ++%*2lli:+0777777777777777777777:0:2: ++%2lli:+0B111111111111111111111111111111111111111111111111111111111111111:1:2:0: ++%*2lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2lli:+0b111111111111111111111111111111111111111111111111111111111111111:1:2:0: ++%*2lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2lli:+9223372036854775808:1:2:9: ++%*2lli:+9223372036854775808:0:2: ++%2lli:+0X8000000000000000:1:2:0: ++%*2lli:+0X8000000000000000:0:2: ++%2lli:+0x8000000000000000:1:2:0: ++%*2lli:+0x8000000000000000:0:2: ++%2lli:+01000000000000000000000:1:2:0: ++%*2lli:+01000000000000000000000:0:2: ++%2lli:+0B1000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2lli:+0b1000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2lli:+9223372036897200049:1:2:9: ++%*2lli:+9223372036897200049:0:2: ++%2lli:+0X80000000028757b1:1:2:0: ++%*2lli:+0X80000000028757b1:0:2: ++%2lli:+0x80000000028757B1:1:2:0: ++%*2lli:+0x80000000028757B1:0:2: ++%2lli:+01000000000000241653661:1:2:0: ++%*2lli:+01000000000000241653661:0:2: ++%2lli:+0B1000000000000000000000000000000000000010100001110101011110110001:1:2:0: ++%*2lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:2: ++%2lli:+0b1000000000000000000000000000000000000010100001110101011110110001:1:2:0: ++%*2lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:2: ++%15lli::0:-1: ++%*15lli::0:-1: ++%15lli:-9223372036867121486:1:15:-92233720368671: ++%*15lli:-9223372036867121486:0:15: ++%15lli:-0X8000000000bc614e:1:15:-140737488355516: ++%*15lli:-0X8000000000bc614e:0:15: ++%15lli:-0x8000000000BC614E:1:15:-140737488355516: ++%*15lli:-0x8000000000BC614E:0:15: ++%15lli:-01000000000000057060516:1:15:-68719476736: ++%*15lli:-01000000000000057060516:0:15: ++%15lli:-0B1000000000000000000000000000000000000000101111000110000101001110:1:15:-2048: ++%*15lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:15: ++%15lli:-0b1000000000000000000000000000000000000000101111000110000101001110:1:15:-2048: ++%*15lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:15: ++%15lli:-9223372036854775809:1:15:-92233720368547: ++%*15lli:-9223372036854775809:0:15: ++%15lli:-0X8000000000000001:1:15:-140737488355328: ++%*15lli:-0X8000000000000001:0:15: ++%15lli:-0x8000000000000001:1:15:-140737488355328: ++%*15lli:-0x8000000000000001:0:15: ++%15lli:-01000000000000000000001:1:15:-68719476736: ++%*15lli:-01000000000000000000001:0:15: ++%15lli:-0B1000000000000000000000000000000000000000000000000000000000000001:1:15:-2048: ++%*15lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:15: ++%15lli:-0b1000000000000000000000000000000000000000000000000000000000000001:1:15:-2048: ++%*15lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:15: ++%15lli:-9223372036854775808:1:15:-92233720368547: ++%*15lli:-9223372036854775808:0:15: ++%15lli:-0X8000000000000000:1:15:-140737488355328: ++%*15lli:-0X8000000000000000:0:15: ++%15lli:-0x8000000000000000:1:15:-140737488355328: ++%*15lli:-0x8000000000000000:0:15: ++%15lli:-01000000000000000000000:1:15:-68719476736: ++%*15lli:-01000000000000000000000:0:15: ++%15lli:-0B1000000000000000000000000000000000000000000000000000000000000000:1:15:-2048: ++%*15lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lli:-0b1000000000000000000000000000000000000000000000000000000000000000:1:15:-2048: ++%*15lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lli:-123:1:4:-123: ++%*15lli:-123:0:4: ++%15lli:-0X7b:1:5:-123: ++%*15lli:-0X7b:0:5: ++%15lli:-0x7B:1:5:-123: ++%*15lli:-0x7B:0:5: ++%15lli:-0173:1:5:-123: ++%*15lli:-0173:0:5: ++%15lli:-0B1111011:1:10:-123: ++%*15lli:-0B1111011:0:10: ++%15lli:-0b1111011:1:10:-123: ++%*15lli:-0b1111011:0:10: ++%15lli:-1:1:2:-1: ++%*15lli:-1:0:2: ++%15lli:-0X1:1:4:-1: ++%*15lli:-0X1:0:4: ++%15lli:-0x1:1:4:-1: ++%*15lli:-0x1:0:4: ++%15lli:-01:1:3:-1: ++%*15lli:-01:0:3: ++%15lli:-0B1:1:4:-1: ++%*15lli:-0B1:0:4: ++%15lli:-0b1:1:4:-1: ++%*15lli:-0b1:0:4: ++%15lli:-0:1:2:0: ++%*15lli:-0:0:2: ++%15lli:-0X0:1:4:0: ++%*15lli:-0X0:0:4: ++%15lli:-0x0:1:4:0: ++%*15lli:-0x0:0:4: ++%15lli:-00:1:3:0: ++%*15lli:-00:0:3: ++%15lli:-0B0:1:4:0: ++%*15lli:-0B0:0:4: ++%15lli:-0b0:1:4:0: ++%*15lli:-0b0:0:4: ++%15lli:0:1:1:0: ++%*15lli:0:0:1: ++%15lli:0X0:1:3:0: ++%*15lli:0X0:0:3: ++%15lli:0x0:1:3:0: ++%*15lli:0x0:0:3: ++%15lli:00:1:2:0: ++%*15lli:00:0:2: ++%15lli:0B0:1:3:0: ++%*15lli:0B0:0:3: ++%15lli:0b0:1:3:0: ++%*15lli:0b0:0:3: ++%15lli:1:1:1:1: ++%*15lli:1:0:1: ++%15lli:0X1:1:3:1: ++%*15lli:0X1:0:3: ++%15lli:0x1:1:3:1: ++%*15lli:0x1:0:3: ++%15lli:01:1:2:1: ++%*15lli:01:0:2: ++%15lli:0B1:1:3:1: ++%*15lli:0B1:0:3: ++%15lli:0b1:1:3:1: ++%*15lli:0b1:0:3: ++%15lli:42:1:2:42: ++%*15lli:42:0:2: ++%15lli:0X2a:1:4:42: ++%*15lli:0X2a:0:4: ++%15lli:0x2A:1:4:42: ++%*15lli:0x2A:0:4: ++%15lli:052:1:3:42: ++%*15lli:052:0:3: ++%15lli:0B101010:1:8:42: ++%*15lli:0B101010:0:8: ++%15lli:0b101010:1:8:42: ++%*15lli:0b101010:0:8: ++%15lli:9223372036854775807:1:15:922337203685477: ++%*15lli:9223372036854775807:0:15: ++%15lli:0X7fffffffffffffff:1:15:2251799813685247: ++%*15lli:0X7fffffffffffffff:0:15: ++%15lli:0x7FFFFFFFFFFFFFFF:1:15:2251799813685247: ++%*15lli:0x7FFFFFFFFFFFFFFF:0:15: ++%15lli:0777777777777777777777:1:15:4398046511103: ++%*15lli:0777777777777777777777:0:15: ++%15lli:0B111111111111111111111111111111111111111111111111111111111111111:1:15:8191: ++%*15lli:0B111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lli:0b111111111111111111111111111111111111111111111111111111111111111:1:15:8191: ++%*15lli:0b111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lli:9223372036854775808:1:15:922337203685477: ++%*15lli:9223372036854775808:0:15: ++%15lli:0X8000000000000000:1:15:2251799813685248: ++%*15lli:0X8000000000000000:0:15: ++%15lli:0x8000000000000000:1:15:2251799813685248: ++%*15lli:0x8000000000000000:0:15: ++%15lli:01000000000000000000000:1:15:549755813888: ++%*15lli:01000000000000000000000:0:15: ++%15lli:0B1000000000000000000000000000000000000000000000000000000000000000:1:15:4096: ++%*15lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lli:0b1000000000000000000000000000000000000000000000000000000000000000:1:15:4096: ++%*15lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lli:9223372036897200049:1:15:922337203689720: ++%*15lli:9223372036897200049:0:15: ++%15lli:0X80000000028757b1:1:15:2251799813695605: ++%*15lli:0X80000000028757b1:0:15: ++%15lli:0x80000000028757B1:1:15:2251799813695605: ++%*15lli:0x80000000028757B1:0:15: ++%15lli:01000000000000241653661:1:15:549755813890: ++%*15lli:01000000000000241653661:0:15: ++%15lli:0B1000000000000000000000000000000000000010100001110101011110110001:1:15:4096: ++%*15lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15lli:0b1000000000000000000000000000000000000010100001110101011110110001:1:15:4096: ++%*15lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15lli:+0:1:2:0: ++%*15lli:+0:0:2: ++%15lli:+0X0:1:4:0: ++%*15lli:+0X0:0:4: ++%15lli:+0x0:1:4:0: ++%*15lli:+0x0:0:4: ++%15lli:+00:1:3:0: ++%*15lli:+00:0:3: ++%15lli:+0B0:1:4:0: ++%*15lli:+0B0:0:4: ++%15lli:+0b0:1:4:0: ++%*15lli:+0b0:0:4: ++%15lli:+1:1:2:1: ++%*15lli:+1:0:2: ++%15lli:+0X1:1:4:1: ++%*15lli:+0X1:0:4: ++%15lli:+0x1:1:4:1: ++%*15lli:+0x1:0:4: ++%15lli:+01:1:3:1: ++%*15lli:+01:0:3: ++%15lli:+0B1:1:4:1: ++%*15lli:+0B1:0:4: ++%15lli:+0b1:1:4:1: ++%*15lli:+0b1:0:4: ++%15lli:+42:1:3:42: ++%*15lli:+42:0:3: ++%15lli:+0X2a:1:5:42: ++%*15lli:+0X2a:0:5: ++%15lli:+0x2A:1:5:42: ++%*15lli:+0x2A:0:5: ++%15lli:+052:1:4:42: ++%*15lli:+052:0:4: ++%15lli:+0B101010:1:9:42: ++%*15lli:+0B101010:0:9: ++%15lli:+0b101010:1:9:42: ++%*15lli:+0b101010:0:9: ++%15lli:+9223372036854775807:1:15:92233720368547: ++%*15lli:+9223372036854775807:0:15: ++%15lli:+0X7fffffffffffffff:1:15:140737488355327: ++%*15lli:+0X7fffffffffffffff:0:15: ++%15lli:+0x7FFFFFFFFFFFFFFF:1:15:140737488355327: ++%*15lli:+0x7FFFFFFFFFFFFFFF:0:15: ++%15lli:+0777777777777777777777:1:15:549755813887: ++%*15lli:+0777777777777777777777:0:15: ++%15lli:+0B111111111111111111111111111111111111111111111111111111111111111:1:15:4095: ++%*15lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lli:+0b111111111111111111111111111111111111111111111111111111111111111:1:15:4095: ++%*15lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lli:+9223372036854775808:1:15:92233720368547: ++%*15lli:+9223372036854775808:0:15: ++%15lli:+0X8000000000000000:1:15:140737488355328: ++%*15lli:+0X8000000000000000:0:15: ++%15lli:+0x8000000000000000:1:15:140737488355328: ++%*15lli:+0x8000000000000000:0:15: ++%15lli:+01000000000000000000000:1:15:68719476736: ++%*15lli:+01000000000000000000000:0:15: ++%15lli:+0B1000000000000000000000000000000000000000000000000000000000000000:1:15:2048: ++%*15lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lli:+0b1000000000000000000000000000000000000000000000000000000000000000:1:15:2048: ++%*15lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lli:+9223372036897200049:1:15:92233720368972: ++%*15lli:+9223372036897200049:0:15: ++%15lli:+0X80000000028757b1:1:15:140737488355975: ++%*15lli:+0X80000000028757b1:0:15: ++%15lli:+0x80000000028757B1:1:15:140737488355975: ++%*15lli:+0x80000000028757B1:0:15: ++%15lli:+01000000000000241653661:1:15:68719476736: ++%*15lli:+01000000000000241653661:0:15: ++%15lli:+0B1000000000000000000000000000000000000010100001110101011110110001:1:15:2048: ++%*15lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15lli:+0b1000000000000000000000000000000000000010100001110101011110110001:1:15:2048: ++%*15lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:15: ++%25lli::0:-1: ++%*25lli::0:-1: ++%25lli:-9223372036867121486:1:20:-9223372036854775808: ++%*25lli:-9223372036867121486:0:20: ++%25lli:-0X8000000000bc614e:1:19:-9223372036854775808: ++%*25lli:-0X8000000000bc614e:0:19: ++%25lli:-0x8000000000BC614E:1:19:-9223372036854775808: ++%*25lli:-0x8000000000BC614E:0:19: ++%25lli:-01000000000000057060516:1:24:-9223372036854775808: ++%*25lli:-01000000000000057060516:0:24: ++%25lli:-0B1000000000000000000000000000000000000000101111000110000101001110:1:25:-2097152: ++%*25lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:25: ++%25lli:-0b1000000000000000000000000000000000000000101111000110000101001110:1:25:-2097152: ++%*25lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:25: ++%25lli:-9223372036854775809:1:20:-9223372036854775808: ++%*25lli:-9223372036854775809:0:20: ++%25lli:-0X8000000000000001:1:19:-9223372036854775808: ++%*25lli:-0X8000000000000001:0:19: ++%25lli:-0x8000000000000001:1:19:-9223372036854775808: ++%*25lli:-0x8000000000000001:0:19: ++%25lli:-01000000000000000000001:1:24:-9223372036854775808: ++%*25lli:-01000000000000000000001:0:24: ++%25lli:-0B1000000000000000000000000000000000000000000000000000000000000001:1:25:-2097152: ++%*25lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:25: ++%25lli:-0b1000000000000000000000000000000000000000000000000000000000000001:1:25:-2097152: ++%*25lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:25: ++%25lli:-9223372036854775808:1:20:-9223372036854775808: ++%*25lli:-9223372036854775808:0:20: ++%25lli:-0X8000000000000000:1:19:-9223372036854775808: ++%*25lli:-0X8000000000000000:0:19: ++%25lli:-0x8000000000000000:1:19:-9223372036854775808: ++%*25lli:-0x8000000000000000:0:19: ++%25lli:-01000000000000000000000:1:24:-9223372036854775808: ++%*25lli:-01000000000000000000000:0:24: ++%25lli:-0B1000000000000000000000000000000000000000000000000000000000000000:1:25:-2097152: ++%*25lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lli:-0b1000000000000000000000000000000000000000000000000000000000000000:1:25:-2097152: ++%*25lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lli:-123:1:4:-123: ++%*25lli:-123:0:4: ++%25lli:-0X7b:1:5:-123: ++%*25lli:-0X7b:0:5: ++%25lli:-0x7B:1:5:-123: ++%*25lli:-0x7B:0:5: ++%25lli:-0173:1:5:-123: ++%*25lli:-0173:0:5: ++%25lli:-0B1111011:1:10:-123: ++%*25lli:-0B1111011:0:10: ++%25lli:-0b1111011:1:10:-123: ++%*25lli:-0b1111011:0:10: ++%25lli:-1:1:2:-1: ++%*25lli:-1:0:2: ++%25lli:-0X1:1:4:-1: ++%*25lli:-0X1:0:4: ++%25lli:-0x1:1:4:-1: ++%*25lli:-0x1:0:4: ++%25lli:-01:1:3:-1: ++%*25lli:-01:0:3: ++%25lli:-0B1:1:4:-1: ++%*25lli:-0B1:0:4: ++%25lli:-0b1:1:4:-1: ++%*25lli:-0b1:0:4: ++%25lli:-0:1:2:0: ++%*25lli:-0:0:2: ++%25lli:-0X0:1:4:0: ++%*25lli:-0X0:0:4: ++%25lli:-0x0:1:4:0: ++%*25lli:-0x0:0:4: ++%25lli:-00:1:3:0: ++%*25lli:-00:0:3: ++%25lli:-0B0:1:4:0: ++%*25lli:-0B0:0:4: ++%25lli:-0b0:1:4:0: ++%*25lli:-0b0:0:4: ++%25lli:0:1:1:0: ++%*25lli:0:0:1: ++%25lli:0X0:1:3:0: ++%*25lli:0X0:0:3: ++%25lli:0x0:1:3:0: ++%*25lli:0x0:0:3: ++%25lli:00:1:2:0: ++%*25lli:00:0:2: ++%25lli:0B0:1:3:0: ++%*25lli:0B0:0:3: ++%25lli:0b0:1:3:0: ++%*25lli:0b0:0:3: ++%25lli:1:1:1:1: ++%*25lli:1:0:1: ++%25lli:0X1:1:3:1: ++%*25lli:0X1:0:3: ++%25lli:0x1:1:3:1: ++%*25lli:0x1:0:3: ++%25lli:01:1:2:1: ++%*25lli:01:0:2: ++%25lli:0B1:1:3:1: ++%*25lli:0B1:0:3: ++%25lli:0b1:1:3:1: ++%*25lli:0b1:0:3: ++%25lli:42:1:2:42: ++%*25lli:42:0:2: ++%25lli:0X2a:1:4:42: ++%*25lli:0X2a:0:4: ++%25lli:0x2A:1:4:42: ++%*25lli:0x2A:0:4: ++%25lli:052:1:3:42: ++%*25lli:052:0:3: ++%25lli:0B101010:1:8:42: ++%*25lli:0B101010:0:8: ++%25lli:0b101010:1:8:42: ++%*25lli:0b101010:0:8: ++%25lli:9223372036854775807:1:19:9223372036854775807: ++%*25lli:9223372036854775807:0:19: ++%25lli:0X7fffffffffffffff:1:18:9223372036854775807: ++%*25lli:0X7fffffffffffffff:0:18: ++%25lli:0x7FFFFFFFFFFFFFFF:1:18:9223372036854775807: ++%*25lli:0x7FFFFFFFFFFFFFFF:0:18: ++%25lli:0777777777777777777777:1:22:9223372036854775807: ++%*25lli:0777777777777777777777:0:22: ++%25lli:0B111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: ++%*25lli:0B111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lli:0b111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: ++%*25lli:0b111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lli:9223372036854775808:1:19:9223372036854775807: ++%*25lli:9223372036854775808:0:19: ++%25lli:0X8000000000000000:1:18:9223372036854775807: ++%*25lli:0X8000000000000000:0:18: ++%25lli:0x8000000000000000:1:18:9223372036854775807: ++%*25lli:0x8000000000000000:0:18: ++%25lli:01000000000000000000000:1:23:9223372036854775807: ++%*25lli:01000000000000000000000:0:23: ++%25lli:0B1000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: ++%*25lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lli:0b1000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: ++%*25lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lli:9223372036897200049:1:19:9223372036854775807: ++%*25lli:9223372036897200049:0:19: ++%25lli:0X80000000028757b1:1:18:9223372036854775807: ++%*25lli:0X80000000028757b1:0:18: ++%25lli:0x80000000028757B1:1:18:9223372036854775807: ++%*25lli:0x80000000028757B1:0:18: ++%25lli:01000000000000241653661:1:23:9223372036854775807: ++%*25lli:01000000000000241653661:0:23: ++%25lli:0B1000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: ++%*25lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25lli:0b1000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: ++%*25lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25lli:+0:1:2:0: ++%*25lli:+0:0:2: ++%25lli:+0X0:1:4:0: ++%*25lli:+0X0:0:4: ++%25lli:+0x0:1:4:0: ++%*25lli:+0x0:0:4: ++%25lli:+00:1:3:0: ++%*25lli:+00:0:3: ++%25lli:+0B0:1:4:0: ++%*25lli:+0B0:0:4: ++%25lli:+0b0:1:4:0: ++%*25lli:+0b0:0:4: ++%25lli:+1:1:2:1: ++%*25lli:+1:0:2: ++%25lli:+0X1:1:4:1: ++%*25lli:+0X1:0:4: ++%25lli:+0x1:1:4:1: ++%*25lli:+0x1:0:4: ++%25lli:+01:1:3:1: ++%*25lli:+01:0:3: ++%25lli:+0B1:1:4:1: ++%*25lli:+0B1:0:4: ++%25lli:+0b1:1:4:1: ++%*25lli:+0b1:0:4: ++%25lli:+42:1:3:42: ++%*25lli:+42:0:3: ++%25lli:+0X2a:1:5:42: ++%*25lli:+0X2a:0:5: ++%25lli:+0x2A:1:5:42: ++%*25lli:+0x2A:0:5: ++%25lli:+052:1:4:42: ++%*25lli:+052:0:4: ++%25lli:+0B101010:1:9:42: ++%*25lli:+0B101010:0:9: ++%25lli:+0b101010:1:9:42: ++%*25lli:+0b101010:0:9: ++%25lli:+9223372036854775807:1:20:9223372036854775807: ++%*25lli:+9223372036854775807:0:20: ++%25lli:+0X7fffffffffffffff:1:19:9223372036854775807: ++%*25lli:+0X7fffffffffffffff:0:19: ++%25lli:+0x7FFFFFFFFFFFFFFF:1:19:9223372036854775807: ++%*25lli:+0x7FFFFFFFFFFFFFFF:0:19: ++%25lli:+0777777777777777777777:1:23:9223372036854775807: ++%*25lli:+0777777777777777777777:0:23: ++%25lli:+0B111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: ++%*25lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lli:+0b111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: ++%*25lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lli:+9223372036854775808:1:20:9223372036854775807: ++%*25lli:+9223372036854775808:0:20: ++%25lli:+0X8000000000000000:1:19:9223372036854775807: ++%*25lli:+0X8000000000000000:0:19: ++%25lli:+0x8000000000000000:1:19:9223372036854775807: ++%*25lli:+0x8000000000000000:0:19: ++%25lli:+01000000000000000000000:1:24:9223372036854775807: ++%*25lli:+01000000000000000000000:0:24: ++%25lli:+0B1000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: ++%*25lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lli:+0b1000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: ++%*25lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lli:+9223372036897200049:1:20:9223372036854775807: ++%*25lli:+9223372036897200049:0:20: ++%25lli:+0X80000000028757b1:1:19:9223372036854775807: ++%*25lli:+0X80000000028757b1:0:19: ++%25lli:+0x80000000028757B1:1:19:9223372036854775807: ++%*25lli:+0x80000000028757B1:0:19: ++%25lli:+01000000000000241653661:1:24:9223372036854775807: ++%*25lli:+01000000000000241653661:0:24: ++%25lli:+0B1000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: ++%*25lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25lli:+0b1000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: ++%*25lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:25: ++%2lli: :0:-1: ++%*2lli: :0:-1: ++%2lli: -9223372036867121486:1:3:-9: ++%*2lli: -9223372036867121486:0:3: ++%2lli: -0X8000000000bc614e:1:3:0: ++%*2lli: -0X8000000000bc614e:0:3: ++%2lli: -0x8000000000BC614E:1:3:0: ++%*2lli: -0x8000000000BC614E:0:3: ++%2lli: -01000000000000057060516:1:3:0: ++%*2lli: -01000000000000057060516:0:3: ++%2lli: -0B1000000000000000000000000000000000000000101111000110000101001110:1:3:0: ++%*2lli: -0B1000000000000000000000000000000000000000101111000110000101001110:0:3: ++%2lli: -0b1000000000000000000000000000000000000000101111000110000101001110:1:3:0: ++%*2lli: -0b1000000000000000000000000000000000000000101111000110000101001110:0:3: ++%2lli: -9223372036854775809:1:3:-9: ++%*2lli: -9223372036854775809:0:3: ++%2lli: -0X8000000000000001:1:3:0: ++%*2lli: -0X8000000000000001:0:3: ++%2lli: -0x8000000000000001:1:3:0: ++%*2lli: -0x8000000000000001:0:3: ++%2lli: -01000000000000000000001:1:3:0: ++%*2lli: -01000000000000000000001:0:3: ++%2lli: -0B1000000000000000000000000000000000000000000000000000000000000001:1:3:0: ++%*2lli: -0B1000000000000000000000000000000000000000000000000000000000000001:0:3: ++%2lli: -0b1000000000000000000000000000000000000000000000000000000000000001:1:3:0: ++%*2lli: -0b1000000000000000000000000000000000000000000000000000000000000001:0:3: ++%2lli: -9223372036854775808:1:3:-9: ++%*2lli: -9223372036854775808:0:3: ++%2lli: -0X8000000000000000:1:3:0: ++%*2lli: -0X8000000000000000:0:3: ++%2lli: -0x8000000000000000:1:3:0: ++%*2lli: -0x8000000000000000:0:3: ++%2lli: -01000000000000000000000:1:3:0: ++%*2lli: -01000000000000000000000:0:3: ++%2lli: -0B1000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2lli: -0B1000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2lli: -0b1000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2lli: -0b1000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2lli: -123:1:3:-1: ++%*2lli: -123:0:3: ++%2lli: -0X7b:1:3:0: ++%*2lli: -0X7b:0:3: ++%2lli: -0x7B:1:3:0: ++%*2lli: -0x7B:0:3: ++%2lli: -0173:1:3:0: ++%*2lli: -0173:0:3: ++%2lli: -0B1111011:1:3:0: ++%*2lli: -0B1111011:0:3: ++%2lli: -0b1111011:1:3:0: ++%*2lli: -0b1111011:0:3: ++%2lli: -1:1:3:-1: ++%*2lli: -1:0:3: ++%2lli: -0X1:1:3:0: ++%*2lli: -0X1:0:3: ++%2lli: -0x1:1:3:0: ++%*2lli: -0x1:0:3: ++%2lli: -01:1:3:0: ++%*2lli: -01:0:3: ++%2lli: -0B1:1:3:0: ++%*2lli: -0B1:0:3: ++%2lli: -0b1:1:3:0: ++%*2lli: -0b1:0:3: ++%2lli: -0:1:3:0: ++%*2lli: -0:0:3: ++%2lli: -0X0:1:3:0: ++%*2lli: -0X0:0:3: ++%2lli: -0x0:1:3:0: ++%*2lli: -0x0:0:3: ++%2lli: -00:1:3:0: ++%*2lli: -00:0:3: ++%2lli: -0B0:1:3:0: ++%*2lli: -0B0:0:3: ++%2lli: -0b0:1:3:0: ++%*2lli: -0b0:0:3: ++%2lli: 0:1:2:0: ++%*2lli: 0:0:2: ++# BZ12701 %2lli: 0X0:0:-1: ++# BZ12701 %*2lli: 0X0:0:-1: ++# BZ12701 %2lli: 0x0:0:-1: ++# BZ12701 %*2lli: 0x0:0:-1: ++%2lli: 00:1:3:0: ++%*2lli: 00:0:3: ++# BZ12701 %2lli: 0B0:0:-1: ++# BZ12701 %*2lli: 0B0:0:-1: ++# BZ12701 %2lli: 0b0:0:-1: ++# BZ12701 %*2lli: 0b0:0:-1: ++%2lli: 1:1:2:1: ++%*2lli: 1:0:2: ++# BZ12701 %2lli: 0X1:0:-1: ++# BZ12701 %*2lli: 0X1:0:-1: ++# BZ12701 %2lli: 0x1:0:-1: ++# BZ12701 %*2lli: 0x1:0:-1: ++%2lli: 01:1:3:1: ++%*2lli: 01:0:3: ++# BZ12701 %2lli: 0B1:0:-1: ++# BZ12701 %*2lli: 0B1:0:-1: ++# BZ12701 %2lli: 0b1:0:-1: ++# BZ12701 %*2lli: 0b1:0:-1: ++%2lli: 42:1:3:42: ++%*2lli: 42:0:3: ++# BZ12701 %2lli: 0X2a:0:-1: ++# BZ12701 %*2lli: 0X2a:0:-1: ++# BZ12701 %2lli: 0x2A:0:-1: ++# BZ12701 %*2lli: 0x2A:0:-1: ++%2lli: 052:1:3:5: ++%*2lli: 052:0:3: ++# BZ12701 %2lli: 0B101010:0:-1: ++# BZ12701 %*2lli: 0B101010:0:-1: ++# BZ12701 %2lli: 0b101010:0:-1: ++# BZ12701 %*2lli: 0b101010:0:-1: ++%2lli: 9223372036854775807:1:3:92: ++%*2lli: 9223372036854775807:0:3: ++# BZ12701 %2lli: 0X7fffffffffffffff:0:-1: ++# BZ12701 %*2lli: 0X7fffffffffffffff:0:-1: ++# BZ12701 %2lli: 0x7FFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2lli: 0x7FFFFFFFFFFFFFFF:0:-1: ++%2lli: 0777777777777777777777:1:3:7: ++%*2lli: 0777777777777777777777:0:3: ++# BZ12701 %2lli: 0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2lli: 0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %2lli: 0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2lli: 0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%2lli: 9223372036854775808:1:3:92: ++%*2lli: 9223372036854775808:0:3: ++# BZ12701 %2lli: 0X8000000000000000:0:-1: ++# BZ12701 %*2lli: 0X8000000000000000:0:-1: ++# BZ12701 %2lli: 0x8000000000000000:0:-1: ++# BZ12701 %*2lli: 0x8000000000000000:0:-1: ++%2lli: 01000000000000000000000:1:3:1: ++%*2lli: 01000000000000000000000:0:3: ++# BZ12701 %2lli: 0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2lli: 0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %2lli: 0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2lli: 0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%2lli: 9223372036897200049:1:3:92: ++%*2lli: 9223372036897200049:0:3: ++# BZ12701 %2lli: 0X80000000028757b1:0:-1: ++# BZ12701 %*2lli: 0X80000000028757b1:0:-1: ++# BZ12701 %2lli: 0x80000000028757B1:0:-1: ++# BZ12701 %*2lli: 0x80000000028757B1:0:-1: ++%2lli: 01000000000000241653661:1:3:1: ++%*2lli: 01000000000000241653661:0:3: ++# BZ12701 %2lli: 0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2lli: 0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %2lli: 0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2lli: 0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2lli: +0:1:3:0: ++%*2lli: +0:0:3: ++%2lli: +0X0:1:3:0: ++%*2lli: +0X0:0:3: ++%2lli: +0x0:1:3:0: ++%*2lli: +0x0:0:3: ++%2lli: +00:1:3:0: ++%*2lli: +00:0:3: ++%2lli: +0B0:1:3:0: ++%*2lli: +0B0:0:3: ++%2lli: +0b0:1:3:0: ++%*2lli: +0b0:0:3: ++%2lli: +1:1:3:1: ++%*2lli: +1:0:3: ++%2lli: +0X1:1:3:0: ++%*2lli: +0X1:0:3: ++%2lli: +0x1:1:3:0: ++%*2lli: +0x1:0:3: ++%2lli: +01:1:3:0: ++%*2lli: +01:0:3: ++%2lli: +0B1:1:3:0: ++%*2lli: +0B1:0:3: ++%2lli: +0b1:1:3:0: ++%*2lli: +0b1:0:3: ++%2lli: +42:1:3:4: ++%*2lli: +42:0:3: ++%2lli: +0X2a:1:3:0: ++%*2lli: +0X2a:0:3: ++%2lli: +0x2A:1:3:0: ++%*2lli: +0x2A:0:3: ++%2lli: +052:1:3:0: ++%*2lli: +052:0:3: ++%2lli: +0B101010:1:3:0: ++%*2lli: +0B101010:0:3: ++%2lli: +0b101010:1:3:0: ++%*2lli: +0b101010:0:3: ++%2lli: +9223372036854775807:1:3:9: ++%*2lli: +9223372036854775807:0:3: ++%2lli: +0X7fffffffffffffff:1:3:0: ++%*2lli: +0X7fffffffffffffff:0:3: ++%2lli: +0x7FFFFFFFFFFFFFFF:1:3:0: ++%*2lli: +0x7FFFFFFFFFFFFFFF:0:3: ++%2lli: +0777777777777777777777:1:3:0: ++%*2lli: +0777777777777777777777:0:3: ++%2lli: +0B111111111111111111111111111111111111111111111111111111111111111:1:3:0: ++%*2lli: +0B111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2lli: +0b111111111111111111111111111111111111111111111111111111111111111:1:3:0: ++%*2lli: +0b111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2lli: +9223372036854775808:1:3:9: ++%*2lli: +9223372036854775808:0:3: ++%2lli: +0X8000000000000000:1:3:0: ++%*2lli: +0X8000000000000000:0:3: ++%2lli: +0x8000000000000000:1:3:0: ++%*2lli: +0x8000000000000000:0:3: ++%2lli: +01000000000000000000000:1:3:0: ++%*2lli: +01000000000000000000000:0:3: ++%2lli: +0B1000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2lli: +0B1000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2lli: +0b1000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2lli: +0b1000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2lli: +9223372036897200049:1:3:9: ++%*2lli: +9223372036897200049:0:3: ++%2lli: +0X80000000028757b1:1:3:0: ++%*2lli: +0X80000000028757b1:0:3: ++%2lli: +0x80000000028757B1:1:3:0: ++%*2lli: +0x80000000028757B1:0:3: ++%2lli: +01000000000000241653661:1:3:0: ++%*2lli: +01000000000000241653661:0:3: ++%2lli: +0B1000000000000000000000000000000000000010100001110101011110110001:1:3:0: ++%*2lli: +0B1000000000000000000000000000000000000010100001110101011110110001:0:3: ++%2lli: +0b1000000000000000000000000000000000000010100001110101011110110001:1:3:0: ++%*2lli: +0b1000000000000000000000000000000000000010100001110101011110110001:0:3: ++%25lli: :0:-1: ++%*25lli: :0:-1: ++%25lli: -9223372036867121486:1:21:-9223372036854775808: ++%*25lli: -9223372036867121486:0:21: ++%25lli: -0X8000000000bc614e:1:20:-9223372036854775808: ++%*25lli: -0X8000000000bc614e:0:20: ++%25lli: -0x8000000000BC614E:1:20:-9223372036854775808: ++%*25lli: -0x8000000000BC614E:0:20: ++%25lli: -01000000000000057060516:1:25:-9223372036854775808: ++%*25lli: -01000000000000057060516:0:25: ++%25lli: -0B1000000000000000000000000000000000000000101111000110000101001110:1:26:-2097152: ++%*25lli: -0B1000000000000000000000000000000000000000101111000110000101001110:0:26: ++%25lli: -0b1000000000000000000000000000000000000000101111000110000101001110:1:26:-2097152: ++%*25lli: -0b1000000000000000000000000000000000000000101111000110000101001110:0:26: ++%25lli: -9223372036854775809:1:21:-9223372036854775808: ++%*25lli: -9223372036854775809:0:21: ++%25lli: -0X8000000000000001:1:20:-9223372036854775808: ++%*25lli: -0X8000000000000001:0:20: ++%25lli: -0x8000000000000001:1:20:-9223372036854775808: ++%*25lli: -0x8000000000000001:0:20: ++%25lli: -01000000000000000000001:1:25:-9223372036854775808: ++%*25lli: -01000000000000000000001:0:25: ++%25lli: -0B1000000000000000000000000000000000000000000000000000000000000001:1:26:-2097152: ++%*25lli: -0B1000000000000000000000000000000000000000000000000000000000000001:0:26: ++%25lli: -0b1000000000000000000000000000000000000000000000000000000000000001:1:26:-2097152: ++%*25lli: -0b1000000000000000000000000000000000000000000000000000000000000001:0:26: ++%25lli: -9223372036854775808:1:21:-9223372036854775808: ++%*25lli: -9223372036854775808:0:21: ++%25lli: -0X8000000000000000:1:20:-9223372036854775808: ++%*25lli: -0X8000000000000000:0:20: ++%25lli: -0x8000000000000000:1:20:-9223372036854775808: ++%*25lli: -0x8000000000000000:0:20: ++%25lli: -01000000000000000000000:1:25:-9223372036854775808: ++%*25lli: -01000000000000000000000:0:25: ++%25lli: -0B1000000000000000000000000000000000000000000000000000000000000000:1:26:-2097152: ++%*25lli: -0B1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lli: -0b1000000000000000000000000000000000000000000000000000000000000000:1:26:-2097152: ++%*25lli: -0b1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lli: -123:1:5:-123: ++%*25lli: -123:0:5: ++%25lli: -0X7b:1:6:-123: ++%*25lli: -0X7b:0:6: ++%25lli: -0x7B:1:6:-123: ++%*25lli: -0x7B:0:6: ++%25lli: -0173:1:6:-123: ++%*25lli: -0173:0:6: ++%25lli: -0B1111011:1:11:-123: ++%*25lli: -0B1111011:0:11: ++%25lli: -0b1111011:1:11:-123: ++%*25lli: -0b1111011:0:11: ++%25lli: -1:1:3:-1: ++%*25lli: -1:0:3: ++%25lli: -0X1:1:5:-1: ++%*25lli: -0X1:0:5: ++%25lli: -0x1:1:5:-1: ++%*25lli: -0x1:0:5: ++%25lli: -01:1:4:-1: ++%*25lli: -01:0:4: ++%25lli: -0B1:1:5:-1: ++%*25lli: -0B1:0:5: ++%25lli: -0b1:1:5:-1: ++%*25lli: -0b1:0:5: ++%25lli: -0:1:3:0: ++%*25lli: -0:0:3: ++%25lli: -0X0:1:5:0: ++%*25lli: -0X0:0:5: ++%25lli: -0x0:1:5:0: ++%*25lli: -0x0:0:5: ++%25lli: -00:1:4:0: ++%*25lli: -00:0:4: ++%25lli: -0B0:1:5:0: ++%*25lli: -0B0:0:5: ++%25lli: -0b0:1:5:0: ++%*25lli: -0b0:0:5: ++%25lli: 0:1:2:0: ++%*25lli: 0:0:2: ++%25lli: 0X0:1:4:0: ++%*25lli: 0X0:0:4: ++%25lli: 0x0:1:4:0: ++%*25lli: 0x0:0:4: ++%25lli: 00:1:3:0: ++%*25lli: 00:0:3: ++%25lli: 0B0:1:4:0: ++%*25lli: 0B0:0:4: ++%25lli: 0b0:1:4:0: ++%*25lli: 0b0:0:4: ++%25lli: 1:1:2:1: ++%*25lli: 1:0:2: ++%25lli: 0X1:1:4:1: ++%*25lli: 0X1:0:4: ++%25lli: 0x1:1:4:1: ++%*25lli: 0x1:0:4: ++%25lli: 01:1:3:1: ++%*25lli: 01:0:3: ++%25lli: 0B1:1:4:1: ++%*25lli: 0B1:0:4: ++%25lli: 0b1:1:4:1: ++%*25lli: 0b1:0:4: ++%25lli: 42:1:3:42: ++%*25lli: 42:0:3: ++%25lli: 0X2a:1:5:42: ++%*25lli: 0X2a:0:5: ++%25lli: 0x2A:1:5:42: ++%*25lli: 0x2A:0:5: ++%25lli: 052:1:4:42: ++%*25lli: 052:0:4: ++%25lli: 0B101010:1:9:42: ++%*25lli: 0B101010:0:9: ++%25lli: 0b101010:1:9:42: ++%*25lli: 0b101010:0:9: ++%25lli: 9223372036854775807:1:20:9223372036854775807: ++%*25lli: 9223372036854775807:0:20: ++%25lli: 0X7fffffffffffffff:1:19:9223372036854775807: ++%*25lli: 0X7fffffffffffffff:0:19: ++%25lli: 0x7FFFFFFFFFFFFFFF:1:19:9223372036854775807: ++%*25lli: 0x7FFFFFFFFFFFFFFF:0:19: ++%25lli: 0777777777777777777777:1:23:9223372036854775807: ++%*25lli: 0777777777777777777777:0:23: ++%25lli: 0B111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: ++%*25lli: 0B111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lli: 0b111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: ++%*25lli: 0b111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lli: 9223372036854775808:1:20:9223372036854775807: ++%*25lli: 9223372036854775808:0:20: ++%25lli: 0X8000000000000000:1:19:9223372036854775807: ++%*25lli: 0X8000000000000000:0:19: ++%25lli: 0x8000000000000000:1:19:9223372036854775807: ++%*25lli: 0x8000000000000000:0:19: ++%25lli: 01000000000000000000000:1:24:9223372036854775807: ++%*25lli: 01000000000000000000000:0:24: ++%25lli: 0B1000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: ++%*25lli: 0B1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lli: 0b1000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: ++%*25lli: 0b1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lli: 9223372036897200049:1:20:9223372036854775807: ++%*25lli: 9223372036897200049:0:20: ++%25lli: 0X80000000028757b1:1:19:9223372036854775807: ++%*25lli: 0X80000000028757b1:0:19: ++%25lli: 0x80000000028757B1:1:19:9223372036854775807: ++%*25lli: 0x80000000028757B1:0:19: ++%25lli: 01000000000000241653661:1:24:9223372036854775807: ++%*25lli: 01000000000000241653661:0:24: ++%25lli: 0B1000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: ++%*25lli: 0B1000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25lli: 0b1000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: ++%*25lli: 0b1000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25lli: +0:1:3:0: ++%*25lli: +0:0:3: ++%25lli: +0X0:1:5:0: ++%*25lli: +0X0:0:5: ++%25lli: +0x0:1:5:0: ++%*25lli: +0x0:0:5: ++%25lli: +00:1:4:0: ++%*25lli: +00:0:4: ++%25lli: +0B0:1:5:0: ++%*25lli: +0B0:0:5: ++%25lli: +0b0:1:5:0: ++%*25lli: +0b0:0:5: ++%25lli: +1:1:3:1: ++%*25lli: +1:0:3: ++%25lli: +0X1:1:5:1: ++%*25lli: +0X1:0:5: ++%25lli: +0x1:1:5:1: ++%*25lli: +0x1:0:5: ++%25lli: +01:1:4:1: ++%*25lli: +01:0:4: ++%25lli: +0B1:1:5:1: ++%*25lli: +0B1:0:5: ++%25lli: +0b1:1:5:1: ++%*25lli: +0b1:0:5: ++%25lli: +42:1:4:42: ++%*25lli: +42:0:4: ++%25lli: +0X2a:1:6:42: ++%*25lli: +0X2a:0:6: ++%25lli: +0x2A:1:6:42: ++%*25lli: +0x2A:0:6: ++%25lli: +052:1:5:42: ++%*25lli: +052:0:5: ++%25lli: +0B101010:1:10:42: ++%*25lli: +0B101010:0:10: ++%25lli: +0b101010:1:10:42: ++%*25lli: +0b101010:0:10: ++%25lli: +9223372036854775807:1:21:9223372036854775807: ++%*25lli: +9223372036854775807:0:21: ++%25lli: +0X7fffffffffffffff:1:20:9223372036854775807: ++%*25lli: +0X7fffffffffffffff:0:20: ++%25lli: +0x7FFFFFFFFFFFFFFF:1:20:9223372036854775807: ++%*25lli: +0x7FFFFFFFFFFFFFFF:0:20: ++%25lli: +0777777777777777777777:1:24:9223372036854775807: ++%*25lli: +0777777777777777777777:0:24: ++%25lli: +0B111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: ++%*25lli: +0B111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lli: +0b111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: ++%*25lli: +0b111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lli: +9223372036854775808:1:21:9223372036854775807: ++%*25lli: +9223372036854775808:0:21: ++%25lli: +0X8000000000000000:1:20:9223372036854775807: ++%*25lli: +0X8000000000000000:0:20: ++%25lli: +0x8000000000000000:1:20:9223372036854775807: ++%*25lli: +0x8000000000000000:0:20: ++%25lli: +01000000000000000000000:1:25:9223372036854775807: ++%*25lli: +01000000000000000000000:0:25: ++%25lli: +0B1000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: ++%*25lli: +0B1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lli: +0b1000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: ++%*25lli: +0b1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lli: +9223372036897200049:1:21:9223372036854775807: ++%*25lli: +9223372036897200049:0:21: ++%25lli: +0X80000000028757b1:1:20:9223372036854775807: ++%*25lli: +0X80000000028757b1:0:20: ++%25lli: +0x80000000028757B1:1:20:9223372036854775807: ++%*25lli: +0x80000000028757B1:0:20: ++%25lli: +01000000000000241653661:1:25:9223372036854775807: ++%*25lli: +01000000000000241653661:0:25: ++%25lli: +0B1000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: ++%*25lli: +0B1000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25lli: +0b1000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: ++%*25lli: +0b1000000000000000000000000000000000000010100001110101011110110001:0:26: +diff --git a/stdio-common/tst-scanf-format-real.h b/stdio-common/tst-scanf-format-real.h +new file mode 100644 +index 0000000000000000..639ac749735886a2 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-real.h +@@ -0,0 +1,363 @@ ++/* Test feature wrapper for formatted real input. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++/* Reference data is a case-inensitive signed datum, which is either a ++ hexadecimal floating constant or a literal representing infinity or ++ NaN data in any of the forms accepted by 'strtod' family functions, ++ whose binary representation is to match against byte-wise. ++ ++ We need to be careful with parsing reference data in the handling of ++ the sign as with the IBM long double binary format unary negation ++ of a positive value whose lower-magnitude part is zero produces a ++ bit pattern that is different from one produced by initialization or ++ conversions made by functions such as 'scanf' or 'strtod' from the ++ complementing negative value. The difference is in the sign of zero ++ held in the lower-magnitude part and therefore the bit patterns are ++ arithmetically equivalent, but they do not match byte-wise. ++ ++ Therefore we set the sign with the initial value of the significand, ++ either -0.0 or 0.0, which sets the sign of both parts according to ++ what 'scanf' does, and never negate it afterwards. ++ ++ Additionally the Intel long double binary format uses only 80 bits ++ out of 96 that the data type occupies. Therefore preinitialize the ++ reference value with the same 0xa5 bit pattern that the value under ++ test has been so that the byte-wise comparison matches as well for ++ the unused parts of the two data pieces. ++ ++ We use 'ldexp' to assemble the significand with the exponent, which ++ does not compromise verification, because internally this exercises ++ a code path different from one used by 'scanf' family functions for ++ this purpose. Specifically 'ldexp' uses 'scalbn', whereas 'scanf' ++ defers to 'strtod' which uses '__mpn_construct_double'. Analogously ++ for the remaining floating-point data types. */ ++ ++#define nan(v, x) \ ++ _Generic((v), float: nanf, double: nan, long double: nanl) (x) ++ ++#define pointer_to_value(val) (&(val)) ++ ++#define initialize_value(val) \ ++ memset (&val, 0xa5, sizeof (val)) ++ ++#define compare_real(x, y) \ ++ (memcmp (&(x), &(y), sizeof (y)) == 0) ++ ++#define verify_input(f, val, count, errp) \ ++({ \ ++ __label__ out; \ ++ bool match = true; \ ++ int err = 0; \ ++ type_t v; \ ++ \ ++ initialize_value (v); \ ++ /* Make sure it's been committed. */ \ ++ __asm__ ("" : : : "memory"); \ ++ v = read_real (&err); \ ++ if (err < 0) \ ++ goto out; \ ++ match = compare_real (val, v); \ ++ \ ++out: \ ++ if (err || !match) \ ++ { \ ++ union \ ++ { \ ++ type_t v; \ ++ unsigned char x[sizeof (type_t)]; \ ++ } \ ++ uv = { .v = v }, ui = { .v = val }; \ ++ \ ++ printf ("error: %s:%d: input buffer: `", __FILE__, __LINE__); \ ++ for (size_t j = 0; j < sizeof (ui.x); j++) \ ++ printf ("%02hhx", ui.x[j]); \ ++ printf ("'\n"); \ ++ printf ("error: %s:%d: value buffer: `", __FILE__, __LINE__); \ ++ for (size_t j = 0; j < sizeof (uv.x); j++) \ ++ printf ("%02hhx", uv.x[j]); \ ++ printf ("'\n"); \ ++ } \ ++ \ ++ *errp = err; \ ++ match; \ ++}) ++ ++#define read_real(errp) \ ++({ \ ++ __label__ out; \ ++ bool m = false; \ ++ int err = 0; \ ++ type_t v; \ ++ int ch; \ ++ \ ++ ch = read_input (); \ ++ if (ch == '-' || ch == '+') \ ++ { \ ++ m = ch == '-'; \ ++ ch = read_input (); \ ++ } \ ++ \ ++ switch (ch) \ ++ { \ ++ case '0': \ ++ break; \ ++ case 'I': \ ++ case 'i': \ ++ { \ ++ static const char unf[] = { 'N', 'F' }; \ ++ static const char lnf[] = { 'n', 'f' }; \ ++ size_t i; \ ++ \ ++ for (i = 0; i < sizeof (unf); i++) \ ++ { \ ++ ch = read_input (); \ ++ if (ch != unf[i] && ch != lnf[i]) \ ++ { \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ } \ ++ \ ++ ch = read_input (); \ ++ if (ch == ':') \ ++ { \ ++ v = m ? -INFINITY : +INFINITY; \ ++ goto out; \ ++ } \ ++ \ ++ static const char uinity[] = { 'I', 'N', 'I', 'T', 'Y' }; \ ++ static const char linity[] = { 'i', 'n', 'i', 't', 'y' }; \ ++ \ ++ for (i = 0; i < sizeof (uinity); i++) \ ++ { \ ++ if (ch != uinity[i] && ch != linity[i]) \ ++ { \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ ch = read_input (); \ ++ } \ ++ if (ch == ':') \ ++ { \ ++ v = m ? -INFINITY : +INFINITY; \ ++ goto out; \ ++ } \ ++ } \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ \ ++ case 'N': \ ++ case 'n': \ ++ { \ ++ static const char uan[] = { 'A', 'N' }; \ ++ static const char lan[] = { 'a', 'n' }; \ ++ size_t i; \ ++ \ ++ for (i = 0; i < sizeof (uan); i++) \ ++ { \ ++ ch = read_input (); \ ++ if (ch != uan[i] && ch != lan[i]) \ ++ { \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ } \ ++ \ ++ ch = read_input (); \ ++ if (ch == ':') \ ++ { \ ++ v = m ? -nan (v, ".") : nan (v, "."); \ ++ goto out; \ ++ } \ ++ \ ++ size_t seq_size = 0; \ ++ char *seq = NULL; \ ++ i = 0; \ ++ if (ch == '(') \ ++ while (1) \ ++ { \ ++ ch = read_input (); \ ++ if (ch == ')') \ ++ break; \ ++ if (ch != '_' && !isdigit (ch) \ ++ && !(ch >= 'A' && ch <= 'Z') \ ++ && !(ch >= 'a' && ch <= 'z')) \ ++ { \ ++ free (seq); \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ if (i == seq_size) \ ++ { \ ++ seq_size += SIZE_CHUNK; \ ++ seq = xrealloc (seq, seq_size); \ ++ } \ ++ seq[i++] = ch; \ ++ } \ ++ seq[i] = '\0'; \ ++ \ ++ ch = read_input (); \ ++ if (ch == ':') \ ++ { \ ++ v = m ? -nan (v, seq) : nan (v, seq); \ ++ free (seq); \ ++ goto out; \ ++ } \ ++ free (seq); \ ++ } \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ \ ++ default: \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ \ ++ ch = read_input (); \ ++ if (ch != 'X' && ch != 'x') \ ++ { \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ \ ++ type_t f = m ? -1.0 : 1.0; \ ++ v = m ? -0.0 : 0.0; \ ++ int i = 0; \ ++ do \ ++ { \ ++ int d = 0; \ ++ \ ++ ch = read_input (); \ ++ \ ++ if (i == 1) \ ++ switch (ch) \ ++ { \ ++ case '.': \ ++ i++; \ ++ continue; \ ++ \ ++ case ':': \ ++ case 'P': \ ++ case 'p': \ ++ break; \ ++ \ ++ default: \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ \ ++ switch (ch) \ ++ { \ ++ case '0': \ ++ case '1': \ ++ case '2': \ ++ case '3': \ ++ case '4': \ ++ case '5': \ ++ case '6': \ ++ case '7': \ ++ case '8': \ ++ case '9': \ ++ d = ch - '0'; \ ++ break; \ ++ \ ++ case 'A': \ ++ case 'B': \ ++ case 'C': \ ++ case 'D': \ ++ case 'E': \ ++ case 'F': \ ++ d = ch - 'A' + 10; \ ++ break; \ ++ \ ++ case 'a': \ ++ case 'b': \ ++ case 'c': \ ++ case 'd': \ ++ case 'e': \ ++ case 'f': \ ++ d = ch - 'a' + 10; \ ++ break; \ ++ \ ++ case ':': \ ++ case 'P': \ ++ case 'p': \ ++ if (i == 0) \ ++ { \ ++ err = INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ break; \ ++ \ ++ default: \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ \ ++ v += f * d; \ ++ f /= 16.0l; \ ++ i++; \ ++ } \ ++ while (ch != ':' && ch != 'P' && ch != 'p'); \ ++ \ ++ long long exp = 0; \ ++ if (ch == 'P' || ch == 'p') \ ++ { \ ++ exp = read_integer (&err); \ ++ if (err) \ ++ { \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ } \ ++ \ ++ errno = 0; \ ++ v = ldexp (v, exp); \ ++ if ((v == HUGE_VALL || v == -HUGE_VALL) && errno != 0) \ ++ { \ ++ err = INPUT_OVERFLOW; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ \ ++out: \ ++ *errp = err; \ ++ v; \ ++}) +diff --git a/stdio-common/tst-scanf-format-s-c.c b/stdio-common/tst-scanf-format-s-c.c +new file mode 100644 +index 0000000000000000..bbfc0000ff582801 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-c.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for the character conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-character.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-char.c b/stdio-common/tst-scanf-format-s-char.c +new file mode 100644 +index 0000000000000000..c13527deb87fe7c9 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-char.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for signed char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-double.c b/stdio-common/tst-scanf-format-s-double.c +new file mode 100644 +index 0000000000000000..4baad01d51cb376f +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-double.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-real.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-float.c b/stdio-common/tst-scanf-format-s-float.c +new file mode 100644 +index 0000000000000000..301b2621e9112e26 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-float.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for float conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-real.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-int.c b/stdio-common/tst-scanf-format-s-int.c +new file mode 100644 +index 0000000000000000..e176fe9df4b0464f +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-int.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-ldouble.c b/stdio-common/tst-scanf-format-s-ldouble.c +new file mode 100644 +index 0000000000000000..dbb007ce93559ccf +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-ldouble.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for long double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-real.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-llong.c b/stdio-common/tst-scanf-format-s-llong.c +new file mode 100644 +index 0000000000000000..fe3d11a982c319c7 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-llong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for long long conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-long.c b/stdio-common/tst-scanf-format-s-long.c +new file mode 100644 +index 0000000000000000..415e5fae2cdf6d58 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-long.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for long conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-short.c b/stdio-common/tst-scanf-format-s-short.c +new file mode 100644 +index 0000000000000000..d545ee26d7e8367e +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-short.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-uchar.c b/stdio-common/tst-scanf-format-s-uchar.c +new file mode 100644 +index 0000000000000000..a1a7f73f84efa642 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-uchar.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for unsigned char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-uint.c b/stdio-common/tst-scanf-format-s-uint.c +new file mode 100644 +index 0000000000000000..27b0f4af5a26ec30 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-uint.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for unsigned int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-ullong.c b/stdio-common/tst-scanf-format-s-ullong.c +new file mode 100644 +index 0000000000000000..9cc45b4257120ddb +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-ullong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for unsigned long long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-ulong.c b/stdio-common/tst-scanf-format-s-ulong.c +new file mode 100644 +index 0000000000000000..9c5543e5edffb1ac +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-ulong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for unsigned long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-ushort.c b/stdio-common/tst-scanf-format-s-ushort.c +new file mode 100644 +index 0000000000000000..052a1caa7b35b495 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-ushort.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for unsigned short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s.h b/stdio-common/tst-scanf-format-s.h +new file mode 100644 +index 0000000000000000..dec38afd11bc26b6 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s.h +@@ -0,0 +1,29 @@ ++/* Test feature wrapper for formatted 'scanf' input. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define scanf_under_test(...) \ ++({ \ ++ int result = scanf (__VA_ARGS__); \ ++ if (ferror (stdin)) \ ++ result = INPUT_ERROR; \ ++ else if (result == EOF) \ ++ result = INPUT_EOF; \ ++ result; \ ++}) +diff --git a/stdio-common/tst-scanf-format-short-d.input b/stdio-common/tst-scanf-format-short-d.input +new file mode 100644 +index 0000000000000000..5d009324926e1f8d +--- /dev/null ++++ b/stdio-common/tst-scanf-format-short-d.input +@@ -0,0 +1,266 @@ ++%hd::0:-1: ++%*hd::0:-1: ++%hd:-32891:1:6:32645: ++%*hd:-32891:0:6: ++%hd:-32769:1:6:32767: ++%*hd:-32769:0:6: ++%hd:-32768:1:6:-32768: ++%*hd:-32768:0:6: ++%hd:-123:1:4:-123: ++%*hd:-123:0:4: ++%hd:-1:1:2:-1: ++%*hd:-1:0:2: ++%hd:-0:1:2:0: ++%*hd:-0:0:2: ++%hd:0:1:1:0: ++%*hd:0:0:1: ++%hd:1:1:1:1: ++%*hd:1:0:1: ++%hd:42:1:2:42: ++%*hd:42:0:2: ++%hd:32767:1:5:32767: ++%*hd:32767:0:5: ++%hd:32768:1:5:-32768: ++%*hd:32768:0:5: ++%hd:32809:1:5:-32727: ++%*hd:32809:0:5: ++%hd:+0:1:2:0: ++%*hd:+0:0:2: ++%hd:+1:1:2:1: ++%*hd:+1:0:2: ++%hd:+42:1:3:42: ++%*hd:+42:0:3: ++%hd:+32767:1:6:32767: ++%*hd:+32767:0:6: ++%hd:+32768:1:6:-32768: ++%*hd:+32768:0:6: ++%hd:+32809:1:6:-32727: ++%*hd:+32809:0:6: ++%1hd::0:-1: ++%*1hd::0:-1: ++%1hd:-32891:0:-1: ++%*1hd:-32891:0:-1: ++%1hd:-32769:0:-1: ++%*1hd:-32769:0:-1: ++%1hd:-32768:0:-1: ++%*1hd:-32768:0:-1: ++%1hd:-123:0:-1: ++%*1hd:-123:0:-1: ++%1hd:-1:0:-1: ++%*1hd:-1:0:-1: ++%1hd:-0:0:-1: ++%*1hd:-0:0:-1: ++%1hd:0:1:1:0: ++%*1hd:0:0:1: ++%1hd:1:1:1:1: ++%*1hd:1:0:1: ++%1hd:42:1:1:4: ++%*1hd:42:0:1: ++%1hd:32767:1:1:3: ++%*1hd:32767:0:1: ++%1hd:32768:1:1:3: ++%*1hd:32768:0:1: ++%1hd:32809:1:1:3: ++%*1hd:32809:0:1: ++%1hd:+0:0:-1: ++%*1hd:+0:0:-1: ++%1hd:+1:0:-1: ++%*1hd:+1:0:-1: ++%1hd:+42:0:-1: ++%*1hd:+42:0:-1: ++%1hd:+32767:0:-1: ++%*1hd:+32767:0:-1: ++%1hd:+32768:0:-1: ++%*1hd:+32768:0:-1: ++%1hd:+32809:0:-1: ++%*1hd:+32809:0:-1: ++%2hd::0:-1: ++%*2hd::0:-1: ++%2hd:-32891:1:2:-3: ++%*2hd:-32891:0:2: ++%2hd:-32769:1:2:-3: ++%*2hd:-32769:0:2: ++%2hd:-32768:1:2:-3: ++%*2hd:-32768:0:2: ++%2hd:-123:1:2:-1: ++%*2hd:-123:0:2: ++%2hd:-1:1:2:-1: ++%*2hd:-1:0:2: ++%2hd:-0:1:2:0: ++%*2hd:-0:0:2: ++%2hd:0:1:1:0: ++%*2hd:0:0:1: ++%2hd:1:1:1:1: ++%*2hd:1:0:1: ++%2hd:42:1:2:42: ++%*2hd:42:0:2: ++%2hd:32767:1:2:32: ++%*2hd:32767:0:2: ++%2hd:32768:1:2:32: ++%*2hd:32768:0:2: ++%2hd:32809:1:2:32: ++%*2hd:32809:0:2: ++%2hd:+0:1:2:0: ++%*2hd:+0:0:2: ++%2hd:+1:1:2:1: ++%*2hd:+1:0:2: ++%2hd:+42:1:2:4: ++%*2hd:+42:0:2: ++%2hd:+32767:1:2:3: ++%*2hd:+32767:0:2: ++%2hd:+32768:1:2:3: ++%*2hd:+32768:0:2: ++%2hd:+32809:1:2:3: ++%*2hd:+32809:0:2: ++%4hd::0:-1: ++%*4hd::0:-1: ++%4hd:-32891:1:4:-328: ++%*4hd:-32891:0:4: ++%4hd:-32769:1:4:-327: ++%*4hd:-32769:0:4: ++%4hd:-32768:1:4:-327: ++%*4hd:-32768:0:4: ++%4hd:-123:1:4:-123: ++%*4hd:-123:0:4: ++%4hd:-1:1:2:-1: ++%*4hd:-1:0:2: ++%4hd:-0:1:2:0: ++%*4hd:-0:0:2: ++%4hd:0:1:1:0: ++%*4hd:0:0:1: ++%4hd:1:1:1:1: ++%*4hd:1:0:1: ++%4hd:42:1:2:42: ++%*4hd:42:0:2: ++%4hd:32767:1:4:3276: ++%*4hd:32767:0:4: ++%4hd:32768:1:4:3276: ++%*4hd:32768:0:4: ++%4hd:32809:1:4:3280: ++%*4hd:32809:0:4: ++%4hd:+0:1:2:0: ++%*4hd:+0:0:2: ++%4hd:+1:1:2:1: ++%*4hd:+1:0:2: ++%4hd:+42:1:3:42: ++%*4hd:+42:0:3: ++%4hd:+32767:1:4:327: ++%*4hd:+32767:0:4: ++%4hd:+32768:1:4:327: ++%*4hd:+32768:0:4: ++%4hd:+32809:1:4:328: ++%*4hd:+32809:0:4: ++%7hd::0:-1: ++%*7hd::0:-1: ++%7hd:-32891:1:6:32645: ++%*7hd:-32891:0:6: ++%7hd:-32769:1:6:32767: ++%*7hd:-32769:0:6: ++%7hd:-32768:1:6:-32768: ++%*7hd:-32768:0:6: ++%7hd:-123:1:4:-123: ++%*7hd:-123:0:4: ++%7hd:-1:1:2:-1: ++%*7hd:-1:0:2: ++%7hd:-0:1:2:0: ++%*7hd:-0:0:2: ++%7hd:0:1:1:0: ++%*7hd:0:0:1: ++%7hd:1:1:1:1: ++%*7hd:1:0:1: ++%7hd:42:1:2:42: ++%*7hd:42:0:2: ++%7hd:32767:1:5:32767: ++%*7hd:32767:0:5: ++%7hd:32768:1:5:-32768: ++%*7hd:32768:0:5: ++%7hd:32809:1:5:-32727: ++%*7hd:32809:0:5: ++%7hd:+0:1:2:0: ++%*7hd:+0:0:2: ++%7hd:+1:1:2:1: ++%*7hd:+1:0:2: ++%7hd:+42:1:3:42: ++%*7hd:+42:0:3: ++%7hd:+32767:1:6:32767: ++%*7hd:+32767:0:6: ++%7hd:+32768:1:6:-32768: ++%*7hd:+32768:0:6: ++%7hd:+32809:1:6:-32727: ++%*7hd:+32809:0:6: ++%2hd: :0:-1: ++%*2hd: :0:-1: ++%2hd: -32891:1:3:-3: ++%*2hd: -32891:0:3: ++%2hd: -32769:1:3:-3: ++%*2hd: -32769:0:3: ++%2hd: -32768:1:3:-3: ++%*2hd: -32768:0:3: ++%2hd: -123:1:3:-1: ++%*2hd: -123:0:3: ++%2hd: -1:1:3:-1: ++%*2hd: -1:0:3: ++%2hd: -0:1:3:0: ++%*2hd: -0:0:3: ++%2hd: 0:1:2:0: ++%*2hd: 0:0:2: ++%2hd: 1:1:2:1: ++%*2hd: 1:0:2: ++%2hd: 42:1:3:42: ++%*2hd: 42:0:3: ++%2hd: 32767:1:3:32: ++%*2hd: 32767:0:3: ++%2hd: 32768:1:3:32: ++%*2hd: 32768:0:3: ++%2hd: 32809:1:3:32: ++%*2hd: 32809:0:3: ++%2hd: +0:1:3:0: ++%*2hd: +0:0:3: ++%2hd: +1:1:3:1: ++%*2hd: +1:0:3: ++%2hd: +42:1:3:4: ++%*2hd: +42:0:3: ++%2hd: +32767:1:3:3: ++%*2hd: +32767:0:3: ++%2hd: +32768:1:3:3: ++%*2hd: +32768:0:3: ++%2hd: +32809:1:3:3: ++%*2hd: +32809:0:3: ++%7hd: :0:-1: ++%*7hd: :0:-1: ++%7hd: -32891:1:7:32645: ++%*7hd: -32891:0:7: ++%7hd: -32769:1:7:32767: ++%*7hd: -32769:0:7: ++%7hd: -32768:1:7:-32768: ++%*7hd: -32768:0:7: ++%7hd: -123:1:5:-123: ++%*7hd: -123:0:5: ++%7hd: -1:1:3:-1: ++%*7hd: -1:0:3: ++%7hd: -0:1:3:0: ++%*7hd: -0:0:3: ++%7hd: 0:1:2:0: ++%*7hd: 0:0:2: ++%7hd: 1:1:2:1: ++%*7hd: 1:0:2: ++%7hd: 42:1:3:42: ++%*7hd: 42:0:3: ++%7hd: 32767:1:6:32767: ++%*7hd: 32767:0:6: ++%7hd: 32768:1:6:-32768: ++%*7hd: 32768:0:6: ++%7hd: 32809:1:6:-32727: ++%*7hd: 32809:0:6: ++%7hd: +0:1:3:0: ++%*7hd: +0:0:3: ++%7hd: +1:1:3:1: ++%*7hd: +1:0:3: ++%7hd: +42:1:4:42: ++%*7hd: +42:0:4: ++%7hd: +32767:1:7:32767: ++%*7hd: +32767:0:7: ++%7hd: +32768:1:7:-32768: ++%*7hd: +32768:0:7: ++%7hd: +32809:1:7:-32727: ++%*7hd: +32809:0:7: +diff --git a/stdio-common/tst-scanf-format-short-i.input b/stdio-common/tst-scanf-format-short-i.input +new file mode 100644 +index 0000000000000000..5beae7bbb4ef0197 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-short-i.input +@@ -0,0 +1,1526 @@ ++%hi::0:-1: ++%*hi::0:-1: ++%hi:-32891:1:6:32645: ++%*hi:-32891:0:6: ++%hi:-0X807b:1:7:32645: ++%*hi:-0X807b:0:7: ++%hi:-0x807B:1:7:32645: ++%*hi:-0x807B:0:7: ++%hi:-0100173:1:8:32645: ++%*hi:-0100173:0:8: ++%hi:-0B1000000001111011:1:19:32645: ++%*hi:-0B1000000001111011:0:19: ++%hi:-0b1000000001111011:1:19:32645: ++%*hi:-0b1000000001111011:0:19: ++%hi:-32769:1:6:32767: ++%*hi:-32769:0:6: ++%hi:-0X8001:1:7:32767: ++%*hi:-0X8001:0:7: ++%hi:-0x8001:1:7:32767: ++%*hi:-0x8001:0:7: ++%hi:-0100001:1:8:32767: ++%*hi:-0100001:0:8: ++%hi:-0B1000000000000001:1:19:32767: ++%*hi:-0B1000000000000001:0:19: ++%hi:-0b1000000000000001:1:19:32767: ++%*hi:-0b1000000000000001:0:19: ++%hi:-32768:1:6:-32768: ++%*hi:-32768:0:6: ++%hi:-0X8000:1:7:-32768: ++%*hi:-0X8000:0:7: ++%hi:-0x8000:1:7:-32768: ++%*hi:-0x8000:0:7: ++%hi:-0100000:1:8:-32768: ++%*hi:-0100000:0:8: ++%hi:-0B1000000000000000:1:19:-32768: ++%*hi:-0B1000000000000000:0:19: ++%hi:-0b1000000000000000:1:19:-32768: ++%*hi:-0b1000000000000000:0:19: ++%hi:-123:1:4:-123: ++%*hi:-123:0:4: ++%hi:-0X7b:1:5:-123: ++%*hi:-0X7b:0:5: ++%hi:-0x7B:1:5:-123: ++%*hi:-0x7B:0:5: ++%hi:-0173:1:5:-123: ++%*hi:-0173:0:5: ++%hi:-0B1111011:1:10:-123: ++%*hi:-0B1111011:0:10: ++%hi:-0b1111011:1:10:-123: ++%*hi:-0b1111011:0:10: ++%hi:-1:1:2:-1: ++%*hi:-1:0:2: ++%hi:-0X1:1:4:-1: ++%*hi:-0X1:0:4: ++%hi:-0x1:1:4:-1: ++%*hi:-0x1:0:4: ++%hi:-01:1:3:-1: ++%*hi:-01:0:3: ++%hi:-0B1:1:4:-1: ++%*hi:-0B1:0:4: ++%hi:-0b1:1:4:-1: ++%*hi:-0b1:0:4: ++%hi:-0:1:2:0: ++%*hi:-0:0:2: ++%hi:-0X0:1:4:0: ++%*hi:-0X0:0:4: ++%hi:-0x0:1:4:0: ++%*hi:-0x0:0:4: ++%hi:-00:1:3:0: ++%*hi:-00:0:3: ++%hi:-0B0:1:4:0: ++%*hi:-0B0:0:4: ++%hi:-0b0:1:4:0: ++%*hi:-0b0:0:4: ++%hi:0:1:1:0: ++%*hi:0:0:1: ++%hi:0X0:1:3:0: ++%*hi:0X0:0:3: ++%hi:0x0:1:3:0: ++%*hi:0x0:0:3: ++%hi:00:1:2:0: ++%*hi:00:0:2: ++%hi:0B0:1:3:0: ++%*hi:0B0:0:3: ++%hi:0b0:1:3:0: ++%*hi:0b0:0:3: ++%hi:1:1:1:1: ++%*hi:1:0:1: ++%hi:0X1:1:3:1: ++%*hi:0X1:0:3: ++%hi:0x1:1:3:1: ++%*hi:0x1:0:3: ++%hi:01:1:2:1: ++%*hi:01:0:2: ++%hi:0B1:1:3:1: ++%*hi:0B1:0:3: ++%hi:0b1:1:3:1: ++%*hi:0b1:0:3: ++%hi:42:1:2:42: ++%*hi:42:0:2: ++%hi:0X2a:1:4:42: ++%*hi:0X2a:0:4: ++%hi:0x2A:1:4:42: ++%*hi:0x2A:0:4: ++%hi:052:1:3:42: ++%*hi:052:0:3: ++%hi:0B101010:1:8:42: ++%*hi:0B101010:0:8: ++%hi:0b101010:1:8:42: ++%*hi:0b101010:0:8: ++%hi:32767:1:5:32767: ++%*hi:32767:0:5: ++%hi:0X7fff:1:6:32767: ++%*hi:0X7fff:0:6: ++%hi:0x7FFF:1:6:32767: ++%*hi:0x7FFF:0:6: ++%hi:077777:1:6:32767: ++%*hi:077777:0:6: ++%hi:0B111111111111111:1:17:32767: ++%*hi:0B111111111111111:0:17: ++%hi:0b111111111111111:1:17:32767: ++%*hi:0b111111111111111:0:17: ++%hi:32768:1:5:-32768: ++%*hi:32768:0:5: ++%hi:0X8000:1:6:-32768: ++%*hi:0X8000:0:6: ++%hi:0x8000:1:6:-32768: ++%*hi:0x8000:0:6: ++%hi:0100000:1:7:-32768: ++%*hi:0100000:0:7: ++%hi:0B1000000000000000:1:18:-32768: ++%*hi:0B1000000000000000:0:18: ++%hi:0b1000000000000000:1:18:-32768: ++%*hi:0b1000000000000000:0:18: ++%hi:32809:1:5:-32727: ++%*hi:32809:0:5: ++%hi:0X8029:1:6:-32727: ++%*hi:0X8029:0:6: ++%hi:0x8029:1:6:-32727: ++%*hi:0x8029:0:6: ++%hi:0100051:1:7:-32727: ++%*hi:0100051:0:7: ++%hi:0B1000000000101001:1:18:-32727: ++%*hi:0B1000000000101001:0:18: ++%hi:0b1000000000101001:1:18:-32727: ++%*hi:0b1000000000101001:0:18: ++%hi:+0:1:2:0: ++%*hi:+0:0:2: ++%hi:+0X0:1:4:0: ++%*hi:+0X0:0:4: ++%hi:+0x0:1:4:0: ++%*hi:+0x0:0:4: ++%hi:+00:1:3:0: ++%*hi:+00:0:3: ++%hi:+0B0:1:4:0: ++%*hi:+0B0:0:4: ++%hi:+0b0:1:4:0: ++%*hi:+0b0:0:4: ++%hi:+1:1:2:1: ++%*hi:+1:0:2: ++%hi:+0X1:1:4:1: ++%*hi:+0X1:0:4: ++%hi:+0x1:1:4:1: ++%*hi:+0x1:0:4: ++%hi:+01:1:3:1: ++%*hi:+01:0:3: ++%hi:+0B1:1:4:1: ++%*hi:+0B1:0:4: ++%hi:+0b1:1:4:1: ++%*hi:+0b1:0:4: ++%hi:+42:1:3:42: ++%*hi:+42:0:3: ++%hi:+0X2a:1:5:42: ++%*hi:+0X2a:0:5: ++%hi:+0x2A:1:5:42: ++%*hi:+0x2A:0:5: ++%hi:+052:1:4:42: ++%*hi:+052:0:4: ++%hi:+0B101010:1:9:42: ++%*hi:+0B101010:0:9: ++%hi:+0b101010:1:9:42: ++%*hi:+0b101010:0:9: ++%hi:+32767:1:6:32767: ++%*hi:+32767:0:6: ++%hi:+0X7fff:1:7:32767: ++%*hi:+0X7fff:0:7: ++%hi:+0x7FFF:1:7:32767: ++%*hi:+0x7FFF:0:7: ++%hi:+077777:1:7:32767: ++%*hi:+077777:0:7: ++%hi:+0B111111111111111:1:18:32767: ++%*hi:+0B111111111111111:0:18: ++%hi:+0b111111111111111:1:18:32767: ++%*hi:+0b111111111111111:0:18: ++%hi:+32768:1:6:-32768: ++%*hi:+32768:0:6: ++%hi:+0X8000:1:7:-32768: ++%*hi:+0X8000:0:7: ++%hi:+0x8000:1:7:-32768: ++%*hi:+0x8000:0:7: ++%hi:+0100000:1:8:-32768: ++%*hi:+0100000:0:8: ++%hi:+0B1000000000000000:1:19:-32768: ++%*hi:+0B1000000000000000:0:19: ++%hi:+0b1000000000000000:1:19:-32768: ++%*hi:+0b1000000000000000:0:19: ++%hi:+32809:1:6:-32727: ++%*hi:+32809:0:6: ++%hi:+0X8029:1:7:-32727: ++%*hi:+0X8029:0:7: ++%hi:+0x8029:1:7:-32727: ++%*hi:+0x8029:0:7: ++%hi:+0100051:1:8:-32727: ++%*hi:+0100051:0:8: ++%hi:+0B1000000000101001:1:19:-32727: ++%*hi:+0B1000000000101001:0:19: ++%hi:+0b1000000000101001:1:19:-32727: ++%*hi:+0b1000000000101001:0:19: ++%1hi::0:-1: ++%*1hi::0:-1: ++%1hi:-32891:0:-1: ++%*1hi:-32891:0:-1: ++%1hi:-0X807b:0:-1: ++%*1hi:-0X807b:0:-1: ++%1hi:-0x807B:0:-1: ++%*1hi:-0x807B:0:-1: ++%1hi:-0100173:0:-1: ++%*1hi:-0100173:0:-1: ++%1hi:-0B1000000001111011:0:-1: ++%*1hi:-0B1000000001111011:0:-1: ++%1hi:-0b1000000001111011:0:-1: ++%*1hi:-0b1000000001111011:0:-1: ++%1hi:-32769:0:-1: ++%*1hi:-32769:0:-1: ++%1hi:-0X8001:0:-1: ++%*1hi:-0X8001:0:-1: ++%1hi:-0x8001:0:-1: ++%*1hi:-0x8001:0:-1: ++%1hi:-0100001:0:-1: ++%*1hi:-0100001:0:-1: ++%1hi:-0B1000000000000001:0:-1: ++%*1hi:-0B1000000000000001:0:-1: ++%1hi:-0b1000000000000001:0:-1: ++%*1hi:-0b1000000000000001:0:-1: ++%1hi:-32768:0:-1: ++%*1hi:-32768:0:-1: ++%1hi:-0X8000:0:-1: ++%*1hi:-0X8000:0:-1: ++%1hi:-0x8000:0:-1: ++%*1hi:-0x8000:0:-1: ++%1hi:-0100000:0:-1: ++%*1hi:-0100000:0:-1: ++%1hi:-0B1000000000000000:0:-1: ++%*1hi:-0B1000000000000000:0:-1: ++%1hi:-0b1000000000000000:0:-1: ++%*1hi:-0b1000000000000000:0:-1: ++%1hi:-123:0:-1: ++%*1hi:-123:0:-1: ++%1hi:-0X7b:0:-1: ++%*1hi:-0X7b:0:-1: ++%1hi:-0x7B:0:-1: ++%*1hi:-0x7B:0:-1: ++%1hi:-0173:0:-1: ++%*1hi:-0173:0:-1: ++%1hi:-0B1111011:0:-1: ++%*1hi:-0B1111011:0:-1: ++%1hi:-0b1111011:0:-1: ++%*1hi:-0b1111011:0:-1: ++%1hi:-1:0:-1: ++%*1hi:-1:0:-1: ++%1hi:-0X1:0:-1: ++%*1hi:-0X1:0:-1: ++%1hi:-0x1:0:-1: ++%*1hi:-0x1:0:-1: ++%1hi:-01:0:-1: ++%*1hi:-01:0:-1: ++%1hi:-0B1:0:-1: ++%*1hi:-0B1:0:-1: ++%1hi:-0b1:0:-1: ++%*1hi:-0b1:0:-1: ++%1hi:-0:0:-1: ++%*1hi:-0:0:-1: ++%1hi:-0X0:0:-1: ++%*1hi:-0X0:0:-1: ++%1hi:-0x0:0:-1: ++%*1hi:-0x0:0:-1: ++%1hi:-00:0:-1: ++%*1hi:-00:0:-1: ++%1hi:-0B0:0:-1: ++%*1hi:-0B0:0:-1: ++%1hi:-0b0:0:-1: ++%*1hi:-0b0:0:-1: ++%1hi:0:1:1:0: ++%*1hi:0:0:1: ++%1hi:0X0:1:1:0: ++%*1hi:0X0:0:1: ++%1hi:0x0:1:1:0: ++%*1hi:0x0:0:1: ++%1hi:00:1:1:0: ++%*1hi:00:0:1: ++%1hi:0B0:1:1:0: ++%*1hi:0B0:0:1: ++%1hi:0b0:1:1:0: ++%*1hi:0b0:0:1: ++%1hi:1:1:1:1: ++%*1hi:1:0:1: ++%1hi:0X1:1:1:0: ++%*1hi:0X1:0:1: ++%1hi:0x1:1:1:0: ++%*1hi:0x1:0:1: ++%1hi:01:1:1:0: ++%*1hi:01:0:1: ++%1hi:0B1:1:1:0: ++%*1hi:0B1:0:1: ++%1hi:0b1:1:1:0: ++%*1hi:0b1:0:1: ++%1hi:42:1:1:4: ++%*1hi:42:0:1: ++%1hi:0X2a:1:1:0: ++%*1hi:0X2a:0:1: ++%1hi:0x2A:1:1:0: ++%*1hi:0x2A:0:1: ++%1hi:052:1:1:0: ++%*1hi:052:0:1: ++%1hi:0B101010:1:1:0: ++%*1hi:0B101010:0:1: ++%1hi:0b101010:1:1:0: ++%*1hi:0b101010:0:1: ++%1hi:32767:1:1:3: ++%*1hi:32767:0:1: ++%1hi:0X7fff:1:1:0: ++%*1hi:0X7fff:0:1: ++%1hi:0x7FFF:1:1:0: ++%*1hi:0x7FFF:0:1: ++%1hi:077777:1:1:0: ++%*1hi:077777:0:1: ++%1hi:0B111111111111111:1:1:0: ++%*1hi:0B111111111111111:0:1: ++%1hi:0b111111111111111:1:1:0: ++%*1hi:0b111111111111111:0:1: ++%1hi:32768:1:1:3: ++%*1hi:32768:0:1: ++%1hi:0X8000:1:1:0: ++%*1hi:0X8000:0:1: ++%1hi:0x8000:1:1:0: ++%*1hi:0x8000:0:1: ++%1hi:0100000:1:1:0: ++%*1hi:0100000:0:1: ++%1hi:0B1000000000000000:1:1:0: ++%*1hi:0B1000000000000000:0:1: ++%1hi:0b1000000000000000:1:1:0: ++%*1hi:0b1000000000000000:0:1: ++%1hi:32809:1:1:3: ++%*1hi:32809:0:1: ++%1hi:0X8029:1:1:0: ++%*1hi:0X8029:0:1: ++%1hi:0x8029:1:1:0: ++%*1hi:0x8029:0:1: ++%1hi:0100051:1:1:0: ++%*1hi:0100051:0:1: ++%1hi:0B1000000000101001:1:1:0: ++%*1hi:0B1000000000101001:0:1: ++%1hi:0b1000000000101001:1:1:0: ++%*1hi:0b1000000000101001:0:1: ++%1hi:+0:0:-1: ++%*1hi:+0:0:-1: ++%1hi:+0X0:0:-1: ++%*1hi:+0X0:0:-1: ++%1hi:+0x0:0:-1: ++%*1hi:+0x0:0:-1: ++%1hi:+00:0:-1: ++%*1hi:+00:0:-1: ++%1hi:+0B0:0:-1: ++%*1hi:+0B0:0:-1: ++%1hi:+0b0:0:-1: ++%*1hi:+0b0:0:-1: ++%1hi:+1:0:-1: ++%*1hi:+1:0:-1: ++%1hi:+0X1:0:-1: ++%*1hi:+0X1:0:-1: ++%1hi:+0x1:0:-1: ++%*1hi:+0x1:0:-1: ++%1hi:+01:0:-1: ++%*1hi:+01:0:-1: ++%1hi:+0B1:0:-1: ++%*1hi:+0B1:0:-1: ++%1hi:+0b1:0:-1: ++%*1hi:+0b1:0:-1: ++%1hi:+42:0:-1: ++%*1hi:+42:0:-1: ++%1hi:+0X2a:0:-1: ++%*1hi:+0X2a:0:-1: ++%1hi:+0x2A:0:-1: ++%*1hi:+0x2A:0:-1: ++%1hi:+052:0:-1: ++%*1hi:+052:0:-1: ++%1hi:+0B101010:0:-1: ++%*1hi:+0B101010:0:-1: ++%1hi:+0b101010:0:-1: ++%*1hi:+0b101010:0:-1: ++%1hi:+32767:0:-1: ++%*1hi:+32767:0:-1: ++%1hi:+0X7fff:0:-1: ++%*1hi:+0X7fff:0:-1: ++%1hi:+0x7FFF:0:-1: ++%*1hi:+0x7FFF:0:-1: ++%1hi:+077777:0:-1: ++%*1hi:+077777:0:-1: ++%1hi:+0B111111111111111:0:-1: ++%*1hi:+0B111111111111111:0:-1: ++%1hi:+0b111111111111111:0:-1: ++%*1hi:+0b111111111111111:0:-1: ++%1hi:+32768:0:-1: ++%*1hi:+32768:0:-1: ++%1hi:+0X8000:0:-1: ++%*1hi:+0X8000:0:-1: ++%1hi:+0x8000:0:-1: ++%*1hi:+0x8000:0:-1: ++%1hi:+0100000:0:-1: ++%*1hi:+0100000:0:-1: ++%1hi:+0B1000000000000000:0:-1: ++%*1hi:+0B1000000000000000:0:-1: ++%1hi:+0b1000000000000000:0:-1: ++%*1hi:+0b1000000000000000:0:-1: ++%1hi:+32809:0:-1: ++%*1hi:+32809:0:-1: ++%1hi:+0X8029:0:-1: ++%*1hi:+0X8029:0:-1: ++%1hi:+0x8029:0:-1: ++%*1hi:+0x8029:0:-1: ++%1hi:+0100051:0:-1: ++%*1hi:+0100051:0:-1: ++%1hi:+0B1000000000101001:0:-1: ++%*1hi:+0B1000000000101001:0:-1: ++%1hi:+0b1000000000101001:0:-1: ++%*1hi:+0b1000000000101001:0:-1: ++%2hi::0:-1: ++%*2hi::0:-1: ++%2hi:-32891:1:2:-3: ++%*2hi:-32891:0:2: ++%2hi:-0X807b:1:2:0: ++%*2hi:-0X807b:0:2: ++%2hi:-0x807B:1:2:0: ++%*2hi:-0x807B:0:2: ++%2hi:-0100173:1:2:0: ++%*2hi:-0100173:0:2: ++%2hi:-0B1000000001111011:1:2:0: ++%*2hi:-0B1000000001111011:0:2: ++%2hi:-0b1000000001111011:1:2:0: ++%*2hi:-0b1000000001111011:0:2: ++%2hi:-32769:1:2:-3: ++%*2hi:-32769:0:2: ++%2hi:-0X8001:1:2:0: ++%*2hi:-0X8001:0:2: ++%2hi:-0x8001:1:2:0: ++%*2hi:-0x8001:0:2: ++%2hi:-0100001:1:2:0: ++%*2hi:-0100001:0:2: ++%2hi:-0B1000000000000001:1:2:0: ++%*2hi:-0B1000000000000001:0:2: ++%2hi:-0b1000000000000001:1:2:0: ++%*2hi:-0b1000000000000001:0:2: ++%2hi:-32768:1:2:-3: ++%*2hi:-32768:0:2: ++%2hi:-0X8000:1:2:0: ++%*2hi:-0X8000:0:2: ++%2hi:-0x8000:1:2:0: ++%*2hi:-0x8000:0:2: ++%2hi:-0100000:1:2:0: ++%*2hi:-0100000:0:2: ++%2hi:-0B1000000000000000:1:2:0: ++%*2hi:-0B1000000000000000:0:2: ++%2hi:-0b1000000000000000:1:2:0: ++%*2hi:-0b1000000000000000:0:2: ++%2hi:-123:1:2:-1: ++%*2hi:-123:0:2: ++%2hi:-0X7b:1:2:0: ++%*2hi:-0X7b:0:2: ++%2hi:-0x7B:1:2:0: ++%*2hi:-0x7B:0:2: ++%2hi:-0173:1:2:0: ++%*2hi:-0173:0:2: ++%2hi:-0B1111011:1:2:0: ++%*2hi:-0B1111011:0:2: ++%2hi:-0b1111011:1:2:0: ++%*2hi:-0b1111011:0:2: ++%2hi:-1:1:2:-1: ++%*2hi:-1:0:2: ++%2hi:-0X1:1:2:0: ++%*2hi:-0X1:0:2: ++%2hi:-0x1:1:2:0: ++%*2hi:-0x1:0:2: ++%2hi:-01:1:2:0: ++%*2hi:-01:0:2: ++%2hi:-0B1:1:2:0: ++%*2hi:-0B1:0:2: ++%2hi:-0b1:1:2:0: ++%*2hi:-0b1:0:2: ++%2hi:-0:1:2:0: ++%*2hi:-0:0:2: ++%2hi:-0X0:1:2:0: ++%*2hi:-0X0:0:2: ++%2hi:-0x0:1:2:0: ++%*2hi:-0x0:0:2: ++%2hi:-00:1:2:0: ++%*2hi:-00:0:2: ++%2hi:-0B0:1:2:0: ++%*2hi:-0B0:0:2: ++%2hi:-0b0:1:2:0: ++%*2hi:-0b0:0:2: ++%2hi:0:1:1:0: ++%*2hi:0:0:1: ++# BZ12701 %2hi:0X0:0:-1: ++# BZ12701 %*2hi:0X0:0:-1: ++# BZ12701 %2hi:0x0:0:-1: ++# BZ12701 %*2hi:0x0:0:-1: ++%2hi:00:1:2:0: ++%*2hi:00:0:2: ++# BZ12701 %2hi:0B0:0:-1: ++# BZ12701 %*2hi:0B0:0:-1: ++# BZ12701 %2hi:0b0:0:-1: ++# BZ12701 %*2hi:0b0:0:-1: ++%2hi:1:1:1:1: ++%*2hi:1:0:1: ++# BZ12701 %2hi:0X1:0:-1: ++# BZ12701 %*2hi:0X1:0:-1: ++# BZ12701 %2hi:0x1:0:-1: ++# BZ12701 %*2hi:0x1:0:-1: ++%2hi:01:1:2:1: ++%*2hi:01:0:2: ++# BZ12701 %2hi:0B1:0:-1: ++# BZ12701 %*2hi:0B1:0:-1: ++# BZ12701 %2hi:0b1:0:-1: ++# BZ12701 %*2hi:0b1:0:-1: ++%2hi:42:1:2:42: ++%*2hi:42:0:2: ++# BZ12701 %2hi:0X2a:0:-1: ++# BZ12701 %*2hi:0X2a:0:-1: ++# BZ12701 %2hi:0x2A:0:-1: ++# BZ12701 %*2hi:0x2A:0:-1: ++%2hi:052:1:2:5: ++%*2hi:052:0:2: ++# BZ12701 %2hi:0B101010:0:-1: ++# BZ12701 %*2hi:0B101010:0:-1: ++# BZ12701 %2hi:0b101010:0:-1: ++# BZ12701 %*2hi:0b101010:0:-1: ++%2hi:32767:1:2:32: ++%*2hi:32767:0:2: ++# BZ12701 %2hi:0X7fff:0:-1: ++# BZ12701 %*2hi:0X7fff:0:-1: ++# BZ12701 %2hi:0x7FFF:0:-1: ++# BZ12701 %*2hi:0x7FFF:0:-1: ++%2hi:077777:1:2:7: ++%*2hi:077777:0:2: ++# BZ12701 %2hi:0B111111111111111:0:-1: ++# BZ12701 %*2hi:0B111111111111111:0:-1: ++# BZ12701 %2hi:0b111111111111111:0:-1: ++# BZ12701 %*2hi:0b111111111111111:0:-1: ++%2hi:32768:1:2:32: ++%*2hi:32768:0:2: ++# BZ12701 %2hi:0X8000:0:-1: ++# BZ12701 %*2hi:0X8000:0:-1: ++# BZ12701 %2hi:0x8000:0:-1: ++# BZ12701 %*2hi:0x8000:0:-1: ++%2hi:0100000:1:2:1: ++%*2hi:0100000:0:2: ++# BZ12701 %2hi:0B1000000000000000:0:-1: ++# BZ12701 %*2hi:0B1000000000000000:0:-1: ++# BZ12701 %2hi:0b1000000000000000:0:-1: ++# BZ12701 %*2hi:0b1000000000000000:0:-1: ++%2hi:32809:1:2:32: ++%*2hi:32809:0:2: ++# BZ12701 %2hi:0X8029:0:-1: ++# BZ12701 %*2hi:0X8029:0:-1: ++# BZ12701 %2hi:0x8029:0:-1: ++# BZ12701 %*2hi:0x8029:0:-1: ++%2hi:0100051:1:2:1: ++%*2hi:0100051:0:2: ++# BZ12701 %2hi:0B1000000000101001:0:-1: ++# BZ12701 %*2hi:0B1000000000101001:0:-1: ++# BZ12701 %2hi:0b1000000000101001:0:-1: ++# BZ12701 %*2hi:0b1000000000101001:0:-1: ++%2hi:+0:1:2:0: ++%*2hi:+0:0:2: ++%2hi:+0X0:1:2:0: ++%*2hi:+0X0:0:2: ++%2hi:+0x0:1:2:0: ++%*2hi:+0x0:0:2: ++%2hi:+00:1:2:0: ++%*2hi:+00:0:2: ++%2hi:+0B0:1:2:0: ++%*2hi:+0B0:0:2: ++%2hi:+0b0:1:2:0: ++%*2hi:+0b0:0:2: ++%2hi:+1:1:2:1: ++%*2hi:+1:0:2: ++%2hi:+0X1:1:2:0: ++%*2hi:+0X1:0:2: ++%2hi:+0x1:1:2:0: ++%*2hi:+0x1:0:2: ++%2hi:+01:1:2:0: ++%*2hi:+01:0:2: ++%2hi:+0B1:1:2:0: ++%*2hi:+0B1:0:2: ++%2hi:+0b1:1:2:0: ++%*2hi:+0b1:0:2: ++%2hi:+42:1:2:4: ++%*2hi:+42:0:2: ++%2hi:+0X2a:1:2:0: ++%*2hi:+0X2a:0:2: ++%2hi:+0x2A:1:2:0: ++%*2hi:+0x2A:0:2: ++%2hi:+052:1:2:0: ++%*2hi:+052:0:2: ++%2hi:+0B101010:1:2:0: ++%*2hi:+0B101010:0:2: ++%2hi:+0b101010:1:2:0: ++%*2hi:+0b101010:0:2: ++%2hi:+32767:1:2:3: ++%*2hi:+32767:0:2: ++%2hi:+0X7fff:1:2:0: ++%*2hi:+0X7fff:0:2: ++%2hi:+0x7FFF:1:2:0: ++%*2hi:+0x7FFF:0:2: ++%2hi:+077777:1:2:0: ++%*2hi:+077777:0:2: ++%2hi:+0B111111111111111:1:2:0: ++%*2hi:+0B111111111111111:0:2: ++%2hi:+0b111111111111111:1:2:0: ++%*2hi:+0b111111111111111:0:2: ++%2hi:+32768:1:2:3: ++%*2hi:+32768:0:2: ++%2hi:+0X8000:1:2:0: ++%*2hi:+0X8000:0:2: ++%2hi:+0x8000:1:2:0: ++%*2hi:+0x8000:0:2: ++%2hi:+0100000:1:2:0: ++%*2hi:+0100000:0:2: ++%2hi:+0B1000000000000000:1:2:0: ++%*2hi:+0B1000000000000000:0:2: ++%2hi:+0b1000000000000000:1:2:0: ++%*2hi:+0b1000000000000000:0:2: ++%2hi:+32809:1:2:3: ++%*2hi:+32809:0:2: ++%2hi:+0X8029:1:2:0: ++%*2hi:+0X8029:0:2: ++%2hi:+0x8029:1:2:0: ++%*2hi:+0x8029:0:2: ++%2hi:+0100051:1:2:0: ++%*2hi:+0100051:0:2: ++%2hi:+0B1000000000101001:1:2:0: ++%*2hi:+0B1000000000101001:0:2: ++%2hi:+0b1000000000101001:1:2:0: ++%*2hi:+0b1000000000101001:0:2: ++%4hi::0:-1: ++%*4hi::0:-1: ++%4hi:-32891:1:4:-328: ++%*4hi:-32891:0:4: ++%4hi:-0X807b:1:4:-8: ++%*4hi:-0X807b:0:4: ++%4hi:-0x807B:1:4:-8: ++%*4hi:-0x807B:0:4: ++%4hi:-0100173:1:4:-8: ++%*4hi:-0100173:0:4: ++%4hi:-0B1000000001111011:1:4:-1: ++%*4hi:-0B1000000001111011:0:4: ++%4hi:-0b1000000001111011:1:4:-1: ++%*4hi:-0b1000000001111011:0:4: ++%4hi:-32769:1:4:-327: ++%*4hi:-32769:0:4: ++%4hi:-0X8001:1:4:-8: ++%*4hi:-0X8001:0:4: ++%4hi:-0x8001:1:4:-8: ++%*4hi:-0x8001:0:4: ++%4hi:-0100001:1:4:-8: ++%*4hi:-0100001:0:4: ++%4hi:-0B1000000000000001:1:4:-1: ++%*4hi:-0B1000000000000001:0:4: ++%4hi:-0b1000000000000001:1:4:-1: ++%*4hi:-0b1000000000000001:0:4: ++%4hi:-32768:1:4:-327: ++%*4hi:-32768:0:4: ++%4hi:-0X8000:1:4:-8: ++%*4hi:-0X8000:0:4: ++%4hi:-0x8000:1:4:-8: ++%*4hi:-0x8000:0:4: ++%4hi:-0100000:1:4:-8: ++%*4hi:-0100000:0:4: ++%4hi:-0B1000000000000000:1:4:-1: ++%*4hi:-0B1000000000000000:0:4: ++%4hi:-0b1000000000000000:1:4:-1: ++%*4hi:-0b1000000000000000:0:4: ++%4hi:-123:1:4:-123: ++%*4hi:-123:0:4: ++%4hi:-0X7b:1:4:-7: ++%*4hi:-0X7b:0:4: ++%4hi:-0x7B:1:4:-7: ++%*4hi:-0x7B:0:4: ++%4hi:-0173:1:4:-15: ++%*4hi:-0173:0:4: ++%4hi:-0B1111011:1:4:-1: ++%*4hi:-0B1111011:0:4: ++%4hi:-0b1111011:1:4:-1: ++%*4hi:-0b1111011:0:4: ++%4hi:-1:1:2:-1: ++%*4hi:-1:0:2: ++%4hi:-0X1:1:4:-1: ++%*4hi:-0X1:0:4: ++%4hi:-0x1:1:4:-1: ++%*4hi:-0x1:0:4: ++%4hi:-01:1:3:-1: ++%*4hi:-01:0:3: ++%4hi:-0B1:1:4:-1: ++%*4hi:-0B1:0:4: ++%4hi:-0b1:1:4:-1: ++%*4hi:-0b1:0:4: ++%4hi:-0:1:2:0: ++%*4hi:-0:0:2: ++%4hi:-0X0:1:4:0: ++%*4hi:-0X0:0:4: ++%4hi:-0x0:1:4:0: ++%*4hi:-0x0:0:4: ++%4hi:-00:1:3:0: ++%*4hi:-00:0:3: ++%4hi:-0B0:1:4:0: ++%*4hi:-0B0:0:4: ++%4hi:-0b0:1:4:0: ++%*4hi:-0b0:0:4: ++%4hi:0:1:1:0: ++%*4hi:0:0:1: ++%4hi:0X0:1:3:0: ++%*4hi:0X0:0:3: ++%4hi:0x0:1:3:0: ++%*4hi:0x0:0:3: ++%4hi:00:1:2:0: ++%*4hi:00:0:2: ++%4hi:0B0:1:3:0: ++%*4hi:0B0:0:3: ++%4hi:0b0:1:3:0: ++%*4hi:0b0:0:3: ++%4hi:1:1:1:1: ++%*4hi:1:0:1: ++%4hi:0X1:1:3:1: ++%*4hi:0X1:0:3: ++%4hi:0x1:1:3:1: ++%*4hi:0x1:0:3: ++%4hi:01:1:2:1: ++%*4hi:01:0:2: ++%4hi:0B1:1:3:1: ++%*4hi:0B1:0:3: ++%4hi:0b1:1:3:1: ++%*4hi:0b1:0:3: ++%4hi:42:1:2:42: ++%*4hi:42:0:2: ++%4hi:0X2a:1:4:42: ++%*4hi:0X2a:0:4: ++%4hi:0x2A:1:4:42: ++%*4hi:0x2A:0:4: ++%4hi:052:1:3:42: ++%*4hi:052:0:3: ++%4hi:0B101010:1:4:2: ++%*4hi:0B101010:0:4: ++%4hi:0b101010:1:4:2: ++%*4hi:0b101010:0:4: ++%4hi:32767:1:4:3276: ++%*4hi:32767:0:4: ++%4hi:0X7fff:1:4:127: ++%*4hi:0X7fff:0:4: ++%4hi:0x7FFF:1:4:127: ++%*4hi:0x7FFF:0:4: ++%4hi:077777:1:4:511: ++%*4hi:077777:0:4: ++%4hi:0B111111111111111:1:4:3: ++%*4hi:0B111111111111111:0:4: ++%4hi:0b111111111111111:1:4:3: ++%*4hi:0b111111111111111:0:4: ++%4hi:32768:1:4:3276: ++%*4hi:32768:0:4: ++%4hi:0X8000:1:4:128: ++%*4hi:0X8000:0:4: ++%4hi:0x8000:1:4:128: ++%*4hi:0x8000:0:4: ++%4hi:0100000:1:4:64: ++%*4hi:0100000:0:4: ++%4hi:0B1000000000000000:1:4:2: ++%*4hi:0B1000000000000000:0:4: ++%4hi:0b1000000000000000:1:4:2: ++%*4hi:0b1000000000000000:0:4: ++%4hi:32809:1:4:3280: ++%*4hi:32809:0:4: ++%4hi:0X8029:1:4:128: ++%*4hi:0X8029:0:4: ++%4hi:0x8029:1:4:128: ++%*4hi:0x8029:0:4: ++%4hi:0100051:1:4:64: ++%*4hi:0100051:0:4: ++%4hi:0B1000000000101001:1:4:2: ++%*4hi:0B1000000000101001:0:4: ++%4hi:0b1000000000101001:1:4:2: ++%*4hi:0b1000000000101001:0:4: ++%4hi:+0:1:2:0: ++%*4hi:+0:0:2: ++%4hi:+0X0:1:4:0: ++%*4hi:+0X0:0:4: ++%4hi:+0x0:1:4:0: ++%*4hi:+0x0:0:4: ++%4hi:+00:1:3:0: ++%*4hi:+00:0:3: ++%4hi:+0B0:1:4:0: ++%*4hi:+0B0:0:4: ++%4hi:+0b0:1:4:0: ++%*4hi:+0b0:0:4: ++%4hi:+1:1:2:1: ++%*4hi:+1:0:2: ++%4hi:+0X1:1:4:1: ++%*4hi:+0X1:0:4: ++%4hi:+0x1:1:4:1: ++%*4hi:+0x1:0:4: ++%4hi:+01:1:3:1: ++%*4hi:+01:0:3: ++%4hi:+0B1:1:4:1: ++%*4hi:+0B1:0:4: ++%4hi:+0b1:1:4:1: ++%*4hi:+0b1:0:4: ++%4hi:+42:1:3:42: ++%*4hi:+42:0:3: ++%4hi:+0X2a:1:4:2: ++%*4hi:+0X2a:0:4: ++%4hi:+0x2A:1:4:2: ++%*4hi:+0x2A:0:4: ++%4hi:+052:1:4:42: ++%*4hi:+052:0:4: ++%4hi:+0B101010:1:4:1: ++%*4hi:+0B101010:0:4: ++%4hi:+0b101010:1:4:1: ++%*4hi:+0b101010:0:4: ++%4hi:+32767:1:4:327: ++%*4hi:+32767:0:4: ++%4hi:+0X7fff:1:4:7: ++%*4hi:+0X7fff:0:4: ++%4hi:+0x7FFF:1:4:7: ++%*4hi:+0x7FFF:0:4: ++%4hi:+077777:1:4:63: ++%*4hi:+077777:0:4: ++%4hi:+0B111111111111111:1:4:1: ++%*4hi:+0B111111111111111:0:4: ++%4hi:+0b111111111111111:1:4:1: ++%*4hi:+0b111111111111111:0:4: ++%4hi:+32768:1:4:327: ++%*4hi:+32768:0:4: ++%4hi:+0X8000:1:4:8: ++%*4hi:+0X8000:0:4: ++%4hi:+0x8000:1:4:8: ++%*4hi:+0x8000:0:4: ++%4hi:+0100000:1:4:8: ++%*4hi:+0100000:0:4: ++%4hi:+0B1000000000000000:1:4:1: ++%*4hi:+0B1000000000000000:0:4: ++%4hi:+0b1000000000000000:1:4:1: ++%*4hi:+0b1000000000000000:0:4: ++%4hi:+32809:1:4:328: ++%*4hi:+32809:0:4: ++%4hi:+0X8029:1:4:8: ++%*4hi:+0X8029:0:4: ++%4hi:+0x8029:1:4:8: ++%*4hi:+0x8029:0:4: ++%4hi:+0100051:1:4:8: ++%*4hi:+0100051:0:4: ++%4hi:+0B1000000000101001:1:4:1: ++%*4hi:+0B1000000000101001:0:4: ++%4hi:+0b1000000000101001:1:4:1: ++%*4hi:+0b1000000000101001:0:4: ++%7hi::0:-1: ++%*7hi::0:-1: ++%7hi:-32891:1:6:32645: ++%*7hi:-32891:0:6: ++%7hi:-0X807b:1:7:32645: ++%*7hi:-0X807b:0:7: ++%7hi:-0x807B:1:7:32645: ++%*7hi:-0x807B:0:7: ++%7hi:-0100173:1:7:-4111: ++%*7hi:-0100173:0:7: ++%7hi:-0B1000000001111011:1:7:-8: ++%*7hi:-0B1000000001111011:0:7: ++%7hi:-0b1000000001111011:1:7:-8: ++%*7hi:-0b1000000001111011:0:7: ++%7hi:-32769:1:6:32767: ++%*7hi:-32769:0:6: ++%7hi:-0X8001:1:7:32767: ++%*7hi:-0X8001:0:7: ++%7hi:-0x8001:1:7:32767: ++%*7hi:-0x8001:0:7: ++%7hi:-0100001:1:7:-4096: ++%*7hi:-0100001:0:7: ++%7hi:-0B1000000000000001:1:7:-8: ++%*7hi:-0B1000000000000001:0:7: ++%7hi:-0b1000000000000001:1:7:-8: ++%*7hi:-0b1000000000000001:0:7: ++%7hi:-32768:1:6:-32768: ++%*7hi:-32768:0:6: ++%7hi:-0X8000:1:7:-32768: ++%*7hi:-0X8000:0:7: ++%7hi:-0x8000:1:7:-32768: ++%*7hi:-0x8000:0:7: ++%7hi:-0100000:1:7:-4096: ++%*7hi:-0100000:0:7: ++%7hi:-0B1000000000000000:1:7:-8: ++%*7hi:-0B1000000000000000:0:7: ++%7hi:-0b1000000000000000:1:7:-8: ++%*7hi:-0b1000000000000000:0:7: ++%7hi:-123:1:4:-123: ++%*7hi:-123:0:4: ++%7hi:-0X7b:1:5:-123: ++%*7hi:-0X7b:0:5: ++%7hi:-0x7B:1:5:-123: ++%*7hi:-0x7B:0:5: ++%7hi:-0173:1:5:-123: ++%*7hi:-0173:0:5: ++%7hi:-0B1111011:1:7:-15: ++%*7hi:-0B1111011:0:7: ++%7hi:-0b1111011:1:7:-15: ++%*7hi:-0b1111011:0:7: ++%7hi:-1:1:2:-1: ++%*7hi:-1:0:2: ++%7hi:-0X1:1:4:-1: ++%*7hi:-0X1:0:4: ++%7hi:-0x1:1:4:-1: ++%*7hi:-0x1:0:4: ++%7hi:-01:1:3:-1: ++%*7hi:-01:0:3: ++%7hi:-0B1:1:4:-1: ++%*7hi:-0B1:0:4: ++%7hi:-0b1:1:4:-1: ++%*7hi:-0b1:0:4: ++%7hi:-0:1:2:0: ++%*7hi:-0:0:2: ++%7hi:-0X0:1:4:0: ++%*7hi:-0X0:0:4: ++%7hi:-0x0:1:4:0: ++%*7hi:-0x0:0:4: ++%7hi:-00:1:3:0: ++%*7hi:-00:0:3: ++%7hi:-0B0:1:4:0: ++%*7hi:-0B0:0:4: ++%7hi:-0b0:1:4:0: ++%*7hi:-0b0:0:4: ++%7hi:0:1:1:0: ++%*7hi:0:0:1: ++%7hi:0X0:1:3:0: ++%*7hi:0X0:0:3: ++%7hi:0x0:1:3:0: ++%*7hi:0x0:0:3: ++%7hi:00:1:2:0: ++%*7hi:00:0:2: ++%7hi:0B0:1:3:0: ++%*7hi:0B0:0:3: ++%7hi:0b0:1:3:0: ++%*7hi:0b0:0:3: ++%7hi:1:1:1:1: ++%*7hi:1:0:1: ++%7hi:0X1:1:3:1: ++%*7hi:0X1:0:3: ++%7hi:0x1:1:3:1: ++%*7hi:0x1:0:3: ++%7hi:01:1:2:1: ++%*7hi:01:0:2: ++%7hi:0B1:1:3:1: ++%*7hi:0B1:0:3: ++%7hi:0b1:1:3:1: ++%*7hi:0b1:0:3: ++%7hi:42:1:2:42: ++%*7hi:42:0:2: ++%7hi:0X2a:1:4:42: ++%*7hi:0X2a:0:4: ++%7hi:0x2A:1:4:42: ++%*7hi:0x2A:0:4: ++%7hi:052:1:3:42: ++%*7hi:052:0:3: ++%7hi:0B101010:1:7:21: ++%*7hi:0B101010:0:7: ++%7hi:0b101010:1:7:21: ++%*7hi:0b101010:0:7: ++%7hi:32767:1:5:32767: ++%*7hi:32767:0:5: ++%7hi:0X7fff:1:6:32767: ++%*7hi:0X7fff:0:6: ++%7hi:0x7FFF:1:6:32767: ++%*7hi:0x7FFF:0:6: ++%7hi:077777:1:6:32767: ++%*7hi:077777:0:6: ++%7hi:0B111111111111111:1:7:31: ++%*7hi:0B111111111111111:0:7: ++%7hi:0b111111111111111:1:7:31: ++%*7hi:0b111111111111111:0:7: ++%7hi:32768:1:5:-32768: ++%*7hi:32768:0:5: ++%7hi:0X8000:1:6:-32768: ++%*7hi:0X8000:0:6: ++%7hi:0x8000:1:6:-32768: ++%*7hi:0x8000:0:6: ++%7hi:0100000:1:7:-32768: ++%*7hi:0100000:0:7: ++%7hi:0B1000000000000000:1:7:16: ++%*7hi:0B1000000000000000:0:7: ++%7hi:0b1000000000000000:1:7:16: ++%*7hi:0b1000000000000000:0:7: ++%7hi:32809:1:5:-32727: ++%*7hi:32809:0:5: ++%7hi:0X8029:1:6:-32727: ++%*7hi:0X8029:0:6: ++%7hi:0x8029:1:6:-32727: ++%*7hi:0x8029:0:6: ++%7hi:0100051:1:7:-32727: ++%*7hi:0100051:0:7: ++%7hi:0B1000000000101001:1:7:16: ++%*7hi:0B1000000000101001:0:7: ++%7hi:0b1000000000101001:1:7:16: ++%*7hi:0b1000000000101001:0:7: ++%7hi:+0:1:2:0: ++%*7hi:+0:0:2: ++%7hi:+0X0:1:4:0: ++%*7hi:+0X0:0:4: ++%7hi:+0x0:1:4:0: ++%*7hi:+0x0:0:4: ++%7hi:+00:1:3:0: ++%*7hi:+00:0:3: ++%7hi:+0B0:1:4:0: ++%*7hi:+0B0:0:4: ++%7hi:+0b0:1:4:0: ++%*7hi:+0b0:0:4: ++%7hi:+1:1:2:1: ++%*7hi:+1:0:2: ++%7hi:+0X1:1:4:1: ++%*7hi:+0X1:0:4: ++%7hi:+0x1:1:4:1: ++%*7hi:+0x1:0:4: ++%7hi:+01:1:3:1: ++%*7hi:+01:0:3: ++%7hi:+0B1:1:4:1: ++%*7hi:+0B1:0:4: ++%7hi:+0b1:1:4:1: ++%*7hi:+0b1:0:4: ++%7hi:+42:1:3:42: ++%*7hi:+42:0:3: ++%7hi:+0X2a:1:5:42: ++%*7hi:+0X2a:0:5: ++%7hi:+0x2A:1:5:42: ++%*7hi:+0x2A:0:5: ++%7hi:+052:1:4:42: ++%*7hi:+052:0:4: ++%7hi:+0B101010:1:7:10: ++%*7hi:+0B101010:0:7: ++%7hi:+0b101010:1:7:10: ++%*7hi:+0b101010:0:7: ++%7hi:+32767:1:6:32767: ++%*7hi:+32767:0:6: ++%7hi:+0X7fff:1:7:32767: ++%*7hi:+0X7fff:0:7: ++%7hi:+0x7FFF:1:7:32767: ++%*7hi:+0x7FFF:0:7: ++%7hi:+077777:1:7:32767: ++%*7hi:+077777:0:7: ++%7hi:+0B111111111111111:1:7:15: ++%*7hi:+0B111111111111111:0:7: ++%7hi:+0b111111111111111:1:7:15: ++%*7hi:+0b111111111111111:0:7: ++%7hi:+32768:1:6:-32768: ++%*7hi:+32768:0:6: ++%7hi:+0X8000:1:7:-32768: ++%*7hi:+0X8000:0:7: ++%7hi:+0x8000:1:7:-32768: ++%*7hi:+0x8000:0:7: ++%7hi:+0100000:1:7:4096: ++%*7hi:+0100000:0:7: ++%7hi:+0B1000000000000000:1:7:8: ++%*7hi:+0B1000000000000000:0:7: ++%7hi:+0b1000000000000000:1:7:8: ++%*7hi:+0b1000000000000000:0:7: ++%7hi:+32809:1:6:-32727: ++%*7hi:+32809:0:6: ++%7hi:+0X8029:1:7:-32727: ++%*7hi:+0X8029:0:7: ++%7hi:+0x8029:1:7:-32727: ++%*7hi:+0x8029:0:7: ++%7hi:+0100051:1:7:4101: ++%*7hi:+0100051:0:7: ++%7hi:+0B1000000000101001:1:7:8: ++%*7hi:+0B1000000000101001:0:7: ++%7hi:+0b1000000000101001:1:7:8: ++%*7hi:+0b1000000000101001:0:7: ++%2hi: :0:-1: ++%*2hi: :0:-1: ++%2hi: -32891:1:3:-3: ++%*2hi: -32891:0:3: ++%2hi: -0X807b:1:3:0: ++%*2hi: -0X807b:0:3: ++%2hi: -0x807B:1:3:0: ++%*2hi: -0x807B:0:3: ++%2hi: -0100173:1:3:0: ++%*2hi: -0100173:0:3: ++%2hi: -0B1000000001111011:1:3:0: ++%*2hi: -0B1000000001111011:0:3: ++%2hi: -0b1000000001111011:1:3:0: ++%*2hi: -0b1000000001111011:0:3: ++%2hi: -32769:1:3:-3: ++%*2hi: -32769:0:3: ++%2hi: -0X8001:1:3:0: ++%*2hi: -0X8001:0:3: ++%2hi: -0x8001:1:3:0: ++%*2hi: -0x8001:0:3: ++%2hi: -0100001:1:3:0: ++%*2hi: -0100001:0:3: ++%2hi: -0B1000000000000001:1:3:0: ++%*2hi: -0B1000000000000001:0:3: ++%2hi: -0b1000000000000001:1:3:0: ++%*2hi: -0b1000000000000001:0:3: ++%2hi: -32768:1:3:-3: ++%*2hi: -32768:0:3: ++%2hi: -0X8000:1:3:0: ++%*2hi: -0X8000:0:3: ++%2hi: -0x8000:1:3:0: ++%*2hi: -0x8000:0:3: ++%2hi: -0100000:1:3:0: ++%*2hi: -0100000:0:3: ++%2hi: -0B1000000000000000:1:3:0: ++%*2hi: -0B1000000000000000:0:3: ++%2hi: -0b1000000000000000:1:3:0: ++%*2hi: -0b1000000000000000:0:3: ++%2hi: -123:1:3:-1: ++%*2hi: -123:0:3: ++%2hi: -0X7b:1:3:0: ++%*2hi: -0X7b:0:3: ++%2hi: -0x7B:1:3:0: ++%*2hi: -0x7B:0:3: ++%2hi: -0173:1:3:0: ++%*2hi: -0173:0:3: ++%2hi: -0B1111011:1:3:0: ++%*2hi: -0B1111011:0:3: ++%2hi: -0b1111011:1:3:0: ++%*2hi: -0b1111011:0:3: ++%2hi: -1:1:3:-1: ++%*2hi: -1:0:3: ++%2hi: -0X1:1:3:0: ++%*2hi: -0X1:0:3: ++%2hi: -0x1:1:3:0: ++%*2hi: -0x1:0:3: ++%2hi: -01:1:3:0: ++%*2hi: -01:0:3: ++%2hi: -0B1:1:3:0: ++%*2hi: -0B1:0:3: ++%2hi: -0b1:1:3:0: ++%*2hi: -0b1:0:3: ++%2hi: -0:1:3:0: ++%*2hi: -0:0:3: ++%2hi: -0X0:1:3:0: ++%*2hi: -0X0:0:3: ++%2hi: -0x0:1:3:0: ++%*2hi: -0x0:0:3: ++%2hi: -00:1:3:0: ++%*2hi: -00:0:3: ++%2hi: -0B0:1:3:0: ++%*2hi: -0B0:0:3: ++%2hi: -0b0:1:3:0: ++%*2hi: -0b0:0:3: ++%2hi: 0:1:2:0: ++%*2hi: 0:0:2: ++# BZ12701 %2hi: 0X0:0:-1: ++# BZ12701 %*2hi: 0X0:0:-1: ++# BZ12701 %2hi: 0x0:0:-1: ++# BZ12701 %*2hi: 0x0:0:-1: ++%2hi: 00:1:3:0: ++%*2hi: 00:0:3: ++# BZ12701 %2hi: 0B0:0:-1: ++# BZ12701 %*2hi: 0B0:0:-1: ++# BZ12701 %2hi: 0b0:0:-1: ++# BZ12701 %*2hi: 0b0:0:-1: ++%2hi: 1:1:2:1: ++%*2hi: 1:0:2: ++# BZ12701 %2hi: 0X1:0:-1: ++# BZ12701 %*2hi: 0X1:0:-1: ++# BZ12701 %2hi: 0x1:0:-1: ++# BZ12701 %*2hi: 0x1:0:-1: ++%2hi: 01:1:3:1: ++%*2hi: 01:0:3: ++# BZ12701 %2hi: 0B1:0:-1: ++# BZ12701 %*2hi: 0B1:0:-1: ++# BZ12701 %2hi: 0b1:0:-1: ++# BZ12701 %*2hi: 0b1:0:-1: ++%2hi: 42:1:3:42: ++%*2hi: 42:0:3: ++# BZ12701 %2hi: 0X2a:0:-1: ++# BZ12701 %*2hi: 0X2a:0:-1: ++# BZ12701 %2hi: 0x2A:0:-1: ++# BZ12701 %*2hi: 0x2A:0:-1: ++%2hi: 052:1:3:5: ++%*2hi: 052:0:3: ++# BZ12701 %2hi: 0B101010:0:-1: ++# BZ12701 %*2hi: 0B101010:0:-1: ++# BZ12701 %2hi: 0b101010:0:-1: ++# BZ12701 %*2hi: 0b101010:0:-1: ++%2hi: 32767:1:3:32: ++%*2hi: 32767:0:3: ++# BZ12701 %2hi: 0X7fff:0:-1: ++# BZ12701 %*2hi: 0X7fff:0:-1: ++# BZ12701 %2hi: 0x7FFF:0:-1: ++# BZ12701 %*2hi: 0x7FFF:0:-1: ++%2hi: 077777:1:3:7: ++%*2hi: 077777:0:3: ++# BZ12701 %2hi: 0B111111111111111:0:-1: ++# BZ12701 %*2hi: 0B111111111111111:0:-1: ++# BZ12701 %2hi: 0b111111111111111:0:-1: ++# BZ12701 %*2hi: 0b111111111111111:0:-1: ++%2hi: 32768:1:3:32: ++%*2hi: 32768:0:3: ++# BZ12701 %2hi: 0X8000:0:-1: ++# BZ12701 %*2hi: 0X8000:0:-1: ++# BZ12701 %2hi: 0x8000:0:-1: ++# BZ12701 %*2hi: 0x8000:0:-1: ++%2hi: 0100000:1:3:1: ++%*2hi: 0100000:0:3: ++# BZ12701 %2hi: 0B1000000000000000:0:-1: ++# BZ12701 %*2hi: 0B1000000000000000:0:-1: ++# BZ12701 %2hi: 0b1000000000000000:0:-1: ++# BZ12701 %*2hi: 0b1000000000000000:0:-1: ++%2hi: 32809:1:3:32: ++%*2hi: 32809:0:3: ++# BZ12701 %2hi: 0X8029:0:-1: ++# BZ12701 %*2hi: 0X8029:0:-1: ++# BZ12701 %2hi: 0x8029:0:-1: ++# BZ12701 %*2hi: 0x8029:0:-1: ++%2hi: 0100051:1:3:1: ++%*2hi: 0100051:0:3: ++# BZ12701 %2hi: 0B1000000000101001:0:-1: ++# BZ12701 %*2hi: 0B1000000000101001:0:-1: ++# BZ12701 %2hi: 0b1000000000101001:0:-1: ++# BZ12701 %*2hi: 0b1000000000101001:0:-1: ++%2hi: +0:1:3:0: ++%*2hi: +0:0:3: ++%2hi: +0X0:1:3:0: ++%*2hi: +0X0:0:3: ++%2hi: +0x0:1:3:0: ++%*2hi: +0x0:0:3: ++%2hi: +00:1:3:0: ++%*2hi: +00:0:3: ++%2hi: +0B0:1:3:0: ++%*2hi: +0B0:0:3: ++%2hi: +0b0:1:3:0: ++%*2hi: +0b0:0:3: ++%2hi: +1:1:3:1: ++%*2hi: +1:0:3: ++%2hi: +0X1:1:3:0: ++%*2hi: +0X1:0:3: ++%2hi: +0x1:1:3:0: ++%*2hi: +0x1:0:3: ++%2hi: +01:1:3:0: ++%*2hi: +01:0:3: ++%2hi: +0B1:1:3:0: ++%*2hi: +0B1:0:3: ++%2hi: +0b1:1:3:0: ++%*2hi: +0b1:0:3: ++%2hi: +42:1:3:4: ++%*2hi: +42:0:3: ++%2hi: +0X2a:1:3:0: ++%*2hi: +0X2a:0:3: ++%2hi: +0x2A:1:3:0: ++%*2hi: +0x2A:0:3: ++%2hi: +052:1:3:0: ++%*2hi: +052:0:3: ++%2hi: +0B101010:1:3:0: ++%*2hi: +0B101010:0:3: ++%2hi: +0b101010:1:3:0: ++%*2hi: +0b101010:0:3: ++%2hi: +32767:1:3:3: ++%*2hi: +32767:0:3: ++%2hi: +0X7fff:1:3:0: ++%*2hi: +0X7fff:0:3: ++%2hi: +0x7FFF:1:3:0: ++%*2hi: +0x7FFF:0:3: ++%2hi: +077777:1:3:0: ++%*2hi: +077777:0:3: ++%2hi: +0B111111111111111:1:3:0: ++%*2hi: +0B111111111111111:0:3: ++%2hi: +0b111111111111111:1:3:0: ++%*2hi: +0b111111111111111:0:3: ++%2hi: +32768:1:3:3: ++%*2hi: +32768:0:3: ++%2hi: +0X8000:1:3:0: ++%*2hi: +0X8000:0:3: ++%2hi: +0x8000:1:3:0: ++%*2hi: +0x8000:0:3: ++%2hi: +0100000:1:3:0: ++%*2hi: +0100000:0:3: ++%2hi: +0B1000000000000000:1:3:0: ++%*2hi: +0B1000000000000000:0:3: ++%2hi: +0b1000000000000000:1:3:0: ++%*2hi: +0b1000000000000000:0:3: ++%2hi: +32809:1:3:3: ++%*2hi: +32809:0:3: ++%2hi: +0X8029:1:3:0: ++%*2hi: +0X8029:0:3: ++%2hi: +0x8029:1:3:0: ++%*2hi: +0x8029:0:3: ++%2hi: +0100051:1:3:0: ++%*2hi: +0100051:0:3: ++%2hi: +0B1000000000101001:1:3:0: ++%*2hi: +0B1000000000101001:0:3: ++%2hi: +0b1000000000101001:1:3:0: ++%*2hi: +0b1000000000101001:0:3: ++%7hi: :0:-1: ++%*7hi: :0:-1: ++%7hi: -32891:1:7:32645: ++%*7hi: -32891:0:7: ++%7hi: -0X807b:1:8:32645: ++%*7hi: -0X807b:0:8: ++%7hi: -0x807B:1:8:32645: ++%*7hi: -0x807B:0:8: ++%7hi: -0100173:1:8:-4111: ++%*7hi: -0100173:0:8: ++%7hi: -0B1000000001111011:1:8:-8: ++%*7hi: -0B1000000001111011:0:8: ++%7hi: -0b1000000001111011:1:8:-8: ++%*7hi: -0b1000000001111011:0:8: ++%7hi: -32769:1:7:32767: ++%*7hi: -32769:0:7: ++%7hi: -0X8001:1:8:32767: ++%*7hi: -0X8001:0:8: ++%7hi: -0x8001:1:8:32767: ++%*7hi: -0x8001:0:8: ++%7hi: -0100001:1:8:-4096: ++%*7hi: -0100001:0:8: ++%7hi: -0B1000000000000001:1:8:-8: ++%*7hi: -0B1000000000000001:0:8: ++%7hi: -0b1000000000000001:1:8:-8: ++%*7hi: -0b1000000000000001:0:8: ++%7hi: -32768:1:7:-32768: ++%*7hi: -32768:0:7: ++%7hi: -0X8000:1:8:-32768: ++%*7hi: -0X8000:0:8: ++%7hi: -0x8000:1:8:-32768: ++%*7hi: -0x8000:0:8: ++%7hi: -0100000:1:8:-4096: ++%*7hi: -0100000:0:8: ++%7hi: -0B1000000000000000:1:8:-8: ++%*7hi: -0B1000000000000000:0:8: ++%7hi: -0b1000000000000000:1:8:-8: ++%*7hi: -0b1000000000000000:0:8: ++%7hi: -123:1:5:-123: ++%*7hi: -123:0:5: ++%7hi: -0X7b:1:6:-123: ++%*7hi: -0X7b:0:6: ++%7hi: -0x7B:1:6:-123: ++%*7hi: -0x7B:0:6: ++%7hi: -0173:1:6:-123: ++%*7hi: -0173:0:6: ++%7hi: -0B1111011:1:8:-15: ++%*7hi: -0B1111011:0:8: ++%7hi: -0b1111011:1:8:-15: ++%*7hi: -0b1111011:0:8: ++%7hi: -1:1:3:-1: ++%*7hi: -1:0:3: ++%7hi: -0X1:1:5:-1: ++%*7hi: -0X1:0:5: ++%7hi: -0x1:1:5:-1: ++%*7hi: -0x1:0:5: ++%7hi: -01:1:4:-1: ++%*7hi: -01:0:4: ++%7hi: -0B1:1:5:-1: ++%*7hi: -0B1:0:5: ++%7hi: -0b1:1:5:-1: ++%*7hi: -0b1:0:5: ++%7hi: -0:1:3:0: ++%*7hi: -0:0:3: ++%7hi: -0X0:1:5:0: ++%*7hi: -0X0:0:5: ++%7hi: -0x0:1:5:0: ++%*7hi: -0x0:0:5: ++%7hi: -00:1:4:0: ++%*7hi: -00:0:4: ++%7hi: -0B0:1:5:0: ++%*7hi: -0B0:0:5: ++%7hi: -0b0:1:5:0: ++%*7hi: -0b0:0:5: ++%7hi: 0:1:2:0: ++%*7hi: 0:0:2: ++%7hi: 0X0:1:4:0: ++%*7hi: 0X0:0:4: ++%7hi: 0x0:1:4:0: ++%*7hi: 0x0:0:4: ++%7hi: 00:1:3:0: ++%*7hi: 00:0:3: ++%7hi: 0B0:1:4:0: ++%*7hi: 0B0:0:4: ++%7hi: 0b0:1:4:0: ++%*7hi: 0b0:0:4: ++%7hi: 1:1:2:1: ++%*7hi: 1:0:2: ++%7hi: 0X1:1:4:1: ++%*7hi: 0X1:0:4: ++%7hi: 0x1:1:4:1: ++%*7hi: 0x1:0:4: ++%7hi: 01:1:3:1: ++%*7hi: 01:0:3: ++%7hi: 0B1:1:4:1: ++%*7hi: 0B1:0:4: ++%7hi: 0b1:1:4:1: ++%*7hi: 0b1:0:4: ++%7hi: 42:1:3:42: ++%*7hi: 42:0:3: ++%7hi: 0X2a:1:5:42: ++%*7hi: 0X2a:0:5: ++%7hi: 0x2A:1:5:42: ++%*7hi: 0x2A:0:5: ++%7hi: 052:1:4:42: ++%*7hi: 052:0:4: ++%7hi: 0B101010:1:8:21: ++%*7hi: 0B101010:0:8: ++%7hi: 0b101010:1:8:21: ++%*7hi: 0b101010:0:8: ++%7hi: 32767:1:6:32767: ++%*7hi: 32767:0:6: ++%7hi: 0X7fff:1:7:32767: ++%*7hi: 0X7fff:0:7: ++%7hi: 0x7FFF:1:7:32767: ++%*7hi: 0x7FFF:0:7: ++%7hi: 077777:1:7:32767: ++%*7hi: 077777:0:7: ++%7hi: 0B111111111111111:1:8:31: ++%*7hi: 0B111111111111111:0:8: ++%7hi: 0b111111111111111:1:8:31: ++%*7hi: 0b111111111111111:0:8: ++%7hi: 32768:1:6:-32768: ++%*7hi: 32768:0:6: ++%7hi: 0X8000:1:7:-32768: ++%*7hi: 0X8000:0:7: ++%7hi: 0x8000:1:7:-32768: ++%*7hi: 0x8000:0:7: ++%7hi: 0100000:1:8:-32768: ++%*7hi: 0100000:0:8: ++%7hi: 0B1000000000000000:1:8:16: ++%*7hi: 0B1000000000000000:0:8: ++%7hi: 0b1000000000000000:1:8:16: ++%*7hi: 0b1000000000000000:0:8: ++%7hi: 32809:1:6:-32727: ++%*7hi: 32809:0:6: ++%7hi: 0X8029:1:7:-32727: ++%*7hi: 0X8029:0:7: ++%7hi: 0x8029:1:7:-32727: ++%*7hi: 0x8029:0:7: ++%7hi: 0100051:1:8:-32727: ++%*7hi: 0100051:0:8: ++%7hi: 0B1000000000101001:1:8:16: ++%*7hi: 0B1000000000101001:0:8: ++%7hi: 0b1000000000101001:1:8:16: ++%*7hi: 0b1000000000101001:0:8: ++%7hi: +0:1:3:0: ++%*7hi: +0:0:3: ++%7hi: +0X0:1:5:0: ++%*7hi: +0X0:0:5: ++%7hi: +0x0:1:5:0: ++%*7hi: +0x0:0:5: ++%7hi: +00:1:4:0: ++%*7hi: +00:0:4: ++%7hi: +0B0:1:5:0: ++%*7hi: +0B0:0:5: ++%7hi: +0b0:1:5:0: ++%*7hi: +0b0:0:5: ++%7hi: +1:1:3:1: ++%*7hi: +1:0:3: ++%7hi: +0X1:1:5:1: ++%*7hi: +0X1:0:5: ++%7hi: +0x1:1:5:1: ++%*7hi: +0x1:0:5: ++%7hi: +01:1:4:1: ++%*7hi: +01:0:4: ++%7hi: +0B1:1:5:1: ++%*7hi: +0B1:0:5: ++%7hi: +0b1:1:5:1: ++%*7hi: +0b1:0:5: ++%7hi: +42:1:4:42: ++%*7hi: +42:0:4: ++%7hi: +0X2a:1:6:42: ++%*7hi: +0X2a:0:6: ++%7hi: +0x2A:1:6:42: ++%*7hi: +0x2A:0:6: ++%7hi: +052:1:5:42: ++%*7hi: +052:0:5: ++%7hi: +0B101010:1:8:10: ++%*7hi: +0B101010:0:8: ++%7hi: +0b101010:1:8:10: ++%*7hi: +0b101010:0:8: ++%7hi: +32767:1:7:32767: ++%*7hi: +32767:0:7: ++%7hi: +0X7fff:1:8:32767: ++%*7hi: +0X7fff:0:8: ++%7hi: +0x7FFF:1:8:32767: ++%*7hi: +0x7FFF:0:8: ++%7hi: +077777:1:8:32767: ++%*7hi: +077777:0:8: ++%7hi: +0B111111111111111:1:8:15: ++%*7hi: +0B111111111111111:0:8: ++%7hi: +0b111111111111111:1:8:15: ++%*7hi: +0b111111111111111:0:8: ++%7hi: +32768:1:7:-32768: ++%*7hi: +32768:0:7: ++%7hi: +0X8000:1:8:-32768: ++%*7hi: +0X8000:0:8: ++%7hi: +0x8000:1:8:-32768: ++%*7hi: +0x8000:0:8: ++%7hi: +0100000:1:8:4096: ++%*7hi: +0100000:0:8: ++%7hi: +0B1000000000000000:1:8:8: ++%*7hi: +0B1000000000000000:0:8: ++%7hi: +0b1000000000000000:1:8:8: ++%*7hi: +0b1000000000000000:0:8: ++%7hi: +32809:1:7:-32727: ++%*7hi: +32809:0:7: ++%7hi: +0X8029:1:8:-32727: ++%*7hi: +0X8029:0:8: ++%7hi: +0x8029:1:8:-32727: ++%*7hi: +0x8029:0:8: ++%7hi: +0100051:1:8:4101: ++%*7hi: +0100051:0:8: ++%7hi: +0B1000000000101001:1:8:8: ++%*7hi: +0B1000000000101001:0:8: ++%7hi: +0b1000000000101001:1:8:8: ++%*7hi: +0b1000000000101001:0:8: +diff --git a/stdio-common/tst-scanf-format-skeleton-c.c b/stdio-common/tst-scanf-format-skeleton-c.c +new file mode 100644 +index 0000000000000000..181077fb38959d2d +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-c.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for character conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++typedef char *type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-char.c b/stdio-common/tst-scanf-format-skeleton-char.c +new file mode 100644 +index 0000000000000000..a694de4892396e11 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-char.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for signed char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++typedef signed char type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-double.c b/stdio-common/tst-scanf-format-skeleton-double.c +new file mode 100644 +index 0000000000000000..502f2ad3f7d1aef2 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-double.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++typedef double type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-float.c b/stdio-common/tst-scanf-format-skeleton-float.c +new file mode 100644 +index 0000000000000000..2104c0f6c913f502 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-float.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for float conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++typedef float type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-int.c b/stdio-common/tst-scanf-format-skeleton-int.c +new file mode 100644 +index 0000000000000000..eb4e9de2db796311 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-int.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++typedef int type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-ldouble.c b/stdio-common/tst-scanf-format-skeleton-ldouble.c +new file mode 100644 +index 0000000000000000..3649110ed36c4ef5 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-ldouble.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for long double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++typedef long double type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-llong.c b/stdio-common/tst-scanf-format-skeleton-llong.c +new file mode 100644 +index 0000000000000000..8b8324e99fb95121 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-llong.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for long long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++typedef long long int type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-long.c b/stdio-common/tst-scanf-format-skeleton-long.c +new file mode 100644 +index 0000000000000000..91aa0913fdfe77a9 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-long.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++typedef long int type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-short.c b/stdio-common/tst-scanf-format-skeleton-short.c +new file mode 100644 +index 0000000000000000..ca51a2533c7e198e +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-short.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++typedef short int type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-uchar.c b/stdio-common/tst-scanf-format-skeleton-uchar.c +new file mode 100644 +index 0000000000000000..6be8917e3bb9edee +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-uchar.c +@@ -0,0 +1,22 @@ ++/* Test skeleton for formatted scanf input for unsigned char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define TYPE_T_UNSIGNED_P 1 ++typedef unsigned char type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-uint.c b/stdio-common/tst-scanf-format-skeleton-uint.c +new file mode 100644 +index 0000000000000000..1508dc39198c5464 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-uint.c +@@ -0,0 +1,22 @@ ++/* Test skeleton for formatted scanf input for unsigned int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define TYPE_T_UNSIGNED_P 1 ++typedef unsigned int type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-ullong.c b/stdio-common/tst-scanf-format-skeleton-ullong.c +new file mode 100644 +index 0000000000000000..b0b8050e2d33e195 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-ullong.c +@@ -0,0 +1,22 @@ ++/* Test skeleton for formatted scanf input for unsigned long long int convs. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define TYPE_T_UNSIGNED_P 1 ++typedef unsigned long long int type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-ulong.c b/stdio-common/tst-scanf-format-skeleton-ulong.c +new file mode 100644 +index 0000000000000000..319882511e7c7a64 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-ulong.c +@@ -0,0 +1,22 @@ ++/* Test skeleton for formatted scanf input for unsigned long int convs. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define TYPE_T_UNSIGNED_P 1 ++typedef unsigned long int type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-ushort.c b/stdio-common/tst-scanf-format-skeleton-ushort.c +new file mode 100644 +index 0000000000000000..2b710c5eca6d75d0 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-ushort.c +@@ -0,0 +1,22 @@ ++/* Test skeleton for formatted scanf input for unsigned short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define TYPE_T_UNSIGNED_P 1 ++typedef unsigned short int type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton.c b/stdio-common/tst-scanf-format-skeleton.c +new file mode 100644 +index 0000000000000000..bf1129b7f4f217cd +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton.c +@@ -0,0 +1,373 @@ ++/* Test skeleton for formatted scanf input. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* The following definitions have to be supplied by the source including ++ this skeleton: ++ ++ Macros: ++ TYPE_T_UNSIGNED_P [optional] Set to 1 if handling an unsigned ++ integer conversion. ++ ++ Typedefs: ++ type_t Type to hold data produced by the conversion ++ handled. ++ ++ Callable objects: ++ scanf_under_test Wrapper for the 'scanf' family feature to be ++ tested. ++ verify_input Verifier called to determine whether there is a ++ match between the data retrieved by the feature ++ tested and MATCH reference data supplied by input. ++ pointer_to_value Converter making a pointer suitable for the ++ feature tested from the data holding type. ++ initialize_value Initializer for the data holder to use ahead of ++ each call to the feature tested. ++ ++ It is up to the source including this skeleton whether the individual ++ callable objects are going to be macros or actual functions. ++ ++ See tst-*scanf-format-*.c for usage examples. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++/* Tweak our environment according to any TYPE_T_UNSIGNED_P setting ++ supplied by the individual test case. */ ++#ifndef TYPE_T_UNSIGNED_P ++# define TYPE_T_UNSIGNED_P 0 ++#endif ++#if TYPE_T_UNSIGNED_P ++# define UNSIGNED unsigned ++#else ++# define UNSIGNED ++#endif ++ ++/* Read and return a single character from standard input, returning ++ end-of-file or error status indication where applicable. */ ++ ++static int ++read_input (void) ++{ ++ int c = getchar (); ++ if (ferror (stdin)) ++ c = INPUT_ERROR; ++ else if (feof (stdin)) ++ c = INPUT_EOF; ++ return c; ++} ++ ++/* Consume a signed decimal integer supplied by READ_INPUT above, up to ++ the following ':' field separator which is removed from input, making ++ sure the value requested does not overflow the range of the data type ++ according to TYPE_T_UNSIGNED_P. ++ ++ Return the value retrieved and set ERRP to zero on success, otherwise ++ set ERRP to the error code. */ ++ ++static long long ++read_integer (int *errp) ++{ ++ bool m = false; ++ int ch; ++ ++ ch = read_input (); ++ if (ch == '-' || ch == '+') ++ { ++ m = ch == '-'; ++ ch = read_input (); ++ } ++ ++ if (ch == ':') ++ { ++ *errp = INPUT_FORMAT; ++ return 0; ++ } ++ ++ unsigned long long v = 0; ++ while (1) ++ { ++ unsigned long long v0 = v; ++ ++ if (isdigit (ch)) ++ { ++ v = 10 * v + (ch - '0'); ++ if (!(TYPE_T_UNSIGNED_P ++ || (v & ~((~0ULL) >> 1)) == 0 ++ || (m && v == ~((~0ULL) >> 1))) ++ || v < v0) ++ { ++ *errp = INPUT_OVERFLOW; ++ return 0; ++ } ++ } ++ else if (ch < 0) ++ { ++ *errp = ch; ++ return 0; ++ } ++ else if (ch != ':') ++ { ++ *errp = INPUT_FORMAT; ++ return 0; ++ } ++ else ++ break; ++ ++ ch = read_input (); ++ } ++ ++ *errp = 0; ++ return m ? -v : v; ++} ++ ++/* Return an error message corresponding to ERR. */ ++ ++static const char * ++get_error_message (int err) ++{ ++ switch (err) ++ { ++ case INPUT_EOF: ++ return "input line %zi: premature end of input"; ++ case INPUT_ERROR: ++ return "input line %zi: error reading input data: %m"; ++ case INPUT_FORMAT: ++ return "input line %zi: input data format error"; ++ case INPUT_OVERFLOW: ++ return "input line %zi: input data arithmetic overflow"; ++ case OUTPUT_TERM: ++ return "input line %zi: string termination missing from output"; ++ case OUTPUT_OVERRUN: ++ return "input line %zi: output data overrun"; ++ default: ++ return "input line %zi: internal test error"; ++ } ++} ++ ++/* Consume a record supplied by READ_INPUT above, according to '%' and ++ any assignment-suppressing character '*', followed by any width W, ++ any length modifier L, and conversion C, all already provided in FMT ++ (along with trailing "%lln" implicitly appended by the caller) and ++ removed from input along with the following ':' field separator. ++ For convenience the last character of conversion C is supplied as ++ the F parameter. ++ ++ Record formats consumed: ++ ++ %*:::: ++ %*:::: ++ %:::: ++ %:::: ++ %*:::: ++ %*:::: ++ %::::: ++ %::::: ++ ++ Verify that the 'scanf' family function under test returned RESULT, ++ that the "%lln" conversion recorded COUNT characters or has not been ++ executed leaving the value at -1 as applicable, and where executed ++ that the conversion requested produced output matching MATCH. ++ ++ Return 0 on success, -1 on failure. */ ++ ++static int ++do_scanf (char f, char *fmt) ++{ ++ bool value_match = true; ++ bool count_match = true; ++ long long count = -1; ++ bool match = true; ++ long long result; ++ long long r; ++ long long c; ++ type_t val; ++ int err; ++ int ch; ++ ++ initialize_value (val); ++ /* Make sure it's been committed. */ ++ __asm__ ("" : : : "memory"); ++ ++ if (fmt[1] == '*') ++ result = scanf_under_test (fmt, &count); ++ else ++ result = scanf_under_test (fmt, pointer_to_value (val), &count); ++ if (result < 0) ++ FAIL_RET (get_error_message (result), line); ++ ++ do ++ ch = read_input (); ++ while (ch != ':' && ch != INPUT_ERROR && ch != INPUT_EOF); ++ if (ch != ':') ++ FAIL_RET (get_error_message (ch), line); ++ ++ r = read_integer (&err); ++ if (err < 0) ++ FAIL_RET (get_error_message (err), line); ++ match &= r == result; ++ ++ c = read_integer (&err); ++ if (err < 0) ++ FAIL_RET (get_error_message (err), line); ++ match &= (count_match = c == count); ++ ++ if (r > 0) ++ { ++ match &= (value_match = verify_input (f, val, count, &err)); ++ if (err < 0) ++ FAIL_RET (get_error_message (err), line); ++ } ++ ++ ch = read_input (); ++ if (ch != '\n') ++ FAIL_RET (get_error_message (ch == INPUT_ERROR || ch == INPUT_EOF ++ ? ch : INPUT_FORMAT), line); ++ ++ if (!match) ++ { ++ if (r != result) ++ FAIL ("input line %zi: input assignment count mismatch: %lli", ++ line, result); ++ if (!count_match) ++ FAIL ("input line %zi: input character count mismatch: %lli", ++ line, count); ++ if (!value_match) ++ FAIL ("input line %zi: input value mismatch", line); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++/* Consume a list of input records line by line supplied by READ_INPUT ++ above, discarding any that begin with the '#' line comment designator ++ and interpreting the initial part of the remaining ones from leading ++ '%' up to the first ':' field separator, which is removed from input, ++ by appending "%lln" to the part retrieved and handing over along with ++ the rest of input line to read to DO_SCANF above. Terminate upon the ++ end of input or the first processing error encountered. ++ ++ See the top of this file for the definitions that have to be ++ provided by the source including this skeleton. */ ++ ++int ++do_test (void) ++{ ++ size_t fmt_size = 0; ++ char *fmt = NULL; ++ ++ mtrace (); ++ ++ int result = 0; ++ do ++ { ++ size_t i = 0; ++ int ch = 0; ++ char f; ++ ++ line++; ++ do ++ { ++ f = ch; ++ ch = read_input (); ++ if ((i == 0 && ch == '#') || ch == INPUT_EOF || ch == INPUT_ERROR) ++ break; ++ if (i == fmt_size) ++ { ++ fmt_size += SIZE_CHUNK; ++ fmt = xrealloc (fmt, fmt_size); ++ } ++ fmt[i++] = ch; ++ } ++ while (ch != ':'); ++ if (ch == INPUT_EOF && i == 0) ++ { ++ if (line == 1) ++ { ++ FAIL ("input line %zi: empty input", line); ++ result = -1; ++ } ++ break; ++ } ++ if (ch == INPUT_ERROR) ++ { ++ FAIL ("input line %zi: error reading format string: %m", line); ++ result = -1; ++ break; ++ } ++ if (ch == '#') ++ { ++ do ++ ch = read_input (); ++ while (ch != '\n' && ch != INPUT_EOF && ch != INPUT_ERROR); ++ if (ch == '\n') ++ continue; ++ ++ if (ch == INPUT_EOF) ++ FAIL ("input line %zi: premature end of input reading comment", ++ line); ++ else ++ FAIL ("input line %zi: error reading comment: %m", line); ++ result = -1; ++ break; ++ } ++ if (ch != ':' || i < 3 || fmt[0] != '%') ++ { ++ FAIL ("input line %zi: format string format error: \"%.*s\"", line, ++ (int) (i - 1), fmt); ++ result = -1; ++ break; ++ } ++ ++ if (i + 4 > fmt_size) ++ { ++ fmt_size += SIZE_CHUNK; ++ fmt = xrealloc (fmt, fmt_size); ++ } ++ fmt[i - 1] = '%'; ++ fmt[i++] = 'l'; ++ fmt[i++] = 'l'; ++ fmt[i++] = 'n'; ++ fmt[i++] = '\0'; ++ ++ result = do_scanf (f, fmt); ++ } ++ while (result == 0); ++ ++ free (fmt); ++ return result == 0 ? EXIT_SUCCESS : EXIT_FAILURE; ++} ++ ++/* Interpose 'dladdr' with a stub to speed up malloc tracing. */ ++ ++int ++dladdr (const void *addr, Dl_info *info) ++{ ++ return 0; ++} ++ ++#include +diff --git a/stdio-common/tst-scanf-format-skeleton.h b/stdio-common/tst-scanf-format-skeleton.h +new file mode 100644 +index 0000000000000000..a34429f5815488f8 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton.h +@@ -0,0 +1,40 @@ ++/* Test skeleton declarations for formatted scanf input. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++/* Amount dynamic memory allocations are increased by. */ ++#define SIZE_CHUNK 32 ++ ++/* Error codes for use by the tests. */ ++enum ++{ ++ INPUT_EOF = -1, /* Premature end of input. */ ++ INPUT_ERROR = -2, /* System error reading input data. */ ++ INPUT_FORMAT = -3, /* Input data format error. */ ++ INPUT_OVERFLOW = -4, /* Input data arithmetic overflow. */ ++ OUTPUT_TERM = -5, /* String termination missing from output. */ ++ OUTPUT_OVERRUN = -6 /* Output data overrun. */ ++}; ++ ++/* Input data retrieval handlers made available to individual tests. */ ++static long long read_integer (int *); ++static int read_input (void); ++ ++/* Input data line number tracker. */ ++static size_t line; +diff --git a/stdio-common/tst-scanf-format-uchar-b.input b/stdio-common/tst-scanf-format-uchar-b.input +new file mode 100644 +index 0000000000000000..e4074425ef8f088c +--- /dev/null ++++ b/stdio-common/tst-scanf-format-uchar-b.input +@@ -0,0 +1,644 @@ ++%hhb::0:-1: ++%*hhb::0:-1: ++%hhb:-1111011:1:8:133: ++%*hhb:-1111011:0:8: ++%hhb:-0B1111011:1:10:133: ++%*hhb:-0B1111011:0:10: ++%hhb:-0b1111011:1:10:133: ++%*hhb:-0b1111011:0:10: ++%hhb:-1:1:2:255: ++%*hhb:-1:0:2: ++%hhb:-0B1:1:4:255: ++%*hhb:-0B1:0:4: ++%hhb:-0b1:1:4:255: ++%*hhb:-0b1:0:4: ++%hhb:-0:1:2:0: ++%*hhb:-0:0:2: ++%hhb:-0B0:1:4:0: ++%*hhb:-0B0:0:4: ++%hhb:-0b0:1:4:0: ++%*hhb:-0b0:0:4: ++%hhb:0:1:1:0: ++%*hhb:0:0:1: ++%hhb:0B0:1:3:0: ++%*hhb:0B0:0:3: ++%hhb:0b0:1:3:0: ++%*hhb:0b0:0:3: ++%hhb:1:1:1:1: ++%*hhb:1:0:1: ++%hhb:0B1:1:3:1: ++%*hhb:0B1:0:3: ++%hhb:0b1:1:3:1: ++%*hhb:0b1:0:3: ++%hhb:101010:1:6:42: ++%*hhb:101010:0:6: ++%hhb:0B101010:1:8:42: ++%*hhb:0B101010:0:8: ++%hhb:0b101010:1:8:42: ++%*hhb:0b101010:0:8: ++%hhb:11111111:1:8:255: ++%*hhb:11111111:0:8: ++%hhb:0B11111111:1:10:255: ++%*hhb:0B11111111:0:10: ++%hhb:0b11111111:1:10:255: ++%*hhb:0b11111111:0:10: ++%hhb:100000000:1:9:0: ++%*hhb:100000000:0:9: ++%hhb:0B100000000:1:11:0: ++%*hhb:0B100000000:0:11: ++%hhb:0b100000000:1:11:0: ++%*hhb:0b100000000:0:11: ++%hhb:100101001:1:9:41: ++%*hhb:100101001:0:9: ++%hhb:0B100101001:1:11:41: ++%*hhb:0B100101001:0:11: ++%hhb:0b100101001:1:11:41: ++%*hhb:0b100101001:0:11: ++%hhb:+0:1:2:0: ++%*hhb:+0:0:2: ++%hhb:+0B0:1:4:0: ++%*hhb:+0B0:0:4: ++%hhb:+0b0:1:4:0: ++%*hhb:+0b0:0:4: ++%hhb:+1:1:2:1: ++%*hhb:+1:0:2: ++%hhb:+0B1:1:4:1: ++%*hhb:+0B1:0:4: ++%hhb:+0b1:1:4:1: ++%*hhb:+0b1:0:4: ++%hhb:+101010:1:7:42: ++%*hhb:+101010:0:7: ++%hhb:+0B101010:1:9:42: ++%*hhb:+0B101010:0:9: ++%hhb:+0b101010:1:9:42: ++%*hhb:+0b101010:0:9: ++%hhb:+11111111:1:9:255: ++%*hhb:+11111111:0:9: ++%hhb:+0B11111111:1:11:255: ++%*hhb:+0B11111111:0:11: ++%hhb:+0b11111111:1:11:255: ++%*hhb:+0b11111111:0:11: ++%hhb:+100000000:1:10:0: ++%*hhb:+100000000:0:10: ++%hhb:+0B100000000:1:12:0: ++%*hhb:+0B100000000:0:12: ++%hhb:+0b100000000:1:12:0: ++%*hhb:+0b100000000:0:12: ++%hhb:+100101001:1:10:41: ++%*hhb:+100101001:0:10: ++%hhb:+0B100101001:1:12:41: ++%*hhb:+0B100101001:0:12: ++%hhb:+0b100101001:1:12:41: ++%*hhb:+0b100101001:0:12: ++%1hhb::0:-1: ++%*1hhb::0:-1: ++%1hhb:-1111011:0:-1: ++%*1hhb:-1111011:0:-1: ++%1hhb:-0B1111011:0:-1: ++%*1hhb:-0B1111011:0:-1: ++%1hhb:-0b1111011:0:-1: ++%*1hhb:-0b1111011:0:-1: ++%1hhb:-1:0:-1: ++%*1hhb:-1:0:-1: ++%1hhb:-0B1:0:-1: ++%*1hhb:-0B1:0:-1: ++%1hhb:-0b1:0:-1: ++%*1hhb:-0b1:0:-1: ++%1hhb:-0:0:-1: ++%*1hhb:-0:0:-1: ++%1hhb:-0B0:0:-1: ++%*1hhb:-0B0:0:-1: ++%1hhb:-0b0:0:-1: ++%*1hhb:-0b0:0:-1: ++%1hhb:0:1:1:0: ++%*1hhb:0:0:1: ++%1hhb:0B0:1:1:0: ++%*1hhb:0B0:0:1: ++%1hhb:0b0:1:1:0: ++%*1hhb:0b0:0:1: ++%1hhb:1:1:1:1: ++%*1hhb:1:0:1: ++%1hhb:0B1:1:1:0: ++%*1hhb:0B1:0:1: ++%1hhb:0b1:1:1:0: ++%*1hhb:0b1:0:1: ++%1hhb:101010:1:1:1: ++%*1hhb:101010:0:1: ++%1hhb:0B101010:1:1:0: ++%*1hhb:0B101010:0:1: ++%1hhb:0b101010:1:1:0: ++%*1hhb:0b101010:0:1: ++%1hhb:11111111:1:1:1: ++%*1hhb:11111111:0:1: ++%1hhb:0B11111111:1:1:0: ++%*1hhb:0B11111111:0:1: ++%1hhb:0b11111111:1:1:0: ++%*1hhb:0b11111111:0:1: ++%1hhb:100000000:1:1:1: ++%*1hhb:100000000:0:1: ++%1hhb:0B100000000:1:1:0: ++%*1hhb:0B100000000:0:1: ++%1hhb:0b100000000:1:1:0: ++%*1hhb:0b100000000:0:1: ++%1hhb:100101001:1:1:1: ++%*1hhb:100101001:0:1: ++%1hhb:0B100101001:1:1:0: ++%*1hhb:0B100101001:0:1: ++%1hhb:0b100101001:1:1:0: ++%*1hhb:0b100101001:0:1: ++%1hhb:+0:0:-1: ++%*1hhb:+0:0:-1: ++%1hhb:+0B0:0:-1: ++%*1hhb:+0B0:0:-1: ++%1hhb:+0b0:0:-1: ++%*1hhb:+0b0:0:-1: ++%1hhb:+1:0:-1: ++%*1hhb:+1:0:-1: ++%1hhb:+0B1:0:-1: ++%*1hhb:+0B1:0:-1: ++%1hhb:+0b1:0:-1: ++%*1hhb:+0b1:0:-1: ++%1hhb:+101010:0:-1: ++%*1hhb:+101010:0:-1: ++%1hhb:+0B101010:0:-1: ++%*1hhb:+0B101010:0:-1: ++%1hhb:+0b101010:0:-1: ++%*1hhb:+0b101010:0:-1: ++%1hhb:+11111111:0:-1: ++%*1hhb:+11111111:0:-1: ++%1hhb:+0B11111111:0:-1: ++%*1hhb:+0B11111111:0:-1: ++%1hhb:+0b11111111:0:-1: ++%*1hhb:+0b11111111:0:-1: ++%1hhb:+100000000:0:-1: ++%*1hhb:+100000000:0:-1: ++%1hhb:+0B100000000:0:-1: ++%*1hhb:+0B100000000:0:-1: ++%1hhb:+0b100000000:0:-1: ++%*1hhb:+0b100000000:0:-1: ++%1hhb:+100101001:0:-1: ++%*1hhb:+100101001:0:-1: ++%1hhb:+0B100101001:0:-1: ++%*1hhb:+0B100101001:0:-1: ++%1hhb:+0b100101001:0:-1: ++%*1hhb:+0b100101001:0:-1: ++%2hhb::0:-1: ++%*2hhb::0:-1: ++%2hhb:-1111011:1:2:255: ++%*2hhb:-1111011:0:2: ++%2hhb:-0B1111011:1:2:0: ++%*2hhb:-0B1111011:0:2: ++%2hhb:-0b1111011:1:2:0: ++%*2hhb:-0b1111011:0:2: ++%2hhb:-1:1:2:255: ++%*2hhb:-1:0:2: ++%2hhb:-0B1:1:2:0: ++%*2hhb:-0B1:0:2: ++%2hhb:-0b1:1:2:0: ++%*2hhb:-0b1:0:2: ++%2hhb:-0:1:2:0: ++%*2hhb:-0:0:2: ++%2hhb:-0B0:1:2:0: ++%*2hhb:-0B0:0:2: ++%2hhb:-0b0:1:2:0: ++%*2hhb:-0b0:0:2: ++%2hhb:0:1:1:0: ++%*2hhb:0:0:1: ++# BZ12701 %2hhb:0B0:0:-1: ++# BZ12701 %*2hhb:0B0:0:-1: ++# BZ12701 %2hhb:0b0:0:-1: ++# BZ12701 %*2hhb:0b0:0:-1: ++%2hhb:1:1:1:1: ++%*2hhb:1:0:1: ++# BZ12701 %2hhb:0B1:0:-1: ++# BZ12701 %*2hhb:0B1:0:-1: ++# BZ12701 %2hhb:0b1:0:-1: ++# BZ12701 %*2hhb:0b1:0:-1: ++%2hhb:101010:1:2:2: ++%*2hhb:101010:0:2: ++# BZ12701 %2hhb:0B101010:0:-1: ++# BZ12701 %*2hhb:0B101010:0:-1: ++# BZ12701 %2hhb:0b101010:0:-1: ++# BZ12701 %*2hhb:0b101010:0:-1: ++%2hhb:11111111:1:2:3: ++%*2hhb:11111111:0:2: ++# BZ12701 %2hhb:0B11111111:0:-1: ++# BZ12701 %*2hhb:0B11111111:0:-1: ++# BZ12701 %2hhb:0b11111111:0:-1: ++# BZ12701 %*2hhb:0b11111111:0:-1: ++%2hhb:100000000:1:2:2: ++%*2hhb:100000000:0:2: ++# BZ12701 %2hhb:0B100000000:0:-1: ++# BZ12701 %*2hhb:0B100000000:0:-1: ++# BZ12701 %2hhb:0b100000000:0:-1: ++# BZ12701 %*2hhb:0b100000000:0:-1: ++%2hhb:100101001:1:2:2: ++%*2hhb:100101001:0:2: ++# BZ12701 %2hhb:0B100101001:0:-1: ++# BZ12701 %*2hhb:0B100101001:0:-1: ++# BZ12701 %2hhb:0b100101001:0:-1: ++# BZ12701 %*2hhb:0b100101001:0:-1: ++%2hhb:+0:1:2:0: ++%*2hhb:+0:0:2: ++%2hhb:+0B0:1:2:0: ++%*2hhb:+0B0:0:2: ++%2hhb:+0b0:1:2:0: ++%*2hhb:+0b0:0:2: ++%2hhb:+1:1:2:1: ++%*2hhb:+1:0:2: ++%2hhb:+0B1:1:2:0: ++%*2hhb:+0B1:0:2: ++%2hhb:+0b1:1:2:0: ++%*2hhb:+0b1:0:2: ++%2hhb:+101010:1:2:1: ++%*2hhb:+101010:0:2: ++%2hhb:+0B101010:1:2:0: ++%*2hhb:+0B101010:0:2: ++%2hhb:+0b101010:1:2:0: ++%*2hhb:+0b101010:0:2: ++%2hhb:+11111111:1:2:1: ++%*2hhb:+11111111:0:2: ++%2hhb:+0B11111111:1:2:0: ++%*2hhb:+0B11111111:0:2: ++%2hhb:+0b11111111:1:2:0: ++%*2hhb:+0b11111111:0:2: ++%2hhb:+100000000:1:2:1: ++%*2hhb:+100000000:0:2: ++%2hhb:+0B100000000:1:2:0: ++%*2hhb:+0B100000000:0:2: ++%2hhb:+0b100000000:1:2:0: ++%*2hhb:+0b100000000:0:2: ++%2hhb:+100101001:1:2:1: ++%*2hhb:+100101001:0:2: ++%2hhb:+0B100101001:1:2:0: ++%*2hhb:+0B100101001:0:2: ++%2hhb:+0b100101001:1:2:0: ++%*2hhb:+0b100101001:0:2: ++%3hhb::0:-1: ++%*3hhb::0:-1: ++%3hhb:-1111011:1:3:253: ++%*3hhb:-1111011:0:3: ++# BZ12701 %3hhb:-0B1111011:0:-1: ++# BZ12701 %*3hhb:-0B1111011:0:-1: ++# BZ12701 %3hhb:-0b1111011:0:-1: ++# BZ12701 %*3hhb:-0b1111011:0:-1: ++%3hhb:-1:1:2:255: ++%*3hhb:-1:0:2: ++# BZ12701 %3hhb:-0B1:0:-1: ++# BZ12701 %*3hhb:-0B1:0:-1: ++# BZ12701 %3hhb:-0b1:0:-1: ++# BZ12701 %*3hhb:-0b1:0:-1: ++%3hhb:-0:1:2:0: ++%*3hhb:-0:0:2: ++# BZ12701 %3hhb:-0B0:0:-1: ++# BZ12701 %*3hhb:-0B0:0:-1: ++# BZ12701 %3hhb:-0b0:0:-1: ++# BZ12701 %*3hhb:-0b0:0:-1: ++%3hhb:0:1:1:0: ++%*3hhb:0:0:1: ++%3hhb:0B0:1:3:0: ++%*3hhb:0B0:0:3: ++%3hhb:0b0:1:3:0: ++%*3hhb:0b0:0:3: ++%3hhb:1:1:1:1: ++%*3hhb:1:0:1: ++%3hhb:0B1:1:3:1: ++%*3hhb:0B1:0:3: ++%3hhb:0b1:1:3:1: ++%*3hhb:0b1:0:3: ++%3hhb:101010:1:3:5: ++%*3hhb:101010:0:3: ++%3hhb:0B101010:1:3:1: ++%*3hhb:0B101010:0:3: ++%3hhb:0b101010:1:3:1: ++%*3hhb:0b101010:0:3: ++%3hhb:11111111:1:3:7: ++%*3hhb:11111111:0:3: ++%3hhb:0B11111111:1:3:1: ++%*3hhb:0B11111111:0:3: ++%3hhb:0b11111111:1:3:1: ++%*3hhb:0b11111111:0:3: ++%3hhb:100000000:1:3:4: ++%*3hhb:100000000:0:3: ++%3hhb:0B100000000:1:3:1: ++%*3hhb:0B100000000:0:3: ++%3hhb:0b100000000:1:3:1: ++%*3hhb:0b100000000:0:3: ++%3hhb:100101001:1:3:4: ++%*3hhb:100101001:0:3: ++%3hhb:0B100101001:1:3:1: ++%*3hhb:0B100101001:0:3: ++%3hhb:0b100101001:1:3:1: ++%*3hhb:0b100101001:0:3: ++%3hhb:+0:1:2:0: ++%*3hhb:+0:0:2: ++# BZ12701 %3hhb:+0B0:0:-1: ++# BZ12701 %*3hhb:+0B0:0:-1: ++# BZ12701 %3hhb:+0b0:0:-1: ++# BZ12701 %*3hhb:+0b0:0:-1: ++%3hhb:+1:1:2:1: ++%*3hhb:+1:0:2: ++# BZ12701 %3hhb:+0B1:0:-1: ++# BZ12701 %*3hhb:+0B1:0:-1: ++# BZ12701 %3hhb:+0b1:0:-1: ++# BZ12701 %*3hhb:+0b1:0:-1: ++%3hhb:+101010:1:3:2: ++%*3hhb:+101010:0:3: ++# BZ12701 %3hhb:+0B101010:0:-1: ++# BZ12701 %*3hhb:+0B101010:0:-1: ++# BZ12701 %3hhb:+0b101010:0:-1: ++# BZ12701 %*3hhb:+0b101010:0:-1: ++%3hhb:+11111111:1:3:3: ++%*3hhb:+11111111:0:3: ++# BZ12701 %3hhb:+0B11111111:0:-1: ++# BZ12701 %*3hhb:+0B11111111:0:-1: ++# BZ12701 %3hhb:+0b11111111:0:-1: ++# BZ12701 %*3hhb:+0b11111111:0:-1: ++%3hhb:+100000000:1:3:2: ++%*3hhb:+100000000:0:3: ++# BZ12701 %3hhb:+0B100000000:0:-1: ++# BZ12701 %*3hhb:+0B100000000:0:-1: ++# BZ12701 %3hhb:+0b100000000:0:-1: ++# BZ12701 %*3hhb:+0b100000000:0:-1: ++%3hhb:+100101001:1:3:2: ++%*3hhb:+100101001:0:3: ++# BZ12701 %3hhb:+0B100101001:0:-1: ++# BZ12701 %*3hhb:+0B100101001:0:-1: ++# BZ12701 %3hhb:+0b100101001:0:-1: ++# BZ12701 %*3hhb:+0b100101001:0:-1: ++%5hhb::0:-1: ++%*5hhb::0:-1: ++%5hhb:-1111011:1:5:241: ++%*5hhb:-1111011:0:5: ++%5hhb:-0B1111011:1:5:253: ++%*5hhb:-0B1111011:0:5: ++%5hhb:-0b1111011:1:5:253: ++%*5hhb:-0b1111011:0:5: ++%5hhb:-1:1:2:255: ++%*5hhb:-1:0:2: ++%5hhb:-0B1:1:4:255: ++%*5hhb:-0B1:0:4: ++%5hhb:-0b1:1:4:255: ++%*5hhb:-0b1:0:4: ++%5hhb:-0:1:2:0: ++%*5hhb:-0:0:2: ++%5hhb:-0B0:1:4:0: ++%*5hhb:-0B0:0:4: ++%5hhb:-0b0:1:4:0: ++%*5hhb:-0b0:0:4: ++%5hhb:0:1:1:0: ++%*5hhb:0:0:1: ++%5hhb:0B0:1:3:0: ++%*5hhb:0B0:0:3: ++%5hhb:0b0:1:3:0: ++%*5hhb:0b0:0:3: ++%5hhb:1:1:1:1: ++%*5hhb:1:0:1: ++%5hhb:0B1:1:3:1: ++%*5hhb:0B1:0:3: ++%5hhb:0b1:1:3:1: ++%*5hhb:0b1:0:3: ++%5hhb:101010:1:5:21: ++%*5hhb:101010:0:5: ++%5hhb:0B101010:1:5:5: ++%*5hhb:0B101010:0:5: ++%5hhb:0b101010:1:5:5: ++%*5hhb:0b101010:0:5: ++%5hhb:11111111:1:5:31: ++%*5hhb:11111111:0:5: ++%5hhb:0B11111111:1:5:7: ++%*5hhb:0B11111111:0:5: ++%5hhb:0b11111111:1:5:7: ++%*5hhb:0b11111111:0:5: ++%5hhb:100000000:1:5:16: ++%*5hhb:100000000:0:5: ++%5hhb:0B100000000:1:5:4: ++%*5hhb:0B100000000:0:5: ++%5hhb:0b100000000:1:5:4: ++%*5hhb:0b100000000:0:5: ++%5hhb:100101001:1:5:18: ++%*5hhb:100101001:0:5: ++%5hhb:0B100101001:1:5:4: ++%*5hhb:0B100101001:0:5: ++%5hhb:0b100101001:1:5:4: ++%*5hhb:0b100101001:0:5: ++%5hhb:+0:1:2:0: ++%*5hhb:+0:0:2: ++%5hhb:+0B0:1:4:0: ++%*5hhb:+0B0:0:4: ++%5hhb:+0b0:1:4:0: ++%*5hhb:+0b0:0:4: ++%5hhb:+1:1:2:1: ++%*5hhb:+1:0:2: ++%5hhb:+0B1:1:4:1: ++%*5hhb:+0B1:0:4: ++%5hhb:+0b1:1:4:1: ++%*5hhb:+0b1:0:4: ++%5hhb:+101010:1:5:10: ++%*5hhb:+101010:0:5: ++%5hhb:+0B101010:1:5:2: ++%*5hhb:+0B101010:0:5: ++%5hhb:+0b101010:1:5:2: ++%*5hhb:+0b101010:0:5: ++%5hhb:+11111111:1:5:15: ++%*5hhb:+11111111:0:5: ++%5hhb:+0B11111111:1:5:3: ++%*5hhb:+0B11111111:0:5: ++%5hhb:+0b11111111:1:5:3: ++%*5hhb:+0b11111111:0:5: ++%5hhb:+100000000:1:5:8: ++%*5hhb:+100000000:0:5: ++%5hhb:+0B100000000:1:5:2: ++%*5hhb:+0B100000000:0:5: ++%5hhb:+0b100000000:1:5:2: ++%*5hhb:+0b100000000:0:5: ++%5hhb:+100101001:1:5:9: ++%*5hhb:+100101001:0:5: ++%5hhb:+0B100101001:1:5:2: ++%*5hhb:+0B100101001:0:5: ++%5hhb:+0b100101001:1:5:2: ++%*5hhb:+0b100101001:0:5: ++%2hhb: :0:-1: ++%*2hhb: :0:-1: ++%2hhb: -1111011:1:3:255: ++%*2hhb: -1111011:0:3: ++%2hhb: -0B1111011:1:3:0: ++%*2hhb: -0B1111011:0:3: ++%2hhb: -0b1111011:1:3:0: ++%*2hhb: -0b1111011:0:3: ++%2hhb: -1:1:3:255: ++%*2hhb: -1:0:3: ++%2hhb: -0B1:1:3:0: ++%*2hhb: -0B1:0:3: ++%2hhb: -0b1:1:3:0: ++%*2hhb: -0b1:0:3: ++%2hhb: -0:1:3:0: ++%*2hhb: -0:0:3: ++%2hhb: -0B0:1:3:0: ++%*2hhb: -0B0:0:3: ++%2hhb: -0b0:1:3:0: ++%*2hhb: -0b0:0:3: ++%2hhb: 0:1:2:0: ++%*2hhb: 0:0:2: ++# BZ12701 %2hhb: 0B0:0:-1: ++# BZ12701 %*2hhb: 0B0:0:-1: ++# BZ12701 %2hhb: 0b0:0:-1: ++# BZ12701 %*2hhb: 0b0:0:-1: ++%2hhb: 1:1:2:1: ++%*2hhb: 1:0:2: ++# BZ12701 %2hhb: 0B1:0:-1: ++# BZ12701 %*2hhb: 0B1:0:-1: ++# BZ12701 %2hhb: 0b1:0:-1: ++# BZ12701 %*2hhb: 0b1:0:-1: ++%2hhb: 101010:1:3:2: ++%*2hhb: 101010:0:3: ++# BZ12701 %2hhb: 0B101010:0:-1: ++# BZ12701 %*2hhb: 0B101010:0:-1: ++# BZ12701 %2hhb: 0b101010:0:-1: ++# BZ12701 %*2hhb: 0b101010:0:-1: ++%2hhb: 11111111:1:3:3: ++%*2hhb: 11111111:0:3: ++# BZ12701 %2hhb: 0B11111111:0:-1: ++# BZ12701 %*2hhb: 0B11111111:0:-1: ++# BZ12701 %2hhb: 0b11111111:0:-1: ++# BZ12701 %*2hhb: 0b11111111:0:-1: ++%2hhb: 100000000:1:3:2: ++%*2hhb: 100000000:0:3: ++# BZ12701 %2hhb: 0B100000000:0:-1: ++# BZ12701 %*2hhb: 0B100000000:0:-1: ++# BZ12701 %2hhb: 0b100000000:0:-1: ++# BZ12701 %*2hhb: 0b100000000:0:-1: ++%2hhb: 100101001:1:3:2: ++%*2hhb: 100101001:0:3: ++# BZ12701 %2hhb: 0B100101001:0:-1: ++# BZ12701 %*2hhb: 0B100101001:0:-1: ++# BZ12701 %2hhb: 0b100101001:0:-1: ++# BZ12701 %*2hhb: 0b100101001:0:-1: ++%2hhb: +0:1:3:0: ++%*2hhb: +0:0:3: ++%2hhb: +0B0:1:3:0: ++%*2hhb: +0B0:0:3: ++%2hhb: +0b0:1:3:0: ++%*2hhb: +0b0:0:3: ++%2hhb: +1:1:3:1: ++%*2hhb: +1:0:3: ++%2hhb: +0B1:1:3:0: ++%*2hhb: +0B1:0:3: ++%2hhb: +0b1:1:3:0: ++%*2hhb: +0b1:0:3: ++%2hhb: +101010:1:3:1: ++%*2hhb: +101010:0:3: ++%2hhb: +0B101010:1:3:0: ++%*2hhb: +0B101010:0:3: ++%2hhb: +0b101010:1:3:0: ++%*2hhb: +0b101010:0:3: ++%2hhb: +11111111:1:3:1: ++%*2hhb: +11111111:0:3: ++%2hhb: +0B11111111:1:3:0: ++%*2hhb: +0B11111111:0:3: ++%2hhb: +0b11111111:1:3:0: ++%*2hhb: +0b11111111:0:3: ++%2hhb: +100000000:1:3:1: ++%*2hhb: +100000000:0:3: ++%2hhb: +0B100000000:1:3:0: ++%*2hhb: +0B100000000:0:3: ++%2hhb: +0b100000000:1:3:0: ++%*2hhb: +0b100000000:0:3: ++%2hhb: +100101001:1:3:1: ++%*2hhb: +100101001:0:3: ++%2hhb: +0B100101001:1:3:0: ++%*2hhb: +0B100101001:0:3: ++%2hhb: +0b100101001:1:3:0: ++%*2hhb: +0b100101001:0:3: ++%5hhb: :0:-1: ++%*5hhb: :0:-1: ++%5hhb: -1111011:1:6:241: ++%*5hhb: -1111011:0:6: ++%5hhb: -0B1111011:1:6:253: ++%*5hhb: -0B1111011:0:6: ++%5hhb: -0b1111011:1:6:253: ++%*5hhb: -0b1111011:0:6: ++%5hhb: -1:1:3:255: ++%*5hhb: -1:0:3: ++%5hhb: -0B1:1:5:255: ++%*5hhb: -0B1:0:5: ++%5hhb: -0b1:1:5:255: ++%*5hhb: -0b1:0:5: ++%5hhb: -0:1:3:0: ++%*5hhb: -0:0:3: ++%5hhb: -0B0:1:5:0: ++%*5hhb: -0B0:0:5: ++%5hhb: -0b0:1:5:0: ++%*5hhb: -0b0:0:5: ++%5hhb: 0:1:2:0: ++%*5hhb: 0:0:2: ++%5hhb: 0B0:1:4:0: ++%*5hhb: 0B0:0:4: ++%5hhb: 0b0:1:4:0: ++%*5hhb: 0b0:0:4: ++%5hhb: 1:1:2:1: ++%*5hhb: 1:0:2: ++%5hhb: 0B1:1:4:1: ++%*5hhb: 0B1:0:4: ++%5hhb: 0b1:1:4:1: ++%*5hhb: 0b1:0:4: ++%5hhb: 101010:1:6:21: ++%*5hhb: 101010:0:6: ++%5hhb: 0B101010:1:6:5: ++%*5hhb: 0B101010:0:6: ++%5hhb: 0b101010:1:6:5: ++%*5hhb: 0b101010:0:6: ++%5hhb: 11111111:1:6:31: ++%*5hhb: 11111111:0:6: ++%5hhb: 0B11111111:1:6:7: ++%*5hhb: 0B11111111:0:6: ++%5hhb: 0b11111111:1:6:7: ++%*5hhb: 0b11111111:0:6: ++%5hhb: 100000000:1:6:16: ++%*5hhb: 100000000:0:6: ++%5hhb: 0B100000000:1:6:4: ++%*5hhb: 0B100000000:0:6: ++%5hhb: 0b100000000:1:6:4: ++%*5hhb: 0b100000000:0:6: ++%5hhb: 100101001:1:6:18: ++%*5hhb: 100101001:0:6: ++%5hhb: 0B100101001:1:6:4: ++%*5hhb: 0B100101001:0:6: ++%5hhb: 0b100101001:1:6:4: ++%*5hhb: 0b100101001:0:6: ++%5hhb: +0:1:3:0: ++%*5hhb: +0:0:3: ++%5hhb: +0B0:1:5:0: ++%*5hhb: +0B0:0:5: ++%5hhb: +0b0:1:5:0: ++%*5hhb: +0b0:0:5: ++%5hhb: +1:1:3:1: ++%*5hhb: +1:0:3: ++%5hhb: +0B1:1:5:1: ++%*5hhb: +0B1:0:5: ++%5hhb: +0b1:1:5:1: ++%*5hhb: +0b1:0:5: ++%5hhb: +101010:1:6:10: ++%*5hhb: +101010:0:6: ++%5hhb: +0B101010:1:6:2: ++%*5hhb: +0B101010:0:6: ++%5hhb: +0b101010:1:6:2: ++%*5hhb: +0b101010:0:6: ++%5hhb: +11111111:1:6:15: ++%*5hhb: +11111111:0:6: ++%5hhb: +0B11111111:1:6:3: ++%*5hhb: +0B11111111:0:6: ++%5hhb: +0b11111111:1:6:3: ++%*5hhb: +0b11111111:0:6: ++%5hhb: +100000000:1:6:8: ++%*5hhb: +100000000:0:6: ++%5hhb: +0B100000000:1:6:2: ++%*5hhb: +0B100000000:0:6: ++%5hhb: +0b100000000:1:6:2: ++%*5hhb: +0b100000000:0:6: ++%5hhb: +100101001:1:6:9: ++%*5hhb: +100101001:0:6: ++%5hhb: +0B100101001:1:6:2: ++%*5hhb: +0B100101001:0:6: ++%5hhb: +0b100101001:1:6:2: ++%*5hhb: +0b100101001:0:6: +diff --git a/stdio-common/tst-scanf-format-uchar-o.input b/stdio-common/tst-scanf-format-uchar-o.input +new file mode 100644 +index 0000000000000000..904665f5ef1ca5ec +--- /dev/null ++++ b/stdio-common/tst-scanf-format-uchar-o.input +@@ -0,0 +1,434 @@ ++%hho::0:-1: ++%*hho::0:-1: ++%hho:-173:1:4:133: ++%*hho:-173:0:4: ++%hho:-0173:1:5:133: ++%*hho:-0173:0:5: ++%hho:-1:1:2:255: ++%*hho:-1:0:2: ++%hho:-01:1:3:255: ++%*hho:-01:0:3: ++%hho:-0:1:2:0: ++%*hho:-0:0:2: ++%hho:-00:1:3:0: ++%*hho:-00:0:3: ++%hho:0:1:1:0: ++%*hho:0:0:1: ++%hho:00:1:2:0: ++%*hho:00:0:2: ++%hho:1:1:1:1: ++%*hho:1:0:1: ++%hho:01:1:2:1: ++%*hho:01:0:2: ++%hho:52:1:2:42: ++%*hho:52:0:2: ++%hho:052:1:3:42: ++%*hho:052:0:3: ++%hho:377:1:3:255: ++%*hho:377:0:3: ++%hho:0377:1:4:255: ++%*hho:0377:0:4: ++%hho:400:1:3:0: ++%*hho:400:0:3: ++%hho:0400:1:4:0: ++%*hho:0400:0:4: ++%hho:451:1:3:41: ++%*hho:451:0:3: ++%hho:0451:1:4:41: ++%*hho:0451:0:4: ++%hho:+0:1:2:0: ++%*hho:+0:0:2: ++%hho:+00:1:3:0: ++%*hho:+00:0:3: ++%hho:+1:1:2:1: ++%*hho:+1:0:2: ++%hho:+01:1:3:1: ++%*hho:+01:0:3: ++%hho:+52:1:3:42: ++%*hho:+52:0:3: ++%hho:+052:1:4:42: ++%*hho:+052:0:4: ++%hho:+377:1:4:255: ++%*hho:+377:0:4: ++%hho:+0377:1:5:255: ++%*hho:+0377:0:5: ++%hho:+400:1:4:0: ++%*hho:+400:0:4: ++%hho:+0400:1:5:0: ++%*hho:+0400:0:5: ++%hho:+451:1:4:41: ++%*hho:+451:0:4: ++%hho:+0451:1:5:41: ++%*hho:+0451:0:5: ++%1hho::0:-1: ++%*1hho::0:-1: ++%1hho:-173:0:-1: ++%*1hho:-173:0:-1: ++%1hho:-0173:0:-1: ++%*1hho:-0173:0:-1: ++%1hho:-1:0:-1: ++%*1hho:-1:0:-1: ++%1hho:-01:0:-1: ++%*1hho:-01:0:-1: ++%1hho:-0:0:-1: ++%*1hho:-0:0:-1: ++%1hho:-00:0:-1: ++%*1hho:-00:0:-1: ++%1hho:0:1:1:0: ++%*1hho:0:0:1: ++%1hho:00:1:1:0: ++%*1hho:00:0:1: ++%1hho:1:1:1:1: ++%*1hho:1:0:1: ++%1hho:01:1:1:0: ++%*1hho:01:0:1: ++%1hho:52:1:1:5: ++%*1hho:52:0:1: ++%1hho:052:1:1:0: ++%*1hho:052:0:1: ++%1hho:377:1:1:3: ++%*1hho:377:0:1: ++%1hho:0377:1:1:0: ++%*1hho:0377:0:1: ++%1hho:400:1:1:4: ++%*1hho:400:0:1: ++%1hho:0400:1:1:0: ++%*1hho:0400:0:1: ++%1hho:451:1:1:4: ++%*1hho:451:0:1: ++%1hho:0451:1:1:0: ++%*1hho:0451:0:1: ++%1hho:+0:0:-1: ++%*1hho:+0:0:-1: ++%1hho:+00:0:-1: ++%*1hho:+00:0:-1: ++%1hho:+1:0:-1: ++%*1hho:+1:0:-1: ++%1hho:+01:0:-1: ++%*1hho:+01:0:-1: ++%1hho:+52:0:-1: ++%*1hho:+52:0:-1: ++%1hho:+052:0:-1: ++%*1hho:+052:0:-1: ++%1hho:+377:0:-1: ++%*1hho:+377:0:-1: ++%1hho:+0377:0:-1: ++%*1hho:+0377:0:-1: ++%1hho:+400:0:-1: ++%*1hho:+400:0:-1: ++%1hho:+0400:0:-1: ++%*1hho:+0400:0:-1: ++%1hho:+451:0:-1: ++%*1hho:+451:0:-1: ++%1hho:+0451:0:-1: ++%*1hho:+0451:0:-1: ++%2hho::0:-1: ++%*2hho::0:-1: ++%2hho:-173:1:2:255: ++%*2hho:-173:0:2: ++%2hho:-0173:1:2:0: ++%*2hho:-0173:0:2: ++%2hho:-1:1:2:255: ++%*2hho:-1:0:2: ++%2hho:-01:1:2:0: ++%*2hho:-01:0:2: ++%2hho:-0:1:2:0: ++%*2hho:-0:0:2: ++%2hho:-00:1:2:0: ++%*2hho:-00:0:2: ++%2hho:0:1:1:0: ++%*2hho:0:0:1: ++%2hho:00:1:2:0: ++%*2hho:00:0:2: ++%2hho:1:1:1:1: ++%*2hho:1:0:1: ++%2hho:01:1:2:1: ++%*2hho:01:0:2: ++%2hho:52:1:2:42: ++%*2hho:52:0:2: ++%2hho:052:1:2:5: ++%*2hho:052:0:2: ++%2hho:377:1:2:31: ++%*2hho:377:0:2: ++%2hho:0377:1:2:3: ++%*2hho:0377:0:2: ++%2hho:400:1:2:32: ++%*2hho:400:0:2: ++%2hho:0400:1:2:4: ++%*2hho:0400:0:2: ++%2hho:451:1:2:37: ++%*2hho:451:0:2: ++%2hho:0451:1:2:4: ++%*2hho:0451:0:2: ++%2hho:+0:1:2:0: ++%*2hho:+0:0:2: ++%2hho:+00:1:2:0: ++%*2hho:+00:0:2: ++%2hho:+1:1:2:1: ++%*2hho:+1:0:2: ++%2hho:+01:1:2:0: ++%*2hho:+01:0:2: ++%2hho:+52:1:2:5: ++%*2hho:+52:0:2: ++%2hho:+052:1:2:0: ++%*2hho:+052:0:2: ++%2hho:+377:1:2:3: ++%*2hho:+377:0:2: ++%2hho:+0377:1:2:0: ++%*2hho:+0377:0:2: ++%2hho:+400:1:2:4: ++%*2hho:+400:0:2: ++%2hho:+0400:1:2:0: ++%*2hho:+0400:0:2: ++%2hho:+451:1:2:4: ++%*2hho:+451:0:2: ++%2hho:+0451:1:2:0: ++%*2hho:+0451:0:2: ++%3hho::0:-1: ++%*3hho::0:-1: ++%3hho:-173:1:3:241: ++%*3hho:-173:0:3: ++%3hho:-0173:1:3:255: ++%*3hho:-0173:0:3: ++%3hho:-1:1:2:255: ++%*3hho:-1:0:2: ++%3hho:-01:1:3:255: ++%*3hho:-01:0:3: ++%3hho:-0:1:2:0: ++%*3hho:-0:0:2: ++%3hho:-00:1:3:0: ++%*3hho:-00:0:3: ++%3hho:0:1:1:0: ++%*3hho:0:0:1: ++%3hho:00:1:2:0: ++%*3hho:00:0:2: ++%3hho:1:1:1:1: ++%*3hho:1:0:1: ++%3hho:01:1:2:1: ++%*3hho:01:0:2: ++%3hho:52:1:2:42: ++%*3hho:52:0:2: ++%3hho:052:1:3:42: ++%*3hho:052:0:3: ++%3hho:377:1:3:255: ++%*3hho:377:0:3: ++%3hho:0377:1:3:31: ++%*3hho:0377:0:3: ++%3hho:400:1:3:0: ++%*3hho:400:0:3: ++%3hho:0400:1:3:32: ++%*3hho:0400:0:3: ++%3hho:451:1:3:41: ++%*3hho:451:0:3: ++%3hho:0451:1:3:37: ++%*3hho:0451:0:3: ++%3hho:+0:1:2:0: ++%*3hho:+0:0:2: ++%3hho:+00:1:3:0: ++%*3hho:+00:0:3: ++%3hho:+1:1:2:1: ++%*3hho:+1:0:2: ++%3hho:+01:1:3:1: ++%*3hho:+01:0:3: ++%3hho:+52:1:3:42: ++%*3hho:+52:0:3: ++%3hho:+052:1:3:5: ++%*3hho:+052:0:3: ++%3hho:+377:1:3:31: ++%*3hho:+377:0:3: ++%3hho:+0377:1:3:3: ++%*3hho:+0377:0:3: ++%3hho:+400:1:3:32: ++%*3hho:+400:0:3: ++%3hho:+0400:1:3:4: ++%*3hho:+0400:0:3: ++%3hho:+451:1:3:37: ++%*3hho:+451:0:3: ++%3hho:+0451:1:3:4: ++%*3hho:+0451:0:3: ++%5hho::0:-1: ++%*5hho::0:-1: ++%5hho:-173:1:4:133: ++%*5hho:-173:0:4: ++%5hho:-0173:1:5:133: ++%*5hho:-0173:0:5: ++%5hho:-1:1:2:255: ++%*5hho:-1:0:2: ++%5hho:-01:1:3:255: ++%*5hho:-01:0:3: ++%5hho:-0:1:2:0: ++%*5hho:-0:0:2: ++%5hho:-00:1:3:0: ++%*5hho:-00:0:3: ++%5hho:0:1:1:0: ++%*5hho:0:0:1: ++%5hho:00:1:2:0: ++%*5hho:00:0:2: ++%5hho:1:1:1:1: ++%*5hho:1:0:1: ++%5hho:01:1:2:1: ++%*5hho:01:0:2: ++%5hho:52:1:2:42: ++%*5hho:52:0:2: ++%5hho:052:1:3:42: ++%*5hho:052:0:3: ++%5hho:377:1:3:255: ++%*5hho:377:0:3: ++%5hho:0377:1:4:255: ++%*5hho:0377:0:4: ++%5hho:400:1:3:0: ++%*5hho:400:0:3: ++%5hho:0400:1:4:0: ++%*5hho:0400:0:4: ++%5hho:451:1:3:41: ++%*5hho:451:0:3: ++%5hho:0451:1:4:41: ++%*5hho:0451:0:4: ++%5hho:+0:1:2:0: ++%*5hho:+0:0:2: ++%5hho:+00:1:3:0: ++%*5hho:+00:0:3: ++%5hho:+1:1:2:1: ++%*5hho:+1:0:2: ++%5hho:+01:1:3:1: ++%*5hho:+01:0:3: ++%5hho:+52:1:3:42: ++%*5hho:+52:0:3: ++%5hho:+052:1:4:42: ++%*5hho:+052:0:4: ++%5hho:+377:1:4:255: ++%*5hho:+377:0:4: ++%5hho:+0377:1:5:255: ++%*5hho:+0377:0:5: ++%5hho:+400:1:4:0: ++%*5hho:+400:0:4: ++%5hho:+0400:1:5:0: ++%*5hho:+0400:0:5: ++%5hho:+451:1:4:41: ++%*5hho:+451:0:4: ++%5hho:+0451:1:5:41: ++%*5hho:+0451:0:5: ++%2hho: :0:-1: ++%*2hho: :0:-1: ++%2hho: -173:1:3:255: ++%*2hho: -173:0:3: ++%2hho: -0173:1:3:0: ++%*2hho: -0173:0:3: ++%2hho: -1:1:3:255: ++%*2hho: -1:0:3: ++%2hho: -01:1:3:0: ++%*2hho: -01:0:3: ++%2hho: -0:1:3:0: ++%*2hho: -0:0:3: ++%2hho: -00:1:3:0: ++%*2hho: -00:0:3: ++%2hho: 0:1:2:0: ++%*2hho: 0:0:2: ++%2hho: 00:1:3:0: ++%*2hho: 00:0:3: ++%2hho: 1:1:2:1: ++%*2hho: 1:0:2: ++%2hho: 01:1:3:1: ++%*2hho: 01:0:3: ++%2hho: 52:1:3:42: ++%*2hho: 52:0:3: ++%2hho: 052:1:3:5: ++%*2hho: 052:0:3: ++%2hho: 377:1:3:31: ++%*2hho: 377:0:3: ++%2hho: 0377:1:3:3: ++%*2hho: 0377:0:3: ++%2hho: 400:1:3:32: ++%*2hho: 400:0:3: ++%2hho: 0400:1:3:4: ++%*2hho: 0400:0:3: ++%2hho: 451:1:3:37: ++%*2hho: 451:0:3: ++%2hho: 0451:1:3:4: ++%*2hho: 0451:0:3: ++%2hho: +0:1:3:0: ++%*2hho: +0:0:3: ++%2hho: +00:1:3:0: ++%*2hho: +00:0:3: ++%2hho: +1:1:3:1: ++%*2hho: +1:0:3: ++%2hho: +01:1:3:0: ++%*2hho: +01:0:3: ++%2hho: +52:1:3:5: ++%*2hho: +52:0:3: ++%2hho: +052:1:3:0: ++%*2hho: +052:0:3: ++%2hho: +377:1:3:3: ++%*2hho: +377:0:3: ++%2hho: +0377:1:3:0: ++%*2hho: +0377:0:3: ++%2hho: +400:1:3:4: ++%*2hho: +400:0:3: ++%2hho: +0400:1:3:0: ++%*2hho: +0400:0:3: ++%2hho: +451:1:3:4: ++%*2hho: +451:0:3: ++%2hho: +0451:1:3:0: ++%*2hho: +0451:0:3: ++%5hho: :0:-1: ++%*5hho: :0:-1: ++%5hho: -173:1:5:133: ++%*5hho: -173:0:5: ++%5hho: -0173:1:6:133: ++%*5hho: -0173:0:6: ++%5hho: -1:1:3:255: ++%*5hho: -1:0:3: ++%5hho: -01:1:4:255: ++%*5hho: -01:0:4: ++%5hho: -0:1:3:0: ++%*5hho: -0:0:3: ++%5hho: -00:1:4:0: ++%*5hho: -00:0:4: ++%5hho: 0:1:2:0: ++%*5hho: 0:0:2: ++%5hho: 00:1:3:0: ++%*5hho: 00:0:3: ++%5hho: 1:1:2:1: ++%*5hho: 1:0:2: ++%5hho: 01:1:3:1: ++%*5hho: 01:0:3: ++%5hho: 52:1:3:42: ++%*5hho: 52:0:3: ++%5hho: 052:1:4:42: ++%*5hho: 052:0:4: ++%5hho: 377:1:4:255: ++%*5hho: 377:0:4: ++%5hho: 0377:1:5:255: ++%*5hho: 0377:0:5: ++%5hho: 400:1:4:0: ++%*5hho: 400:0:4: ++%5hho: 0400:1:5:0: ++%*5hho: 0400:0:5: ++%5hho: 451:1:4:41: ++%*5hho: 451:0:4: ++%5hho: 0451:1:5:41: ++%*5hho: 0451:0:5: ++%5hho: +0:1:3:0: ++%*5hho: +0:0:3: ++%5hho: +00:1:4:0: ++%*5hho: +00:0:4: ++%5hho: +1:1:3:1: ++%*5hho: +1:0:3: ++%5hho: +01:1:4:1: ++%*5hho: +01:0:4: ++%5hho: +52:1:4:42: ++%*5hho: +52:0:4: ++%5hho: +052:1:5:42: ++%*5hho: +052:0:5: ++%5hho: +377:1:5:255: ++%*5hho: +377:0:5: ++%5hho: +0377:1:6:255: ++%*5hho: +0377:0:6: ++%5hho: +400:1:5:0: ++%*5hho: +400:0:5: ++%5hho: +0400:1:6:0: ++%*5hho: +0400:0:6: ++%5hho: +451:1:5:41: ++%*5hho: +451:0:5: ++%5hho: +0451:1:6:41: ++%*5hho: +0451:0:6: +diff --git a/stdio-common/tst-scanf-format-uchar-u.input b/stdio-common/tst-scanf-format-uchar-u.input +new file mode 100644 +index 0000000000000000..f392aa55a8c9138d +--- /dev/null ++++ b/stdio-common/tst-scanf-format-uchar-u.input +@@ -0,0 +1,224 @@ ++%hhu::0:-1: ++%*hhu::0:-1: ++%hhu:-123:1:4:133: ++%*hhu:-123:0:4: ++%hhu:-1:1:2:255: ++%*hhu:-1:0:2: ++%hhu:-0:1:2:0: ++%*hhu:-0:0:2: ++%hhu:0:1:1:0: ++%*hhu:0:0:1: ++%hhu:1:1:1:1: ++%*hhu:1:0:1: ++%hhu:42:1:2:42: ++%*hhu:42:0:2: ++%hhu:255:1:3:255: ++%*hhu:255:0:3: ++%hhu:256:1:3:0: ++%*hhu:256:0:3: ++%hhu:297:1:3:41: ++%*hhu:297:0:3: ++%hhu:+0:1:2:0: ++%*hhu:+0:0:2: ++%hhu:+1:1:2:1: ++%*hhu:+1:0:2: ++%hhu:+42:1:3:42: ++%*hhu:+42:0:3: ++%hhu:+255:1:4:255: ++%*hhu:+255:0:4: ++%hhu:+256:1:4:0: ++%*hhu:+256:0:4: ++%hhu:+297:1:4:41: ++%*hhu:+297:0:4: ++%1hhu::0:-1: ++%*1hhu::0:-1: ++%1hhu:-123:0:-1: ++%*1hhu:-123:0:-1: ++%1hhu:-1:0:-1: ++%*1hhu:-1:0:-1: ++%1hhu:-0:0:-1: ++%*1hhu:-0:0:-1: ++%1hhu:0:1:1:0: ++%*1hhu:0:0:1: ++%1hhu:1:1:1:1: ++%*1hhu:1:0:1: ++%1hhu:42:1:1:4: ++%*1hhu:42:0:1: ++%1hhu:255:1:1:2: ++%*1hhu:255:0:1: ++%1hhu:256:1:1:2: ++%*1hhu:256:0:1: ++%1hhu:297:1:1:2: ++%*1hhu:297:0:1: ++%1hhu:+0:0:-1: ++%*1hhu:+0:0:-1: ++%1hhu:+1:0:-1: ++%*1hhu:+1:0:-1: ++%1hhu:+42:0:-1: ++%*1hhu:+42:0:-1: ++%1hhu:+255:0:-1: ++%*1hhu:+255:0:-1: ++%1hhu:+256:0:-1: ++%*1hhu:+256:0:-1: ++%1hhu:+297:0:-1: ++%*1hhu:+297:0:-1: ++%2hhu::0:-1: ++%*2hhu::0:-1: ++%2hhu:-123:1:2:255: ++%*2hhu:-123:0:2: ++%2hhu:-1:1:2:255: ++%*2hhu:-1:0:2: ++%2hhu:-0:1:2:0: ++%*2hhu:-0:0:2: ++%2hhu:0:1:1:0: ++%*2hhu:0:0:1: ++%2hhu:1:1:1:1: ++%*2hhu:1:0:1: ++%2hhu:42:1:2:42: ++%*2hhu:42:0:2: ++%2hhu:255:1:2:25: ++%*2hhu:255:0:2: ++%2hhu:256:1:2:25: ++%*2hhu:256:0:2: ++%2hhu:297:1:2:29: ++%*2hhu:297:0:2: ++%2hhu:+0:1:2:0: ++%*2hhu:+0:0:2: ++%2hhu:+1:1:2:1: ++%*2hhu:+1:0:2: ++%2hhu:+42:1:2:4: ++%*2hhu:+42:0:2: ++%2hhu:+255:1:2:2: ++%*2hhu:+255:0:2: ++%2hhu:+256:1:2:2: ++%*2hhu:+256:0:2: ++%2hhu:+297:1:2:2: ++%*2hhu:+297:0:2: ++%3hhu::0:-1: ++%*3hhu::0:-1: ++%3hhu:-123:1:3:244: ++%*3hhu:-123:0:3: ++%3hhu:-1:1:2:255: ++%*3hhu:-1:0:2: ++%3hhu:-0:1:2:0: ++%*3hhu:-0:0:2: ++%3hhu:0:1:1:0: ++%*3hhu:0:0:1: ++%3hhu:1:1:1:1: ++%*3hhu:1:0:1: ++%3hhu:42:1:2:42: ++%*3hhu:42:0:2: ++%3hhu:255:1:3:255: ++%*3hhu:255:0:3: ++%3hhu:256:1:3:0: ++%*3hhu:256:0:3: ++%3hhu:297:1:3:41: ++%*3hhu:297:0:3: ++%3hhu:+0:1:2:0: ++%*3hhu:+0:0:2: ++%3hhu:+1:1:2:1: ++%*3hhu:+1:0:2: ++%3hhu:+42:1:3:42: ++%*3hhu:+42:0:3: ++%3hhu:+255:1:3:25: ++%*3hhu:+255:0:3: ++%3hhu:+256:1:3:25: ++%*3hhu:+256:0:3: ++%3hhu:+297:1:3:29: ++%*3hhu:+297:0:3: ++%5hhu::0:-1: ++%*5hhu::0:-1: ++%5hhu:-123:1:4:133: ++%*5hhu:-123:0:4: ++%5hhu:-1:1:2:255: ++%*5hhu:-1:0:2: ++%5hhu:-0:1:2:0: ++%*5hhu:-0:0:2: ++%5hhu:0:1:1:0: ++%*5hhu:0:0:1: ++%5hhu:1:1:1:1: ++%*5hhu:1:0:1: ++%5hhu:42:1:2:42: ++%*5hhu:42:0:2: ++%5hhu:255:1:3:255: ++%*5hhu:255:0:3: ++%5hhu:256:1:3:0: ++%*5hhu:256:0:3: ++%5hhu:297:1:3:41: ++%*5hhu:297:0:3: ++%5hhu:+0:1:2:0: ++%*5hhu:+0:0:2: ++%5hhu:+1:1:2:1: ++%*5hhu:+1:0:2: ++%5hhu:+42:1:3:42: ++%*5hhu:+42:0:3: ++%5hhu:+255:1:4:255: ++%*5hhu:+255:0:4: ++%5hhu:+256:1:4:0: ++%*5hhu:+256:0:4: ++%5hhu:+297:1:4:41: ++%*5hhu:+297:0:4: ++%2hhu: :0:-1: ++%*2hhu: :0:-1: ++%2hhu: -123:1:3:255: ++%*2hhu: -123:0:3: ++%2hhu: -1:1:3:255: ++%*2hhu: -1:0:3: ++%2hhu: -0:1:3:0: ++%*2hhu: -0:0:3: ++%2hhu: 0:1:2:0: ++%*2hhu: 0:0:2: ++%2hhu: 1:1:2:1: ++%*2hhu: 1:0:2: ++%2hhu: 42:1:3:42: ++%*2hhu: 42:0:3: ++%2hhu: 255:1:3:25: ++%*2hhu: 255:0:3: ++%2hhu: 256:1:3:25: ++%*2hhu: 256:0:3: ++%2hhu: 297:1:3:29: ++%*2hhu: 297:0:3: ++%2hhu: +0:1:3:0: ++%*2hhu: +0:0:3: ++%2hhu: +1:1:3:1: ++%*2hhu: +1:0:3: ++%2hhu: +42:1:3:4: ++%*2hhu: +42:0:3: ++%2hhu: +255:1:3:2: ++%*2hhu: +255:0:3: ++%2hhu: +256:1:3:2: ++%*2hhu: +256:0:3: ++%2hhu: +297:1:3:2: ++%*2hhu: +297:0:3: ++%5hhu: :0:-1: ++%*5hhu: :0:-1: ++%5hhu: -123:1:5:133: ++%*5hhu: -123:0:5: ++%5hhu: -1:1:3:255: ++%*5hhu: -1:0:3: ++%5hhu: -0:1:3:0: ++%*5hhu: -0:0:3: ++%5hhu: 0:1:2:0: ++%*5hhu: 0:0:2: ++%5hhu: 1:1:2:1: ++%*5hhu: 1:0:2: ++%5hhu: 42:1:3:42: ++%*5hhu: 42:0:3: ++%5hhu: 255:1:4:255: ++%*5hhu: 255:0:4: ++%5hhu: 256:1:4:0: ++%*5hhu: 256:0:4: ++%5hhu: 297:1:4:41: ++%*5hhu: 297:0:4: ++%5hhu: +0:1:3:0: ++%*5hhu: +0:0:3: ++%5hhu: +1:1:3:1: ++%*5hhu: +1:0:3: ++%5hhu: +42:1:4:42: ++%*5hhu: +42:0:4: ++%5hhu: +255:1:5:255: ++%*5hhu: +255:0:5: ++%5hhu: +256:1:5:0: ++%*5hhu: +256:0:5: ++%5hhu: +297:1:5:41: ++%*5hhu: +297:0:5: +diff --git a/stdio-common/tst-scanf-format-uchar-x.input b/stdio-common/tst-scanf-format-uchar-x.input +new file mode 100644 +index 0000000000000000..d4e637c0c919e747 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-uchar-x.input +@@ -0,0 +1,710 @@ ++%hhx::0:-1: ++%*hhx::0:-1: ++%hhx:-7b:1:3:133: ++%*hhx:-7b:0:3: ++%hhx:-7B:1:3:133: ++%*hhx:-7B:0:3: ++%hhx:-0X7b:1:5:133: ++%*hhx:-0X7b:0:5: ++%hhx:-0x7B:1:5:133: ++%*hhx:-0x7B:0:5: ++%hhx:-1:1:2:255: ++%*hhx:-1:0:2: ++%hhx:-0X1:1:4:255: ++%*hhx:-0X1:0:4: ++%hhx:-0x1:1:4:255: ++%*hhx:-0x1:0:4: ++%hhx:-0:1:2:0: ++%*hhx:-0:0:2: ++%hhx:-0X0:1:4:0: ++%*hhx:-0X0:0:4: ++%hhx:-0x0:1:4:0: ++%*hhx:-0x0:0:4: ++%hhx:0:1:1:0: ++%*hhx:0:0:1: ++%hhx:0X0:1:3:0: ++%*hhx:0X0:0:3: ++%hhx:0x0:1:3:0: ++%*hhx:0x0:0:3: ++%hhx:1:1:1:1: ++%*hhx:1:0:1: ++%hhx:0X1:1:3:1: ++%*hhx:0X1:0:3: ++%hhx:0x1:1:3:1: ++%*hhx:0x1:0:3: ++%hhx:2a:1:2:42: ++%*hhx:2a:0:2: ++%hhx:2A:1:2:42: ++%*hhx:2A:0:2: ++%hhx:0X2a:1:4:42: ++%*hhx:0X2a:0:4: ++%hhx:0x2A:1:4:42: ++%*hhx:0x2A:0:4: ++%hhx:ff:1:2:255: ++%*hhx:ff:0:2: ++%hhx:FF:1:2:255: ++%*hhx:FF:0:2: ++%hhx:0xFF:1:4:255: ++%*hhx:0xFF:0:4: ++%hhx:100:1:3:0: ++%*hhx:100:0:3: ++%hhx:0X100:1:5:0: ++%*hhx:0X100:0:5: ++%hhx:0x100:1:5:0: ++%*hhx:0x100:0:5: ++%hhx:129:1:3:41: ++%*hhx:129:0:3: ++%hhx:0X129:1:5:41: ++%*hhx:0X129:0:5: ++%hhx:0x129:1:5:41: ++%*hhx:0x129:0:5: ++%hhx:+0:1:2:0: ++%*hhx:+0:0:2: ++%hhx:+0X0:1:4:0: ++%*hhx:+0X0:0:4: ++%hhx:+0x0:1:4:0: ++%*hhx:+0x0:0:4: ++%hhx:+1:1:2:1: ++%*hhx:+1:0:2: ++%hhx:+0X1:1:4:1: ++%*hhx:+0X1:0:4: ++%hhx:+0x1:1:4:1: ++%*hhx:+0x1:0:4: ++%hhx:+2a:1:3:42: ++%*hhx:+2a:0:3: ++%hhx:+2A:1:3:42: ++%*hhx:+2A:0:3: ++%hhx:+0X2a:1:5:42: ++%*hhx:+0X2a:0:5: ++%hhx:+0x2A:1:5:42: ++%*hhx:+0x2A:0:5: ++%hhx:+ff:1:3:255: ++%*hhx:+ff:0:3: ++%hhx:+FF:1:3:255: ++%*hhx:+FF:0:3: ++%hhx:+0Xff:1:5:255: ++%*hhx:+0Xff:0:5: ++%hhx:+0xFF:1:5:255: ++%*hhx:+0xFF:0:5: ++%hhx:+100:1:4:0: ++%*hhx:+100:0:4: ++%hhx:+0X100:1:6:0: ++%*hhx:+0X100:0:6: ++%hhx:+0x100:1:6:0: ++%*hhx:+0x100:0:6: ++%hhx:+129:1:4:41: ++%*hhx:+129:0:4: ++%hhx:+0X129:1:6:41: ++%*hhx:+0X129:0:6: ++%hhx:+0x129:1:6:41: ++%*hhx:+0x129:0:6: ++%1hhx::0:-1: ++%*1hhx::0:-1: ++%1hhx:-7b:0:-1: ++%*1hhx:-7b:0:-1: ++%1hhx:-7B:0:-1: ++%*1hhx:-7B:0:-1: ++%1hhx:-0X7b:0:-1: ++%*1hhx:-0X7b:0:-1: ++%1hhx:-0x7B:0:-1: ++%*1hhx:-0x7B:0:-1: ++%1hhx:-1:0:-1: ++%*1hhx:-1:0:-1: ++%1hhx:-0X1:0:-1: ++%*1hhx:-0X1:0:-1: ++%1hhx:-0x1:0:-1: ++%*1hhx:-0x1:0:-1: ++%1hhx:-0:0:-1: ++%*1hhx:-0:0:-1: ++%1hhx:-0X0:0:-1: ++%*1hhx:-0X0:0:-1: ++%1hhx:-0x0:0:-1: ++%*1hhx:-0x0:0:-1: ++%1hhx:0:1:1:0: ++%*1hhx:0:0:1: ++%1hhx:0X0:1:1:0: ++%*1hhx:0X0:0:1: ++%1hhx:0x0:1:1:0: ++%*1hhx:0x0:0:1: ++%1hhx:1:1:1:1: ++%*1hhx:1:0:1: ++%1hhx:0X1:1:1:0: ++%*1hhx:0X1:0:1: ++%1hhx:0x1:1:1:0: ++%*1hhx:0x1:0:1: ++%1hhx:2a:1:1:2: ++%*1hhx:2a:0:1: ++%1hhx:2A:1:1:2: ++%*1hhx:2A:0:1: ++%1hhx:0X2a:1:1:0: ++%*1hhx:0X2a:0:1: ++%1hhx:0x2A:1:1:0: ++%*1hhx:0x2A:0:1: ++%1hhx:ff:1:1:15: ++%*1hhx:ff:0:1: ++%1hhx:FF:1:1:15: ++%*1hhx:FF:0:1: ++%1hhx:0xFF:1:1:0: ++%*1hhx:0xFF:0:1: ++%1hhx:100:1:1:1: ++%*1hhx:100:0:1: ++%1hhx:0X100:1:1:0: ++%*1hhx:0X100:0:1: ++%1hhx:0x100:1:1:0: ++%*1hhx:0x100:0:1: ++%1hhx:129:1:1:1: ++%*1hhx:129:0:1: ++%1hhx:0X129:1:1:0: ++%*1hhx:0X129:0:1: ++%1hhx:0x129:1:1:0: ++%*1hhx:0x129:0:1: ++%1hhx:+0:0:-1: ++%*1hhx:+0:0:-1: ++%1hhx:+0X0:0:-1: ++%*1hhx:+0X0:0:-1: ++%1hhx:+0x0:0:-1: ++%*1hhx:+0x0:0:-1: ++%1hhx:+1:0:-1: ++%*1hhx:+1:0:-1: ++%1hhx:+0X1:0:-1: ++%*1hhx:+0X1:0:-1: ++%1hhx:+0x1:0:-1: ++%*1hhx:+0x1:0:-1: ++%1hhx:+2a:0:-1: ++%*1hhx:+2a:0:-1: ++%1hhx:+2A:0:-1: ++%*1hhx:+2A:0:-1: ++%1hhx:+0X2a:0:-1: ++%*1hhx:+0X2a:0:-1: ++%1hhx:+0x2A:0:-1: ++%*1hhx:+0x2A:0:-1: ++%1hhx:+ff:0:-1: ++%*1hhx:+ff:0:-1: ++%1hhx:+FF:0:-1: ++%*1hhx:+FF:0:-1: ++%1hhx:+0Xff:0:-1: ++%*1hhx:+0Xff:0:-1: ++%1hhx:+0xFF:0:-1: ++%*1hhx:+0xFF:0:-1: ++%1hhx:+100:0:-1: ++%*1hhx:+100:0:-1: ++%1hhx:+0X100:0:-1: ++%*1hhx:+0X100:0:-1: ++%1hhx:+0x100:0:-1: ++%*1hhx:+0x100:0:-1: ++%1hhx:+129:0:-1: ++%*1hhx:+129:0:-1: ++%1hhx:+0X129:0:-1: ++%*1hhx:+0X129:0:-1: ++%1hhx:+0x129:0:-1: ++%*1hhx:+0x129:0:-1: ++%2hhx::0:-1: ++%*2hhx::0:-1: ++%2hhx:-7b:1:2:249: ++%*2hhx:-7b:0:2: ++%2hhx:-7B:1:2:249: ++%*2hhx:-7B:0:2: ++%2hhx:-0X7b:1:2:0: ++%*2hhx:-0X7b:0:2: ++%2hhx:-0x7B:1:2:0: ++%*2hhx:-0x7B:0:2: ++%2hhx:-1:1:2:255: ++%*2hhx:-1:0:2: ++%2hhx:-0X1:1:2:0: ++%*2hhx:-0X1:0:2: ++%2hhx:-0x1:1:2:0: ++%*2hhx:-0x1:0:2: ++%2hhx:-0:1:2:0: ++%*2hhx:-0:0:2: ++%2hhx:-0X0:1:2:0: ++%*2hhx:-0X0:0:2: ++%2hhx:-0x0:1:2:0: ++%*2hhx:-0x0:0:2: ++%2hhx:0:1:1:0: ++%*2hhx:0:0:1: ++# BZ12701 %2hhx:0X0:0:-1: ++# BZ12701 %*2hhx:0X0:0:-1: ++# BZ12701 %2hhx:0x0:0:-1: ++# BZ12701 %*2hhx:0x0:0:-1: ++%2hhx:1:1:1:1: ++%*2hhx:1:0:1: ++# BZ12701 %2hhx:0X1:0:-1: ++# BZ12701 %*2hhx:0X1:0:-1: ++# BZ12701 %2hhx:0x1:0:-1: ++# BZ12701 %*2hhx:0x1:0:-1: ++%2hhx:2a:1:2:42: ++%*2hhx:2a:0:2: ++%2hhx:2A:1:2:42: ++%*2hhx:2A:0:2: ++# BZ12701 %2hhx:0X2a:0:-1: ++# BZ12701 %*2hhx:0X2a:0:-1: ++# BZ12701 %2hhx:0x2A:0:-1: ++# BZ12701 %*2hhx:0x2A:0:-1: ++%2hhx:ff:1:2:255: ++%*2hhx:ff:0:2: ++%2hhx:FF:1:2:255: ++%*2hhx:FF:0:2: ++# BZ12701 %2hhx:0Xff:0:-1: ++# BZ12701 %*2hhx:0Xff:0:-1: ++# BZ12701 %2hhx:0xFF:0:-1: ++# BZ12701 %*2hhx:0xFF:0:-1: ++%2hhx:100:1:2:16: ++%*2hhx:100:0:2: ++# BZ12701 %2hhx:0X100:0:-1: ++# BZ12701 %*2hhx:0X100:0:-1: ++# BZ12701 %2hhx:0x100:0:-1: ++# BZ12701 %*2hhx:0x100:0:-1: ++%2hhx:129:1:2:18: ++%*2hhx:129:0:2: ++# BZ12701 %2hhx:0X129:0:-1: ++# BZ12701 %*2hhx:0X129:0:-1: ++# BZ12701 %2hhx:0x129:0:-1: ++# BZ12701 %*2hhx:0x129:0:-1: ++%2hhx:+0:1:2:0: ++%*2hhx:+0:0:2: ++%2hhx:+0X0:1:2:0: ++%*2hhx:+0X0:0:2: ++%2hhx:+0x0:1:2:0: ++%*2hhx:+0x0:0:2: ++%2hhx:+1:1:2:1: ++%*2hhx:+1:0:2: ++%2hhx:+0X1:1:2:0: ++%*2hhx:+0X1:0:2: ++%2hhx:+0x1:1:2:0: ++%*2hhx:+0x1:0:2: ++%2hhx:+2a:1:2:2: ++%*2hhx:+2a:0:2: ++%2hhx:+2A:1:2:2: ++%*2hhx:+2A:0:2: ++%2hhx:+0X2a:1:2:0: ++%*2hhx:+0X2a:0:2: ++%2hhx:+0x2A:1:2:0: ++%*2hhx:+0x2A:0:2: ++%2hhx:+ff:1:2:15: ++%*2hhx:+ff:0:2: ++%2hhx:+FF:1:2:15: ++%*2hhx:+FF:0:2: ++%2hhx:+0Xff:1:2:0: ++%*2hhx:+0Xff:0:2: ++%2hhx:+0xFF:1:2:0: ++%*2hhx:+0xFF:0:2: ++%2hhx:+100:1:2:1: ++%*2hhx:+100:0:2: ++%2hhx:+0X100:1:2:0: ++%*2hhx:+0X100:0:2: ++%2hhx:+0x100:1:2:0: ++%*2hhx:+0x100:0:2: ++%2hhx:+129:1:2:1: ++%*2hhx:+129:0:2: ++%2hhx:+0X129:1:2:0: ++%*2hhx:+0X129:0:2: ++%2hhx:+0x129:1:2:0: ++%*2hhx:+0x129:0:2: ++%3hhx::0:-1: ++%*3hhx::0:-1: ++%3hhx:-7b:1:3:133: ++%*3hhx:-7b:0:3: ++%3hhx:-7B:1:3:133: ++%*3hhx:-7B:0:3: ++# BZ12701 %3hhx:-0X7b:0:-1: ++# BZ12701 %*3hhx:-0X7b:0:-1: ++# BZ12701 %3hhx:-0x7B:0:-1: ++# BZ12701 %*3hhx:-0x7B:0:-1: ++%3hhx:-1:1:2:255: ++%*3hhx:-1:0:2: ++# BZ12701 %3hhx:-0X1:0:-1: ++# BZ12701 %*3hhx:-0X1:0:-1: ++# BZ12701 %3hhx:-0x1:0:-1: ++# BZ12701 %*3hhx:-0x1:0:-1: ++%3hhx:-0:1:2:0: ++%*3hhx:-0:0:2: ++# BZ12701 %3hhx:-0X0:0:-1: ++# BZ12701 %*3hhx:-0X0:0:-1: ++# BZ12701 %3hhx:-0x0:0:-1: ++# BZ12701 %*3hhx:-0x0:0:-1: ++%3hhx:0:1:1:0: ++%*3hhx:0:0:1: ++%3hhx:0X0:1:3:0: ++%*3hhx:0X0:0:3: ++%3hhx:0x0:1:3:0: ++%*3hhx:0x0:0:3: ++%3hhx:1:1:1:1: ++%*3hhx:1:0:1: ++%3hhx:0X1:1:3:1: ++%*3hhx:0X1:0:3: ++%3hhx:0x1:1:3:1: ++%*3hhx:0x1:0:3: ++%3hhx:2a:1:2:42: ++%*3hhx:2a:0:2: ++%3hhx:2A:1:2:42: ++%*3hhx:2A:0:2: ++%3hhx:0X2a:1:3:2: ++%*3hhx:0X2a:0:3: ++%3hhx:0x2A:1:3:2: ++%*3hhx:0x2A:0:3: ++%3hhx:ff:1:2:255: ++%*3hhx:ff:0:2: ++%3hhx:FF:1:2:255: ++%*3hhx:FF:0:2: ++%3hhx:0Xff:1:3:15: ++%*3hhx:0Xff:0:3: ++%3hhx:0xFF:1:3:15: ++%*3hhx:0xFF:0:3: ++%3hhx:100:1:3:0: ++%*3hhx:100:0:3: ++%3hhx:0X100:1:3:1: ++%*3hhx:0X100:0:3: ++%3hhx:0x100:1:3:1: ++%*3hhx:0x100:0:3: ++%3hhx:129:1:3:41: ++%*3hhx:129:0:3: ++%3hhx:0X129:1:3:1: ++%*3hhx:0X129:0:3: ++%3hhx:0x129:1:3:1: ++%*3hhx:0x129:0:3: ++%3hhx:+0:1:2:0: ++%*3hhx:+0:0:2: ++# BZ12701 %3hhx:+0X0:0:-1: ++# BZ12701 %*3hhx:+0X0:0:-1: ++# BZ12701 %3hhx:+0x0:0:-1: ++# BZ12701 %*3hhx:+0x0:0:-1: ++%3hhx:+1:1:2:1: ++%*3hhx:+1:0:2: ++# BZ12701 %3hhx:+0X1:0:-1: ++# BZ12701 %*3hhx:+0X1:0:-1: ++# BZ12701 %3hhx:+0x1:0:-1: ++# BZ12701 %*3hhx:+0x1:0:-1: ++%3hhx:+2a:1:3:42: ++%*3hhx:+2a:0:3: ++%3hhx:+2A:1:3:42: ++%*3hhx:+2A:0:3: ++# BZ12701 %3hhx:+0X2a:0:-1: ++# BZ12701 %*3hhx:+0X2a:0:-1: ++# BZ12701 %3hhx:+0x2A:0:-1: ++# BZ12701 %*3hhx:+0x2A:0:-1: ++%3hhx:+ff:1:3:255: ++%*3hhx:+ff:0:3: ++%3hhx:+FF:1:3:255: ++%*3hhx:+FF:0:3: ++# BZ12701 %3hhx:+0Xff:0:-1: ++# BZ12701 %*3hhx:+0Xff:0:-1: ++# BZ12701 %3hhx:+0xFF:0:-1: ++# BZ12701 %*3hhx:+0xFF:0:-1: ++%3hhx:+100:1:3:16: ++%*3hhx:+100:0:3: ++# BZ12701 %3hhx:+0X100:0:-1: ++# BZ12701 %*3hhx:+0X100:0:-1: ++# BZ12701 %3hhx:+0x100:0:-1: ++# BZ12701 %*3hhx:+0x100:0:-1: ++%3hhx:+129:1:3:18: ++%*3hhx:+129:0:3: ++# BZ12701 %3hhx:+0X129:0:-1: ++# BZ12701 %*3hhx:+0X129:0:-1: ++# BZ12701 %3hhx:+0x129:0:-1: ++# BZ12701 %*3hhx:+0x129:0:-1: ++%5hhx::0:-1: ++%*5hhx::0:-1: ++%5hhx:-7b:1:3:133: ++%*5hhx:-7b:0:3: ++%5hhx:-7B:1:3:133: ++%*5hhx:-7B:0:3: ++%5hhx:-0X7b:1:5:133: ++%*5hhx:-0X7b:0:5: ++%5hhx:-0x7B:1:5:133: ++%*5hhx:-0x7B:0:5: ++%5hhx:-1:1:2:255: ++%*5hhx:-1:0:2: ++%5hhx:-0X1:1:4:255: ++%*5hhx:-0X1:0:4: ++%5hhx:-0x1:1:4:255: ++%*5hhx:-0x1:0:4: ++%5hhx:-0:1:2:0: ++%*5hhx:-0:0:2: ++%5hhx:-0X0:1:4:0: ++%*5hhx:-0X0:0:4: ++%5hhx:-0x0:1:4:0: ++%*5hhx:-0x0:0:4: ++%5hhx:0:1:1:0: ++%*5hhx:0:0:1: ++%5hhx:0X0:1:3:0: ++%*5hhx:0X0:0:3: ++%5hhx:0x0:1:3:0: ++%*5hhx:0x0:0:3: ++%5hhx:1:1:1:1: ++%*5hhx:1:0:1: ++%5hhx:0X1:1:3:1: ++%*5hhx:0X1:0:3: ++%5hhx:0x1:1:3:1: ++%*5hhx:0x1:0:3: ++%5hhx:2a:1:2:42: ++%*5hhx:2a:0:2: ++%5hhx:2A:1:2:42: ++%*5hhx:2A:0:2: ++%5hhx:0X2a:1:4:42: ++%*5hhx:0X2a:0:4: ++%5hhx:0x2A:1:4:42: ++%*5hhx:0x2A:0:4: ++%5hhx:ff:1:2:255: ++%*5hhx:ff:0:2: ++%5hhx:FF:1:2:255: ++%*5hhx:FF:0:2: ++%5hhx:0Xff:1:4:255: ++%*5hhx:0Xff:0:4: ++%5hhx:0xFF:1:4:255: ++%*5hhx:0xFF:0:4: ++%5hhx:100:1:3:0: ++%*5hhx:100:0:3: ++%5hhx:0X100:1:5:0: ++%*5hhx:0X100:0:5: ++%5hhx:0x100:1:5:0: ++%*5hhx:0x100:0:5: ++%5hhx:129:1:3:41: ++%*5hhx:129:0:3: ++%5hhx:0X129:1:5:41: ++%*5hhx:0X129:0:5: ++%5hhx:0x129:1:5:41: ++%*5hhx:0x129:0:5: ++%5hhx:+0:1:2:0: ++%*5hhx:+0:0:2: ++%5hhx:+0X0:1:4:0: ++%*5hhx:+0X0:0:4: ++%5hhx:+0x0:1:4:0: ++%*5hhx:+0x0:0:4: ++%5hhx:+1:1:2:1: ++%*5hhx:+1:0:2: ++%5hhx:+0X1:1:4:1: ++%*5hhx:+0X1:0:4: ++%5hhx:+0x1:1:4:1: ++%*5hhx:+0x1:0:4: ++%5hhx:+2a:1:3:42: ++%*5hhx:+2a:0:3: ++%5hhx:+2A:1:3:42: ++%*5hhx:+2A:0:3: ++%5hhx:+0X2a:1:5:42: ++%*5hhx:+0X2a:0:5: ++%5hhx:+0x2A:1:5:42: ++%*5hhx:+0x2A:0:5: ++%5hhx:+ff:1:3:255: ++%*5hhx:+ff:0:3: ++%5hhx:+FF:1:3:255: ++%*5hhx:+FF:0:3: ++%5hhx:+0Xff:1:5:255: ++%*5hhx:+0Xff:0:5: ++%5hhx:+0xFF:1:5:255: ++%*5hhx:+0xFF:0:5: ++%5hhx:+100:1:4:0: ++%*5hhx:+100:0:4: ++%5hhx:+0X100:1:5:16: ++%*5hhx:+0X100:0:5: ++%5hhx:+0x100:1:5:16: ++%*5hhx:+0x100:0:5: ++%5hhx:+129:1:4:41: ++%*5hhx:+129:0:4: ++%5hhx:+0X129:1:5:18: ++%*5hhx:+0X129:0:5: ++%5hhx:+0x129:1:5:18: ++%*5hhx:+0x129:0:5: ++%2hhx: :0:-1: ++%*2hhx: :0:-1: ++%2hhx: -7b:1:3:249: ++%*2hhx: -7b:0:3: ++%2hhx: -7B:1:3:249: ++%*2hhx: -7B:0:3: ++%2hhx: -0X7b:1:3:0: ++%*2hhx: -0X7b:0:3: ++%2hhx: -0x7B:1:3:0: ++%*2hhx: -0x7B:0:3: ++%2hhx: -1:1:3:255: ++%*2hhx: -1:0:3: ++%2hhx: -0X1:1:3:0: ++%*2hhx: -0X1:0:3: ++%2hhx: -0x1:1:3:0: ++%*2hhx: -0x1:0:3: ++%2hhx: -0:1:3:0: ++%*2hhx: -0:0:3: ++%2hhx: -0X0:1:3:0: ++%*2hhx: -0X0:0:3: ++%2hhx: -0x0:1:3:0: ++%*2hhx: -0x0:0:3: ++%2hhx: 0:1:2:0: ++%*2hhx: 0:0:2: ++# BZ12701 %2hhx: 0X0:0:-1: ++# BZ12701 %*2hhx: 0X0:0:-1: ++# BZ12701 %2hhx: 0x0:0:-1: ++# BZ12701 %*2hhx: 0x0:0:-1: ++%2hhx: 1:1:2:1: ++%*2hhx: 1:0:2: ++# BZ12701 %2hhx: 0X1:0:-1: ++# BZ12701 %*2hhx: 0X1:0:-1: ++# BZ12701 %2hhx: 0x1:0:-1: ++# BZ12701 %*2hhx: 0x1:0:-1: ++%2hhx: 2a:1:3:42: ++%*2hhx: 2a:0:3: ++%2hhx: 2A:1:3:42: ++%*2hhx: 2A:0:3: ++# BZ12701 %2hhx: 0X2a:0:-1: ++# BZ12701 %*2hhx: 0X2a:0:-1: ++# BZ12701 %2hhx: 0x2A:0:-1: ++# BZ12701 %*2hhx: 0x2A:0:-1: ++%2hhx: ff:1:3:255: ++%*2hhx: ff:0:3: ++%2hhx: FF:1:3:255: ++%*2hhx: FF:0:3: ++# BZ12701 %2hhx: 0Xff:0:-1: ++# BZ12701 %*2hhx: 0Xff:0:-1: ++# BZ12701 %2hhx: 0xFF:0:-1: ++# BZ12701 %*2hhx: 0xFF:0:-1: ++%2hhx: 100:1:3:16: ++%*2hhx: 100:0:3: ++# BZ12701 %2hhx: 0X100:0:-1: ++# BZ12701 %*2hhx: 0X100:0:-1: ++# BZ12701 %2hhx: 0x100:0:-1: ++# BZ12701 %*2hhx: 0x100:0:-1: ++%2hhx: 129:1:3:18: ++%*2hhx: 129:0:3: ++# BZ12701 %2hhx: 0X129:0:-1: ++# BZ12701 %*2hhx: 0X129:0:-1: ++# BZ12701 %2hhx: 0x129:0:-1: ++# BZ12701 %*2hhx: 0x129:0:-1: ++%2hhx: +0:1:3:0: ++%*2hhx: +0:0:3: ++%2hhx: +0X0:1:3:0: ++%*2hhx: +0X0:0:3: ++%2hhx: +0x0:1:3:0: ++%*2hhx: +0x0:0:3: ++%2hhx: +1:1:3:1: ++%*2hhx: +1:0:3: ++%2hhx: +0X1:1:3:0: ++%*2hhx: +0X1:0:3: ++%2hhx: +0x1:1:3:0: ++%*2hhx: +0x1:0:3: ++%2hhx: +2a:1:3:2: ++%*2hhx: +2a:0:3: ++%2hhx: +2A:1:3:2: ++%*2hhx: +2A:0:3: ++%2hhx: +0X2a:1:3:0: ++%*2hhx: +0X2a:0:3: ++%2hhx: +0x2A:1:3:0: ++%*2hhx: +0x2A:0:3: ++%2hhx: +ff:1:3:15: ++%*2hhx: +ff:0:3: ++%2hhx: +FF:1:3:15: ++%*2hhx: +FF:0:3: ++%2hhx: +0Xff:1:3:0: ++%*2hhx: +0Xff:0:3: ++%2hhx: +0xFF:1:3:0: ++%*2hhx: +0xFF:0:3: ++%2hhx: +100:1:3:1: ++%*2hhx: +100:0:3: ++%2hhx: +0X100:1:3:0: ++%*2hhx: +0X100:0:3: ++%2hhx: +0x100:1:3:0: ++%*2hhx: +0x100:0:3: ++%2hhx: +129:1:3:1: ++%*2hhx: +129:0:3: ++%2hhx: +0X129:1:3:0: ++%*2hhx: +0X129:0:3: ++%2hhx: +0x129:1:3:0: ++%*2hhx: +0x129:0:3: ++%5hhx: :0:-1: ++%*5hhx: :0:-1: ++%5hhx: -7b:1:4:133: ++%*5hhx: -7b:0:4: ++%5hhx: -7B:1:4:133: ++%*5hhx: -7B:0:4: ++%5hhx: -0X7b:1:6:133: ++%*5hhx: -0X7b:0:6: ++%5hhx: -0x7B:1:6:133: ++%*5hhx: -0x7B:0:6: ++%5hhx: -1:1:3:255: ++%*5hhx: -1:0:3: ++%5hhx: -0X1:1:5:255: ++%*5hhx: -0X1:0:5: ++%5hhx: -0x1:1:5:255: ++%*5hhx: -0x1:0:5: ++%5hhx: -0:1:3:0: ++%*5hhx: -0:0:3: ++%5hhx: -0X0:1:5:0: ++%*5hhx: -0X0:0:5: ++%5hhx: -0x0:1:5:0: ++%*5hhx: -0x0:0:5: ++%5hhx: 0:1:2:0: ++%*5hhx: 0:0:2: ++%5hhx: 0X0:1:4:0: ++%*5hhx: 0X0:0:4: ++%5hhx: 0x0:1:4:0: ++%*5hhx: 0x0:0:4: ++%5hhx: 1:1:2:1: ++%*5hhx: 1:0:2: ++%5hhx: 0X1:1:4:1: ++%*5hhx: 0X1:0:4: ++%5hhx: 0x1:1:4:1: ++%*5hhx: 0x1:0:4: ++%5hhx: 2a:1:3:42: ++%*5hhx: 2a:0:3: ++%5hhx: 2A:1:3:42: ++%*5hhx: 2A:0:3: ++%5hhx: 0X2a:1:5:42: ++%*5hhx: 0X2a:0:5: ++%5hhx: 0x2A:1:5:42: ++%*5hhx: 0x2A:0:5: ++%5hhx: ff:1:3:255: ++%*5hhx: ff:0:3: ++%5hhx: FF:1:3:255: ++%*5hhx: FF:0:3: ++%5hhx: 0Xff:1:5:255: ++%*5hhx: 0Xff:0:5: ++%5hhx: 0xFF:1:5:255: ++%*5hhx: 0xFF:0:5: ++%5hhx: 100:1:4:0: ++%*5hhx: 100:0:4: ++%5hhx: 0X100:1:6:0: ++%*5hhx: 0X100:0:6: ++%5hhx: 0x100:1:6:0: ++%*5hhx: 0x100:0:6: ++%5hhx: 129:1:4:41: ++%*5hhx: 129:0:4: ++%5hhx: 0X129:1:6:41: ++%*5hhx: 0X129:0:6: ++%5hhx: 0x129:1:6:41: ++%*5hhx: 0x129:0:6: ++%5hhx: +0:1:3:0: ++%*5hhx: +0:0:3: ++%5hhx: +0X0:1:5:0: ++%*5hhx: +0X0:0:5: ++%5hhx: +0x0:1:5:0: ++%*5hhx: +0x0:0:5: ++%5hhx: +1:1:3:1: ++%*5hhx: +1:0:3: ++%5hhx: +0X1:1:5:1: ++%*5hhx: +0X1:0:5: ++%5hhx: +0x1:1:5:1: ++%*5hhx: +0x1:0:5: ++%5hhx: +2a:1:4:42: ++%*5hhx: +2a:0:4: ++%5hhx: +2A:1:4:42: ++%*5hhx: +2A:0:4: ++%5hhx: +0X2a:1:6:42: ++%*5hhx: +0X2a:0:6: ++%5hhx: +0x2A:1:6:42: ++%*5hhx: +0x2A:0:6: ++%5hhx: +ff:1:4:255: ++%*5hhx: +ff:0:4: ++%5hhx: +FF:1:4:255: ++%*5hhx: +FF:0:4: ++%5hhx: +0Xff:1:6:255: ++%*5hhx: +0Xff:0:6: ++%5hhx: +0xFF:1:6:255: ++%*5hhx: +0xFF:0:6: ++%5hhx: +100:1:5:0: ++%*5hhx: +100:0:5: ++%5hhx: +0X100:1:6:16: ++%*5hhx: +0X100:0:6: ++%5hhx: +0x100:1:6:16: ++%*5hhx: +0x100:0:6: ++%5hhx: +129:1:5:41: ++%*5hhx: +129:0:5: ++%5hhx: +0X129:1:6:18: ++%*5hhx: +0X129:0:6: ++%5hhx: +0x129:1:6:18: ++%*5hhx: +0x129:0:6: +diff --git a/stdio-common/tst-scanf-format-uchar-xx.input b/stdio-common/tst-scanf-format-uchar-xx.input +new file mode 100644 +index 0000000000000000..3e3af63b68918705 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-uchar-xx.input +@@ -0,0 +1,710 @@ ++%hhX::0:-1: ++%*hhX::0:-1: ++%hhX:-7b:1:3:133: ++%*hhX:-7b:0:3: ++%hhX:-7B:1:3:133: ++%*hhX:-7B:0:3: ++%hhX:-0X7b:1:5:133: ++%*hhX:-0X7b:0:5: ++%hhX:-0x7B:1:5:133: ++%*hhX:-0x7B:0:5: ++%hhX:-1:1:2:255: ++%*hhX:-1:0:2: ++%hhX:-0X1:1:4:255: ++%*hhX:-0X1:0:4: ++%hhX:-0x1:1:4:255: ++%*hhX:-0x1:0:4: ++%hhX:-0:1:2:0: ++%*hhX:-0:0:2: ++%hhX:-0X0:1:4:0: ++%*hhX:-0X0:0:4: ++%hhX:-0x0:1:4:0: ++%*hhX:-0x0:0:4: ++%hhX:0:1:1:0: ++%*hhX:0:0:1: ++%hhX:0X0:1:3:0: ++%*hhX:0X0:0:3: ++%hhX:0x0:1:3:0: ++%*hhX:0x0:0:3: ++%hhX:1:1:1:1: ++%*hhX:1:0:1: ++%hhX:0X1:1:3:1: ++%*hhX:0X1:0:3: ++%hhX:0x1:1:3:1: ++%*hhX:0x1:0:3: ++%hhX:2a:1:2:42: ++%*hhX:2a:0:2: ++%hhX:2A:1:2:42: ++%*hhX:2A:0:2: ++%hhX:0X2a:1:4:42: ++%*hhX:0X2a:0:4: ++%hhX:0x2A:1:4:42: ++%*hhX:0x2A:0:4: ++%hhX:ff:1:2:255: ++%*hhX:ff:0:2: ++%hhX:FF:1:2:255: ++%*hhX:FF:0:2: ++%hhX:0xFF:1:4:255: ++%*hhX:0xFF:0:4: ++%hhX:100:1:3:0: ++%*hhX:100:0:3: ++%hhX:0X100:1:5:0: ++%*hhX:0X100:0:5: ++%hhX:0x100:1:5:0: ++%*hhX:0x100:0:5: ++%hhX:129:1:3:41: ++%*hhX:129:0:3: ++%hhX:0X129:1:5:41: ++%*hhX:0X129:0:5: ++%hhX:0x129:1:5:41: ++%*hhX:0x129:0:5: ++%hhX:+0:1:2:0: ++%*hhX:+0:0:2: ++%hhX:+0X0:1:4:0: ++%*hhX:+0X0:0:4: ++%hhX:+0x0:1:4:0: ++%*hhX:+0x0:0:4: ++%hhX:+1:1:2:1: ++%*hhX:+1:0:2: ++%hhX:+0X1:1:4:1: ++%*hhX:+0X1:0:4: ++%hhX:+0x1:1:4:1: ++%*hhX:+0x1:0:4: ++%hhX:+2a:1:3:42: ++%*hhX:+2a:0:3: ++%hhX:+2A:1:3:42: ++%*hhX:+2A:0:3: ++%hhX:+0X2a:1:5:42: ++%*hhX:+0X2a:0:5: ++%hhX:+0x2A:1:5:42: ++%*hhX:+0x2A:0:5: ++%hhX:+ff:1:3:255: ++%*hhX:+ff:0:3: ++%hhX:+FF:1:3:255: ++%*hhX:+FF:0:3: ++%hhX:+0Xff:1:5:255: ++%*hhX:+0Xff:0:5: ++%hhX:+0xFF:1:5:255: ++%*hhX:+0xFF:0:5: ++%hhX:+100:1:4:0: ++%*hhX:+100:0:4: ++%hhX:+0X100:1:6:0: ++%*hhX:+0X100:0:6: ++%hhX:+0x100:1:6:0: ++%*hhX:+0x100:0:6: ++%hhX:+129:1:4:41: ++%*hhX:+129:0:4: ++%hhX:+0X129:1:6:41: ++%*hhX:+0X129:0:6: ++%hhX:+0x129:1:6:41: ++%*hhX:+0x129:0:6: ++%1hhX::0:-1: ++%*1hhX::0:-1: ++%1hhX:-7b:0:-1: ++%*1hhX:-7b:0:-1: ++%1hhX:-7B:0:-1: ++%*1hhX:-7B:0:-1: ++%1hhX:-0X7b:0:-1: ++%*1hhX:-0X7b:0:-1: ++%1hhX:-0x7B:0:-1: ++%*1hhX:-0x7B:0:-1: ++%1hhX:-1:0:-1: ++%*1hhX:-1:0:-1: ++%1hhX:-0X1:0:-1: ++%*1hhX:-0X1:0:-1: ++%1hhX:-0x1:0:-1: ++%*1hhX:-0x1:0:-1: ++%1hhX:-0:0:-1: ++%*1hhX:-0:0:-1: ++%1hhX:-0X0:0:-1: ++%*1hhX:-0X0:0:-1: ++%1hhX:-0x0:0:-1: ++%*1hhX:-0x0:0:-1: ++%1hhX:0:1:1:0: ++%*1hhX:0:0:1: ++%1hhX:0X0:1:1:0: ++%*1hhX:0X0:0:1: ++%1hhX:0x0:1:1:0: ++%*1hhX:0x0:0:1: ++%1hhX:1:1:1:1: ++%*1hhX:1:0:1: ++%1hhX:0X1:1:1:0: ++%*1hhX:0X1:0:1: ++%1hhX:0x1:1:1:0: ++%*1hhX:0x1:0:1: ++%1hhX:2a:1:1:2: ++%*1hhX:2a:0:1: ++%1hhX:2A:1:1:2: ++%*1hhX:2A:0:1: ++%1hhX:0X2a:1:1:0: ++%*1hhX:0X2a:0:1: ++%1hhX:0x2A:1:1:0: ++%*1hhX:0x2A:0:1: ++%1hhX:ff:1:1:15: ++%*1hhX:ff:0:1: ++%1hhX:FF:1:1:15: ++%*1hhX:FF:0:1: ++%1hhX:0xFF:1:1:0: ++%*1hhX:0xFF:0:1: ++%1hhX:100:1:1:1: ++%*1hhX:100:0:1: ++%1hhX:0X100:1:1:0: ++%*1hhX:0X100:0:1: ++%1hhX:0x100:1:1:0: ++%*1hhX:0x100:0:1: ++%1hhX:129:1:1:1: ++%*1hhX:129:0:1: ++%1hhX:0X129:1:1:0: ++%*1hhX:0X129:0:1: ++%1hhX:0x129:1:1:0: ++%*1hhX:0x129:0:1: ++%1hhX:+0:0:-1: ++%*1hhX:+0:0:-1: ++%1hhX:+0X0:0:-1: ++%*1hhX:+0X0:0:-1: ++%1hhX:+0x0:0:-1: ++%*1hhX:+0x0:0:-1: ++%1hhX:+1:0:-1: ++%*1hhX:+1:0:-1: ++%1hhX:+0X1:0:-1: ++%*1hhX:+0X1:0:-1: ++%1hhX:+0x1:0:-1: ++%*1hhX:+0x1:0:-1: ++%1hhX:+2a:0:-1: ++%*1hhX:+2a:0:-1: ++%1hhX:+2A:0:-1: ++%*1hhX:+2A:0:-1: ++%1hhX:+0X2a:0:-1: ++%*1hhX:+0X2a:0:-1: ++%1hhX:+0x2A:0:-1: ++%*1hhX:+0x2A:0:-1: ++%1hhX:+ff:0:-1: ++%*1hhX:+ff:0:-1: ++%1hhX:+FF:0:-1: ++%*1hhX:+FF:0:-1: ++%1hhX:+0Xff:0:-1: ++%*1hhX:+0Xff:0:-1: ++%1hhX:+0xFF:0:-1: ++%*1hhX:+0xFF:0:-1: ++%1hhX:+100:0:-1: ++%*1hhX:+100:0:-1: ++%1hhX:+0X100:0:-1: ++%*1hhX:+0X100:0:-1: ++%1hhX:+0x100:0:-1: ++%*1hhX:+0x100:0:-1: ++%1hhX:+129:0:-1: ++%*1hhX:+129:0:-1: ++%1hhX:+0X129:0:-1: ++%*1hhX:+0X129:0:-1: ++%1hhX:+0x129:0:-1: ++%*1hhX:+0x129:0:-1: ++%2hhX::0:-1: ++%*2hhX::0:-1: ++%2hhX:-7b:1:2:249: ++%*2hhX:-7b:0:2: ++%2hhX:-7B:1:2:249: ++%*2hhX:-7B:0:2: ++%2hhX:-0X7b:1:2:0: ++%*2hhX:-0X7b:0:2: ++%2hhX:-0x7B:1:2:0: ++%*2hhX:-0x7B:0:2: ++%2hhX:-1:1:2:255: ++%*2hhX:-1:0:2: ++%2hhX:-0X1:1:2:0: ++%*2hhX:-0X1:0:2: ++%2hhX:-0x1:1:2:0: ++%*2hhX:-0x1:0:2: ++%2hhX:-0:1:2:0: ++%*2hhX:-0:0:2: ++%2hhX:-0X0:1:2:0: ++%*2hhX:-0X0:0:2: ++%2hhX:-0x0:1:2:0: ++%*2hhX:-0x0:0:2: ++%2hhX:0:1:1:0: ++%*2hhX:0:0:1: ++# BZ12701 %2hhX:0X0:0:-1: ++# BZ12701 %*2hhX:0X0:0:-1: ++# BZ12701 %2hhX:0x0:0:-1: ++# BZ12701 %*2hhX:0x0:0:-1: ++%2hhX:1:1:1:1: ++%*2hhX:1:0:1: ++# BZ12701 %2hhX:0X1:0:-1: ++# BZ12701 %*2hhX:0X1:0:-1: ++# BZ12701 %2hhX:0x1:0:-1: ++# BZ12701 %*2hhX:0x1:0:-1: ++%2hhX:2a:1:2:42: ++%*2hhX:2a:0:2: ++%2hhX:2A:1:2:42: ++%*2hhX:2A:0:2: ++# BZ12701 %2hhX:0X2a:0:-1: ++# BZ12701 %*2hhX:0X2a:0:-1: ++# BZ12701 %2hhX:0x2A:0:-1: ++# BZ12701 %*2hhX:0x2A:0:-1: ++%2hhX:ff:1:2:255: ++%*2hhX:ff:0:2: ++%2hhX:FF:1:2:255: ++%*2hhX:FF:0:2: ++# BZ12701 %2hhX:0Xff:0:-1: ++# BZ12701 %*2hhX:0Xff:0:-1: ++# BZ12701 %2hhX:0xFF:0:-1: ++# BZ12701 %*2hhX:0xFF:0:-1: ++%2hhX:100:1:2:16: ++%*2hhX:100:0:2: ++# BZ12701 %2hhX:0X100:0:-1: ++# BZ12701 %*2hhX:0X100:0:-1: ++# BZ12701 %2hhX:0x100:0:-1: ++# BZ12701 %*2hhX:0x100:0:-1: ++%2hhX:129:1:2:18: ++%*2hhX:129:0:2: ++# BZ12701 %2hhX:0X129:0:-1: ++# BZ12701 %*2hhX:0X129:0:-1: ++# BZ12701 %2hhX:0x129:0:-1: ++# BZ12701 %*2hhX:0x129:0:-1: ++%2hhX:+0:1:2:0: ++%*2hhX:+0:0:2: ++%2hhX:+0X0:1:2:0: ++%*2hhX:+0X0:0:2: ++%2hhX:+0x0:1:2:0: ++%*2hhX:+0x0:0:2: ++%2hhX:+1:1:2:1: ++%*2hhX:+1:0:2: ++%2hhX:+0X1:1:2:0: ++%*2hhX:+0X1:0:2: ++%2hhX:+0x1:1:2:0: ++%*2hhX:+0x1:0:2: ++%2hhX:+2a:1:2:2: ++%*2hhX:+2a:0:2: ++%2hhX:+2A:1:2:2: ++%*2hhX:+2A:0:2: ++%2hhX:+0X2a:1:2:0: ++%*2hhX:+0X2a:0:2: ++%2hhX:+0x2A:1:2:0: ++%*2hhX:+0x2A:0:2: ++%2hhX:+ff:1:2:15: ++%*2hhX:+ff:0:2: ++%2hhX:+FF:1:2:15: ++%*2hhX:+FF:0:2: ++%2hhX:+0Xff:1:2:0: ++%*2hhX:+0Xff:0:2: ++%2hhX:+0xFF:1:2:0: ++%*2hhX:+0xFF:0:2: ++%2hhX:+100:1:2:1: ++%*2hhX:+100:0:2: ++%2hhX:+0X100:1:2:0: ++%*2hhX:+0X100:0:2: ++%2hhX:+0x100:1:2:0: ++%*2hhX:+0x100:0:2: ++%2hhX:+129:1:2:1: ++%*2hhX:+129:0:2: ++%2hhX:+0X129:1:2:0: ++%*2hhX:+0X129:0:2: ++%2hhX:+0x129:1:2:0: ++%*2hhX:+0x129:0:2: ++%3hhX::0:-1: ++%*3hhX::0:-1: ++%3hhX:-7b:1:3:133: ++%*3hhX:-7b:0:3: ++%3hhX:-7B:1:3:133: ++%*3hhX:-7B:0:3: ++# BZ12701 %3hhX:-0X7b:0:-1: ++# BZ12701 %*3hhX:-0X7b:0:-1: ++# BZ12701 %3hhX:-0x7B:0:-1: ++# BZ12701 %*3hhX:-0x7B:0:-1: ++%3hhX:-1:1:2:255: ++%*3hhX:-1:0:2: ++# BZ12701 %3hhX:-0X1:0:-1: ++# BZ12701 %*3hhX:-0X1:0:-1: ++# BZ12701 %3hhX:-0x1:0:-1: ++# BZ12701 %*3hhX:-0x1:0:-1: ++%3hhX:-0:1:2:0: ++%*3hhX:-0:0:2: ++# BZ12701 %3hhX:-0X0:0:-1: ++# BZ12701 %*3hhX:-0X0:0:-1: ++# BZ12701 %3hhX:-0x0:0:-1: ++# BZ12701 %*3hhX:-0x0:0:-1: ++%3hhX:0:1:1:0: ++%*3hhX:0:0:1: ++%3hhX:0X0:1:3:0: ++%*3hhX:0X0:0:3: ++%3hhX:0x0:1:3:0: ++%*3hhX:0x0:0:3: ++%3hhX:1:1:1:1: ++%*3hhX:1:0:1: ++%3hhX:0X1:1:3:1: ++%*3hhX:0X1:0:3: ++%3hhX:0x1:1:3:1: ++%*3hhX:0x1:0:3: ++%3hhX:2a:1:2:42: ++%*3hhX:2a:0:2: ++%3hhX:2A:1:2:42: ++%*3hhX:2A:0:2: ++%3hhX:0X2a:1:3:2: ++%*3hhX:0X2a:0:3: ++%3hhX:0x2A:1:3:2: ++%*3hhX:0x2A:0:3: ++%3hhX:ff:1:2:255: ++%*3hhX:ff:0:2: ++%3hhX:FF:1:2:255: ++%*3hhX:FF:0:2: ++%3hhX:0Xff:1:3:15: ++%*3hhX:0Xff:0:3: ++%3hhX:0xFF:1:3:15: ++%*3hhX:0xFF:0:3: ++%3hhX:100:1:3:0: ++%*3hhX:100:0:3: ++%3hhX:0X100:1:3:1: ++%*3hhX:0X100:0:3: ++%3hhX:0x100:1:3:1: ++%*3hhX:0x100:0:3: ++%3hhX:129:1:3:41: ++%*3hhX:129:0:3: ++%3hhX:0X129:1:3:1: ++%*3hhX:0X129:0:3: ++%3hhX:0x129:1:3:1: ++%*3hhX:0x129:0:3: ++%3hhX:+0:1:2:0: ++%*3hhX:+0:0:2: ++# BZ12701 %3hhX:+0X0:0:-1: ++# BZ12701 %*3hhX:+0X0:0:-1: ++# BZ12701 %3hhX:+0x0:0:-1: ++# BZ12701 %*3hhX:+0x0:0:-1: ++%3hhX:+1:1:2:1: ++%*3hhX:+1:0:2: ++# BZ12701 %3hhX:+0X1:0:-1: ++# BZ12701 %*3hhX:+0X1:0:-1: ++# BZ12701 %3hhX:+0x1:0:-1: ++# BZ12701 %*3hhX:+0x1:0:-1: ++%3hhX:+2a:1:3:42: ++%*3hhX:+2a:0:3: ++%3hhX:+2A:1:3:42: ++%*3hhX:+2A:0:3: ++# BZ12701 %3hhX:+0X2a:0:-1: ++# BZ12701 %*3hhX:+0X2a:0:-1: ++# BZ12701 %3hhX:+0x2A:0:-1: ++# BZ12701 %*3hhX:+0x2A:0:-1: ++%3hhX:+ff:1:3:255: ++%*3hhX:+ff:0:3: ++%3hhX:+FF:1:3:255: ++%*3hhX:+FF:0:3: ++# BZ12701 %3hhX:+0Xff:0:-1: ++# BZ12701 %*3hhX:+0Xff:0:-1: ++# BZ12701 %3hhX:+0xFF:0:-1: ++# BZ12701 %*3hhX:+0xFF:0:-1: ++%3hhX:+100:1:3:16: ++%*3hhX:+100:0:3: ++# BZ12701 %3hhX:+0X100:0:-1: ++# BZ12701 %*3hhX:+0X100:0:-1: ++# BZ12701 %3hhX:+0x100:0:-1: ++# BZ12701 %*3hhX:+0x100:0:-1: ++%3hhX:+129:1:3:18: ++%*3hhX:+129:0:3: ++# BZ12701 %3hhX:+0X129:0:-1: ++# BZ12701 %*3hhX:+0X129:0:-1: ++# BZ12701 %3hhX:+0x129:0:-1: ++# BZ12701 %*3hhX:+0x129:0:-1: ++%5hhX::0:-1: ++%*5hhX::0:-1: ++%5hhX:-7b:1:3:133: ++%*5hhX:-7b:0:3: ++%5hhX:-7B:1:3:133: ++%*5hhX:-7B:0:3: ++%5hhX:-0X7b:1:5:133: ++%*5hhX:-0X7b:0:5: ++%5hhX:-0x7B:1:5:133: ++%*5hhX:-0x7B:0:5: ++%5hhX:-1:1:2:255: ++%*5hhX:-1:0:2: ++%5hhX:-0X1:1:4:255: ++%*5hhX:-0X1:0:4: ++%5hhX:-0x1:1:4:255: ++%*5hhX:-0x1:0:4: ++%5hhX:-0:1:2:0: ++%*5hhX:-0:0:2: ++%5hhX:-0X0:1:4:0: ++%*5hhX:-0X0:0:4: ++%5hhX:-0x0:1:4:0: ++%*5hhX:-0x0:0:4: ++%5hhX:0:1:1:0: ++%*5hhX:0:0:1: ++%5hhX:0X0:1:3:0: ++%*5hhX:0X0:0:3: ++%5hhX:0x0:1:3:0: ++%*5hhX:0x0:0:3: ++%5hhX:1:1:1:1: ++%*5hhX:1:0:1: ++%5hhX:0X1:1:3:1: ++%*5hhX:0X1:0:3: ++%5hhX:0x1:1:3:1: ++%*5hhX:0x1:0:3: ++%5hhX:2a:1:2:42: ++%*5hhX:2a:0:2: ++%5hhX:2A:1:2:42: ++%*5hhX:2A:0:2: ++%5hhX:0X2a:1:4:42: ++%*5hhX:0X2a:0:4: ++%5hhX:0x2A:1:4:42: ++%*5hhX:0x2A:0:4: ++%5hhX:ff:1:2:255: ++%*5hhX:ff:0:2: ++%5hhX:FF:1:2:255: ++%*5hhX:FF:0:2: ++%5hhX:0Xff:1:4:255: ++%*5hhX:0Xff:0:4: ++%5hhX:0xFF:1:4:255: ++%*5hhX:0xFF:0:4: ++%5hhX:100:1:3:0: ++%*5hhX:100:0:3: ++%5hhX:0X100:1:5:0: ++%*5hhX:0X100:0:5: ++%5hhX:0x100:1:5:0: ++%*5hhX:0x100:0:5: ++%5hhX:129:1:3:41: ++%*5hhX:129:0:3: ++%5hhX:0X129:1:5:41: ++%*5hhX:0X129:0:5: ++%5hhX:0x129:1:5:41: ++%*5hhX:0x129:0:5: ++%5hhX:+0:1:2:0: ++%*5hhX:+0:0:2: ++%5hhX:+0X0:1:4:0: ++%*5hhX:+0X0:0:4: ++%5hhX:+0x0:1:4:0: ++%*5hhX:+0x0:0:4: ++%5hhX:+1:1:2:1: ++%*5hhX:+1:0:2: ++%5hhX:+0X1:1:4:1: ++%*5hhX:+0X1:0:4: ++%5hhX:+0x1:1:4:1: ++%*5hhX:+0x1:0:4: ++%5hhX:+2a:1:3:42: ++%*5hhX:+2a:0:3: ++%5hhX:+2A:1:3:42: ++%*5hhX:+2A:0:3: ++%5hhX:+0X2a:1:5:42: ++%*5hhX:+0X2a:0:5: ++%5hhX:+0x2A:1:5:42: ++%*5hhX:+0x2A:0:5: ++%5hhX:+ff:1:3:255: ++%*5hhX:+ff:0:3: ++%5hhX:+FF:1:3:255: ++%*5hhX:+FF:0:3: ++%5hhX:+0Xff:1:5:255: ++%*5hhX:+0Xff:0:5: ++%5hhX:+0xFF:1:5:255: ++%*5hhX:+0xFF:0:5: ++%5hhX:+100:1:4:0: ++%*5hhX:+100:0:4: ++%5hhX:+0X100:1:5:16: ++%*5hhX:+0X100:0:5: ++%5hhX:+0x100:1:5:16: ++%*5hhX:+0x100:0:5: ++%5hhX:+129:1:4:41: ++%*5hhX:+129:0:4: ++%5hhX:+0X129:1:5:18: ++%*5hhX:+0X129:0:5: ++%5hhX:+0x129:1:5:18: ++%*5hhX:+0x129:0:5: ++%2hhX: :0:-1: ++%*2hhX: :0:-1: ++%2hhX: -7b:1:3:249: ++%*2hhX: -7b:0:3: ++%2hhX: -7B:1:3:249: ++%*2hhX: -7B:0:3: ++%2hhX: -0X7b:1:3:0: ++%*2hhX: -0X7b:0:3: ++%2hhX: -0x7B:1:3:0: ++%*2hhX: -0x7B:0:3: ++%2hhX: -1:1:3:255: ++%*2hhX: -1:0:3: ++%2hhX: -0X1:1:3:0: ++%*2hhX: -0X1:0:3: ++%2hhX: -0x1:1:3:0: ++%*2hhX: -0x1:0:3: ++%2hhX: -0:1:3:0: ++%*2hhX: -0:0:3: ++%2hhX: -0X0:1:3:0: ++%*2hhX: -0X0:0:3: ++%2hhX: -0x0:1:3:0: ++%*2hhX: -0x0:0:3: ++%2hhX: 0:1:2:0: ++%*2hhX: 0:0:2: ++# BZ12701 %2hhX: 0X0:0:-1: ++# BZ12701 %*2hhX: 0X0:0:-1: ++# BZ12701 %2hhX: 0x0:0:-1: ++# BZ12701 %*2hhX: 0x0:0:-1: ++%2hhX: 1:1:2:1: ++%*2hhX: 1:0:2: ++# BZ12701 %2hhX: 0X1:0:-1: ++# BZ12701 %*2hhX: 0X1:0:-1: ++# BZ12701 %2hhX: 0x1:0:-1: ++# BZ12701 %*2hhX: 0x1:0:-1: ++%2hhX: 2a:1:3:42: ++%*2hhX: 2a:0:3: ++%2hhX: 2A:1:3:42: ++%*2hhX: 2A:0:3: ++# BZ12701 %2hhX: 0X2a:0:-1: ++# BZ12701 %*2hhX: 0X2a:0:-1: ++# BZ12701 %2hhX: 0x2A:0:-1: ++# BZ12701 %*2hhX: 0x2A:0:-1: ++%2hhX: ff:1:3:255: ++%*2hhX: ff:0:3: ++%2hhX: FF:1:3:255: ++%*2hhX: FF:0:3: ++# BZ12701 %2hhX: 0Xff:0:-1: ++# BZ12701 %*2hhX: 0Xff:0:-1: ++# BZ12701 %2hhX: 0xFF:0:-1: ++# BZ12701 %*2hhX: 0xFF:0:-1: ++%2hhX: 100:1:3:16: ++%*2hhX: 100:0:3: ++# BZ12701 %2hhX: 0X100:0:-1: ++# BZ12701 %*2hhX: 0X100:0:-1: ++# BZ12701 %2hhX: 0x100:0:-1: ++# BZ12701 %*2hhX: 0x100:0:-1: ++%2hhX: 129:1:3:18: ++%*2hhX: 129:0:3: ++# BZ12701 %2hhX: 0X129:0:-1: ++# BZ12701 %*2hhX: 0X129:0:-1: ++# BZ12701 %2hhX: 0x129:0:-1: ++# BZ12701 %*2hhX: 0x129:0:-1: ++%2hhX: +0:1:3:0: ++%*2hhX: +0:0:3: ++%2hhX: +0X0:1:3:0: ++%*2hhX: +0X0:0:3: ++%2hhX: +0x0:1:3:0: ++%*2hhX: +0x0:0:3: ++%2hhX: +1:1:3:1: ++%*2hhX: +1:0:3: ++%2hhX: +0X1:1:3:0: ++%*2hhX: +0X1:0:3: ++%2hhX: +0x1:1:3:0: ++%*2hhX: +0x1:0:3: ++%2hhX: +2a:1:3:2: ++%*2hhX: +2a:0:3: ++%2hhX: +2A:1:3:2: ++%*2hhX: +2A:0:3: ++%2hhX: +0X2a:1:3:0: ++%*2hhX: +0X2a:0:3: ++%2hhX: +0x2A:1:3:0: ++%*2hhX: +0x2A:0:3: ++%2hhX: +ff:1:3:15: ++%*2hhX: +ff:0:3: ++%2hhX: +FF:1:3:15: ++%*2hhX: +FF:0:3: ++%2hhX: +0Xff:1:3:0: ++%*2hhX: +0Xff:0:3: ++%2hhX: +0xFF:1:3:0: ++%*2hhX: +0xFF:0:3: ++%2hhX: +100:1:3:1: ++%*2hhX: +100:0:3: ++%2hhX: +0X100:1:3:0: ++%*2hhX: +0X100:0:3: ++%2hhX: +0x100:1:3:0: ++%*2hhX: +0x100:0:3: ++%2hhX: +129:1:3:1: ++%*2hhX: +129:0:3: ++%2hhX: +0X129:1:3:0: ++%*2hhX: +0X129:0:3: ++%2hhX: +0x129:1:3:0: ++%*2hhX: +0x129:0:3: ++%5hhX: :0:-1: ++%*5hhX: :0:-1: ++%5hhX: -7b:1:4:133: ++%*5hhX: -7b:0:4: ++%5hhX: -7B:1:4:133: ++%*5hhX: -7B:0:4: ++%5hhX: -0X7b:1:6:133: ++%*5hhX: -0X7b:0:6: ++%5hhX: -0x7B:1:6:133: ++%*5hhX: -0x7B:0:6: ++%5hhX: -1:1:3:255: ++%*5hhX: -1:0:3: ++%5hhX: -0X1:1:5:255: ++%*5hhX: -0X1:0:5: ++%5hhX: -0x1:1:5:255: ++%*5hhX: -0x1:0:5: ++%5hhX: -0:1:3:0: ++%*5hhX: -0:0:3: ++%5hhX: -0X0:1:5:0: ++%*5hhX: -0X0:0:5: ++%5hhX: -0x0:1:5:0: ++%*5hhX: -0x0:0:5: ++%5hhX: 0:1:2:0: ++%*5hhX: 0:0:2: ++%5hhX: 0X0:1:4:0: ++%*5hhX: 0X0:0:4: ++%5hhX: 0x0:1:4:0: ++%*5hhX: 0x0:0:4: ++%5hhX: 1:1:2:1: ++%*5hhX: 1:0:2: ++%5hhX: 0X1:1:4:1: ++%*5hhX: 0X1:0:4: ++%5hhX: 0x1:1:4:1: ++%*5hhX: 0x1:0:4: ++%5hhX: 2a:1:3:42: ++%*5hhX: 2a:0:3: ++%5hhX: 2A:1:3:42: ++%*5hhX: 2A:0:3: ++%5hhX: 0X2a:1:5:42: ++%*5hhX: 0X2a:0:5: ++%5hhX: 0x2A:1:5:42: ++%*5hhX: 0x2A:0:5: ++%5hhX: ff:1:3:255: ++%*5hhX: ff:0:3: ++%5hhX: FF:1:3:255: ++%*5hhX: FF:0:3: ++%5hhX: 0Xff:1:5:255: ++%*5hhX: 0Xff:0:5: ++%5hhX: 0xFF:1:5:255: ++%*5hhX: 0xFF:0:5: ++%5hhX: 100:1:4:0: ++%*5hhX: 100:0:4: ++%5hhX: 0X100:1:6:0: ++%*5hhX: 0X100:0:6: ++%5hhX: 0x100:1:6:0: ++%*5hhX: 0x100:0:6: ++%5hhX: 129:1:4:41: ++%*5hhX: 129:0:4: ++%5hhX: 0X129:1:6:41: ++%*5hhX: 0X129:0:6: ++%5hhX: 0x129:1:6:41: ++%*5hhX: 0x129:0:6: ++%5hhX: +0:1:3:0: ++%*5hhX: +0:0:3: ++%5hhX: +0X0:1:5:0: ++%*5hhX: +0X0:0:5: ++%5hhX: +0x0:1:5:0: ++%*5hhX: +0x0:0:5: ++%5hhX: +1:1:3:1: ++%*5hhX: +1:0:3: ++%5hhX: +0X1:1:5:1: ++%*5hhX: +0X1:0:5: ++%5hhX: +0x1:1:5:1: ++%*5hhX: +0x1:0:5: ++%5hhX: +2a:1:4:42: ++%*5hhX: +2a:0:4: ++%5hhX: +2A:1:4:42: ++%*5hhX: +2A:0:4: ++%5hhX: +0X2a:1:6:42: ++%*5hhX: +0X2a:0:6: ++%5hhX: +0x2A:1:6:42: ++%*5hhX: +0x2A:0:6: ++%5hhX: +ff:1:4:255: ++%*5hhX: +ff:0:4: ++%5hhX: +FF:1:4:255: ++%*5hhX: +FF:0:4: ++%5hhX: +0Xff:1:6:255: ++%*5hhX: +0Xff:0:6: ++%5hhX: +0xFF:1:6:255: ++%*5hhX: +0xFF:0:6: ++%5hhX: +100:1:5:0: ++%*5hhX: +100:0:5: ++%5hhX: +0X100:1:6:16: ++%*5hhX: +0X100:0:6: ++%5hhX: +0x100:1:6:16: ++%*5hhX: +0x100:0:6: ++%5hhX: +129:1:5:41: ++%*5hhX: +129:0:5: ++%5hhX: +0X129:1:6:18: ++%*5hhX: +0X129:0:6: ++%5hhX: +0x129:1:6:18: ++%*5hhX: +0x129:0:6: +diff --git a/stdio-common/tst-scanf-format-ullong-b.input b/stdio-common/tst-scanf-format-ullong-b.input +new file mode 100644 +index 0000000000000000..57b83f01c2c91f7a +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ullong-b.input +@@ -0,0 +1,644 @@ ++%llb::0:-1: ++%*llb::0:-1: ++%llb:-1111011:1:8:-123: ++%*llb:-1111011:0:8: ++%llb:-0B1111011:1:10:-123: ++%*llb:-0B1111011:0:10: ++%llb:-0b1111011:1:10:-123: ++%*llb:-0b1111011:0:10: ++%llb:-1:1:2:-1: ++%*llb:-1:0:2: ++%llb:-0B1:1:4:-1: ++%*llb:-0B1:0:4: ++%llb:-0b1:1:4:-1: ++%*llb:-0b1:0:4: ++%llb:-0:1:2:0: ++%*llb:-0:0:2: ++%llb:-0B0:1:4:0: ++%*llb:-0B0:0:4: ++%llb:-0b0:1:4:0: ++%*llb:-0b0:0:4: ++%llb:0:1:1:0: ++%*llb:0:0:1: ++%llb:0B0:1:3:0: ++%*llb:0B0:0:3: ++%llb:0b0:1:3:0: ++%*llb:0b0:0:3: ++%llb:1:1:1:1: ++%*llb:1:0:1: ++%llb:0B1:1:3:1: ++%*llb:0B1:0:3: ++%llb:0b1:1:3:1: ++%*llb:0b1:0:3: ++%llb:101010:1:6:42: ++%*llb:101010:0:6: ++%llb:0B101010:1:8:42: ++%*llb:0B101010:0:8: ++%llb:0b101010:1:8:42: ++%*llb:0b101010:0:8: ++%llb:1111111111111111111111111111111111111111111111111111111111111111:1:64:18446744073709551615: ++%*llb:1111111111111111111111111111111111111111111111111111111111111111:0:64: ++%llb:0B1111111111111111111111111111111111111111111111111111111111111111:1:66:18446744073709551615: ++%*llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:66: ++%llb:0b1111111111111111111111111111111111111111111111111111111111111111:1:66:18446744073709551615: ++%*llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:66: ++%llb:10000000000000000000000000000000000000000000000000000000000000000:1:65:18446744073709551615: ++%*llb:10000000000000000000000000000000000000000000000000000000000000000:0:65: ++%llb:0B10000000000000000000000000000000000000000000000000000000000000000:1:67:18446744073709551615: ++%*llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:67: ++%llb:0b10000000000000000000000000000000000000000000000000000000000000000:1:67:18446744073709551615: ++%*llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:67: ++%llb:10000000000000000000000000000000000000010100001110101011110110001:1:65:18446744073709551615: ++%*llb:10000000000000000000000000000000000000010100001110101011110110001:0:65: ++%llb:0B10000000000000000000000000000000000000010100001110101011110110001:1:67:18446744073709551615: ++%*llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:67: ++%llb:0b10000000000000000000000000000000000000010100001110101011110110001:1:67:18446744073709551615: ++%*llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:67: ++%llb:+0:1:2:0: ++%*llb:+0:0:2: ++%llb:+0B0:1:4:0: ++%*llb:+0B0:0:4: ++%llb:+0b0:1:4:0: ++%*llb:+0b0:0:4: ++%llb:+1:1:2:1: ++%*llb:+1:0:2: ++%llb:+0B1:1:4:1: ++%*llb:+0B1:0:4: ++%llb:+0b1:1:4:1: ++%*llb:+0b1:0:4: ++%llb:+101010:1:7:42: ++%*llb:+101010:0:7: ++%llb:+0B101010:1:9:42: ++%*llb:+0B101010:0:9: ++%llb:+0b101010:1:9:42: ++%*llb:+0b101010:0:9: ++%llb:+1111111111111111111111111111111111111111111111111111111111111111:1:65:18446744073709551615: ++%*llb:+1111111111111111111111111111111111111111111111111111111111111111:0:65: ++%llb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:67:18446744073709551615: ++%*llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:67: ++%llb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:67:18446744073709551615: ++%*llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:67: ++%llb:+10000000000000000000000000000000000000000000000000000000000000000:1:66:18446744073709551615: ++%*llb:+10000000000000000000000000000000000000000000000000000000000000000:0:66: ++%llb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:68:18446744073709551615: ++%*llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:68: ++%llb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:68:18446744073709551615: ++%*llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:68: ++%llb:+10000000000000000000000000000000000000010100001110101011110110001:1:66:18446744073709551615: ++%*llb:+10000000000000000000000000000000000000010100001110101011110110001:0:66: ++%llb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:68:18446744073709551615: ++%*llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:68: ++%llb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:68:18446744073709551615: ++%*llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:68: ++%1llb::0:-1: ++%*1llb::0:-1: ++%1llb:-1111011:0:-1: ++%*1llb:-1111011:0:-1: ++%1llb:-0B1111011:0:-1: ++%*1llb:-0B1111011:0:-1: ++%1llb:-0b1111011:0:-1: ++%*1llb:-0b1111011:0:-1: ++%1llb:-1:0:-1: ++%*1llb:-1:0:-1: ++%1llb:-0B1:0:-1: ++%*1llb:-0B1:0:-1: ++%1llb:-0b1:0:-1: ++%*1llb:-0b1:0:-1: ++%1llb:-0:0:-1: ++%*1llb:-0:0:-1: ++%1llb:-0B0:0:-1: ++%*1llb:-0B0:0:-1: ++%1llb:-0b0:0:-1: ++%*1llb:-0b0:0:-1: ++%1llb:0:1:1:0: ++%*1llb:0:0:1: ++%1llb:0B0:1:1:0: ++%*1llb:0B0:0:1: ++%1llb:0b0:1:1:0: ++%*1llb:0b0:0:1: ++%1llb:1:1:1:1: ++%*1llb:1:0:1: ++%1llb:0B1:1:1:0: ++%*1llb:0B1:0:1: ++%1llb:0b1:1:1:0: ++%*1llb:0b1:0:1: ++%1llb:101010:1:1:1: ++%*1llb:101010:0:1: ++%1llb:0B101010:1:1:0: ++%*1llb:0B101010:0:1: ++%1llb:0b101010:1:1:0: ++%*1llb:0b101010:0:1: ++%1llb:1111111111111111111111111111111111111111111111111111111111111111:1:1:1: ++%*1llb:1111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1llb:0B1111111111111111111111111111111111111111111111111111111111111111:1:1:0: ++%*1llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1llb:0b1111111111111111111111111111111111111111111111111111111111111111:1:1:0: ++%*1llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1llb:10000000000000000000000000000000000000000000000000000000000000000:1:1:1: ++%*1llb:10000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1llb:0B10000000000000000000000000000000000000000000000000000000000000000:1:1:0: ++%*1llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1llb:0b10000000000000000000000000000000000000000000000000000000000000000:1:1:0: ++%*1llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1llb:10000000000000000000000000000000000000010100001110101011110110001:1:1:1: ++%*1llb:10000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1llb:0B10000000000000000000000000000000000000010100001110101011110110001:1:1:0: ++%*1llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1llb:0b10000000000000000000000000000000000000010100001110101011110110001:1:1:0: ++%*1llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1llb:+0:0:-1: ++%*1llb:+0:0:-1: ++%1llb:+0B0:0:-1: ++%*1llb:+0B0:0:-1: ++%1llb:+0b0:0:-1: ++%*1llb:+0b0:0:-1: ++%1llb:+1:0:-1: ++%*1llb:+1:0:-1: ++%1llb:+0B1:0:-1: ++%*1llb:+0B1:0:-1: ++%1llb:+0b1:0:-1: ++%*1llb:+0b1:0:-1: ++%1llb:+101010:0:-1: ++%*1llb:+101010:0:-1: ++%1llb:+0B101010:0:-1: ++%*1llb:+0B101010:0:-1: ++%1llb:+0b101010:0:-1: ++%*1llb:+0b101010:0:-1: ++%1llb:+1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1llb:+1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1llb:+10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1llb:+10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1llb:+10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1llb:+10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%1llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%1llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2llb::0:-1: ++%*2llb::0:-1: ++%2llb:-1111011:1:2:-1: ++%*2llb:-1111011:0:2: ++%2llb:-0B1111011:1:2:0: ++%*2llb:-0B1111011:0:2: ++%2llb:-0b1111011:1:2:0: ++%*2llb:-0b1111011:0:2: ++%2llb:-1:1:2:-1: ++%*2llb:-1:0:2: ++%2llb:-0B1:1:2:0: ++%*2llb:-0B1:0:2: ++%2llb:-0b1:1:2:0: ++%*2llb:-0b1:0:2: ++%2llb:-0:1:2:0: ++%*2llb:-0:0:2: ++%2llb:-0B0:1:2:0: ++%*2llb:-0B0:0:2: ++%2llb:-0b0:1:2:0: ++%*2llb:-0b0:0:2: ++%2llb:0:1:1:0: ++%*2llb:0:0:1: ++# BZ12701 %2llb:0B0:0:-1: ++# BZ12701 %*2llb:0B0:0:-1: ++# BZ12701 %2llb:0b0:0:-1: ++# BZ12701 %*2llb:0b0:0:-1: ++%2llb:1:1:1:1: ++%*2llb:1:0:1: ++# BZ12701 %2llb:0B1:0:-1: ++# BZ12701 %*2llb:0B1:0:-1: ++# BZ12701 %2llb:0b1:0:-1: ++# BZ12701 %*2llb:0b1:0:-1: ++%2llb:101010:1:2:2: ++%*2llb:101010:0:2: ++# BZ12701 %2llb:0B101010:0:-1: ++# BZ12701 %*2llb:0B101010:0:-1: ++# BZ12701 %2llb:0b101010:0:-1: ++# BZ12701 %*2llb:0b101010:0:-1: ++%2llb:1111111111111111111111111111111111111111111111111111111111111111:1:2:3: ++%*2llb:1111111111111111111111111111111111111111111111111111111111111111:0:2: ++# BZ12701 %2llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %2llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%2llb:10000000000000000000000000000000000000000000000000000000000000000:1:2:2: ++%*2llb:10000000000000000000000000000000000000000000000000000000000000000:0:2: ++# BZ12701 %2llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %2llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%2llb:10000000000000000000000000000000000000010100001110101011110110001:1:2:2: ++%*2llb:10000000000000000000000000000000000000010100001110101011110110001:0:2: ++# BZ12701 %2llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %2llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2llb:+0:1:2:0: ++%*2llb:+0:0:2: ++%2llb:+0B0:1:2:0: ++%*2llb:+0B0:0:2: ++%2llb:+0b0:1:2:0: ++%*2llb:+0b0:0:2: ++%2llb:+1:1:2:1: ++%*2llb:+1:0:2: ++%2llb:+0B1:1:2:0: ++%*2llb:+0B1:0:2: ++%2llb:+0b1:1:2:0: ++%*2llb:+0b1:0:2: ++%2llb:+101010:1:2:1: ++%*2llb:+101010:0:2: ++%2llb:+0B101010:1:2:0: ++%*2llb:+0B101010:0:2: ++%2llb:+0b101010:1:2:0: ++%*2llb:+0b101010:0:2: ++%2llb:+1111111111111111111111111111111111111111111111111111111111111111:1:2:1: ++%*2llb:+1111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2llb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:2:0: ++%*2llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2llb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:2:0: ++%*2llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2llb:+10000000000000000000000000000000000000000000000000000000000000000:1:2:1: ++%*2llb:+10000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2llb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2llb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2llb:+10000000000000000000000000000000000000010100001110101011110110001:1:2:1: ++%*2llb:+10000000000000000000000000000000000000010100001110101011110110001:0:2: ++%2llb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:2:0: ++%*2llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:2: ++%2llb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:2:0: ++%*2llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:2: ++%15llb::0:-1: ++%*15llb::0:-1: ++%15llb:-1111011:1:8:-123: ++%*15llb:-1111011:0:8: ++%15llb:-0B1111011:1:10:-123: ++%*15llb:-0B1111011:0:10: ++%15llb:-0b1111011:1:10:-123: ++%*15llb:-0b1111011:0:10: ++%15llb:-1:1:2:-1: ++%*15llb:-1:0:2: ++%15llb:-0B1:1:4:-1: ++%*15llb:-0B1:0:4: ++%15llb:-0b1:1:4:-1: ++%*15llb:-0b1:0:4: ++%15llb:-0:1:2:0: ++%*15llb:-0:0:2: ++%15llb:-0B0:1:4:0: ++%*15llb:-0B0:0:4: ++%15llb:-0b0:1:4:0: ++%*15llb:-0b0:0:4: ++%15llb:0:1:1:0: ++%*15llb:0:0:1: ++%15llb:0B0:1:3:0: ++%*15llb:0B0:0:3: ++%15llb:0b0:1:3:0: ++%*15llb:0b0:0:3: ++%15llb:1:1:1:1: ++%*15llb:1:0:1: ++%15llb:0B1:1:3:1: ++%*15llb:0B1:0:3: ++%15llb:0b1:1:3:1: ++%*15llb:0b1:0:3: ++%15llb:101010:1:6:42: ++%*15llb:101010:0:6: ++%15llb:0B101010:1:8:42: ++%*15llb:0B101010:0:8: ++%15llb:0b101010:1:8:42: ++%*15llb:0b101010:0:8: ++%15llb:1111111111111111111111111111111111111111111111111111111111111111:1:15:32767: ++%*15llb:1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15llb:0B1111111111111111111111111111111111111111111111111111111111111111:1:15:8191: ++%*15llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15llb:0b1111111111111111111111111111111111111111111111111111111111111111:1:15:8191: ++%*15llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15llb:10000000000000000000000000000000000000000000000000000000000000000:1:15:16384: ++%*15llb:10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15llb:0B10000000000000000000000000000000000000000000000000000000000000000:1:15:4096: ++%*15llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15llb:0b10000000000000000000000000000000000000000000000000000000000000000:1:15:4096: ++%*15llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15llb:10000000000000000000000000000000000000010100001110101011110110001:1:15:16384: ++%*15llb:10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15llb:0B10000000000000000000000000000000000000010100001110101011110110001:1:15:4096: ++%*15llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15llb:0b10000000000000000000000000000000000000010100001110101011110110001:1:15:4096: ++%*15llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15llb:+0:1:2:0: ++%*15llb:+0:0:2: ++%15llb:+0B0:1:4:0: ++%*15llb:+0B0:0:4: ++%15llb:+0b0:1:4:0: ++%*15llb:+0b0:0:4: ++%15llb:+1:1:2:1: ++%*15llb:+1:0:2: ++%15llb:+0B1:1:4:1: ++%*15llb:+0B1:0:4: ++%15llb:+0b1:1:4:1: ++%*15llb:+0b1:0:4: ++%15llb:+101010:1:7:42: ++%*15llb:+101010:0:7: ++%15llb:+0B101010:1:9:42: ++%*15llb:+0B101010:0:9: ++%15llb:+0b101010:1:9:42: ++%*15llb:+0b101010:0:9: ++%15llb:+1111111111111111111111111111111111111111111111111111111111111111:1:15:16383: ++%*15llb:+1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15llb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:15:4095: ++%*15llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15llb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:15:4095: ++%*15llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15llb:+10000000000000000000000000000000000000000000000000000000000000000:1:15:8192: ++%*15llb:+10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15llb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:15:2048: ++%*15llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15llb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:15:2048: ++%*15llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15llb:+10000000000000000000000000000000000000010100001110101011110110001:1:15:8192: ++%*15llb:+10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15llb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:15:2048: ++%*15llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15llb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:15:2048: ++%*15llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%25llb::0:-1: ++%*25llb::0:-1: ++%25llb:-1111011:1:8:-123: ++%*25llb:-1111011:0:8: ++%25llb:-0B1111011:1:10:-123: ++%*25llb:-0B1111011:0:10: ++%25llb:-0b1111011:1:10:-123: ++%*25llb:-0b1111011:0:10: ++%25llb:-1:1:2:-1: ++%*25llb:-1:0:2: ++%25llb:-0B1:1:4:-1: ++%*25llb:-0B1:0:4: ++%25llb:-0b1:1:4:-1: ++%*25llb:-0b1:0:4: ++%25llb:-0:1:2:0: ++%*25llb:-0:0:2: ++%25llb:-0B0:1:4:0: ++%*25llb:-0B0:0:4: ++%25llb:-0b0:1:4:0: ++%*25llb:-0b0:0:4: ++%25llb:0:1:1:0: ++%*25llb:0:0:1: ++%25llb:0B0:1:3:0: ++%*25llb:0B0:0:3: ++%25llb:0b0:1:3:0: ++%*25llb:0b0:0:3: ++%25llb:1:1:1:1: ++%*25llb:1:0:1: ++%25llb:0B1:1:3:1: ++%*25llb:0B1:0:3: ++%25llb:0b1:1:3:1: ++%*25llb:0b1:0:3: ++%25llb:101010:1:6:42: ++%*25llb:101010:0:6: ++%25llb:0B101010:1:8:42: ++%*25llb:0B101010:0:8: ++%25llb:0b101010:1:8:42: ++%*25llb:0b101010:0:8: ++%25llb:1111111111111111111111111111111111111111111111111111111111111111:1:25:33554431: ++%*25llb:1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25llb:0B1111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: ++%*25llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25llb:0b1111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: ++%*25llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25llb:10000000000000000000000000000000000000000000000000000000000000000:1:25:16777216: ++%*25llb:10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25llb:0B10000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: ++%*25llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25llb:0b10000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: ++%*25llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25llb:10000000000000000000000000000000000000010100001110101011110110001:1:25:16777216: ++%*25llb:10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25llb:0B10000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: ++%*25llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25llb:0b10000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: ++%*25llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25llb:+0:1:2:0: ++%*25llb:+0:0:2: ++%25llb:+0B0:1:4:0: ++%*25llb:+0B0:0:4: ++%25llb:+0b0:1:4:0: ++%*25llb:+0b0:0:4: ++%25llb:+1:1:2:1: ++%*25llb:+1:0:2: ++%25llb:+0B1:1:4:1: ++%*25llb:+0B1:0:4: ++%25llb:+0b1:1:4:1: ++%*25llb:+0b1:0:4: ++%25llb:+101010:1:7:42: ++%*25llb:+101010:0:7: ++%25llb:+0B101010:1:9:42: ++%*25llb:+0B101010:0:9: ++%25llb:+0b101010:1:9:42: ++%*25llb:+0b101010:0:9: ++%25llb:+1111111111111111111111111111111111111111111111111111111111111111:1:25:16777215: ++%*25llb:+1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25llb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: ++%*25llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25llb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: ++%*25llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25llb:+10000000000000000000000000000000000000000000000000000000000000000:1:25:8388608: ++%*25llb:+10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25llb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: ++%*25llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25llb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: ++%*25llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25llb:+10000000000000000000000000000000000000010100001110101011110110001:1:25:8388608: ++%*25llb:+10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25llb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: ++%*25llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25llb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: ++%*25llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%2llb: :0:-1: ++%*2llb: :0:-1: ++%2llb: -1111011:1:3:-1: ++%*2llb: -1111011:0:3: ++%2llb: -0B1111011:1:3:0: ++%*2llb: -0B1111011:0:3: ++%2llb: -0b1111011:1:3:0: ++%*2llb: -0b1111011:0:3: ++%2llb: -1:1:3:-1: ++%*2llb: -1:0:3: ++%2llb: -0B1:1:3:0: ++%*2llb: -0B1:0:3: ++%2llb: -0b1:1:3:0: ++%*2llb: -0b1:0:3: ++%2llb: -0:1:3:0: ++%*2llb: -0:0:3: ++%2llb: -0B0:1:3:0: ++%*2llb: -0B0:0:3: ++%2llb: -0b0:1:3:0: ++%*2llb: -0b0:0:3: ++%2llb: 0:1:2:0: ++%*2llb: 0:0:2: ++# BZ12701 %2llb: 0B0:0:-1: ++# BZ12701 %*2llb: 0B0:0:-1: ++# BZ12701 %2llb: 0b0:0:-1: ++# BZ12701 %*2llb: 0b0:0:-1: ++%2llb: 1:1:2:1: ++%*2llb: 1:0:2: ++# BZ12701 %2llb: 0B1:0:-1: ++# BZ12701 %*2llb: 0B1:0:-1: ++# BZ12701 %2llb: 0b1:0:-1: ++# BZ12701 %*2llb: 0b1:0:-1: ++%2llb: 101010:1:3:2: ++%*2llb: 101010:0:3: ++# BZ12701 %2llb: 0B101010:0:-1: ++# BZ12701 %*2llb: 0B101010:0:-1: ++# BZ12701 %2llb: 0b101010:0:-1: ++# BZ12701 %*2llb: 0b101010:0:-1: ++%2llb: 1111111111111111111111111111111111111111111111111111111111111111:1:3:3: ++%*2llb: 1111111111111111111111111111111111111111111111111111111111111111:0:3: ++# BZ12701 %2llb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2llb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %2llb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2llb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%2llb: 10000000000000000000000000000000000000000000000000000000000000000:1:3:2: ++%*2llb: 10000000000000000000000000000000000000000000000000000000000000000:0:3: ++# BZ12701 %2llb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2llb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %2llb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2llb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%2llb: 10000000000000000000000000000000000000010100001110101011110110001:1:3:2: ++%*2llb: 10000000000000000000000000000000000000010100001110101011110110001:0:3: ++# BZ12701 %2llb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2llb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %2llb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2llb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2llb: +0:1:3:0: ++%*2llb: +0:0:3: ++%2llb: +0B0:1:3:0: ++%*2llb: +0B0:0:3: ++%2llb: +0b0:1:3:0: ++%*2llb: +0b0:0:3: ++%2llb: +1:1:3:1: ++%*2llb: +1:0:3: ++%2llb: +0B1:1:3:0: ++%*2llb: +0B1:0:3: ++%2llb: +0b1:1:3:0: ++%*2llb: +0b1:0:3: ++%2llb: +101010:1:3:1: ++%*2llb: +101010:0:3: ++%2llb: +0B101010:1:3:0: ++%*2llb: +0B101010:0:3: ++%2llb: +0b101010:1:3:0: ++%*2llb: +0b101010:0:3: ++%2llb: +1111111111111111111111111111111111111111111111111111111111111111:1:3:1: ++%*2llb: +1111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2llb: +0B1111111111111111111111111111111111111111111111111111111111111111:1:3:0: ++%*2llb: +0B1111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2llb: +0b1111111111111111111111111111111111111111111111111111111111111111:1:3:0: ++%*2llb: +0b1111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2llb: +10000000000000000000000000000000000000000000000000000000000000000:1:3:1: ++%*2llb: +10000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2llb: +0B10000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2llb: +0B10000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2llb: +0b10000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2llb: +0b10000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2llb: +10000000000000000000000000000000000000010100001110101011110110001:1:3:1: ++%*2llb: +10000000000000000000000000000000000000010100001110101011110110001:0:3: ++%2llb: +0B10000000000000000000000000000000000000010100001110101011110110001:1:3:0: ++%*2llb: +0B10000000000000000000000000000000000000010100001110101011110110001:0:3: ++%2llb: +0b10000000000000000000000000000000000000010100001110101011110110001:1:3:0: ++%*2llb: +0b10000000000000000000000000000000000000010100001110101011110110001:0:3: ++%25llb: :0:-1: ++%*25llb: :0:-1: ++%25llb: -1111011:1:9:-123: ++%*25llb: -1111011:0:9: ++%25llb: -0B1111011:1:11:-123: ++%*25llb: -0B1111011:0:11: ++%25llb: -0b1111011:1:11:-123: ++%*25llb: -0b1111011:0:11: ++%25llb: -1:1:3:-1: ++%*25llb: -1:0:3: ++%25llb: -0B1:1:5:-1: ++%*25llb: -0B1:0:5: ++%25llb: -0b1:1:5:-1: ++%*25llb: -0b1:0:5: ++%25llb: -0:1:3:0: ++%*25llb: -0:0:3: ++%25llb: -0B0:1:5:0: ++%*25llb: -0B0:0:5: ++%25llb: -0b0:1:5:0: ++%*25llb: -0b0:0:5: ++%25llb: 0:1:2:0: ++%*25llb: 0:0:2: ++%25llb: 0B0:1:4:0: ++%*25llb: 0B0:0:4: ++%25llb: 0b0:1:4:0: ++%*25llb: 0b0:0:4: ++%25llb: 1:1:2:1: ++%*25llb: 1:0:2: ++%25llb: 0B1:1:4:1: ++%*25llb: 0B1:0:4: ++%25llb: 0b1:1:4:1: ++%*25llb: 0b1:0:4: ++%25llb: 101010:1:7:42: ++%*25llb: 101010:0:7: ++%25llb: 0B101010:1:9:42: ++%*25llb: 0B101010:0:9: ++%25llb: 0b101010:1:9:42: ++%*25llb: 0b101010:0:9: ++%25llb: 1111111111111111111111111111111111111111111111111111111111111111:1:26:33554431: ++%*25llb: 1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25llb: 0B1111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: ++%*25llb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25llb: 0b1111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: ++%*25llb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25llb: 10000000000000000000000000000000000000000000000000000000000000000:1:26:16777216: ++%*25llb: 10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25llb: 0B10000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: ++%*25llb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25llb: 0b10000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: ++%*25llb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25llb: 10000000000000000000000000000000000000010100001110101011110110001:1:26:16777216: ++%*25llb: 10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25llb: 0B10000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: ++%*25llb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25llb: 0b10000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: ++%*25llb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25llb: +0:1:3:0: ++%*25llb: +0:0:3: ++%25llb: +0B0:1:5:0: ++%*25llb: +0B0:0:5: ++%25llb: +0b0:1:5:0: ++%*25llb: +0b0:0:5: ++%25llb: +1:1:3:1: ++%*25llb: +1:0:3: ++%25llb: +0B1:1:5:1: ++%*25llb: +0B1:0:5: ++%25llb: +0b1:1:5:1: ++%*25llb: +0b1:0:5: ++%25llb: +101010:1:8:42: ++%*25llb: +101010:0:8: ++%25llb: +0B101010:1:10:42: ++%*25llb: +0B101010:0:10: ++%25llb: +0b101010:1:10:42: ++%*25llb: +0b101010:0:10: ++%25llb: +1111111111111111111111111111111111111111111111111111111111111111:1:26:16777215: ++%*25llb: +1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25llb: +0B1111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: ++%*25llb: +0B1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25llb: +0b1111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: ++%*25llb: +0b1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25llb: +10000000000000000000000000000000000000000000000000000000000000000:1:26:8388608: ++%*25llb: +10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25llb: +0B10000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: ++%*25llb: +0B10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25llb: +0b10000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: ++%*25llb: +0b10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25llb: +10000000000000000000000000000000000000010100001110101011110110001:1:26:8388608: ++%*25llb: +10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25llb: +0B10000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: ++%*25llb: +0B10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25llb: +0b10000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: ++%*25llb: +0b10000000000000000000000000000000000000010100001110101011110110001:0:26: +diff --git a/stdio-common/tst-scanf-format-ullong-o.input b/stdio-common/tst-scanf-format-ullong-o.input +new file mode 100644 +index 0000000000000000..98af9ced15bd9285 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ullong-o.input +@@ -0,0 +1,434 @@ ++%llo::0:-1: ++%*llo::0:-1: ++%llo:-173:1:4:-123: ++%*llo:-173:0:4: ++%llo:-0173:1:5:-123: ++%*llo:-0173:0:5: ++%llo:-1:1:2:-1: ++%*llo:-1:0:2: ++%llo:-01:1:3:-1: ++%*llo:-01:0:3: ++%llo:-0:1:2:0: ++%*llo:-0:0:2: ++%llo:-00:1:3:0: ++%*llo:-00:0:3: ++%llo:0:1:1:0: ++%*llo:0:0:1: ++%llo:00:1:2:0: ++%*llo:00:0:2: ++%llo:1:1:1:1: ++%*llo:1:0:1: ++%llo:01:1:2:1: ++%*llo:01:0:2: ++%llo:52:1:2:42: ++%*llo:52:0:2: ++%llo:052:1:3:42: ++%*llo:052:0:3: ++%llo:1777777777777777777777:1:22:18446744073709551615: ++%*llo:1777777777777777777777:0:22: ++%llo:01777777777777777777777:1:23:18446744073709551615: ++%*llo:01777777777777777777777:0:23: ++%llo:2000000000000000000000:1:22:18446744073709551615: ++%*llo:2000000000000000000000:0:22: ++%llo:02000000000000000000000:1:23:18446744073709551615: ++%*llo:02000000000000000000000:0:23: ++%llo:2000000000000241653661:1:22:18446744073709551615: ++%*llo:2000000000000241653661:0:22: ++%llo:02000000000000241653661:1:23:18446744073709551615: ++%*llo:02000000000000241653661:0:23: ++%llo:+0:1:2:0: ++%*llo:+0:0:2: ++%llo:+00:1:3:0: ++%*llo:+00:0:3: ++%llo:+1:1:2:1: ++%*llo:+1:0:2: ++%llo:+01:1:3:1: ++%*llo:+01:0:3: ++%llo:+52:1:3:42: ++%*llo:+52:0:3: ++%llo:+052:1:4:42: ++%*llo:+052:0:4: ++%llo:+1777777777777777777777:1:23:18446744073709551615: ++%*llo:+1777777777777777777777:0:23: ++%llo:+01777777777777777777777:1:24:18446744073709551615: ++%*llo:+01777777777777777777777:0:24: ++%llo:+2000000000000000000000:1:23:18446744073709551615: ++%*llo:+2000000000000000000000:0:23: ++%llo:+02000000000000000000000:1:24:18446744073709551615: ++%*llo:+02000000000000000000000:0:24: ++%llo:+2000000000000241653661:1:23:18446744073709551615: ++%*llo:+2000000000000241653661:0:23: ++%llo:+02000000000000241653661:1:24:18446744073709551615: ++%*llo:+02000000000000241653661:0:24: ++%1llo::0:-1: ++%*1llo::0:-1: ++%1llo:-173:0:-1: ++%*1llo:-173:0:-1: ++%1llo:-0173:0:-1: ++%*1llo:-0173:0:-1: ++%1llo:-1:0:-1: ++%*1llo:-1:0:-1: ++%1llo:-01:0:-1: ++%*1llo:-01:0:-1: ++%1llo:-0:0:-1: ++%*1llo:-0:0:-1: ++%1llo:-00:0:-1: ++%*1llo:-00:0:-1: ++%1llo:0:1:1:0: ++%*1llo:0:0:1: ++%1llo:00:1:1:0: ++%*1llo:00:0:1: ++%1llo:1:1:1:1: ++%*1llo:1:0:1: ++%1llo:01:1:1:0: ++%*1llo:01:0:1: ++%1llo:52:1:1:5: ++%*1llo:52:0:1: ++%1llo:052:1:1:0: ++%*1llo:052:0:1: ++%1llo:1777777777777777777777:1:1:1: ++%*1llo:1777777777777777777777:0:1: ++%1llo:01777777777777777777777:1:1:0: ++%*1llo:01777777777777777777777:0:1: ++%1llo:2000000000000000000000:1:1:2: ++%*1llo:2000000000000000000000:0:1: ++%1llo:02000000000000000000000:1:1:0: ++%*1llo:02000000000000000000000:0:1: ++%1llo:2000000000000241653661:1:1:2: ++%*1llo:2000000000000241653661:0:1: ++%1llo:02000000000000241653661:1:1:0: ++%*1llo:02000000000000241653661:0:1: ++%1llo:+0:0:-1: ++%*1llo:+0:0:-1: ++%1llo:+00:0:-1: ++%*1llo:+00:0:-1: ++%1llo:+1:0:-1: ++%*1llo:+1:0:-1: ++%1llo:+01:0:-1: ++%*1llo:+01:0:-1: ++%1llo:+52:0:-1: ++%*1llo:+52:0:-1: ++%1llo:+052:0:-1: ++%*1llo:+052:0:-1: ++%1llo:+1777777777777777777777:0:-1: ++%*1llo:+1777777777777777777777:0:-1: ++%1llo:+01777777777777777777777:0:-1: ++%*1llo:+01777777777777777777777:0:-1: ++%1llo:+2000000000000000000000:0:-1: ++%*1llo:+2000000000000000000000:0:-1: ++%1llo:+02000000000000000000000:0:-1: ++%*1llo:+02000000000000000000000:0:-1: ++%1llo:+2000000000000241653661:0:-1: ++%*1llo:+2000000000000241653661:0:-1: ++%1llo:+02000000000000241653661:0:-1: ++%*1llo:+02000000000000241653661:0:-1: ++%2llo::0:-1: ++%*2llo::0:-1: ++%2llo:-173:1:2:-1: ++%*2llo:-173:0:2: ++%2llo:-0173:1:2:0: ++%*2llo:-0173:0:2: ++%2llo:-1:1:2:-1: ++%*2llo:-1:0:2: ++%2llo:-01:1:2:0: ++%*2llo:-01:0:2: ++%2llo:-0:1:2:0: ++%*2llo:-0:0:2: ++%2llo:-00:1:2:0: ++%*2llo:-00:0:2: ++%2llo:0:1:1:0: ++%*2llo:0:0:1: ++%2llo:00:1:2:0: ++%*2llo:00:0:2: ++%2llo:1:1:1:1: ++%*2llo:1:0:1: ++%2llo:01:1:2:1: ++%*2llo:01:0:2: ++%2llo:52:1:2:42: ++%*2llo:52:0:2: ++%2llo:052:1:2:5: ++%*2llo:052:0:2: ++%2llo:1777777777777777777777:1:2:15: ++%*2llo:1777777777777777777777:0:2: ++%2llo:01777777777777777777777:1:2:1: ++%*2llo:01777777777777777777777:0:2: ++%2llo:2000000000000000000000:1:2:16: ++%*2llo:2000000000000000000000:0:2: ++%2llo:02000000000000000000000:1:2:2: ++%*2llo:02000000000000000000000:0:2: ++%2llo:2000000000000241653661:1:2:16: ++%*2llo:2000000000000241653661:0:2: ++%2llo:02000000000000241653661:1:2:2: ++%*2llo:02000000000000241653661:0:2: ++%2llo:+0:1:2:0: ++%*2llo:+0:0:2: ++%2llo:+00:1:2:0: ++%*2llo:+00:0:2: ++%2llo:+1:1:2:1: ++%*2llo:+1:0:2: ++%2llo:+01:1:2:0: ++%*2llo:+01:0:2: ++%2llo:+52:1:2:5: ++%*2llo:+52:0:2: ++%2llo:+052:1:2:0: ++%*2llo:+052:0:2: ++%2llo:+1777777777777777777777:1:2:1: ++%*2llo:+1777777777777777777777:0:2: ++%2llo:+01777777777777777777777:1:2:0: ++%*2llo:+01777777777777777777777:0:2: ++%2llo:+2000000000000000000000:1:2:2: ++%*2llo:+2000000000000000000000:0:2: ++%2llo:+02000000000000000000000:1:2:0: ++%*2llo:+02000000000000000000000:0:2: ++%2llo:+2000000000000241653661:1:2:2: ++%*2llo:+2000000000000241653661:0:2: ++%2llo:+02000000000000241653661:1:2:0: ++%*2llo:+02000000000000241653661:0:2: ++%15llo::0:-1: ++%*15llo::0:-1: ++%15llo:-173:1:4:-123: ++%*15llo:-173:0:4: ++%15llo:-0173:1:5:-123: ++%*15llo:-0173:0:5: ++%15llo:-1:1:2:-1: ++%*15llo:-1:0:2: ++%15llo:-01:1:3:-1: ++%*15llo:-01:0:3: ++%15llo:-0:1:2:0: ++%*15llo:-0:0:2: ++%15llo:-00:1:3:0: ++%*15llo:-00:0:3: ++%15llo:0:1:1:0: ++%*15llo:0:0:1: ++%15llo:00:1:2:0: ++%*15llo:00:0:2: ++%15llo:1:1:1:1: ++%*15llo:1:0:1: ++%15llo:01:1:2:1: ++%*15llo:01:0:2: ++%15llo:52:1:2:42: ++%*15llo:52:0:2: ++%15llo:052:1:3:42: ++%*15llo:052:0:3: ++%15llo:1777777777777777777777:1:15:8796093022207: ++%*15llo:1777777777777777777777:0:15: ++%15llo:01777777777777777777777:1:15:1099511627775: ++%*15llo:01777777777777777777777:0:15: ++%15llo:2000000000000000000000:1:15:8796093022208: ++%*15llo:2000000000000000000000:0:15: ++%15llo:02000000000000000000000:1:15:1099511627776: ++%*15llo:02000000000000000000000:0:15: ++%15llo:2000000000000241653661:1:15:8796093022228: ++%*15llo:2000000000000241653661:0:15: ++%15llo:02000000000000241653661:1:15:1099511627778: ++%*15llo:02000000000000241653661:0:15: ++%15llo:+0:1:2:0: ++%*15llo:+0:0:2: ++%15llo:+00:1:3:0: ++%*15llo:+00:0:3: ++%15llo:+1:1:2:1: ++%*15llo:+1:0:2: ++%15llo:+01:1:3:1: ++%*15llo:+01:0:3: ++%15llo:+52:1:3:42: ++%*15llo:+52:0:3: ++%15llo:+052:1:4:42: ++%*15llo:+052:0:4: ++%15llo:+1777777777777777777777:1:15:1099511627775: ++%*15llo:+1777777777777777777777:0:15: ++%15llo:+01777777777777777777777:1:15:137438953471: ++%*15llo:+01777777777777777777777:0:15: ++%15llo:+2000000000000000000000:1:15:1099511627776: ++%*15llo:+2000000000000000000000:0:15: ++%15llo:+02000000000000000000000:1:15:137438953472: ++%*15llo:+02000000000000000000000:0:15: ++%15llo:+2000000000000241653661:1:15:1099511627778: ++%*15llo:+2000000000000241653661:0:15: ++%15llo:+02000000000000241653661:1:15:137438953472: ++%*15llo:+02000000000000241653661:0:15: ++%25llo::0:-1: ++%*25llo::0:-1: ++%25llo:-173:1:4:-123: ++%*25llo:-173:0:4: ++%25llo:-0173:1:5:-123: ++%*25llo:-0173:0:5: ++%25llo:-1:1:2:-1: ++%*25llo:-1:0:2: ++%25llo:-01:1:3:-1: ++%*25llo:-01:0:3: ++%25llo:-0:1:2:0: ++%*25llo:-0:0:2: ++%25llo:-00:1:3:0: ++%*25llo:-00:0:3: ++%25llo:0:1:1:0: ++%*25llo:0:0:1: ++%25llo:00:1:2:0: ++%*25llo:00:0:2: ++%25llo:1:1:1:1: ++%*25llo:1:0:1: ++%25llo:01:1:2:1: ++%*25llo:01:0:2: ++%25llo:52:1:2:42: ++%*25llo:52:0:2: ++%25llo:052:1:3:42: ++%*25llo:052:0:3: ++%25llo:1777777777777777777777:1:22:18446744073709551615: ++%*25llo:1777777777777777777777:0:22: ++%25llo:01777777777777777777777:1:23:18446744073709551615: ++%*25llo:01777777777777777777777:0:23: ++%25llo:2000000000000000000000:1:22:18446744073709551615: ++%*25llo:2000000000000000000000:0:22: ++%25llo:02000000000000000000000:1:23:18446744073709551615: ++%*25llo:02000000000000000000000:0:23: ++%25llo:2000000000000241653661:1:22:18446744073709551615: ++%*25llo:2000000000000241653661:0:22: ++%25llo:02000000000000241653661:1:23:18446744073709551615: ++%*25llo:02000000000000241653661:0:23: ++%25llo:+0:1:2:0: ++%*25llo:+0:0:2: ++%25llo:+00:1:3:0: ++%*25llo:+00:0:3: ++%25llo:+1:1:2:1: ++%*25llo:+1:0:2: ++%25llo:+01:1:3:1: ++%*25llo:+01:0:3: ++%25llo:+52:1:3:42: ++%*25llo:+52:0:3: ++%25llo:+052:1:4:42: ++%*25llo:+052:0:4: ++%25llo:+1777777777777777777777:1:23:18446744073709551615: ++%*25llo:+1777777777777777777777:0:23: ++%25llo:+01777777777777777777777:1:24:18446744073709551615: ++%*25llo:+01777777777777777777777:0:24: ++%25llo:+2000000000000000000000:1:23:18446744073709551615: ++%*25llo:+2000000000000000000000:0:23: ++%25llo:+02000000000000000000000:1:24:18446744073709551615: ++%*25llo:+02000000000000000000000:0:24: ++%25llo:+2000000000000241653661:1:23:18446744073709551615: ++%*25llo:+2000000000000241653661:0:23: ++%25llo:+02000000000000241653661:1:24:18446744073709551615: ++%*25llo:+02000000000000241653661:0:24: ++%2llo: :0:-1: ++%*2llo: :0:-1: ++%2llo: -173:1:3:-1: ++%*2llo: -173:0:3: ++%2llo: -0173:1:3:0: ++%*2llo: -0173:0:3: ++%2llo: -1:1:3:-1: ++%*2llo: -1:0:3: ++%2llo: -01:1:3:0: ++%*2llo: -01:0:3: ++%2llo: -0:1:3:0: ++%*2llo: -0:0:3: ++%2llo: -00:1:3:0: ++%*2llo: -00:0:3: ++%2llo: 0:1:2:0: ++%*2llo: 0:0:2: ++%2llo: 00:1:3:0: ++%*2llo: 00:0:3: ++%2llo: 1:1:2:1: ++%*2llo: 1:0:2: ++%2llo: 01:1:3:1: ++%*2llo: 01:0:3: ++%2llo: 52:1:3:42: ++%*2llo: 52:0:3: ++%2llo: 052:1:3:5: ++%*2llo: 052:0:3: ++%2llo: 1777777777777777777777:1:3:15: ++%*2llo: 1777777777777777777777:0:3: ++%2llo: 01777777777777777777777:1:3:1: ++%*2llo: 01777777777777777777777:0:3: ++%2llo: 2000000000000000000000:1:3:16: ++%*2llo: 2000000000000000000000:0:3: ++%2llo: 02000000000000000000000:1:3:2: ++%*2llo: 02000000000000000000000:0:3: ++%2llo: 2000000000000241653661:1:3:16: ++%*2llo: 2000000000000241653661:0:3: ++%2llo: 02000000000000241653661:1:3:2: ++%*2llo: 02000000000000241653661:0:3: ++%2llo: +0:1:3:0: ++%*2llo: +0:0:3: ++%2llo: +00:1:3:0: ++%*2llo: +00:0:3: ++%2llo: +1:1:3:1: ++%*2llo: +1:0:3: ++%2llo: +01:1:3:0: ++%*2llo: +01:0:3: ++%2llo: +52:1:3:5: ++%*2llo: +52:0:3: ++%2llo: +052:1:3:0: ++%*2llo: +052:0:3: ++%2llo: +1777777777777777777777:1:3:1: ++%*2llo: +1777777777777777777777:0:3: ++%2llo: +01777777777777777777777:1:3:0: ++%*2llo: +01777777777777777777777:0:3: ++%2llo: +2000000000000000000000:1:3:2: ++%*2llo: +2000000000000000000000:0:3: ++%2llo: +02000000000000000000000:1:3:0: ++%*2llo: +02000000000000000000000:0:3: ++%2llo: +2000000000000241653661:1:3:2: ++%*2llo: +2000000000000241653661:0:3: ++%2llo: +02000000000000241653661:1:3:0: ++%*2llo: +02000000000000241653661:0:3: ++%25llo: :0:-1: ++%*25llo: :0:-1: ++%25llo: -173:1:5:-123: ++%*25llo: -173:0:5: ++%25llo: -0173:1:6:-123: ++%*25llo: -0173:0:6: ++%25llo: -1:1:3:-1: ++%*25llo: -1:0:3: ++%25llo: -01:1:4:-1: ++%*25llo: -01:0:4: ++%25llo: -0:1:3:0: ++%*25llo: -0:0:3: ++%25llo: -00:1:4:0: ++%*25llo: -00:0:4: ++%25llo: 0:1:2:0: ++%*25llo: 0:0:2: ++%25llo: 00:1:3:0: ++%*25llo: 00:0:3: ++%25llo: 1:1:2:1: ++%*25llo: 1:0:2: ++%25llo: 01:1:3:1: ++%*25llo: 01:0:3: ++%25llo: 52:1:3:42: ++%*25llo: 52:0:3: ++%25llo: 052:1:4:42: ++%*25llo: 052:0:4: ++%25llo: 1777777777777777777777:1:23:18446744073709551615: ++%*25llo: 1777777777777777777777:0:23: ++%25llo: 01777777777777777777777:1:24:18446744073709551615: ++%*25llo: 01777777777777777777777:0:24: ++%25llo: 2000000000000000000000:1:23:18446744073709551615: ++%*25llo: 2000000000000000000000:0:23: ++%25llo: 02000000000000000000000:1:24:18446744073709551615: ++%*25llo: 02000000000000000000000:0:24: ++%25llo: 2000000000000241653661:1:23:18446744073709551615: ++%*25llo: 2000000000000241653661:0:23: ++%25llo: 02000000000000241653661:1:24:18446744073709551615: ++%*25llo: 02000000000000241653661:0:24: ++%25llo: +0:1:3:0: ++%*25llo: +0:0:3: ++%25llo: +00:1:4:0: ++%*25llo: +00:0:4: ++%25llo: +1:1:3:1: ++%*25llo: +1:0:3: ++%25llo: +01:1:4:1: ++%*25llo: +01:0:4: ++%25llo: +52:1:4:42: ++%*25llo: +52:0:4: ++%25llo: +052:1:5:42: ++%*25llo: +052:0:5: ++%25llo: +1777777777777777777777:1:24:18446744073709551615: ++%*25llo: +1777777777777777777777:0:24: ++%25llo: +01777777777777777777777:1:25:18446744073709551615: ++%*25llo: +01777777777777777777777:0:25: ++%25llo: +2000000000000000000000:1:24:18446744073709551615: ++%*25llo: +2000000000000000000000:0:24: ++%25llo: +02000000000000000000000:1:25:18446744073709551615: ++%*25llo: +02000000000000000000000:0:25: ++%25llo: +2000000000000241653661:1:24:18446744073709551615: ++%*25llo: +2000000000000241653661:0:24: ++%25llo: +02000000000000241653661:1:25:18446744073709551615: ++%*25llo: +02000000000000241653661:0:25: +diff --git a/stdio-common/tst-scanf-format-ullong-u.input b/stdio-common/tst-scanf-format-ullong-u.input +new file mode 100644 +index 0000000000000000..9260e70a5ffc93b7 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ullong-u.input +@@ -0,0 +1,224 @@ ++%llu::0:-1: ++%*llu::0:-1: ++%llu:-123:1:4:18446744073709551493: ++%*llu:-123:0:4: ++%llu:-1:1:2:18446744073709551615: ++%*llu:-1:0:2: ++%llu:-0:1:2:0: ++%*llu:-0:0:2: ++%llu:0:1:1:0: ++%*llu:0:0:1: ++%llu:1:1:1:1: ++%*llu:1:0:1: ++%llu:42:1:2:42: ++%*llu:42:0:2: ++%llu:18446744073709551615:1:20:18446744073709551615: ++%*llu:18446744073709551615:0:20: ++%llu:18446744073709551616:1:20:18446744073709551615: ++%*llu:18446744073709551616:0:20: ++%llu:18446744073751975857:1:20:18446744073709551615: ++%*llu:18446744073751975857:0:20: ++%llu:+0:1:2:0: ++%*llu:+0:0:2: ++%llu:+1:1:2:1: ++%*llu:+1:0:2: ++%llu:+42:1:3:42: ++%*llu:+42:0:3: ++%llu:+18446744073709551615:1:21:18446744073709551615: ++%*llu:+18446744073709551615:0:21: ++%llu:+18446744073709551616:1:21:18446744073709551615: ++%*llu:+18446744073709551616:0:21: ++%llu:+18446744073751975857:1:21:18446744073709551615: ++%*llu:+18446744073751975857:0:21: ++%1llu::0:-1: ++%*1llu::0:-1: ++%1llu:-123:0:-1: ++%*1llu:-123:0:-1: ++%1llu:-1:0:-1: ++%*1llu:-1:0:-1: ++%1llu:-0:0:-1: ++%*1llu:-0:0:-1: ++%1llu:0:1:1:0: ++%*1llu:0:0:1: ++%1llu:1:1:1:1: ++%*1llu:1:0:1: ++%1llu:42:1:1:4: ++%*1llu:42:0:1: ++%1llu:18446744073709551615:1:1:1: ++%*1llu:18446744073709551615:0:1: ++%1llu:18446744073709551616:1:1:1: ++%*1llu:18446744073709551616:0:1: ++%1llu:18446744073751975857:1:1:1: ++%*1llu:18446744073751975857:0:1: ++%1llu:+0:0:-1: ++%*1llu:+0:0:-1: ++%1llu:+1:0:-1: ++%*1llu:+1:0:-1: ++%1llu:+42:0:-1: ++%*1llu:+42:0:-1: ++%1llu:+18446744073709551615:0:-1: ++%*1llu:+18446744073709551615:0:-1: ++%1llu:+18446744073709551616:0:-1: ++%*1llu:+18446744073709551616:0:-1: ++%1llu:+18446744073751975857:0:-1: ++%*1llu:+18446744073751975857:0:-1: ++%2llu::0:-1: ++%*2llu::0:-1: ++%2llu:-123:1:2:18446744073709551615: ++%*2llu:-123:0:2: ++%2llu:-1:1:2:18446744073709551615: ++%*2llu:-1:0:2: ++%2llu:-0:1:2:0: ++%*2llu:-0:0:2: ++%2llu:0:1:1:0: ++%*2llu:0:0:1: ++%2llu:1:1:1:1: ++%*2llu:1:0:1: ++%2llu:42:1:2:42: ++%*2llu:42:0:2: ++%2llu:18446744073709551615:1:2:18: ++%*2llu:18446744073709551615:0:2: ++%2llu:18446744073709551616:1:2:18: ++%*2llu:18446744073709551616:0:2: ++%2llu:18446744073751975857:1:2:18: ++%*2llu:18446744073751975857:0:2: ++%2llu:+0:1:2:0: ++%*2llu:+0:0:2: ++%2llu:+1:1:2:1: ++%*2llu:+1:0:2: ++%2llu:+42:1:2:4: ++%*2llu:+42:0:2: ++%2llu:+18446744073709551615:1:2:1: ++%*2llu:+18446744073709551615:0:2: ++%2llu:+18446744073709551616:1:2:1: ++%*2llu:+18446744073709551616:0:2: ++%2llu:+18446744073751975857:1:2:1: ++%*2llu:+18446744073751975857:0:2: ++%15llu::0:-1: ++%*15llu::0:-1: ++%15llu:-123:1:4:18446744073709551493: ++%*15llu:-123:0:4: ++%15llu:-1:1:2:18446744073709551615: ++%*15llu:-1:0:2: ++%15llu:-0:1:2:0: ++%*15llu:-0:0:2: ++%15llu:0:1:1:0: ++%*15llu:0:0:1: ++%15llu:1:1:1:1: ++%*15llu:1:0:1: ++%15llu:42:1:2:42: ++%*15llu:42:0:2: ++%15llu:18446744073709551615:1:15:184467440737095: ++%*15llu:18446744073709551615:0:15: ++%15llu:18446744073709551616:1:15:184467440737095: ++%*15llu:18446744073709551616:0:15: ++%15llu:18446744073751975857:1:15:184467440737519: ++%*15llu:18446744073751975857:0:15: ++%15llu:+0:1:2:0: ++%*15llu:+0:0:2: ++%15llu:+1:1:2:1: ++%*15llu:+1:0:2: ++%15llu:+42:1:3:42: ++%*15llu:+42:0:3: ++%15llu:+18446744073709551615:1:15:18446744073709: ++%*15llu:+18446744073709551615:0:15: ++%15llu:+18446744073709551616:1:15:18446744073709: ++%*15llu:+18446744073709551616:0:15: ++%15llu:+18446744073751975857:1:15:18446744073751: ++%*15llu:+18446744073751975857:0:15: ++%25llu::0:-1: ++%*25llu::0:-1: ++%25llu:-123:1:4:18446744073709551493: ++%*25llu:-123:0:4: ++%25llu:-1:1:2:18446744073709551615: ++%*25llu:-1:0:2: ++%25llu:-0:1:2:0: ++%*25llu:-0:0:2: ++%25llu:0:1:1:0: ++%*25llu:0:0:1: ++%25llu:1:1:1:1: ++%*25llu:1:0:1: ++%25llu:42:1:2:42: ++%*25llu:42:0:2: ++%25llu:18446744073709551615:1:20:18446744073709551615: ++%*25llu:18446744073709551615:0:20: ++%25llu:18446744073709551616:1:20:18446744073709551615: ++%*25llu:18446744073709551616:0:20: ++%25llu:18446744073751975857:1:20:18446744073709551615: ++%*25llu:18446744073751975857:0:20: ++%25llu:+0:1:2:0: ++%*25llu:+0:0:2: ++%25llu:+1:1:2:1: ++%*25llu:+1:0:2: ++%25llu:+42:1:3:42: ++%*25llu:+42:0:3: ++%25llu:+18446744073709551615:1:21:18446744073709551615: ++%*25llu:+18446744073709551615:0:21: ++%25llu:+18446744073709551616:1:21:18446744073709551615: ++%*25llu:+18446744073709551616:0:21: ++%25llu:+18446744073751975857:1:21:18446744073709551615: ++%*25llu:+18446744073751975857:0:21: ++%2llu: :0:-1: ++%*2llu: :0:-1: ++%2llu: -123:1:3:18446744073709551615: ++%*2llu: -123:0:3: ++%2llu: -1:1:3:18446744073709551615: ++%*2llu: -1:0:3: ++%2llu: -0:1:3:0: ++%*2llu: -0:0:3: ++%2llu: 0:1:2:0: ++%*2llu: 0:0:2: ++%2llu: 1:1:2:1: ++%*2llu: 1:0:2: ++%2llu: 42:1:3:42: ++%*2llu: 42:0:3: ++%2llu: 18446744073709551615:1:3:18: ++%*2llu: 18446744073709551615:0:3: ++%2llu: 18446744073709551616:1:3:18: ++%*2llu: 18446744073709551616:0:3: ++%2llu: 18446744073751975857:1:3:18: ++%*2llu: 18446744073751975857:0:3: ++%2llu: +0:1:3:0: ++%*2llu: +0:0:3: ++%2llu: +1:1:3:1: ++%*2llu: +1:0:3: ++%2llu: +42:1:3:4: ++%*2llu: +42:0:3: ++%2llu: +18446744073709551615:1:3:1: ++%*2llu: +18446744073709551615:0:3: ++%2llu: +18446744073709551616:1:3:1: ++%*2llu: +18446744073709551616:0:3: ++%2llu: +18446744073751975857:1:3:1: ++%*2llu: +18446744073751975857:0:3: ++%25llu: :0:-1: ++%*25llu: :0:-1: ++%25llu: -123:1:5:18446744073709551493: ++%*25llu: -123:0:5: ++%25llu: -1:1:3:18446744073709551615: ++%*25llu: -1:0:3: ++%25llu: -0:1:3:0: ++%*25llu: -0:0:3: ++%25llu: 0:1:2:0: ++%*25llu: 0:0:2: ++%25llu: 1:1:2:1: ++%*25llu: 1:0:2: ++%25llu: 42:1:3:42: ++%*25llu: 42:0:3: ++%25llu: 18446744073709551615:1:21:18446744073709551615: ++%*25llu: 18446744073709551615:0:21: ++%25llu: 18446744073709551616:1:21:18446744073709551615: ++%*25llu: 18446744073709551616:0:21: ++%25llu: 18446744073751975857:1:21:18446744073709551615: ++%*25llu: 18446744073751975857:0:21: ++%25llu: +0:1:3:0: ++%*25llu: +0:0:3: ++%25llu: +1:1:3:1: ++%*25llu: +1:0:3: ++%25llu: +42:1:4:42: ++%*25llu: +42:0:4: ++%25llu: +18446744073709551615:1:22:18446744073709551615: ++%*25llu: +18446744073709551615:0:22: ++%25llu: +18446744073709551616:1:22:18446744073709551615: ++%*25llu: +18446744073709551616:0:22: ++%25llu: +18446744073751975857:1:22:18446744073709551615: ++%*25llu: +18446744073751975857:0:22: +diff --git a/stdio-common/tst-scanf-format-ullong-x.input b/stdio-common/tst-scanf-format-ullong-x.input +new file mode 100644 +index 0000000000000000..5376bb858aa1532d +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ullong-x.input +@@ -0,0 +1,742 @@ ++%llx::0:-1: ++%*llx::0:-1: ++%llx:-7b:1:3:18446744073709551493: ++%*llx:-7b:0:3: ++%llx:-7B:1:3:18446744073709551493: ++%*llx:-7B:0:3: ++%llx:-0X7b:1:5:18446744073709551493: ++%*llx:-0X7b:0:5: ++%llx:-0x7B:1:5:18446744073709551493: ++%*llx:-0x7B:0:5: ++%llx:-1:1:2:18446744073709551615: ++%*llx:-1:0:2: ++%llx:-0X1:1:4:18446744073709551615: ++%*llx:-0X1:0:4: ++%llx:-0x1:1:4:18446744073709551615: ++%*llx:-0x1:0:4: ++%llx:-0:1:2:0: ++%*llx:-0:0:2: ++%llx:-0X0:1:4:0: ++%*llx:-0X0:0:4: ++%llx:-0x0:1:4:0: ++%*llx:-0x0:0:4: ++%llx:0:1:1:0: ++%*llx:0:0:1: ++%llx:0X0:1:3:0: ++%*llx:0X0:0:3: ++%llx:0x0:1:3:0: ++%*llx:0x0:0:3: ++%llx:1:1:1:1: ++%*llx:1:0:1: ++%llx:0X1:1:3:1: ++%*llx:0X1:0:3: ++%llx:0x1:1:3:1: ++%*llx:0x1:0:3: ++%llx:2a:1:2:42: ++%*llx:2a:0:2: ++%llx:2A:1:2:42: ++%*llx:2A:0:2: ++%llx:0X2a:1:4:42: ++%*llx:0X2a:0:4: ++%llx:0x2A:1:4:42: ++%*llx:0x2A:0:4: ++%llx:ffffffffffffffff:1:16:18446744073709551615: ++%*llx:ffffffffffffffff:0:16: ++%llx:FFFFFFFFFFFFFFFF:1:16:18446744073709551615: ++%*llx:FFFFFFFFFFFFFFFF:0:16: ++%llx:0Xffffffffffffffff:1:18:18446744073709551615: ++%*llx:0Xffffffffffffffff:0:18: ++%llx:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*llx:0xFFFFFFFFFFFFFFFF:0:18: ++%llx:10000000000000000:1:17:18446744073709551615: ++%*llx:10000000000000000:0:17: ++%llx:0X10000000000000000:1:19:18446744073709551615: ++%*llx:0X10000000000000000:0:19: ++%llx:0x10000000000000000:1:19:18446744073709551615: ++%*llx:0x10000000000000000:0:19: ++%llx:100000000028757b1:1:17:18446744073709551615: ++%*llx:100000000028757b1:0:17: ++%llx:100000000028757B1:1:17:18446744073709551615: ++%*llx:100000000028757B1:0:17: ++%llx:0X100000000028757b1:1:19:18446744073709551615: ++%*llx:0X100000000028757b1:0:19: ++%llx:0x100000000028757B1:1:19:18446744073709551615: ++%*llx:0x100000000028757B1:0:19: ++%llx:+0:1:2:0: ++%*llx:+0:0:2: ++%llx:+0X0:1:4:0: ++%*llx:+0X0:0:4: ++%llx:+0x0:1:4:0: ++%*llx:+0x0:0:4: ++%llx:+1:1:2:1: ++%*llx:+1:0:2: ++%llx:+0X1:1:4:1: ++%*llx:+0X1:0:4: ++%llx:+0x1:1:4:1: ++%*llx:+0x1:0:4: ++%llx:+2a:1:3:42: ++%*llx:+2a:0:3: ++%llx:+2A:1:3:42: ++%*llx:+2A:0:3: ++%llx:+0X2a:1:5:42: ++%*llx:+0X2a:0:5: ++%llx:+0x2A:1:5:42: ++%*llx:+0x2A:0:5: ++%llx:+ffffffffffffffff:1:17:18446744073709551615: ++%*llx:+ffffffffffffffff:0:17: ++%llx:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*llx:+FFFFFFFFFFFFFFFF:0:17: ++%llx:+0Xffffffffffffffff:1:19:18446744073709551615: ++%*llx:+0Xffffffffffffffff:0:19: ++%llx:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*llx:+0xFFFFFFFFFFFFFFFF:0:19: ++%llx:+10000000000000000:1:18:18446744073709551615: ++%*llx:+10000000000000000:0:18: ++%llx:+0X10000000000000000:1:20:18446744073709551615: ++%*llx:+0X10000000000000000:0:20: ++%llx:+0x10000000000000000:1:20:18446744073709551615: ++%*llx:+0x10000000000000000:0:20: ++%llx:+100000000028757b1:1:18:18446744073709551615: ++%*llx:+100000000028757b1:0:18: ++%llx:+100000000028757B1:1:18:18446744073709551615: ++%*llx:+100000000028757B1:0:18: ++%llx:+0X100000000028757b1:1:20:18446744073709551615: ++%*llx:+0X100000000028757b1:0:20: ++%llx:+0x100000000028757B1:1:20:18446744073709551615: ++%*llx:+0x100000000028757B1:0:20: ++%1llx::0:-1: ++%*1llx::0:-1: ++%1llx:-7b:0:-1: ++%*1llx:-7b:0:-1: ++%1llx:-7B:0:-1: ++%*1llx:-7B:0:-1: ++%1llx:-0X7b:0:-1: ++%*1llx:-0X7b:0:-1: ++%1llx:-0x7B:0:-1: ++%*1llx:-0x7B:0:-1: ++%1llx:-1:0:-1: ++%*1llx:-1:0:-1: ++%1llx:-0X1:0:-1: ++%*1llx:-0X1:0:-1: ++%1llx:-0x1:0:-1: ++%*1llx:-0x1:0:-1: ++%1llx:-0:0:-1: ++%*1llx:-0:0:-1: ++%1llx:-0X0:0:-1: ++%*1llx:-0X0:0:-1: ++%1llx:-0x0:0:-1: ++%*1llx:-0x0:0:-1: ++%1llx:0:1:1:0: ++%*1llx:0:0:1: ++%1llx:0X0:1:1:0: ++%*1llx:0X0:0:1: ++%1llx:0x0:1:1:0: ++%*1llx:0x0:0:1: ++%1llx:1:1:1:1: ++%*1llx:1:0:1: ++%1llx:0X1:1:1:0: ++%*1llx:0X1:0:1: ++%1llx:0x1:1:1:0: ++%*1llx:0x1:0:1: ++%1llx:2a:1:1:2: ++%*1llx:2a:0:1: ++%1llx:2A:1:1:2: ++%*1llx:2A:0:1: ++%1llx:0X2a:1:1:0: ++%*1llx:0X2a:0:1: ++%1llx:0x2A:1:1:0: ++%*1llx:0x2A:0:1: ++%1llx:ffffffffffffffff:1:1:15: ++%*1llx:ffffffffffffffff:0:1: ++%1llx:FFFFFFFFFFFFFFFF:1:1:15: ++%*1llx:FFFFFFFFFFFFFFFF:0:1: ++%1llx:0Xffffffffffffffff:1:1:0: ++%*1llx:0Xffffffffffffffff:0:1: ++%1llx:0xFFFFFFFFFFFFFFFF:1:1:0: ++%*1llx:0xFFFFFFFFFFFFFFFF:0:1: ++%1llx:10000000000000000:1:1:1: ++%*1llx:10000000000000000:0:1: ++%1llx:0X10000000000000000:1:1:0: ++%*1llx:0X10000000000000000:0:1: ++%1llx:0x10000000000000000:1:1:0: ++%*1llx:0x10000000000000000:0:1: ++%1llx:100000000028757b1:1:1:1: ++%*1llx:100000000028757b1:0:1: ++%1llx:100000000028757B1:1:1:1: ++%*1llx:100000000028757B1:0:1: ++%1llx:0X100000000028757b1:1:1:0: ++%*1llx:0X100000000028757b1:0:1: ++%1llx:0x100000000028757B1:1:1:0: ++%*1llx:0x100000000028757B1:0:1: ++%1llx:+0:0:-1: ++%*1llx:+0:0:-1: ++%1llx:+0X0:0:-1: ++%*1llx:+0X0:0:-1: ++%1llx:+0x0:0:-1: ++%*1llx:+0x0:0:-1: ++%1llx:+1:0:-1: ++%*1llx:+1:0:-1: ++%1llx:+0X1:0:-1: ++%*1llx:+0X1:0:-1: ++%1llx:+0x1:0:-1: ++%*1llx:+0x1:0:-1: ++%1llx:+2a:0:-1: ++%*1llx:+2a:0:-1: ++%1llx:+2A:0:-1: ++%*1llx:+2A:0:-1: ++%1llx:+0X2a:0:-1: ++%*1llx:+0X2a:0:-1: ++%1llx:+0x2A:0:-1: ++%*1llx:+0x2A:0:-1: ++%1llx:+ffffffffffffffff:0:-1: ++%*1llx:+ffffffffffffffff:0:-1: ++%1llx:+FFFFFFFFFFFFFFFF:0:-1: ++%*1llx:+FFFFFFFFFFFFFFFF:0:-1: ++%1llx:+0Xffffffffffffffff:0:-1: ++%*1llx:+0Xffffffffffffffff:0:-1: ++%1llx:+0xFFFFFFFFFFFFFFFF:0:-1: ++%*1llx:+0xFFFFFFFFFFFFFFFF:0:-1: ++%1llx:+10000000000000000:0:-1: ++%*1llx:+10000000000000000:0:-1: ++%1llx:+0X10000000000000000:0:-1: ++%*1llx:+0X10000000000000000:0:-1: ++%1llx:+0x10000000000000000:0:-1: ++%*1llx:+0x10000000000000000:0:-1: ++%1llx:+100000000028757b1:0:-1: ++%*1llx:+100000000028757b1:0:-1: ++%1llx:+100000000028757B1:0:-1: ++%*1llx:+100000000028757B1:0:-1: ++%1llx:+0X100000000028757b1:0:-1: ++%*1llx:+0X100000000028757b1:0:-1: ++%1llx:+0x100000000028757B1:0:-1: ++%*1llx:+0x100000000028757B1:0:-1: ++%2llx::0:-1: ++%*2llx::0:-1: ++%2llx:-7b:1:2:18446744073709551609: ++%*2llx:-7b:0:2: ++%2llx:-7B:1:2:18446744073709551609: ++%*2llx:-7B:0:2: ++%2llx:-0X7b:1:2:0: ++%*2llx:-0X7b:0:2: ++%2llx:-0x7B:1:2:0: ++%*2llx:-0x7B:0:2: ++%2llx:-1:1:2:18446744073709551615: ++%*2llx:-1:0:2: ++%2llx:-0X1:1:2:0: ++%*2llx:-0X1:0:2: ++%2llx:-0x1:1:2:0: ++%*2llx:-0x1:0:2: ++%2llx:-0:1:2:0: ++%*2llx:-0:0:2: ++%2llx:-0X0:1:2:0: ++%*2llx:-0X0:0:2: ++%2llx:-0x0:1:2:0: ++%*2llx:-0x0:0:2: ++%2llx:0:1:1:0: ++%*2llx:0:0:1: ++# BZ12701 %2llx:0X0:0:-1: ++# BZ12701 %*2llx:0X0:0:-1: ++# BZ12701 %2llx:0x0:0:-1: ++# BZ12701 %*2llx:0x0:0:-1: ++%2llx:1:1:1:1: ++%*2llx:1:0:1: ++# BZ12701 %2llx:0X1:0:-1: ++# BZ12701 %*2llx:0X1:0:-1: ++# BZ12701 %2llx:0x1:0:-1: ++# BZ12701 %*2llx:0x1:0:-1: ++%2llx:2a:1:2:42: ++%*2llx:2a:0:2: ++%2llx:2A:1:2:42: ++%*2llx:2A:0:2: ++# BZ12701 %2llx:0X2a:0:-1: ++# BZ12701 %*2llx:0X2a:0:-1: ++# BZ12701 %2llx:0x2A:0:-1: ++# BZ12701 %*2llx:0x2A:0:-1: ++%2llx:ffffffffffffffff:1:2:255: ++%*2llx:ffffffffffffffff:0:2: ++%2llx:FFFFFFFFFFFFFFFF:1:2:255: ++%*2llx:FFFFFFFFFFFFFFFF:0:2: ++# BZ12701 %2llx:0Xffffffffffffffff:0:-1: ++# BZ12701 %*2llx:0Xffffffffffffffff:0:-1: ++# BZ12701 %2llx:0xFFFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2llx:0xFFFFFFFFFFFFFFFF:0:-1: ++%2llx:10000000000000000:1:2:16: ++%*2llx:10000000000000000:0:2: ++# BZ12701 %2llx:0X10000000000000000:0:-1: ++# BZ12701 %*2llx:0X10000000000000000:0:-1: ++# BZ12701 %2llx:0x10000000000000000:0:-1: ++# BZ12701 %*2llx:0x10000000000000000:0:-1: ++%2llx:100000000028757b1:1:2:16: ++%*2llx:100000000028757b1:0:2: ++%2llx:100000000028757B1:1:2:16: ++%*2llx:100000000028757B1:0:2: ++# BZ12701 %2llx:0X100000000028757b1:0:-1: ++# BZ12701 %*2llx:0X100000000028757b1:0:-1: ++# BZ12701 %2llx:0x100000000028757B1:0:-1: ++# BZ12701 %*2llx:0x100000000028757B1:0:-1: ++%2llx:+0:1:2:0: ++%*2llx:+0:0:2: ++%2llx:+0X0:1:2:0: ++%*2llx:+0X0:0:2: ++%2llx:+0x0:1:2:0: ++%*2llx:+0x0:0:2: ++%2llx:+1:1:2:1: ++%*2llx:+1:0:2: ++%2llx:+0X1:1:2:0: ++%*2llx:+0X1:0:2: ++%2llx:+0x1:1:2:0: ++%*2llx:+0x1:0:2: ++%2llx:+2a:1:2:2: ++%*2llx:+2a:0:2: ++%2llx:+2A:1:2:2: ++%*2llx:+2A:0:2: ++%2llx:+0X2a:1:2:0: ++%*2llx:+0X2a:0:2: ++%2llx:+0x2A:1:2:0: ++%*2llx:+0x2A:0:2: ++%2llx:+ffffffffffffffff:1:2:15: ++%*2llx:+ffffffffffffffff:0:2: ++%2llx:+FFFFFFFFFFFFFFFF:1:2:15: ++%*2llx:+FFFFFFFFFFFFFFFF:0:2: ++%2llx:+0Xffffffffffffffff:1:2:0: ++%*2llx:+0Xffffffffffffffff:0:2: ++%2llx:+0xFFFFFFFFFFFFFFFF:1:2:0: ++%*2llx:+0xFFFFFFFFFFFFFFFF:0:2: ++%2llx:+10000000000000000:1:2:1: ++%*2llx:+10000000000000000:0:2: ++%2llx:+0X10000000000000000:1:2:0: ++%*2llx:+0X10000000000000000:0:2: ++%2llx:+0x10000000000000000:1:2:0: ++%*2llx:+0x10000000000000000:0:2: ++%2llx:+100000000028757b1:1:2:1: ++%*2llx:+100000000028757b1:0:2: ++%2llx:+100000000028757B1:1:2:1: ++%*2llx:+100000000028757B1:0:2: ++%2llx:+0X100000000028757b1:1:2:0: ++%*2llx:+0X100000000028757b1:0:2: ++%2llx:+0x100000000028757B1:1:2:0: ++%*2llx:+0x100000000028757B1:0:2: ++%15llx::0:-1: ++%*15llx::0:-1: ++%15llx:-7b:1:3:18446744073709551493: ++%*15llx:-7b:0:3: ++%15llx:-7B:1:3:18446744073709551493: ++%*15llx:-7B:0:3: ++%15llx:-0X7b:1:5:18446744073709551493: ++%*15llx:-0X7b:0:5: ++%15llx:-0x7B:1:5:18446744073709551493: ++%*15llx:-0x7B:0:5: ++%15llx:-1:1:2:18446744073709551615: ++%*15llx:-1:0:2: ++%15llx:-0X1:1:4:18446744073709551615: ++%*15llx:-0X1:0:4: ++%15llx:-0x1:1:4:18446744073709551615: ++%*15llx:-0x1:0:4: ++%15llx:-0:1:2:0: ++%*15llx:-0:0:2: ++%15llx:-0X0:1:4:0: ++%*15llx:-0X0:0:4: ++%15llx:-0x0:1:4:0: ++%*15llx:-0x0:0:4: ++%15llx:0:1:1:0: ++%*15llx:0:0:1: ++%15llx:0X0:1:3:0: ++%*15llx:0X0:0:3: ++%15llx:0x0:1:3:0: ++%*15llx:0x0:0:3: ++%15llx:1:1:1:1: ++%*15llx:1:0:1: ++%15llx:0X1:1:3:1: ++%*15llx:0X1:0:3: ++%15llx:0x1:1:3:1: ++%*15llx:0x1:0:3: ++%15llx:2a:1:2:42: ++%*15llx:2a:0:2: ++%15llx:2A:1:2:42: ++%*15llx:2A:0:2: ++%15llx:0X2a:1:4:42: ++%*15llx:0X2a:0:4: ++%15llx:0x2A:1:4:42: ++%*15llx:0x2A:0:4: ++%15llx:ffffffffffffffff:1:15:1152921504606846975: ++%*15llx:ffffffffffffffff:0:15: ++%15llx:FFFFFFFFFFFFFFFF:1:15:1152921504606846975: ++%*15llx:FFFFFFFFFFFFFFFF:0:15: ++%15llx:0Xffffffffffffffff:1:15:4503599627370495: ++%*15llx:0Xffffffffffffffff:0:15: ++%15llx:0xFFFFFFFFFFFFFFFF:1:15:4503599627370495: ++%*15llx:0xFFFFFFFFFFFFFFFF:0:15: ++%15llx:10000000000000000:1:15:72057594037927936: ++%*15llx:10000000000000000:0:15: ++%15llx:0X10000000000000000:1:15:281474976710656: ++%*15llx:0X10000000000000000:0:15: ++%15llx:0x10000000000000000:1:15:281474976710656: ++%*15llx:0x10000000000000000:0:15: ++%15llx:100000000028757b1:1:15:72057594038093655: ++%*15llx:100000000028757b1:0:15: ++%15llx:100000000028757B1:1:15:72057594038093655: ++%*15llx:100000000028757B1:0:15: ++%15llx:0X100000000028757b1:1:15:281474976711303: ++%*15llx:0X100000000028757b1:0:15: ++%15llx:0x100000000028757B1:1:15:281474976711303: ++%*15llx:0x100000000028757B1:0:15: ++%15llx:+0:1:2:0: ++%*15llx:+0:0:2: ++%15llx:+0X0:1:4:0: ++%*15llx:+0X0:0:4: ++%15llx:+0x0:1:4:0: ++%*15llx:+0x0:0:4: ++%15llx:+1:1:2:1: ++%*15llx:+1:0:2: ++%15llx:+0X1:1:4:1: ++%*15llx:+0X1:0:4: ++%15llx:+0x1:1:4:1: ++%*15llx:+0x1:0:4: ++%15llx:+2a:1:3:42: ++%*15llx:+2a:0:3: ++%15llx:+2A:1:3:42: ++%*15llx:+2A:0:3: ++%15llx:+0X2a:1:5:42: ++%*15llx:+0X2a:0:5: ++%15llx:+0x2A:1:5:42: ++%*15llx:+0x2A:0:5: ++%15llx:+ffffffffffffffff:1:15:72057594037927935: ++%*15llx:+ffffffffffffffff:0:15: ++%15llx:+FFFFFFFFFFFFFFFF:1:15:72057594037927935: ++%*15llx:+FFFFFFFFFFFFFFFF:0:15: ++%15llx:+0Xffffffffffffffff:1:15:281474976710655: ++%*15llx:+0Xffffffffffffffff:0:15: ++%15llx:+0xFFFFFFFFFFFFFFFF:1:15:281474976710655: ++%*15llx:+0xFFFFFFFFFFFFFFFF:0:15: ++%15llx:+10000000000000000:1:15:4503599627370496: ++%*15llx:+10000000000000000:0:15: ++%15llx:+0X10000000000000000:1:15:17592186044416: ++%*15llx:+0X10000000000000000:0:15: ++%15llx:+0x10000000000000000:1:15:17592186044416: ++%*15llx:+0x10000000000000000:0:15: ++%15llx:+100000000028757b1:1:15:4503599627380853: ++%*15llx:+100000000028757b1:0:15: ++%15llx:+100000000028757B1:1:15:4503599627380853: ++%*15llx:+100000000028757B1:0:15: ++%15llx:+0X100000000028757b1:1:15:17592186044456: ++%*15llx:+0X100000000028757b1:0:15: ++%15llx:+0x100000000028757B1:1:15:17592186044456: ++%*15llx:+0x100000000028757B1:0:15: ++%25llx::0:-1: ++%*25llx::0:-1: ++%25llx:-7b:1:3:18446744073709551493: ++%*25llx:-7b:0:3: ++%25llx:-7B:1:3:18446744073709551493: ++%*25llx:-7B:0:3: ++%25llx:-0X7b:1:5:18446744073709551493: ++%*25llx:-0X7b:0:5: ++%25llx:-0x7B:1:5:18446744073709551493: ++%*25llx:-0x7B:0:5: ++%25llx:-1:1:2:18446744073709551615: ++%*25llx:-1:0:2: ++%25llx:-0X1:1:4:18446744073709551615: ++%*25llx:-0X1:0:4: ++%25llx:-0x1:1:4:18446744073709551615: ++%*25llx:-0x1:0:4: ++%25llx:-0:1:2:0: ++%*25llx:-0:0:2: ++%25llx:-0X0:1:4:0: ++%*25llx:-0X0:0:4: ++%25llx:-0x0:1:4:0: ++%*25llx:-0x0:0:4: ++%25llx:0:1:1:0: ++%*25llx:0:0:1: ++%25llx:0X0:1:3:0: ++%*25llx:0X0:0:3: ++%25llx:0x0:1:3:0: ++%*25llx:0x0:0:3: ++%25llx:1:1:1:1: ++%*25llx:1:0:1: ++%25llx:0X1:1:3:1: ++%*25llx:0X1:0:3: ++%25llx:0x1:1:3:1: ++%*25llx:0x1:0:3: ++%25llx:2a:1:2:42: ++%*25llx:2a:0:2: ++%25llx:2A:1:2:42: ++%*25llx:2A:0:2: ++%25llx:0X2a:1:4:42: ++%*25llx:0X2a:0:4: ++%25llx:0x2A:1:4:42: ++%*25llx:0x2A:0:4: ++%25llx:ffffffffffffffff:1:16:18446744073709551615: ++%*25llx:ffffffffffffffff:0:16: ++%25llx:FFFFFFFFFFFFFFFF:1:16:18446744073709551615: ++%*25llx:FFFFFFFFFFFFFFFF:0:16: ++%25llx:0Xffffffffffffffff:1:18:18446744073709551615: ++%*25llx:0Xffffffffffffffff:0:18: ++%25llx:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*25llx:0xFFFFFFFFFFFFFFFF:0:18: ++%25llx:10000000000000000:1:17:18446744073709551615: ++%*25llx:10000000000000000:0:17: ++%25llx:0X10000000000000000:1:19:18446744073709551615: ++%*25llx:0X10000000000000000:0:19: ++%25llx:0x10000000000000000:1:19:18446744073709551615: ++%*25llx:0x10000000000000000:0:19: ++%25llx:100000000028757b1:1:17:18446744073709551615: ++%*25llx:100000000028757b1:0:17: ++%25llx:100000000028757B1:1:17:18446744073709551615: ++%*25llx:100000000028757B1:0:17: ++%25llx:0X100000000028757b1:1:19:18446744073709551615: ++%*25llx:0X100000000028757b1:0:19: ++%25llx:0x100000000028757B1:1:19:18446744073709551615: ++%*25llx:0x100000000028757B1:0:19: ++%25llx:+0:1:2:0: ++%*25llx:+0:0:2: ++%25llx:+0X0:1:4:0: ++%*25llx:+0X0:0:4: ++%25llx:+0x0:1:4:0: ++%*25llx:+0x0:0:4: ++%25llx:+1:1:2:1: ++%*25llx:+1:0:2: ++%25llx:+0X1:1:4:1: ++%*25llx:+0X1:0:4: ++%25llx:+0x1:1:4:1: ++%*25llx:+0x1:0:4: ++%25llx:+2a:1:3:42: ++%*25llx:+2a:0:3: ++%25llx:+2A:1:3:42: ++%*25llx:+2A:0:3: ++%25llx:+0X2a:1:5:42: ++%*25llx:+0X2a:0:5: ++%25llx:+0x2A:1:5:42: ++%*25llx:+0x2A:0:5: ++%25llx:+ffffffffffffffff:1:17:18446744073709551615: ++%*25llx:+ffffffffffffffff:0:17: ++%25llx:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*25llx:+FFFFFFFFFFFFFFFF:0:17: ++%25llx:+0Xffffffffffffffff:1:19:18446744073709551615: ++%*25llx:+0Xffffffffffffffff:0:19: ++%25llx:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*25llx:+0xFFFFFFFFFFFFFFFF:0:19: ++%25llx:+10000000000000000:1:18:18446744073709551615: ++%*25llx:+10000000000000000:0:18: ++%25llx:+0X10000000000000000:1:20:18446744073709551615: ++%*25llx:+0X10000000000000000:0:20: ++%25llx:+0x10000000000000000:1:20:18446744073709551615: ++%*25llx:+0x10000000000000000:0:20: ++%25llx:+100000000028757b1:1:18:18446744073709551615: ++%*25llx:+100000000028757b1:0:18: ++%25llx:+100000000028757B1:1:18:18446744073709551615: ++%*25llx:+100000000028757B1:0:18: ++%25llx:+0X100000000028757b1:1:20:18446744073709551615: ++%*25llx:+0X100000000028757b1:0:20: ++%25llx:+0x100000000028757B1:1:20:18446744073709551615: ++%*25llx:+0x100000000028757B1:0:20: ++%2llx: :0:-1: ++%*2llx: :0:-1: ++%2llx: -7b:1:3:18446744073709551609: ++%*2llx: -7b:0:3: ++%2llx: -7B:1:3:18446744073709551609: ++%*2llx: -7B:0:3: ++%2llx: -0X7b:1:3:0: ++%*2llx: -0X7b:0:3: ++%2llx: -0x7B:1:3:0: ++%*2llx: -0x7B:0:3: ++%2llx: -1:1:3:18446744073709551615: ++%*2llx: -1:0:3: ++%2llx: -0X1:1:3:0: ++%*2llx: -0X1:0:3: ++%2llx: -0x1:1:3:0: ++%*2llx: -0x1:0:3: ++%2llx: -0:1:3:0: ++%*2llx: -0:0:3: ++%2llx: -0X0:1:3:0: ++%*2llx: -0X0:0:3: ++%2llx: -0x0:1:3:0: ++%*2llx: -0x0:0:3: ++%2llx: 0:1:2:0: ++%*2llx: 0:0:2: ++# BZ12701 %2llx: 0X0:0:-1: ++# BZ12701 %*2llx: 0X0:0:-1: ++# BZ12701 %2llx: 0x0:0:-1: ++# BZ12701 %*2llx: 0x0:0:-1: ++%2llx: 1:1:2:1: ++%*2llx: 1:0:2: ++# BZ12701 %2llx: 0X1:0:-1: ++# BZ12701 %*2llx: 0X1:0:-1: ++# BZ12701 %2llx: 0x1:0:-1: ++# BZ12701 %*2llx: 0x1:0:-1: ++%2llx: 2a:1:3:42: ++%*2llx: 2a:0:3: ++%2llx: 2A:1:3:42: ++%*2llx: 2A:0:3: ++# BZ12701 %2llx: 0X2a:0:-1: ++# BZ12701 %*2llx: 0X2a:0:-1: ++# BZ12701 %2llx: 0x2A:0:-1: ++# BZ12701 %*2llx: 0x2A:0:-1: ++%2llx: ffffffffffffffff:1:3:255: ++%*2llx: ffffffffffffffff:0:3: ++%2llx: FFFFFFFFFFFFFFFF:1:3:255: ++%*2llx: FFFFFFFFFFFFFFFF:0:3: ++# BZ12701 %2llx: 0Xffffffffffffffff:0:-1: ++# BZ12701 %*2llx: 0Xffffffffffffffff:0:-1: ++# BZ12701 %2llx: 0xFFFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2llx: 0xFFFFFFFFFFFFFFFF:0:-1: ++%2llx: 10000000000000000:1:3:16: ++%*2llx: 10000000000000000:0:3: ++# BZ12701 %2llx: 0X10000000000000000:0:-1: ++# BZ12701 %*2llx: 0X10000000000000000:0:-1: ++# BZ12701 %2llx: 0x10000000000000000:0:-1: ++# BZ12701 %*2llx: 0x10000000000000000:0:-1: ++%2llx: 100000000028757b1:1:3:16: ++%*2llx: 100000000028757b1:0:3: ++%2llx: 100000000028757B1:1:3:16: ++%*2llx: 100000000028757B1:0:3: ++# BZ12701 %2llx: 0X100000000028757b1:0:-1: ++# BZ12701 %*2llx: 0X100000000028757b1:0:-1: ++# BZ12701 %2llx: 0x100000000028757B1:0:-1: ++# BZ12701 %*2llx: 0x100000000028757B1:0:-1: ++%2llx: +0:1:3:0: ++%*2llx: +0:0:3: ++%2llx: +0X0:1:3:0: ++%*2llx: +0X0:0:3: ++%2llx: +0x0:1:3:0: ++%*2llx: +0x0:0:3: ++%2llx: +1:1:3:1: ++%*2llx: +1:0:3: ++%2llx: +0X1:1:3:0: ++%*2llx: +0X1:0:3: ++%2llx: +0x1:1:3:0: ++%*2llx: +0x1:0:3: ++%2llx: +2a:1:3:2: ++%*2llx: +2a:0:3: ++%2llx: +2A:1:3:2: ++%*2llx: +2A:0:3: ++%2llx: +0X2a:1:3:0: ++%*2llx: +0X2a:0:3: ++%2llx: +0x2A:1:3:0: ++%*2llx: +0x2A:0:3: ++%2llx: +ffffffffffffffff:1:3:15: ++%*2llx: +ffffffffffffffff:0:3: ++%2llx: +FFFFFFFFFFFFFFFF:1:3:15: ++%*2llx: +FFFFFFFFFFFFFFFF:0:3: ++%2llx: +0Xffffffffffffffff:1:3:0: ++%*2llx: +0Xffffffffffffffff:0:3: ++%2llx: +0xFFFFFFFFFFFFFFFF:1:3:0: ++%*2llx: +0xFFFFFFFFFFFFFFFF:0:3: ++%2llx: +10000000000000000:1:3:1: ++%*2llx: +10000000000000000:0:3: ++%2llx: +0X10000000000000000:1:3:0: ++%*2llx: +0X10000000000000000:0:3: ++%2llx: +0x10000000000000000:1:3:0: ++%*2llx: +0x10000000000000000:0:3: ++%2llx: +100000000028757b1:1:3:1: ++%*2llx: +100000000028757b1:0:3: ++%2llx: +100000000028757B1:1:3:1: ++%*2llx: +100000000028757B1:0:3: ++%2llx: +0X100000000028757b1:1:3:0: ++%*2llx: +0X100000000028757b1:0:3: ++%2llx: +0x100000000028757B1:1:3:0: ++%*2llx: +0x100000000028757B1:0:3: ++%25llx: :0:-1: ++%*25llx: :0:-1: ++%25llx: -7b:1:4:18446744073709551493: ++%*25llx: -7b:0:4: ++%25llx: -7B:1:4:18446744073709551493: ++%*25llx: -7B:0:4: ++%25llx: -0X7b:1:6:18446744073709551493: ++%*25llx: -0X7b:0:6: ++%25llx: -0x7B:1:6:18446744073709551493: ++%*25llx: -0x7B:0:6: ++%25llx: -1:1:3:18446744073709551615: ++%*25llx: -1:0:3: ++%25llx: -0X1:1:5:18446744073709551615: ++%*25llx: -0X1:0:5: ++%25llx: -0x1:1:5:18446744073709551615: ++%*25llx: -0x1:0:5: ++%25llx: -0:1:3:0: ++%*25llx: -0:0:3: ++%25llx: -0X0:1:5:0: ++%*25llx: -0X0:0:5: ++%25llx: -0x0:1:5:0: ++%*25llx: -0x0:0:5: ++%25llx: 0:1:2:0: ++%*25llx: 0:0:2: ++%25llx: 0X0:1:4:0: ++%*25llx: 0X0:0:4: ++%25llx: 0x0:1:4:0: ++%*25llx: 0x0:0:4: ++%25llx: 1:1:2:1: ++%*25llx: 1:0:2: ++%25llx: 0X1:1:4:1: ++%*25llx: 0X1:0:4: ++%25llx: 0x1:1:4:1: ++%*25llx: 0x1:0:4: ++%25llx: 2a:1:3:42: ++%*25llx: 2a:0:3: ++%25llx: 2A:1:3:42: ++%*25llx: 2A:0:3: ++%25llx: 0X2a:1:5:42: ++%*25llx: 0X2a:0:5: ++%25llx: 0x2A:1:5:42: ++%*25llx: 0x2A:0:5: ++%25llx: ffffffffffffffff:1:17:18446744073709551615: ++%*25llx: ffffffffffffffff:0:17: ++%25llx: FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*25llx: FFFFFFFFFFFFFFFF:0:17: ++%25llx: 0Xffffffffffffffff:1:19:18446744073709551615: ++%*25llx: 0Xffffffffffffffff:0:19: ++%25llx: 0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*25llx: 0xFFFFFFFFFFFFFFFF:0:19: ++%25llx: 10000000000000000:1:18:18446744073709551615: ++%*25llx: 10000000000000000:0:18: ++%25llx: 0X10000000000000000:1:20:18446744073709551615: ++%*25llx: 0X10000000000000000:0:20: ++%25llx: 0x10000000000000000:1:20:18446744073709551615: ++%*25llx: 0x10000000000000000:0:20: ++%25llx: 100000000028757b1:1:18:18446744073709551615: ++%*25llx: 100000000028757b1:0:18: ++%25llx: 100000000028757B1:1:18:18446744073709551615: ++%*25llx: 100000000028757B1:0:18: ++%25llx: 0X100000000028757b1:1:20:18446744073709551615: ++%*25llx: 0X100000000028757b1:0:20: ++%25llx: 0x100000000028757B1:1:20:18446744073709551615: ++%*25llx: 0x100000000028757B1:0:20: ++%25llx: +0:1:3:0: ++%*25llx: +0:0:3: ++%25llx: +0X0:1:5:0: ++%*25llx: +0X0:0:5: ++%25llx: +0x0:1:5:0: ++%*25llx: +0x0:0:5: ++%25llx: +1:1:3:1: ++%*25llx: +1:0:3: ++%25llx: +0X1:1:5:1: ++%*25llx: +0X1:0:5: ++%25llx: +0x1:1:5:1: ++%*25llx: +0x1:0:5: ++%25llx: +2a:1:4:42: ++%*25llx: +2a:0:4: ++%25llx: +2A:1:4:42: ++%*25llx: +2A:0:4: ++%25llx: +0X2a:1:6:42: ++%*25llx: +0X2a:0:6: ++%25llx: +0x2A:1:6:42: ++%*25llx: +0x2A:0:6: ++%25llx: +ffffffffffffffff:1:18:18446744073709551615: ++%*25llx: +ffffffffffffffff:0:18: ++%25llx: +FFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*25llx: +FFFFFFFFFFFFFFFF:0:18: ++%25llx: +0Xffffffffffffffff:1:20:18446744073709551615: ++%*25llx: +0Xffffffffffffffff:0:20: ++%25llx: +0xFFFFFFFFFFFFFFFF:1:20:18446744073709551615: ++%*25llx: +0xFFFFFFFFFFFFFFFF:0:20: ++%25llx: +10000000000000000:1:19:18446744073709551615: ++%*25llx: +10000000000000000:0:19: ++%25llx: +0X10000000000000000:1:21:18446744073709551615: ++%*25llx: +0X10000000000000000:0:21: ++%25llx: +0x10000000000000000:1:21:18446744073709551615: ++%*25llx: +0x10000000000000000:0:21: ++%25llx: +100000000028757b1:1:19:18446744073709551615: ++%*25llx: +100000000028757b1:0:19: ++%25llx: +100000000028757B1:1:19:18446744073709551615: ++%*25llx: +100000000028757B1:0:19: ++%25llx: +0X100000000028757b1:1:21:18446744073709551615: ++%*25llx: +0X100000000028757b1:0:21: ++%25llx: +0x100000000028757B1:1:21:18446744073709551615: ++%*25llx: +0x100000000028757B1:0:21: +diff --git a/stdio-common/tst-scanf-format-ullong-xx.input b/stdio-common/tst-scanf-format-ullong-xx.input +new file mode 100644 +index 0000000000000000..0964651177a09563 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ullong-xx.input +@@ -0,0 +1,742 @@ ++%llX::0:-1: ++%*llX::0:-1: ++%llX:-7b:1:3:18446744073709551493: ++%*llX:-7b:0:3: ++%llX:-7B:1:3:18446744073709551493: ++%*llX:-7B:0:3: ++%llX:-0X7b:1:5:18446744073709551493: ++%*llX:-0X7b:0:5: ++%llX:-0x7B:1:5:18446744073709551493: ++%*llX:-0x7B:0:5: ++%llX:-1:1:2:18446744073709551615: ++%*llX:-1:0:2: ++%llX:-0X1:1:4:18446744073709551615: ++%*llX:-0X1:0:4: ++%llX:-0x1:1:4:18446744073709551615: ++%*llX:-0x1:0:4: ++%llX:-0:1:2:0: ++%*llX:-0:0:2: ++%llX:-0X0:1:4:0: ++%*llX:-0X0:0:4: ++%llX:-0x0:1:4:0: ++%*llX:-0x0:0:4: ++%llX:0:1:1:0: ++%*llX:0:0:1: ++%llX:0X0:1:3:0: ++%*llX:0X0:0:3: ++%llX:0x0:1:3:0: ++%*llX:0x0:0:3: ++%llX:1:1:1:1: ++%*llX:1:0:1: ++%llX:0X1:1:3:1: ++%*llX:0X1:0:3: ++%llX:0x1:1:3:1: ++%*llX:0x1:0:3: ++%llX:2a:1:2:42: ++%*llX:2a:0:2: ++%llX:2A:1:2:42: ++%*llX:2A:0:2: ++%llX:0X2a:1:4:42: ++%*llX:0X2a:0:4: ++%llX:0x2A:1:4:42: ++%*llX:0x2A:0:4: ++%llX:ffffffffffffffff:1:16:18446744073709551615: ++%*llX:ffffffffffffffff:0:16: ++%llX:FFFFFFFFFFFFFFFF:1:16:18446744073709551615: ++%*llX:FFFFFFFFFFFFFFFF:0:16: ++%llX:0Xffffffffffffffff:1:18:18446744073709551615: ++%*llX:0Xffffffffffffffff:0:18: ++%llX:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*llX:0xFFFFFFFFFFFFFFFF:0:18: ++%llX:10000000000000000:1:17:18446744073709551615: ++%*llX:10000000000000000:0:17: ++%llX:0X10000000000000000:1:19:18446744073709551615: ++%*llX:0X10000000000000000:0:19: ++%llX:0x10000000000000000:1:19:18446744073709551615: ++%*llX:0x10000000000000000:0:19: ++%llX:100000000028757b1:1:17:18446744073709551615: ++%*llX:100000000028757b1:0:17: ++%llX:100000000028757B1:1:17:18446744073709551615: ++%*llX:100000000028757B1:0:17: ++%llX:0X100000000028757b1:1:19:18446744073709551615: ++%*llX:0X100000000028757b1:0:19: ++%llX:0x100000000028757B1:1:19:18446744073709551615: ++%*llX:0x100000000028757B1:0:19: ++%llX:+0:1:2:0: ++%*llX:+0:0:2: ++%llX:+0X0:1:4:0: ++%*llX:+0X0:0:4: ++%llX:+0x0:1:4:0: ++%*llX:+0x0:0:4: ++%llX:+1:1:2:1: ++%*llX:+1:0:2: ++%llX:+0X1:1:4:1: ++%*llX:+0X1:0:4: ++%llX:+0x1:1:4:1: ++%*llX:+0x1:0:4: ++%llX:+2a:1:3:42: ++%*llX:+2a:0:3: ++%llX:+2A:1:3:42: ++%*llX:+2A:0:3: ++%llX:+0X2a:1:5:42: ++%*llX:+0X2a:0:5: ++%llX:+0x2A:1:5:42: ++%*llX:+0x2A:0:5: ++%llX:+ffffffffffffffff:1:17:18446744073709551615: ++%*llX:+ffffffffffffffff:0:17: ++%llX:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*llX:+FFFFFFFFFFFFFFFF:0:17: ++%llX:+0Xffffffffffffffff:1:19:18446744073709551615: ++%*llX:+0Xffffffffffffffff:0:19: ++%llX:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*llX:+0xFFFFFFFFFFFFFFFF:0:19: ++%llX:+10000000000000000:1:18:18446744073709551615: ++%*llX:+10000000000000000:0:18: ++%llX:+0X10000000000000000:1:20:18446744073709551615: ++%*llX:+0X10000000000000000:0:20: ++%llX:+0x10000000000000000:1:20:18446744073709551615: ++%*llX:+0x10000000000000000:0:20: ++%llX:+100000000028757b1:1:18:18446744073709551615: ++%*llX:+100000000028757b1:0:18: ++%llX:+100000000028757B1:1:18:18446744073709551615: ++%*llX:+100000000028757B1:0:18: ++%llX:+0X100000000028757b1:1:20:18446744073709551615: ++%*llX:+0X100000000028757b1:0:20: ++%llX:+0x100000000028757B1:1:20:18446744073709551615: ++%*llX:+0x100000000028757B1:0:20: ++%1llX::0:-1: ++%*1llX::0:-1: ++%1llX:-7b:0:-1: ++%*1llX:-7b:0:-1: ++%1llX:-7B:0:-1: ++%*1llX:-7B:0:-1: ++%1llX:-0X7b:0:-1: ++%*1llX:-0X7b:0:-1: ++%1llX:-0x7B:0:-1: ++%*1llX:-0x7B:0:-1: ++%1llX:-1:0:-1: ++%*1llX:-1:0:-1: ++%1llX:-0X1:0:-1: ++%*1llX:-0X1:0:-1: ++%1llX:-0x1:0:-1: ++%*1llX:-0x1:0:-1: ++%1llX:-0:0:-1: ++%*1llX:-0:0:-1: ++%1llX:-0X0:0:-1: ++%*1llX:-0X0:0:-1: ++%1llX:-0x0:0:-1: ++%*1llX:-0x0:0:-1: ++%1llX:0:1:1:0: ++%*1llX:0:0:1: ++%1llX:0X0:1:1:0: ++%*1llX:0X0:0:1: ++%1llX:0x0:1:1:0: ++%*1llX:0x0:0:1: ++%1llX:1:1:1:1: ++%*1llX:1:0:1: ++%1llX:0X1:1:1:0: ++%*1llX:0X1:0:1: ++%1llX:0x1:1:1:0: ++%*1llX:0x1:0:1: ++%1llX:2a:1:1:2: ++%*1llX:2a:0:1: ++%1llX:2A:1:1:2: ++%*1llX:2A:0:1: ++%1llX:0X2a:1:1:0: ++%*1llX:0X2a:0:1: ++%1llX:0x2A:1:1:0: ++%*1llX:0x2A:0:1: ++%1llX:ffffffffffffffff:1:1:15: ++%*1llX:ffffffffffffffff:0:1: ++%1llX:FFFFFFFFFFFFFFFF:1:1:15: ++%*1llX:FFFFFFFFFFFFFFFF:0:1: ++%1llX:0Xffffffffffffffff:1:1:0: ++%*1llX:0Xffffffffffffffff:0:1: ++%1llX:0xFFFFFFFFFFFFFFFF:1:1:0: ++%*1llX:0xFFFFFFFFFFFFFFFF:0:1: ++%1llX:10000000000000000:1:1:1: ++%*1llX:10000000000000000:0:1: ++%1llX:0X10000000000000000:1:1:0: ++%*1llX:0X10000000000000000:0:1: ++%1llX:0x10000000000000000:1:1:0: ++%*1llX:0x10000000000000000:0:1: ++%1llX:100000000028757b1:1:1:1: ++%*1llX:100000000028757b1:0:1: ++%1llX:100000000028757B1:1:1:1: ++%*1llX:100000000028757B1:0:1: ++%1llX:0X100000000028757b1:1:1:0: ++%*1llX:0X100000000028757b1:0:1: ++%1llX:0x100000000028757B1:1:1:0: ++%*1llX:0x100000000028757B1:0:1: ++%1llX:+0:0:-1: ++%*1llX:+0:0:-1: ++%1llX:+0X0:0:-1: ++%*1llX:+0X0:0:-1: ++%1llX:+0x0:0:-1: ++%*1llX:+0x0:0:-1: ++%1llX:+1:0:-1: ++%*1llX:+1:0:-1: ++%1llX:+0X1:0:-1: ++%*1llX:+0X1:0:-1: ++%1llX:+0x1:0:-1: ++%*1llX:+0x1:0:-1: ++%1llX:+2a:0:-1: ++%*1llX:+2a:0:-1: ++%1llX:+2A:0:-1: ++%*1llX:+2A:0:-1: ++%1llX:+0X2a:0:-1: ++%*1llX:+0X2a:0:-1: ++%1llX:+0x2A:0:-1: ++%*1llX:+0x2A:0:-1: ++%1llX:+ffffffffffffffff:0:-1: ++%*1llX:+ffffffffffffffff:0:-1: ++%1llX:+FFFFFFFFFFFFFFFF:0:-1: ++%*1llX:+FFFFFFFFFFFFFFFF:0:-1: ++%1llX:+0Xffffffffffffffff:0:-1: ++%*1llX:+0Xffffffffffffffff:0:-1: ++%1llX:+0xFFFFFFFFFFFFFFFF:0:-1: ++%*1llX:+0xFFFFFFFFFFFFFFFF:0:-1: ++%1llX:+10000000000000000:0:-1: ++%*1llX:+10000000000000000:0:-1: ++%1llX:+0X10000000000000000:0:-1: ++%*1llX:+0X10000000000000000:0:-1: ++%1llX:+0x10000000000000000:0:-1: ++%*1llX:+0x10000000000000000:0:-1: ++%1llX:+100000000028757b1:0:-1: ++%*1llX:+100000000028757b1:0:-1: ++%1llX:+100000000028757B1:0:-1: ++%*1llX:+100000000028757B1:0:-1: ++%1llX:+0X100000000028757b1:0:-1: ++%*1llX:+0X100000000028757b1:0:-1: ++%1llX:+0x100000000028757B1:0:-1: ++%*1llX:+0x100000000028757B1:0:-1: ++%2llX::0:-1: ++%*2llX::0:-1: ++%2llX:-7b:1:2:18446744073709551609: ++%*2llX:-7b:0:2: ++%2llX:-7B:1:2:18446744073709551609: ++%*2llX:-7B:0:2: ++%2llX:-0X7b:1:2:0: ++%*2llX:-0X7b:0:2: ++%2llX:-0x7B:1:2:0: ++%*2llX:-0x7B:0:2: ++%2llX:-1:1:2:18446744073709551615: ++%*2llX:-1:0:2: ++%2llX:-0X1:1:2:0: ++%*2llX:-0X1:0:2: ++%2llX:-0x1:1:2:0: ++%*2llX:-0x1:0:2: ++%2llX:-0:1:2:0: ++%*2llX:-0:0:2: ++%2llX:-0X0:1:2:0: ++%*2llX:-0X0:0:2: ++%2llX:-0x0:1:2:0: ++%*2llX:-0x0:0:2: ++%2llX:0:1:1:0: ++%*2llX:0:0:1: ++# BZ12701 %2llX:0X0:0:-1: ++# BZ12701 %*2llX:0X0:0:-1: ++# BZ12701 %2llX:0x0:0:-1: ++# BZ12701 %*2llX:0x0:0:-1: ++%2llX:1:1:1:1: ++%*2llX:1:0:1: ++# BZ12701 %2llX:0X1:0:-1: ++# BZ12701 %*2llX:0X1:0:-1: ++# BZ12701 %2llX:0x1:0:-1: ++# BZ12701 %*2llX:0x1:0:-1: ++%2llX:2a:1:2:42: ++%*2llX:2a:0:2: ++%2llX:2A:1:2:42: ++%*2llX:2A:0:2: ++# BZ12701 %2llX:0X2a:0:-1: ++# BZ12701 %*2llX:0X2a:0:-1: ++# BZ12701 %2llX:0x2A:0:-1: ++# BZ12701 %*2llX:0x2A:0:-1: ++%2llX:ffffffffffffffff:1:2:255: ++%*2llX:ffffffffffffffff:0:2: ++%2llX:FFFFFFFFFFFFFFFF:1:2:255: ++%*2llX:FFFFFFFFFFFFFFFF:0:2: ++# BZ12701 %2llX:0Xffffffffffffffff:0:-1: ++# BZ12701 %*2llX:0Xffffffffffffffff:0:-1: ++# BZ12701 %2llX:0xFFFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2llX:0xFFFFFFFFFFFFFFFF:0:-1: ++%2llX:10000000000000000:1:2:16: ++%*2llX:10000000000000000:0:2: ++# BZ12701 %2llX:0X10000000000000000:0:-1: ++# BZ12701 %*2llX:0X10000000000000000:0:-1: ++# BZ12701 %2llX:0x10000000000000000:0:-1: ++# BZ12701 %*2llX:0x10000000000000000:0:-1: ++%2llX:100000000028757b1:1:2:16: ++%*2llX:100000000028757b1:0:2: ++%2llX:100000000028757B1:1:2:16: ++%*2llX:100000000028757B1:0:2: ++# BZ12701 %2llX:0X100000000028757b1:0:-1: ++# BZ12701 %*2llX:0X100000000028757b1:0:-1: ++# BZ12701 %2llX:0x100000000028757B1:0:-1: ++# BZ12701 %*2llX:0x100000000028757B1:0:-1: ++%2llX:+0:1:2:0: ++%*2llX:+0:0:2: ++%2llX:+0X0:1:2:0: ++%*2llX:+0X0:0:2: ++%2llX:+0x0:1:2:0: ++%*2llX:+0x0:0:2: ++%2llX:+1:1:2:1: ++%*2llX:+1:0:2: ++%2llX:+0X1:1:2:0: ++%*2llX:+0X1:0:2: ++%2llX:+0x1:1:2:0: ++%*2llX:+0x1:0:2: ++%2llX:+2a:1:2:2: ++%*2llX:+2a:0:2: ++%2llX:+2A:1:2:2: ++%*2llX:+2A:0:2: ++%2llX:+0X2a:1:2:0: ++%*2llX:+0X2a:0:2: ++%2llX:+0x2A:1:2:0: ++%*2llX:+0x2A:0:2: ++%2llX:+ffffffffffffffff:1:2:15: ++%*2llX:+ffffffffffffffff:0:2: ++%2llX:+FFFFFFFFFFFFFFFF:1:2:15: ++%*2llX:+FFFFFFFFFFFFFFFF:0:2: ++%2llX:+0Xffffffffffffffff:1:2:0: ++%*2llX:+0Xffffffffffffffff:0:2: ++%2llX:+0xFFFFFFFFFFFFFFFF:1:2:0: ++%*2llX:+0xFFFFFFFFFFFFFFFF:0:2: ++%2llX:+10000000000000000:1:2:1: ++%*2llX:+10000000000000000:0:2: ++%2llX:+0X10000000000000000:1:2:0: ++%*2llX:+0X10000000000000000:0:2: ++%2llX:+0x10000000000000000:1:2:0: ++%*2llX:+0x10000000000000000:0:2: ++%2llX:+100000000028757b1:1:2:1: ++%*2llX:+100000000028757b1:0:2: ++%2llX:+100000000028757B1:1:2:1: ++%*2llX:+100000000028757B1:0:2: ++%2llX:+0X100000000028757b1:1:2:0: ++%*2llX:+0X100000000028757b1:0:2: ++%2llX:+0x100000000028757B1:1:2:0: ++%*2llX:+0x100000000028757B1:0:2: ++%15llX::0:-1: ++%*15llX::0:-1: ++%15llX:-7b:1:3:18446744073709551493: ++%*15llX:-7b:0:3: ++%15llX:-7B:1:3:18446744073709551493: ++%*15llX:-7B:0:3: ++%15llX:-0X7b:1:5:18446744073709551493: ++%*15llX:-0X7b:0:5: ++%15llX:-0x7B:1:5:18446744073709551493: ++%*15llX:-0x7B:0:5: ++%15llX:-1:1:2:18446744073709551615: ++%*15llX:-1:0:2: ++%15llX:-0X1:1:4:18446744073709551615: ++%*15llX:-0X1:0:4: ++%15llX:-0x1:1:4:18446744073709551615: ++%*15llX:-0x1:0:4: ++%15llX:-0:1:2:0: ++%*15llX:-0:0:2: ++%15llX:-0X0:1:4:0: ++%*15llX:-0X0:0:4: ++%15llX:-0x0:1:4:0: ++%*15llX:-0x0:0:4: ++%15llX:0:1:1:0: ++%*15llX:0:0:1: ++%15llX:0X0:1:3:0: ++%*15llX:0X0:0:3: ++%15llX:0x0:1:3:0: ++%*15llX:0x0:0:3: ++%15llX:1:1:1:1: ++%*15llX:1:0:1: ++%15llX:0X1:1:3:1: ++%*15llX:0X1:0:3: ++%15llX:0x1:1:3:1: ++%*15llX:0x1:0:3: ++%15llX:2a:1:2:42: ++%*15llX:2a:0:2: ++%15llX:2A:1:2:42: ++%*15llX:2A:0:2: ++%15llX:0X2a:1:4:42: ++%*15llX:0X2a:0:4: ++%15llX:0x2A:1:4:42: ++%*15llX:0x2A:0:4: ++%15llX:ffffffffffffffff:1:15:1152921504606846975: ++%*15llX:ffffffffffffffff:0:15: ++%15llX:FFFFFFFFFFFFFFFF:1:15:1152921504606846975: ++%*15llX:FFFFFFFFFFFFFFFF:0:15: ++%15llX:0Xffffffffffffffff:1:15:4503599627370495: ++%*15llX:0Xffffffffffffffff:0:15: ++%15llX:0xFFFFFFFFFFFFFFFF:1:15:4503599627370495: ++%*15llX:0xFFFFFFFFFFFFFFFF:0:15: ++%15llX:10000000000000000:1:15:72057594037927936: ++%*15llX:10000000000000000:0:15: ++%15llX:0X10000000000000000:1:15:281474976710656: ++%*15llX:0X10000000000000000:0:15: ++%15llX:0x10000000000000000:1:15:281474976710656: ++%*15llX:0x10000000000000000:0:15: ++%15llX:100000000028757b1:1:15:72057594038093655: ++%*15llX:100000000028757b1:0:15: ++%15llX:100000000028757B1:1:15:72057594038093655: ++%*15llX:100000000028757B1:0:15: ++%15llX:0X100000000028757b1:1:15:281474976711303: ++%*15llX:0X100000000028757b1:0:15: ++%15llX:0x100000000028757B1:1:15:281474976711303: ++%*15llX:0x100000000028757B1:0:15: ++%15llX:+0:1:2:0: ++%*15llX:+0:0:2: ++%15llX:+0X0:1:4:0: ++%*15llX:+0X0:0:4: ++%15llX:+0x0:1:4:0: ++%*15llX:+0x0:0:4: ++%15llX:+1:1:2:1: ++%*15llX:+1:0:2: ++%15llX:+0X1:1:4:1: ++%*15llX:+0X1:0:4: ++%15llX:+0x1:1:4:1: ++%*15llX:+0x1:0:4: ++%15llX:+2a:1:3:42: ++%*15llX:+2a:0:3: ++%15llX:+2A:1:3:42: ++%*15llX:+2A:0:3: ++%15llX:+0X2a:1:5:42: ++%*15llX:+0X2a:0:5: ++%15llX:+0x2A:1:5:42: ++%*15llX:+0x2A:0:5: ++%15llX:+ffffffffffffffff:1:15:72057594037927935: ++%*15llX:+ffffffffffffffff:0:15: ++%15llX:+FFFFFFFFFFFFFFFF:1:15:72057594037927935: ++%*15llX:+FFFFFFFFFFFFFFFF:0:15: ++%15llX:+0Xffffffffffffffff:1:15:281474976710655: ++%*15llX:+0Xffffffffffffffff:0:15: ++%15llX:+0xFFFFFFFFFFFFFFFF:1:15:281474976710655: ++%*15llX:+0xFFFFFFFFFFFFFFFF:0:15: ++%15llX:+10000000000000000:1:15:4503599627370496: ++%*15llX:+10000000000000000:0:15: ++%15llX:+0X10000000000000000:1:15:17592186044416: ++%*15llX:+0X10000000000000000:0:15: ++%15llX:+0x10000000000000000:1:15:17592186044416: ++%*15llX:+0x10000000000000000:0:15: ++%15llX:+100000000028757b1:1:15:4503599627380853: ++%*15llX:+100000000028757b1:0:15: ++%15llX:+100000000028757B1:1:15:4503599627380853: ++%*15llX:+100000000028757B1:0:15: ++%15llX:+0X100000000028757b1:1:15:17592186044456: ++%*15llX:+0X100000000028757b1:0:15: ++%15llX:+0x100000000028757B1:1:15:17592186044456: ++%*15llX:+0x100000000028757B1:0:15: ++%25llX::0:-1: ++%*25llX::0:-1: ++%25llX:-7b:1:3:18446744073709551493: ++%*25llX:-7b:0:3: ++%25llX:-7B:1:3:18446744073709551493: ++%*25llX:-7B:0:3: ++%25llX:-0X7b:1:5:18446744073709551493: ++%*25llX:-0X7b:0:5: ++%25llX:-0x7B:1:5:18446744073709551493: ++%*25llX:-0x7B:0:5: ++%25llX:-1:1:2:18446744073709551615: ++%*25llX:-1:0:2: ++%25llX:-0X1:1:4:18446744073709551615: ++%*25llX:-0X1:0:4: ++%25llX:-0x1:1:4:18446744073709551615: ++%*25llX:-0x1:0:4: ++%25llX:-0:1:2:0: ++%*25llX:-0:0:2: ++%25llX:-0X0:1:4:0: ++%*25llX:-0X0:0:4: ++%25llX:-0x0:1:4:0: ++%*25llX:-0x0:0:4: ++%25llX:0:1:1:0: ++%*25llX:0:0:1: ++%25llX:0X0:1:3:0: ++%*25llX:0X0:0:3: ++%25llX:0x0:1:3:0: ++%*25llX:0x0:0:3: ++%25llX:1:1:1:1: ++%*25llX:1:0:1: ++%25llX:0X1:1:3:1: ++%*25llX:0X1:0:3: ++%25llX:0x1:1:3:1: ++%*25llX:0x1:0:3: ++%25llX:2a:1:2:42: ++%*25llX:2a:0:2: ++%25llX:2A:1:2:42: ++%*25llX:2A:0:2: ++%25llX:0X2a:1:4:42: ++%*25llX:0X2a:0:4: ++%25llX:0x2A:1:4:42: ++%*25llX:0x2A:0:4: ++%25llX:ffffffffffffffff:1:16:18446744073709551615: ++%*25llX:ffffffffffffffff:0:16: ++%25llX:FFFFFFFFFFFFFFFF:1:16:18446744073709551615: ++%*25llX:FFFFFFFFFFFFFFFF:0:16: ++%25llX:0Xffffffffffffffff:1:18:18446744073709551615: ++%*25llX:0Xffffffffffffffff:0:18: ++%25llX:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*25llX:0xFFFFFFFFFFFFFFFF:0:18: ++%25llX:10000000000000000:1:17:18446744073709551615: ++%*25llX:10000000000000000:0:17: ++%25llX:0X10000000000000000:1:19:18446744073709551615: ++%*25llX:0X10000000000000000:0:19: ++%25llX:0x10000000000000000:1:19:18446744073709551615: ++%*25llX:0x10000000000000000:0:19: ++%25llX:100000000028757b1:1:17:18446744073709551615: ++%*25llX:100000000028757b1:0:17: ++%25llX:100000000028757B1:1:17:18446744073709551615: ++%*25llX:100000000028757B1:0:17: ++%25llX:0X100000000028757b1:1:19:18446744073709551615: ++%*25llX:0X100000000028757b1:0:19: ++%25llX:0x100000000028757B1:1:19:18446744073709551615: ++%*25llX:0x100000000028757B1:0:19: ++%25llX:+0:1:2:0: ++%*25llX:+0:0:2: ++%25llX:+0X0:1:4:0: ++%*25llX:+0X0:0:4: ++%25llX:+0x0:1:4:0: ++%*25llX:+0x0:0:4: ++%25llX:+1:1:2:1: ++%*25llX:+1:0:2: ++%25llX:+0X1:1:4:1: ++%*25llX:+0X1:0:4: ++%25llX:+0x1:1:4:1: ++%*25llX:+0x1:0:4: ++%25llX:+2a:1:3:42: ++%*25llX:+2a:0:3: ++%25llX:+2A:1:3:42: ++%*25llX:+2A:0:3: ++%25llX:+0X2a:1:5:42: ++%*25llX:+0X2a:0:5: ++%25llX:+0x2A:1:5:42: ++%*25llX:+0x2A:0:5: ++%25llX:+ffffffffffffffff:1:17:18446744073709551615: ++%*25llX:+ffffffffffffffff:0:17: ++%25llX:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*25llX:+FFFFFFFFFFFFFFFF:0:17: ++%25llX:+0Xffffffffffffffff:1:19:18446744073709551615: ++%*25llX:+0Xffffffffffffffff:0:19: ++%25llX:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*25llX:+0xFFFFFFFFFFFFFFFF:0:19: ++%25llX:+10000000000000000:1:18:18446744073709551615: ++%*25llX:+10000000000000000:0:18: ++%25llX:+0X10000000000000000:1:20:18446744073709551615: ++%*25llX:+0X10000000000000000:0:20: ++%25llX:+0x10000000000000000:1:20:18446744073709551615: ++%*25llX:+0x10000000000000000:0:20: ++%25llX:+100000000028757b1:1:18:18446744073709551615: ++%*25llX:+100000000028757b1:0:18: ++%25llX:+100000000028757B1:1:18:18446744073709551615: ++%*25llX:+100000000028757B1:0:18: ++%25llX:+0X100000000028757b1:1:20:18446744073709551615: ++%*25llX:+0X100000000028757b1:0:20: ++%25llX:+0x100000000028757B1:1:20:18446744073709551615: ++%*25llX:+0x100000000028757B1:0:20: ++%2llX: :0:-1: ++%*2llX: :0:-1: ++%2llX: -7b:1:3:18446744073709551609: ++%*2llX: -7b:0:3: ++%2llX: -7B:1:3:18446744073709551609: ++%*2llX: -7B:0:3: ++%2llX: -0X7b:1:3:0: ++%*2llX: -0X7b:0:3: ++%2llX: -0x7B:1:3:0: ++%*2llX: -0x7B:0:3: ++%2llX: -1:1:3:18446744073709551615: ++%*2llX: -1:0:3: ++%2llX: -0X1:1:3:0: ++%*2llX: -0X1:0:3: ++%2llX: -0x1:1:3:0: ++%*2llX: -0x1:0:3: ++%2llX: -0:1:3:0: ++%*2llX: -0:0:3: ++%2llX: -0X0:1:3:0: ++%*2llX: -0X0:0:3: ++%2llX: -0x0:1:3:0: ++%*2llX: -0x0:0:3: ++%2llX: 0:1:2:0: ++%*2llX: 0:0:2: ++# BZ12701 %2llX: 0X0:0:-1: ++# BZ12701 %*2llX: 0X0:0:-1: ++# BZ12701 %2llX: 0x0:0:-1: ++# BZ12701 %*2llX: 0x0:0:-1: ++%2llX: 1:1:2:1: ++%*2llX: 1:0:2: ++# BZ12701 %2llX: 0X1:0:-1: ++# BZ12701 %*2llX: 0X1:0:-1: ++# BZ12701 %2llX: 0x1:0:-1: ++# BZ12701 %*2llX: 0x1:0:-1: ++%2llX: 2a:1:3:42: ++%*2llX: 2a:0:3: ++%2llX: 2A:1:3:42: ++%*2llX: 2A:0:3: ++# BZ12701 %2llX: 0X2a:0:-1: ++# BZ12701 %*2llX: 0X2a:0:-1: ++# BZ12701 %2llX: 0x2A:0:-1: ++# BZ12701 %*2llX: 0x2A:0:-1: ++%2llX: ffffffffffffffff:1:3:255: ++%*2llX: ffffffffffffffff:0:3: ++%2llX: FFFFFFFFFFFFFFFF:1:3:255: ++%*2llX: FFFFFFFFFFFFFFFF:0:3: ++# BZ12701 %2llX: 0Xffffffffffffffff:0:-1: ++# BZ12701 %*2llX: 0Xffffffffffffffff:0:-1: ++# BZ12701 %2llX: 0xFFFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2llX: 0xFFFFFFFFFFFFFFFF:0:-1: ++%2llX: 10000000000000000:1:3:16: ++%*2llX: 10000000000000000:0:3: ++# BZ12701 %2llX: 0X10000000000000000:0:-1: ++# BZ12701 %*2llX: 0X10000000000000000:0:-1: ++# BZ12701 %2llX: 0x10000000000000000:0:-1: ++# BZ12701 %*2llX: 0x10000000000000000:0:-1: ++%2llX: 100000000028757b1:1:3:16: ++%*2llX: 100000000028757b1:0:3: ++%2llX: 100000000028757B1:1:3:16: ++%*2llX: 100000000028757B1:0:3: ++# BZ12701 %2llX: 0X100000000028757b1:0:-1: ++# BZ12701 %*2llX: 0X100000000028757b1:0:-1: ++# BZ12701 %2llX: 0x100000000028757B1:0:-1: ++# BZ12701 %*2llX: 0x100000000028757B1:0:-1: ++%2llX: +0:1:3:0: ++%*2llX: +0:0:3: ++%2llX: +0X0:1:3:0: ++%*2llX: +0X0:0:3: ++%2llX: +0x0:1:3:0: ++%*2llX: +0x0:0:3: ++%2llX: +1:1:3:1: ++%*2llX: +1:0:3: ++%2llX: +0X1:1:3:0: ++%*2llX: +0X1:0:3: ++%2llX: +0x1:1:3:0: ++%*2llX: +0x1:0:3: ++%2llX: +2a:1:3:2: ++%*2llX: +2a:0:3: ++%2llX: +2A:1:3:2: ++%*2llX: +2A:0:3: ++%2llX: +0X2a:1:3:0: ++%*2llX: +0X2a:0:3: ++%2llX: +0x2A:1:3:0: ++%*2llX: +0x2A:0:3: ++%2llX: +ffffffffffffffff:1:3:15: ++%*2llX: +ffffffffffffffff:0:3: ++%2llX: +FFFFFFFFFFFFFFFF:1:3:15: ++%*2llX: +FFFFFFFFFFFFFFFF:0:3: ++%2llX: +0Xffffffffffffffff:1:3:0: ++%*2llX: +0Xffffffffffffffff:0:3: ++%2llX: +0xFFFFFFFFFFFFFFFF:1:3:0: ++%*2llX: +0xFFFFFFFFFFFFFFFF:0:3: ++%2llX: +10000000000000000:1:3:1: ++%*2llX: +10000000000000000:0:3: ++%2llX: +0X10000000000000000:1:3:0: ++%*2llX: +0X10000000000000000:0:3: ++%2llX: +0x10000000000000000:1:3:0: ++%*2llX: +0x10000000000000000:0:3: ++%2llX: +100000000028757b1:1:3:1: ++%*2llX: +100000000028757b1:0:3: ++%2llX: +100000000028757B1:1:3:1: ++%*2llX: +100000000028757B1:0:3: ++%2llX: +0X100000000028757b1:1:3:0: ++%*2llX: +0X100000000028757b1:0:3: ++%2llX: +0x100000000028757B1:1:3:0: ++%*2llX: +0x100000000028757B1:0:3: ++%25llX: :0:-1: ++%*25llX: :0:-1: ++%25llX: -7b:1:4:18446744073709551493: ++%*25llX: -7b:0:4: ++%25llX: -7B:1:4:18446744073709551493: ++%*25llX: -7B:0:4: ++%25llX: -0X7b:1:6:18446744073709551493: ++%*25llX: -0X7b:0:6: ++%25llX: -0x7B:1:6:18446744073709551493: ++%*25llX: -0x7B:0:6: ++%25llX: -1:1:3:18446744073709551615: ++%*25llX: -1:0:3: ++%25llX: -0X1:1:5:18446744073709551615: ++%*25llX: -0X1:0:5: ++%25llX: -0x1:1:5:18446744073709551615: ++%*25llX: -0x1:0:5: ++%25llX: -0:1:3:0: ++%*25llX: -0:0:3: ++%25llX: -0X0:1:5:0: ++%*25llX: -0X0:0:5: ++%25llX: -0x0:1:5:0: ++%*25llX: -0x0:0:5: ++%25llX: 0:1:2:0: ++%*25llX: 0:0:2: ++%25llX: 0X0:1:4:0: ++%*25llX: 0X0:0:4: ++%25llX: 0x0:1:4:0: ++%*25llX: 0x0:0:4: ++%25llX: 1:1:2:1: ++%*25llX: 1:0:2: ++%25llX: 0X1:1:4:1: ++%*25llX: 0X1:0:4: ++%25llX: 0x1:1:4:1: ++%*25llX: 0x1:0:4: ++%25llX: 2a:1:3:42: ++%*25llX: 2a:0:3: ++%25llX: 2A:1:3:42: ++%*25llX: 2A:0:3: ++%25llX: 0X2a:1:5:42: ++%*25llX: 0X2a:0:5: ++%25llX: 0x2A:1:5:42: ++%*25llX: 0x2A:0:5: ++%25llX: ffffffffffffffff:1:17:18446744073709551615: ++%*25llX: ffffffffffffffff:0:17: ++%25llX: FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*25llX: FFFFFFFFFFFFFFFF:0:17: ++%25llX: 0Xffffffffffffffff:1:19:18446744073709551615: ++%*25llX: 0Xffffffffffffffff:0:19: ++%25llX: 0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*25llX: 0xFFFFFFFFFFFFFFFF:0:19: ++%25llX: 10000000000000000:1:18:18446744073709551615: ++%*25llX: 10000000000000000:0:18: ++%25llX: 0X10000000000000000:1:20:18446744073709551615: ++%*25llX: 0X10000000000000000:0:20: ++%25llX: 0x10000000000000000:1:20:18446744073709551615: ++%*25llX: 0x10000000000000000:0:20: ++%25llX: 100000000028757b1:1:18:18446744073709551615: ++%*25llX: 100000000028757b1:0:18: ++%25llX: 100000000028757B1:1:18:18446744073709551615: ++%*25llX: 100000000028757B1:0:18: ++%25llX: 0X100000000028757b1:1:20:18446744073709551615: ++%*25llX: 0X100000000028757b1:0:20: ++%25llX: 0x100000000028757B1:1:20:18446744073709551615: ++%*25llX: 0x100000000028757B1:0:20: ++%25llX: +0:1:3:0: ++%*25llX: +0:0:3: ++%25llX: +0X0:1:5:0: ++%*25llX: +0X0:0:5: ++%25llX: +0x0:1:5:0: ++%*25llX: +0x0:0:5: ++%25llX: +1:1:3:1: ++%*25llX: +1:0:3: ++%25llX: +0X1:1:5:1: ++%*25llX: +0X1:0:5: ++%25llX: +0x1:1:5:1: ++%*25llX: +0x1:0:5: ++%25llX: +2a:1:4:42: ++%*25llX: +2a:0:4: ++%25llX: +2A:1:4:42: ++%*25llX: +2A:0:4: ++%25llX: +0X2a:1:6:42: ++%*25llX: +0X2a:0:6: ++%25llX: +0x2A:1:6:42: ++%*25llX: +0x2A:0:6: ++%25llX: +ffffffffffffffff:1:18:18446744073709551615: ++%*25llX: +ffffffffffffffff:0:18: ++%25llX: +FFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*25llX: +FFFFFFFFFFFFFFFF:0:18: ++%25llX: +0Xffffffffffffffff:1:20:18446744073709551615: ++%*25llX: +0Xffffffffffffffff:0:20: ++%25llX: +0xFFFFFFFFFFFFFFFF:1:20:18446744073709551615: ++%*25llX: +0xFFFFFFFFFFFFFFFF:0:20: ++%25llX: +10000000000000000:1:19:18446744073709551615: ++%*25llX: +10000000000000000:0:19: ++%25llX: +0X10000000000000000:1:21:18446744073709551615: ++%*25llX: +0X10000000000000000:0:21: ++%25llX: +0x10000000000000000:1:21:18446744073709551615: ++%*25llX: +0x10000000000000000:0:21: ++%25llX: +100000000028757b1:1:19:18446744073709551615: ++%*25llX: +100000000028757b1:0:19: ++%25llX: +100000000028757B1:1:19:18446744073709551615: ++%*25llX: +100000000028757B1:0:19: ++%25llX: +0X100000000028757b1:1:21:18446744073709551615: ++%*25llX: +0X100000000028757b1:0:21: ++%25llX: +0x100000000028757B1:1:21:18446744073709551615: ++%*25llX: +0x100000000028757B1:0:21: +diff --git a/stdio-common/tst-scanf-format-ushort-b.input b/stdio-common/tst-scanf-format-ushort-b.input +new file mode 100644 +index 0000000000000000..b41a66763a09a962 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ushort-b.input +@@ -0,0 +1,644 @@ ++%hb::0:-1: ++%*hb::0:-1: ++%hb:-1111011:1:8:65413: ++%*hb:-1111011:0:8: ++%hb:-0B1111011:1:10:65413: ++%*hb:-0B1111011:0:10: ++%hb:-0b1111011:1:10:65413: ++%*hb:-0b1111011:0:10: ++%hb:-1:1:2:65535: ++%*hb:-1:0:2: ++%hb:-0B1:1:4:65535: ++%*hb:-0B1:0:4: ++%hb:-0b1:1:4:65535: ++%*hb:-0b1:0:4: ++%hb:-0:1:2:0: ++%*hb:-0:0:2: ++%hb:-0B0:1:4:0: ++%*hb:-0B0:0:4: ++%hb:-0b0:1:4:0: ++%*hb:-0b0:0:4: ++%hb:0:1:1:0: ++%*hb:0:0:1: ++%hb:0B0:1:3:0: ++%*hb:0B0:0:3: ++%hb:0b0:1:3:0: ++%*hb:0b0:0:3: ++%hb:1:1:1:1: ++%*hb:1:0:1: ++%hb:0B1:1:3:1: ++%*hb:0B1:0:3: ++%hb:0b1:1:3:1: ++%*hb:0b1:0:3: ++%hb:101010:1:6:42: ++%*hb:101010:0:6: ++%hb:0B101010:1:8:42: ++%*hb:0B101010:0:8: ++%hb:0b101010:1:8:42: ++%*hb:0b101010:0:8: ++%hb:1111111111111111:1:16:65535: ++%*hb:1111111111111111:0:16: ++%hb:0B1111111111111111:1:18:65535: ++%*hb:0B1111111111111111:0:18: ++%hb:0b1111111111111111:1:18:65535: ++%*hb:0b1111111111111111:0:18: ++%hb:10000000000000000:1:17:0: ++%*hb:10000000000000000:0:17: ++%hb:0B10000000000000000:1:19:0: ++%*hb:0B10000000000000000:0:19: ++%hb:0b10000000000000000:1:19:0: ++%*hb:0b10000000000000000:0:19: ++%hb:10000000000101001:1:17:41: ++%*hb:10000000000101001:0:17: ++%hb:0B10000000000101001:1:19:41: ++%*hb:0B10000000000101001:0:19: ++%hb:0b10000000000101001:1:19:41: ++%*hb:0b10000000000101001:0:19: ++%hb:+0:1:2:0: ++%*hb:+0:0:2: ++%hb:+0B0:1:4:0: ++%*hb:+0B0:0:4: ++%hb:+0b0:1:4:0: ++%*hb:+0b0:0:4: ++%hb:+1:1:2:1: ++%*hb:+1:0:2: ++%hb:+0B1:1:4:1: ++%*hb:+0B1:0:4: ++%hb:+0b1:1:4:1: ++%*hb:+0b1:0:4: ++%hb:+101010:1:7:42: ++%*hb:+101010:0:7: ++%hb:+0B101010:1:9:42: ++%*hb:+0B101010:0:9: ++%hb:+0b101010:1:9:42: ++%*hb:+0b101010:0:9: ++%hb:+1111111111111111:1:17:65535: ++%*hb:+1111111111111111:0:17: ++%hb:+0B1111111111111111:1:19:65535: ++%*hb:+0B1111111111111111:0:19: ++%hb:+0b1111111111111111:1:19:65535: ++%*hb:+0b1111111111111111:0:19: ++%hb:+10000000000000000:1:18:0: ++%*hb:+10000000000000000:0:18: ++%hb:+0B10000000000000000:1:20:0: ++%*hb:+0B10000000000000000:0:20: ++%hb:+0b10000000000000000:1:20:0: ++%*hb:+0b10000000000000000:0:20: ++%hb:+10000000000101001:1:18:41: ++%*hb:+10000000000101001:0:18: ++%hb:+0B10000000000101001:1:20:41: ++%*hb:+0B10000000000101001:0:20: ++%hb:+0b10000000000101001:1:20:41: ++%*hb:+0b10000000000101001:0:20: ++%1hb::0:-1: ++%*1hb::0:-1: ++%1hb:-1111011:0:-1: ++%*1hb:-1111011:0:-1: ++%1hb:-0B1111011:0:-1: ++%*1hb:-0B1111011:0:-1: ++%1hb:-0b1111011:0:-1: ++%*1hb:-0b1111011:0:-1: ++%1hb:-1:0:-1: ++%*1hb:-1:0:-1: ++%1hb:-0B1:0:-1: ++%*1hb:-0B1:0:-1: ++%1hb:-0b1:0:-1: ++%*1hb:-0b1:0:-1: ++%1hb:-0:0:-1: ++%*1hb:-0:0:-1: ++%1hb:-0B0:0:-1: ++%*1hb:-0B0:0:-1: ++%1hb:-0b0:0:-1: ++%*1hb:-0b0:0:-1: ++%1hb:0:1:1:0: ++%*1hb:0:0:1: ++%1hb:0B0:1:1:0: ++%*1hb:0B0:0:1: ++%1hb:0b0:1:1:0: ++%*1hb:0b0:0:1: ++%1hb:1:1:1:1: ++%*1hb:1:0:1: ++%1hb:0B1:1:1:0: ++%*1hb:0B1:0:1: ++%1hb:0b1:1:1:0: ++%*1hb:0b1:0:1: ++%1hb:101010:1:1:1: ++%*1hb:101010:0:1: ++%1hb:0B101010:1:1:0: ++%*1hb:0B101010:0:1: ++%1hb:0b101010:1:1:0: ++%*1hb:0b101010:0:1: ++%1hb:1111111111111111:1:1:1: ++%*1hb:1111111111111111:0:1: ++%1hb:0B1111111111111111:1:1:0: ++%*1hb:0B1111111111111111:0:1: ++%1hb:0b1111111111111111:1:1:0: ++%*1hb:0b1111111111111111:0:1: ++%1hb:10000000000000000:1:1:1: ++%*1hb:10000000000000000:0:1: ++%1hb:0B10000000000000000:1:1:0: ++%*1hb:0B10000000000000000:0:1: ++%1hb:0b10000000000000000:1:1:0: ++%*1hb:0b10000000000000000:0:1: ++%1hb:10000000000101001:1:1:1: ++%*1hb:10000000000101001:0:1: ++%1hb:0B10000000000101001:1:1:0: ++%*1hb:0B10000000000101001:0:1: ++%1hb:0b10000000000101001:1:1:0: ++%*1hb:0b10000000000101001:0:1: ++%1hb:+0:0:-1: ++%*1hb:+0:0:-1: ++%1hb:+0B0:0:-1: ++%*1hb:+0B0:0:-1: ++%1hb:+0b0:0:-1: ++%*1hb:+0b0:0:-1: ++%1hb:+1:0:-1: ++%*1hb:+1:0:-1: ++%1hb:+0B1:0:-1: ++%*1hb:+0B1:0:-1: ++%1hb:+0b1:0:-1: ++%*1hb:+0b1:0:-1: ++%1hb:+101010:0:-1: ++%*1hb:+101010:0:-1: ++%1hb:+0B101010:0:-1: ++%*1hb:+0B101010:0:-1: ++%1hb:+0b101010:0:-1: ++%*1hb:+0b101010:0:-1: ++%1hb:+1111111111111111:0:-1: ++%*1hb:+1111111111111111:0:-1: ++%1hb:+0B1111111111111111:0:-1: ++%*1hb:+0B1111111111111111:0:-1: ++%1hb:+0b1111111111111111:0:-1: ++%*1hb:+0b1111111111111111:0:-1: ++%1hb:+10000000000000000:0:-1: ++%*1hb:+10000000000000000:0:-1: ++%1hb:+0B10000000000000000:0:-1: ++%*1hb:+0B10000000000000000:0:-1: ++%1hb:+0b10000000000000000:0:-1: ++%*1hb:+0b10000000000000000:0:-1: ++%1hb:+10000000000101001:0:-1: ++%*1hb:+10000000000101001:0:-1: ++%1hb:+0B10000000000101001:0:-1: ++%*1hb:+0B10000000000101001:0:-1: ++%1hb:+0b10000000000101001:0:-1: ++%*1hb:+0b10000000000101001:0:-1: ++%2hb::0:-1: ++%*2hb::0:-1: ++%2hb:-1111011:1:2:65535: ++%*2hb:-1111011:0:2: ++%2hb:-0B1111011:1:2:0: ++%*2hb:-0B1111011:0:2: ++%2hb:-0b1111011:1:2:0: ++%*2hb:-0b1111011:0:2: ++%2hb:-1:1:2:65535: ++%*2hb:-1:0:2: ++%2hb:-0B1:1:2:0: ++%*2hb:-0B1:0:2: ++%2hb:-0b1:1:2:0: ++%*2hb:-0b1:0:2: ++%2hb:-0:1:2:0: ++%*2hb:-0:0:2: ++%2hb:-0B0:1:2:0: ++%*2hb:-0B0:0:2: ++%2hb:-0b0:1:2:0: ++%*2hb:-0b0:0:2: ++%2hb:0:1:1:0: ++%*2hb:0:0:1: ++# BZ12701 %2hb:0B0:0:-1: ++# BZ12701 %*2hb:0B0:0:-1: ++# BZ12701 %2hb:0b0:0:-1: ++# BZ12701 %*2hb:0b0:0:-1: ++%2hb:1:1:1:1: ++%*2hb:1:0:1: ++# BZ12701 %2hb:0B1:0:-1: ++# BZ12701 %*2hb:0B1:0:-1: ++# BZ12701 %2hb:0b1:0:-1: ++# BZ12701 %*2hb:0b1:0:-1: ++%2hb:101010:1:2:2: ++%*2hb:101010:0:2: ++# BZ12701 %2hb:0B101010:0:-1: ++# BZ12701 %*2hb:0B101010:0:-1: ++# BZ12701 %2hb:0b101010:0:-1: ++# BZ12701 %*2hb:0b101010:0:-1: ++%2hb:1111111111111111:1:2:3: ++%*2hb:1111111111111111:0:2: ++# BZ12701 %2hb:0B1111111111111111:0:-1: ++# BZ12701 %*2hb:0B1111111111111111:0:-1: ++# BZ12701 %2hb:0b1111111111111111:0:-1: ++# BZ12701 %*2hb:0b1111111111111111:0:-1: ++%2hb:10000000000000000:1:2:2: ++%*2hb:10000000000000000:0:2: ++# BZ12701 %2hb:0B10000000000000000:0:-1: ++# BZ12701 %*2hb:0B10000000000000000:0:-1: ++# BZ12701 %2hb:0b10000000000000000:0:-1: ++# BZ12701 %*2hb:0b10000000000000000:0:-1: ++%2hb:10000000000101001:1:2:2: ++%*2hb:10000000000101001:0:2: ++# BZ12701 %2hb:0B10000000000101001:0:-1: ++# BZ12701 %*2hb:0B10000000000101001:0:-1: ++# BZ12701 %2hb:0b10000000000101001:0:-1: ++# BZ12701 %*2hb:0b10000000000101001:0:-1: ++%2hb:+0:1:2:0: ++%*2hb:+0:0:2: ++%2hb:+0B0:1:2:0: ++%*2hb:+0B0:0:2: ++%2hb:+0b0:1:2:0: ++%*2hb:+0b0:0:2: ++%2hb:+1:1:2:1: ++%*2hb:+1:0:2: ++%2hb:+0B1:1:2:0: ++%*2hb:+0B1:0:2: ++%2hb:+0b1:1:2:0: ++%*2hb:+0b1:0:2: ++%2hb:+101010:1:2:1: ++%*2hb:+101010:0:2: ++%2hb:+0B101010:1:2:0: ++%*2hb:+0B101010:0:2: ++%2hb:+0b101010:1:2:0: ++%*2hb:+0b101010:0:2: ++%2hb:+1111111111111111:1:2:1: ++%*2hb:+1111111111111111:0:2: ++%2hb:+0B1111111111111111:1:2:0: ++%*2hb:+0B1111111111111111:0:2: ++%2hb:+0b1111111111111111:1:2:0: ++%*2hb:+0b1111111111111111:0:2: ++%2hb:+10000000000000000:1:2:1: ++%*2hb:+10000000000000000:0:2: ++%2hb:+0B10000000000000000:1:2:0: ++%*2hb:+0B10000000000000000:0:2: ++%2hb:+0b10000000000000000:1:2:0: ++%*2hb:+0b10000000000000000:0:2: ++%2hb:+10000000000101001:1:2:1: ++%*2hb:+10000000000101001:0:2: ++%2hb:+0B10000000000101001:1:2:0: ++%*2hb:+0B10000000000101001:0:2: ++%2hb:+0b10000000000101001:1:2:0: ++%*2hb:+0b10000000000101001:0:2: ++%4hb::0:-1: ++%*4hb::0:-1: ++%4hb:-1111011:1:4:65529: ++%*4hb:-1111011:0:4: ++%4hb:-0B1111011:1:4:65535: ++%*4hb:-0B1111011:0:4: ++%4hb:-0b1111011:1:4:65535: ++%*4hb:-0b1111011:0:4: ++%4hb:-1:1:2:65535: ++%*4hb:-1:0:2: ++%4hb:-0B1:1:4:65535: ++%*4hb:-0B1:0:4: ++%4hb:-0b1:1:4:65535: ++%*4hb:-0b1:0:4: ++%4hb:-0:1:2:0: ++%*4hb:-0:0:2: ++%4hb:-0B0:1:4:0: ++%*4hb:-0B0:0:4: ++%4hb:-0b0:1:4:0: ++%*4hb:-0b0:0:4: ++%4hb:0:1:1:0: ++%*4hb:0:0:1: ++%4hb:0B0:1:3:0: ++%*4hb:0B0:0:3: ++%4hb:0b0:1:3:0: ++%*4hb:0b0:0:3: ++%4hb:1:1:1:1: ++%*4hb:1:0:1: ++%4hb:0B1:1:3:1: ++%*4hb:0B1:0:3: ++%4hb:0b1:1:3:1: ++%*4hb:0b1:0:3: ++%4hb:101010:1:4:10: ++%*4hb:101010:0:4: ++%4hb:0B101010:1:4:2: ++%*4hb:0B101010:0:4: ++%4hb:0b101010:1:4:2: ++%*4hb:0b101010:0:4: ++%4hb:1111111111111111:1:4:15: ++%*4hb:1111111111111111:0:4: ++%4hb:0B1111111111111111:1:4:3: ++%*4hb:0B1111111111111111:0:4: ++%4hb:0b1111111111111111:1:4:3: ++%*4hb:0b1111111111111111:0:4: ++%4hb:10000000000000000:1:4:8: ++%*4hb:10000000000000000:0:4: ++%4hb:0B10000000000000000:1:4:2: ++%*4hb:0B10000000000000000:0:4: ++%4hb:0b10000000000000000:1:4:2: ++%*4hb:0b10000000000000000:0:4: ++%4hb:10000000000101001:1:4:8: ++%*4hb:10000000000101001:0:4: ++%4hb:0B10000000000101001:1:4:2: ++%*4hb:0B10000000000101001:0:4: ++%4hb:0b10000000000101001:1:4:2: ++%*4hb:0b10000000000101001:0:4: ++%4hb:+0:1:2:0: ++%*4hb:+0:0:2: ++%4hb:+0B0:1:4:0: ++%*4hb:+0B0:0:4: ++%4hb:+0b0:1:4:0: ++%*4hb:+0b0:0:4: ++%4hb:+1:1:2:1: ++%*4hb:+1:0:2: ++%4hb:+0B1:1:4:1: ++%*4hb:+0B1:0:4: ++%4hb:+0b1:1:4:1: ++%*4hb:+0b1:0:4: ++%4hb:+101010:1:4:5: ++%*4hb:+101010:0:4: ++%4hb:+0B101010:1:4:1: ++%*4hb:+0B101010:0:4: ++%4hb:+0b101010:1:4:1: ++%*4hb:+0b101010:0:4: ++%4hb:+1111111111111111:1:4:7: ++%*4hb:+1111111111111111:0:4: ++%4hb:+0B1111111111111111:1:4:1: ++%*4hb:+0B1111111111111111:0:4: ++%4hb:+0b1111111111111111:1:4:1: ++%*4hb:+0b1111111111111111:0:4: ++%4hb:+10000000000000000:1:4:4: ++%*4hb:+10000000000000000:0:4: ++%4hb:+0B10000000000000000:1:4:1: ++%*4hb:+0B10000000000000000:0:4: ++%4hb:+0b10000000000000000:1:4:1: ++%*4hb:+0b10000000000000000:0:4: ++%4hb:+10000000000101001:1:4:4: ++%*4hb:+10000000000101001:0:4: ++%4hb:+0B10000000000101001:1:4:1: ++%*4hb:+0B10000000000101001:0:4: ++%4hb:+0b10000000000101001:1:4:1: ++%*4hb:+0b10000000000101001:0:4: ++%7hb::0:-1: ++%*7hb::0:-1: ++%7hb:-1111011:1:7:65475: ++%*7hb:-1111011:0:7: ++%7hb:-0B1111011:1:7:65521: ++%*7hb:-0B1111011:0:7: ++%7hb:-0b1111011:1:7:65521: ++%*7hb:-0b1111011:0:7: ++%7hb:-1:1:2:65535: ++%*7hb:-1:0:2: ++%7hb:-0B1:1:4:65535: ++%*7hb:-0B1:0:4: ++%7hb:-0b1:1:4:65535: ++%*7hb:-0b1:0:4: ++%7hb:-0:1:2:0: ++%*7hb:-0:0:2: ++%7hb:-0B0:1:4:0: ++%*7hb:-0B0:0:4: ++%7hb:-0b0:1:4:0: ++%*7hb:-0b0:0:4: ++%7hb:0:1:1:0: ++%*7hb:0:0:1: ++%7hb:0B0:1:3:0: ++%*7hb:0B0:0:3: ++%7hb:0b0:1:3:0: ++%*7hb:0b0:0:3: ++%7hb:1:1:1:1: ++%*7hb:1:0:1: ++%7hb:0B1:1:3:1: ++%*7hb:0B1:0:3: ++%7hb:0b1:1:3:1: ++%*7hb:0b1:0:3: ++%7hb:101010:1:6:42: ++%*7hb:101010:0:6: ++%7hb:0B101010:1:7:21: ++%*7hb:0B101010:0:7: ++%7hb:0b101010:1:7:21: ++%*7hb:0b101010:0:7: ++%7hb:1111111111111111:1:7:127: ++%*7hb:1111111111111111:0:7: ++%7hb:0B1111111111111111:1:7:31: ++%*7hb:0B1111111111111111:0:7: ++%7hb:0b1111111111111111:1:7:31: ++%*7hb:0b1111111111111111:0:7: ++%7hb:10000000000000000:1:7:64: ++%*7hb:10000000000000000:0:7: ++%7hb:0B10000000000000000:1:7:16: ++%*7hb:0B10000000000000000:0:7: ++%7hb:0b10000000000000000:1:7:16: ++%*7hb:0b10000000000000000:0:7: ++%7hb:10000000000101001:1:7:64: ++%*7hb:10000000000101001:0:7: ++%7hb:0B10000000000101001:1:7:16: ++%*7hb:0B10000000000101001:0:7: ++%7hb:0b10000000000101001:1:7:16: ++%*7hb:0b10000000000101001:0:7: ++%7hb:+0:1:2:0: ++%*7hb:+0:0:2: ++%7hb:+0B0:1:4:0: ++%*7hb:+0B0:0:4: ++%7hb:+0b0:1:4:0: ++%*7hb:+0b0:0:4: ++%7hb:+1:1:2:1: ++%*7hb:+1:0:2: ++%7hb:+0B1:1:4:1: ++%*7hb:+0B1:0:4: ++%7hb:+0b1:1:4:1: ++%*7hb:+0b1:0:4: ++%7hb:+101010:1:7:42: ++%*7hb:+101010:0:7: ++%7hb:+0B101010:1:7:10: ++%*7hb:+0B101010:0:7: ++%7hb:+0b101010:1:7:10: ++%*7hb:+0b101010:0:7: ++%7hb:+1111111111111111:1:7:63: ++%*7hb:+1111111111111111:0:7: ++%7hb:+0B1111111111111111:1:7:15: ++%*7hb:+0B1111111111111111:0:7: ++%7hb:+0b1111111111111111:1:7:15: ++%*7hb:+0b1111111111111111:0:7: ++%7hb:+10000000000000000:1:7:32: ++%*7hb:+10000000000000000:0:7: ++%7hb:+0B10000000000000000:1:7:8: ++%*7hb:+0B10000000000000000:0:7: ++%7hb:+0b10000000000000000:1:7:8: ++%*7hb:+0b10000000000000000:0:7: ++%7hb:+10000000000101001:1:7:32: ++%*7hb:+10000000000101001:0:7: ++%7hb:+0B10000000000101001:1:7:8: ++%*7hb:+0B10000000000101001:0:7: ++%7hb:+0b10000000000101001:1:7:8: ++%*7hb:+0b10000000000101001:0:7: ++%2hb: :0:-1: ++%*2hb: :0:-1: ++%2hb: -1111011:1:3:65535: ++%*2hb: -1111011:0:3: ++%2hb: -0B1111011:1:3:0: ++%*2hb: -0B1111011:0:3: ++%2hb: -0b1111011:1:3:0: ++%*2hb: -0b1111011:0:3: ++%2hb: -1:1:3:65535: ++%*2hb: -1:0:3: ++%2hb: -0B1:1:3:0: ++%*2hb: -0B1:0:3: ++%2hb: -0b1:1:3:0: ++%*2hb: -0b1:0:3: ++%2hb: -0:1:3:0: ++%*2hb: -0:0:3: ++%2hb: -0B0:1:3:0: ++%*2hb: -0B0:0:3: ++%2hb: -0b0:1:3:0: ++%*2hb: -0b0:0:3: ++%2hb: 0:1:2:0: ++%*2hb: 0:0:2: ++# BZ12701 %2hb: 0B0:0:-1: ++# BZ12701 %*2hb: 0B0:0:-1: ++# BZ12701 %2hb: 0b0:0:-1: ++# BZ12701 %*2hb: 0b0:0:-1: ++%2hb: 1:1:2:1: ++%*2hb: 1:0:2: ++# BZ12701 %2hb: 0B1:0:-1: ++# BZ12701 %*2hb: 0B1:0:-1: ++# BZ12701 %2hb: 0b1:0:-1: ++# BZ12701 %*2hb: 0b1:0:-1: ++%2hb: 101010:1:3:2: ++%*2hb: 101010:0:3: ++# BZ12701 %2hb: 0B101010:0:-1: ++# BZ12701 %*2hb: 0B101010:0:-1: ++# BZ12701 %2hb: 0b101010:0:-1: ++# BZ12701 %*2hb: 0b101010:0:-1: ++%2hb: 1111111111111111:1:3:3: ++%*2hb: 1111111111111111:0:3: ++# BZ12701 %2hb: 0B1111111111111111:0:-1: ++# BZ12701 %*2hb: 0B1111111111111111:0:-1: ++# BZ12701 %2hb: 0b1111111111111111:0:-1: ++# BZ12701 %*2hb: 0b1111111111111111:0:-1: ++%2hb: 10000000000000000:1:3:2: ++%*2hb: 10000000000000000:0:3: ++# BZ12701 %2hb: 0B10000000000000000:0:-1: ++# BZ12701 %*2hb: 0B10000000000000000:0:-1: ++# BZ12701 %2hb: 0b10000000000000000:0:-1: ++# BZ12701 %*2hb: 0b10000000000000000:0:-1: ++%2hb: 10000000000101001:1:3:2: ++%*2hb: 10000000000101001:0:3: ++# BZ12701 %2hb: 0B10000000000101001:0:-1: ++# BZ12701 %*2hb: 0B10000000000101001:0:-1: ++# BZ12701 %2hb: 0b10000000000101001:0:-1: ++# BZ12701 %*2hb: 0b10000000000101001:0:-1: ++%2hb: +0:1:3:0: ++%*2hb: +0:0:3: ++%2hb: +0B0:1:3:0: ++%*2hb: +0B0:0:3: ++%2hb: +0b0:1:3:0: ++%*2hb: +0b0:0:3: ++%2hb: +1:1:3:1: ++%*2hb: +1:0:3: ++%2hb: +0B1:1:3:0: ++%*2hb: +0B1:0:3: ++%2hb: +0b1:1:3:0: ++%*2hb: +0b1:0:3: ++%2hb: +101010:1:3:1: ++%*2hb: +101010:0:3: ++%2hb: +0B101010:1:3:0: ++%*2hb: +0B101010:0:3: ++%2hb: +0b101010:1:3:0: ++%*2hb: +0b101010:0:3: ++%2hb: +1111111111111111:1:3:1: ++%*2hb: +1111111111111111:0:3: ++%2hb: +0B1111111111111111:1:3:0: ++%*2hb: +0B1111111111111111:0:3: ++%2hb: +0b1111111111111111:1:3:0: ++%*2hb: +0b1111111111111111:0:3: ++%2hb: +10000000000000000:1:3:1: ++%*2hb: +10000000000000000:0:3: ++%2hb: +0B10000000000000000:1:3:0: ++%*2hb: +0B10000000000000000:0:3: ++%2hb: +0b10000000000000000:1:3:0: ++%*2hb: +0b10000000000000000:0:3: ++%2hb: +10000000000101001:1:3:1: ++%*2hb: +10000000000101001:0:3: ++%2hb: +0B10000000000101001:1:3:0: ++%*2hb: +0B10000000000101001:0:3: ++%2hb: +0b10000000000101001:1:3:0: ++%*2hb: +0b10000000000101001:0:3: ++%7hb: :0:-1: ++%*7hb: :0:-1: ++%7hb: -1111011:1:8:65475: ++%*7hb: -1111011:0:8: ++%7hb: -0B1111011:1:8:65521: ++%*7hb: -0B1111011:0:8: ++%7hb: -0b1111011:1:8:65521: ++%*7hb: -0b1111011:0:8: ++%7hb: -1:1:3:65535: ++%*7hb: -1:0:3: ++%7hb: -0B1:1:5:65535: ++%*7hb: -0B1:0:5: ++%7hb: -0b1:1:5:65535: ++%*7hb: -0b1:0:5: ++%7hb: -0:1:3:0: ++%*7hb: -0:0:3: ++%7hb: -0B0:1:5:0: ++%*7hb: -0B0:0:5: ++%7hb: -0b0:1:5:0: ++%*7hb: -0b0:0:5: ++%7hb: 0:1:2:0: ++%*7hb: 0:0:2: ++%7hb: 0B0:1:4:0: ++%*7hb: 0B0:0:4: ++%7hb: 0b0:1:4:0: ++%*7hb: 0b0:0:4: ++%7hb: 1:1:2:1: ++%*7hb: 1:0:2: ++%7hb: 0B1:1:4:1: ++%*7hb: 0B1:0:4: ++%7hb: 0b1:1:4:1: ++%*7hb: 0b1:0:4: ++%7hb: 101010:1:7:42: ++%*7hb: 101010:0:7: ++%7hb: 0B101010:1:8:21: ++%*7hb: 0B101010:0:8: ++%7hb: 0b101010:1:8:21: ++%*7hb: 0b101010:0:8: ++%7hb: 1111111111111111:1:8:127: ++%*7hb: 1111111111111111:0:8: ++%7hb: 0B1111111111111111:1:8:31: ++%*7hb: 0B1111111111111111:0:8: ++%7hb: 0b1111111111111111:1:8:31: ++%*7hb: 0b1111111111111111:0:8: ++%7hb: 10000000000000000:1:8:64: ++%*7hb: 10000000000000000:0:8: ++%7hb: 0B10000000000000000:1:8:16: ++%*7hb: 0B10000000000000000:0:8: ++%7hb: 0b10000000000000000:1:8:16: ++%*7hb: 0b10000000000000000:0:8: ++%7hb: 10000000000101001:1:8:64: ++%*7hb: 10000000000101001:0:8: ++%7hb: 0B10000000000101001:1:8:16: ++%*7hb: 0B10000000000101001:0:8: ++%7hb: 0b10000000000101001:1:8:16: ++%*7hb: 0b10000000000101001:0:8: ++%7hb: +0:1:3:0: ++%*7hb: +0:0:3: ++%7hb: +0B0:1:5:0: ++%*7hb: +0B0:0:5: ++%7hb: +0b0:1:5:0: ++%*7hb: +0b0:0:5: ++%7hb: +1:1:3:1: ++%*7hb: +1:0:3: ++%7hb: +0B1:1:5:1: ++%*7hb: +0B1:0:5: ++%7hb: +0b1:1:5:1: ++%*7hb: +0b1:0:5: ++%7hb: +101010:1:8:42: ++%*7hb: +101010:0:8: ++%7hb: +0B101010:1:8:10: ++%*7hb: +0B101010:0:8: ++%7hb: +0b101010:1:8:10: ++%*7hb: +0b101010:0:8: ++%7hb: +1111111111111111:1:8:63: ++%*7hb: +1111111111111111:0:8: ++%7hb: +0B1111111111111111:1:8:15: ++%*7hb: +0B1111111111111111:0:8: ++%7hb: +0b1111111111111111:1:8:15: ++%*7hb: +0b1111111111111111:0:8: ++%7hb: +10000000000000000:1:8:32: ++%*7hb: +10000000000000000:0:8: ++%7hb: +0B10000000000000000:1:8:8: ++%*7hb: +0B10000000000000000:0:8: ++%7hb: +0b10000000000000000:1:8:8: ++%*7hb: +0b10000000000000000:0:8: ++%7hb: +10000000000101001:1:8:32: ++%*7hb: +10000000000101001:0:8: ++%7hb: +0B10000000000101001:1:8:8: ++%*7hb: +0B10000000000101001:0:8: ++%7hb: +0b10000000000101001:1:8:8: ++%*7hb: +0b10000000000101001:0:8: +diff --git a/stdio-common/tst-scanf-format-ushort-o.input b/stdio-common/tst-scanf-format-ushort-o.input +new file mode 100644 +index 0000000000000000..8276be430ca0843b +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ushort-o.input +@@ -0,0 +1,434 @@ ++%ho::0:-1: ++%*ho::0:-1: ++%ho:-173:1:4:65413: ++%*ho:-173:0:4: ++%ho:-0173:1:5:65413: ++%*ho:-0173:0:5: ++%ho:-1:1:2:65535: ++%*ho:-1:0:2: ++%ho:-01:1:3:65535: ++%*ho:-01:0:3: ++%ho:-0:1:2:0: ++%*ho:-0:0:2: ++%ho:-00:1:3:0: ++%*ho:-00:0:3: ++%ho:0:1:1:0: ++%*ho:0:0:1: ++%ho:00:1:2:0: ++%*ho:00:0:2: ++%ho:1:1:1:1: ++%*ho:1:0:1: ++%ho:01:1:2:1: ++%*ho:01:0:2: ++%ho:52:1:2:42: ++%*ho:52:0:2: ++%ho:052:1:3:42: ++%*ho:052:0:3: ++%ho:177777:1:6:65535: ++%*ho:177777:0:6: ++%ho:0177777:1:7:65535: ++%*ho:0177777:0:7: ++%ho:200000:1:6:0: ++%*ho:200000:0:6: ++%ho:0200000:1:7:0: ++%*ho:0200000:0:7: ++%ho:200051:1:6:41: ++%*ho:200051:0:6: ++%ho:0200051:1:7:41: ++%*ho:0200051:0:7: ++%ho:+0:1:2:0: ++%*ho:+0:0:2: ++%ho:+00:1:3:0: ++%*ho:+00:0:3: ++%ho:+1:1:2:1: ++%*ho:+1:0:2: ++%ho:+01:1:3:1: ++%*ho:+01:0:3: ++%ho:+52:1:3:42: ++%*ho:+52:0:3: ++%ho:+052:1:4:42: ++%*ho:+052:0:4: ++%ho:+177777:1:7:65535: ++%*ho:+177777:0:7: ++%ho:+0177777:1:8:65535: ++%*ho:+0177777:0:8: ++%ho:+200000:1:7:0: ++%*ho:+200000:0:7: ++%ho:+0200000:1:8:0: ++%*ho:+0200000:0:8: ++%ho:+200051:1:7:41: ++%*ho:+200051:0:7: ++%ho:+0200051:1:8:41: ++%*ho:+0200051:0:8: ++%1ho::0:-1: ++%*1ho::0:-1: ++%1ho:-173:0:-1: ++%*1ho:-173:0:-1: ++%1ho:-0173:0:-1: ++%*1ho:-0173:0:-1: ++%1ho:-1:0:-1: ++%*1ho:-1:0:-1: ++%1ho:-01:0:-1: ++%*1ho:-01:0:-1: ++%1ho:-0:0:-1: ++%*1ho:-0:0:-1: ++%1ho:-00:0:-1: ++%*1ho:-00:0:-1: ++%1ho:0:1:1:0: ++%*1ho:0:0:1: ++%1ho:00:1:1:0: ++%*1ho:00:0:1: ++%1ho:1:1:1:1: ++%*1ho:1:0:1: ++%1ho:01:1:1:0: ++%*1ho:01:0:1: ++%1ho:52:1:1:5: ++%*1ho:52:0:1: ++%1ho:052:1:1:0: ++%*1ho:052:0:1: ++%1ho:177777:1:1:1: ++%*1ho:177777:0:1: ++%1ho:0177777:1:1:0: ++%*1ho:0177777:0:1: ++%1ho:200000:1:1:2: ++%*1ho:200000:0:1: ++%1ho:0200000:1:1:0: ++%*1ho:0200000:0:1: ++%1ho:200051:1:1:2: ++%*1ho:200051:0:1: ++%1ho:0200051:1:1:0: ++%*1ho:0200051:0:1: ++%1ho:+0:0:-1: ++%*1ho:+0:0:-1: ++%1ho:+00:0:-1: ++%*1ho:+00:0:-1: ++%1ho:+1:0:-1: ++%*1ho:+1:0:-1: ++%1ho:+01:0:-1: ++%*1ho:+01:0:-1: ++%1ho:+52:0:-1: ++%*1ho:+52:0:-1: ++%1ho:+052:0:-1: ++%*1ho:+052:0:-1: ++%1ho:+177777:0:-1: ++%*1ho:+177777:0:-1: ++%1ho:+0177777:0:-1: ++%*1ho:+0177777:0:-1: ++%1ho:+200000:0:-1: ++%*1ho:+200000:0:-1: ++%1ho:+0200000:0:-1: ++%*1ho:+0200000:0:-1: ++%1ho:+200051:0:-1: ++%*1ho:+200051:0:-1: ++%1ho:+0200051:0:-1: ++%*1ho:+0200051:0:-1: ++%2ho::0:-1: ++%*2ho::0:-1: ++%2ho:-173:1:2:65535: ++%*2ho:-173:0:2: ++%2ho:-0173:1:2:0: ++%*2ho:-0173:0:2: ++%2ho:-1:1:2:65535: ++%*2ho:-1:0:2: ++%2ho:-01:1:2:0: ++%*2ho:-01:0:2: ++%2ho:-0:1:2:0: ++%*2ho:-0:0:2: ++%2ho:-00:1:2:0: ++%*2ho:-00:0:2: ++%2ho:0:1:1:0: ++%*2ho:0:0:1: ++%2ho:00:1:2:0: ++%*2ho:00:0:2: ++%2ho:1:1:1:1: ++%*2ho:1:0:1: ++%2ho:01:1:2:1: ++%*2ho:01:0:2: ++%2ho:52:1:2:42: ++%*2ho:52:0:2: ++%2ho:052:1:2:5: ++%*2ho:052:0:2: ++%2ho:177777:1:2:15: ++%*2ho:177777:0:2: ++%2ho:0177777:1:2:1: ++%*2ho:0177777:0:2: ++%2ho:200000:1:2:16: ++%*2ho:200000:0:2: ++%2ho:0200000:1:2:2: ++%*2ho:0200000:0:2: ++%2ho:200051:1:2:16: ++%*2ho:200051:0:2: ++%2ho:0200051:1:2:2: ++%*2ho:0200051:0:2: ++%2ho:+0:1:2:0: ++%*2ho:+0:0:2: ++%2ho:+00:1:2:0: ++%*2ho:+00:0:2: ++%2ho:+1:1:2:1: ++%*2ho:+1:0:2: ++%2ho:+01:1:2:0: ++%*2ho:+01:0:2: ++%2ho:+52:1:2:5: ++%*2ho:+52:0:2: ++%2ho:+052:1:2:0: ++%*2ho:+052:0:2: ++%2ho:+177777:1:2:1: ++%*2ho:+177777:0:2: ++%2ho:+0177777:1:2:0: ++%*2ho:+0177777:0:2: ++%2ho:+200000:1:2:2: ++%*2ho:+200000:0:2: ++%2ho:+0200000:1:2:0: ++%*2ho:+0200000:0:2: ++%2ho:+200051:1:2:2: ++%*2ho:+200051:0:2: ++%2ho:+0200051:1:2:0: ++%*2ho:+0200051:0:2: ++%4ho::0:-1: ++%*4ho::0:-1: ++%4ho:-173:1:4:65413: ++%*4ho:-173:0:4: ++%4ho:-0173:1:4:65521: ++%*4ho:-0173:0:4: ++%4ho:-1:1:2:65535: ++%*4ho:-1:0:2: ++%4ho:-01:1:3:65535: ++%*4ho:-01:0:3: ++%4ho:-0:1:2:0: ++%*4ho:-0:0:2: ++%4ho:-00:1:3:0: ++%*4ho:-00:0:3: ++%4ho:0:1:1:0: ++%*4ho:0:0:1: ++%4ho:00:1:2:0: ++%*4ho:00:0:2: ++%4ho:1:1:1:1: ++%*4ho:1:0:1: ++%4ho:01:1:2:1: ++%*4ho:01:0:2: ++%4ho:52:1:2:42: ++%*4ho:52:0:2: ++%4ho:052:1:3:42: ++%*4ho:052:0:3: ++%4ho:177777:1:4:1023: ++%*4ho:177777:0:4: ++%4ho:0177777:1:4:127: ++%*4ho:0177777:0:4: ++%4ho:200000:1:4:1024: ++%*4ho:200000:0:4: ++%4ho:0200000:1:4:128: ++%*4ho:0200000:0:4: ++%4ho:200051:1:4:1024: ++%*4ho:200051:0:4: ++%4ho:0200051:1:4:128: ++%*4ho:0200051:0:4: ++%4ho:+0:1:2:0: ++%*4ho:+0:0:2: ++%4ho:+00:1:3:0: ++%*4ho:+00:0:3: ++%4ho:+1:1:2:1: ++%*4ho:+1:0:2: ++%4ho:+01:1:3:1: ++%*4ho:+01:0:3: ++%4ho:+52:1:3:42: ++%*4ho:+52:0:3: ++%4ho:+052:1:4:42: ++%*4ho:+052:0:4: ++%4ho:+177777:1:4:127: ++%*4ho:+177777:0:4: ++%4ho:+0177777:1:4:15: ++%*4ho:+0177777:0:4: ++%4ho:+200000:1:4:128: ++%*4ho:+200000:0:4: ++%4ho:+0200000:1:4:16: ++%*4ho:+0200000:0:4: ++%4ho:+200051:1:4:128: ++%*4ho:+200051:0:4: ++%4ho:+0200051:1:4:16: ++%*4ho:+0200051:0:4: ++%7ho::0:-1: ++%*7ho::0:-1: ++%7ho:-173:1:4:65413: ++%*7ho:-173:0:4: ++%7ho:-0173:1:5:65413: ++%*7ho:-0173:0:5: ++%7ho:-1:1:2:65535: ++%*7ho:-1:0:2: ++%7ho:-01:1:3:65535: ++%*7ho:-01:0:3: ++%7ho:-0:1:2:0: ++%*7ho:-0:0:2: ++%7ho:-00:1:3:0: ++%*7ho:-00:0:3: ++%7ho:0:1:1:0: ++%*7ho:0:0:1: ++%7ho:00:1:2:0: ++%*7ho:00:0:2: ++%7ho:1:1:1:1: ++%*7ho:1:0:1: ++%7ho:01:1:2:1: ++%*7ho:01:0:2: ++%7ho:52:1:2:42: ++%*7ho:52:0:2: ++%7ho:052:1:3:42: ++%*7ho:052:0:3: ++%7ho:177777:1:6:65535: ++%*7ho:177777:0:6: ++%7ho:0177777:1:7:65535: ++%*7ho:0177777:0:7: ++%7ho:200000:1:6:0: ++%*7ho:200000:0:6: ++%7ho:0200000:1:7:0: ++%*7ho:0200000:0:7: ++%7ho:200051:1:6:41: ++%*7ho:200051:0:6: ++%7ho:0200051:1:7:41: ++%*7ho:0200051:0:7: ++%7ho:+0:1:2:0: ++%*7ho:+0:0:2: ++%7ho:+00:1:3:0: ++%*7ho:+00:0:3: ++%7ho:+1:1:2:1: ++%*7ho:+1:0:2: ++%7ho:+01:1:3:1: ++%*7ho:+01:0:3: ++%7ho:+52:1:3:42: ++%*7ho:+52:0:3: ++%7ho:+052:1:4:42: ++%*7ho:+052:0:4: ++%7ho:+177777:1:7:65535: ++%*7ho:+177777:0:7: ++%7ho:+0177777:1:7:8191: ++%*7ho:+0177777:0:7: ++%7ho:+200000:1:7:0: ++%*7ho:+200000:0:7: ++%7ho:+0200000:1:7:8192: ++%*7ho:+0200000:0:7: ++%7ho:+200051:1:7:41: ++%*7ho:+200051:0:7: ++%7ho:+0200051:1:7:8197: ++%*7ho:+0200051:0:7: ++%2ho: :0:-1: ++%*2ho: :0:-1: ++%2ho: -173:1:3:65535: ++%*2ho: -173:0:3: ++%2ho: -0173:1:3:0: ++%*2ho: -0173:0:3: ++%2ho: -1:1:3:65535: ++%*2ho: -1:0:3: ++%2ho: -01:1:3:0: ++%*2ho: -01:0:3: ++%2ho: -0:1:3:0: ++%*2ho: -0:0:3: ++%2ho: -00:1:3:0: ++%*2ho: -00:0:3: ++%2ho: 0:1:2:0: ++%*2ho: 0:0:2: ++%2ho: 00:1:3:0: ++%*2ho: 00:0:3: ++%2ho: 1:1:2:1: ++%*2ho: 1:0:2: ++%2ho: 01:1:3:1: ++%*2ho: 01:0:3: ++%2ho: 52:1:3:42: ++%*2ho: 52:0:3: ++%2ho: 052:1:3:5: ++%*2ho: 052:0:3: ++%2ho: 177777:1:3:15: ++%*2ho: 177777:0:3: ++%2ho: 0177777:1:3:1: ++%*2ho: 0177777:0:3: ++%2ho: 200000:1:3:16: ++%*2ho: 200000:0:3: ++%2ho: 0200000:1:3:2: ++%*2ho: 0200000:0:3: ++%2ho: 200051:1:3:16: ++%*2ho: 200051:0:3: ++%2ho: 0200051:1:3:2: ++%*2ho: 0200051:0:3: ++%2ho: +0:1:3:0: ++%*2ho: +0:0:3: ++%2ho: +00:1:3:0: ++%*2ho: +00:0:3: ++%2ho: +1:1:3:1: ++%*2ho: +1:0:3: ++%2ho: +01:1:3:0: ++%*2ho: +01:0:3: ++%2ho: +52:1:3:5: ++%*2ho: +52:0:3: ++%2ho: +052:1:3:0: ++%*2ho: +052:0:3: ++%2ho: +177777:1:3:1: ++%*2ho: +177777:0:3: ++%2ho: +0177777:1:3:0: ++%*2ho: +0177777:0:3: ++%2ho: +200000:1:3:2: ++%*2ho: +200000:0:3: ++%2ho: +0200000:1:3:0: ++%*2ho: +0200000:0:3: ++%2ho: +200051:1:3:2: ++%*2ho: +200051:0:3: ++%2ho: +0200051:1:3:0: ++%*2ho: +0200051:0:3: ++%7ho: :0:-1: ++%*7ho: :0:-1: ++%7ho: -173:1:5:65413: ++%*7ho: -173:0:5: ++%7ho: -0173:1:6:65413: ++%*7ho: -0173:0:6: ++%7ho: -1:1:3:65535: ++%*7ho: -1:0:3: ++%7ho: -01:1:4:65535: ++%*7ho: -01:0:4: ++%7ho: -0:1:3:0: ++%*7ho: -0:0:3: ++%7ho: -00:1:4:0: ++%*7ho: -00:0:4: ++%7ho: 0:1:2:0: ++%*7ho: 0:0:2: ++%7ho: 00:1:3:0: ++%*7ho: 00:0:3: ++%7ho: 1:1:2:1: ++%*7ho: 1:0:2: ++%7ho: 01:1:3:1: ++%*7ho: 01:0:3: ++%7ho: 52:1:3:42: ++%*7ho: 52:0:3: ++%7ho: 052:1:4:42: ++%*7ho: 052:0:4: ++%7ho: 177777:1:7:65535: ++%*7ho: 177777:0:7: ++%7ho: 0177777:1:8:65535: ++%*7ho: 0177777:0:8: ++%7ho: 200000:1:7:0: ++%*7ho: 200000:0:7: ++%7ho: 0200000:1:8:0: ++%*7ho: 0200000:0:8: ++%7ho: 200051:1:7:41: ++%*7ho: 200051:0:7: ++%7ho: 0200051:1:8:41: ++%*7ho: 0200051:0:8: ++%7ho: +0:1:3:0: ++%*7ho: +0:0:3: ++%7ho: +00:1:4:0: ++%*7ho: +00:0:4: ++%7ho: +1:1:3:1: ++%*7ho: +1:0:3: ++%7ho: +01:1:4:1: ++%*7ho: +01:0:4: ++%7ho: +52:1:4:42: ++%*7ho: +52:0:4: ++%7ho: +052:1:5:42: ++%*7ho: +052:0:5: ++%7ho: +177777:1:8:65535: ++%*7ho: +177777:0:8: ++%7ho: +0177777:1:8:8191: ++%*7ho: +0177777:0:8: ++%7ho: +200000:1:8:0: ++%*7ho: +200000:0:8: ++%7ho: +0200000:1:8:8192: ++%*7ho: +0200000:0:8: ++%7ho: +200051:1:8:41: ++%*7ho: +200051:0:8: ++%7ho: +0200051:1:8:8197: ++%*7ho: +0200051:0:8: +diff --git a/stdio-common/tst-scanf-format-ushort-u.input b/stdio-common/tst-scanf-format-ushort-u.input +new file mode 100644 +index 0000000000000000..56f7da52e168a4a0 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ushort-u.input +@@ -0,0 +1,224 @@ ++%hu::0:-1: ++%*hu::0:-1: ++%hu:-123:1:4:65413: ++%*hu:-123:0:4: ++%hu:-1:1:2:65535: ++%*hu:-1:0:2: ++%hu:-0:1:2:0: ++%*hu:-0:0:2: ++%hu:0:1:1:0: ++%*hu:0:0:1: ++%hu:1:1:1:1: ++%*hu:1:0:1: ++%hu:42:1:2:42: ++%*hu:42:0:2: ++%hu:65535:1:5:65535: ++%*hu:65535:0:5: ++%hu:65536:1:5:0: ++%*hu:65536:0:5: ++%hu:65577:1:5:41: ++%*hu:65577:0:5: ++%hu:+0:1:2:0: ++%*hu:+0:0:2: ++%hu:+1:1:2:1: ++%*hu:+1:0:2: ++%hu:+42:1:3:42: ++%*hu:+42:0:3: ++%hu:+65535:1:6:65535: ++%*hu:+65535:0:6: ++%hu:+65536:1:6:0: ++%*hu:+65536:0:6: ++%hu:+65577:1:6:41: ++%*hu:+65577:0:6: ++%1hu::0:-1: ++%*1hu::0:-1: ++%1hu:-123:0:-1: ++%*1hu:-123:0:-1: ++%1hu:-1:0:-1: ++%*1hu:-1:0:-1: ++%1hu:-0:0:-1: ++%*1hu:-0:0:-1: ++%1hu:0:1:1:0: ++%*1hu:0:0:1: ++%1hu:1:1:1:1: ++%*1hu:1:0:1: ++%1hu:42:1:1:4: ++%*1hu:42:0:1: ++%1hu:65535:1:1:6: ++%*1hu:65535:0:1: ++%1hu:65536:1:1:6: ++%*1hu:65536:0:1: ++%1hu:65577:1:1:6: ++%*1hu:65577:0:1: ++%1hu:+0:0:-1: ++%*1hu:+0:0:-1: ++%1hu:+1:0:-1: ++%*1hu:+1:0:-1: ++%1hu:+42:0:-1: ++%*1hu:+42:0:-1: ++%1hu:+65535:0:-1: ++%*1hu:+65535:0:-1: ++%1hu:+65536:0:-1: ++%*1hu:+65536:0:-1: ++%1hu:+65577:0:-1: ++%*1hu:+65577:0:-1: ++%2hu::0:-1: ++%*2hu::0:-1: ++%2hu:-123:1:2:65535: ++%*2hu:-123:0:2: ++%2hu:-1:1:2:65535: ++%*2hu:-1:0:2: ++%2hu:-0:1:2:0: ++%*2hu:-0:0:2: ++%2hu:0:1:1:0: ++%*2hu:0:0:1: ++%2hu:1:1:1:1: ++%*2hu:1:0:1: ++%2hu:42:1:2:42: ++%*2hu:42:0:2: ++%2hu:65535:1:2:65: ++%*2hu:65535:0:2: ++%2hu:65536:1:2:65: ++%*2hu:65536:0:2: ++%2hu:65577:1:2:65: ++%*2hu:65577:0:2: ++%2hu:+0:1:2:0: ++%*2hu:+0:0:2: ++%2hu:+1:1:2:1: ++%*2hu:+1:0:2: ++%2hu:+42:1:2:4: ++%*2hu:+42:0:2: ++%2hu:+65535:1:2:6: ++%*2hu:+65535:0:2: ++%2hu:+65536:1:2:6: ++%*2hu:+65536:0:2: ++%2hu:+65577:1:2:6: ++%*2hu:+65577:0:2: ++%4hu::0:-1: ++%*4hu::0:-1: ++%4hu:-123:1:4:65413: ++%*4hu:-123:0:4: ++%4hu:-1:1:2:65535: ++%*4hu:-1:0:2: ++%4hu:-0:1:2:0: ++%*4hu:-0:0:2: ++%4hu:0:1:1:0: ++%*4hu:0:0:1: ++%4hu:1:1:1:1: ++%*4hu:1:0:1: ++%4hu:42:1:2:42: ++%*4hu:42:0:2: ++%4hu:65535:1:4:6553: ++%*4hu:65535:0:4: ++%4hu:65536:1:4:6553: ++%*4hu:65536:0:4: ++%4hu:65577:1:4:6557: ++%*4hu:65577:0:4: ++%4hu:+0:1:2:0: ++%*4hu:+0:0:2: ++%4hu:+1:1:2:1: ++%*4hu:+1:0:2: ++%4hu:+42:1:3:42: ++%*4hu:+42:0:3: ++%4hu:+65535:1:4:655: ++%*4hu:+65535:0:4: ++%4hu:+65536:1:4:655: ++%*4hu:+65536:0:4: ++%4hu:+65577:1:4:655: ++%*4hu:+65577:0:4: ++%7hu::0:-1: ++%*7hu::0:-1: ++%7hu:-123:1:4:65413: ++%*7hu:-123:0:4: ++%7hu:-1:1:2:65535: ++%*7hu:-1:0:2: ++%7hu:-0:1:2:0: ++%*7hu:-0:0:2: ++%7hu:0:1:1:0: ++%*7hu:0:0:1: ++%7hu:1:1:1:1: ++%*7hu:1:0:1: ++%7hu:42:1:2:42: ++%*7hu:42:0:2: ++%7hu:65535:1:5:65535: ++%*7hu:65535:0:5: ++%7hu:65536:1:5:0: ++%*7hu:65536:0:5: ++%7hu:65577:1:5:41: ++%*7hu:65577:0:5: ++%7hu:+0:1:2:0: ++%*7hu:+0:0:2: ++%7hu:+1:1:2:1: ++%*7hu:+1:0:2: ++%7hu:+42:1:3:42: ++%*7hu:+42:0:3: ++%7hu:+65535:1:6:65535: ++%*7hu:+65535:0:6: ++%7hu:+65536:1:6:0: ++%*7hu:+65536:0:6: ++%7hu:+65577:1:6:41: ++%*7hu:+65577:0:6: ++%2hu: :0:-1: ++%*2hu: :0:-1: ++%2hu: -123:1:3:65535: ++%*2hu: -123:0:3: ++%2hu: -1:1:3:65535: ++%*2hu: -1:0:3: ++%2hu: -0:1:3:0: ++%*2hu: -0:0:3: ++%2hu: 0:1:2:0: ++%*2hu: 0:0:2: ++%2hu: 1:1:2:1: ++%*2hu: 1:0:2: ++%2hu: 42:1:3:42: ++%*2hu: 42:0:3: ++%2hu: 65535:1:3:65: ++%*2hu: 65535:0:3: ++%2hu: 65536:1:3:65: ++%*2hu: 65536:0:3: ++%2hu: 65577:1:3:65: ++%*2hu: 65577:0:3: ++%2hu: +0:1:3:0: ++%*2hu: +0:0:3: ++%2hu: +1:1:3:1: ++%*2hu: +1:0:3: ++%2hu: +42:1:3:4: ++%*2hu: +42:0:3: ++%2hu: +65535:1:3:6: ++%*2hu: +65535:0:3: ++%2hu: +65536:1:3:6: ++%*2hu: +65536:0:3: ++%2hu: +65577:1:3:6: ++%*2hu: +65577:0:3: ++%7hu: :0:-1: ++%*7hu: :0:-1: ++%7hu: -123:1:5:65413: ++%*7hu: -123:0:5: ++%7hu: -1:1:3:65535: ++%*7hu: -1:0:3: ++%7hu: -0:1:3:0: ++%*7hu: -0:0:3: ++%7hu: 0:1:2:0: ++%*7hu: 0:0:2: ++%7hu: 1:1:2:1: ++%*7hu: 1:0:2: ++%7hu: 42:1:3:42: ++%*7hu: 42:0:3: ++%7hu: 65535:1:6:65535: ++%*7hu: 65535:0:6: ++%7hu: 65536:1:6:0: ++%*7hu: 65536:0:6: ++%7hu: 65577:1:6:41: ++%*7hu: 65577:0:6: ++%7hu: +0:1:3:0: ++%*7hu: +0:0:3: ++%7hu: +1:1:3:1: ++%*7hu: +1:0:3: ++%7hu: +42:1:4:42: ++%*7hu: +42:0:4: ++%7hu: +65535:1:7:65535: ++%*7hu: +65535:0:7: ++%7hu: +65536:1:7:0: ++%*7hu: +65536:0:7: ++%7hu: +65577:1:7:41: ++%*7hu: +65577:0:7: +diff --git a/stdio-common/tst-scanf-format-ushort-x.input b/stdio-common/tst-scanf-format-ushort-x.input +new file mode 100644 +index 0000000000000000..a0ec8846d6d51f85 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ushort-x.input +@@ -0,0 +1,714 @@ ++%hx::0:-1: ++%*hx::0:-1: ++%hx:-7b:1:3:65413: ++%*hx:-7b:0:3: ++%hx:-7B:1:3:65413: ++%*hx:-7B:0:3: ++%hx:-0X7b:1:5:65413: ++%*hx:-0X7b:0:5: ++%hx:-0x7B:1:5:65413: ++%*hx:-0x7B:0:5: ++%hx:-1:1:2:65535: ++%*hx:-1:0:2: ++%hx:-0X1:1:4:65535: ++%*hx:-0X1:0:4: ++%hx:-0x1:1:4:65535: ++%*hx:-0x1:0:4: ++%hx:-0:1:2:0: ++%*hx:-0:0:2: ++%hx:-0X0:1:4:0: ++%*hx:-0X0:0:4: ++%hx:-0x0:1:4:0: ++%*hx:-0x0:0:4: ++%hx:0:1:1:0: ++%*hx:0:0:1: ++%hx:0X0:1:3:0: ++%*hx:0X0:0:3: ++%hx:0x0:1:3:0: ++%*hx:0x0:0:3: ++%hx:1:1:1:1: ++%*hx:1:0:1: ++%hx:0X1:1:3:1: ++%*hx:0X1:0:3: ++%hx:0x1:1:3:1: ++%*hx:0x1:0:3: ++%hx:2a:1:2:42: ++%*hx:2a:0:2: ++%hx:2A:1:2:42: ++%*hx:2A:0:2: ++%hx:0X2a:1:4:42: ++%*hx:0X2a:0:4: ++%hx:0x2A:1:4:42: ++%*hx:0x2A:0:4: ++%hx:ffff:1:4:65535: ++%*hx:ffff:0:4: ++%hx:FFFF:1:4:65535: ++%*hx:FFFF:0:4: ++%hx:0Xffff:1:6:65535: ++%*hx:0Xffff:0:6: ++%hx:0xFFFF:1:6:65535: ++%*hx:0xFFFF:0:6: ++%hx:10000:1:5:0: ++%*hx:10000:0:5: ++%hx:0X10000:1:7:0: ++%*hx:0X10000:0:7: ++%hx:0x10000:1:7:0: ++%*hx:0x10000:0:7: ++%hx:10029:1:5:41: ++%*hx:10029:0:5: ++%hx:0X10029:1:7:41: ++%*hx:0X10029:0:7: ++%hx:0x10029:1:7:41: ++%*hx:0x10029:0:7: ++%hx:+0:1:2:0: ++%*hx:+0:0:2: ++%hx:+0X0:1:4:0: ++%*hx:+0X0:0:4: ++%hx:+0x0:1:4:0: ++%*hx:+0x0:0:4: ++%hx:+1:1:2:1: ++%*hx:+1:0:2: ++%hx:+0X1:1:4:1: ++%*hx:+0X1:0:4: ++%hx:+0x1:1:4:1: ++%*hx:+0x1:0:4: ++%hx:+2a:1:3:42: ++%*hx:+2a:0:3: ++%hx:+2A:1:3:42: ++%*hx:+2A:0:3: ++%hx:+0X2a:1:5:42: ++%*hx:+0X2a:0:5: ++%hx:+0x2A:1:5:42: ++%*hx:+0x2A:0:5: ++%hx:+ffff:1:5:65535: ++%*hx:+ffff:0:5: ++%hx:+FFFF:1:5:65535: ++%*hx:+FFFF:0:5: ++%hx:+0Xffff:1:7:65535: ++%*hx:+0Xffff:0:7: ++%hx:+0xFFFF:1:7:65535: ++%*hx:+0xFFFF:0:7: ++%hx:+10000:1:6:0: ++%*hx:+10000:0:6: ++%hx:+0X10000:1:8:0: ++%*hx:+0X10000:0:8: ++%hx:+0x10000:1:8:0: ++%*hx:+0x10000:0:8: ++%hx:+10029:1:6:41: ++%*hx:+10029:0:6: ++%hx:+0X10029:1:8:41: ++%*hx:+0X10029:0:8: ++%hx:+0x10029:1:8:41: ++%*hx:+0x10029:0:8: ++%1hx::0:-1: ++%*1hx::0:-1: ++%1hx:-7b:0:-1: ++%*1hx:-7b:0:-1: ++%1hx:-7B:0:-1: ++%*1hx:-7B:0:-1: ++%1hx:-0X7b:0:-1: ++%*1hx:-0X7b:0:-1: ++%1hx:-0x7B:0:-1: ++%*1hx:-0x7B:0:-1: ++%1hx:-1:0:-1: ++%*1hx:-1:0:-1: ++%1hx:-0X1:0:-1: ++%*1hx:-0X1:0:-1: ++%1hx:-0x1:0:-1: ++%*1hx:-0x1:0:-1: ++%1hx:-0:0:-1: ++%*1hx:-0:0:-1: ++%1hx:-0X0:0:-1: ++%*1hx:-0X0:0:-1: ++%1hx:-0x0:0:-1: ++%*1hx:-0x0:0:-1: ++%1hx:0:1:1:0: ++%*1hx:0:0:1: ++%1hx:0X0:1:1:0: ++%*1hx:0X0:0:1: ++%1hx:0x0:1:1:0: ++%*1hx:0x0:0:1: ++%1hx:1:1:1:1: ++%*1hx:1:0:1: ++%1hx:0X1:1:1:0: ++%*1hx:0X1:0:1: ++%1hx:0x1:1:1:0: ++%*1hx:0x1:0:1: ++%1hx:2a:1:1:2: ++%*1hx:2a:0:1: ++%1hx:2A:1:1:2: ++%*1hx:2A:0:1: ++%1hx:0X2a:1:1:0: ++%*1hx:0X2a:0:1: ++%1hx:0x2A:1:1:0: ++%*1hx:0x2A:0:1: ++%1hx:ffff:1:1:15: ++%*1hx:ffff:0:1: ++%1hx:FFFF:1:1:15: ++%*1hx:FFFF:0:1: ++%1hx:0Xffff:1:1:0: ++%*1hx:0Xffff:0:1: ++%1hx:0xFFFF:1:1:0: ++%*1hx:0xFFFF:0:1: ++%1hx:10000:1:1:1: ++%*1hx:10000:0:1: ++%1hx:0X10000:1:1:0: ++%*1hx:0X10000:0:1: ++%1hx:0x10000:1:1:0: ++%*1hx:0x10000:0:1: ++%1hx:10029:1:1:1: ++%*1hx:10029:0:1: ++%1hx:0X10029:1:1:0: ++%*1hx:0X10029:0:1: ++%1hx:0x10029:1:1:0: ++%*1hx:0x10029:0:1: ++%1hx:+0:0:-1: ++%*1hx:+0:0:-1: ++%1hx:+0X0:0:-1: ++%*1hx:+0X0:0:-1: ++%1hx:+0x0:0:-1: ++%*1hx:+0x0:0:-1: ++%1hx:+1:0:-1: ++%*1hx:+1:0:-1: ++%1hx:+0X1:0:-1: ++%*1hx:+0X1:0:-1: ++%1hx:+0x1:0:-1: ++%*1hx:+0x1:0:-1: ++%1hx:+2a:0:-1: ++%*1hx:+2a:0:-1: ++%1hx:+2A:0:-1: ++%*1hx:+2A:0:-1: ++%1hx:+0X2a:0:-1: ++%*1hx:+0X2a:0:-1: ++%1hx:+0x2A:0:-1: ++%*1hx:+0x2A:0:-1: ++%1hx:+ffff:0:-1: ++%*1hx:+ffff:0:-1: ++%1hx:+FFFF:0:-1: ++%*1hx:+FFFF:0:-1: ++%1hx:+0Xffff:0:-1: ++%*1hx:+0Xffff:0:-1: ++%1hx:+0xFFFF:0:-1: ++%*1hx:+0xFFFF:0:-1: ++%1hx:+10000:0:-1: ++%*1hx:+10000:0:-1: ++%1hx:+0X10000:0:-1: ++%*1hx:+0X10000:0:-1: ++%1hx:+0x10000:0:-1: ++%*1hx:+0x10000:0:-1: ++%1hx:+10029:0:-1: ++%*1hx:+10029:0:-1: ++%1hx:+0X10029:0:-1: ++%*1hx:+0X10029:0:-1: ++%1hx:+0x10029:0:-1: ++%*1hx:+0x10029:0:-1: ++%2hx::0:-1: ++%*2hx::0:-1: ++%2hx:-7b:1:2:65529: ++%*2hx:-7b:0:2: ++%2hx:-7B:1:2:65529: ++%*2hx:-7B:0:2: ++%2hx:-0X7b:1:2:0: ++%*2hx:-0X7b:0:2: ++%2hx:-0x7B:1:2:0: ++%*2hx:-0x7B:0:2: ++%2hx:-1:1:2:65535: ++%*2hx:-1:0:2: ++%2hx:-0X1:1:2:0: ++%*2hx:-0X1:0:2: ++%2hx:-0x1:1:2:0: ++%*2hx:-0x1:0:2: ++%2hx:-0:1:2:0: ++%*2hx:-0:0:2: ++%2hx:-0X0:1:2:0: ++%*2hx:-0X0:0:2: ++%2hx:-0x0:1:2:0: ++%*2hx:-0x0:0:2: ++%2hx:0:1:1:0: ++%*2hx:0:0:1: ++# BZ12701 %2hx:0X0:0:-1: ++# BZ12701 %*2hx:0X0:0:-1: ++# BZ12701 %2hx:0x0:0:-1: ++# BZ12701 %*2hx:0x0:0:-1: ++%2hx:1:1:1:1: ++%*2hx:1:0:1: ++# BZ12701 %2hx:0X1:0:-1: ++# BZ12701 %*2hx:0X1:0:-1: ++# BZ12701 %2hx:0x1:0:-1: ++# BZ12701 %*2hx:0x1:0:-1: ++%2hx:2a:1:2:42: ++%*2hx:2a:0:2: ++%2hx:2A:1:2:42: ++%*2hx:2A:0:2: ++# BZ12701 %2hx:0X2a:0:-1: ++# BZ12701 %*2hx:0X2a:0:-1: ++# BZ12701 %2hx:0x2A:0:-1: ++# BZ12701 %*2hx:0x2A:0:-1: ++%2hx:ffff:1:2:255: ++%*2hx:ffff:0:2: ++%2hx:FFFF:1:2:255: ++%*2hx:FFFF:0:2: ++# BZ12701 %2hx:0Xffff:0:-1: ++# BZ12701 %*2hx:0Xffff:0:-1: ++# BZ12701 %2hx:0xFFFF:0:-1: ++# BZ12701 %*2hx:0xFFFF:0:-1: ++%2hx:10000:1:2:16: ++%*2hx:10000:0:2: ++# BZ12701 %2hx:0X10000:0:-1: ++# BZ12701 %*2hx:0X10000:0:-1: ++# BZ12701 %2hx:0x10000:0:-1: ++# BZ12701 %*2hx:0x10000:0:-1: ++%2hx:10029:1:2:16: ++%*2hx:10029:0:2: ++# BZ12701 %2hx:0X10029:0:-1: ++# BZ12701 %*2hx:0X10029:0:-1: ++# BZ12701 %2hx:0x10029:0:-1: ++# BZ12701 %*2hx:0x10029:0:-1: ++%2hx:+0:1:2:0: ++%*2hx:+0:0:2: ++%2hx:+0X0:1:2:0: ++%*2hx:+0X0:0:2: ++%2hx:+0x0:1:2:0: ++%*2hx:+0x0:0:2: ++%2hx:+1:1:2:1: ++%*2hx:+1:0:2: ++%2hx:+0X1:1:2:0: ++%*2hx:+0X1:0:2: ++%2hx:+0x1:1:2:0: ++%*2hx:+0x1:0:2: ++%2hx:+2a:1:2:2: ++%*2hx:+2a:0:2: ++%2hx:+2A:1:2:2: ++%*2hx:+2A:0:2: ++%2hx:+0X2a:1:2:0: ++%*2hx:+0X2a:0:2: ++%2hx:+0x2A:1:2:0: ++%*2hx:+0x2A:0:2: ++%2hx:+ffff:1:2:15: ++%*2hx:+ffff:0:2: ++%2hx:+FFFF:1:2:15: ++%*2hx:+FFFF:0:2: ++%2hx:+0Xffff:1:2:0: ++%*2hx:+0Xffff:0:2: ++%2hx:+0xFFFF:1:2:0: ++%*2hx:+0xFFFF:0:2: ++%2hx:+10000:1:2:1: ++%*2hx:+10000:0:2: ++%2hx:+0X10000:1:2:0: ++%*2hx:+0X10000:0:2: ++%2hx:+0x10000:1:2:0: ++%*2hx:+0x10000:0:2: ++%2hx:+10029:1:2:1: ++%*2hx:+10029:0:2: ++%2hx:+0X10029:1:2:0: ++%*2hx:+0X10029:0:2: ++%2hx:+0x10029:1:2:0: ++%*2hx:+0x10029:0:2: ++%4hx::0:-1: ++%*4hx::0:-1: ++%4hx:-7b:1:3:65413: ++%*4hx:-7b:0:3: ++%4hx:-7B:1:3:65413: ++%*4hx:-7B:0:3: ++%4hx:-0X7b:1:4:65529: ++%*4hx:-0X7b:0:4: ++%4hx:-0x7B:1:4:65529: ++%*4hx:-0x7B:0:4: ++%4hx:-1:1:2:65535: ++%*4hx:-1:0:2: ++%4hx:-0X1:1:4:65535: ++%*4hx:-0X1:0:4: ++%4hx:-0x1:1:4:65535: ++%*4hx:-0x1:0:4: ++%4hx:-0:1:2:0: ++%*4hx:-0:0:2: ++%4hx:-0X0:1:4:0: ++%*4hx:-0X0:0:4: ++%4hx:-0x0:1:4:0: ++%*4hx:-0x0:0:4: ++%4hx:0:1:1:0: ++%*4hx:0:0:1: ++%4hx:0X0:1:3:0: ++%*4hx:0X0:0:3: ++%4hx:0x0:1:3:0: ++%*4hx:0x0:0:3: ++%4hx:1:1:1:1: ++%*4hx:1:0:1: ++%4hx:0X1:1:3:1: ++%*4hx:0X1:0:3: ++%4hx:0x1:1:3:1: ++%*4hx:0x1:0:3: ++%4hx:2a:1:2:42: ++%*4hx:2a:0:2: ++%4hx:2A:1:2:42: ++%*4hx:2A:0:2: ++%4hx:0X2a:1:4:42: ++%*4hx:0X2a:0:4: ++%4hx:0x2A:1:4:42: ++%*4hx:0x2A:0:4: ++%4hx:ffff:1:4:65535: ++%*4hx:ffff:0:4: ++%4hx:FFFF:1:4:65535: ++%*4hx:FFFF:0:4: ++%4hx:0Xffff:1:4:255: ++%*4hx:0Xffff:0:4: ++%4hx:0xFFFF:1:4:255: ++%*4hx:0xFFFF:0:4: ++%4hx:10000:1:4:4096: ++%*4hx:10000:0:4: ++%4hx:0X10000:1:4:16: ++%*4hx:0X10000:0:4: ++%4hx:0x10000:1:4:16: ++%*4hx:0x10000:0:4: ++%4hx:10029:1:4:4098: ++%*4hx:10029:0:4: ++%4hx:0X10029:1:4:16: ++%*4hx:0X10029:0:4: ++%4hx:0x10029:1:4:16: ++%*4hx:0x10029:0:4: ++%4hx:+0:1:2:0: ++%*4hx:+0:0:2: ++%4hx:+0X0:1:4:0: ++%*4hx:+0X0:0:4: ++%4hx:+0x0:1:4:0: ++%*4hx:+0x0:0:4: ++%4hx:+1:1:2:1: ++%*4hx:+1:0:2: ++%4hx:+0X1:1:4:1: ++%*4hx:+0X1:0:4: ++%4hx:+0x1:1:4:1: ++%*4hx:+0x1:0:4: ++%4hx:+2a:1:3:42: ++%*4hx:+2a:0:3: ++%4hx:+2A:1:3:42: ++%*4hx:+2A:0:3: ++%4hx:+0X2a:1:4:2: ++%*4hx:+0X2a:0:4: ++%4hx:+0x2A:1:4:2: ++%*4hx:+0x2A:0:4: ++%4hx:+ffff:1:4:4095: ++%*4hx:+ffff:0:4: ++%4hx:+FFFF:1:4:4095: ++%*4hx:+FFFF:0:4: ++%4hx:+0Xffff:1:4:15: ++%*4hx:+0Xffff:0:4: ++%4hx:+0xFFFF:1:4:15: ++%*4hx:+0xFFFF:0:4: ++%4hx:+10000:1:4:256: ++%*4hx:+10000:0:4: ++%4hx:+0X10000:1:4:1: ++%*4hx:+0X10000:0:4: ++%4hx:+0x10000:1:4:1: ++%*4hx:+0x10000:0:4: ++%4hx:+10029:1:4:256: ++%*4hx:+10029:0:4: ++%4hx:+0X10029:1:4:1: ++%*4hx:+0X10029:0:4: ++%4hx:+0x10029:1:4:1: ++%*4hx:+0x10029:0:4: ++%7hx::0:-1: ++%*7hx::0:-1: ++%7hx:-7b:1:3:65413: ++%*7hx:-7b:0:3: ++%7hx:-7B:1:3:65413: ++%*7hx:-7B:0:3: ++%7hx:-0X7b:1:5:65413: ++%*7hx:-0X7b:0:5: ++%7hx:-0x7B:1:5:65413: ++%*7hx:-0x7B:0:5: ++%7hx:-1:1:2:65535: ++%*7hx:-1:0:2: ++%7hx:-0X1:1:4:65535: ++%*7hx:-0X1:0:4: ++%7hx:-0x1:1:4:65535: ++%*7hx:-0x1:0:4: ++%7hx:-0:1:2:0: ++%*7hx:-0:0:2: ++%7hx:-0X0:1:4:0: ++%*7hx:-0X0:0:4: ++%7hx:-0x0:1:4:0: ++%*7hx:-0x0:0:4: ++%7hx:0:1:1:0: ++%*7hx:0:0:1: ++%7hx:0X0:1:3:0: ++%*7hx:0X0:0:3: ++%7hx:0x0:1:3:0: ++%*7hx:0x0:0:3: ++%7hx:1:1:1:1: ++%*7hx:1:0:1: ++%7hx:0X1:1:3:1: ++%*7hx:0X1:0:3: ++%7hx:0x1:1:3:1: ++%*7hx:0x1:0:3: ++%7hx:2a:1:2:42: ++%*7hx:2a:0:2: ++%7hx:2A:1:2:42: ++%*7hx:2A:0:2: ++%7hx:0X2a:1:4:42: ++%*7hx:0X2a:0:4: ++%7hx:0x2A:1:4:42: ++%*7hx:0x2A:0:4: ++%7hx:ffff:1:4:65535: ++%*7hx:ffff:0:4: ++%7hx:FFFF:1:4:65535: ++%*7hx:FFFF:0:4: ++%7hx:0Xffff:1:6:65535: ++%*7hx:0Xffff:0:6: ++%7hx:0xFFFF:1:6:65535: ++%*7hx:0xFFFF:0:6: ++%7hx:10000:1:5:0: ++%*7hx:10000:0:5: ++%7hx:0X10000:1:7:0: ++%*7hx:0X10000:0:7: ++%7hx:0x10000:1:7:0: ++%*7hx:0x10000:0:7: ++%7hx:10029:1:5:41: ++%*7hx:10029:0:5: ++%7hx:0X10029:1:7:41: ++%*7hx:0X10029:0:7: ++%7hx:0x10029:1:7:41: ++%*7hx:0x10029:0:7: ++%7hx:+0:1:2:0: ++%*7hx:+0:0:2: ++%7hx:+0X0:1:4:0: ++%*7hx:+0X0:0:4: ++%7hx:+0x0:1:4:0: ++%*7hx:+0x0:0:4: ++%7hx:+1:1:2:1: ++%*7hx:+1:0:2: ++%7hx:+0X1:1:4:1: ++%*7hx:+0X1:0:4: ++%7hx:+0x1:1:4:1: ++%*7hx:+0x1:0:4: ++%7hx:+2a:1:3:42: ++%*7hx:+2a:0:3: ++%7hx:+2A:1:3:42: ++%*7hx:+2A:0:3: ++%7hx:+0X2a:1:5:42: ++%*7hx:+0X2a:0:5: ++%7hx:+0x2A:1:5:42: ++%*7hx:+0x2A:0:5: ++%7hx:+ffff:1:5:65535: ++%*7hx:+ffff:0:5: ++%7hx:+FFFF:1:5:65535: ++%*7hx:+FFFF:0:5: ++%7hx:+0Xffff:1:7:65535: ++%*7hx:+0Xffff:0:7: ++%7hx:+0xFFFF:1:7:65535: ++%*7hx:+0xFFFF:0:7: ++%7hx:+10000:1:6:0: ++%*7hx:+10000:0:6: ++%7hx:+0X10000:1:7:4096: ++%*7hx:+0X10000:0:7: ++%7hx:+0x10000:1:7:4096: ++%*7hx:+0x10000:0:7: ++%7hx:+10029:1:6:41: ++%*7hx:+10029:0:6: ++%7hx:+0X10029:1:7:4098: ++%*7hx:+0X10029:0:7: ++%7hx:+0x10029:1:7:4098: ++%*7hx:+0x10029:0:7: ++%2hx: :0:-1: ++%*2hx: :0:-1: ++%2hx: -7b:1:3:65529: ++%*2hx: -7b:0:3: ++%2hx: -7B:1:3:65529: ++%*2hx: -7B:0:3: ++%2hx: -0X7b:1:3:0: ++%*2hx: -0X7b:0:3: ++%2hx: -0x7B:1:3:0: ++%*2hx: -0x7B:0:3: ++%2hx: -1:1:3:65535: ++%*2hx: -1:0:3: ++%2hx: -0X1:1:3:0: ++%*2hx: -0X1:0:3: ++%2hx: -0x1:1:3:0: ++%*2hx: -0x1:0:3: ++%2hx: -0:1:3:0: ++%*2hx: -0:0:3: ++%2hx: -0X0:1:3:0: ++%*2hx: -0X0:0:3: ++%2hx: -0x0:1:3:0: ++%*2hx: -0x0:0:3: ++%2hx: 0:1:2:0: ++%*2hx: 0:0:2: ++# BZ12701 %2hx: 0X0:0:-1: ++# BZ12701 %*2hx: 0X0:0:-1: ++# BZ12701 %2hx: 0x0:0:-1: ++# BZ12701 %*2hx: 0x0:0:-1: ++%2hx: 1:1:2:1: ++%*2hx: 1:0:2: ++# BZ12701 %2hx: 0X1:0:-1: ++# BZ12701 %*2hx: 0X1:0:-1: ++# BZ12701 %2hx: 0x1:0:-1: ++# BZ12701 %*2hx: 0x1:0:-1: ++%2hx: 2a:1:3:42: ++%*2hx: 2a:0:3: ++%2hx: 2A:1:3:42: ++%*2hx: 2A:0:3: ++# BZ12701 %2hx: 0X2a:0:-1: ++# BZ12701 %*2hx: 0X2a:0:-1: ++# BZ12701 %2hx: 0x2A:0:-1: ++# BZ12701 %*2hx: 0x2A:0:-1: ++%2hx: ffff:1:3:255: ++%*2hx: ffff:0:3: ++%2hx: FFFF:1:3:255: ++%*2hx: FFFF:0:3: ++# BZ12701 %2hx: 0Xffff:0:-1: ++# BZ12701 %*2hx: 0Xffff:0:-1: ++# BZ12701 %2hx: 0xFFFF:0:-1: ++# BZ12701 %*2hx: 0xFFFF:0:-1: ++%2hx: 10000:1:3:16: ++%*2hx: 10000:0:3: ++# BZ12701 %2hx: 0X10000:0:-1: ++# BZ12701 %*2hx: 0X10000:0:-1: ++# BZ12701 %2hx: 0x10000:0:-1: ++# BZ12701 %*2hx: 0x10000:0:-1: ++%2hx: 10029:1:3:16: ++%*2hx: 10029:0:3: ++# BZ12701 %2hx: 0X10029:0:-1: ++# BZ12701 %*2hx: 0X10029:0:-1: ++# BZ12701 %2hx: 0x10029:0:-1: ++# BZ12701 %*2hx: 0x10029:0:-1: ++%2hx: +0:1:3:0: ++%*2hx: +0:0:3: ++%2hx: +0X0:1:3:0: ++%*2hx: +0X0:0:3: ++%2hx: +0x0:1:3:0: ++%*2hx: +0x0:0:3: ++%2hx: +1:1:3:1: ++%*2hx: +1:0:3: ++%2hx: +0X1:1:3:0: ++%*2hx: +0X1:0:3: ++%2hx: +0x1:1:3:0: ++%*2hx: +0x1:0:3: ++%2hx: +2a:1:3:2: ++%*2hx: +2a:0:3: ++%2hx: +2A:1:3:2: ++%*2hx: +2A:0:3: ++%2hx: +0X2a:1:3:0: ++%*2hx: +0X2a:0:3: ++%2hx: +0x2A:1:3:0: ++%*2hx: +0x2A:0:3: ++%2hx: +ffff:1:3:15: ++%*2hx: +ffff:0:3: ++%2hx: +FFFF:1:3:15: ++%*2hx: +FFFF:0:3: ++%2hx: +0Xffff:1:3:0: ++%*2hx: +0Xffff:0:3: ++%2hx: +0xFFFF:1:3:0: ++%*2hx: +0xFFFF:0:3: ++%2hx: +10000:1:3:1: ++%*2hx: +10000:0:3: ++%2hx: +0X10000:1:3:0: ++%*2hx: +0X10000:0:3: ++%2hx: +0x10000:1:3:0: ++%*2hx: +0x10000:0:3: ++%2hx: +10029:1:3:1: ++%*2hx: +10029:0:3: ++%2hx: +0X10029:1:3:0: ++%*2hx: +0X10029:0:3: ++%2hx: +0x10029:1:3:0: ++%*2hx: +0x10029:0:3: ++%7hx: :0:-1: ++%*7hx: :0:-1: ++%7hx: -7b:1:4:65413: ++%*7hx: -7b:0:4: ++%7hx: -7B:1:4:65413: ++%*7hx: -7B:0:4: ++%7hx: -0X7b:1:6:65413: ++%*7hx: -0X7b:0:6: ++%7hx: -0x7B:1:6:65413: ++%*7hx: -0x7B:0:6: ++%7hx: -1:1:3:65535: ++%*7hx: -1:0:3: ++%7hx: -0X1:1:5:65535: ++%*7hx: -0X1:0:5: ++%7hx: -0x1:1:5:65535: ++%*7hx: -0x1:0:5: ++%7hx: -0:1:3:0: ++%*7hx: -0:0:3: ++%7hx: -0X0:1:5:0: ++%*7hx: -0X0:0:5: ++%7hx: -0x0:1:5:0: ++%*7hx: -0x0:0:5: ++%7hx: 0:1:2:0: ++%*7hx: 0:0:2: ++%7hx: 0X0:1:4:0: ++%*7hx: 0X0:0:4: ++%7hx: 0x0:1:4:0: ++%*7hx: 0x0:0:4: ++%7hx: 1:1:2:1: ++%*7hx: 1:0:2: ++%7hx: 0X1:1:4:1: ++%*7hx: 0X1:0:4: ++%7hx: 0x1:1:4:1: ++%*7hx: 0x1:0:4: ++%7hx: 2a:1:3:42: ++%*7hx: 2a:0:3: ++%7hx: 2A:1:3:42: ++%*7hx: 2A:0:3: ++%7hx: 0X2a:1:5:42: ++%*7hx: 0X2a:0:5: ++%7hx: 0x2A:1:5:42: ++%*7hx: 0x2A:0:5: ++%7hx: ffff:1:5:65535: ++%*7hx: ffff:0:5: ++%7hx: FFFF:1:5:65535: ++%*7hx: FFFF:0:5: ++%7hx: 0Xffff:1:7:65535: ++%*7hx: 0Xffff:0:7: ++%7hx: 0xFFFF:1:7:65535: ++%*7hx: 0xFFFF:0:7: ++%7hx: 10000:1:6:0: ++%*7hx: 10000:0:6: ++%7hx: 0X10000:1:8:0: ++%*7hx: 0X10000:0:8: ++%7hx: 0x10000:1:8:0: ++%*7hx: 0x10000:0:8: ++%7hx: 10029:1:6:41: ++%*7hx: 10029:0:6: ++%7hx: 0X10029:1:8:41: ++%*7hx: 0X10029:0:8: ++%7hx: 0x10029:1:8:41: ++%*7hx: 0x10029:0:8: ++%7hx: +0:1:3:0: ++%*7hx: +0:0:3: ++%7hx: +0X0:1:5:0: ++%*7hx: +0X0:0:5: ++%7hx: +0x0:1:5:0: ++%*7hx: +0x0:0:5: ++%7hx: +1:1:3:1: ++%*7hx: +1:0:3: ++%7hx: +0X1:1:5:1: ++%*7hx: +0X1:0:5: ++%7hx: +0x1:1:5:1: ++%*7hx: +0x1:0:5: ++%7hx: +2a:1:4:42: ++%*7hx: +2a:0:4: ++%7hx: +2A:1:4:42: ++%*7hx: +2A:0:4: ++%7hx: +0X2a:1:6:42: ++%*7hx: +0X2a:0:6: ++%7hx: +0x2A:1:6:42: ++%*7hx: +0x2A:0:6: ++%7hx: +ffff:1:6:65535: ++%*7hx: +ffff:0:6: ++%7hx: +FFFF:1:6:65535: ++%*7hx: +FFFF:0:6: ++%7hx: +0Xffff:1:8:65535: ++%*7hx: +0Xffff:0:8: ++%7hx: +0xFFFF:1:8:65535: ++%*7hx: +0xFFFF:0:8: ++%7hx: +10000:1:7:0: ++%*7hx: +10000:0:7: ++%7hx: +0X10000:1:8:4096: ++%*7hx: +0X10000:0:8: ++%7hx: +0x10000:1:8:4096: ++%*7hx: +0x10000:0:8: ++%7hx: +10029:1:7:41: ++%*7hx: +10029:0:7: ++%7hx: +0X10029:1:8:4098: ++%*7hx: +0X10029:0:8: ++%7hx: +0x10029:1:8:4098: ++%*7hx: +0x10029:0:8: +diff --git a/stdio-common/tst-scanf-format-ushort-xx.input b/stdio-common/tst-scanf-format-ushort-xx.input +new file mode 100644 +index 0000000000000000..c0e52779b7862ac0 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ushort-xx.input +@@ -0,0 +1,714 @@ ++%hX::0:-1: ++%*hX::0:-1: ++%hX:-7b:1:3:65413: ++%*hX:-7b:0:3: ++%hX:-7B:1:3:65413: ++%*hX:-7B:0:3: ++%hX:-0X7b:1:5:65413: ++%*hX:-0X7b:0:5: ++%hX:-0x7B:1:5:65413: ++%*hX:-0x7B:0:5: ++%hX:-1:1:2:65535: ++%*hX:-1:0:2: ++%hX:-0X1:1:4:65535: ++%*hX:-0X1:0:4: ++%hX:-0x1:1:4:65535: ++%*hX:-0x1:0:4: ++%hX:-0:1:2:0: ++%*hX:-0:0:2: ++%hX:-0X0:1:4:0: ++%*hX:-0X0:0:4: ++%hX:-0x0:1:4:0: ++%*hX:-0x0:0:4: ++%hX:0:1:1:0: ++%*hX:0:0:1: ++%hX:0X0:1:3:0: ++%*hX:0X0:0:3: ++%hX:0x0:1:3:0: ++%*hX:0x0:0:3: ++%hX:1:1:1:1: ++%*hX:1:0:1: ++%hX:0X1:1:3:1: ++%*hX:0X1:0:3: ++%hX:0x1:1:3:1: ++%*hX:0x1:0:3: ++%hX:2a:1:2:42: ++%*hX:2a:0:2: ++%hX:2A:1:2:42: ++%*hX:2A:0:2: ++%hX:0X2a:1:4:42: ++%*hX:0X2a:0:4: ++%hX:0x2A:1:4:42: ++%*hX:0x2A:0:4: ++%hX:ffff:1:4:65535: ++%*hX:ffff:0:4: ++%hX:FFFF:1:4:65535: ++%*hX:FFFF:0:4: ++%hX:0Xffff:1:6:65535: ++%*hX:0Xffff:0:6: ++%hX:0xFFFF:1:6:65535: ++%*hX:0xFFFF:0:6: ++%hX:10000:1:5:0: ++%*hX:10000:0:5: ++%hX:0X10000:1:7:0: ++%*hX:0X10000:0:7: ++%hX:0x10000:1:7:0: ++%*hX:0x10000:0:7: ++%hX:10029:1:5:41: ++%*hX:10029:0:5: ++%hX:0X10029:1:7:41: ++%*hX:0X10029:0:7: ++%hX:0x10029:1:7:41: ++%*hX:0x10029:0:7: ++%hX:+0:1:2:0: ++%*hX:+0:0:2: ++%hX:+0X0:1:4:0: ++%*hX:+0X0:0:4: ++%hX:+0x0:1:4:0: ++%*hX:+0x0:0:4: ++%hX:+1:1:2:1: ++%*hX:+1:0:2: ++%hX:+0X1:1:4:1: ++%*hX:+0X1:0:4: ++%hX:+0x1:1:4:1: ++%*hX:+0x1:0:4: ++%hX:+2a:1:3:42: ++%*hX:+2a:0:3: ++%hX:+2A:1:3:42: ++%*hX:+2A:0:3: ++%hX:+0X2a:1:5:42: ++%*hX:+0X2a:0:5: ++%hX:+0x2A:1:5:42: ++%*hX:+0x2A:0:5: ++%hX:+ffff:1:5:65535: ++%*hX:+ffff:0:5: ++%hX:+FFFF:1:5:65535: ++%*hX:+FFFF:0:5: ++%hX:+0Xffff:1:7:65535: ++%*hX:+0Xffff:0:7: ++%hX:+0xFFFF:1:7:65535: ++%*hX:+0xFFFF:0:7: ++%hX:+10000:1:6:0: ++%*hX:+10000:0:6: ++%hX:+0X10000:1:8:0: ++%*hX:+0X10000:0:8: ++%hX:+0x10000:1:8:0: ++%*hX:+0x10000:0:8: ++%hX:+10029:1:6:41: ++%*hX:+10029:0:6: ++%hX:+0X10029:1:8:41: ++%*hX:+0X10029:0:8: ++%hX:+0x10029:1:8:41: ++%*hX:+0x10029:0:8: ++%1hX::0:-1: ++%*1hX::0:-1: ++%1hX:-7b:0:-1: ++%*1hX:-7b:0:-1: ++%1hX:-7B:0:-1: ++%*1hX:-7B:0:-1: ++%1hX:-0X7b:0:-1: ++%*1hX:-0X7b:0:-1: ++%1hX:-0x7B:0:-1: ++%*1hX:-0x7B:0:-1: ++%1hX:-1:0:-1: ++%*1hX:-1:0:-1: ++%1hX:-0X1:0:-1: ++%*1hX:-0X1:0:-1: ++%1hX:-0x1:0:-1: ++%*1hX:-0x1:0:-1: ++%1hX:-0:0:-1: ++%*1hX:-0:0:-1: ++%1hX:-0X0:0:-1: ++%*1hX:-0X0:0:-1: ++%1hX:-0x0:0:-1: ++%*1hX:-0x0:0:-1: ++%1hX:0:1:1:0: ++%*1hX:0:0:1: ++%1hX:0X0:1:1:0: ++%*1hX:0X0:0:1: ++%1hX:0x0:1:1:0: ++%*1hX:0x0:0:1: ++%1hX:1:1:1:1: ++%*1hX:1:0:1: ++%1hX:0X1:1:1:0: ++%*1hX:0X1:0:1: ++%1hX:0x1:1:1:0: ++%*1hX:0x1:0:1: ++%1hX:2a:1:1:2: ++%*1hX:2a:0:1: ++%1hX:2A:1:1:2: ++%*1hX:2A:0:1: ++%1hX:0X2a:1:1:0: ++%*1hX:0X2a:0:1: ++%1hX:0x2A:1:1:0: ++%*1hX:0x2A:0:1: ++%1hX:ffff:1:1:15: ++%*1hX:ffff:0:1: ++%1hX:FFFF:1:1:15: ++%*1hX:FFFF:0:1: ++%1hX:0Xffff:1:1:0: ++%*1hX:0Xffff:0:1: ++%1hX:0xFFFF:1:1:0: ++%*1hX:0xFFFF:0:1: ++%1hX:10000:1:1:1: ++%*1hX:10000:0:1: ++%1hX:0X10000:1:1:0: ++%*1hX:0X10000:0:1: ++%1hX:0x10000:1:1:0: ++%*1hX:0x10000:0:1: ++%1hX:10029:1:1:1: ++%*1hX:10029:0:1: ++%1hX:0X10029:1:1:0: ++%*1hX:0X10029:0:1: ++%1hX:0x10029:1:1:0: ++%*1hX:0x10029:0:1: ++%1hX:+0:0:-1: ++%*1hX:+0:0:-1: ++%1hX:+0X0:0:-1: ++%*1hX:+0X0:0:-1: ++%1hX:+0x0:0:-1: ++%*1hX:+0x0:0:-1: ++%1hX:+1:0:-1: ++%*1hX:+1:0:-1: ++%1hX:+0X1:0:-1: ++%*1hX:+0X1:0:-1: ++%1hX:+0x1:0:-1: ++%*1hX:+0x1:0:-1: ++%1hX:+2a:0:-1: ++%*1hX:+2a:0:-1: ++%1hX:+2A:0:-1: ++%*1hX:+2A:0:-1: ++%1hX:+0X2a:0:-1: ++%*1hX:+0X2a:0:-1: ++%1hX:+0x2A:0:-1: ++%*1hX:+0x2A:0:-1: ++%1hX:+ffff:0:-1: ++%*1hX:+ffff:0:-1: ++%1hX:+FFFF:0:-1: ++%*1hX:+FFFF:0:-1: ++%1hX:+0Xffff:0:-1: ++%*1hX:+0Xffff:0:-1: ++%1hX:+0xFFFF:0:-1: ++%*1hX:+0xFFFF:0:-1: ++%1hX:+10000:0:-1: ++%*1hX:+10000:0:-1: ++%1hX:+0X10000:0:-1: ++%*1hX:+0X10000:0:-1: ++%1hX:+0x10000:0:-1: ++%*1hX:+0x10000:0:-1: ++%1hX:+10029:0:-1: ++%*1hX:+10029:0:-1: ++%1hX:+0X10029:0:-1: ++%*1hX:+0X10029:0:-1: ++%1hX:+0x10029:0:-1: ++%*1hX:+0x10029:0:-1: ++%2hX::0:-1: ++%*2hX::0:-1: ++%2hX:-7b:1:2:65529: ++%*2hX:-7b:0:2: ++%2hX:-7B:1:2:65529: ++%*2hX:-7B:0:2: ++%2hX:-0X7b:1:2:0: ++%*2hX:-0X7b:0:2: ++%2hX:-0x7B:1:2:0: ++%*2hX:-0x7B:0:2: ++%2hX:-1:1:2:65535: ++%*2hX:-1:0:2: ++%2hX:-0X1:1:2:0: ++%*2hX:-0X1:0:2: ++%2hX:-0x1:1:2:0: ++%*2hX:-0x1:0:2: ++%2hX:-0:1:2:0: ++%*2hX:-0:0:2: ++%2hX:-0X0:1:2:0: ++%*2hX:-0X0:0:2: ++%2hX:-0x0:1:2:0: ++%*2hX:-0x0:0:2: ++%2hX:0:1:1:0: ++%*2hX:0:0:1: ++# BZ12701 %2hX:0X0:0:-1: ++# BZ12701 %*2hX:0X0:0:-1: ++# BZ12701 %2hX:0x0:0:-1: ++# BZ12701 %*2hX:0x0:0:-1: ++%2hX:1:1:1:1: ++%*2hX:1:0:1: ++# BZ12701 %2hX:0X1:0:-1: ++# BZ12701 %*2hX:0X1:0:-1: ++# BZ12701 %2hX:0x1:0:-1: ++# BZ12701 %*2hX:0x1:0:-1: ++%2hX:2a:1:2:42: ++%*2hX:2a:0:2: ++%2hX:2A:1:2:42: ++%*2hX:2A:0:2: ++# BZ12701 %2hX:0X2a:0:-1: ++# BZ12701 %*2hX:0X2a:0:-1: ++# BZ12701 %2hX:0x2A:0:-1: ++# BZ12701 %*2hX:0x2A:0:-1: ++%2hX:ffff:1:2:255: ++%*2hX:ffff:0:2: ++%2hX:FFFF:1:2:255: ++%*2hX:FFFF:0:2: ++# BZ12701 %2hX:0Xffff:0:-1: ++# BZ12701 %*2hX:0Xffff:0:-1: ++# BZ12701 %2hX:0xFFFF:0:-1: ++# BZ12701 %*2hX:0xFFFF:0:-1: ++%2hX:10000:1:2:16: ++%*2hX:10000:0:2: ++# BZ12701 %2hX:0X10000:0:-1: ++# BZ12701 %*2hX:0X10000:0:-1: ++# BZ12701 %2hX:0x10000:0:-1: ++# BZ12701 %*2hX:0x10000:0:-1: ++%2hX:10029:1:2:16: ++%*2hX:10029:0:2: ++# BZ12701 %2hX:0X10029:0:-1: ++# BZ12701 %*2hX:0X10029:0:-1: ++# BZ12701 %2hX:0x10029:0:-1: ++# BZ12701 %*2hX:0x10029:0:-1: ++%2hX:+0:1:2:0: ++%*2hX:+0:0:2: ++%2hX:+0X0:1:2:0: ++%*2hX:+0X0:0:2: ++%2hX:+0x0:1:2:0: ++%*2hX:+0x0:0:2: ++%2hX:+1:1:2:1: ++%*2hX:+1:0:2: ++%2hX:+0X1:1:2:0: ++%*2hX:+0X1:0:2: ++%2hX:+0x1:1:2:0: ++%*2hX:+0x1:0:2: ++%2hX:+2a:1:2:2: ++%*2hX:+2a:0:2: ++%2hX:+2A:1:2:2: ++%*2hX:+2A:0:2: ++%2hX:+0X2a:1:2:0: ++%*2hX:+0X2a:0:2: ++%2hX:+0x2A:1:2:0: ++%*2hX:+0x2A:0:2: ++%2hX:+ffff:1:2:15: ++%*2hX:+ffff:0:2: ++%2hX:+FFFF:1:2:15: ++%*2hX:+FFFF:0:2: ++%2hX:+0Xffff:1:2:0: ++%*2hX:+0Xffff:0:2: ++%2hX:+0xFFFF:1:2:0: ++%*2hX:+0xFFFF:0:2: ++%2hX:+10000:1:2:1: ++%*2hX:+10000:0:2: ++%2hX:+0X10000:1:2:0: ++%*2hX:+0X10000:0:2: ++%2hX:+0x10000:1:2:0: ++%*2hX:+0x10000:0:2: ++%2hX:+10029:1:2:1: ++%*2hX:+10029:0:2: ++%2hX:+0X10029:1:2:0: ++%*2hX:+0X10029:0:2: ++%2hX:+0x10029:1:2:0: ++%*2hX:+0x10029:0:2: ++%4hX::0:-1: ++%*4hX::0:-1: ++%4hX:-7b:1:3:65413: ++%*4hX:-7b:0:3: ++%4hX:-7B:1:3:65413: ++%*4hX:-7B:0:3: ++%4hX:-0X7b:1:4:65529: ++%*4hX:-0X7b:0:4: ++%4hX:-0x7B:1:4:65529: ++%*4hX:-0x7B:0:4: ++%4hX:-1:1:2:65535: ++%*4hX:-1:0:2: ++%4hX:-0X1:1:4:65535: ++%*4hX:-0X1:0:4: ++%4hX:-0x1:1:4:65535: ++%*4hX:-0x1:0:4: ++%4hX:-0:1:2:0: ++%*4hX:-0:0:2: ++%4hX:-0X0:1:4:0: ++%*4hX:-0X0:0:4: ++%4hX:-0x0:1:4:0: ++%*4hX:-0x0:0:4: ++%4hX:0:1:1:0: ++%*4hX:0:0:1: ++%4hX:0X0:1:3:0: ++%*4hX:0X0:0:3: ++%4hX:0x0:1:3:0: ++%*4hX:0x0:0:3: ++%4hX:1:1:1:1: ++%*4hX:1:0:1: ++%4hX:0X1:1:3:1: ++%*4hX:0X1:0:3: ++%4hX:0x1:1:3:1: ++%*4hX:0x1:0:3: ++%4hX:2a:1:2:42: ++%*4hX:2a:0:2: ++%4hX:2A:1:2:42: ++%*4hX:2A:0:2: ++%4hX:0X2a:1:4:42: ++%*4hX:0X2a:0:4: ++%4hX:0x2A:1:4:42: ++%*4hX:0x2A:0:4: ++%4hX:ffff:1:4:65535: ++%*4hX:ffff:0:4: ++%4hX:FFFF:1:4:65535: ++%*4hX:FFFF:0:4: ++%4hX:0Xffff:1:4:255: ++%*4hX:0Xffff:0:4: ++%4hX:0xFFFF:1:4:255: ++%*4hX:0xFFFF:0:4: ++%4hX:10000:1:4:4096: ++%*4hX:10000:0:4: ++%4hX:0X10000:1:4:16: ++%*4hX:0X10000:0:4: ++%4hX:0x10000:1:4:16: ++%*4hX:0x10000:0:4: ++%4hX:10029:1:4:4098: ++%*4hX:10029:0:4: ++%4hX:0X10029:1:4:16: ++%*4hX:0X10029:0:4: ++%4hX:0x10029:1:4:16: ++%*4hX:0x10029:0:4: ++%4hX:+0:1:2:0: ++%*4hX:+0:0:2: ++%4hX:+0X0:1:4:0: ++%*4hX:+0X0:0:4: ++%4hX:+0x0:1:4:0: ++%*4hX:+0x0:0:4: ++%4hX:+1:1:2:1: ++%*4hX:+1:0:2: ++%4hX:+0X1:1:4:1: ++%*4hX:+0X1:0:4: ++%4hX:+0x1:1:4:1: ++%*4hX:+0x1:0:4: ++%4hX:+2a:1:3:42: ++%*4hX:+2a:0:3: ++%4hX:+2A:1:3:42: ++%*4hX:+2A:0:3: ++%4hX:+0X2a:1:4:2: ++%*4hX:+0X2a:0:4: ++%4hX:+0x2A:1:4:2: ++%*4hX:+0x2A:0:4: ++%4hX:+ffff:1:4:4095: ++%*4hX:+ffff:0:4: ++%4hX:+FFFF:1:4:4095: ++%*4hX:+FFFF:0:4: ++%4hX:+0Xffff:1:4:15: ++%*4hX:+0Xffff:0:4: ++%4hX:+0xFFFF:1:4:15: ++%*4hX:+0xFFFF:0:4: ++%4hX:+10000:1:4:256: ++%*4hX:+10000:0:4: ++%4hX:+0X10000:1:4:1: ++%*4hX:+0X10000:0:4: ++%4hX:+0x10000:1:4:1: ++%*4hX:+0x10000:0:4: ++%4hX:+10029:1:4:256: ++%*4hX:+10029:0:4: ++%4hX:+0X10029:1:4:1: ++%*4hX:+0X10029:0:4: ++%4hX:+0x10029:1:4:1: ++%*4hX:+0x10029:0:4: ++%7hX::0:-1: ++%*7hX::0:-1: ++%7hX:-7b:1:3:65413: ++%*7hX:-7b:0:3: ++%7hX:-7B:1:3:65413: ++%*7hX:-7B:0:3: ++%7hX:-0X7b:1:5:65413: ++%*7hX:-0X7b:0:5: ++%7hX:-0x7B:1:5:65413: ++%*7hX:-0x7B:0:5: ++%7hX:-1:1:2:65535: ++%*7hX:-1:0:2: ++%7hX:-0X1:1:4:65535: ++%*7hX:-0X1:0:4: ++%7hX:-0x1:1:4:65535: ++%*7hX:-0x1:0:4: ++%7hX:-0:1:2:0: ++%*7hX:-0:0:2: ++%7hX:-0X0:1:4:0: ++%*7hX:-0X0:0:4: ++%7hX:-0x0:1:4:0: ++%*7hX:-0x0:0:4: ++%7hX:0:1:1:0: ++%*7hX:0:0:1: ++%7hX:0X0:1:3:0: ++%*7hX:0X0:0:3: ++%7hX:0x0:1:3:0: ++%*7hX:0x0:0:3: ++%7hX:1:1:1:1: ++%*7hX:1:0:1: ++%7hX:0X1:1:3:1: ++%*7hX:0X1:0:3: ++%7hX:0x1:1:3:1: ++%*7hX:0x1:0:3: ++%7hX:2a:1:2:42: ++%*7hX:2a:0:2: ++%7hX:2A:1:2:42: ++%*7hX:2A:0:2: ++%7hX:0X2a:1:4:42: ++%*7hX:0X2a:0:4: ++%7hX:0x2A:1:4:42: ++%*7hX:0x2A:0:4: ++%7hX:ffff:1:4:65535: ++%*7hX:ffff:0:4: ++%7hX:FFFF:1:4:65535: ++%*7hX:FFFF:0:4: ++%7hX:0Xffff:1:6:65535: ++%*7hX:0Xffff:0:6: ++%7hX:0xFFFF:1:6:65535: ++%*7hX:0xFFFF:0:6: ++%7hX:10000:1:5:0: ++%*7hX:10000:0:5: ++%7hX:0X10000:1:7:0: ++%*7hX:0X10000:0:7: ++%7hX:0x10000:1:7:0: ++%*7hX:0x10000:0:7: ++%7hX:10029:1:5:41: ++%*7hX:10029:0:5: ++%7hX:0X10029:1:7:41: ++%*7hX:0X10029:0:7: ++%7hX:0x10029:1:7:41: ++%*7hX:0x10029:0:7: ++%7hX:+0:1:2:0: ++%*7hX:+0:0:2: ++%7hX:+0X0:1:4:0: ++%*7hX:+0X0:0:4: ++%7hX:+0x0:1:4:0: ++%*7hX:+0x0:0:4: ++%7hX:+1:1:2:1: ++%*7hX:+1:0:2: ++%7hX:+0X1:1:4:1: ++%*7hX:+0X1:0:4: ++%7hX:+0x1:1:4:1: ++%*7hX:+0x1:0:4: ++%7hX:+2a:1:3:42: ++%*7hX:+2a:0:3: ++%7hX:+2A:1:3:42: ++%*7hX:+2A:0:3: ++%7hX:+0X2a:1:5:42: ++%*7hX:+0X2a:0:5: ++%7hX:+0x2A:1:5:42: ++%*7hX:+0x2A:0:5: ++%7hX:+ffff:1:5:65535: ++%*7hX:+ffff:0:5: ++%7hX:+FFFF:1:5:65535: ++%*7hX:+FFFF:0:5: ++%7hX:+0Xffff:1:7:65535: ++%*7hX:+0Xffff:0:7: ++%7hX:+0xFFFF:1:7:65535: ++%*7hX:+0xFFFF:0:7: ++%7hX:+10000:1:6:0: ++%*7hX:+10000:0:6: ++%7hX:+0X10000:1:7:4096: ++%*7hX:+0X10000:0:7: ++%7hX:+0x10000:1:7:4096: ++%*7hX:+0x10000:0:7: ++%7hX:+10029:1:6:41: ++%*7hX:+10029:0:6: ++%7hX:+0X10029:1:7:4098: ++%*7hX:+0X10029:0:7: ++%7hX:+0x10029:1:7:4098: ++%*7hX:+0x10029:0:7: ++%2hX: :0:-1: ++%*2hX: :0:-1: ++%2hX: -7b:1:3:65529: ++%*2hX: -7b:0:3: ++%2hX: -7B:1:3:65529: ++%*2hX: -7B:0:3: ++%2hX: -0X7b:1:3:0: ++%*2hX: -0X7b:0:3: ++%2hX: -0x7B:1:3:0: ++%*2hX: -0x7B:0:3: ++%2hX: -1:1:3:65535: ++%*2hX: -1:0:3: ++%2hX: -0X1:1:3:0: ++%*2hX: -0X1:0:3: ++%2hX: -0x1:1:3:0: ++%*2hX: -0x1:0:3: ++%2hX: -0:1:3:0: ++%*2hX: -0:0:3: ++%2hX: -0X0:1:3:0: ++%*2hX: -0X0:0:3: ++%2hX: -0x0:1:3:0: ++%*2hX: -0x0:0:3: ++%2hX: 0:1:2:0: ++%*2hX: 0:0:2: ++# BZ12701 %2hX: 0X0:0:-1: ++# BZ12701 %*2hX: 0X0:0:-1: ++# BZ12701 %2hX: 0x0:0:-1: ++# BZ12701 %*2hX: 0x0:0:-1: ++%2hX: 1:1:2:1: ++%*2hX: 1:0:2: ++# BZ12701 %2hX: 0X1:0:-1: ++# BZ12701 %*2hX: 0X1:0:-1: ++# BZ12701 %2hX: 0x1:0:-1: ++# BZ12701 %*2hX: 0x1:0:-1: ++%2hX: 2a:1:3:42: ++%*2hX: 2a:0:3: ++%2hX: 2A:1:3:42: ++%*2hX: 2A:0:3: ++# BZ12701 %2hX: 0X2a:0:-1: ++# BZ12701 %*2hX: 0X2a:0:-1: ++# BZ12701 %2hX: 0x2A:0:-1: ++# BZ12701 %*2hX: 0x2A:0:-1: ++%2hX: ffff:1:3:255: ++%*2hX: ffff:0:3: ++%2hX: FFFF:1:3:255: ++%*2hX: FFFF:0:3: ++# BZ12701 %2hX: 0Xffff:0:-1: ++# BZ12701 %*2hX: 0Xffff:0:-1: ++# BZ12701 %2hX: 0xFFFF:0:-1: ++# BZ12701 %*2hX: 0xFFFF:0:-1: ++%2hX: 10000:1:3:16: ++%*2hX: 10000:0:3: ++# BZ12701 %2hX: 0X10000:0:-1: ++# BZ12701 %*2hX: 0X10000:0:-1: ++# BZ12701 %2hX: 0x10000:0:-1: ++# BZ12701 %*2hX: 0x10000:0:-1: ++%2hX: 10029:1:3:16: ++%*2hX: 10029:0:3: ++# BZ12701 %2hX: 0X10029:0:-1: ++# BZ12701 %*2hX: 0X10029:0:-1: ++# BZ12701 %2hX: 0x10029:0:-1: ++# BZ12701 %*2hX: 0x10029:0:-1: ++%2hX: +0:1:3:0: ++%*2hX: +0:0:3: ++%2hX: +0X0:1:3:0: ++%*2hX: +0X0:0:3: ++%2hX: +0x0:1:3:0: ++%*2hX: +0x0:0:3: ++%2hX: +1:1:3:1: ++%*2hX: +1:0:3: ++%2hX: +0X1:1:3:0: ++%*2hX: +0X1:0:3: ++%2hX: +0x1:1:3:0: ++%*2hX: +0x1:0:3: ++%2hX: +2a:1:3:2: ++%*2hX: +2a:0:3: ++%2hX: +2A:1:3:2: ++%*2hX: +2A:0:3: ++%2hX: +0X2a:1:3:0: ++%*2hX: +0X2a:0:3: ++%2hX: +0x2A:1:3:0: ++%*2hX: +0x2A:0:3: ++%2hX: +ffff:1:3:15: ++%*2hX: +ffff:0:3: ++%2hX: +FFFF:1:3:15: ++%*2hX: +FFFF:0:3: ++%2hX: +0Xffff:1:3:0: ++%*2hX: +0Xffff:0:3: ++%2hX: +0xFFFF:1:3:0: ++%*2hX: +0xFFFF:0:3: ++%2hX: +10000:1:3:1: ++%*2hX: +10000:0:3: ++%2hX: +0X10000:1:3:0: ++%*2hX: +0X10000:0:3: ++%2hX: +0x10000:1:3:0: ++%*2hX: +0x10000:0:3: ++%2hX: +10029:1:3:1: ++%*2hX: +10029:0:3: ++%2hX: +0X10029:1:3:0: ++%*2hX: +0X10029:0:3: ++%2hX: +0x10029:1:3:0: ++%*2hX: +0x10029:0:3: ++%7hX: :0:-1: ++%*7hX: :0:-1: ++%7hX: -7b:1:4:65413: ++%*7hX: -7b:0:4: ++%7hX: -7B:1:4:65413: ++%*7hX: -7B:0:4: ++%7hX: -0X7b:1:6:65413: ++%*7hX: -0X7b:0:6: ++%7hX: -0x7B:1:6:65413: ++%*7hX: -0x7B:0:6: ++%7hX: -1:1:3:65535: ++%*7hX: -1:0:3: ++%7hX: -0X1:1:5:65535: ++%*7hX: -0X1:0:5: ++%7hX: -0x1:1:5:65535: ++%*7hX: -0x1:0:5: ++%7hX: -0:1:3:0: ++%*7hX: -0:0:3: ++%7hX: -0X0:1:5:0: ++%*7hX: -0X0:0:5: ++%7hX: -0x0:1:5:0: ++%*7hX: -0x0:0:5: ++%7hX: 0:1:2:0: ++%*7hX: 0:0:2: ++%7hX: 0X0:1:4:0: ++%*7hX: 0X0:0:4: ++%7hX: 0x0:1:4:0: ++%*7hX: 0x0:0:4: ++%7hX: 1:1:2:1: ++%*7hX: 1:0:2: ++%7hX: 0X1:1:4:1: ++%*7hX: 0X1:0:4: ++%7hX: 0x1:1:4:1: ++%*7hX: 0x1:0:4: ++%7hX: 2a:1:3:42: ++%*7hX: 2a:0:3: ++%7hX: 2A:1:3:42: ++%*7hX: 2A:0:3: ++%7hX: 0X2a:1:5:42: ++%*7hX: 0X2a:0:5: ++%7hX: 0x2A:1:5:42: ++%*7hX: 0x2A:0:5: ++%7hX: ffff:1:5:65535: ++%*7hX: ffff:0:5: ++%7hX: FFFF:1:5:65535: ++%*7hX: FFFF:0:5: ++%7hX: 0Xffff:1:7:65535: ++%*7hX: 0Xffff:0:7: ++%7hX: 0xFFFF:1:7:65535: ++%*7hX: 0xFFFF:0:7: ++%7hX: 10000:1:6:0: ++%*7hX: 10000:0:6: ++%7hX: 0X10000:1:8:0: ++%*7hX: 0X10000:0:8: ++%7hX: 0x10000:1:8:0: ++%*7hX: 0x10000:0:8: ++%7hX: 10029:1:6:41: ++%*7hX: 10029:0:6: ++%7hX: 0X10029:1:8:41: ++%*7hX: 0X10029:0:8: ++%7hX: 0x10029:1:8:41: ++%*7hX: 0x10029:0:8: ++%7hX: +0:1:3:0: ++%*7hX: +0:0:3: ++%7hX: +0X0:1:5:0: ++%*7hX: +0X0:0:5: ++%7hX: +0x0:1:5:0: ++%*7hX: +0x0:0:5: ++%7hX: +1:1:3:1: ++%*7hX: +1:0:3: ++%7hX: +0X1:1:5:1: ++%*7hX: +0X1:0:5: ++%7hX: +0x1:1:5:1: ++%*7hX: +0x1:0:5: ++%7hX: +2a:1:4:42: ++%*7hX: +2a:0:4: ++%7hX: +2A:1:4:42: ++%*7hX: +2A:0:4: ++%7hX: +0X2a:1:6:42: ++%*7hX: +0X2a:0:6: ++%7hX: +0x2A:1:6:42: ++%*7hX: +0x2A:0:6: ++%7hX: +ffff:1:6:65535: ++%*7hX: +ffff:0:6: ++%7hX: +FFFF:1:6:65535: ++%*7hX: +FFFF:0:6: ++%7hX: +0Xffff:1:8:65535: ++%*7hX: +0Xffff:0:8: ++%7hX: +0xFFFF:1:8:65535: ++%*7hX: +0xFFFF:0:8: ++%7hX: +10000:1:7:0: ++%*7hX: +10000:0:7: ++%7hX: +0X10000:1:8:4096: ++%*7hX: +0X10000:0:8: ++%7hX: +0x10000:1:8:4096: ++%*7hX: +0x10000:0:8: ++%7hX: +10029:1:7:41: ++%*7hX: +10029:0:7: ++%7hX: +0X10029:1:8:4098: ++%*7hX: +0X10029:0:8: ++%7hX: +0x10029:1:8:4098: ++%*7hX: +0x10029:0:8: diff --git a/SOURCES/glibc-RHEL-46726-10.patch b/SOURCES/glibc-RHEL-46726-10.patch new file mode 100644 index 0000000..5892ad7 --- /dev/null +++ b/SOURCES/glibc-RHEL-46726-10.patch @@ -0,0 +1,451 @@ +commit 50576060c8bf88a3c64c9ab1cdd516974ffb2690 +Author: Maciej W. Rozycki +Date: Fri Mar 28 12:35:52 2025 +0000 + + stdio-common: Add tests for formatted fscanf input specifiers + + Wire fscanf into test infrastructure for formatted scanf input + specifiers. + + Reviewed-by: Joseph Myers + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 15525a0f768244c6..74d5e02c7206cabc 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -52,7 +52,7 @@ nonfmt-xprintf-stems := \ + xprintf-stems := $(sort $(fmt-xprintf-stems) $(nonfmt-xprintf-stems)) + + # List of markers for scanf family function tests. +-xscanf-funcs := s ++xscanf-funcs := s f + + # List of data types and formats for individual per-conversion scanf tests. + # Further conversions are provided by sysdeps. +diff --git a/stdio-common/tst-scanf-format-f-c.c b/stdio-common/tst-scanf-format-f-c.c +new file mode 100644 +index 0000000000000000..75ce3cd7c314faee +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-c.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for the character conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-character.h" ++#include "tst-scanf-format-skeleton-c.c" +diff --git a/stdio-common/tst-scanf-format-f-char.c b/stdio-common/tst-scanf-format-f-char.c +new file mode 100644 +index 0000000000000000..ee5fbe9e1fc9c0aa +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-char.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for signed char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-char.c" +diff --git a/stdio-common/tst-scanf-format-f-double.c b/stdio-common/tst-scanf-format-f-double.c +new file mode 100644 +index 0000000000000000..1fb25b56b2d27ce5 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-double.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-double.c" +diff --git a/stdio-common/tst-scanf-format-f-float.c b/stdio-common/tst-scanf-format-f-float.c +new file mode 100644 +index 0000000000000000..b5a6ae4b1e957bd3 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-float.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for float conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-float.c" +diff --git a/stdio-common/tst-scanf-format-f-int.c b/stdio-common/tst-scanf-format-f-int.c +new file mode 100644 +index 0000000000000000..961d66bfa0a842b8 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-int.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-int.c" +diff --git a/stdio-common/tst-scanf-format-f-ldouble.c b/stdio-common/tst-scanf-format-f-ldouble.c +new file mode 100644 +index 0000000000000000..6198d35041584402 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-ldouble.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for long double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-scanf-format-f-llong.c b/stdio-common/tst-scanf-format-f-llong.c +new file mode 100644 +index 0000000000000000..1af672f9c2e1484c +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-llong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for long long conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-scanf-format-f-long.c b/stdio-common/tst-scanf-format-f-long.c +new file mode 100644 +index 0000000000000000..fc908111d973ddfa +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-long.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for long conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-long.c" +diff --git a/stdio-common/tst-scanf-format-f-short.c b/stdio-common/tst-scanf-format-f-short.c +new file mode 100644 +index 0000000000000000..61697e25987f6281 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-short.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-short.c" +diff --git a/stdio-common/tst-scanf-format-f-uchar.c b/stdio-common/tst-scanf-format-f-uchar.c +new file mode 100644 +index 0000000000000000..b4b8af38e6124c77 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-uchar.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for unsigned char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-scanf-format-f-uint.c b/stdio-common/tst-scanf-format-f-uint.c +new file mode 100644 +index 0000000000000000..af226b0d1044cc8b +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-uint.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for unsigned int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-scanf-format-f-ullong.c b/stdio-common/tst-scanf-format-f-ullong.c +new file mode 100644 +index 0000000000000000..50ea8123bbe52c60 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-ullong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for unsigned long long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-scanf-format-f-ulong.c b/stdio-common/tst-scanf-format-f-ulong.c +new file mode 100644 +index 0000000000000000..673e7703264756dd +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-ulong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for unsigned long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-scanf-format-f-ushort.c b/stdio-common/tst-scanf-format-f-ushort.c +new file mode 100644 +index 0000000000000000..413ba670e9782984 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-ushort.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for unsigned short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-scanf-format-f.h b/stdio-common/tst-scanf-format-f.h +new file mode 100644 +index 0000000000000000..9a4caeeb16f87801 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f.h +@@ -0,0 +1,29 @@ ++/* Test feature wrapper for formatted 'fscanf' input. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define scanf_under_test(...) \ ++({ \ ++ int result = fscanf (stdin, __VA_ARGS__); \ ++ if (ferror (stdin)) \ ++ result = INPUT_ERROR; \ ++ else if (result == EOF) \ ++ result = INPUT_EOF; \ ++ result; \ ++}) diff --git a/SOURCES/glibc-RHEL-46726-11.patch b/SOURCES/glibc-RHEL-46726-11.patch new file mode 100644 index 0000000..3dda651 --- /dev/null +++ b/SOURCES/glibc-RHEL-46726-11.patch @@ -0,0 +1,495 @@ +commit bf6ac302cde4aef55ded7e5340f16e6cd8b8e874 +Author: Maciej W. Rozycki +Date: Fri Mar 28 12:35:52 2025 +0000 + + stdio-common: Add tests for formatted sscanf input specifiers + + Wire sscanf into test infrastructure for formatted scanf input + specifiers. + + Reviewed-by: Joseph Myers + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 74d5e02c7206cabc..3e165685af09a1c3 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -52,7 +52,7 @@ nonfmt-xprintf-stems := \ + xprintf-stems := $(sort $(fmt-xprintf-stems) $(nonfmt-xprintf-stems)) + + # List of markers for scanf family function tests. +-xscanf-funcs := s f ++xscanf-funcs := s f ss + + # List of data types and formats for individual per-conversion scanf tests. + # Further conversions are provided by sysdeps. +diff --git a/stdio-common/tst-scanf-format-ss-c.c b/stdio-common/tst-scanf-format-ss-c.c +new file mode 100644 +index 0000000000000000..58a7ce8f63398f22 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-c.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for the character conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-character.h" ++#include "tst-scanf-format-skeleton-c.c" +diff --git a/stdio-common/tst-scanf-format-ss-char.c b/stdio-common/tst-scanf-format-ss-char.c +new file mode 100644 +index 0000000000000000..66eb04c0d620126d +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-char.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for signed char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-char.c" +diff --git a/stdio-common/tst-scanf-format-ss-double.c b/stdio-common/tst-scanf-format-ss-double.c +new file mode 100644 +index 0000000000000000..2a9fd8afb552fa96 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-double.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-double.c" +diff --git a/stdio-common/tst-scanf-format-ss-float.c b/stdio-common/tst-scanf-format-ss-float.c +new file mode 100644 +index 0000000000000000..640e35dbebd2e459 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-float.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for float conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-float.c" +diff --git a/stdio-common/tst-scanf-format-ss-int.c b/stdio-common/tst-scanf-format-ss-int.c +new file mode 100644 +index 0000000000000000..c01a0a3f1f1a530d +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-int.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-int.c" +diff --git a/stdio-common/tst-scanf-format-ss-ldouble.c b/stdio-common/tst-scanf-format-ss-ldouble.c +new file mode 100644 +index 0000000000000000..3e57ab568f45a741 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-ldouble.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for long double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-scanf-format-ss-llong.c b/stdio-common/tst-scanf-format-ss-llong.c +new file mode 100644 +index 0000000000000000..9c1603c869b7f5dc +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-llong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for long long conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-scanf-format-ss-long.c b/stdio-common/tst-scanf-format-ss-long.c +new file mode 100644 +index 0000000000000000..003cfac55282b3cc +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-long.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for long conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-long.c" +diff --git a/stdio-common/tst-scanf-format-ss-short.c b/stdio-common/tst-scanf-format-ss-short.c +new file mode 100644 +index 0000000000000000..ba1a58289cd7bd1d +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-short.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-short.c" +diff --git a/stdio-common/tst-scanf-format-ss-uchar.c b/stdio-common/tst-scanf-format-ss-uchar.c +new file mode 100644 +index 0000000000000000..1db14241dcab6d89 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-uchar.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for unsigned char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-scanf-format-ss-uint.c b/stdio-common/tst-scanf-format-ss-uint.c +new file mode 100644 +index 0000000000000000..a296fb48c9c9500a +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-uint.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for unsigned int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-scanf-format-ss-ullong.c b/stdio-common/tst-scanf-format-ss-ullong.c +new file mode 100644 +index 0000000000000000..885d5709be386471 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-ullong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for unsigned long long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-scanf-format-ss-ulong.c b/stdio-common/tst-scanf-format-ss-ulong.c +new file mode 100644 +index 0000000000000000..8a2f24dc5ce7d8d8 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-ulong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for unsigned long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-scanf-format-ss-ushort.c b/stdio-common/tst-scanf-format-ss-ushort.c +new file mode 100644 +index 0000000000000000..40618889ac34e910 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-ushort.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for unsigned short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-scanf-format-ss.h b/stdio-common/tst-scanf-format-ss.h +new file mode 100644 +index 0000000000000000..2fb1ca20deb845df +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss.h +@@ -0,0 +1,73 @@ ++/* Test feature wrapper for formatted 'scanf' input. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++#include ++ ++static char *sscanf_buf; ++static size_t sscanf_buf_size; ++ ++static void __attribute__ ((destructor)) ++scanf_under_test_fini (void) ++{ ++ free (sscanf_buf); ++} ++ ++#define scanf_under_test(...) \ ++({ \ ++ __label__ out; \ ++ size_t i = 0; \ ++ int result; \ ++ int ch; \ ++ \ ++ do \ ++ { \ ++ ch = read_input (); \ ++ if (ch < 0) \ ++ { \ ++ result = ch; \ ++ goto out; \ ++ } \ ++ if (i == sscanf_buf_size) \ ++ { \ ++ sscanf_buf_size += SIZE_CHUNK; \ ++ /* Add an extra byte for the terminating null character. */ \ ++ sscanf_buf = xrealloc (sscanf_buf, sscanf_buf_size + 1); \ ++ } \ ++ sscanf_buf[i++] = ch; \ ++ } \ ++ while (ch != ':'); \ ++ sscanf_buf[i++] = '\0'; \ ++ \ ++ ch = ungetc (ch, stdin); \ ++ if (ch == EOF) \ ++ { \ ++ result = INPUT_ERROR; \ ++ goto out; \ ++ } \ ++ \ ++ result = sscanf (sscanf_buf, __VA_ARGS__); \ ++ if (result == EOF) \ ++ result = INPUT_EOF; \ ++ \ ++out: \ ++ result; \ ++}) diff --git a/SOURCES/glibc-RHEL-46726-12.patch b/SOURCES/glibc-RHEL-46726-12.patch new file mode 100644 index 0000000..e4c029f --- /dev/null +++ b/SOURCES/glibc-RHEL-46726-12.patch @@ -0,0 +1,458 @@ +commit 63c81fa0dbf741b33bbac03bf204d896ee8e4694 +Author: Maciej W. Rozycki +Date: Fri Mar 28 12:35:52 2025 +0000 + + stdio-common: Add tests for formatted vscanf input specifiers + + Wire vscanf into test infrastructure for formatted scanf input + specifiers. + + Reviewed-by: Joseph Myers + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 3e165685af09a1c3..3a09b5bfbc930b45 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -52,7 +52,7 @@ nonfmt-xprintf-stems := \ + xprintf-stems := $(sort $(fmt-xprintf-stems) $(nonfmt-xprintf-stems)) + + # List of markers for scanf family function tests. +-xscanf-funcs := s f ss ++xscanf-funcs := s f ss v + + # List of data types and formats for individual per-conversion scanf tests. + # Further conversions are provided by sysdeps. +diff --git a/stdio-common/tst-scanf-format-v-c.c b/stdio-common/tst-scanf-format-v-c.c +new file mode 100644 +index 0000000000000000..0e2c000ce0218e92 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-c.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for the character conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-character.h" ++#include "tst-scanf-format-skeleton-c.c" +diff --git a/stdio-common/tst-scanf-format-v-char.c b/stdio-common/tst-scanf-format-v-char.c +new file mode 100644 +index 0000000000000000..be3a56c663b457ee +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-char.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for signed char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-char.c" +diff --git a/stdio-common/tst-scanf-format-v-double.c b/stdio-common/tst-scanf-format-v-double.c +new file mode 100644 +index 0000000000000000..91886318e800f274 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-double.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-double.c" +diff --git a/stdio-common/tst-scanf-format-v-float.c b/stdio-common/tst-scanf-format-v-float.c +new file mode 100644 +index 0000000000000000..5d289d3e8be7a640 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-float.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for float conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-float.c" +diff --git a/stdio-common/tst-scanf-format-v-int.c b/stdio-common/tst-scanf-format-v-int.c +new file mode 100644 +index 0000000000000000..770a686bb1a355fa +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-int.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-int.c" +diff --git a/stdio-common/tst-scanf-format-v-ldouble.c b/stdio-common/tst-scanf-format-v-ldouble.c +new file mode 100644 +index 0000000000000000..8215ea7ecb4f785a +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-ldouble.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for long double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-scanf-format-v-llong.c b/stdio-common/tst-scanf-format-v-llong.c +new file mode 100644 +index 0000000000000000..2a1ef02844fc7c27 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-llong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for long long conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-scanf-format-v-long.c b/stdio-common/tst-scanf-format-v-long.c +new file mode 100644 +index 0000000000000000..8376032bd459d253 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-long.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for long conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-long.c" +diff --git a/stdio-common/tst-scanf-format-v-short.c b/stdio-common/tst-scanf-format-v-short.c +new file mode 100644 +index 0000000000000000..23b9c568874d89bb +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-short.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-short.c" +diff --git a/stdio-common/tst-scanf-format-v-uchar.c b/stdio-common/tst-scanf-format-v-uchar.c +new file mode 100644 +index 0000000000000000..861db22fbafe508e +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-uchar.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for unsigned char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-scanf-format-v-uint.c b/stdio-common/tst-scanf-format-v-uint.c +new file mode 100644 +index 0000000000000000..30e58c591723d719 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-uint.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for unsigned int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-scanf-format-v-ullong.c b/stdio-common/tst-scanf-format-v-ullong.c +new file mode 100644 +index 0000000000000000..ee2914d3e932e5cf +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-ullong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for unsigned long long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-scanf-format-v-ulong.c b/stdio-common/tst-scanf-format-v-ulong.c +new file mode 100644 +index 0000000000000000..f7864dd57636c6b2 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-ulong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for unsigned long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-scanf-format-v-ushort.c b/stdio-common/tst-scanf-format-v-ushort.c +new file mode 100644 +index 0000000000000000..79ca16b4e8f953d0 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-ushort.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for unsigned short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-scanf-format-v.h b/stdio-common/tst-scanf-format-v.h +new file mode 100644 +index 0000000000000000..bf19877670d7aea3 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v.h +@@ -0,0 +1,36 @@ ++/* Test feature wrapper for formatted 'vscanf' input. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++static int ++scanf_under_test (const char *restrict fmt, ...) ++{ ++ va_list ap; ++ int result; ++ ++ va_start (ap, fmt); ++ result = vscanf (fmt, ap); ++ va_end (ap); ++ if (ferror (stdin)) ++ result = INPUT_ERROR; ++ else if (result == EOF) ++ result = INPUT_EOF; ++ return result; ++} diff --git a/SOURCES/glibc-RHEL-46726-13.patch b/SOURCES/glibc-RHEL-46726-13.patch new file mode 100644 index 0000000..0920d37 --- /dev/null +++ b/SOURCES/glibc-RHEL-46726-13.patch @@ -0,0 +1,458 @@ +commit 53ee7ede430b92fcefd31fc00bfd3fa9acec5846 +Author: Maciej W. Rozycki +Date: Fri Mar 28 12:35:53 2025 +0000 + + stdio-common: Add tests for formatted vfscanf input specifiers + + Wire vfscanf into test infrastructure for formatted scanf input + specifiers. + + Reviewed-by: Joseph Myers + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 3a09b5bfbc930b45..13c50f07ccfc86c3 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -52,7 +52,7 @@ nonfmt-xprintf-stems := \ + xprintf-stems := $(sort $(fmt-xprintf-stems) $(nonfmt-xprintf-stems)) + + # List of markers for scanf family function tests. +-xscanf-funcs := s f ss v ++xscanf-funcs := s f ss v vf + + # List of data types and formats for individual per-conversion scanf tests. + # Further conversions are provided by sysdeps. +diff --git a/stdio-common/tst-scanf-format-vf-c.c b/stdio-common/tst-scanf-format-vf-c.c +new file mode 100644 +index 0000000000000000..307bfe82c3875245 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-c.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for the character conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-character.h" ++#include "tst-scanf-format-skeleton-c.c" +diff --git a/stdio-common/tst-scanf-format-vf-char.c b/stdio-common/tst-scanf-format-vf-char.c +new file mode 100644 +index 0000000000000000..602899b2bcd5b7eb +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-char.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for signed char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-char.c" +diff --git a/stdio-common/tst-scanf-format-vf-double.c b/stdio-common/tst-scanf-format-vf-double.c +new file mode 100644 +index 0000000000000000..8b58bbe10b3e8622 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-double.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-double.c" +diff --git a/stdio-common/tst-scanf-format-vf-float.c b/stdio-common/tst-scanf-format-vf-float.c +new file mode 100644 +index 0000000000000000..81dad06ebe389438 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-float.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for float conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-float.c" +diff --git a/stdio-common/tst-scanf-format-vf-int.c b/stdio-common/tst-scanf-format-vf-int.c +new file mode 100644 +index 0000000000000000..8038791f1411d579 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-int.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-int.c" +diff --git a/stdio-common/tst-scanf-format-vf-ldouble.c b/stdio-common/tst-scanf-format-vf-ldouble.c +new file mode 100644 +index 0000000000000000..ec9a7c4632968966 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-ldouble.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for long double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-scanf-format-vf-llong.c b/stdio-common/tst-scanf-format-vf-llong.c +new file mode 100644 +index 0000000000000000..adc4b125de23cd3c +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-llong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for long long conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-scanf-format-vf-long.c b/stdio-common/tst-scanf-format-vf-long.c +new file mode 100644 +index 0000000000000000..5f26d6c9ce69e08f +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-long.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for long conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-long.c" +diff --git a/stdio-common/tst-scanf-format-vf-short.c b/stdio-common/tst-scanf-format-vf-short.c +new file mode 100644 +index 0000000000000000..0e081ead780b6882 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-short.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-short.c" +diff --git a/stdio-common/tst-scanf-format-vf-uchar.c b/stdio-common/tst-scanf-format-vf-uchar.c +new file mode 100644 +index 0000000000000000..2e879f52ce705646 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-uchar.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for unsigned char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-scanf-format-vf-uint.c b/stdio-common/tst-scanf-format-vf-uint.c +new file mode 100644 +index 0000000000000000..4874f86ef21cf5fe +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-uint.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for unsigned int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-scanf-format-vf-ullong.c b/stdio-common/tst-scanf-format-vf-ullong.c +new file mode 100644 +index 0000000000000000..dde09018c46128a5 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-ullong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for unsigned long long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-scanf-format-vf-ulong.c b/stdio-common/tst-scanf-format-vf-ulong.c +new file mode 100644 +index 0000000000000000..81023061ef66f824 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-ulong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for unsigned long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-scanf-format-vf-ushort.c b/stdio-common/tst-scanf-format-vf-ushort.c +new file mode 100644 +index 0000000000000000..cb8eb4bdcf5e3abc +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-ushort.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for unsigned short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-scanf-format-vf.h b/stdio-common/tst-scanf-format-vf.h +new file mode 100644 +index 0000000000000000..6037e63921aa4ba3 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf.h +@@ -0,0 +1,36 @@ ++/* Test feature wrapper for formatted 'vfscanf' input. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++static int ++scanf_under_test (const char *restrict fmt, ...) ++{ ++ va_list ap; ++ int result; ++ ++ va_start (ap, fmt); ++ result = vfscanf (stdin, fmt, ap); ++ va_end (ap); ++ if (ferror (stdin)) ++ result = INPUT_ERROR; ++ else if (result == EOF) ++ result = INPUT_EOF; ++ return result; ++} diff --git a/SOURCES/glibc-RHEL-46726-14.patch b/SOURCES/glibc-RHEL-46726-14.patch new file mode 100644 index 0000000..84ff66e --- /dev/null +++ b/SOURCES/glibc-RHEL-46726-14.patch @@ -0,0 +1,499 @@ +commit 47076b3163ce645f791d5c8f80080e9811733347 +Author: Maciej W. Rozycki +Date: Fri Mar 28 12:35:53 2025 +0000 + + stdio-common: Add tests for formatted vsscanf input specifiers + + Wire vsscanf into test infrastructure for formatted scanf input + specifiers. + + Reviewed-by: Joseph Myers + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 13c50f07ccfc86c3..1aefe3702800bd73 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -52,7 +52,7 @@ nonfmt-xprintf-stems := \ + xprintf-stems := $(sort $(fmt-xprintf-stems) $(nonfmt-xprintf-stems)) + + # List of markers for scanf family function tests. +-xscanf-funcs := s f ss v vf ++xscanf-funcs := s f ss v vf vs + + # List of data types and formats for individual per-conversion scanf tests. + # Further conversions are provided by sysdeps. +diff --git a/stdio-common/tst-scanf-format-vs-c.c b/stdio-common/tst-scanf-format-vs-c.c +new file mode 100644 +index 0000000000000000..2df5aa7acbecf851 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-c.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for the character conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-character.h" ++#include "tst-scanf-format-skeleton-c.c" +diff --git a/stdio-common/tst-scanf-format-vs-char.c b/stdio-common/tst-scanf-format-vs-char.c +new file mode 100644 +index 0000000000000000..ae4d8e0d0a06b549 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-char.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for signed char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-char.c" +diff --git a/stdio-common/tst-scanf-format-vs-double.c b/stdio-common/tst-scanf-format-vs-double.c +new file mode 100644 +index 0000000000000000..cd459a8506d4a1e1 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-double.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-double.c" +diff --git a/stdio-common/tst-scanf-format-vs-float.c b/stdio-common/tst-scanf-format-vs-float.c +new file mode 100644 +index 0000000000000000..7872afef5a49c515 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-float.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for float conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-float.c" +diff --git a/stdio-common/tst-scanf-format-vs-int.c b/stdio-common/tst-scanf-format-vs-int.c +new file mode 100644 +index 0000000000000000..e67b4be6c1ffffb4 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-int.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-int.c" +diff --git a/stdio-common/tst-scanf-format-vs-ldouble.c b/stdio-common/tst-scanf-format-vs-ldouble.c +new file mode 100644 +index 0000000000000000..4d299c29eeee5202 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-ldouble.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for long double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-scanf-format-vs-llong.c b/stdio-common/tst-scanf-format-vs-llong.c +new file mode 100644 +index 0000000000000000..06c8cc921f40bcab +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-llong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for long long conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-scanf-format-vs-long.c b/stdio-common/tst-scanf-format-vs-long.c +new file mode 100644 +index 0000000000000000..575a6cb36a20385d +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-long.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for long conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-long.c" +diff --git a/stdio-common/tst-scanf-format-vs-short.c b/stdio-common/tst-scanf-format-vs-short.c +new file mode 100644 +index 0000000000000000..5473471996bfad9b +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-short.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-short.c" +diff --git a/stdio-common/tst-scanf-format-vs-uchar.c b/stdio-common/tst-scanf-format-vs-uchar.c +new file mode 100644 +index 0000000000000000..5a29b9b944f7df31 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-uchar.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for unsigned char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-scanf-format-vs-uint.c b/stdio-common/tst-scanf-format-vs-uint.c +new file mode 100644 +index 0000000000000000..b9486b1488270d7a +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-uint.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for unsigned int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-scanf-format-vs-ullong.c b/stdio-common/tst-scanf-format-vs-ullong.c +new file mode 100644 +index 0000000000000000..5396a7812fc13c39 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-ullong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for unsigned long long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-scanf-format-vs-ulong.c b/stdio-common/tst-scanf-format-vs-ulong.c +new file mode 100644 +index 0000000000000000..3dbc14206dea3176 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-ulong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for unsigned long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-scanf-format-vs-ushort.c b/stdio-common/tst-scanf-format-vs-ushort.c +new file mode 100644 +index 0000000000000000..0f28b36dee83ddbe +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-ushort.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for unsigned short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-scanf-format-vs.h b/stdio-common/tst-scanf-format-vs.h +new file mode 100644 +index 0000000000000000..d49690daa00bb954 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs.h +@@ -0,0 +1,77 @@ ++/* Test feature wrapper for formatted 'vsscanf' input. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++ ++static char *sscanf_buf; ++static size_t sscanf_buf_size; ++ ++static void __attribute__ ((destructor)) ++scanf_under_test_fini (void) ++{ ++ free (sscanf_buf); ++} ++ ++static int ++scanf_under_test (const char *restrict fmt, ...) ++{ ++ size_t i = 0; ++ va_list ap; ++ int result; ++ int ch; ++ ++ do ++ { ++ ch = read_input (); ++ if (ch < 0) ++ { ++ result = ch; ++ goto out; ++ } ++ if (i == sscanf_buf_size) ++ { ++ sscanf_buf_size += SIZE_CHUNK; ++ /* Add an extra byte for the terminating null character. */ ++ sscanf_buf = xrealloc (sscanf_buf, sscanf_buf_size + 1); ++ } ++ sscanf_buf[i++] = ch; ++ } ++ while (ch != ':'); ++ sscanf_buf[i++] = '\0'; ++ ++ ch = ungetc (ch, stdin); ++ if (ch == EOF) ++ { ++ result = INPUT_ERROR; ++ goto out; ++ } ++ ++ va_start (ap, fmt); ++ result = vsscanf (sscanf_buf, fmt, ap); ++ va_end (ap); ++ if (result == EOF) ++ result = INPUT_EOF; ++ ++out: ++ return result; ++} diff --git a/SOURCES/glibc-RHEL-46726-15.patch b/SOURCES/glibc-RHEL-46726-15.patch new file mode 100644 index 0000000..d330b99 --- /dev/null +++ b/SOURCES/glibc-RHEL-46726-15.patch @@ -0,0 +1,32483 @@ +Downstream-only patch to remove unsupport binary (0b...) input +formats from scanf testing and the %b specified, added upstream in +commit 2d88df541132f09454d947c498103aa7be76b652. + +Also exclude failing nan(...) floating-point input patterns because +swbz#30647 has not been fixed downstream. + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 1aefe3702800bd73..7573dee90d264e16 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -64,7 +64,7 @@ fmts-xscanf-int := d i + fmt-xscanf-real-convs := + fmts-xscanf-real := aa a ee e ff f gg g + fmt-xscanf-uint-convs := uchar ullong ushort +-fmts-xscanf-uint := b o u xx x ++fmts-xscanf-uint := o u xx x + + xscanf-convs = $(sort $(fmt-xscanf-char-convs) $(fmt-xscanf-int-convs) \ + $(fmt-xscanf-real-convs) $(fmt-xscanf-uint-convs)) +diff --git a/stdio-common/tst-scanf-format-char-i.input b/stdio-common/tst-scanf-format-char-i.input +index 31f7ff0508c73c00..eed426a3f00b1ffb 100644 +--- a/stdio-common/tst-scanf-format-char-i.input ++++ b/stdio-common/tst-scanf-format-char-i.input +@@ -8,10 +8,6 @@ + %*hhi:-0xFB:0:5: + %hhi:-0373:1:5:5: + %*hhi:-0373:0:5: +-%hhi:-0B11111011:1:11:5: +-%*hhi:-0B11111011:0:11: +-%hhi:-0b11111011:1:11:5: +-%*hhi:-0b11111011:0:11: + %hhi:-129:1:4:127: + %*hhi:-129:0:4: + %hhi:-0X81:1:5:127: +@@ -20,10 +16,6 @@ + %*hhi:-0x81:0:5: + %hhi:-0201:1:5:127: + %*hhi:-0201:0:5: +-%hhi:-0B10000001:1:11:127: +-%*hhi:-0B10000001:0:11: +-%hhi:-0b10000001:1:11:127: +-%*hhi:-0b10000001:0:11: + %hhi:-128:1:4:-128: + %*hhi:-128:0:4: + %hhi:-0X80:1:5:-128: +@@ -32,10 +24,6 @@ + %*hhi:-0x80:0:5: + %hhi:-0200:1:5:-128: + %*hhi:-0200:0:5: +-%hhi:-0B10000000:1:11:-128: +-%*hhi:-0B10000000:0:11: +-%hhi:-0b10000000:1:11:-128: +-%*hhi:-0b10000000:0:11: + %hhi:-123:1:4:-123: + %*hhi:-123:0:4: + %hhi:-0X7b:1:5:-123: +@@ -44,10 +32,6 @@ + %*hhi:-0x7B:0:5: + %hhi:-0173:1:5:-123: + %*hhi:-0173:0:5: +-%hhi:-0B1111011:1:10:-123: +-%*hhi:-0B1111011:0:10: +-%hhi:-0b1111011:1:10:-123: +-%*hhi:-0b1111011:0:10: + %hhi:-1:1:2:-1: + %*hhi:-1:0:2: + %hhi:-0X1:1:4:-1: +@@ -56,10 +40,6 @@ + %*hhi:-0x1:0:4: + %hhi:-01:1:3:-1: + %*hhi:-01:0:3: +-%hhi:-0B1:1:4:-1: +-%*hhi:-0B1:0:4: +-%hhi:-0b1:1:4:-1: +-%*hhi:-0b1:0:4: + %hhi:-0:1:2:0: + %*hhi:-0:0:2: + %hhi:-0X0:1:4:0: +@@ -68,10 +48,6 @@ + %*hhi:-0x0:0:4: + %hhi:-00:1:3:0: + %*hhi:-00:0:3: +-%hhi:-0B0:1:4:0: +-%*hhi:-0B0:0:4: +-%hhi:-0b0:1:4:0: +-%*hhi:-0b0:0:4: + %hhi:0:1:1:0: + %*hhi:0:0:1: + %hhi:0X0:1:3:0: +@@ -80,10 +56,6 @@ + %*hhi:0x0:0:3: + %hhi:00:1:2:0: + %*hhi:00:0:2: +-%hhi:0B0:1:3:0: +-%*hhi:0B0:0:3: +-%hhi:0b0:1:3:0: +-%*hhi:0b0:0:3: + %hhi:1:1:1:1: + %*hhi:1:0:1: + %hhi:0X1:1:3:1: +@@ -92,10 +64,6 @@ + %*hhi:0x1:0:3: + %hhi:01:1:2:1: + %*hhi:01:0:2: +-%hhi:0B1:1:3:1: +-%*hhi:0B1:0:3: +-%hhi:0b1:1:3:1: +-%*hhi:0b1:0:3: + %hhi:42:1:2:42: + %*hhi:42:0:2: + %hhi:0X2a:1:4:42: +@@ -104,10 +72,6 @@ + %*hhi:0x2A:0:4: + %hhi:052:1:3:42: + %*hhi:052:0:3: +-%hhi:0B101010:1:8:42: +-%*hhi:0B101010:0:8: +-%hhi:0b101010:1:8:42: +-%*hhi:0b101010:0:8: + %hhi:127:1:3:127: + %*hhi:127:0:3: + %hhi:0X7f:1:4:127: +@@ -116,10 +80,6 @@ + %*hhi:0x7F:0:4: + %hhi:0177:1:4:127: + %*hhi:0177:0:4: +-%hhi:0B1111111:1:9:127: +-%*hhi:0B1111111:0:9: +-%hhi:0b1111111:1:9:127: +-%*hhi:0b1111111:0:9: + %hhi:128:1:3:-128: + %*hhi:128:0:3: + %hhi:0X80:1:4:-128: +@@ -128,10 +88,6 @@ + %*hhi:0x80:0:4: + %hhi:0200:1:4:-128: + %*hhi:0200:0:4: +-%hhi:0B10000000:1:10:-128: +-%*hhi:0B10000000:0:10: +-%hhi:0b10000000:1:10:-128: +-%*hhi:0b10000000:0:10: + %hhi:169:1:3:-87: + %*hhi:169:0:3: + %hhi:0Xa9:1:4:-87: +@@ -140,10 +96,6 @@ + %*hhi:0xA9:0:4: + %hhi:0251:1:4:-87: + %*hhi:0251:0:4: +-%hhi:0B10101001:1:10:-87: +-%*hhi:0B10101001:0:10: +-%hhi:0b10101001:1:10:-87: +-%*hhi:0b10101001:0:10: + %hhi:+0:1:2:0: + %*hhi:+0:0:2: + %hhi:+0X0:1:4:0: +@@ -152,10 +104,6 @@ + %*hhi:+0x0:0:4: + %hhi:+00:1:3:0: + %*hhi:+00:0:3: +-%hhi:+0B0:1:4:0: +-%*hhi:+0B0:0:4: +-%hhi:+0b0:1:4:0: +-%*hhi:+0b0:0:4: + %hhi:+1:1:2:1: + %*hhi:+1:0:2: + %hhi:+0X1:1:4:1: +@@ -164,10 +112,6 @@ + %*hhi:+0x1:0:4: + %hhi:+01:1:3:1: + %*hhi:+01:0:3: +-%hhi:+0B1:1:4:1: +-%*hhi:+0B1:0:4: +-%hhi:+0b1:1:4:1: +-%*hhi:+0b1:0:4: + %hhi:+42:1:3:42: + %*hhi:+42:0:3: + %hhi:+0X2a:1:5:42: +@@ -176,10 +120,6 @@ + %*hhi:+0x2A:0:5: + %hhi:+052:1:4:42: + %*hhi:+052:0:4: +-%hhi:+0B101010:1:9:42: +-%*hhi:+0B101010:0:9: +-%hhi:+0b101010:1:9:42: +-%*hhi:+0b101010:0:9: + %hhi:+127:1:4:127: + %*hhi:+127:0:4: + %hhi:+0X7f:1:5:127: +@@ -188,10 +128,6 @@ + %*hhi:+0x7F:0:5: + %hhi:+0177:1:5:127: + %*hhi:+0177:0:5: +-%hhi:+0B1111111:1:10:127: +-%*hhi:+0B1111111:0:10: +-%hhi:+0b1111111:1:10:127: +-%*hhi:+0b1111111:0:10: + %hhi:+128:1:4:-128: + %*hhi:+128:0:4: + %hhi:+0X80:1:5:-128: +@@ -200,10 +136,6 @@ + %*hhi:+0x80:0:5: + %hhi:+0200:1:5:-128: + %*hhi:+0200:0:5: +-%hhi:+0B10000000:1:11:-128: +-%*hhi:+0B10000000:0:11: +-%hhi:+0b10000000:1:11:-128: +-%*hhi:+0b10000000:0:11: + %hhi:+169:1:4:-87: + %*hhi:+169:0:4: + %hhi:+0Xa9:1:5:-87: +@@ -212,10 +144,6 @@ + %*hhi:+0xA9:0:5: + %hhi:+0251:1:5:-87: + %*hhi:+0251:0:5: +-%hhi:+0B10101001:1:11:-87: +-%*hhi:+0B10101001:0:11: +-%hhi:+0b10101001:1:11:-87: +-%*hhi:+0b10101001:0:11: + %1hhi::0:-1: + %*1hhi::0:-1: + %1hhi:-251:0:-1: +@@ -226,10 +154,6 @@ + %*1hhi:-0xFB:0:-1: + %1hhi:-0373:0:-1: + %*1hhi:-0373:0:-1: +-%1hhi:-0B11111011:0:-1: +-%*1hhi:-0B11111011:0:-1: +-%1hhi:-0b11111011:0:-1: +-%*1hhi:-0b11111011:0:-1: + %1hhi:-129:0:-1: + %*1hhi:-129:0:-1: + %1hhi:-0X81:0:-1: +@@ -238,10 +162,6 @@ + %*1hhi:-0x81:0:-1: + %1hhi:-0201:0:-1: + %*1hhi:-0201:0:-1: +-%1hhi:-0B10000001:0:-1: +-%*1hhi:-0B10000001:0:-1: +-%1hhi:-0b10000001:0:-1: +-%*1hhi:-0b10000001:0:-1: + %1hhi:-128:0:-1: + %*1hhi:-128:0:-1: + %1hhi:-0X80:0:-1: +@@ -250,10 +170,6 @@ + %*1hhi:-0x80:0:-1: + %1hhi:-0200:0:-1: + %*1hhi:-0200:0:-1: +-%1hhi:-0B10000000:0:-1: +-%*1hhi:-0B10000000:0:-1: +-%1hhi:-0b10000000:0:-1: +-%*1hhi:-0b10000000:0:-1: + %1hhi:-123:0:-1: + %*1hhi:-123:0:-1: + %1hhi:-0X7b:0:-1: +@@ -262,10 +178,6 @@ + %*1hhi:-0x7B:0:-1: + %1hhi:-0173:0:-1: + %*1hhi:-0173:0:-1: +-%1hhi:-0B1111011:0:-1: +-%*1hhi:-0B1111011:0:-1: +-%1hhi:-0b1111011:0:-1: +-%*1hhi:-0b1111011:0:-1: + %1hhi:-1:0:-1: + %*1hhi:-1:0:-1: + %1hhi:-0X1:0:-1: +@@ -274,10 +186,6 @@ + %*1hhi:-0x1:0:-1: + %1hhi:-01:0:-1: + %*1hhi:-01:0:-1: +-%1hhi:-0B1:0:-1: +-%*1hhi:-0B1:0:-1: +-%1hhi:-0b1:0:-1: +-%*1hhi:-0b1:0:-1: + %1hhi:-0:0:-1: + %*1hhi:-0:0:-1: + %1hhi:-0X0:0:-1: +@@ -286,10 +194,6 @@ + %*1hhi:-0x0:0:-1: + %1hhi:-00:0:-1: + %*1hhi:-00:0:-1: +-%1hhi:-0B0:0:-1: +-%*1hhi:-0B0:0:-1: +-%1hhi:-0b0:0:-1: +-%*1hhi:-0b0:0:-1: + %1hhi:0:1:1:0: + %*1hhi:0:0:1: + %1hhi:0X0:1:1:0: +@@ -298,10 +202,6 @@ + %*1hhi:0x0:0:1: + %1hhi:00:1:1:0: + %*1hhi:00:0:1: +-%1hhi:0B0:1:1:0: +-%*1hhi:0B0:0:1: +-%1hhi:0b0:1:1:0: +-%*1hhi:0b0:0:1: + %1hhi:1:1:1:1: + %*1hhi:1:0:1: + %1hhi:0X1:1:1:0: +@@ -310,10 +210,6 @@ + %*1hhi:0x1:0:1: + %1hhi:01:1:1:0: + %*1hhi:01:0:1: +-%1hhi:0B1:1:1:0: +-%*1hhi:0B1:0:1: +-%1hhi:0b1:1:1:0: +-%*1hhi:0b1:0:1: + %1hhi:42:1:1:4: + %*1hhi:42:0:1: + %1hhi:0X2a:1:1:0: +@@ -322,10 +218,6 @@ + %*1hhi:0x2A:0:1: + %1hhi:052:1:1:0: + %*1hhi:052:0:1: +-%1hhi:0B101010:1:1:0: +-%*1hhi:0B101010:0:1: +-%1hhi:0b101010:1:1:0: +-%*1hhi:0b101010:0:1: + %1hhi:127:1:1:1: + %*1hhi:127:0:1: + %1hhi:0X7f:1:1:0: +@@ -334,10 +226,6 @@ + %*1hhi:0x7F:0:1: + %1hhi:0177:1:1:0: + %*1hhi:0177:0:1: +-%1hhi:0B1111111:1:1:0: +-%*1hhi:0B1111111:0:1: +-%1hhi:0b1111111:1:1:0: +-%*1hhi:0b1111111:0:1: + %1hhi:128:1:1:1: + %*1hhi:128:0:1: + %1hhi:0X80:1:1:0: +@@ -346,10 +234,6 @@ + %*1hhi:0x80:0:1: + %1hhi:0200:1:1:0: + %*1hhi:0200:0:1: +-%1hhi:0B10000000:1:1:0: +-%*1hhi:0B10000000:0:1: +-%1hhi:0b10000000:1:1:0: +-%*1hhi:0b10000000:0:1: + %1hhi:169:1:1:1: + %*1hhi:169:0:1: + %1hhi:0Xa9:1:1:0: +@@ -358,10 +242,6 @@ + %*1hhi:0xA9:0:1: + %1hhi:0251:1:1:0: + %*1hhi:0251:0:1: +-%1hhi:0B10101001:1:1:0: +-%*1hhi:0B10101001:0:1: +-%1hhi:0b10101001:1:1:0: +-%*1hhi:0b10101001:0:1: + %1hhi:+0:0:-1: + %*1hhi:+0:0:-1: + %1hhi:+0X0:0:-1: +@@ -370,10 +250,6 @@ + %*1hhi:+0x0:0:-1: + %1hhi:+00:0:-1: + %*1hhi:+00:0:-1: +-%1hhi:+0B0:0:-1: +-%*1hhi:+0B0:0:-1: +-%1hhi:+0b0:0:-1: +-%*1hhi:+0b0:0:-1: + %1hhi:+1:0:-1: + %*1hhi:+1:0:-1: + %1hhi:+0X1:0:-1: +@@ -382,10 +258,6 @@ + %*1hhi:+0x1:0:-1: + %1hhi:+01:0:-1: + %*1hhi:+01:0:-1: +-%1hhi:+0B1:0:-1: +-%*1hhi:+0B1:0:-1: +-%1hhi:+0b1:0:-1: +-%*1hhi:+0b1:0:-1: + %1hhi:+42:0:-1: + %*1hhi:+42:0:-1: + %1hhi:+0X2a:0:-1: +@@ -394,10 +266,6 @@ + %*1hhi:+0x2A:0:-1: + %1hhi:+052:0:-1: + %*1hhi:+052:0:-1: +-%1hhi:+0B101010:0:-1: +-%*1hhi:+0B101010:0:-1: +-%1hhi:+0b101010:0:-1: +-%*1hhi:+0b101010:0:-1: + %1hhi:+127:0:-1: + %*1hhi:+127:0:-1: + %1hhi:+0X7f:0:-1: +@@ -406,10 +274,6 @@ + %*1hhi:+0x7F:0:-1: + %1hhi:+0177:0:-1: + %*1hhi:+0177:0:-1: +-%1hhi:+0B1111111:0:-1: +-%*1hhi:+0B1111111:0:-1: +-%1hhi:+0b1111111:0:-1: +-%*1hhi:+0b1111111:0:-1: + %1hhi:+128:0:-1: + %*1hhi:+128:0:-1: + %1hhi:+0X80:0:-1: +@@ -418,10 +282,6 @@ + %*1hhi:+0x80:0:-1: + %1hhi:+0200:0:-1: + %*1hhi:+0200:0:-1: +-%1hhi:+0B10000000:0:-1: +-%*1hhi:+0B10000000:0:-1: +-%1hhi:+0b10000000:0:-1: +-%*1hhi:+0b10000000:0:-1: + %1hhi:+169:0:-1: + %*1hhi:+169:0:-1: + %1hhi:+0Xa9:0:-1: +@@ -430,10 +290,6 @@ + %*1hhi:+0xA9:0:-1: + %1hhi:+0251:0:-1: + %*1hhi:+0251:0:-1: +-%1hhi:+0B10101001:0:-1: +-%*1hhi:+0B10101001:0:-1: +-%1hhi:+0b10101001:0:-1: +-%*1hhi:+0b10101001:0:-1: + %2hhi::0:-1: + %*2hhi::0:-1: + %2hhi:-251:1:2:-2: +@@ -444,10 +300,6 @@ + %*2hhi:-0xFB:0:2: + %2hhi:-0373:1:2:0: + %*2hhi:-0373:0:2: +-%2hhi:-0B11111011:1:2:0: +-%*2hhi:-0B11111011:0:2: +-%2hhi:-0b11111011:1:2:0: +-%*2hhi:-0b11111011:0:2: + %2hhi:-129:1:2:-1: + %*2hhi:-129:0:2: + %2hhi:-0X81:1:2:0: +@@ -456,10 +308,6 @@ + %*2hhi:-0x81:0:2: + %2hhi:-0201:1:2:0: + %*2hhi:-0201:0:2: +-%2hhi:-0B10000001:1:2:0: +-%*2hhi:-0B10000001:0:2: +-%2hhi:-0b10000001:1:2:0: +-%*2hhi:-0b10000001:0:2: + %2hhi:-128:1:2:-1: + %*2hhi:-128:0:2: + %2hhi:-0X80:1:2:0: +@@ -468,10 +316,6 @@ + %*2hhi:-0x80:0:2: + %2hhi:-0200:1:2:0: + %*2hhi:-0200:0:2: +-%2hhi:-0B10000000:1:2:0: +-%*2hhi:-0B10000000:0:2: +-%2hhi:-0b10000000:1:2:0: +-%*2hhi:-0b10000000:0:2: + %2hhi:-123:1:2:-1: + %*2hhi:-123:0:2: + %2hhi:-0X7b:1:2:0: +@@ -480,10 +324,6 @@ + %*2hhi:-0x7B:0:2: + %2hhi:-0173:1:2:0: + %*2hhi:-0173:0:2: +-%2hhi:-0B1111011:1:2:0: +-%*2hhi:-0B1111011:0:2: +-%2hhi:-0b1111011:1:2:0: +-%*2hhi:-0b1111011:0:2: + %2hhi:-1:1:2:-1: + %*2hhi:-1:0:2: + %2hhi:-0X1:1:2:0: +@@ -492,10 +332,6 @@ + %*2hhi:-0x1:0:2: + %2hhi:-01:1:2:0: + %*2hhi:-01:0:2: +-%2hhi:-0B1:1:2:0: +-%*2hhi:-0B1:0:2: +-%2hhi:-0b1:1:2:0: +-%*2hhi:-0b1:0:2: + %2hhi:-0:1:2:0: + %*2hhi:-0:0:2: + %2hhi:-0X0:1:2:0: +@@ -504,10 +340,6 @@ + %*2hhi:-0x0:0:2: + %2hhi:-00:1:2:0: + %*2hhi:-00:0:2: +-%2hhi:-0B0:1:2:0: +-%*2hhi:-0B0:0:2: +-%2hhi:-0b0:1:2:0: +-%*2hhi:-0b0:0:2: + %2hhi:0:1:1:0: + %*2hhi:0:0:1: + # BZ12701 %2hhi:0X0:0:-1: +@@ -516,10 +348,6 @@ + # BZ12701 %*2hhi:0x0:0:-1: + %2hhi:00:1:2:0: + %*2hhi:00:0:2: +-# BZ12701 %2hhi:0B0:0:-1: +-# BZ12701 %*2hhi:0B0:0:-1: +-# BZ12701 %2hhi:0b0:0:-1: +-# BZ12701 %*2hhi:0b0:0:-1: + %2hhi:1:1:1:1: + %*2hhi:1:0:1: + # BZ12701 %2hhi:0X1:0:-1: +@@ -528,10 +356,6 @@ + # BZ12701 %*2hhi:0x1:0:-1: + %2hhi:01:1:2:1: + %*2hhi:01:0:2: +-# BZ12701 %2hhi:0B1:0:-1: +-# BZ12701 %*2hhi:0B1:0:-1: +-# BZ12701 %2hhi:0b1:0:-1: +-# BZ12701 %*2hhi:0b1:0:-1: + %2hhi:42:1:2:42: + %*2hhi:42:0:2: + # BZ12701 %2hhi:0X2a:0:-1: +@@ -540,10 +364,6 @@ + # BZ12701 %*2hhi:0x2A:0:-1: + %2hhi:052:1:2:5: + %*2hhi:052:0:2: +-# BZ12701 %2hhi:0B101010:0:-1: +-# BZ12701 %*2hhi:0B101010:0:-1: +-# BZ12701 %2hhi:0b101010:0:-1: +-# BZ12701 %*2hhi:0b101010:0:-1: + %2hhi:127:1:2:12: + %*2hhi:127:0:2: + # BZ12701 %2hhi:0X7f:0:-1: +@@ -552,10 +372,6 @@ + # BZ12701 %*2hhi:0x7F:0:-1: + %2hhi:0177:1:2:1: + %*2hhi:0177:0:2: +-# BZ12701 %2hhi:0B1111111:0:-1: +-# BZ12701 %*2hhi:0B1111111:0:-1: +-# BZ12701 %2hhi:0b1111111:0:-1: +-# BZ12701 %*2hhi:0b1111111:0:-1: + %2hhi:128:1:2:12: + %*2hhi:128:0:2: + # BZ12701 %2hhi:0X80:0:-1: +@@ -564,10 +380,6 @@ + # BZ12701 %*2hhi:0x80:0:-1: + %2hhi:0200:1:2:2: + %*2hhi:0200:0:2: +-# BZ12701 %2hhi:0B10000000:0:-1: +-# BZ12701 %*2hhi:0B10000000:0:-1: +-# BZ12701 %2hhi:0b10000000:0:-1: +-# BZ12701 %*2hhi:0b10000000:0:-1: + %2hhi:169:1:2:16: + %*2hhi:169:0:2: + # BZ12701 %2hhi:0Xa9:0:-1: +@@ -576,10 +388,6 @@ + # BZ12701 %*2hhi:0xA9:0:-1: + %2hhi:0251:1:2:2: + %*2hhi:0251:0:2: +-# BZ12701 %2hhi:0B10101001:0:-1: +-# BZ12701 %*2hhi:0B10101001:0:-1: +-# BZ12701 %2hhi:0b10101001:0:-1: +-# BZ12701 %*2hhi:0b10101001:0:-1: + %2hhi:+0:1:2:0: + %*2hhi:+0:0:2: + %2hhi:+0X0:1:2:0: +@@ -588,10 +396,6 @@ + %*2hhi:+0x0:0:2: + %2hhi:+00:1:2:0: + %*2hhi:+00:0:2: +-%2hhi:+0B0:1:2:0: +-%*2hhi:+0B0:0:2: +-%2hhi:+0b0:1:2:0: +-%*2hhi:+0b0:0:2: + %2hhi:+1:1:2:1: + %*2hhi:+1:0:2: + %2hhi:+0X1:1:2:0: +@@ -600,10 +404,6 @@ + %*2hhi:+0x1:0:2: + %2hhi:+01:1:2:0: + %*2hhi:+01:0:2: +-%2hhi:+0B1:1:2:0: +-%*2hhi:+0B1:0:2: +-%2hhi:+0b1:1:2:0: +-%*2hhi:+0b1:0:2: + %2hhi:+42:1:2:4: + %*2hhi:+42:0:2: + %2hhi:+0X2a:1:2:0: +@@ -612,10 +412,6 @@ + %*2hhi:+0x2A:0:2: + %2hhi:+052:1:2:0: + %*2hhi:+052:0:2: +-%2hhi:+0B101010:1:2:0: +-%*2hhi:+0B101010:0:2: +-%2hhi:+0b101010:1:2:0: +-%*2hhi:+0b101010:0:2: + %2hhi:+127:1:2:1: + %*2hhi:+127:0:2: + %2hhi:+0X7f:1:2:0: +@@ -624,10 +420,6 @@ + %*2hhi:+0x7F:0:2: + %2hhi:+0177:1:2:0: + %*2hhi:+0177:0:2: +-%2hhi:+0B1111111:1:2:0: +-%*2hhi:+0B1111111:0:2: +-%2hhi:+0b1111111:1:2:0: +-%*2hhi:+0b1111111:0:2: + %2hhi:+128:1:2:1: + %*2hhi:+128:0:2: + %2hhi:+0X80:1:2:0: +@@ -636,10 +428,6 @@ + %*2hhi:+0x80:0:2: + %2hhi:+0200:1:2:0: + %*2hhi:+0200:0:2: +-%2hhi:+0B10000000:1:2:0: +-%*2hhi:+0B10000000:0:2: +-%2hhi:+0b10000000:1:2:0: +-%*2hhi:+0b10000000:0:2: + %2hhi:+169:1:2:1: + %*2hhi:+169:0:2: + %2hhi:+0Xa9:1:2:0: +@@ -648,10 +436,6 @@ + %*2hhi:+0xA9:0:2: + %2hhi:+0251:1:2:0: + %*2hhi:+0251:0:2: +-%2hhi:+0B10101001:1:2:0: +-%*2hhi:+0B10101001:0:2: +-%2hhi:+0b10101001:1:2:0: +-%*2hhi:+0b10101001:0:2: + %3hhi::0:-1: + %*3hhi::0:-1: + %3hhi:-251:1:3:-25: +@@ -662,10 +446,6 @@ + # BZ12701 %*3hhi:-0xFB:0:-1: + %3hhi:-0373:1:3:-3: + %*3hhi:-0373:0:3: +-# BZ12701 %3hhi:-0B11111011:0:-1: +-# BZ12701 %*3hhi:-0B11111011:0:-1: +-# BZ12701 %3hhi:-0b11111011:0:-1: +-# BZ12701 %*3hhi:-0b11111011:0:-1: + %3hhi:-129:1:3:-12: + %*3hhi:-129:0:3: + # BZ12701 %3hhi:-0X81:0:-1: +@@ -674,10 +454,6 @@ + # BZ12701 %*3hhi:-0x81:0:-1: + %3hhi:-0201:1:3:-2: + %*3hhi:-0201:0:3: +-# BZ12701 %3hhi:-0B10000001:0:-1: +-# BZ12701 %*3hhi:-0B10000001:0:-1: +-# BZ12701 %3hhi:-0b10000001:0:-1: +-# BZ12701 %*3hhi:-0b10000001:0:-1: + %3hhi:-128:1:3:-12: + %*3hhi:-128:0:3: + # BZ12701 %3hhi:-0X80:0:-1: +@@ -686,10 +462,6 @@ + # BZ12701 %*3hhi:-0x80:0:-1: + %3hhi:-0200:1:3:-2: + %*3hhi:-0200:0:3: +-# BZ12701 %3hhi:-0B10000000:0:-1: +-# BZ12701 %*3hhi:-0B10000000:0:-1: +-# BZ12701 %3hhi:-0b10000000:0:-1: +-# BZ12701 %*3hhi:-0b10000000:0:-1: + %3hhi:-123:1:3:-12: + %*3hhi:-123:0:3: + # BZ12701 %3hhi:-0X7b:0:-1: +@@ -698,10 +470,6 @@ + # BZ12701 %*3hhi:-0x7B:0:-1: + %3hhi:-0173:1:3:-1: + %*3hhi:-0173:0:3: +-# BZ12701 %3hhi:-0B1111011:0:-1: +-# BZ12701 %*3hhi:-0B1111011:0:-1: +-# BZ12701 %3hhi:-0b1111011:0:-1: +-# BZ12701 %*3hhi:-0b1111011:0:-1: + %3hhi:-1:1:2:-1: + %*3hhi:-1:0:2: + # BZ12701 %3hhi:-0X1:0:-1: +@@ -710,10 +478,6 @@ + # BZ12701 %*3hhi:-0x1:0:-1: + %3hhi:-01:1:3:-1: + %*3hhi:-01:0:3: +-# BZ12701 %3hhi:-0B1:0:-1: +-# BZ12701 %*3hhi:-0B1:0:-1: +-# BZ12701 %3hhi:-0b1:0:-1: +-# BZ12701 %*3hhi:-0b1:0:-1: + %3hhi:-0:1:2:0: + %*3hhi:-0:0:2: + # BZ12701 %3hhi:-0X0:0:-1: +@@ -722,10 +486,6 @@ + # BZ12701 %*3hhi:-0x0:0:-1: + %3hhi:-00:1:3:0: + %*3hhi:-00:0:3: +-# BZ12701 %3hhi:-0B0:0:-1: +-# BZ12701 %*3hhi:-0B0:0:-1: +-# BZ12701 %3hhi:-0b0:0:-1: +-# BZ12701 %*3hhi:-0b0:0:-1: + %3hhi:0:1:1:0: + %*3hhi:0:0:1: + %3hhi:0X0:1:3:0: +@@ -734,10 +494,6 @@ + %*3hhi:0x0:0:3: + %3hhi:00:1:2:0: + %*3hhi:00:0:2: +-%3hhi:0B0:1:3:0: +-%*3hhi:0B0:0:3: +-%3hhi:0b0:1:3:0: +-%*3hhi:0b0:0:3: + %3hhi:1:1:1:1: + %*3hhi:1:0:1: + %3hhi:0X1:1:3:1: +@@ -746,10 +502,6 @@ + %*3hhi:0x1:0:3: + %3hhi:01:1:2:1: + %*3hhi:01:0:2: +-%3hhi:0B1:1:3:1: +-%*3hhi:0B1:0:3: +-%3hhi:0b1:1:3:1: +-%*3hhi:0b1:0:3: + %3hhi:42:1:2:42: + %*3hhi:42:0:2: + %3hhi:0X2a:1:3:2: +@@ -758,10 +510,6 @@ + %*3hhi:0x2A:0:3: + %3hhi:052:1:3:42: + %*3hhi:052:0:3: +-%3hhi:0B101010:1:3:1: +-%*3hhi:0B101010:0:3: +-%3hhi:0b101010:1:3:1: +-%*3hhi:0b101010:0:3: + %3hhi:127:1:3:127: + %*3hhi:127:0:3: + %3hhi:0X7f:1:3:7: +@@ -770,10 +518,6 @@ + %*3hhi:0x7F:0:3: + %3hhi:0177:1:3:15: + %*3hhi:0177:0:3: +-%3hhi:0B1111111:1:3:1: +-%*3hhi:0B1111111:0:3: +-%3hhi:0b1111111:1:3:1: +-%*3hhi:0b1111111:0:3: + %3hhi:128:1:3:-128: + %*3hhi:128:0:3: + %3hhi:0X80:1:3:8: +@@ -782,10 +526,6 @@ + %*3hhi:0x80:0:3: + %3hhi:0200:1:3:16: + %*3hhi:0200:0:3: +-%3hhi:0B10000000:1:3:1: +-%*3hhi:0B10000000:0:3: +-%3hhi:0b10000000:1:3:1: +-%*3hhi:0b10000000:0:3: + %3hhi:169:1:3:-87: + %*3hhi:169:0:3: + %3hhi:0Xa9:1:3:10: +@@ -794,10 +534,6 @@ + %*3hhi:0xA9:0:3: + %3hhi:0251:1:3:21: + %*3hhi:0251:0:3: +-%3hhi:0B10101001:1:3:1: +-%*3hhi:0B10101001:0:3: +-%3hhi:0b10101001:1:3:1: +-%*3hhi:0b10101001:0:3: + %3hhi:+0:1:2:0: + %*3hhi:+0:0:2: + # BZ12701 %3hhi:+0X0:0:-1: +@@ -806,10 +542,6 @@ + # BZ12701 %*3hhi:+0x0:0:-1: + %3hhi:+00:1:3:0: + %*3hhi:+00:0:3: +-# BZ12701 %3hhi:+0B0:0:-1: +-# BZ12701 %*3hhi:+0B0:0:-1: +-# BZ12701 %3hhi:+0b0:0:-1: +-# BZ12701 %*3hhi:+0b0:0:-1: + %3hhi:+1:1:2:1: + %*3hhi:+1:0:2: + # BZ12701 %3hhi:+0X1:0:-1: +@@ -818,10 +550,6 @@ + # BZ12701 %*3hhi:+0x1:0:-1: + %3hhi:+01:1:3:1: + %*3hhi:+01:0:3: +-# BZ12701 %3hhi:+0B1:0:-1: +-# BZ12701 %*3hhi:+0B1:0:-1: +-# BZ12701 %3hhi:+0b1:0:-1: +-# BZ12701 %*3hhi:+0b1:0:-1: + %3hhi:+42:1:3:42: + %*3hhi:+42:0:3: + # BZ12701 %3hhi:+0X2a:0:-1: +@@ -830,10 +558,6 @@ + # BZ12701 %*3hhi:+0x2A:0:-1: + %3hhi:+052:1:3:5: + %*3hhi:+052:0:3: +-# BZ12701 %3hhi:+0B101010:0:-1: +-# BZ12701 %*3hhi:+0B101010:0:-1: +-# BZ12701 %3hhi:+0b101010:0:-1: +-# BZ12701 %*3hhi:+0b101010:0:-1: + %3hhi:+127:1:3:12: + %*3hhi:+127:0:3: + # BZ12701 %3hhi:+0X7f:0:-1: +@@ -842,10 +566,6 @@ + # BZ12701 %*3hhi:+0x7F:0:-1: + %3hhi:+0177:1:3:1: + %*3hhi:+0177:0:3: +-# BZ12701 %3hhi:+0B1111111:0:-1: +-# BZ12701 %*3hhi:+0B1111111:0:-1: +-# BZ12701 %3hhi:+0b1111111:0:-1: +-# BZ12701 %*3hhi:+0b1111111:0:-1: + %3hhi:+128:1:3:12: + %*3hhi:+128:0:3: + # BZ12701 %3hhi:+0X80:0:-1: +@@ -854,10 +574,6 @@ + # BZ12701 %*3hhi:+0x80:0:-1: + %3hhi:+0200:1:3:2: + %*3hhi:+0200:0:3: +-# BZ12701 %3hhi:+0B10000000:0:-1: +-# BZ12701 %*3hhi:+0B10000000:0:-1: +-# BZ12701 %3hhi:+0b10000000:0:-1: +-# BZ12701 %*3hhi:+0b10000000:0:-1: + %3hhi:+169:1:3:16: + %*3hhi:+169:0:3: + # BZ12701 %3hhi:+0Xa9:0:-1: +@@ -866,10 +582,6 @@ + # BZ12701 %*3hhi:+0xA9:0:-1: + %3hhi:+0251:1:3:2: + %*3hhi:+0251:0:3: +-# BZ12701 %3hhi:+0B10101001:0:-1: +-# BZ12701 %*3hhi:+0B10101001:0:-1: +-# BZ12701 %3hhi:+0b10101001:0:-1: +-# BZ12701 %*3hhi:+0b10101001:0:-1: + %5hhi::0:-1: + %*5hhi::0:-1: + %5hhi:-251:1:4:5: +@@ -880,10 +592,6 @@ + %*5hhi:-0xFB:0:5: + %5hhi:-0373:1:5:5: + %*5hhi:-0373:0:5: +-%5hhi:-0B11111011:1:5:-3: +-%*5hhi:-0B11111011:0:5: +-%5hhi:-0b11111011:1:5:-3: +-%*5hhi:-0b11111011:0:5: + %5hhi:-129:1:4:127: + %*5hhi:-129:0:4: + %5hhi:-0X81:1:5:127: +@@ -892,10 +600,6 @@ + %*5hhi:-0x81:0:5: + %5hhi:-0201:1:5:127: + %*5hhi:-0201:0:5: +-%5hhi:-0B10000001:1:5:-2: +-%*5hhi:-0B10000001:0:5: +-%5hhi:-0b10000001:1:5:-2: +-%*5hhi:-0b10000001:0:5: + %5hhi:-128:1:4:-128: + %*5hhi:-128:0:4: + %5hhi:-0X80:1:5:-128: +@@ -904,10 +608,6 @@ + %*5hhi:-0x80:0:5: + %5hhi:-0200:1:5:-128: + %*5hhi:-0200:0:5: +-%5hhi:-0B10000000:1:5:-2: +-%*5hhi:-0B10000000:0:5: +-%5hhi:-0b10000000:1:5:-2: +-%*5hhi:-0b10000000:0:5: + %5hhi:-123:1:4:-123: + %*5hhi:-123:0:4: + %5hhi:-0X7b:1:5:-123: +@@ -916,10 +616,6 @@ + %*5hhi:-0x7B:0:5: + %5hhi:-0173:1:5:-123: + %*5hhi:-0173:0:5: +-%5hhi:-0B1111011:1:5:-3: +-%*5hhi:-0B1111011:0:5: +-%5hhi:-0b1111011:1:5:-3: +-%*5hhi:-0b1111011:0:5: + %5hhi:-1:1:2:-1: + %*5hhi:-1:0:2: + %5hhi:-0X1:1:4:-1: +@@ -928,10 +624,6 @@ + %*5hhi:-0x1:0:4: + %5hhi:-01:1:3:-1: + %*5hhi:-01:0:3: +-%5hhi:-0B1:1:4:-1: +-%*5hhi:-0B1:0:4: +-%5hhi:-0b1:1:4:-1: +-%*5hhi:-0b1:0:4: + %5hhi:-0:1:2:0: + %*5hhi:-0:0:2: + %5hhi:-0X0:1:4:0: +@@ -940,10 +632,6 @@ + %*5hhi:-0x0:0:4: + %5hhi:-00:1:3:0: + %*5hhi:-00:0:3: +-%5hhi:-0B0:1:4:0: +-%*5hhi:-0B0:0:4: +-%5hhi:-0b0:1:4:0: +-%*5hhi:-0b0:0:4: + %5hhi:0:1:1:0: + %*5hhi:0:0:1: + %5hhi:0X0:1:3:0: +@@ -952,10 +640,6 @@ + %*5hhi:0x0:0:3: + %5hhi:00:1:2:0: + %*5hhi:00:0:2: +-%5hhi:0B0:1:3:0: +-%*5hhi:0B0:0:3: +-%5hhi:0b0:1:3:0: +-%*5hhi:0b0:0:3: + %5hhi:1:1:1:1: + %*5hhi:1:0:1: + %5hhi:0X1:1:3:1: +@@ -964,10 +648,6 @@ + %*5hhi:0x1:0:3: + %5hhi:01:1:2:1: + %*5hhi:01:0:2: +-%5hhi:0B1:1:3:1: +-%*5hhi:0B1:0:3: +-%5hhi:0b1:1:3:1: +-%*5hhi:0b1:0:3: + %5hhi:42:1:2:42: + %*5hhi:42:0:2: + %5hhi:0X2a:1:4:42: +@@ -976,10 +656,6 @@ + %*5hhi:0x2A:0:4: + %5hhi:052:1:3:42: + %*5hhi:052:0:3: +-%5hhi:0B101010:1:5:5: +-%*5hhi:0B101010:0:5: +-%5hhi:0b101010:1:5:5: +-%*5hhi:0b101010:0:5: + %5hhi:127:1:3:127: + %*5hhi:127:0:3: + %5hhi:0X7f:1:4:127: +@@ -988,10 +664,6 @@ + %*5hhi:0x7F:0:4: + %5hhi:0177:1:4:127: + %*5hhi:0177:0:4: +-%5hhi:0B1111111:1:5:7: +-%*5hhi:0B1111111:0:5: +-%5hhi:0b1111111:1:5:7: +-%*5hhi:0b1111111:0:5: + %5hhi:128:1:3:-128: + %*5hhi:128:0:3: + %5hhi:0X80:1:4:-128: +@@ -1000,10 +672,6 @@ + %*5hhi:0x80:0:4: + %5hhi:0200:1:4:-128: + %*5hhi:0200:0:4: +-%5hhi:0B10000000:1:5:4: +-%*5hhi:0B10000000:0:5: +-%5hhi:0b10000000:1:5:4: +-%*5hhi:0b10000000:0:5: + %5hhi:169:1:3:-87: + %*5hhi:169:0:3: + %5hhi:0Xa9:1:4:-87: +@@ -1012,10 +680,6 @@ + %*5hhi:0xA9:0:4: + %5hhi:0251:1:4:-87: + %*5hhi:0251:0:4: +-%5hhi:0B10101001:1:5:5: +-%*5hhi:0B10101001:0:5: +-%5hhi:0b10101001:1:5:5: +-%*5hhi:0b10101001:0:5: + %5hhi:+0:1:2:0: + %*5hhi:+0:0:2: + %5hhi:+0X0:1:4:0: +@@ -1024,10 +688,6 @@ + %*5hhi:+0x0:0:4: + %5hhi:+00:1:3:0: + %*5hhi:+00:0:3: +-%5hhi:+0B0:1:4:0: +-%*5hhi:+0B0:0:4: +-%5hhi:+0b0:1:4:0: +-%*5hhi:+0b0:0:4: + %5hhi:+1:1:2:1: + %*5hhi:+1:0:2: + %5hhi:+0X1:1:4:1: +@@ -1036,10 +696,6 @@ + %*5hhi:+0x1:0:4: + %5hhi:+01:1:3:1: + %*5hhi:+01:0:3: +-%5hhi:+0B1:1:4:1: +-%*5hhi:+0B1:0:4: +-%5hhi:+0b1:1:4:1: +-%*5hhi:+0b1:0:4: + %5hhi:+42:1:3:42: + %*5hhi:+42:0:3: + %5hhi:+0X2a:1:5:42: +@@ -1048,10 +704,6 @@ + %*5hhi:+0x2A:0:5: + %5hhi:+052:1:4:42: + %*5hhi:+052:0:4: +-%5hhi:+0B101010:1:5:2: +-%*5hhi:+0B101010:0:5: +-%5hhi:+0b101010:1:5:2: +-%*5hhi:+0b101010:0:5: + %5hhi:+127:1:4:127: + %*5hhi:+127:0:4: + %5hhi:+0X7f:1:5:127: +@@ -1060,10 +712,6 @@ + %*5hhi:+0x7F:0:5: + %5hhi:+0177:1:5:127: + %*5hhi:+0177:0:5: +-%5hhi:+0B1111111:1:5:3: +-%*5hhi:+0B1111111:0:5: +-%5hhi:+0b1111111:1:5:3: +-%*5hhi:+0b1111111:0:5: + %5hhi:+128:1:4:-128: + %*5hhi:+128:0:4: + %5hhi:+0X80:1:5:-128: +@@ -1072,10 +720,6 @@ + %*5hhi:+0x80:0:5: + %5hhi:+0200:1:5:-128: + %*5hhi:+0200:0:5: +-%5hhi:+0B10000000:1:5:2: +-%*5hhi:+0B10000000:0:5: +-%5hhi:+0b10000000:1:5:2: +-%*5hhi:+0b10000000:0:5: + %5hhi:+169:1:4:-87: + %*5hhi:+169:0:4: + %5hhi:+0Xa9:1:5:-87: +@@ -1084,10 +728,6 @@ + %*5hhi:+0xA9:0:5: + %5hhi:+0251:1:5:-87: + %*5hhi:+0251:0:5: +-%5hhi:+0B10101001:1:5:2: +-%*5hhi:+0B10101001:0:5: +-%5hhi:+0b10101001:1:5:2: +-%*5hhi:+0b10101001:0:5: + %2hhi: :0:-1: + %*2hhi: :0:-1: + %2hhi: -251:1:3:-2: +@@ -1098,10 +738,6 @@ + %*2hhi: -0xFB:0:3: + %2hhi: -0373:1:3:0: + %*2hhi: -0373:0:3: +-%2hhi: -0B11111011:1:3:0: +-%*2hhi: -0B11111011:0:3: +-%2hhi: -0b11111011:1:3:0: +-%*2hhi: -0b11111011:0:3: + %2hhi: -129:1:3:-1: + %*2hhi: -129:0:3: + %2hhi: -0X81:1:3:0: +@@ -1110,10 +746,6 @@ + %*2hhi: -0x81:0:3: + %2hhi: -0201:1:3:0: + %*2hhi: -0201:0:3: +-%2hhi: -0B10000001:1:3:0: +-%*2hhi: -0B10000001:0:3: +-%2hhi: -0b10000001:1:3:0: +-%*2hhi: -0b10000001:0:3: + %2hhi: -128:1:3:-1: + %*2hhi: -128:0:3: + %2hhi: -0X80:1:3:0: +@@ -1122,10 +754,6 @@ + %*2hhi: -0x80:0:3: + %2hhi: -0200:1:3:0: + %*2hhi: -0200:0:3: +-%2hhi: -0B10000000:1:3:0: +-%*2hhi: -0B10000000:0:3: +-%2hhi: -0b10000000:1:3:0: +-%*2hhi: -0b10000000:0:3: + %2hhi: -123:1:3:-1: + %*2hhi: -123:0:3: + %2hhi: -0X7b:1:3:0: +@@ -1134,10 +762,6 @@ + %*2hhi: -0x7B:0:3: + %2hhi: -0173:1:3:0: + %*2hhi: -0173:0:3: +-%2hhi: -0B1111011:1:3:0: +-%*2hhi: -0B1111011:0:3: +-%2hhi: -0b1111011:1:3:0: +-%*2hhi: -0b1111011:0:3: + %2hhi: -1:1:3:-1: + %*2hhi: -1:0:3: + %2hhi: -0X1:1:3:0: +@@ -1146,10 +770,6 @@ + %*2hhi: -0x1:0:3: + %2hhi: -01:1:3:0: + %*2hhi: -01:0:3: +-%2hhi: -0B1:1:3:0: +-%*2hhi: -0B1:0:3: +-%2hhi: -0b1:1:3:0: +-%*2hhi: -0b1:0:3: + %2hhi: -0:1:3:0: + %*2hhi: -0:0:3: + %2hhi: -0X0:1:3:0: +@@ -1158,10 +778,6 @@ + %*2hhi: -0x0:0:3: + %2hhi: -00:1:3:0: + %*2hhi: -00:0:3: +-%2hhi: -0B0:1:3:0: +-%*2hhi: -0B0:0:3: +-%2hhi: -0b0:1:3:0: +-%*2hhi: -0b0:0:3: + %2hhi: 0:1:2:0: + %*2hhi: 0:0:2: + # BZ12701 %2hhi: 0X0:0:-1: +@@ -1170,10 +786,6 @@ + # BZ12701 %*2hhi: 0x0:0:-1: + %2hhi: 00:1:3:0: + %*2hhi: 00:0:3: +-# BZ12701 %2hhi: 0B0:0:-1: +-# BZ12701 %*2hhi: 0B0:0:-1: +-# BZ12701 %2hhi: 0b0:0:-1: +-# BZ12701 %*2hhi: 0b0:0:-1: + %2hhi: 1:1:2:1: + %*2hhi: 1:0:2: + # BZ12701 %2hhi: 0X1:0:-1: +@@ -1182,10 +794,6 @@ + # BZ12701 %*2hhi: 0x1:0:-1: + %2hhi: 01:1:3:1: + %*2hhi: 01:0:3: +-# BZ12701 %2hhi: 0B1:0:-1: +-# BZ12701 %*2hhi: 0B1:0:-1: +-# BZ12701 %2hhi: 0b1:0:-1: +-# BZ12701 %*2hhi: 0b1:0:-1: + %2hhi: 42:1:3:42: + %*2hhi: 42:0:3: + # BZ12701 %2hhi: 0X2a:0:-1: +@@ -1194,10 +802,6 @@ + # BZ12701 %*2hhi: 0x2A:0:-1: + %2hhi: 052:1:3:5: + %*2hhi: 052:0:3: +-# BZ12701 %2hhi: 0B101010:0:-1: +-# BZ12701 %*2hhi: 0B101010:0:-1: +-# BZ12701 %2hhi: 0b101010:0:-1: +-# BZ12701 %*2hhi: 0b101010:0:-1: + %2hhi: 127:1:3:12: + %*2hhi: 127:0:3: + # BZ12701 %2hhi: 0X7f:0:-1: +@@ -1206,10 +810,6 @@ + # BZ12701 %*2hhi: 0x7F:0:-1: + %2hhi: 0177:1:3:1: + %*2hhi: 0177:0:3: +-# BZ12701 %2hhi: 0B1111111:0:-1: +-# BZ12701 %*2hhi: 0B1111111:0:-1: +-# BZ12701 %2hhi: 0b1111111:0:-1: +-# BZ12701 %*2hhi: 0b1111111:0:-1: + %2hhi: 128:1:3:12: + %*2hhi: 128:0:3: + # BZ12701 %2hhi: 0X80:0:-1: +@@ -1218,10 +818,6 @@ + # BZ12701 %*2hhi: 0x80:0:-1: + %2hhi: 0200:1:3:2: + %*2hhi: 0200:0:3: +-# BZ12701 %2hhi: 0B10000000:0:-1: +-# BZ12701 %*2hhi: 0B10000000:0:-1: +-# BZ12701 %2hhi: 0b10000000:0:-1: +-# BZ12701 %*2hhi: 0b10000000:0:-1: + %2hhi: 169:1:3:16: + %*2hhi: 169:0:3: + # BZ12701 %2hhi: 0Xa9:0:-1: +@@ -1230,10 +826,6 @@ + # BZ12701 %*2hhi: 0xA9:0:-1: + %2hhi: 0251:1:3:2: + %*2hhi: 0251:0:3: +-# BZ12701 %2hhi: 0B10101001:0:-1: +-# BZ12701 %*2hhi: 0B10101001:0:-1: +-# BZ12701 %2hhi: 0b10101001:0:-1: +-# BZ12701 %*2hhi: 0b10101001:0:-1: + %2hhi: +0:1:3:0: + %*2hhi: +0:0:3: + %2hhi: +0X0:1:3:0: +@@ -1242,10 +834,6 @@ + %*2hhi: +0x0:0:3: + %2hhi: +00:1:3:0: + %*2hhi: +00:0:3: +-%2hhi: +0B0:1:3:0: +-%*2hhi: +0B0:0:3: +-%2hhi: +0b0:1:3:0: +-%*2hhi: +0b0:0:3: + %2hhi: +1:1:3:1: + %*2hhi: +1:0:3: + %2hhi: +0X1:1:3:0: +@@ -1254,10 +842,6 @@ + %*2hhi: +0x1:0:3: + %2hhi: +01:1:3:0: + %*2hhi: +01:0:3: +-%2hhi: +0B1:1:3:0: +-%*2hhi: +0B1:0:3: +-%2hhi: +0b1:1:3:0: +-%*2hhi: +0b1:0:3: + %2hhi: +42:1:3:4: + %*2hhi: +42:0:3: + %2hhi: +0X2a:1:3:0: +@@ -1266,10 +850,6 @@ + %*2hhi: +0x2A:0:3: + %2hhi: +052:1:3:0: + %*2hhi: +052:0:3: +-%2hhi: +0B101010:1:3:0: +-%*2hhi: +0B101010:0:3: +-%2hhi: +0b101010:1:3:0: +-%*2hhi: +0b101010:0:3: + %2hhi: +127:1:3:1: + %*2hhi: +127:0:3: + %2hhi: +0X7f:1:3:0: +@@ -1278,10 +858,6 @@ + %*2hhi: +0x7F:0:3: + %2hhi: +0177:1:3:0: + %*2hhi: +0177:0:3: +-%2hhi: +0B1111111:1:3:0: +-%*2hhi: +0B1111111:0:3: +-%2hhi: +0b1111111:1:3:0: +-%*2hhi: +0b1111111:0:3: + %2hhi: +128:1:3:1: + %*2hhi: +128:0:3: + %2hhi: +0X80:1:3:0: +@@ -1290,10 +866,6 @@ + %*2hhi: +0x80:0:3: + %2hhi: +0200:1:3:0: + %*2hhi: +0200:0:3: +-%2hhi: +0B10000000:1:3:0: +-%*2hhi: +0B10000000:0:3: +-%2hhi: +0b10000000:1:3:0: +-%*2hhi: +0b10000000:0:3: + %2hhi: +169:1:3:1: + %*2hhi: +169:0:3: + %2hhi: +0Xa9:1:3:0: +@@ -1302,10 +874,6 @@ + %*2hhi: +0xA9:0:3: + %2hhi: +0251:1:3:0: + %*2hhi: +0251:0:3: +-%2hhi: +0B10101001:1:3:0: +-%*2hhi: +0B10101001:0:3: +-%2hhi: +0b10101001:1:3:0: +-%*2hhi: +0b10101001:0:3: + %5hhi: :0:-1: + %*5hhi: :0:-1: + %5hhi: -251:1:5:5: +@@ -1316,10 +884,6 @@ + %*5hhi: -0xFB:0:6: + %5hhi: -0373:1:6:5: + %*5hhi: -0373:0:6: +-%5hhi: -0B11111011:1:6:-3: +-%*5hhi: -0B11111011:0:6: +-%5hhi: -0b11111011:1:6:-3: +-%*5hhi: -0b11111011:0:6: + %5hhi: -129:1:5:127: + %*5hhi: -129:0:5: + %5hhi: -0X81:1:6:127: +@@ -1328,10 +892,6 @@ + %*5hhi: -0x81:0:6: + %5hhi: -0201:1:6:127: + %*5hhi: -0201:0:6: +-%5hhi: -0B10000001:1:6:-2: +-%*5hhi: -0B10000001:0:6: +-%5hhi: -0b10000001:1:6:-2: +-%*5hhi: -0b10000001:0:6: + %5hhi: -128:1:5:-128: + %*5hhi: -128:0:5: + %5hhi: -0X80:1:6:-128: +@@ -1340,10 +900,6 @@ + %*5hhi: -0x80:0:6: + %5hhi: -0200:1:6:-128: + %*5hhi: -0200:0:6: +-%5hhi: -0B10000000:1:6:-2: +-%*5hhi: -0B10000000:0:6: +-%5hhi: -0b10000000:1:6:-2: +-%*5hhi: -0b10000000:0:6: + %5hhi: -123:1:5:-123: + %*5hhi: -123:0:5: + %5hhi: -0X7b:1:6:-123: +@@ -1352,10 +908,6 @@ + %*5hhi: -0x7B:0:6: + %5hhi: -0173:1:6:-123: + %*5hhi: -0173:0:6: +-%5hhi: -0B1111011:1:6:-3: +-%*5hhi: -0B1111011:0:6: +-%5hhi: -0b1111011:1:6:-3: +-%*5hhi: -0b1111011:0:6: + %5hhi: -1:1:3:-1: + %*5hhi: -1:0:3: + %5hhi: -0X1:1:5:-1: +@@ -1364,10 +916,6 @@ + %*5hhi: -0x1:0:5: + %5hhi: -01:1:4:-1: + %*5hhi: -01:0:4: +-%5hhi: -0B1:1:5:-1: +-%*5hhi: -0B1:0:5: +-%5hhi: -0b1:1:5:-1: +-%*5hhi: -0b1:0:5: + %5hhi: -0:1:3:0: + %*5hhi: -0:0:3: + %5hhi: -0X0:1:5:0: +@@ -1376,10 +924,6 @@ + %*5hhi: -0x0:0:5: + %5hhi: -00:1:4:0: + %*5hhi: -00:0:4: +-%5hhi: -0B0:1:5:0: +-%*5hhi: -0B0:0:5: +-%5hhi: -0b0:1:5:0: +-%*5hhi: -0b0:0:5: + %5hhi: 0:1:2:0: + %*5hhi: 0:0:2: + %5hhi: 0X0:1:4:0: +@@ -1388,10 +932,6 @@ + %*5hhi: 0x0:0:4: + %5hhi: 00:1:3:0: + %*5hhi: 00:0:3: +-%5hhi: 0B0:1:4:0: +-%*5hhi: 0B0:0:4: +-%5hhi: 0b0:1:4:0: +-%*5hhi: 0b0:0:4: + %5hhi: 1:1:2:1: + %*5hhi: 1:0:2: + %5hhi: 0X1:1:4:1: +@@ -1400,10 +940,6 @@ + %*5hhi: 0x1:0:4: + %5hhi: 01:1:3:1: + %*5hhi: 01:0:3: +-%5hhi: 0B1:1:4:1: +-%*5hhi: 0B1:0:4: +-%5hhi: 0b1:1:4:1: +-%*5hhi: 0b1:0:4: + %5hhi: 42:1:3:42: + %*5hhi: 42:0:3: + %5hhi: 0X2a:1:5:42: +@@ -1412,10 +948,6 @@ + %*5hhi: 0x2A:0:5: + %5hhi: 052:1:4:42: + %*5hhi: 052:0:4: +-%5hhi: 0B101010:1:6:5: +-%*5hhi: 0B101010:0:6: +-%5hhi: 0b101010:1:6:5: +-%*5hhi: 0b101010:0:6: + %5hhi: 127:1:4:127: + %*5hhi: 127:0:4: + %5hhi: 0X7f:1:5:127: +@@ -1424,10 +956,6 @@ + %*5hhi: 0x7F:0:5: + %5hhi: 0177:1:5:127: + %*5hhi: 0177:0:5: +-%5hhi: 0B1111111:1:6:7: +-%*5hhi: 0B1111111:0:6: +-%5hhi: 0b1111111:1:6:7: +-%*5hhi: 0b1111111:0:6: + %5hhi: 128:1:4:-128: + %*5hhi: 128:0:4: + %5hhi: 0X80:1:5:-128: +@@ -1436,10 +964,6 @@ + %*5hhi: 0x80:0:5: + %5hhi: 0200:1:5:-128: + %*5hhi: 0200:0:5: +-%5hhi: 0B10000000:1:6:4: +-%*5hhi: 0B10000000:0:6: +-%5hhi: 0b10000000:1:6:4: +-%*5hhi: 0b10000000:0:6: + %5hhi: 169:1:4:-87: + %*5hhi: 169:0:4: + %5hhi: 0Xa9:1:5:-87: +@@ -1448,10 +972,6 @@ + %*5hhi: 0xA9:0:5: + %5hhi: 0251:1:5:-87: + %*5hhi: 0251:0:5: +-%5hhi: 0B10101001:1:6:5: +-%*5hhi: 0B10101001:0:6: +-%5hhi: 0b10101001:1:6:5: +-%*5hhi: 0b10101001:0:6: + %5hhi: +0:1:3:0: + %*5hhi: +0:0:3: + %5hhi: +0X0:1:5:0: +@@ -1460,10 +980,6 @@ + %*5hhi: +0x0:0:5: + %5hhi: +00:1:4:0: + %*5hhi: +00:0:4: +-%5hhi: +0B0:1:5:0: +-%*5hhi: +0B0:0:5: +-%5hhi: +0b0:1:5:0: +-%*5hhi: +0b0:0:5: + %5hhi: +1:1:3:1: + %*5hhi: +1:0:3: + %5hhi: +0X1:1:5:1: +@@ -1472,10 +988,6 @@ + %*5hhi: +0x1:0:5: + %5hhi: +01:1:4:1: + %*5hhi: +01:0:4: +-%5hhi: +0B1:1:5:1: +-%*5hhi: +0B1:0:5: +-%5hhi: +0b1:1:5:1: +-%*5hhi: +0b1:0:5: + %5hhi: +42:1:4:42: + %*5hhi: +42:0:4: + %5hhi: +0X2a:1:6:42: +@@ -1484,10 +996,6 @@ + %*5hhi: +0x2A:0:6: + %5hhi: +052:1:5:42: + %*5hhi: +052:0:5: +-%5hhi: +0B101010:1:6:2: +-%*5hhi: +0B101010:0:6: +-%5hhi: +0b101010:1:6:2: +-%*5hhi: +0b101010:0:6: + %5hhi: +127:1:5:127: + %*5hhi: +127:0:5: + %5hhi: +0X7f:1:6:127: +@@ -1496,10 +1004,6 @@ + %*5hhi: +0x7F:0:6: + %5hhi: +0177:1:6:127: + %*5hhi: +0177:0:6: +-%5hhi: +0B1111111:1:6:3: +-%*5hhi: +0B1111111:0:6: +-%5hhi: +0b1111111:1:6:3: +-%*5hhi: +0b1111111:0:6: + %5hhi: +128:1:5:-128: + %*5hhi: +128:0:5: + %5hhi: +0X80:1:6:-128: +@@ -1508,10 +1012,6 @@ + %*5hhi: +0x80:0:6: + %5hhi: +0200:1:6:-128: + %*5hhi: +0200:0:6: +-%5hhi: +0B10000000:1:6:2: +-%*5hhi: +0B10000000:0:6: +-%5hhi: +0b10000000:1:6:2: +-%*5hhi: +0b10000000:0:6: + %5hhi: +169:1:5:-87: + %*5hhi: +169:0:5: + %5hhi: +0Xa9:1:6:-87: +@@ -1520,7 +1020,3 @@ + %*5hhi: +0xA9:0:6: + %5hhi: +0251:1:6:-87: + %*5hhi: +0251:0:6: +-%5hhi: +0B10101001:1:6:2: +-%*5hhi: +0B10101001:0:6: +-%5hhi: +0b10101001:1:6:2: +-%*5hhi: +0b10101001:0:6: +diff --git a/stdio-common/tst-scanf-format-llong-i.input b/stdio-common/tst-scanf-format-llong-i.input +index f63e35d099c4a330..cd3ba450dc25d22c 100644 +--- a/stdio-common/tst-scanf-format-llong-i.input ++++ b/stdio-common/tst-scanf-format-llong-i.input +@@ -8,10 +8,6 @@ + %*lli:-0x8000000000BC614E:0:19: + %lli:-01000000000000057060516:1:24:-9223372036854775808: + %*lli:-01000000000000057060516:0:24: +-%lli:-0B1000000000000000000000000000000000000000101111000110000101001110:1:67:-9223372036854775808: +-%*lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:67: +-%lli:-0b1000000000000000000000000000000000000000101111000110000101001110:1:67:-9223372036854775808: +-%*lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:67: + %lli:-9223372036854775809:1:20:-9223372036854775808: + %*lli:-9223372036854775809:0:20: + %lli:-0X8000000000000001:1:19:-9223372036854775808: +@@ -20,10 +16,6 @@ + %*lli:-0x8000000000000001:0:19: + %lli:-01000000000000000000001:1:24:-9223372036854775808: + %*lli:-01000000000000000000001:0:24: +-%lli:-0B1000000000000000000000000000000000000000000000000000000000000001:1:67:-9223372036854775808: +-%*lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:67: +-%lli:-0b1000000000000000000000000000000000000000000000000000000000000001:1:67:-9223372036854775808: +-%*lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:67: + %lli:-9223372036854775808:1:20:-9223372036854775808: + %*lli:-9223372036854775808:0:20: + %lli:-0X8000000000000000:1:19:-9223372036854775808: +@@ -32,10 +24,6 @@ + %*lli:-0x8000000000000000:0:19: + %lli:-01000000000000000000000:1:24:-9223372036854775808: + %*lli:-01000000000000000000000:0:24: +-%lli:-0B1000000000000000000000000000000000000000000000000000000000000000:1:67:-9223372036854775808: +-%*lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:67: +-%lli:-0b1000000000000000000000000000000000000000000000000000000000000000:1:67:-9223372036854775808: +-%*lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:67: + %lli:-123:1:4:-123: + %*lli:-123:0:4: + %lli:-0X7b:1:5:-123: +@@ -44,10 +32,6 @@ + %*lli:-0x7B:0:5: + %lli:-0173:1:5:-123: + %*lli:-0173:0:5: +-%lli:-0B1111011:1:10:-123: +-%*lli:-0B1111011:0:10: +-%lli:-0b1111011:1:10:-123: +-%*lli:-0b1111011:0:10: + %lli:-1:1:2:-1: + %*lli:-1:0:2: + %lli:-0X1:1:4:-1: +@@ -56,10 +40,6 @@ + %*lli:-0x1:0:4: + %lli:-01:1:3:-1: + %*lli:-01:0:3: +-%lli:-0B1:1:4:-1: +-%*lli:-0B1:0:4: +-%lli:-0b1:1:4:-1: +-%*lli:-0b1:0:4: + %lli:-0:1:2:0: + %*lli:-0:0:2: + %lli:-0X0:1:4:0: +@@ -68,10 +48,6 @@ + %*lli:-0x0:0:4: + %lli:-00:1:3:0: + %*lli:-00:0:3: +-%lli:-0B0:1:4:0: +-%*lli:-0B0:0:4: +-%lli:-0b0:1:4:0: +-%*lli:-0b0:0:4: + %lli:0:1:1:0: + %*lli:0:0:1: + %lli:0X0:1:3:0: +@@ -80,10 +56,6 @@ + %*lli:0x0:0:3: + %lli:00:1:2:0: + %*lli:00:0:2: +-%lli:0B0:1:3:0: +-%*lli:0B0:0:3: +-%lli:0b0:1:3:0: +-%*lli:0b0:0:3: + %lli:1:1:1:1: + %*lli:1:0:1: + %lli:0X1:1:3:1: +@@ -92,10 +64,6 @@ + %*lli:0x1:0:3: + %lli:01:1:2:1: + %*lli:01:0:2: +-%lli:0B1:1:3:1: +-%*lli:0B1:0:3: +-%lli:0b1:1:3:1: +-%*lli:0b1:0:3: + %lli:42:1:2:42: + %*lli:42:0:2: + %lli:0X2a:1:4:42: +@@ -104,10 +72,6 @@ + %*lli:0x2A:0:4: + %lli:052:1:3:42: + %*lli:052:0:3: +-%lli:0B101010:1:8:42: +-%*lli:0B101010:0:8: +-%lli:0b101010:1:8:42: +-%*lli:0b101010:0:8: + %lli:9223372036854775807:1:19:9223372036854775807: + %*lli:9223372036854775807:0:19: + %lli:0X7fffffffffffffff:1:18:9223372036854775807: +@@ -116,10 +80,6 @@ + %*lli:0x7FFFFFFFFFFFFFFF:0:18: + %lli:0777777777777777777777:1:22:9223372036854775807: + %*lli:0777777777777777777777:0:22: +-%lli:0B111111111111111111111111111111111111111111111111111111111111111:1:65:9223372036854775807: +-%*lli:0B111111111111111111111111111111111111111111111111111111111111111:0:65: +-%lli:0b111111111111111111111111111111111111111111111111111111111111111:1:65:9223372036854775807: +-%*lli:0b111111111111111111111111111111111111111111111111111111111111111:0:65: + %lli:9223372036854775808:1:19:9223372036854775807: + %*lli:9223372036854775808:0:19: + %lli:0X8000000000000000:1:18:9223372036854775807: +@@ -128,10 +88,6 @@ + %*lli:0x8000000000000000:0:18: + %lli:01000000000000000000000:1:23:9223372036854775807: + %*lli:01000000000000000000000:0:23: +-%lli:0B1000000000000000000000000000000000000000000000000000000000000000:1:66:9223372036854775807: +-%*lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:66: +-%lli:0b1000000000000000000000000000000000000000000000000000000000000000:1:66:9223372036854775807: +-%*lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:66: + %lli:9223372036897200049:1:19:9223372036854775807: + %*lli:9223372036897200049:0:19: + %lli:0X80000000028757b1:1:18:9223372036854775807: +@@ -140,10 +96,6 @@ + %*lli:0x80000000028757B1:0:18: + %lli:01000000000000241653661:1:23:9223372036854775807: + %*lli:01000000000000241653661:0:23: +-%lli:0B1000000000000000000000000000000000000010100001110101011110110001:1:66:9223372036854775807: +-%*lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:66: +-%lli:0b1000000000000000000000000000000000000010100001110101011110110001:1:66:9223372036854775807: +-%*lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:66: + %lli:+0:1:2:0: + %*lli:+0:0:2: + %lli:+0X0:1:4:0: +@@ -152,10 +104,6 @@ + %*lli:+0x0:0:4: + %lli:+00:1:3:0: + %*lli:+00:0:3: +-%lli:+0B0:1:4:0: +-%*lli:+0B0:0:4: +-%lli:+0b0:1:4:0: +-%*lli:+0b0:0:4: + %lli:+1:1:2:1: + %*lli:+1:0:2: + %lli:+0X1:1:4:1: +@@ -164,10 +112,6 @@ + %*lli:+0x1:0:4: + %lli:+01:1:3:1: + %*lli:+01:0:3: +-%lli:+0B1:1:4:1: +-%*lli:+0B1:0:4: +-%lli:+0b1:1:4:1: +-%*lli:+0b1:0:4: + %lli:+42:1:3:42: + %*lli:+42:0:3: + %lli:+0X2a:1:5:42: +@@ -176,10 +120,6 @@ + %*lli:+0x2A:0:5: + %lli:+052:1:4:42: + %*lli:+052:0:4: +-%lli:+0B101010:1:9:42: +-%*lli:+0B101010:0:9: +-%lli:+0b101010:1:9:42: +-%*lli:+0b101010:0:9: + %lli:+9223372036854775807:1:20:9223372036854775807: + %*lli:+9223372036854775807:0:20: + %lli:+0X7fffffffffffffff:1:19:9223372036854775807: +@@ -188,10 +128,6 @@ + %*lli:+0x7FFFFFFFFFFFFFFF:0:19: + %lli:+0777777777777777777777:1:23:9223372036854775807: + %*lli:+0777777777777777777777:0:23: +-%lli:+0B111111111111111111111111111111111111111111111111111111111111111:1:66:9223372036854775807: +-%*lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:66: +-%lli:+0b111111111111111111111111111111111111111111111111111111111111111:1:66:9223372036854775807: +-%*lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:66: + %lli:+9223372036854775808:1:20:9223372036854775807: + %*lli:+9223372036854775808:0:20: + %lli:+0X8000000000000000:1:19:9223372036854775807: +@@ -200,10 +136,6 @@ + %*lli:+0x8000000000000000:0:19: + %lli:+01000000000000000000000:1:24:9223372036854775807: + %*lli:+01000000000000000000000:0:24: +-%lli:+0B1000000000000000000000000000000000000000000000000000000000000000:1:67:9223372036854775807: +-%*lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:67: +-%lli:+0b1000000000000000000000000000000000000000000000000000000000000000:1:67:9223372036854775807: +-%*lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:67: + %lli:+9223372036897200049:1:20:9223372036854775807: + %*lli:+9223372036897200049:0:20: + %lli:+0X80000000028757b1:1:19:9223372036854775807: +@@ -212,10 +144,6 @@ + %*lli:+0x80000000028757B1:0:19: + %lli:+01000000000000241653661:1:24:9223372036854775807: + %*lli:+01000000000000241653661:0:24: +-%lli:+0B1000000000000000000000000000000000000010100001110101011110110001:1:67:9223372036854775807: +-%*lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:67: +-%lli:+0b1000000000000000000000000000000000000010100001110101011110110001:1:67:9223372036854775807: +-%*lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:67: + %1lli::0:-1: + %*1lli::0:-1: + %1lli:-9223372036867121486:0:-1: +@@ -226,10 +154,6 @@ + %*1lli:-0x8000000000BC614E:0:-1: + %1lli:-01000000000000057060516:0:-1: + %*1lli:-01000000000000057060516:0:-1: +-%1lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:-1: +-%*1lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:-1: +-%1lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:-1: +-%*1lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:-1: + %1lli:-9223372036854775809:0:-1: + %*1lli:-9223372036854775809:0:-1: + %1lli:-0X8000000000000001:0:-1: +@@ -238,10 +162,6 @@ + %*1lli:-0x8000000000000001:0:-1: + %1lli:-01000000000000000000001:0:-1: + %*1lli:-01000000000000000000001:0:-1: +-%1lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:-1: +-%*1lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:-1: +-%1lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:-1: +-%*1lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:-1: + %1lli:-9223372036854775808:0:-1: + %*1lli:-9223372036854775808:0:-1: + %1lli:-0X8000000000000000:0:-1: +@@ -250,10 +170,6 @@ + %*1lli:-0x8000000000000000:0:-1: + %1lli:-01000000000000000000000:0:-1: + %*1lli:-01000000000000000000000:0:-1: +-%1lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%1lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: + %1lli:-123:0:-1: + %*1lli:-123:0:-1: + %1lli:-0X7b:0:-1: +@@ -262,10 +178,6 @@ + %*1lli:-0x7B:0:-1: + %1lli:-0173:0:-1: + %*1lli:-0173:0:-1: +-%1lli:-0B1111011:0:-1: +-%*1lli:-0B1111011:0:-1: +-%1lli:-0b1111011:0:-1: +-%*1lli:-0b1111011:0:-1: + %1lli:-1:0:-1: + %*1lli:-1:0:-1: + %1lli:-0X1:0:-1: +@@ -274,10 +186,6 @@ + %*1lli:-0x1:0:-1: + %1lli:-01:0:-1: + %*1lli:-01:0:-1: +-%1lli:-0B1:0:-1: +-%*1lli:-0B1:0:-1: +-%1lli:-0b1:0:-1: +-%*1lli:-0b1:0:-1: + %1lli:-0:0:-1: + %*1lli:-0:0:-1: + %1lli:-0X0:0:-1: +@@ -286,10 +194,6 @@ + %*1lli:-0x0:0:-1: + %1lli:-00:0:-1: + %*1lli:-00:0:-1: +-%1lli:-0B0:0:-1: +-%*1lli:-0B0:0:-1: +-%1lli:-0b0:0:-1: +-%*1lli:-0b0:0:-1: + %1lli:0:1:1:0: + %*1lli:0:0:1: + %1lli:0X0:1:1:0: +@@ -298,10 +202,6 @@ + %*1lli:0x0:0:1: + %1lli:00:1:1:0: + %*1lli:00:0:1: +-%1lli:0B0:1:1:0: +-%*1lli:0B0:0:1: +-%1lli:0b0:1:1:0: +-%*1lli:0b0:0:1: + %1lli:1:1:1:1: + %*1lli:1:0:1: + %1lli:0X1:1:1:0: +@@ -310,10 +210,6 @@ + %*1lli:0x1:0:1: + %1lli:01:1:1:0: + %*1lli:01:0:1: +-%1lli:0B1:1:1:0: +-%*1lli:0B1:0:1: +-%1lli:0b1:1:1:0: +-%*1lli:0b1:0:1: + %1lli:42:1:1:4: + %*1lli:42:0:1: + %1lli:0X2a:1:1:0: +@@ -322,10 +218,6 @@ + %*1lli:0x2A:0:1: + %1lli:052:1:1:0: + %*1lli:052:0:1: +-%1lli:0B101010:1:1:0: +-%*1lli:0B101010:0:1: +-%1lli:0b101010:1:1:0: +-%*1lli:0b101010:0:1: + %1lli:9223372036854775807:1:1:9: + %*1lli:9223372036854775807:0:1: + %1lli:0X7fffffffffffffff:1:1:0: +@@ -334,10 +226,6 @@ + %*1lli:0x7FFFFFFFFFFFFFFF:0:1: + %1lli:0777777777777777777777:1:1:0: + %*1lli:0777777777777777777777:0:1: +-%1lli:0B111111111111111111111111111111111111111111111111111111111111111:1:1:0: +-%*1lli:0B111111111111111111111111111111111111111111111111111111111111111:0:1: +-%1lli:0b111111111111111111111111111111111111111111111111111111111111111:1:1:0: +-%*1lli:0b111111111111111111111111111111111111111111111111111111111111111:0:1: + %1lli:9223372036854775808:1:1:9: + %*1lli:9223372036854775808:0:1: + %1lli:0X8000000000000000:1:1:0: +@@ -346,10 +234,6 @@ + %*1lli:0x8000000000000000:0:1: + %1lli:01000000000000000000000:1:1:0: + %*1lli:01000000000000000000000:0:1: +-%1lli:0B1000000000000000000000000000000000000000000000000000000000000000:1:1:0: +-%*1lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:1: +-%1lli:0b1000000000000000000000000000000000000000000000000000000000000000:1:1:0: +-%*1lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:1: + %1lli:9223372036897200049:1:1:9: + %*1lli:9223372036897200049:0:1: + %1lli:0X80000000028757b1:1:1:0: +@@ -358,10 +242,6 @@ + %*1lli:0x80000000028757B1:0:1: + %1lli:01000000000000241653661:1:1:0: + %*1lli:01000000000000241653661:0:1: +-%1lli:0B1000000000000000000000000000000000000010100001110101011110110001:1:1:0: +-%*1lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:1: +-%1lli:0b1000000000000000000000000000000000000010100001110101011110110001:1:1:0: +-%*1lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:1: + %1lli:+0:0:-1: + %*1lli:+0:0:-1: + %1lli:+0X0:0:-1: +@@ -370,10 +250,6 @@ + %*1lli:+0x0:0:-1: + %1lli:+00:0:-1: + %*1lli:+00:0:-1: +-%1lli:+0B0:0:-1: +-%*1lli:+0B0:0:-1: +-%1lli:+0b0:0:-1: +-%*1lli:+0b0:0:-1: + %1lli:+1:0:-1: + %*1lli:+1:0:-1: + %1lli:+0X1:0:-1: +@@ -382,10 +258,6 @@ + %*1lli:+0x1:0:-1: + %1lli:+01:0:-1: + %*1lli:+01:0:-1: +-%1lli:+0B1:0:-1: +-%*1lli:+0B1:0:-1: +-%1lli:+0b1:0:-1: +-%*1lli:+0b1:0:-1: + %1lli:+42:0:-1: + %*1lli:+42:0:-1: + %1lli:+0X2a:0:-1: +@@ -394,10 +266,6 @@ + %*1lli:+0x2A:0:-1: + %1lli:+052:0:-1: + %*1lli:+052:0:-1: +-%1lli:+0B101010:0:-1: +-%*1lli:+0B101010:0:-1: +-%1lli:+0b101010:0:-1: +-%*1lli:+0b101010:0:-1: + %1lli:+9223372036854775807:0:-1: + %*1lli:+9223372036854775807:0:-1: + %1lli:+0X7fffffffffffffff:0:-1: +@@ -406,10 +274,6 @@ + %*1lli:+0x7FFFFFFFFFFFFFFF:0:-1: + %1lli:+0777777777777777777777:0:-1: + %*1lli:+0777777777777777777777:0:-1: +-%1lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%*1lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%1lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%*1lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:-1: + %1lli:+9223372036854775808:0:-1: + %*1lli:+9223372036854775808:0:-1: + %1lli:+0X8000000000000000:0:-1: +@@ -418,10 +282,6 @@ + %*1lli:+0x8000000000000000:0:-1: + %1lli:+01000000000000000000000:0:-1: + %*1lli:+01000000000000000000000:0:-1: +-%1lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%1lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: + %1lli:+9223372036897200049:0:-1: + %*1lli:+9223372036897200049:0:-1: + %1lli:+0X80000000028757b1:0:-1: +@@ -430,10 +290,6 @@ + %*1lli:+0x80000000028757B1:0:-1: + %1lli:+01000000000000241653661:0:-1: + %*1lli:+01000000000000241653661:0:-1: +-%1lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%*1lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%1lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%*1lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: + %2lli::0:-1: + %*2lli::0:-1: + %2lli:-9223372036867121486:1:2:-9: +@@ -444,10 +300,6 @@ + %*2lli:-0x8000000000BC614E:0:2: + %2lli:-01000000000000057060516:1:2:0: + %*2lli:-01000000000000057060516:0:2: +-%2lli:-0B1000000000000000000000000000000000000000101111000110000101001110:1:2:0: +-%*2lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:2: +-%2lli:-0b1000000000000000000000000000000000000000101111000110000101001110:1:2:0: +-%*2lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:2: + %2lli:-9223372036854775809:1:2:-9: + %*2lli:-9223372036854775809:0:2: + %2lli:-0X8000000000000001:1:2:0: +@@ -456,10 +308,6 @@ + %*2lli:-0x8000000000000001:0:2: + %2lli:-01000000000000000000001:1:2:0: + %*2lli:-01000000000000000000001:0:2: +-%2lli:-0B1000000000000000000000000000000000000000000000000000000000000001:1:2:0: +-%*2lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:2: +-%2lli:-0b1000000000000000000000000000000000000000000000000000000000000001:1:2:0: +-%*2lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:2: + %2lli:-9223372036854775808:1:2:-9: + %*2lli:-9223372036854775808:0:2: + %2lli:-0X8000000000000000:1:2:0: +@@ -468,10 +316,6 @@ + %*2lli:-0x8000000000000000:0:2: + %2lli:-01000000000000000000000:1:2:0: + %*2lli:-01000000000000000000000:0:2: +-%2lli:-0B1000000000000000000000000000000000000000000000000000000000000000:1:2:0: +-%*2lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:2: +-%2lli:-0b1000000000000000000000000000000000000000000000000000000000000000:1:2:0: +-%*2lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:2: + %2lli:-123:1:2:-1: + %*2lli:-123:0:2: + %2lli:-0X7b:1:2:0: +@@ -480,10 +324,6 @@ + %*2lli:-0x7B:0:2: + %2lli:-0173:1:2:0: + %*2lli:-0173:0:2: +-%2lli:-0B1111011:1:2:0: +-%*2lli:-0B1111011:0:2: +-%2lli:-0b1111011:1:2:0: +-%*2lli:-0b1111011:0:2: + %2lli:-1:1:2:-1: + %*2lli:-1:0:2: + %2lli:-0X1:1:2:0: +@@ -492,10 +332,6 @@ + %*2lli:-0x1:0:2: + %2lli:-01:1:2:0: + %*2lli:-01:0:2: +-%2lli:-0B1:1:2:0: +-%*2lli:-0B1:0:2: +-%2lli:-0b1:1:2:0: +-%*2lli:-0b1:0:2: + %2lli:-0:1:2:0: + %*2lli:-0:0:2: + %2lli:-0X0:1:2:0: +@@ -504,10 +340,6 @@ + %*2lli:-0x0:0:2: + %2lli:-00:1:2:0: + %*2lli:-00:0:2: +-%2lli:-0B0:1:2:0: +-%*2lli:-0B0:0:2: +-%2lli:-0b0:1:2:0: +-%*2lli:-0b0:0:2: + %2lli:0:1:1:0: + %*2lli:0:0:1: + # BZ12701 %2lli:0X0:0:-1: +@@ -516,10 +348,6 @@ + # BZ12701 %*2lli:0x0:0:-1: + %2lli:00:1:2:0: + %*2lli:00:0:2: +-# BZ12701 %2lli:0B0:0:-1: +-# BZ12701 %*2lli:0B0:0:-1: +-# BZ12701 %2lli:0b0:0:-1: +-# BZ12701 %*2lli:0b0:0:-1: + %2lli:1:1:1:1: + %*2lli:1:0:1: + # BZ12701 %2lli:0X1:0:-1: +@@ -528,10 +356,6 @@ + # BZ12701 %*2lli:0x1:0:-1: + %2lli:01:1:2:1: + %*2lli:01:0:2: +-# BZ12701 %2lli:0B1:0:-1: +-# BZ12701 %*2lli:0B1:0:-1: +-# BZ12701 %2lli:0b1:0:-1: +-# BZ12701 %*2lli:0b1:0:-1: + %2lli:42:1:2:42: + %*2lli:42:0:2: + # BZ12701 %2lli:0X2a:0:-1: +@@ -540,10 +364,6 @@ + # BZ12701 %*2lli:0x2A:0:-1: + %2lli:052:1:2:5: + %*2lli:052:0:2: +-# BZ12701 %2lli:0B101010:0:-1: +-# BZ12701 %*2lli:0B101010:0:-1: +-# BZ12701 %2lli:0b101010:0:-1: +-# BZ12701 %*2lli:0b101010:0:-1: + %2lli:9223372036854775807:1:2:92: + %*2lli:9223372036854775807:0:2: + # BZ12701 %2lli:0X7fffffffffffffff:0:-1: +@@ -552,10 +372,6 @@ + # BZ12701 %*2lli:0x7FFFFFFFFFFFFFFF:0:-1: + %2lli:0777777777777777777777:1:2:7: + %*2lli:0777777777777777777777:0:2: +-# BZ12701 %2lli:0B111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2lli:0B111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %2lli:0b111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2lli:0b111111111111111111111111111111111111111111111111111111111111111:0:-1: + %2lli:9223372036854775808:1:2:92: + %*2lli:9223372036854775808:0:2: + # BZ12701 %2lli:0X8000000000000000:0:-1: +@@ -564,10 +380,6 @@ + # BZ12701 %*2lli:0x8000000000000000:0:-1: + %2lli:01000000000000000000000:1:2:1: + %*2lli:01000000000000000000000:0:2: +-# BZ12701 %2lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %2lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: + %2lli:9223372036897200049:1:2:92: + %*2lli:9223372036897200049:0:2: + # BZ12701 %2lli:0X80000000028757b1:0:-1: +@@ -576,10 +388,6 @@ + # BZ12701 %*2lli:0x80000000028757B1:0:-1: + %2lli:01000000000000241653661:1:2:1: + %*2lli:01000000000000241653661:0:2: +-# BZ12701 %2lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %2lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: + %2lli:+0:1:2:0: + %*2lli:+0:0:2: + %2lli:+0X0:1:2:0: +@@ -588,10 +396,6 @@ + %*2lli:+0x0:0:2: + %2lli:+00:1:2:0: + %*2lli:+00:0:2: +-%2lli:+0B0:1:2:0: +-%*2lli:+0B0:0:2: +-%2lli:+0b0:1:2:0: +-%*2lli:+0b0:0:2: + %2lli:+1:1:2:1: + %*2lli:+1:0:2: + %2lli:+0X1:1:2:0: +@@ -600,10 +404,6 @@ + %*2lli:+0x1:0:2: + %2lli:+01:1:2:0: + %*2lli:+01:0:2: +-%2lli:+0B1:1:2:0: +-%*2lli:+0B1:0:2: +-%2lli:+0b1:1:2:0: +-%*2lli:+0b1:0:2: + %2lli:+42:1:2:4: + %*2lli:+42:0:2: + %2lli:+0X2a:1:2:0: +@@ -612,10 +412,6 @@ + %*2lli:+0x2A:0:2: + %2lli:+052:1:2:0: + %*2lli:+052:0:2: +-%2lli:+0B101010:1:2:0: +-%*2lli:+0B101010:0:2: +-%2lli:+0b101010:1:2:0: +-%*2lli:+0b101010:0:2: + %2lli:+9223372036854775807:1:2:9: + %*2lli:+9223372036854775807:0:2: + %2lli:+0X7fffffffffffffff:1:2:0: +@@ -624,10 +420,6 @@ + %*2lli:+0x7FFFFFFFFFFFFFFF:0:2: + %2lli:+0777777777777777777777:1:2:0: + %*2lli:+0777777777777777777777:0:2: +-%2lli:+0B111111111111111111111111111111111111111111111111111111111111111:1:2:0: +-%*2lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:2: +-%2lli:+0b111111111111111111111111111111111111111111111111111111111111111:1:2:0: +-%*2lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:2: + %2lli:+9223372036854775808:1:2:9: + %*2lli:+9223372036854775808:0:2: + %2lli:+0X8000000000000000:1:2:0: +@@ -636,10 +428,6 @@ + %*2lli:+0x8000000000000000:0:2: + %2lli:+01000000000000000000000:1:2:0: + %*2lli:+01000000000000000000000:0:2: +-%2lli:+0B1000000000000000000000000000000000000000000000000000000000000000:1:2:0: +-%*2lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:2: +-%2lli:+0b1000000000000000000000000000000000000000000000000000000000000000:1:2:0: +-%*2lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:2: + %2lli:+9223372036897200049:1:2:9: + %*2lli:+9223372036897200049:0:2: + %2lli:+0X80000000028757b1:1:2:0: +@@ -648,10 +436,6 @@ + %*2lli:+0x80000000028757B1:0:2: + %2lli:+01000000000000241653661:1:2:0: + %*2lli:+01000000000000241653661:0:2: +-%2lli:+0B1000000000000000000000000000000000000010100001110101011110110001:1:2:0: +-%*2lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:2: +-%2lli:+0b1000000000000000000000000000000000000010100001110101011110110001:1:2:0: +-%*2lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:2: + %15lli::0:-1: + %*15lli::0:-1: + %15lli:-9223372036867121486:1:15:-92233720368671: +@@ -662,10 +446,6 @@ + %*15lli:-0x8000000000BC614E:0:15: + %15lli:-01000000000000057060516:1:15:-68719476736: + %*15lli:-01000000000000057060516:0:15: +-%15lli:-0B1000000000000000000000000000000000000000101111000110000101001110:1:15:-2048: +-%*15lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:15: +-%15lli:-0b1000000000000000000000000000000000000000101111000110000101001110:1:15:-2048: +-%*15lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:15: + %15lli:-9223372036854775809:1:15:-92233720368547: + %*15lli:-9223372036854775809:0:15: + %15lli:-0X8000000000000001:1:15:-140737488355328: +@@ -674,10 +454,6 @@ + %*15lli:-0x8000000000000001:0:15: + %15lli:-01000000000000000000001:1:15:-68719476736: + %*15lli:-01000000000000000000001:0:15: +-%15lli:-0B1000000000000000000000000000000000000000000000000000000000000001:1:15:-2048: +-%*15lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:15: +-%15lli:-0b1000000000000000000000000000000000000000000000000000000000000001:1:15:-2048: +-%*15lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:15: + %15lli:-9223372036854775808:1:15:-92233720368547: + %*15lli:-9223372036854775808:0:15: + %15lli:-0X8000000000000000:1:15:-140737488355328: +@@ -686,10 +462,6 @@ + %*15lli:-0x8000000000000000:0:15: + %15lli:-01000000000000000000000:1:15:-68719476736: + %*15lli:-01000000000000000000000:0:15: +-%15lli:-0B1000000000000000000000000000000000000000000000000000000000000000:1:15:-2048: +-%*15lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15lli:-0b1000000000000000000000000000000000000000000000000000000000000000:1:15:-2048: +-%*15lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:15: + %15lli:-123:1:4:-123: + %*15lli:-123:0:4: + %15lli:-0X7b:1:5:-123: +@@ -698,10 +470,6 @@ + %*15lli:-0x7B:0:5: + %15lli:-0173:1:5:-123: + %*15lli:-0173:0:5: +-%15lli:-0B1111011:1:10:-123: +-%*15lli:-0B1111011:0:10: +-%15lli:-0b1111011:1:10:-123: +-%*15lli:-0b1111011:0:10: + %15lli:-1:1:2:-1: + %*15lli:-1:0:2: + %15lli:-0X1:1:4:-1: +@@ -710,10 +478,6 @@ + %*15lli:-0x1:0:4: + %15lli:-01:1:3:-1: + %*15lli:-01:0:3: +-%15lli:-0B1:1:4:-1: +-%*15lli:-0B1:0:4: +-%15lli:-0b1:1:4:-1: +-%*15lli:-0b1:0:4: + %15lli:-0:1:2:0: + %*15lli:-0:0:2: + %15lli:-0X0:1:4:0: +@@ -722,10 +486,6 @@ + %*15lli:-0x0:0:4: + %15lli:-00:1:3:0: + %*15lli:-00:0:3: +-%15lli:-0B0:1:4:0: +-%*15lli:-0B0:0:4: +-%15lli:-0b0:1:4:0: +-%*15lli:-0b0:0:4: + %15lli:0:1:1:0: + %*15lli:0:0:1: + %15lli:0X0:1:3:0: +@@ -734,10 +494,6 @@ + %*15lli:0x0:0:3: + %15lli:00:1:2:0: + %*15lli:00:0:2: +-%15lli:0B0:1:3:0: +-%*15lli:0B0:0:3: +-%15lli:0b0:1:3:0: +-%*15lli:0b0:0:3: + %15lli:1:1:1:1: + %*15lli:1:0:1: + %15lli:0X1:1:3:1: +@@ -746,10 +502,6 @@ + %*15lli:0x1:0:3: + %15lli:01:1:2:1: + %*15lli:01:0:2: +-%15lli:0B1:1:3:1: +-%*15lli:0B1:0:3: +-%15lli:0b1:1:3:1: +-%*15lli:0b1:0:3: + %15lli:42:1:2:42: + %*15lli:42:0:2: + %15lli:0X2a:1:4:42: +@@ -758,10 +510,6 @@ + %*15lli:0x2A:0:4: + %15lli:052:1:3:42: + %*15lli:052:0:3: +-%15lli:0B101010:1:8:42: +-%*15lli:0B101010:0:8: +-%15lli:0b101010:1:8:42: +-%*15lli:0b101010:0:8: + %15lli:9223372036854775807:1:15:922337203685477: + %*15lli:9223372036854775807:0:15: + %15lli:0X7fffffffffffffff:1:15:2251799813685247: +@@ -770,10 +518,6 @@ + %*15lli:0x7FFFFFFFFFFFFFFF:0:15: + %15lli:0777777777777777777777:1:15:4398046511103: + %*15lli:0777777777777777777777:0:15: +-%15lli:0B111111111111111111111111111111111111111111111111111111111111111:1:15:8191: +-%*15lli:0B111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15lli:0b111111111111111111111111111111111111111111111111111111111111111:1:15:8191: +-%*15lli:0b111111111111111111111111111111111111111111111111111111111111111:0:15: + %15lli:9223372036854775808:1:15:922337203685477: + %*15lli:9223372036854775808:0:15: + %15lli:0X8000000000000000:1:15:2251799813685248: +@@ -782,10 +526,6 @@ + %*15lli:0x8000000000000000:0:15: + %15lli:01000000000000000000000:1:15:549755813888: + %*15lli:01000000000000000000000:0:15: +-%15lli:0B1000000000000000000000000000000000000000000000000000000000000000:1:15:4096: +-%*15lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15lli:0b1000000000000000000000000000000000000000000000000000000000000000:1:15:4096: +-%*15lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:15: + %15lli:9223372036897200049:1:15:922337203689720: + %*15lli:9223372036897200049:0:15: + %15lli:0X80000000028757b1:1:15:2251799813695605: +@@ -794,10 +534,6 @@ + %*15lli:0x80000000028757B1:0:15: + %15lli:01000000000000241653661:1:15:549755813890: + %*15lli:01000000000000241653661:0:15: +-%15lli:0B1000000000000000000000000000000000000010100001110101011110110001:1:15:4096: +-%*15lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15lli:0b1000000000000000000000000000000000000010100001110101011110110001:1:15:4096: +-%*15lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:15: + %15lli:+0:1:2:0: + %*15lli:+0:0:2: + %15lli:+0X0:1:4:0: +@@ -806,10 +542,6 @@ + %*15lli:+0x0:0:4: + %15lli:+00:1:3:0: + %*15lli:+00:0:3: +-%15lli:+0B0:1:4:0: +-%*15lli:+0B0:0:4: +-%15lli:+0b0:1:4:0: +-%*15lli:+0b0:0:4: + %15lli:+1:1:2:1: + %*15lli:+1:0:2: + %15lli:+0X1:1:4:1: +@@ -818,10 +550,6 @@ + %*15lli:+0x1:0:4: + %15lli:+01:1:3:1: + %*15lli:+01:0:3: +-%15lli:+0B1:1:4:1: +-%*15lli:+0B1:0:4: +-%15lli:+0b1:1:4:1: +-%*15lli:+0b1:0:4: + %15lli:+42:1:3:42: + %*15lli:+42:0:3: + %15lli:+0X2a:1:5:42: +@@ -830,10 +558,6 @@ + %*15lli:+0x2A:0:5: + %15lli:+052:1:4:42: + %*15lli:+052:0:4: +-%15lli:+0B101010:1:9:42: +-%*15lli:+0B101010:0:9: +-%15lli:+0b101010:1:9:42: +-%*15lli:+0b101010:0:9: + %15lli:+9223372036854775807:1:15:92233720368547: + %*15lli:+9223372036854775807:0:15: + %15lli:+0X7fffffffffffffff:1:15:140737488355327: +@@ -842,10 +566,6 @@ + %*15lli:+0x7FFFFFFFFFFFFFFF:0:15: + %15lli:+0777777777777777777777:1:15:549755813887: + %*15lli:+0777777777777777777777:0:15: +-%15lli:+0B111111111111111111111111111111111111111111111111111111111111111:1:15:4095: +-%*15lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15lli:+0b111111111111111111111111111111111111111111111111111111111111111:1:15:4095: +-%*15lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:15: + %15lli:+9223372036854775808:1:15:92233720368547: + %*15lli:+9223372036854775808:0:15: + %15lli:+0X8000000000000000:1:15:140737488355328: +@@ -854,10 +574,6 @@ + %*15lli:+0x8000000000000000:0:15: + %15lli:+01000000000000000000000:1:15:68719476736: + %*15lli:+01000000000000000000000:0:15: +-%15lli:+0B1000000000000000000000000000000000000000000000000000000000000000:1:15:2048: +-%*15lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15lli:+0b1000000000000000000000000000000000000000000000000000000000000000:1:15:2048: +-%*15lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:15: + %15lli:+9223372036897200049:1:15:92233720368972: + %*15lli:+9223372036897200049:0:15: + %15lli:+0X80000000028757b1:1:15:140737488355975: +@@ -866,10 +582,6 @@ + %*15lli:+0x80000000028757B1:0:15: + %15lli:+01000000000000241653661:1:15:68719476736: + %*15lli:+01000000000000241653661:0:15: +-%15lli:+0B1000000000000000000000000000000000000010100001110101011110110001:1:15:2048: +-%*15lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15lli:+0b1000000000000000000000000000000000000010100001110101011110110001:1:15:2048: +-%*15lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:15: + %25lli::0:-1: + %*25lli::0:-1: + %25lli:-9223372036867121486:1:20:-9223372036854775808: +@@ -880,10 +592,6 @@ + %*25lli:-0x8000000000BC614E:0:19: + %25lli:-01000000000000057060516:1:24:-9223372036854775808: + %*25lli:-01000000000000057060516:0:24: +-%25lli:-0B1000000000000000000000000000000000000000101111000110000101001110:1:25:-2097152: +-%*25lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:25: +-%25lli:-0b1000000000000000000000000000000000000000101111000110000101001110:1:25:-2097152: +-%*25lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:25: + %25lli:-9223372036854775809:1:20:-9223372036854775808: + %*25lli:-9223372036854775809:0:20: + %25lli:-0X8000000000000001:1:19:-9223372036854775808: +@@ -892,10 +600,6 @@ + %*25lli:-0x8000000000000001:0:19: + %25lli:-01000000000000000000001:1:24:-9223372036854775808: + %*25lli:-01000000000000000000001:0:24: +-%25lli:-0B1000000000000000000000000000000000000000000000000000000000000001:1:25:-2097152: +-%*25lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:25: +-%25lli:-0b1000000000000000000000000000000000000000000000000000000000000001:1:25:-2097152: +-%*25lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:25: + %25lli:-9223372036854775808:1:20:-9223372036854775808: + %*25lli:-9223372036854775808:0:20: + %25lli:-0X8000000000000000:1:19:-9223372036854775808: +@@ -904,10 +608,6 @@ + %*25lli:-0x8000000000000000:0:19: + %25lli:-01000000000000000000000:1:24:-9223372036854775808: + %*25lli:-01000000000000000000000:0:24: +-%25lli:-0B1000000000000000000000000000000000000000000000000000000000000000:1:25:-2097152: +-%*25lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25lli:-0b1000000000000000000000000000000000000000000000000000000000000000:1:25:-2097152: +-%*25lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:25: + %25lli:-123:1:4:-123: + %*25lli:-123:0:4: + %25lli:-0X7b:1:5:-123: +@@ -916,10 +616,6 @@ + %*25lli:-0x7B:0:5: + %25lli:-0173:1:5:-123: + %*25lli:-0173:0:5: +-%25lli:-0B1111011:1:10:-123: +-%*25lli:-0B1111011:0:10: +-%25lli:-0b1111011:1:10:-123: +-%*25lli:-0b1111011:0:10: + %25lli:-1:1:2:-1: + %*25lli:-1:0:2: + %25lli:-0X1:1:4:-1: +@@ -928,10 +624,6 @@ + %*25lli:-0x1:0:4: + %25lli:-01:1:3:-1: + %*25lli:-01:0:3: +-%25lli:-0B1:1:4:-1: +-%*25lli:-0B1:0:4: +-%25lli:-0b1:1:4:-1: +-%*25lli:-0b1:0:4: + %25lli:-0:1:2:0: + %*25lli:-0:0:2: + %25lli:-0X0:1:4:0: +@@ -940,10 +632,6 @@ + %*25lli:-0x0:0:4: + %25lli:-00:1:3:0: + %*25lli:-00:0:3: +-%25lli:-0B0:1:4:0: +-%*25lli:-0B0:0:4: +-%25lli:-0b0:1:4:0: +-%*25lli:-0b0:0:4: + %25lli:0:1:1:0: + %*25lli:0:0:1: + %25lli:0X0:1:3:0: +@@ -952,10 +640,6 @@ + %*25lli:0x0:0:3: + %25lli:00:1:2:0: + %*25lli:00:0:2: +-%25lli:0B0:1:3:0: +-%*25lli:0B0:0:3: +-%25lli:0b0:1:3:0: +-%*25lli:0b0:0:3: + %25lli:1:1:1:1: + %*25lli:1:0:1: + %25lli:0X1:1:3:1: +@@ -964,10 +648,6 @@ + %*25lli:0x1:0:3: + %25lli:01:1:2:1: + %*25lli:01:0:2: +-%25lli:0B1:1:3:1: +-%*25lli:0B1:0:3: +-%25lli:0b1:1:3:1: +-%*25lli:0b1:0:3: + %25lli:42:1:2:42: + %*25lli:42:0:2: + %25lli:0X2a:1:4:42: +@@ -976,10 +656,6 @@ + %*25lli:0x2A:0:4: + %25lli:052:1:3:42: + %*25lli:052:0:3: +-%25lli:0B101010:1:8:42: +-%*25lli:0B101010:0:8: +-%25lli:0b101010:1:8:42: +-%*25lli:0b101010:0:8: + %25lli:9223372036854775807:1:19:9223372036854775807: + %*25lli:9223372036854775807:0:19: + %25lli:0X7fffffffffffffff:1:18:9223372036854775807: +@@ -988,10 +664,6 @@ + %*25lli:0x7FFFFFFFFFFFFFFF:0:18: + %25lli:0777777777777777777777:1:22:9223372036854775807: + %*25lli:0777777777777777777777:0:22: +-%25lli:0B111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: +-%*25lli:0B111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25lli:0b111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: +-%*25lli:0b111111111111111111111111111111111111111111111111111111111111111:0:25: + %25lli:9223372036854775808:1:19:9223372036854775807: + %*25lli:9223372036854775808:0:19: + %25lli:0X8000000000000000:1:18:9223372036854775807: +@@ -1000,10 +672,6 @@ + %*25lli:0x8000000000000000:0:18: + %25lli:01000000000000000000000:1:23:9223372036854775807: + %*25lli:01000000000000000000000:0:23: +-%25lli:0B1000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: +-%*25lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25lli:0b1000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: +-%*25lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:25: + %25lli:9223372036897200049:1:19:9223372036854775807: + %*25lli:9223372036897200049:0:19: + %25lli:0X80000000028757b1:1:18:9223372036854775807: +@@ -1012,10 +680,6 @@ + %*25lli:0x80000000028757B1:0:18: + %25lli:01000000000000241653661:1:23:9223372036854775807: + %*25lli:01000000000000241653661:0:23: +-%25lli:0B1000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: +-%*25lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25lli:0b1000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: +-%*25lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:25: + %25lli:+0:1:2:0: + %*25lli:+0:0:2: + %25lli:+0X0:1:4:0: +@@ -1024,10 +688,6 @@ + %*25lli:+0x0:0:4: + %25lli:+00:1:3:0: + %*25lli:+00:0:3: +-%25lli:+0B0:1:4:0: +-%*25lli:+0B0:0:4: +-%25lli:+0b0:1:4:0: +-%*25lli:+0b0:0:4: + %25lli:+1:1:2:1: + %*25lli:+1:0:2: + %25lli:+0X1:1:4:1: +@@ -1036,10 +696,6 @@ + %*25lli:+0x1:0:4: + %25lli:+01:1:3:1: + %*25lli:+01:0:3: +-%25lli:+0B1:1:4:1: +-%*25lli:+0B1:0:4: +-%25lli:+0b1:1:4:1: +-%*25lli:+0b1:0:4: + %25lli:+42:1:3:42: + %*25lli:+42:0:3: + %25lli:+0X2a:1:5:42: +@@ -1048,10 +704,6 @@ + %*25lli:+0x2A:0:5: + %25lli:+052:1:4:42: + %*25lli:+052:0:4: +-%25lli:+0B101010:1:9:42: +-%*25lli:+0B101010:0:9: +-%25lli:+0b101010:1:9:42: +-%*25lli:+0b101010:0:9: + %25lli:+9223372036854775807:1:20:9223372036854775807: + %*25lli:+9223372036854775807:0:20: + %25lli:+0X7fffffffffffffff:1:19:9223372036854775807: +@@ -1060,10 +712,6 @@ + %*25lli:+0x7FFFFFFFFFFFFFFF:0:19: + %25lli:+0777777777777777777777:1:23:9223372036854775807: + %*25lli:+0777777777777777777777:0:23: +-%25lli:+0B111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: +-%*25lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25lli:+0b111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: +-%*25lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:25: + %25lli:+9223372036854775808:1:20:9223372036854775807: + %*25lli:+9223372036854775808:0:20: + %25lli:+0X8000000000000000:1:19:9223372036854775807: +@@ -1072,10 +720,6 @@ + %*25lli:+0x8000000000000000:0:19: + %25lli:+01000000000000000000000:1:24:9223372036854775807: + %*25lli:+01000000000000000000000:0:24: +-%25lli:+0B1000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: +-%*25lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25lli:+0b1000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: +-%*25lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:25: + %25lli:+9223372036897200049:1:20:9223372036854775807: + %*25lli:+9223372036897200049:0:20: + %25lli:+0X80000000028757b1:1:19:9223372036854775807: +@@ -1084,10 +728,6 @@ + %*25lli:+0x80000000028757B1:0:19: + %25lli:+01000000000000241653661:1:24:9223372036854775807: + %*25lli:+01000000000000241653661:0:24: +-%25lli:+0B1000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: +-%*25lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25lli:+0b1000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: +-%*25lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:25: + %2lli: :0:-1: + %*2lli: :0:-1: + %2lli: -9223372036867121486:1:3:-9: +@@ -1098,10 +738,6 @@ + %*2lli: -0x8000000000BC614E:0:3: + %2lli: -01000000000000057060516:1:3:0: + %*2lli: -01000000000000057060516:0:3: +-%2lli: -0B1000000000000000000000000000000000000000101111000110000101001110:1:3:0: +-%*2lli: -0B1000000000000000000000000000000000000000101111000110000101001110:0:3: +-%2lli: -0b1000000000000000000000000000000000000000101111000110000101001110:1:3:0: +-%*2lli: -0b1000000000000000000000000000000000000000101111000110000101001110:0:3: + %2lli: -9223372036854775809:1:3:-9: + %*2lli: -9223372036854775809:0:3: + %2lli: -0X8000000000000001:1:3:0: +@@ -1110,10 +746,6 @@ + %*2lli: -0x8000000000000001:0:3: + %2lli: -01000000000000000000001:1:3:0: + %*2lli: -01000000000000000000001:0:3: +-%2lli: -0B1000000000000000000000000000000000000000000000000000000000000001:1:3:0: +-%*2lli: -0B1000000000000000000000000000000000000000000000000000000000000001:0:3: +-%2lli: -0b1000000000000000000000000000000000000000000000000000000000000001:1:3:0: +-%*2lli: -0b1000000000000000000000000000000000000000000000000000000000000001:0:3: + %2lli: -9223372036854775808:1:3:-9: + %*2lli: -9223372036854775808:0:3: + %2lli: -0X8000000000000000:1:3:0: +@@ -1122,10 +754,6 @@ + %*2lli: -0x8000000000000000:0:3: + %2lli: -01000000000000000000000:1:3:0: + %*2lli: -01000000000000000000000:0:3: +-%2lli: -0B1000000000000000000000000000000000000000000000000000000000000000:1:3:0: +-%*2lli: -0B1000000000000000000000000000000000000000000000000000000000000000:0:3: +-%2lli: -0b1000000000000000000000000000000000000000000000000000000000000000:1:3:0: +-%*2lli: -0b1000000000000000000000000000000000000000000000000000000000000000:0:3: + %2lli: -123:1:3:-1: + %*2lli: -123:0:3: + %2lli: -0X7b:1:3:0: +@@ -1134,10 +762,6 @@ + %*2lli: -0x7B:0:3: + %2lli: -0173:1:3:0: + %*2lli: -0173:0:3: +-%2lli: -0B1111011:1:3:0: +-%*2lli: -0B1111011:0:3: +-%2lli: -0b1111011:1:3:0: +-%*2lli: -0b1111011:0:3: + %2lli: -1:1:3:-1: + %*2lli: -1:0:3: + %2lli: -0X1:1:3:0: +@@ -1146,10 +770,6 @@ + %*2lli: -0x1:0:3: + %2lli: -01:1:3:0: + %*2lli: -01:0:3: +-%2lli: -0B1:1:3:0: +-%*2lli: -0B1:0:3: +-%2lli: -0b1:1:3:0: +-%*2lli: -0b1:0:3: + %2lli: -0:1:3:0: + %*2lli: -0:0:3: + %2lli: -0X0:1:3:0: +@@ -1158,10 +778,6 @@ + %*2lli: -0x0:0:3: + %2lli: -00:1:3:0: + %*2lli: -00:0:3: +-%2lli: -0B0:1:3:0: +-%*2lli: -0B0:0:3: +-%2lli: -0b0:1:3:0: +-%*2lli: -0b0:0:3: + %2lli: 0:1:2:0: + %*2lli: 0:0:2: + # BZ12701 %2lli: 0X0:0:-1: +@@ -1170,10 +786,6 @@ + # BZ12701 %*2lli: 0x0:0:-1: + %2lli: 00:1:3:0: + %*2lli: 00:0:3: +-# BZ12701 %2lli: 0B0:0:-1: +-# BZ12701 %*2lli: 0B0:0:-1: +-# BZ12701 %2lli: 0b0:0:-1: +-# BZ12701 %*2lli: 0b0:0:-1: + %2lli: 1:1:2:1: + %*2lli: 1:0:2: + # BZ12701 %2lli: 0X1:0:-1: +@@ -1182,10 +794,6 @@ + # BZ12701 %*2lli: 0x1:0:-1: + %2lli: 01:1:3:1: + %*2lli: 01:0:3: +-# BZ12701 %2lli: 0B1:0:-1: +-# BZ12701 %*2lli: 0B1:0:-1: +-# BZ12701 %2lli: 0b1:0:-1: +-# BZ12701 %*2lli: 0b1:0:-1: + %2lli: 42:1:3:42: + %*2lli: 42:0:3: + # BZ12701 %2lli: 0X2a:0:-1: +@@ -1194,10 +802,6 @@ + # BZ12701 %*2lli: 0x2A:0:-1: + %2lli: 052:1:3:5: + %*2lli: 052:0:3: +-# BZ12701 %2lli: 0B101010:0:-1: +-# BZ12701 %*2lli: 0B101010:0:-1: +-# BZ12701 %2lli: 0b101010:0:-1: +-# BZ12701 %*2lli: 0b101010:0:-1: + %2lli: 9223372036854775807:1:3:92: + %*2lli: 9223372036854775807:0:3: + # BZ12701 %2lli: 0X7fffffffffffffff:0:-1: +@@ -1206,10 +810,6 @@ + # BZ12701 %*2lli: 0x7FFFFFFFFFFFFFFF:0:-1: + %2lli: 0777777777777777777777:1:3:7: + %*2lli: 0777777777777777777777:0:3: +-# BZ12701 %2lli: 0B111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2lli: 0B111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %2lli: 0b111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2lli: 0b111111111111111111111111111111111111111111111111111111111111111:0:-1: + %2lli: 9223372036854775808:1:3:92: + %*2lli: 9223372036854775808:0:3: + # BZ12701 %2lli: 0X8000000000000000:0:-1: +@@ -1218,10 +818,6 @@ + # BZ12701 %*2lli: 0x8000000000000000:0:-1: + %2lli: 01000000000000000000000:1:3:1: + %*2lli: 01000000000000000000000:0:3: +-# BZ12701 %2lli: 0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2lli: 0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %2lli: 0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2lli: 0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: + %2lli: 9223372036897200049:1:3:92: + %*2lli: 9223372036897200049:0:3: + # BZ12701 %2lli: 0X80000000028757b1:0:-1: +@@ -1230,10 +826,6 @@ + # BZ12701 %*2lli: 0x80000000028757B1:0:-1: + %2lli: 01000000000000241653661:1:3:1: + %*2lli: 01000000000000241653661:0:3: +-# BZ12701 %2lli: 0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2lli: 0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %2lli: 0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2lli: 0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: + %2lli: +0:1:3:0: + %*2lli: +0:0:3: + %2lli: +0X0:1:3:0: +@@ -1242,10 +834,6 @@ + %*2lli: +0x0:0:3: + %2lli: +00:1:3:0: + %*2lli: +00:0:3: +-%2lli: +0B0:1:3:0: +-%*2lli: +0B0:0:3: +-%2lli: +0b0:1:3:0: +-%*2lli: +0b0:0:3: + %2lli: +1:1:3:1: + %*2lli: +1:0:3: + %2lli: +0X1:1:3:0: +@@ -1254,10 +842,6 @@ + %*2lli: +0x1:0:3: + %2lli: +01:1:3:0: + %*2lli: +01:0:3: +-%2lli: +0B1:1:3:0: +-%*2lli: +0B1:0:3: +-%2lli: +0b1:1:3:0: +-%*2lli: +0b1:0:3: + %2lli: +42:1:3:4: + %*2lli: +42:0:3: + %2lli: +0X2a:1:3:0: +@@ -1266,10 +850,6 @@ + %*2lli: +0x2A:0:3: + %2lli: +052:1:3:0: + %*2lli: +052:0:3: +-%2lli: +0B101010:1:3:0: +-%*2lli: +0B101010:0:3: +-%2lli: +0b101010:1:3:0: +-%*2lli: +0b101010:0:3: + %2lli: +9223372036854775807:1:3:9: + %*2lli: +9223372036854775807:0:3: + %2lli: +0X7fffffffffffffff:1:3:0: +@@ -1278,10 +858,6 @@ + %*2lli: +0x7FFFFFFFFFFFFFFF:0:3: + %2lli: +0777777777777777777777:1:3:0: + %*2lli: +0777777777777777777777:0:3: +-%2lli: +0B111111111111111111111111111111111111111111111111111111111111111:1:3:0: +-%*2lli: +0B111111111111111111111111111111111111111111111111111111111111111:0:3: +-%2lli: +0b111111111111111111111111111111111111111111111111111111111111111:1:3:0: +-%*2lli: +0b111111111111111111111111111111111111111111111111111111111111111:0:3: + %2lli: +9223372036854775808:1:3:9: + %*2lli: +9223372036854775808:0:3: + %2lli: +0X8000000000000000:1:3:0: +@@ -1290,10 +866,6 @@ + %*2lli: +0x8000000000000000:0:3: + %2lli: +01000000000000000000000:1:3:0: + %*2lli: +01000000000000000000000:0:3: +-%2lli: +0B1000000000000000000000000000000000000000000000000000000000000000:1:3:0: +-%*2lli: +0B1000000000000000000000000000000000000000000000000000000000000000:0:3: +-%2lli: +0b1000000000000000000000000000000000000000000000000000000000000000:1:3:0: +-%*2lli: +0b1000000000000000000000000000000000000000000000000000000000000000:0:3: + %2lli: +9223372036897200049:1:3:9: + %*2lli: +9223372036897200049:0:3: + %2lli: +0X80000000028757b1:1:3:0: +@@ -1302,10 +874,6 @@ + %*2lli: +0x80000000028757B1:0:3: + %2lli: +01000000000000241653661:1:3:0: + %*2lli: +01000000000000241653661:0:3: +-%2lli: +0B1000000000000000000000000000000000000010100001110101011110110001:1:3:0: +-%*2lli: +0B1000000000000000000000000000000000000010100001110101011110110001:0:3: +-%2lli: +0b1000000000000000000000000000000000000010100001110101011110110001:1:3:0: +-%*2lli: +0b1000000000000000000000000000000000000010100001110101011110110001:0:3: + %25lli: :0:-1: + %*25lli: :0:-1: + %25lli: -9223372036867121486:1:21:-9223372036854775808: +@@ -1316,10 +884,6 @@ + %*25lli: -0x8000000000BC614E:0:20: + %25lli: -01000000000000057060516:1:25:-9223372036854775808: + %*25lli: -01000000000000057060516:0:25: +-%25lli: -0B1000000000000000000000000000000000000000101111000110000101001110:1:26:-2097152: +-%*25lli: -0B1000000000000000000000000000000000000000101111000110000101001110:0:26: +-%25lli: -0b1000000000000000000000000000000000000000101111000110000101001110:1:26:-2097152: +-%*25lli: -0b1000000000000000000000000000000000000000101111000110000101001110:0:26: + %25lli: -9223372036854775809:1:21:-9223372036854775808: + %*25lli: -9223372036854775809:0:21: + %25lli: -0X8000000000000001:1:20:-9223372036854775808: +@@ -1328,10 +892,6 @@ + %*25lli: -0x8000000000000001:0:20: + %25lli: -01000000000000000000001:1:25:-9223372036854775808: + %*25lli: -01000000000000000000001:0:25: +-%25lli: -0B1000000000000000000000000000000000000000000000000000000000000001:1:26:-2097152: +-%*25lli: -0B1000000000000000000000000000000000000000000000000000000000000001:0:26: +-%25lli: -0b1000000000000000000000000000000000000000000000000000000000000001:1:26:-2097152: +-%*25lli: -0b1000000000000000000000000000000000000000000000000000000000000001:0:26: + %25lli: -9223372036854775808:1:21:-9223372036854775808: + %*25lli: -9223372036854775808:0:21: + %25lli: -0X8000000000000000:1:20:-9223372036854775808: +@@ -1340,10 +900,6 @@ + %*25lli: -0x8000000000000000:0:20: + %25lli: -01000000000000000000000:1:25:-9223372036854775808: + %*25lli: -01000000000000000000000:0:25: +-%25lli: -0B1000000000000000000000000000000000000000000000000000000000000000:1:26:-2097152: +-%*25lli: -0B1000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25lli: -0b1000000000000000000000000000000000000000000000000000000000000000:1:26:-2097152: +-%*25lli: -0b1000000000000000000000000000000000000000000000000000000000000000:0:26: + %25lli: -123:1:5:-123: + %*25lli: -123:0:5: + %25lli: -0X7b:1:6:-123: +@@ -1352,10 +908,6 @@ + %*25lli: -0x7B:0:6: + %25lli: -0173:1:6:-123: + %*25lli: -0173:0:6: +-%25lli: -0B1111011:1:11:-123: +-%*25lli: -0B1111011:0:11: +-%25lli: -0b1111011:1:11:-123: +-%*25lli: -0b1111011:0:11: + %25lli: -1:1:3:-1: + %*25lli: -1:0:3: + %25lli: -0X1:1:5:-1: +@@ -1364,10 +916,6 @@ + %*25lli: -0x1:0:5: + %25lli: -01:1:4:-1: + %*25lli: -01:0:4: +-%25lli: -0B1:1:5:-1: +-%*25lli: -0B1:0:5: +-%25lli: -0b1:1:5:-1: +-%*25lli: -0b1:0:5: + %25lli: -0:1:3:0: + %*25lli: -0:0:3: + %25lli: -0X0:1:5:0: +@@ -1376,10 +924,6 @@ + %*25lli: -0x0:0:5: + %25lli: -00:1:4:0: + %*25lli: -00:0:4: +-%25lli: -0B0:1:5:0: +-%*25lli: -0B0:0:5: +-%25lli: -0b0:1:5:0: +-%*25lli: -0b0:0:5: + %25lli: 0:1:2:0: + %*25lli: 0:0:2: + %25lli: 0X0:1:4:0: +@@ -1388,10 +932,6 @@ + %*25lli: 0x0:0:4: + %25lli: 00:1:3:0: + %*25lli: 00:0:3: +-%25lli: 0B0:1:4:0: +-%*25lli: 0B0:0:4: +-%25lli: 0b0:1:4:0: +-%*25lli: 0b0:0:4: + %25lli: 1:1:2:1: + %*25lli: 1:0:2: + %25lli: 0X1:1:4:1: +@@ -1400,10 +940,6 @@ + %*25lli: 0x1:0:4: + %25lli: 01:1:3:1: + %*25lli: 01:0:3: +-%25lli: 0B1:1:4:1: +-%*25lli: 0B1:0:4: +-%25lli: 0b1:1:4:1: +-%*25lli: 0b1:0:4: + %25lli: 42:1:3:42: + %*25lli: 42:0:3: + %25lli: 0X2a:1:5:42: +@@ -1412,10 +948,6 @@ + %*25lli: 0x2A:0:5: + %25lli: 052:1:4:42: + %*25lli: 052:0:4: +-%25lli: 0B101010:1:9:42: +-%*25lli: 0B101010:0:9: +-%25lli: 0b101010:1:9:42: +-%*25lli: 0b101010:0:9: + %25lli: 9223372036854775807:1:20:9223372036854775807: + %*25lli: 9223372036854775807:0:20: + %25lli: 0X7fffffffffffffff:1:19:9223372036854775807: +@@ -1424,10 +956,6 @@ + %*25lli: 0x7FFFFFFFFFFFFFFF:0:19: + %25lli: 0777777777777777777777:1:23:9223372036854775807: + %*25lli: 0777777777777777777777:0:23: +-%25lli: 0B111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: +-%*25lli: 0B111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25lli: 0b111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: +-%*25lli: 0b111111111111111111111111111111111111111111111111111111111111111:0:26: + %25lli: 9223372036854775808:1:20:9223372036854775807: + %*25lli: 9223372036854775808:0:20: + %25lli: 0X8000000000000000:1:19:9223372036854775807: +@@ -1436,10 +964,6 @@ + %*25lli: 0x8000000000000000:0:19: + %25lli: 01000000000000000000000:1:24:9223372036854775807: + %*25lli: 01000000000000000000000:0:24: +-%25lli: 0B1000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: +-%*25lli: 0B1000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25lli: 0b1000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: +-%*25lli: 0b1000000000000000000000000000000000000000000000000000000000000000:0:26: + %25lli: 9223372036897200049:1:20:9223372036854775807: + %*25lli: 9223372036897200049:0:20: + %25lli: 0X80000000028757b1:1:19:9223372036854775807: +@@ -1448,10 +972,6 @@ + %*25lli: 0x80000000028757B1:0:19: + %25lli: 01000000000000241653661:1:24:9223372036854775807: + %*25lli: 01000000000000241653661:0:24: +-%25lli: 0B1000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: +-%*25lli: 0B1000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25lli: 0b1000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: +-%*25lli: 0b1000000000000000000000000000000000000010100001110101011110110001:0:26: + %25lli: +0:1:3:0: + %*25lli: +0:0:3: + %25lli: +0X0:1:5:0: +@@ -1460,10 +980,6 @@ + %*25lli: +0x0:0:5: + %25lli: +00:1:4:0: + %*25lli: +00:0:4: +-%25lli: +0B0:1:5:0: +-%*25lli: +0B0:0:5: +-%25lli: +0b0:1:5:0: +-%*25lli: +0b0:0:5: + %25lli: +1:1:3:1: + %*25lli: +1:0:3: + %25lli: +0X1:1:5:1: +@@ -1472,10 +988,6 @@ + %*25lli: +0x1:0:5: + %25lli: +01:1:4:1: + %*25lli: +01:0:4: +-%25lli: +0B1:1:5:1: +-%*25lli: +0B1:0:5: +-%25lli: +0b1:1:5:1: +-%*25lli: +0b1:0:5: + %25lli: +42:1:4:42: + %*25lli: +42:0:4: + %25lli: +0X2a:1:6:42: +@@ -1484,10 +996,6 @@ + %*25lli: +0x2A:0:6: + %25lli: +052:1:5:42: + %*25lli: +052:0:5: +-%25lli: +0B101010:1:10:42: +-%*25lli: +0B101010:0:10: +-%25lli: +0b101010:1:10:42: +-%*25lli: +0b101010:0:10: + %25lli: +9223372036854775807:1:21:9223372036854775807: + %*25lli: +9223372036854775807:0:21: + %25lli: +0X7fffffffffffffff:1:20:9223372036854775807: +@@ -1496,10 +1004,6 @@ + %*25lli: +0x7FFFFFFFFFFFFFFF:0:20: + %25lli: +0777777777777777777777:1:24:9223372036854775807: + %*25lli: +0777777777777777777777:0:24: +-%25lli: +0B111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: +-%*25lli: +0B111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25lli: +0b111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: +-%*25lli: +0b111111111111111111111111111111111111111111111111111111111111111:0:26: + %25lli: +9223372036854775808:1:21:9223372036854775807: + %*25lli: +9223372036854775808:0:21: + %25lli: +0X8000000000000000:1:20:9223372036854775807: +@@ -1508,10 +1012,6 @@ + %*25lli: +0x8000000000000000:0:20: + %25lli: +01000000000000000000000:1:25:9223372036854775807: + %*25lli: +01000000000000000000000:0:25: +-%25lli: +0B1000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: +-%*25lli: +0B1000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25lli: +0b1000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: +-%*25lli: +0b1000000000000000000000000000000000000000000000000000000000000000:0:26: + %25lli: +9223372036897200049:1:21:9223372036854775807: + %*25lli: +9223372036897200049:0:21: + %25lli: +0X80000000028757b1:1:20:9223372036854775807: +@@ -1520,7 +1020,3 @@ + %*25lli: +0x80000000028757B1:0:20: + %25lli: +01000000000000241653661:1:25:9223372036854775807: + %*25lli: +01000000000000241653661:0:25: +-%25lli: +0B1000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: +-%*25lli: +0B1000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25lli: +0b1000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: +-%*25lli: +0b1000000000000000000000000000000000000010100001110101011110110001:0:26: +diff --git a/stdio-common/tst-scanf-format-short-i.input b/stdio-common/tst-scanf-format-short-i.input +index 5beae7bbb4ef0197..620a4c75b32d1919 100644 +--- a/stdio-common/tst-scanf-format-short-i.input ++++ b/stdio-common/tst-scanf-format-short-i.input +@@ -8,10 +8,6 @@ + %*hi:-0x807B:0:7: + %hi:-0100173:1:8:32645: + %*hi:-0100173:0:8: +-%hi:-0B1000000001111011:1:19:32645: +-%*hi:-0B1000000001111011:0:19: +-%hi:-0b1000000001111011:1:19:32645: +-%*hi:-0b1000000001111011:0:19: + %hi:-32769:1:6:32767: + %*hi:-32769:0:6: + %hi:-0X8001:1:7:32767: +@@ -20,10 +16,6 @@ + %*hi:-0x8001:0:7: + %hi:-0100001:1:8:32767: + %*hi:-0100001:0:8: +-%hi:-0B1000000000000001:1:19:32767: +-%*hi:-0B1000000000000001:0:19: +-%hi:-0b1000000000000001:1:19:32767: +-%*hi:-0b1000000000000001:0:19: + %hi:-32768:1:6:-32768: + %*hi:-32768:0:6: + %hi:-0X8000:1:7:-32768: +@@ -32,10 +24,6 @@ + %*hi:-0x8000:0:7: + %hi:-0100000:1:8:-32768: + %*hi:-0100000:0:8: +-%hi:-0B1000000000000000:1:19:-32768: +-%*hi:-0B1000000000000000:0:19: +-%hi:-0b1000000000000000:1:19:-32768: +-%*hi:-0b1000000000000000:0:19: + %hi:-123:1:4:-123: + %*hi:-123:0:4: + %hi:-0X7b:1:5:-123: +@@ -44,10 +32,6 @@ + %*hi:-0x7B:0:5: + %hi:-0173:1:5:-123: + %*hi:-0173:0:5: +-%hi:-0B1111011:1:10:-123: +-%*hi:-0B1111011:0:10: +-%hi:-0b1111011:1:10:-123: +-%*hi:-0b1111011:0:10: + %hi:-1:1:2:-1: + %*hi:-1:0:2: + %hi:-0X1:1:4:-1: +@@ -56,10 +40,6 @@ + %*hi:-0x1:0:4: + %hi:-01:1:3:-1: + %*hi:-01:0:3: +-%hi:-0B1:1:4:-1: +-%*hi:-0B1:0:4: +-%hi:-0b1:1:4:-1: +-%*hi:-0b1:0:4: + %hi:-0:1:2:0: + %*hi:-0:0:2: + %hi:-0X0:1:4:0: +@@ -68,10 +48,6 @@ + %*hi:-0x0:0:4: + %hi:-00:1:3:0: + %*hi:-00:0:3: +-%hi:-0B0:1:4:0: +-%*hi:-0B0:0:4: +-%hi:-0b0:1:4:0: +-%*hi:-0b0:0:4: + %hi:0:1:1:0: + %*hi:0:0:1: + %hi:0X0:1:3:0: +@@ -80,10 +56,6 @@ + %*hi:0x0:0:3: + %hi:00:1:2:0: + %*hi:00:0:2: +-%hi:0B0:1:3:0: +-%*hi:0B0:0:3: +-%hi:0b0:1:3:0: +-%*hi:0b0:0:3: + %hi:1:1:1:1: + %*hi:1:0:1: + %hi:0X1:1:3:1: +@@ -92,10 +64,6 @@ + %*hi:0x1:0:3: + %hi:01:1:2:1: + %*hi:01:0:2: +-%hi:0B1:1:3:1: +-%*hi:0B1:0:3: +-%hi:0b1:1:3:1: +-%*hi:0b1:0:3: + %hi:42:1:2:42: + %*hi:42:0:2: + %hi:0X2a:1:4:42: +@@ -104,10 +72,6 @@ + %*hi:0x2A:0:4: + %hi:052:1:3:42: + %*hi:052:0:3: +-%hi:0B101010:1:8:42: +-%*hi:0B101010:0:8: +-%hi:0b101010:1:8:42: +-%*hi:0b101010:0:8: + %hi:32767:1:5:32767: + %*hi:32767:0:5: + %hi:0X7fff:1:6:32767: +@@ -116,10 +80,6 @@ + %*hi:0x7FFF:0:6: + %hi:077777:1:6:32767: + %*hi:077777:0:6: +-%hi:0B111111111111111:1:17:32767: +-%*hi:0B111111111111111:0:17: +-%hi:0b111111111111111:1:17:32767: +-%*hi:0b111111111111111:0:17: + %hi:32768:1:5:-32768: + %*hi:32768:0:5: + %hi:0X8000:1:6:-32768: +@@ -128,10 +88,6 @@ + %*hi:0x8000:0:6: + %hi:0100000:1:7:-32768: + %*hi:0100000:0:7: +-%hi:0B1000000000000000:1:18:-32768: +-%*hi:0B1000000000000000:0:18: +-%hi:0b1000000000000000:1:18:-32768: +-%*hi:0b1000000000000000:0:18: + %hi:32809:1:5:-32727: + %*hi:32809:0:5: + %hi:0X8029:1:6:-32727: +@@ -140,10 +96,6 @@ + %*hi:0x8029:0:6: + %hi:0100051:1:7:-32727: + %*hi:0100051:0:7: +-%hi:0B1000000000101001:1:18:-32727: +-%*hi:0B1000000000101001:0:18: +-%hi:0b1000000000101001:1:18:-32727: +-%*hi:0b1000000000101001:0:18: + %hi:+0:1:2:0: + %*hi:+0:0:2: + %hi:+0X0:1:4:0: +@@ -152,10 +104,6 @@ + %*hi:+0x0:0:4: + %hi:+00:1:3:0: + %*hi:+00:0:3: +-%hi:+0B0:1:4:0: +-%*hi:+0B0:0:4: +-%hi:+0b0:1:4:0: +-%*hi:+0b0:0:4: + %hi:+1:1:2:1: + %*hi:+1:0:2: + %hi:+0X1:1:4:1: +@@ -164,10 +112,6 @@ + %*hi:+0x1:0:4: + %hi:+01:1:3:1: + %*hi:+01:0:3: +-%hi:+0B1:1:4:1: +-%*hi:+0B1:0:4: +-%hi:+0b1:1:4:1: +-%*hi:+0b1:0:4: + %hi:+42:1:3:42: + %*hi:+42:0:3: + %hi:+0X2a:1:5:42: +@@ -176,10 +120,6 @@ + %*hi:+0x2A:0:5: + %hi:+052:1:4:42: + %*hi:+052:0:4: +-%hi:+0B101010:1:9:42: +-%*hi:+0B101010:0:9: +-%hi:+0b101010:1:9:42: +-%*hi:+0b101010:0:9: + %hi:+32767:1:6:32767: + %*hi:+32767:0:6: + %hi:+0X7fff:1:7:32767: +@@ -188,10 +128,6 @@ + %*hi:+0x7FFF:0:7: + %hi:+077777:1:7:32767: + %*hi:+077777:0:7: +-%hi:+0B111111111111111:1:18:32767: +-%*hi:+0B111111111111111:0:18: +-%hi:+0b111111111111111:1:18:32767: +-%*hi:+0b111111111111111:0:18: + %hi:+32768:1:6:-32768: + %*hi:+32768:0:6: + %hi:+0X8000:1:7:-32768: +@@ -200,10 +136,6 @@ + %*hi:+0x8000:0:7: + %hi:+0100000:1:8:-32768: + %*hi:+0100000:0:8: +-%hi:+0B1000000000000000:1:19:-32768: +-%*hi:+0B1000000000000000:0:19: +-%hi:+0b1000000000000000:1:19:-32768: +-%*hi:+0b1000000000000000:0:19: + %hi:+32809:1:6:-32727: + %*hi:+32809:0:6: + %hi:+0X8029:1:7:-32727: +@@ -212,10 +144,6 @@ + %*hi:+0x8029:0:7: + %hi:+0100051:1:8:-32727: + %*hi:+0100051:0:8: +-%hi:+0B1000000000101001:1:19:-32727: +-%*hi:+0B1000000000101001:0:19: +-%hi:+0b1000000000101001:1:19:-32727: +-%*hi:+0b1000000000101001:0:19: + %1hi::0:-1: + %*1hi::0:-1: + %1hi:-32891:0:-1: +@@ -226,10 +154,6 @@ + %*1hi:-0x807B:0:-1: + %1hi:-0100173:0:-1: + %*1hi:-0100173:0:-1: +-%1hi:-0B1000000001111011:0:-1: +-%*1hi:-0B1000000001111011:0:-1: +-%1hi:-0b1000000001111011:0:-1: +-%*1hi:-0b1000000001111011:0:-1: + %1hi:-32769:0:-1: + %*1hi:-32769:0:-1: + %1hi:-0X8001:0:-1: +@@ -238,10 +162,6 @@ + %*1hi:-0x8001:0:-1: + %1hi:-0100001:0:-1: + %*1hi:-0100001:0:-1: +-%1hi:-0B1000000000000001:0:-1: +-%*1hi:-0B1000000000000001:0:-1: +-%1hi:-0b1000000000000001:0:-1: +-%*1hi:-0b1000000000000001:0:-1: + %1hi:-32768:0:-1: + %*1hi:-32768:0:-1: + %1hi:-0X8000:0:-1: +@@ -250,10 +170,6 @@ + %*1hi:-0x8000:0:-1: + %1hi:-0100000:0:-1: + %*1hi:-0100000:0:-1: +-%1hi:-0B1000000000000000:0:-1: +-%*1hi:-0B1000000000000000:0:-1: +-%1hi:-0b1000000000000000:0:-1: +-%*1hi:-0b1000000000000000:0:-1: + %1hi:-123:0:-1: + %*1hi:-123:0:-1: + %1hi:-0X7b:0:-1: +@@ -262,10 +178,6 @@ + %*1hi:-0x7B:0:-1: + %1hi:-0173:0:-1: + %*1hi:-0173:0:-1: +-%1hi:-0B1111011:0:-1: +-%*1hi:-0B1111011:0:-1: +-%1hi:-0b1111011:0:-1: +-%*1hi:-0b1111011:0:-1: + %1hi:-1:0:-1: + %*1hi:-1:0:-1: + %1hi:-0X1:0:-1: +@@ -274,10 +186,6 @@ + %*1hi:-0x1:0:-1: + %1hi:-01:0:-1: + %*1hi:-01:0:-1: +-%1hi:-0B1:0:-1: +-%*1hi:-0B1:0:-1: +-%1hi:-0b1:0:-1: +-%*1hi:-0b1:0:-1: + %1hi:-0:0:-1: + %*1hi:-0:0:-1: + %1hi:-0X0:0:-1: +@@ -286,10 +194,6 @@ + %*1hi:-0x0:0:-1: + %1hi:-00:0:-1: + %*1hi:-00:0:-1: +-%1hi:-0B0:0:-1: +-%*1hi:-0B0:0:-1: +-%1hi:-0b0:0:-1: +-%*1hi:-0b0:0:-1: + %1hi:0:1:1:0: + %*1hi:0:0:1: + %1hi:0X0:1:1:0: +@@ -298,10 +202,6 @@ + %*1hi:0x0:0:1: + %1hi:00:1:1:0: + %*1hi:00:0:1: +-%1hi:0B0:1:1:0: +-%*1hi:0B0:0:1: +-%1hi:0b0:1:1:0: +-%*1hi:0b0:0:1: + %1hi:1:1:1:1: + %*1hi:1:0:1: + %1hi:0X1:1:1:0: +@@ -310,10 +210,6 @@ + %*1hi:0x1:0:1: + %1hi:01:1:1:0: + %*1hi:01:0:1: +-%1hi:0B1:1:1:0: +-%*1hi:0B1:0:1: +-%1hi:0b1:1:1:0: +-%*1hi:0b1:0:1: + %1hi:42:1:1:4: + %*1hi:42:0:1: + %1hi:0X2a:1:1:0: +@@ -322,10 +218,6 @@ + %*1hi:0x2A:0:1: + %1hi:052:1:1:0: + %*1hi:052:0:1: +-%1hi:0B101010:1:1:0: +-%*1hi:0B101010:0:1: +-%1hi:0b101010:1:1:0: +-%*1hi:0b101010:0:1: + %1hi:32767:1:1:3: + %*1hi:32767:0:1: + %1hi:0X7fff:1:1:0: +@@ -334,10 +226,6 @@ + %*1hi:0x7FFF:0:1: + %1hi:077777:1:1:0: + %*1hi:077777:0:1: +-%1hi:0B111111111111111:1:1:0: +-%*1hi:0B111111111111111:0:1: +-%1hi:0b111111111111111:1:1:0: +-%*1hi:0b111111111111111:0:1: + %1hi:32768:1:1:3: + %*1hi:32768:0:1: + %1hi:0X8000:1:1:0: +@@ -346,10 +234,6 @@ + %*1hi:0x8000:0:1: + %1hi:0100000:1:1:0: + %*1hi:0100000:0:1: +-%1hi:0B1000000000000000:1:1:0: +-%*1hi:0B1000000000000000:0:1: +-%1hi:0b1000000000000000:1:1:0: +-%*1hi:0b1000000000000000:0:1: + %1hi:32809:1:1:3: + %*1hi:32809:0:1: + %1hi:0X8029:1:1:0: +@@ -358,10 +242,6 @@ + %*1hi:0x8029:0:1: + %1hi:0100051:1:1:0: + %*1hi:0100051:0:1: +-%1hi:0B1000000000101001:1:1:0: +-%*1hi:0B1000000000101001:0:1: +-%1hi:0b1000000000101001:1:1:0: +-%*1hi:0b1000000000101001:0:1: + %1hi:+0:0:-1: + %*1hi:+0:0:-1: + %1hi:+0X0:0:-1: +@@ -370,10 +250,6 @@ + %*1hi:+0x0:0:-1: + %1hi:+00:0:-1: + %*1hi:+00:0:-1: +-%1hi:+0B0:0:-1: +-%*1hi:+0B0:0:-1: +-%1hi:+0b0:0:-1: +-%*1hi:+0b0:0:-1: + %1hi:+1:0:-1: + %*1hi:+1:0:-1: + %1hi:+0X1:0:-1: +@@ -382,10 +258,6 @@ + %*1hi:+0x1:0:-1: + %1hi:+01:0:-1: + %*1hi:+01:0:-1: +-%1hi:+0B1:0:-1: +-%*1hi:+0B1:0:-1: +-%1hi:+0b1:0:-1: +-%*1hi:+0b1:0:-1: + %1hi:+42:0:-1: + %*1hi:+42:0:-1: + %1hi:+0X2a:0:-1: +@@ -394,10 +266,6 @@ + %*1hi:+0x2A:0:-1: + %1hi:+052:0:-1: + %*1hi:+052:0:-1: +-%1hi:+0B101010:0:-1: +-%*1hi:+0B101010:0:-1: +-%1hi:+0b101010:0:-1: +-%*1hi:+0b101010:0:-1: + %1hi:+32767:0:-1: + %*1hi:+32767:0:-1: + %1hi:+0X7fff:0:-1: +@@ -406,10 +274,6 @@ + %*1hi:+0x7FFF:0:-1: + %1hi:+077777:0:-1: + %*1hi:+077777:0:-1: +-%1hi:+0B111111111111111:0:-1: +-%*1hi:+0B111111111111111:0:-1: +-%1hi:+0b111111111111111:0:-1: +-%*1hi:+0b111111111111111:0:-1: + %1hi:+32768:0:-1: + %*1hi:+32768:0:-1: + %1hi:+0X8000:0:-1: +@@ -418,10 +282,6 @@ + %*1hi:+0x8000:0:-1: + %1hi:+0100000:0:-1: + %*1hi:+0100000:0:-1: +-%1hi:+0B1000000000000000:0:-1: +-%*1hi:+0B1000000000000000:0:-1: +-%1hi:+0b1000000000000000:0:-1: +-%*1hi:+0b1000000000000000:0:-1: + %1hi:+32809:0:-1: + %*1hi:+32809:0:-1: + %1hi:+0X8029:0:-1: +@@ -430,10 +290,6 @@ + %*1hi:+0x8029:0:-1: + %1hi:+0100051:0:-1: + %*1hi:+0100051:0:-1: +-%1hi:+0B1000000000101001:0:-1: +-%*1hi:+0B1000000000101001:0:-1: +-%1hi:+0b1000000000101001:0:-1: +-%*1hi:+0b1000000000101001:0:-1: + %2hi::0:-1: + %*2hi::0:-1: + %2hi:-32891:1:2:-3: +@@ -444,10 +300,6 @@ + %*2hi:-0x807B:0:2: + %2hi:-0100173:1:2:0: + %*2hi:-0100173:0:2: +-%2hi:-0B1000000001111011:1:2:0: +-%*2hi:-0B1000000001111011:0:2: +-%2hi:-0b1000000001111011:1:2:0: +-%*2hi:-0b1000000001111011:0:2: + %2hi:-32769:1:2:-3: + %*2hi:-32769:0:2: + %2hi:-0X8001:1:2:0: +@@ -456,10 +308,6 @@ + %*2hi:-0x8001:0:2: + %2hi:-0100001:1:2:0: + %*2hi:-0100001:0:2: +-%2hi:-0B1000000000000001:1:2:0: +-%*2hi:-0B1000000000000001:0:2: +-%2hi:-0b1000000000000001:1:2:0: +-%*2hi:-0b1000000000000001:0:2: + %2hi:-32768:1:2:-3: + %*2hi:-32768:0:2: + %2hi:-0X8000:1:2:0: +@@ -468,10 +316,6 @@ + %*2hi:-0x8000:0:2: + %2hi:-0100000:1:2:0: + %*2hi:-0100000:0:2: +-%2hi:-0B1000000000000000:1:2:0: +-%*2hi:-0B1000000000000000:0:2: +-%2hi:-0b1000000000000000:1:2:0: +-%*2hi:-0b1000000000000000:0:2: + %2hi:-123:1:2:-1: + %*2hi:-123:0:2: + %2hi:-0X7b:1:2:0: +@@ -480,10 +324,6 @@ + %*2hi:-0x7B:0:2: + %2hi:-0173:1:2:0: + %*2hi:-0173:0:2: +-%2hi:-0B1111011:1:2:0: +-%*2hi:-0B1111011:0:2: +-%2hi:-0b1111011:1:2:0: +-%*2hi:-0b1111011:0:2: + %2hi:-1:1:2:-1: + %*2hi:-1:0:2: + %2hi:-0X1:1:2:0: +@@ -492,10 +332,6 @@ + %*2hi:-0x1:0:2: + %2hi:-01:1:2:0: + %*2hi:-01:0:2: +-%2hi:-0B1:1:2:0: +-%*2hi:-0B1:0:2: +-%2hi:-0b1:1:2:0: +-%*2hi:-0b1:0:2: + %2hi:-0:1:2:0: + %*2hi:-0:0:2: + %2hi:-0X0:1:2:0: +@@ -504,10 +340,6 @@ + %*2hi:-0x0:0:2: + %2hi:-00:1:2:0: + %*2hi:-00:0:2: +-%2hi:-0B0:1:2:0: +-%*2hi:-0B0:0:2: +-%2hi:-0b0:1:2:0: +-%*2hi:-0b0:0:2: + %2hi:0:1:1:0: + %*2hi:0:0:1: + # BZ12701 %2hi:0X0:0:-1: +@@ -516,10 +348,6 @@ + # BZ12701 %*2hi:0x0:0:-1: + %2hi:00:1:2:0: + %*2hi:00:0:2: +-# BZ12701 %2hi:0B0:0:-1: +-# BZ12701 %*2hi:0B0:0:-1: +-# BZ12701 %2hi:0b0:0:-1: +-# BZ12701 %*2hi:0b0:0:-1: + %2hi:1:1:1:1: + %*2hi:1:0:1: + # BZ12701 %2hi:0X1:0:-1: +@@ -528,10 +356,6 @@ + # BZ12701 %*2hi:0x1:0:-1: + %2hi:01:1:2:1: + %*2hi:01:0:2: +-# BZ12701 %2hi:0B1:0:-1: +-# BZ12701 %*2hi:0B1:0:-1: +-# BZ12701 %2hi:0b1:0:-1: +-# BZ12701 %*2hi:0b1:0:-1: + %2hi:42:1:2:42: + %*2hi:42:0:2: + # BZ12701 %2hi:0X2a:0:-1: +@@ -540,10 +364,6 @@ + # BZ12701 %*2hi:0x2A:0:-1: + %2hi:052:1:2:5: + %*2hi:052:0:2: +-# BZ12701 %2hi:0B101010:0:-1: +-# BZ12701 %*2hi:0B101010:0:-1: +-# BZ12701 %2hi:0b101010:0:-1: +-# BZ12701 %*2hi:0b101010:0:-1: + %2hi:32767:1:2:32: + %*2hi:32767:0:2: + # BZ12701 %2hi:0X7fff:0:-1: +@@ -552,10 +372,6 @@ + # BZ12701 %*2hi:0x7FFF:0:-1: + %2hi:077777:1:2:7: + %*2hi:077777:0:2: +-# BZ12701 %2hi:0B111111111111111:0:-1: +-# BZ12701 %*2hi:0B111111111111111:0:-1: +-# BZ12701 %2hi:0b111111111111111:0:-1: +-# BZ12701 %*2hi:0b111111111111111:0:-1: + %2hi:32768:1:2:32: + %*2hi:32768:0:2: + # BZ12701 %2hi:0X8000:0:-1: +@@ -564,10 +380,6 @@ + # BZ12701 %*2hi:0x8000:0:-1: + %2hi:0100000:1:2:1: + %*2hi:0100000:0:2: +-# BZ12701 %2hi:0B1000000000000000:0:-1: +-# BZ12701 %*2hi:0B1000000000000000:0:-1: +-# BZ12701 %2hi:0b1000000000000000:0:-1: +-# BZ12701 %*2hi:0b1000000000000000:0:-1: + %2hi:32809:1:2:32: + %*2hi:32809:0:2: + # BZ12701 %2hi:0X8029:0:-1: +@@ -576,10 +388,6 @@ + # BZ12701 %*2hi:0x8029:0:-1: + %2hi:0100051:1:2:1: + %*2hi:0100051:0:2: +-# BZ12701 %2hi:0B1000000000101001:0:-1: +-# BZ12701 %*2hi:0B1000000000101001:0:-1: +-# BZ12701 %2hi:0b1000000000101001:0:-1: +-# BZ12701 %*2hi:0b1000000000101001:0:-1: + %2hi:+0:1:2:0: + %*2hi:+0:0:2: + %2hi:+0X0:1:2:0: +@@ -588,10 +396,6 @@ + %*2hi:+0x0:0:2: + %2hi:+00:1:2:0: + %*2hi:+00:0:2: +-%2hi:+0B0:1:2:0: +-%*2hi:+0B0:0:2: +-%2hi:+0b0:1:2:0: +-%*2hi:+0b0:0:2: + %2hi:+1:1:2:1: + %*2hi:+1:0:2: + %2hi:+0X1:1:2:0: +@@ -600,10 +404,6 @@ + %*2hi:+0x1:0:2: + %2hi:+01:1:2:0: + %*2hi:+01:0:2: +-%2hi:+0B1:1:2:0: +-%*2hi:+0B1:0:2: +-%2hi:+0b1:1:2:0: +-%*2hi:+0b1:0:2: + %2hi:+42:1:2:4: + %*2hi:+42:0:2: + %2hi:+0X2a:1:2:0: +@@ -612,10 +412,6 @@ + %*2hi:+0x2A:0:2: + %2hi:+052:1:2:0: + %*2hi:+052:0:2: +-%2hi:+0B101010:1:2:0: +-%*2hi:+0B101010:0:2: +-%2hi:+0b101010:1:2:0: +-%*2hi:+0b101010:0:2: + %2hi:+32767:1:2:3: + %*2hi:+32767:0:2: + %2hi:+0X7fff:1:2:0: +@@ -624,10 +420,6 @@ + %*2hi:+0x7FFF:0:2: + %2hi:+077777:1:2:0: + %*2hi:+077777:0:2: +-%2hi:+0B111111111111111:1:2:0: +-%*2hi:+0B111111111111111:0:2: +-%2hi:+0b111111111111111:1:2:0: +-%*2hi:+0b111111111111111:0:2: + %2hi:+32768:1:2:3: + %*2hi:+32768:0:2: + %2hi:+0X8000:1:2:0: +@@ -636,10 +428,6 @@ + %*2hi:+0x8000:0:2: + %2hi:+0100000:1:2:0: + %*2hi:+0100000:0:2: +-%2hi:+0B1000000000000000:1:2:0: +-%*2hi:+0B1000000000000000:0:2: +-%2hi:+0b1000000000000000:1:2:0: +-%*2hi:+0b1000000000000000:0:2: + %2hi:+32809:1:2:3: + %*2hi:+32809:0:2: + %2hi:+0X8029:1:2:0: +@@ -648,10 +436,6 @@ + %*2hi:+0x8029:0:2: + %2hi:+0100051:1:2:0: + %*2hi:+0100051:0:2: +-%2hi:+0B1000000000101001:1:2:0: +-%*2hi:+0B1000000000101001:0:2: +-%2hi:+0b1000000000101001:1:2:0: +-%*2hi:+0b1000000000101001:0:2: + %4hi::0:-1: + %*4hi::0:-1: + %4hi:-32891:1:4:-328: +@@ -662,10 +446,6 @@ + %*4hi:-0x807B:0:4: + %4hi:-0100173:1:4:-8: + %*4hi:-0100173:0:4: +-%4hi:-0B1000000001111011:1:4:-1: +-%*4hi:-0B1000000001111011:0:4: +-%4hi:-0b1000000001111011:1:4:-1: +-%*4hi:-0b1000000001111011:0:4: + %4hi:-32769:1:4:-327: + %*4hi:-32769:0:4: + %4hi:-0X8001:1:4:-8: +@@ -674,10 +454,6 @@ + %*4hi:-0x8001:0:4: + %4hi:-0100001:1:4:-8: + %*4hi:-0100001:0:4: +-%4hi:-0B1000000000000001:1:4:-1: +-%*4hi:-0B1000000000000001:0:4: +-%4hi:-0b1000000000000001:1:4:-1: +-%*4hi:-0b1000000000000001:0:4: + %4hi:-32768:1:4:-327: + %*4hi:-32768:0:4: + %4hi:-0X8000:1:4:-8: +@@ -686,10 +462,6 @@ + %*4hi:-0x8000:0:4: + %4hi:-0100000:1:4:-8: + %*4hi:-0100000:0:4: +-%4hi:-0B1000000000000000:1:4:-1: +-%*4hi:-0B1000000000000000:0:4: +-%4hi:-0b1000000000000000:1:4:-1: +-%*4hi:-0b1000000000000000:0:4: + %4hi:-123:1:4:-123: + %*4hi:-123:0:4: + %4hi:-0X7b:1:4:-7: +@@ -698,10 +470,6 @@ + %*4hi:-0x7B:0:4: + %4hi:-0173:1:4:-15: + %*4hi:-0173:0:4: +-%4hi:-0B1111011:1:4:-1: +-%*4hi:-0B1111011:0:4: +-%4hi:-0b1111011:1:4:-1: +-%*4hi:-0b1111011:0:4: + %4hi:-1:1:2:-1: + %*4hi:-1:0:2: + %4hi:-0X1:1:4:-1: +@@ -710,10 +478,6 @@ + %*4hi:-0x1:0:4: + %4hi:-01:1:3:-1: + %*4hi:-01:0:3: +-%4hi:-0B1:1:4:-1: +-%*4hi:-0B1:0:4: +-%4hi:-0b1:1:4:-1: +-%*4hi:-0b1:0:4: + %4hi:-0:1:2:0: + %*4hi:-0:0:2: + %4hi:-0X0:1:4:0: +@@ -722,10 +486,6 @@ + %*4hi:-0x0:0:4: + %4hi:-00:1:3:0: + %*4hi:-00:0:3: +-%4hi:-0B0:1:4:0: +-%*4hi:-0B0:0:4: +-%4hi:-0b0:1:4:0: +-%*4hi:-0b0:0:4: + %4hi:0:1:1:0: + %*4hi:0:0:1: + %4hi:0X0:1:3:0: +@@ -734,10 +494,6 @@ + %*4hi:0x0:0:3: + %4hi:00:1:2:0: + %*4hi:00:0:2: +-%4hi:0B0:1:3:0: +-%*4hi:0B0:0:3: +-%4hi:0b0:1:3:0: +-%*4hi:0b0:0:3: + %4hi:1:1:1:1: + %*4hi:1:0:1: + %4hi:0X1:1:3:1: +@@ -746,10 +502,6 @@ + %*4hi:0x1:0:3: + %4hi:01:1:2:1: + %*4hi:01:0:2: +-%4hi:0B1:1:3:1: +-%*4hi:0B1:0:3: +-%4hi:0b1:1:3:1: +-%*4hi:0b1:0:3: + %4hi:42:1:2:42: + %*4hi:42:0:2: + %4hi:0X2a:1:4:42: +@@ -758,10 +510,6 @@ + %*4hi:0x2A:0:4: + %4hi:052:1:3:42: + %*4hi:052:0:3: +-%4hi:0B101010:1:4:2: +-%*4hi:0B101010:0:4: +-%4hi:0b101010:1:4:2: +-%*4hi:0b101010:0:4: + %4hi:32767:1:4:3276: + %*4hi:32767:0:4: + %4hi:0X7fff:1:4:127: +@@ -770,10 +518,6 @@ + %*4hi:0x7FFF:0:4: + %4hi:077777:1:4:511: + %*4hi:077777:0:4: +-%4hi:0B111111111111111:1:4:3: +-%*4hi:0B111111111111111:0:4: +-%4hi:0b111111111111111:1:4:3: +-%*4hi:0b111111111111111:0:4: + %4hi:32768:1:4:3276: + %*4hi:32768:0:4: + %4hi:0X8000:1:4:128: +@@ -782,10 +526,6 @@ + %*4hi:0x8000:0:4: + %4hi:0100000:1:4:64: + %*4hi:0100000:0:4: +-%4hi:0B1000000000000000:1:4:2: +-%*4hi:0B1000000000000000:0:4: +-%4hi:0b1000000000000000:1:4:2: +-%*4hi:0b1000000000000000:0:4: + %4hi:32809:1:4:3280: + %*4hi:32809:0:4: + %4hi:0X8029:1:4:128: +@@ -794,10 +534,6 @@ + %*4hi:0x8029:0:4: + %4hi:0100051:1:4:64: + %*4hi:0100051:0:4: +-%4hi:0B1000000000101001:1:4:2: +-%*4hi:0B1000000000101001:0:4: +-%4hi:0b1000000000101001:1:4:2: +-%*4hi:0b1000000000101001:0:4: + %4hi:+0:1:2:0: + %*4hi:+0:0:2: + %4hi:+0X0:1:4:0: +@@ -806,10 +542,6 @@ + %*4hi:+0x0:0:4: + %4hi:+00:1:3:0: + %*4hi:+00:0:3: +-%4hi:+0B0:1:4:0: +-%*4hi:+0B0:0:4: +-%4hi:+0b0:1:4:0: +-%*4hi:+0b0:0:4: + %4hi:+1:1:2:1: + %*4hi:+1:0:2: + %4hi:+0X1:1:4:1: +@@ -818,10 +550,6 @@ + %*4hi:+0x1:0:4: + %4hi:+01:1:3:1: + %*4hi:+01:0:3: +-%4hi:+0B1:1:4:1: +-%*4hi:+0B1:0:4: +-%4hi:+0b1:1:4:1: +-%*4hi:+0b1:0:4: + %4hi:+42:1:3:42: + %*4hi:+42:0:3: + %4hi:+0X2a:1:4:2: +@@ -830,10 +558,6 @@ + %*4hi:+0x2A:0:4: + %4hi:+052:1:4:42: + %*4hi:+052:0:4: +-%4hi:+0B101010:1:4:1: +-%*4hi:+0B101010:0:4: +-%4hi:+0b101010:1:4:1: +-%*4hi:+0b101010:0:4: + %4hi:+32767:1:4:327: + %*4hi:+32767:0:4: + %4hi:+0X7fff:1:4:7: +@@ -842,10 +566,6 @@ + %*4hi:+0x7FFF:0:4: + %4hi:+077777:1:4:63: + %*4hi:+077777:0:4: +-%4hi:+0B111111111111111:1:4:1: +-%*4hi:+0B111111111111111:0:4: +-%4hi:+0b111111111111111:1:4:1: +-%*4hi:+0b111111111111111:0:4: + %4hi:+32768:1:4:327: + %*4hi:+32768:0:4: + %4hi:+0X8000:1:4:8: +@@ -854,10 +574,6 @@ + %*4hi:+0x8000:0:4: + %4hi:+0100000:1:4:8: + %*4hi:+0100000:0:4: +-%4hi:+0B1000000000000000:1:4:1: +-%*4hi:+0B1000000000000000:0:4: +-%4hi:+0b1000000000000000:1:4:1: +-%*4hi:+0b1000000000000000:0:4: + %4hi:+32809:1:4:328: + %*4hi:+32809:0:4: + %4hi:+0X8029:1:4:8: +@@ -866,10 +582,6 @@ + %*4hi:+0x8029:0:4: + %4hi:+0100051:1:4:8: + %*4hi:+0100051:0:4: +-%4hi:+0B1000000000101001:1:4:1: +-%*4hi:+0B1000000000101001:0:4: +-%4hi:+0b1000000000101001:1:4:1: +-%*4hi:+0b1000000000101001:0:4: + %7hi::0:-1: + %*7hi::0:-1: + %7hi:-32891:1:6:32645: +@@ -880,10 +592,6 @@ + %*7hi:-0x807B:0:7: + %7hi:-0100173:1:7:-4111: + %*7hi:-0100173:0:7: +-%7hi:-0B1000000001111011:1:7:-8: +-%*7hi:-0B1000000001111011:0:7: +-%7hi:-0b1000000001111011:1:7:-8: +-%*7hi:-0b1000000001111011:0:7: + %7hi:-32769:1:6:32767: + %*7hi:-32769:0:6: + %7hi:-0X8001:1:7:32767: +@@ -892,10 +600,6 @@ + %*7hi:-0x8001:0:7: + %7hi:-0100001:1:7:-4096: + %*7hi:-0100001:0:7: +-%7hi:-0B1000000000000001:1:7:-8: +-%*7hi:-0B1000000000000001:0:7: +-%7hi:-0b1000000000000001:1:7:-8: +-%*7hi:-0b1000000000000001:0:7: + %7hi:-32768:1:6:-32768: + %*7hi:-32768:0:6: + %7hi:-0X8000:1:7:-32768: +@@ -904,10 +608,6 @@ + %*7hi:-0x8000:0:7: + %7hi:-0100000:1:7:-4096: + %*7hi:-0100000:0:7: +-%7hi:-0B1000000000000000:1:7:-8: +-%*7hi:-0B1000000000000000:0:7: +-%7hi:-0b1000000000000000:1:7:-8: +-%*7hi:-0b1000000000000000:0:7: + %7hi:-123:1:4:-123: + %*7hi:-123:0:4: + %7hi:-0X7b:1:5:-123: +@@ -916,10 +616,6 @@ + %*7hi:-0x7B:0:5: + %7hi:-0173:1:5:-123: + %*7hi:-0173:0:5: +-%7hi:-0B1111011:1:7:-15: +-%*7hi:-0B1111011:0:7: +-%7hi:-0b1111011:1:7:-15: +-%*7hi:-0b1111011:0:7: + %7hi:-1:1:2:-1: + %*7hi:-1:0:2: + %7hi:-0X1:1:4:-1: +@@ -928,10 +624,6 @@ + %*7hi:-0x1:0:4: + %7hi:-01:1:3:-1: + %*7hi:-01:0:3: +-%7hi:-0B1:1:4:-1: +-%*7hi:-0B1:0:4: +-%7hi:-0b1:1:4:-1: +-%*7hi:-0b1:0:4: + %7hi:-0:1:2:0: + %*7hi:-0:0:2: + %7hi:-0X0:1:4:0: +@@ -940,10 +632,6 @@ + %*7hi:-0x0:0:4: + %7hi:-00:1:3:0: + %*7hi:-00:0:3: +-%7hi:-0B0:1:4:0: +-%*7hi:-0B0:0:4: +-%7hi:-0b0:1:4:0: +-%*7hi:-0b0:0:4: + %7hi:0:1:1:0: + %*7hi:0:0:1: + %7hi:0X0:1:3:0: +@@ -952,10 +640,6 @@ + %*7hi:0x0:0:3: + %7hi:00:1:2:0: + %*7hi:00:0:2: +-%7hi:0B0:1:3:0: +-%*7hi:0B0:0:3: +-%7hi:0b0:1:3:0: +-%*7hi:0b0:0:3: + %7hi:1:1:1:1: + %*7hi:1:0:1: + %7hi:0X1:1:3:1: +@@ -964,10 +648,6 @@ + %*7hi:0x1:0:3: + %7hi:01:1:2:1: + %*7hi:01:0:2: +-%7hi:0B1:1:3:1: +-%*7hi:0B1:0:3: +-%7hi:0b1:1:3:1: +-%*7hi:0b1:0:3: + %7hi:42:1:2:42: + %*7hi:42:0:2: + %7hi:0X2a:1:4:42: +@@ -976,10 +656,6 @@ + %*7hi:0x2A:0:4: + %7hi:052:1:3:42: + %*7hi:052:0:3: +-%7hi:0B101010:1:7:21: +-%*7hi:0B101010:0:7: +-%7hi:0b101010:1:7:21: +-%*7hi:0b101010:0:7: + %7hi:32767:1:5:32767: + %*7hi:32767:0:5: + %7hi:0X7fff:1:6:32767: +@@ -988,10 +664,6 @@ + %*7hi:0x7FFF:0:6: + %7hi:077777:1:6:32767: + %*7hi:077777:0:6: +-%7hi:0B111111111111111:1:7:31: +-%*7hi:0B111111111111111:0:7: +-%7hi:0b111111111111111:1:7:31: +-%*7hi:0b111111111111111:0:7: + %7hi:32768:1:5:-32768: + %*7hi:32768:0:5: + %7hi:0X8000:1:6:-32768: +@@ -1000,10 +672,6 @@ + %*7hi:0x8000:0:6: + %7hi:0100000:1:7:-32768: + %*7hi:0100000:0:7: +-%7hi:0B1000000000000000:1:7:16: +-%*7hi:0B1000000000000000:0:7: +-%7hi:0b1000000000000000:1:7:16: +-%*7hi:0b1000000000000000:0:7: + %7hi:32809:1:5:-32727: + %*7hi:32809:0:5: + %7hi:0X8029:1:6:-32727: +@@ -1012,10 +680,6 @@ + %*7hi:0x8029:0:6: + %7hi:0100051:1:7:-32727: + %*7hi:0100051:0:7: +-%7hi:0B1000000000101001:1:7:16: +-%*7hi:0B1000000000101001:0:7: +-%7hi:0b1000000000101001:1:7:16: +-%*7hi:0b1000000000101001:0:7: + %7hi:+0:1:2:0: + %*7hi:+0:0:2: + %7hi:+0X0:1:4:0: +@@ -1024,10 +688,6 @@ + %*7hi:+0x0:0:4: + %7hi:+00:1:3:0: + %*7hi:+00:0:3: +-%7hi:+0B0:1:4:0: +-%*7hi:+0B0:0:4: +-%7hi:+0b0:1:4:0: +-%*7hi:+0b0:0:4: + %7hi:+1:1:2:1: + %*7hi:+1:0:2: + %7hi:+0X1:1:4:1: +@@ -1036,10 +696,6 @@ + %*7hi:+0x1:0:4: + %7hi:+01:1:3:1: + %*7hi:+01:0:3: +-%7hi:+0B1:1:4:1: +-%*7hi:+0B1:0:4: +-%7hi:+0b1:1:4:1: +-%*7hi:+0b1:0:4: + %7hi:+42:1:3:42: + %*7hi:+42:0:3: + %7hi:+0X2a:1:5:42: +@@ -1048,10 +704,6 @@ + %*7hi:+0x2A:0:5: + %7hi:+052:1:4:42: + %*7hi:+052:0:4: +-%7hi:+0B101010:1:7:10: +-%*7hi:+0B101010:0:7: +-%7hi:+0b101010:1:7:10: +-%*7hi:+0b101010:0:7: + %7hi:+32767:1:6:32767: + %*7hi:+32767:0:6: + %7hi:+0X7fff:1:7:32767: +@@ -1060,10 +712,6 @@ + %*7hi:+0x7FFF:0:7: + %7hi:+077777:1:7:32767: + %*7hi:+077777:0:7: +-%7hi:+0B111111111111111:1:7:15: +-%*7hi:+0B111111111111111:0:7: +-%7hi:+0b111111111111111:1:7:15: +-%*7hi:+0b111111111111111:0:7: + %7hi:+32768:1:6:-32768: + %*7hi:+32768:0:6: + %7hi:+0X8000:1:7:-32768: +@@ -1072,10 +720,6 @@ + %*7hi:+0x8000:0:7: + %7hi:+0100000:1:7:4096: + %*7hi:+0100000:0:7: +-%7hi:+0B1000000000000000:1:7:8: +-%*7hi:+0B1000000000000000:0:7: +-%7hi:+0b1000000000000000:1:7:8: +-%*7hi:+0b1000000000000000:0:7: + %7hi:+32809:1:6:-32727: + %*7hi:+32809:0:6: + %7hi:+0X8029:1:7:-32727: +@@ -1084,10 +728,6 @@ + %*7hi:+0x8029:0:7: + %7hi:+0100051:1:7:4101: + %*7hi:+0100051:0:7: +-%7hi:+0B1000000000101001:1:7:8: +-%*7hi:+0B1000000000101001:0:7: +-%7hi:+0b1000000000101001:1:7:8: +-%*7hi:+0b1000000000101001:0:7: + %2hi: :0:-1: + %*2hi: :0:-1: + %2hi: -32891:1:3:-3: +@@ -1098,10 +738,6 @@ + %*2hi: -0x807B:0:3: + %2hi: -0100173:1:3:0: + %*2hi: -0100173:0:3: +-%2hi: -0B1000000001111011:1:3:0: +-%*2hi: -0B1000000001111011:0:3: +-%2hi: -0b1000000001111011:1:3:0: +-%*2hi: -0b1000000001111011:0:3: + %2hi: -32769:1:3:-3: + %*2hi: -32769:0:3: + %2hi: -0X8001:1:3:0: +@@ -1110,10 +746,6 @@ + %*2hi: -0x8001:0:3: + %2hi: -0100001:1:3:0: + %*2hi: -0100001:0:3: +-%2hi: -0B1000000000000001:1:3:0: +-%*2hi: -0B1000000000000001:0:3: +-%2hi: -0b1000000000000001:1:3:0: +-%*2hi: -0b1000000000000001:0:3: + %2hi: -32768:1:3:-3: + %*2hi: -32768:0:3: + %2hi: -0X8000:1:3:0: +@@ -1122,10 +754,6 @@ + %*2hi: -0x8000:0:3: + %2hi: -0100000:1:3:0: + %*2hi: -0100000:0:3: +-%2hi: -0B1000000000000000:1:3:0: +-%*2hi: -0B1000000000000000:0:3: +-%2hi: -0b1000000000000000:1:3:0: +-%*2hi: -0b1000000000000000:0:3: + %2hi: -123:1:3:-1: + %*2hi: -123:0:3: + %2hi: -0X7b:1:3:0: +@@ -1134,10 +762,6 @@ + %*2hi: -0x7B:0:3: + %2hi: -0173:1:3:0: + %*2hi: -0173:0:3: +-%2hi: -0B1111011:1:3:0: +-%*2hi: -0B1111011:0:3: +-%2hi: -0b1111011:1:3:0: +-%*2hi: -0b1111011:0:3: + %2hi: -1:1:3:-1: + %*2hi: -1:0:3: + %2hi: -0X1:1:3:0: +@@ -1146,10 +770,6 @@ + %*2hi: -0x1:0:3: + %2hi: -01:1:3:0: + %*2hi: -01:0:3: +-%2hi: -0B1:1:3:0: +-%*2hi: -0B1:0:3: +-%2hi: -0b1:1:3:0: +-%*2hi: -0b1:0:3: + %2hi: -0:1:3:0: + %*2hi: -0:0:3: + %2hi: -0X0:1:3:0: +@@ -1158,10 +778,6 @@ + %*2hi: -0x0:0:3: + %2hi: -00:1:3:0: + %*2hi: -00:0:3: +-%2hi: -0B0:1:3:0: +-%*2hi: -0B0:0:3: +-%2hi: -0b0:1:3:0: +-%*2hi: -0b0:0:3: + %2hi: 0:1:2:0: + %*2hi: 0:0:2: + # BZ12701 %2hi: 0X0:0:-1: +@@ -1170,10 +786,6 @@ + # BZ12701 %*2hi: 0x0:0:-1: + %2hi: 00:1:3:0: + %*2hi: 00:0:3: +-# BZ12701 %2hi: 0B0:0:-1: +-# BZ12701 %*2hi: 0B0:0:-1: +-# BZ12701 %2hi: 0b0:0:-1: +-# BZ12701 %*2hi: 0b0:0:-1: + %2hi: 1:1:2:1: + %*2hi: 1:0:2: + # BZ12701 %2hi: 0X1:0:-1: +@@ -1182,10 +794,6 @@ + # BZ12701 %*2hi: 0x1:0:-1: + %2hi: 01:1:3:1: + %*2hi: 01:0:3: +-# BZ12701 %2hi: 0B1:0:-1: +-# BZ12701 %*2hi: 0B1:0:-1: +-# BZ12701 %2hi: 0b1:0:-1: +-# BZ12701 %*2hi: 0b1:0:-1: + %2hi: 42:1:3:42: + %*2hi: 42:0:3: + # BZ12701 %2hi: 0X2a:0:-1: +@@ -1194,10 +802,6 @@ + # BZ12701 %*2hi: 0x2A:0:-1: + %2hi: 052:1:3:5: + %*2hi: 052:0:3: +-# BZ12701 %2hi: 0B101010:0:-1: +-# BZ12701 %*2hi: 0B101010:0:-1: +-# BZ12701 %2hi: 0b101010:0:-1: +-# BZ12701 %*2hi: 0b101010:0:-1: + %2hi: 32767:1:3:32: + %*2hi: 32767:0:3: + # BZ12701 %2hi: 0X7fff:0:-1: +@@ -1206,10 +810,6 @@ + # BZ12701 %*2hi: 0x7FFF:0:-1: + %2hi: 077777:1:3:7: + %*2hi: 077777:0:3: +-# BZ12701 %2hi: 0B111111111111111:0:-1: +-# BZ12701 %*2hi: 0B111111111111111:0:-1: +-# BZ12701 %2hi: 0b111111111111111:0:-1: +-# BZ12701 %*2hi: 0b111111111111111:0:-1: + %2hi: 32768:1:3:32: + %*2hi: 32768:0:3: + # BZ12701 %2hi: 0X8000:0:-1: +@@ -1218,10 +818,6 @@ + # BZ12701 %*2hi: 0x8000:0:-1: + %2hi: 0100000:1:3:1: + %*2hi: 0100000:0:3: +-# BZ12701 %2hi: 0B1000000000000000:0:-1: +-# BZ12701 %*2hi: 0B1000000000000000:0:-1: +-# BZ12701 %2hi: 0b1000000000000000:0:-1: +-# BZ12701 %*2hi: 0b1000000000000000:0:-1: + %2hi: 32809:1:3:32: + %*2hi: 32809:0:3: + # BZ12701 %2hi: 0X8029:0:-1: +@@ -1230,10 +826,6 @@ + # BZ12701 %*2hi: 0x8029:0:-1: + %2hi: 0100051:1:3:1: + %*2hi: 0100051:0:3: +-# BZ12701 %2hi: 0B1000000000101001:0:-1: +-# BZ12701 %*2hi: 0B1000000000101001:0:-1: +-# BZ12701 %2hi: 0b1000000000101001:0:-1: +-# BZ12701 %*2hi: 0b1000000000101001:0:-1: + %2hi: +0:1:3:0: + %*2hi: +0:0:3: + %2hi: +0X0:1:3:0: +@@ -1242,10 +834,6 @@ + %*2hi: +0x0:0:3: + %2hi: +00:1:3:0: + %*2hi: +00:0:3: +-%2hi: +0B0:1:3:0: +-%*2hi: +0B0:0:3: +-%2hi: +0b0:1:3:0: +-%*2hi: +0b0:0:3: + %2hi: +1:1:3:1: + %*2hi: +1:0:3: + %2hi: +0X1:1:3:0: +@@ -1254,10 +842,6 @@ + %*2hi: +0x1:0:3: + %2hi: +01:1:3:0: + %*2hi: +01:0:3: +-%2hi: +0B1:1:3:0: +-%*2hi: +0B1:0:3: +-%2hi: +0b1:1:3:0: +-%*2hi: +0b1:0:3: + %2hi: +42:1:3:4: + %*2hi: +42:0:3: + %2hi: +0X2a:1:3:0: +@@ -1266,10 +850,6 @@ + %*2hi: +0x2A:0:3: + %2hi: +052:1:3:0: + %*2hi: +052:0:3: +-%2hi: +0B101010:1:3:0: +-%*2hi: +0B101010:0:3: +-%2hi: +0b101010:1:3:0: +-%*2hi: +0b101010:0:3: + %2hi: +32767:1:3:3: + %*2hi: +32767:0:3: + %2hi: +0X7fff:1:3:0: +@@ -1278,10 +858,6 @@ + %*2hi: +0x7FFF:0:3: + %2hi: +077777:1:3:0: + %*2hi: +077777:0:3: +-%2hi: +0B111111111111111:1:3:0: +-%*2hi: +0B111111111111111:0:3: +-%2hi: +0b111111111111111:1:3:0: +-%*2hi: +0b111111111111111:0:3: + %2hi: +32768:1:3:3: + %*2hi: +32768:0:3: + %2hi: +0X8000:1:3:0: +@@ -1290,10 +866,6 @@ + %*2hi: +0x8000:0:3: + %2hi: +0100000:1:3:0: + %*2hi: +0100000:0:3: +-%2hi: +0B1000000000000000:1:3:0: +-%*2hi: +0B1000000000000000:0:3: +-%2hi: +0b1000000000000000:1:3:0: +-%*2hi: +0b1000000000000000:0:3: + %2hi: +32809:1:3:3: + %*2hi: +32809:0:3: + %2hi: +0X8029:1:3:0: +@@ -1302,10 +874,6 @@ + %*2hi: +0x8029:0:3: + %2hi: +0100051:1:3:0: + %*2hi: +0100051:0:3: +-%2hi: +0B1000000000101001:1:3:0: +-%*2hi: +0B1000000000101001:0:3: +-%2hi: +0b1000000000101001:1:3:0: +-%*2hi: +0b1000000000101001:0:3: + %7hi: :0:-1: + %*7hi: :0:-1: + %7hi: -32891:1:7:32645: +@@ -1316,10 +884,6 @@ + %*7hi: -0x807B:0:8: + %7hi: -0100173:1:8:-4111: + %*7hi: -0100173:0:8: +-%7hi: -0B1000000001111011:1:8:-8: +-%*7hi: -0B1000000001111011:0:8: +-%7hi: -0b1000000001111011:1:8:-8: +-%*7hi: -0b1000000001111011:0:8: + %7hi: -32769:1:7:32767: + %*7hi: -32769:0:7: + %7hi: -0X8001:1:8:32767: +@@ -1328,10 +892,6 @@ + %*7hi: -0x8001:0:8: + %7hi: -0100001:1:8:-4096: + %*7hi: -0100001:0:8: +-%7hi: -0B1000000000000001:1:8:-8: +-%*7hi: -0B1000000000000001:0:8: +-%7hi: -0b1000000000000001:1:8:-8: +-%*7hi: -0b1000000000000001:0:8: + %7hi: -32768:1:7:-32768: + %*7hi: -32768:0:7: + %7hi: -0X8000:1:8:-32768: +@@ -1340,10 +900,6 @@ + %*7hi: -0x8000:0:8: + %7hi: -0100000:1:8:-4096: + %*7hi: -0100000:0:8: +-%7hi: -0B1000000000000000:1:8:-8: +-%*7hi: -0B1000000000000000:0:8: +-%7hi: -0b1000000000000000:1:8:-8: +-%*7hi: -0b1000000000000000:0:8: + %7hi: -123:1:5:-123: + %*7hi: -123:0:5: + %7hi: -0X7b:1:6:-123: +@@ -1352,10 +908,6 @@ + %*7hi: -0x7B:0:6: + %7hi: -0173:1:6:-123: + %*7hi: -0173:0:6: +-%7hi: -0B1111011:1:8:-15: +-%*7hi: -0B1111011:0:8: +-%7hi: -0b1111011:1:8:-15: +-%*7hi: -0b1111011:0:8: + %7hi: -1:1:3:-1: + %*7hi: -1:0:3: + %7hi: -0X1:1:5:-1: +@@ -1364,10 +916,6 @@ + %*7hi: -0x1:0:5: + %7hi: -01:1:4:-1: + %*7hi: -01:0:4: +-%7hi: -0B1:1:5:-1: +-%*7hi: -0B1:0:5: +-%7hi: -0b1:1:5:-1: +-%*7hi: -0b1:0:5: + %7hi: -0:1:3:0: + %*7hi: -0:0:3: + %7hi: -0X0:1:5:0: +@@ -1376,10 +924,6 @@ + %*7hi: -0x0:0:5: + %7hi: -00:1:4:0: + %*7hi: -00:0:4: +-%7hi: -0B0:1:5:0: +-%*7hi: -0B0:0:5: +-%7hi: -0b0:1:5:0: +-%*7hi: -0b0:0:5: + %7hi: 0:1:2:0: + %*7hi: 0:0:2: + %7hi: 0X0:1:4:0: +@@ -1388,10 +932,6 @@ + %*7hi: 0x0:0:4: + %7hi: 00:1:3:0: + %*7hi: 00:0:3: +-%7hi: 0B0:1:4:0: +-%*7hi: 0B0:0:4: +-%7hi: 0b0:1:4:0: +-%*7hi: 0b0:0:4: + %7hi: 1:1:2:1: + %*7hi: 1:0:2: + %7hi: 0X1:1:4:1: +@@ -1400,10 +940,6 @@ + %*7hi: 0x1:0:4: + %7hi: 01:1:3:1: + %*7hi: 01:0:3: +-%7hi: 0B1:1:4:1: +-%*7hi: 0B1:0:4: +-%7hi: 0b1:1:4:1: +-%*7hi: 0b1:0:4: + %7hi: 42:1:3:42: + %*7hi: 42:0:3: + %7hi: 0X2a:1:5:42: +@@ -1412,10 +948,6 @@ + %*7hi: 0x2A:0:5: + %7hi: 052:1:4:42: + %*7hi: 052:0:4: +-%7hi: 0B101010:1:8:21: +-%*7hi: 0B101010:0:8: +-%7hi: 0b101010:1:8:21: +-%*7hi: 0b101010:0:8: + %7hi: 32767:1:6:32767: + %*7hi: 32767:0:6: + %7hi: 0X7fff:1:7:32767: +@@ -1424,10 +956,6 @@ + %*7hi: 0x7FFF:0:7: + %7hi: 077777:1:7:32767: + %*7hi: 077777:0:7: +-%7hi: 0B111111111111111:1:8:31: +-%*7hi: 0B111111111111111:0:8: +-%7hi: 0b111111111111111:1:8:31: +-%*7hi: 0b111111111111111:0:8: + %7hi: 32768:1:6:-32768: + %*7hi: 32768:0:6: + %7hi: 0X8000:1:7:-32768: +@@ -1436,10 +964,6 @@ + %*7hi: 0x8000:0:7: + %7hi: 0100000:1:8:-32768: + %*7hi: 0100000:0:8: +-%7hi: 0B1000000000000000:1:8:16: +-%*7hi: 0B1000000000000000:0:8: +-%7hi: 0b1000000000000000:1:8:16: +-%*7hi: 0b1000000000000000:0:8: + %7hi: 32809:1:6:-32727: + %*7hi: 32809:0:6: + %7hi: 0X8029:1:7:-32727: +@@ -1448,10 +972,6 @@ + %*7hi: 0x8029:0:7: + %7hi: 0100051:1:8:-32727: + %*7hi: 0100051:0:8: +-%7hi: 0B1000000000101001:1:8:16: +-%*7hi: 0B1000000000101001:0:8: +-%7hi: 0b1000000000101001:1:8:16: +-%*7hi: 0b1000000000101001:0:8: + %7hi: +0:1:3:0: + %*7hi: +0:0:3: + %7hi: +0X0:1:5:0: +@@ -1460,10 +980,6 @@ + %*7hi: +0x0:0:5: + %7hi: +00:1:4:0: + %*7hi: +00:0:4: +-%7hi: +0B0:1:5:0: +-%*7hi: +0B0:0:5: +-%7hi: +0b0:1:5:0: +-%*7hi: +0b0:0:5: + %7hi: +1:1:3:1: + %*7hi: +1:0:3: + %7hi: +0X1:1:5:1: +@@ -1472,10 +988,6 @@ + %*7hi: +0x1:0:5: + %7hi: +01:1:4:1: + %*7hi: +01:0:4: +-%7hi: +0B1:1:5:1: +-%*7hi: +0B1:0:5: +-%7hi: +0b1:1:5:1: +-%*7hi: +0b1:0:5: + %7hi: +42:1:4:42: + %*7hi: +42:0:4: + %7hi: +0X2a:1:6:42: +@@ -1484,10 +996,6 @@ + %*7hi: +0x2A:0:6: + %7hi: +052:1:5:42: + %*7hi: +052:0:5: +-%7hi: +0B101010:1:8:10: +-%*7hi: +0B101010:0:8: +-%7hi: +0b101010:1:8:10: +-%*7hi: +0b101010:0:8: + %7hi: +32767:1:7:32767: + %*7hi: +32767:0:7: + %7hi: +0X7fff:1:8:32767: +@@ -1496,10 +1004,6 @@ + %*7hi: +0x7FFF:0:8: + %7hi: +077777:1:8:32767: + %*7hi: +077777:0:8: +-%7hi: +0B111111111111111:1:8:15: +-%*7hi: +0B111111111111111:0:8: +-%7hi: +0b111111111111111:1:8:15: +-%*7hi: +0b111111111111111:0:8: + %7hi: +32768:1:7:-32768: + %*7hi: +32768:0:7: + %7hi: +0X8000:1:8:-32768: +@@ -1508,10 +1012,6 @@ + %*7hi: +0x8000:0:8: + %7hi: +0100000:1:8:4096: + %*7hi: +0100000:0:8: +-%7hi: +0B1000000000000000:1:8:8: +-%*7hi: +0B1000000000000000:0:8: +-%7hi: +0b1000000000000000:1:8:8: +-%*7hi: +0b1000000000000000:0:8: + %7hi: +32809:1:7:-32727: + %*7hi: +32809:0:7: + %7hi: +0X8029:1:8:-32727: +@@ -1520,7 +1020,3 @@ + %*7hi: +0x8029:0:8: + %7hi: +0100051:1:8:4101: + %*7hi: +0100051:0:8: +-%7hi: +0B1000000000101001:1:8:8: +-%*7hi: +0B1000000000101001:0:8: +-%7hi: +0b1000000000101001:1:8:8: +-%*7hi: +0b1000000000101001:0:8: +diff --git a/stdio-common/tst-scanf-format-uchar-b.input b/stdio-common/tst-scanf-format-uchar-b.input +deleted file mode 100644 +index e4074425ef8f088c..0000000000000000 +--- a/stdio-common/tst-scanf-format-uchar-b.input ++++ /dev/null +@@ -1,644 +0,0 @@ +-%hhb::0:-1: +-%*hhb::0:-1: +-%hhb:-1111011:1:8:133: +-%*hhb:-1111011:0:8: +-%hhb:-0B1111011:1:10:133: +-%*hhb:-0B1111011:0:10: +-%hhb:-0b1111011:1:10:133: +-%*hhb:-0b1111011:0:10: +-%hhb:-1:1:2:255: +-%*hhb:-1:0:2: +-%hhb:-0B1:1:4:255: +-%*hhb:-0B1:0:4: +-%hhb:-0b1:1:4:255: +-%*hhb:-0b1:0:4: +-%hhb:-0:1:2:0: +-%*hhb:-0:0:2: +-%hhb:-0B0:1:4:0: +-%*hhb:-0B0:0:4: +-%hhb:-0b0:1:4:0: +-%*hhb:-0b0:0:4: +-%hhb:0:1:1:0: +-%*hhb:0:0:1: +-%hhb:0B0:1:3:0: +-%*hhb:0B0:0:3: +-%hhb:0b0:1:3:0: +-%*hhb:0b0:0:3: +-%hhb:1:1:1:1: +-%*hhb:1:0:1: +-%hhb:0B1:1:3:1: +-%*hhb:0B1:0:3: +-%hhb:0b1:1:3:1: +-%*hhb:0b1:0:3: +-%hhb:101010:1:6:42: +-%*hhb:101010:0:6: +-%hhb:0B101010:1:8:42: +-%*hhb:0B101010:0:8: +-%hhb:0b101010:1:8:42: +-%*hhb:0b101010:0:8: +-%hhb:11111111:1:8:255: +-%*hhb:11111111:0:8: +-%hhb:0B11111111:1:10:255: +-%*hhb:0B11111111:0:10: +-%hhb:0b11111111:1:10:255: +-%*hhb:0b11111111:0:10: +-%hhb:100000000:1:9:0: +-%*hhb:100000000:0:9: +-%hhb:0B100000000:1:11:0: +-%*hhb:0B100000000:0:11: +-%hhb:0b100000000:1:11:0: +-%*hhb:0b100000000:0:11: +-%hhb:100101001:1:9:41: +-%*hhb:100101001:0:9: +-%hhb:0B100101001:1:11:41: +-%*hhb:0B100101001:0:11: +-%hhb:0b100101001:1:11:41: +-%*hhb:0b100101001:0:11: +-%hhb:+0:1:2:0: +-%*hhb:+0:0:2: +-%hhb:+0B0:1:4:0: +-%*hhb:+0B0:0:4: +-%hhb:+0b0:1:4:0: +-%*hhb:+0b0:0:4: +-%hhb:+1:1:2:1: +-%*hhb:+1:0:2: +-%hhb:+0B1:1:4:1: +-%*hhb:+0B1:0:4: +-%hhb:+0b1:1:4:1: +-%*hhb:+0b1:0:4: +-%hhb:+101010:1:7:42: +-%*hhb:+101010:0:7: +-%hhb:+0B101010:1:9:42: +-%*hhb:+0B101010:0:9: +-%hhb:+0b101010:1:9:42: +-%*hhb:+0b101010:0:9: +-%hhb:+11111111:1:9:255: +-%*hhb:+11111111:0:9: +-%hhb:+0B11111111:1:11:255: +-%*hhb:+0B11111111:0:11: +-%hhb:+0b11111111:1:11:255: +-%*hhb:+0b11111111:0:11: +-%hhb:+100000000:1:10:0: +-%*hhb:+100000000:0:10: +-%hhb:+0B100000000:1:12:0: +-%*hhb:+0B100000000:0:12: +-%hhb:+0b100000000:1:12:0: +-%*hhb:+0b100000000:0:12: +-%hhb:+100101001:1:10:41: +-%*hhb:+100101001:0:10: +-%hhb:+0B100101001:1:12:41: +-%*hhb:+0B100101001:0:12: +-%hhb:+0b100101001:1:12:41: +-%*hhb:+0b100101001:0:12: +-%1hhb::0:-1: +-%*1hhb::0:-1: +-%1hhb:-1111011:0:-1: +-%*1hhb:-1111011:0:-1: +-%1hhb:-0B1111011:0:-1: +-%*1hhb:-0B1111011:0:-1: +-%1hhb:-0b1111011:0:-1: +-%*1hhb:-0b1111011:0:-1: +-%1hhb:-1:0:-1: +-%*1hhb:-1:0:-1: +-%1hhb:-0B1:0:-1: +-%*1hhb:-0B1:0:-1: +-%1hhb:-0b1:0:-1: +-%*1hhb:-0b1:0:-1: +-%1hhb:-0:0:-1: +-%*1hhb:-0:0:-1: +-%1hhb:-0B0:0:-1: +-%*1hhb:-0B0:0:-1: +-%1hhb:-0b0:0:-1: +-%*1hhb:-0b0:0:-1: +-%1hhb:0:1:1:0: +-%*1hhb:0:0:1: +-%1hhb:0B0:1:1:0: +-%*1hhb:0B0:0:1: +-%1hhb:0b0:1:1:0: +-%*1hhb:0b0:0:1: +-%1hhb:1:1:1:1: +-%*1hhb:1:0:1: +-%1hhb:0B1:1:1:0: +-%*1hhb:0B1:0:1: +-%1hhb:0b1:1:1:0: +-%*1hhb:0b1:0:1: +-%1hhb:101010:1:1:1: +-%*1hhb:101010:0:1: +-%1hhb:0B101010:1:1:0: +-%*1hhb:0B101010:0:1: +-%1hhb:0b101010:1:1:0: +-%*1hhb:0b101010:0:1: +-%1hhb:11111111:1:1:1: +-%*1hhb:11111111:0:1: +-%1hhb:0B11111111:1:1:0: +-%*1hhb:0B11111111:0:1: +-%1hhb:0b11111111:1:1:0: +-%*1hhb:0b11111111:0:1: +-%1hhb:100000000:1:1:1: +-%*1hhb:100000000:0:1: +-%1hhb:0B100000000:1:1:0: +-%*1hhb:0B100000000:0:1: +-%1hhb:0b100000000:1:1:0: +-%*1hhb:0b100000000:0:1: +-%1hhb:100101001:1:1:1: +-%*1hhb:100101001:0:1: +-%1hhb:0B100101001:1:1:0: +-%*1hhb:0B100101001:0:1: +-%1hhb:0b100101001:1:1:0: +-%*1hhb:0b100101001:0:1: +-%1hhb:+0:0:-1: +-%*1hhb:+0:0:-1: +-%1hhb:+0B0:0:-1: +-%*1hhb:+0B0:0:-1: +-%1hhb:+0b0:0:-1: +-%*1hhb:+0b0:0:-1: +-%1hhb:+1:0:-1: +-%*1hhb:+1:0:-1: +-%1hhb:+0B1:0:-1: +-%*1hhb:+0B1:0:-1: +-%1hhb:+0b1:0:-1: +-%*1hhb:+0b1:0:-1: +-%1hhb:+101010:0:-1: +-%*1hhb:+101010:0:-1: +-%1hhb:+0B101010:0:-1: +-%*1hhb:+0B101010:0:-1: +-%1hhb:+0b101010:0:-1: +-%*1hhb:+0b101010:0:-1: +-%1hhb:+11111111:0:-1: +-%*1hhb:+11111111:0:-1: +-%1hhb:+0B11111111:0:-1: +-%*1hhb:+0B11111111:0:-1: +-%1hhb:+0b11111111:0:-1: +-%*1hhb:+0b11111111:0:-1: +-%1hhb:+100000000:0:-1: +-%*1hhb:+100000000:0:-1: +-%1hhb:+0B100000000:0:-1: +-%*1hhb:+0B100000000:0:-1: +-%1hhb:+0b100000000:0:-1: +-%*1hhb:+0b100000000:0:-1: +-%1hhb:+100101001:0:-1: +-%*1hhb:+100101001:0:-1: +-%1hhb:+0B100101001:0:-1: +-%*1hhb:+0B100101001:0:-1: +-%1hhb:+0b100101001:0:-1: +-%*1hhb:+0b100101001:0:-1: +-%2hhb::0:-1: +-%*2hhb::0:-1: +-%2hhb:-1111011:1:2:255: +-%*2hhb:-1111011:0:2: +-%2hhb:-0B1111011:1:2:0: +-%*2hhb:-0B1111011:0:2: +-%2hhb:-0b1111011:1:2:0: +-%*2hhb:-0b1111011:0:2: +-%2hhb:-1:1:2:255: +-%*2hhb:-1:0:2: +-%2hhb:-0B1:1:2:0: +-%*2hhb:-0B1:0:2: +-%2hhb:-0b1:1:2:0: +-%*2hhb:-0b1:0:2: +-%2hhb:-0:1:2:0: +-%*2hhb:-0:0:2: +-%2hhb:-0B0:1:2:0: +-%*2hhb:-0B0:0:2: +-%2hhb:-0b0:1:2:0: +-%*2hhb:-0b0:0:2: +-%2hhb:0:1:1:0: +-%*2hhb:0:0:1: +-# BZ12701 %2hhb:0B0:0:-1: +-# BZ12701 %*2hhb:0B0:0:-1: +-# BZ12701 %2hhb:0b0:0:-1: +-# BZ12701 %*2hhb:0b0:0:-1: +-%2hhb:1:1:1:1: +-%*2hhb:1:0:1: +-# BZ12701 %2hhb:0B1:0:-1: +-# BZ12701 %*2hhb:0B1:0:-1: +-# BZ12701 %2hhb:0b1:0:-1: +-# BZ12701 %*2hhb:0b1:0:-1: +-%2hhb:101010:1:2:2: +-%*2hhb:101010:0:2: +-# BZ12701 %2hhb:0B101010:0:-1: +-# BZ12701 %*2hhb:0B101010:0:-1: +-# BZ12701 %2hhb:0b101010:0:-1: +-# BZ12701 %*2hhb:0b101010:0:-1: +-%2hhb:11111111:1:2:3: +-%*2hhb:11111111:0:2: +-# BZ12701 %2hhb:0B11111111:0:-1: +-# BZ12701 %*2hhb:0B11111111:0:-1: +-# BZ12701 %2hhb:0b11111111:0:-1: +-# BZ12701 %*2hhb:0b11111111:0:-1: +-%2hhb:100000000:1:2:2: +-%*2hhb:100000000:0:2: +-# BZ12701 %2hhb:0B100000000:0:-1: +-# BZ12701 %*2hhb:0B100000000:0:-1: +-# BZ12701 %2hhb:0b100000000:0:-1: +-# BZ12701 %*2hhb:0b100000000:0:-1: +-%2hhb:100101001:1:2:2: +-%*2hhb:100101001:0:2: +-# BZ12701 %2hhb:0B100101001:0:-1: +-# BZ12701 %*2hhb:0B100101001:0:-1: +-# BZ12701 %2hhb:0b100101001:0:-1: +-# BZ12701 %*2hhb:0b100101001:0:-1: +-%2hhb:+0:1:2:0: +-%*2hhb:+0:0:2: +-%2hhb:+0B0:1:2:0: +-%*2hhb:+0B0:0:2: +-%2hhb:+0b0:1:2:0: +-%*2hhb:+0b0:0:2: +-%2hhb:+1:1:2:1: +-%*2hhb:+1:0:2: +-%2hhb:+0B1:1:2:0: +-%*2hhb:+0B1:0:2: +-%2hhb:+0b1:1:2:0: +-%*2hhb:+0b1:0:2: +-%2hhb:+101010:1:2:1: +-%*2hhb:+101010:0:2: +-%2hhb:+0B101010:1:2:0: +-%*2hhb:+0B101010:0:2: +-%2hhb:+0b101010:1:2:0: +-%*2hhb:+0b101010:0:2: +-%2hhb:+11111111:1:2:1: +-%*2hhb:+11111111:0:2: +-%2hhb:+0B11111111:1:2:0: +-%*2hhb:+0B11111111:0:2: +-%2hhb:+0b11111111:1:2:0: +-%*2hhb:+0b11111111:0:2: +-%2hhb:+100000000:1:2:1: +-%*2hhb:+100000000:0:2: +-%2hhb:+0B100000000:1:2:0: +-%*2hhb:+0B100000000:0:2: +-%2hhb:+0b100000000:1:2:0: +-%*2hhb:+0b100000000:0:2: +-%2hhb:+100101001:1:2:1: +-%*2hhb:+100101001:0:2: +-%2hhb:+0B100101001:1:2:0: +-%*2hhb:+0B100101001:0:2: +-%2hhb:+0b100101001:1:2:0: +-%*2hhb:+0b100101001:0:2: +-%3hhb::0:-1: +-%*3hhb::0:-1: +-%3hhb:-1111011:1:3:253: +-%*3hhb:-1111011:0:3: +-# BZ12701 %3hhb:-0B1111011:0:-1: +-# BZ12701 %*3hhb:-0B1111011:0:-1: +-# BZ12701 %3hhb:-0b1111011:0:-1: +-# BZ12701 %*3hhb:-0b1111011:0:-1: +-%3hhb:-1:1:2:255: +-%*3hhb:-1:0:2: +-# BZ12701 %3hhb:-0B1:0:-1: +-# BZ12701 %*3hhb:-0B1:0:-1: +-# BZ12701 %3hhb:-0b1:0:-1: +-# BZ12701 %*3hhb:-0b1:0:-1: +-%3hhb:-0:1:2:0: +-%*3hhb:-0:0:2: +-# BZ12701 %3hhb:-0B0:0:-1: +-# BZ12701 %*3hhb:-0B0:0:-1: +-# BZ12701 %3hhb:-0b0:0:-1: +-# BZ12701 %*3hhb:-0b0:0:-1: +-%3hhb:0:1:1:0: +-%*3hhb:0:0:1: +-%3hhb:0B0:1:3:0: +-%*3hhb:0B0:0:3: +-%3hhb:0b0:1:3:0: +-%*3hhb:0b0:0:3: +-%3hhb:1:1:1:1: +-%*3hhb:1:0:1: +-%3hhb:0B1:1:3:1: +-%*3hhb:0B1:0:3: +-%3hhb:0b1:1:3:1: +-%*3hhb:0b1:0:3: +-%3hhb:101010:1:3:5: +-%*3hhb:101010:0:3: +-%3hhb:0B101010:1:3:1: +-%*3hhb:0B101010:0:3: +-%3hhb:0b101010:1:3:1: +-%*3hhb:0b101010:0:3: +-%3hhb:11111111:1:3:7: +-%*3hhb:11111111:0:3: +-%3hhb:0B11111111:1:3:1: +-%*3hhb:0B11111111:0:3: +-%3hhb:0b11111111:1:3:1: +-%*3hhb:0b11111111:0:3: +-%3hhb:100000000:1:3:4: +-%*3hhb:100000000:0:3: +-%3hhb:0B100000000:1:3:1: +-%*3hhb:0B100000000:0:3: +-%3hhb:0b100000000:1:3:1: +-%*3hhb:0b100000000:0:3: +-%3hhb:100101001:1:3:4: +-%*3hhb:100101001:0:3: +-%3hhb:0B100101001:1:3:1: +-%*3hhb:0B100101001:0:3: +-%3hhb:0b100101001:1:3:1: +-%*3hhb:0b100101001:0:3: +-%3hhb:+0:1:2:0: +-%*3hhb:+0:0:2: +-# BZ12701 %3hhb:+0B0:0:-1: +-# BZ12701 %*3hhb:+0B0:0:-1: +-# BZ12701 %3hhb:+0b0:0:-1: +-# BZ12701 %*3hhb:+0b0:0:-1: +-%3hhb:+1:1:2:1: +-%*3hhb:+1:0:2: +-# BZ12701 %3hhb:+0B1:0:-1: +-# BZ12701 %*3hhb:+0B1:0:-1: +-# BZ12701 %3hhb:+0b1:0:-1: +-# BZ12701 %*3hhb:+0b1:0:-1: +-%3hhb:+101010:1:3:2: +-%*3hhb:+101010:0:3: +-# BZ12701 %3hhb:+0B101010:0:-1: +-# BZ12701 %*3hhb:+0B101010:0:-1: +-# BZ12701 %3hhb:+0b101010:0:-1: +-# BZ12701 %*3hhb:+0b101010:0:-1: +-%3hhb:+11111111:1:3:3: +-%*3hhb:+11111111:0:3: +-# BZ12701 %3hhb:+0B11111111:0:-1: +-# BZ12701 %*3hhb:+0B11111111:0:-1: +-# BZ12701 %3hhb:+0b11111111:0:-1: +-# BZ12701 %*3hhb:+0b11111111:0:-1: +-%3hhb:+100000000:1:3:2: +-%*3hhb:+100000000:0:3: +-# BZ12701 %3hhb:+0B100000000:0:-1: +-# BZ12701 %*3hhb:+0B100000000:0:-1: +-# BZ12701 %3hhb:+0b100000000:0:-1: +-# BZ12701 %*3hhb:+0b100000000:0:-1: +-%3hhb:+100101001:1:3:2: +-%*3hhb:+100101001:0:3: +-# BZ12701 %3hhb:+0B100101001:0:-1: +-# BZ12701 %*3hhb:+0B100101001:0:-1: +-# BZ12701 %3hhb:+0b100101001:0:-1: +-# BZ12701 %*3hhb:+0b100101001:0:-1: +-%5hhb::0:-1: +-%*5hhb::0:-1: +-%5hhb:-1111011:1:5:241: +-%*5hhb:-1111011:0:5: +-%5hhb:-0B1111011:1:5:253: +-%*5hhb:-0B1111011:0:5: +-%5hhb:-0b1111011:1:5:253: +-%*5hhb:-0b1111011:0:5: +-%5hhb:-1:1:2:255: +-%*5hhb:-1:0:2: +-%5hhb:-0B1:1:4:255: +-%*5hhb:-0B1:0:4: +-%5hhb:-0b1:1:4:255: +-%*5hhb:-0b1:0:4: +-%5hhb:-0:1:2:0: +-%*5hhb:-0:0:2: +-%5hhb:-0B0:1:4:0: +-%*5hhb:-0B0:0:4: +-%5hhb:-0b0:1:4:0: +-%*5hhb:-0b0:0:4: +-%5hhb:0:1:1:0: +-%*5hhb:0:0:1: +-%5hhb:0B0:1:3:0: +-%*5hhb:0B0:0:3: +-%5hhb:0b0:1:3:0: +-%*5hhb:0b0:0:3: +-%5hhb:1:1:1:1: +-%*5hhb:1:0:1: +-%5hhb:0B1:1:3:1: +-%*5hhb:0B1:0:3: +-%5hhb:0b1:1:3:1: +-%*5hhb:0b1:0:3: +-%5hhb:101010:1:5:21: +-%*5hhb:101010:0:5: +-%5hhb:0B101010:1:5:5: +-%*5hhb:0B101010:0:5: +-%5hhb:0b101010:1:5:5: +-%*5hhb:0b101010:0:5: +-%5hhb:11111111:1:5:31: +-%*5hhb:11111111:0:5: +-%5hhb:0B11111111:1:5:7: +-%*5hhb:0B11111111:0:5: +-%5hhb:0b11111111:1:5:7: +-%*5hhb:0b11111111:0:5: +-%5hhb:100000000:1:5:16: +-%*5hhb:100000000:0:5: +-%5hhb:0B100000000:1:5:4: +-%*5hhb:0B100000000:0:5: +-%5hhb:0b100000000:1:5:4: +-%*5hhb:0b100000000:0:5: +-%5hhb:100101001:1:5:18: +-%*5hhb:100101001:0:5: +-%5hhb:0B100101001:1:5:4: +-%*5hhb:0B100101001:0:5: +-%5hhb:0b100101001:1:5:4: +-%*5hhb:0b100101001:0:5: +-%5hhb:+0:1:2:0: +-%*5hhb:+0:0:2: +-%5hhb:+0B0:1:4:0: +-%*5hhb:+0B0:0:4: +-%5hhb:+0b0:1:4:0: +-%*5hhb:+0b0:0:4: +-%5hhb:+1:1:2:1: +-%*5hhb:+1:0:2: +-%5hhb:+0B1:1:4:1: +-%*5hhb:+0B1:0:4: +-%5hhb:+0b1:1:4:1: +-%*5hhb:+0b1:0:4: +-%5hhb:+101010:1:5:10: +-%*5hhb:+101010:0:5: +-%5hhb:+0B101010:1:5:2: +-%*5hhb:+0B101010:0:5: +-%5hhb:+0b101010:1:5:2: +-%*5hhb:+0b101010:0:5: +-%5hhb:+11111111:1:5:15: +-%*5hhb:+11111111:0:5: +-%5hhb:+0B11111111:1:5:3: +-%*5hhb:+0B11111111:0:5: +-%5hhb:+0b11111111:1:5:3: +-%*5hhb:+0b11111111:0:5: +-%5hhb:+100000000:1:5:8: +-%*5hhb:+100000000:0:5: +-%5hhb:+0B100000000:1:5:2: +-%*5hhb:+0B100000000:0:5: +-%5hhb:+0b100000000:1:5:2: +-%*5hhb:+0b100000000:0:5: +-%5hhb:+100101001:1:5:9: +-%*5hhb:+100101001:0:5: +-%5hhb:+0B100101001:1:5:2: +-%*5hhb:+0B100101001:0:5: +-%5hhb:+0b100101001:1:5:2: +-%*5hhb:+0b100101001:0:5: +-%2hhb: :0:-1: +-%*2hhb: :0:-1: +-%2hhb: -1111011:1:3:255: +-%*2hhb: -1111011:0:3: +-%2hhb: -0B1111011:1:3:0: +-%*2hhb: -0B1111011:0:3: +-%2hhb: -0b1111011:1:3:0: +-%*2hhb: -0b1111011:0:3: +-%2hhb: -1:1:3:255: +-%*2hhb: -1:0:3: +-%2hhb: -0B1:1:3:0: +-%*2hhb: -0B1:0:3: +-%2hhb: -0b1:1:3:0: +-%*2hhb: -0b1:0:3: +-%2hhb: -0:1:3:0: +-%*2hhb: -0:0:3: +-%2hhb: -0B0:1:3:0: +-%*2hhb: -0B0:0:3: +-%2hhb: -0b0:1:3:0: +-%*2hhb: -0b0:0:3: +-%2hhb: 0:1:2:0: +-%*2hhb: 0:0:2: +-# BZ12701 %2hhb: 0B0:0:-1: +-# BZ12701 %*2hhb: 0B0:0:-1: +-# BZ12701 %2hhb: 0b0:0:-1: +-# BZ12701 %*2hhb: 0b0:0:-1: +-%2hhb: 1:1:2:1: +-%*2hhb: 1:0:2: +-# BZ12701 %2hhb: 0B1:0:-1: +-# BZ12701 %*2hhb: 0B1:0:-1: +-# BZ12701 %2hhb: 0b1:0:-1: +-# BZ12701 %*2hhb: 0b1:0:-1: +-%2hhb: 101010:1:3:2: +-%*2hhb: 101010:0:3: +-# BZ12701 %2hhb: 0B101010:0:-1: +-# BZ12701 %*2hhb: 0B101010:0:-1: +-# BZ12701 %2hhb: 0b101010:0:-1: +-# BZ12701 %*2hhb: 0b101010:0:-1: +-%2hhb: 11111111:1:3:3: +-%*2hhb: 11111111:0:3: +-# BZ12701 %2hhb: 0B11111111:0:-1: +-# BZ12701 %*2hhb: 0B11111111:0:-1: +-# BZ12701 %2hhb: 0b11111111:0:-1: +-# BZ12701 %*2hhb: 0b11111111:0:-1: +-%2hhb: 100000000:1:3:2: +-%*2hhb: 100000000:0:3: +-# BZ12701 %2hhb: 0B100000000:0:-1: +-# BZ12701 %*2hhb: 0B100000000:0:-1: +-# BZ12701 %2hhb: 0b100000000:0:-1: +-# BZ12701 %*2hhb: 0b100000000:0:-1: +-%2hhb: 100101001:1:3:2: +-%*2hhb: 100101001:0:3: +-# BZ12701 %2hhb: 0B100101001:0:-1: +-# BZ12701 %*2hhb: 0B100101001:0:-1: +-# BZ12701 %2hhb: 0b100101001:0:-1: +-# BZ12701 %*2hhb: 0b100101001:0:-1: +-%2hhb: +0:1:3:0: +-%*2hhb: +0:0:3: +-%2hhb: +0B0:1:3:0: +-%*2hhb: +0B0:0:3: +-%2hhb: +0b0:1:3:0: +-%*2hhb: +0b0:0:3: +-%2hhb: +1:1:3:1: +-%*2hhb: +1:0:3: +-%2hhb: +0B1:1:3:0: +-%*2hhb: +0B1:0:3: +-%2hhb: +0b1:1:3:0: +-%*2hhb: +0b1:0:3: +-%2hhb: +101010:1:3:1: +-%*2hhb: +101010:0:3: +-%2hhb: +0B101010:1:3:0: +-%*2hhb: +0B101010:0:3: +-%2hhb: +0b101010:1:3:0: +-%*2hhb: +0b101010:0:3: +-%2hhb: +11111111:1:3:1: +-%*2hhb: +11111111:0:3: +-%2hhb: +0B11111111:1:3:0: +-%*2hhb: +0B11111111:0:3: +-%2hhb: +0b11111111:1:3:0: +-%*2hhb: +0b11111111:0:3: +-%2hhb: +100000000:1:3:1: +-%*2hhb: +100000000:0:3: +-%2hhb: +0B100000000:1:3:0: +-%*2hhb: +0B100000000:0:3: +-%2hhb: +0b100000000:1:3:0: +-%*2hhb: +0b100000000:0:3: +-%2hhb: +100101001:1:3:1: +-%*2hhb: +100101001:0:3: +-%2hhb: +0B100101001:1:3:0: +-%*2hhb: +0B100101001:0:3: +-%2hhb: +0b100101001:1:3:0: +-%*2hhb: +0b100101001:0:3: +-%5hhb: :0:-1: +-%*5hhb: :0:-1: +-%5hhb: -1111011:1:6:241: +-%*5hhb: -1111011:0:6: +-%5hhb: -0B1111011:1:6:253: +-%*5hhb: -0B1111011:0:6: +-%5hhb: -0b1111011:1:6:253: +-%*5hhb: -0b1111011:0:6: +-%5hhb: -1:1:3:255: +-%*5hhb: -1:0:3: +-%5hhb: -0B1:1:5:255: +-%*5hhb: -0B1:0:5: +-%5hhb: -0b1:1:5:255: +-%*5hhb: -0b1:0:5: +-%5hhb: -0:1:3:0: +-%*5hhb: -0:0:3: +-%5hhb: -0B0:1:5:0: +-%*5hhb: -0B0:0:5: +-%5hhb: -0b0:1:5:0: +-%*5hhb: -0b0:0:5: +-%5hhb: 0:1:2:0: +-%*5hhb: 0:0:2: +-%5hhb: 0B0:1:4:0: +-%*5hhb: 0B0:0:4: +-%5hhb: 0b0:1:4:0: +-%*5hhb: 0b0:0:4: +-%5hhb: 1:1:2:1: +-%*5hhb: 1:0:2: +-%5hhb: 0B1:1:4:1: +-%*5hhb: 0B1:0:4: +-%5hhb: 0b1:1:4:1: +-%*5hhb: 0b1:0:4: +-%5hhb: 101010:1:6:21: +-%*5hhb: 101010:0:6: +-%5hhb: 0B101010:1:6:5: +-%*5hhb: 0B101010:0:6: +-%5hhb: 0b101010:1:6:5: +-%*5hhb: 0b101010:0:6: +-%5hhb: 11111111:1:6:31: +-%*5hhb: 11111111:0:6: +-%5hhb: 0B11111111:1:6:7: +-%*5hhb: 0B11111111:0:6: +-%5hhb: 0b11111111:1:6:7: +-%*5hhb: 0b11111111:0:6: +-%5hhb: 100000000:1:6:16: +-%*5hhb: 100000000:0:6: +-%5hhb: 0B100000000:1:6:4: +-%*5hhb: 0B100000000:0:6: +-%5hhb: 0b100000000:1:6:4: +-%*5hhb: 0b100000000:0:6: +-%5hhb: 100101001:1:6:18: +-%*5hhb: 100101001:0:6: +-%5hhb: 0B100101001:1:6:4: +-%*5hhb: 0B100101001:0:6: +-%5hhb: 0b100101001:1:6:4: +-%*5hhb: 0b100101001:0:6: +-%5hhb: +0:1:3:0: +-%*5hhb: +0:0:3: +-%5hhb: +0B0:1:5:0: +-%*5hhb: +0B0:0:5: +-%5hhb: +0b0:1:5:0: +-%*5hhb: +0b0:0:5: +-%5hhb: +1:1:3:1: +-%*5hhb: +1:0:3: +-%5hhb: +0B1:1:5:1: +-%*5hhb: +0B1:0:5: +-%5hhb: +0b1:1:5:1: +-%*5hhb: +0b1:0:5: +-%5hhb: +101010:1:6:10: +-%*5hhb: +101010:0:6: +-%5hhb: +0B101010:1:6:2: +-%*5hhb: +0B101010:0:6: +-%5hhb: +0b101010:1:6:2: +-%*5hhb: +0b101010:0:6: +-%5hhb: +11111111:1:6:15: +-%*5hhb: +11111111:0:6: +-%5hhb: +0B11111111:1:6:3: +-%*5hhb: +0B11111111:0:6: +-%5hhb: +0b11111111:1:6:3: +-%*5hhb: +0b11111111:0:6: +-%5hhb: +100000000:1:6:8: +-%*5hhb: +100000000:0:6: +-%5hhb: +0B100000000:1:6:2: +-%*5hhb: +0B100000000:0:6: +-%5hhb: +0b100000000:1:6:2: +-%*5hhb: +0b100000000:0:6: +-%5hhb: +100101001:1:6:9: +-%*5hhb: +100101001:0:6: +-%5hhb: +0B100101001:1:6:2: +-%*5hhb: +0B100101001:0:6: +-%5hhb: +0b100101001:1:6:2: +-%*5hhb: +0b100101001:0:6: +diff --git a/stdio-common/tst-scanf-format-ullong-b.input b/stdio-common/tst-scanf-format-ullong-b.input +deleted file mode 100644 +index 57b83f01c2c91f7a..0000000000000000 +--- a/stdio-common/tst-scanf-format-ullong-b.input ++++ /dev/null +@@ -1,644 +0,0 @@ +-%llb::0:-1: +-%*llb::0:-1: +-%llb:-1111011:1:8:-123: +-%*llb:-1111011:0:8: +-%llb:-0B1111011:1:10:-123: +-%*llb:-0B1111011:0:10: +-%llb:-0b1111011:1:10:-123: +-%*llb:-0b1111011:0:10: +-%llb:-1:1:2:-1: +-%*llb:-1:0:2: +-%llb:-0B1:1:4:-1: +-%*llb:-0B1:0:4: +-%llb:-0b1:1:4:-1: +-%*llb:-0b1:0:4: +-%llb:-0:1:2:0: +-%*llb:-0:0:2: +-%llb:-0B0:1:4:0: +-%*llb:-0B0:0:4: +-%llb:-0b0:1:4:0: +-%*llb:-0b0:0:4: +-%llb:0:1:1:0: +-%*llb:0:0:1: +-%llb:0B0:1:3:0: +-%*llb:0B0:0:3: +-%llb:0b0:1:3:0: +-%*llb:0b0:0:3: +-%llb:1:1:1:1: +-%*llb:1:0:1: +-%llb:0B1:1:3:1: +-%*llb:0B1:0:3: +-%llb:0b1:1:3:1: +-%*llb:0b1:0:3: +-%llb:101010:1:6:42: +-%*llb:101010:0:6: +-%llb:0B101010:1:8:42: +-%*llb:0B101010:0:8: +-%llb:0b101010:1:8:42: +-%*llb:0b101010:0:8: +-%llb:1111111111111111111111111111111111111111111111111111111111111111:1:64:18446744073709551615: +-%*llb:1111111111111111111111111111111111111111111111111111111111111111:0:64: +-%llb:0B1111111111111111111111111111111111111111111111111111111111111111:1:66:18446744073709551615: +-%*llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:66: +-%llb:0b1111111111111111111111111111111111111111111111111111111111111111:1:66:18446744073709551615: +-%*llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:66: +-%llb:10000000000000000000000000000000000000000000000000000000000000000:1:65:18446744073709551615: +-%*llb:10000000000000000000000000000000000000000000000000000000000000000:0:65: +-%llb:0B10000000000000000000000000000000000000000000000000000000000000000:1:67:18446744073709551615: +-%*llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:67: +-%llb:0b10000000000000000000000000000000000000000000000000000000000000000:1:67:18446744073709551615: +-%*llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:67: +-%llb:10000000000000000000000000000000000000010100001110101011110110001:1:65:18446744073709551615: +-%*llb:10000000000000000000000000000000000000010100001110101011110110001:0:65: +-%llb:0B10000000000000000000000000000000000000010100001110101011110110001:1:67:18446744073709551615: +-%*llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:67: +-%llb:0b10000000000000000000000000000000000000010100001110101011110110001:1:67:18446744073709551615: +-%*llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:67: +-%llb:+0:1:2:0: +-%*llb:+0:0:2: +-%llb:+0B0:1:4:0: +-%*llb:+0B0:0:4: +-%llb:+0b0:1:4:0: +-%*llb:+0b0:0:4: +-%llb:+1:1:2:1: +-%*llb:+1:0:2: +-%llb:+0B1:1:4:1: +-%*llb:+0B1:0:4: +-%llb:+0b1:1:4:1: +-%*llb:+0b1:0:4: +-%llb:+101010:1:7:42: +-%*llb:+101010:0:7: +-%llb:+0B101010:1:9:42: +-%*llb:+0B101010:0:9: +-%llb:+0b101010:1:9:42: +-%*llb:+0b101010:0:9: +-%llb:+1111111111111111111111111111111111111111111111111111111111111111:1:65:18446744073709551615: +-%*llb:+1111111111111111111111111111111111111111111111111111111111111111:0:65: +-%llb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:67:18446744073709551615: +-%*llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:67: +-%llb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:67:18446744073709551615: +-%*llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:67: +-%llb:+10000000000000000000000000000000000000000000000000000000000000000:1:66:18446744073709551615: +-%*llb:+10000000000000000000000000000000000000000000000000000000000000000:0:66: +-%llb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:68:18446744073709551615: +-%*llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:68: +-%llb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:68:18446744073709551615: +-%*llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:68: +-%llb:+10000000000000000000000000000000000000010100001110101011110110001:1:66:18446744073709551615: +-%*llb:+10000000000000000000000000000000000000010100001110101011110110001:0:66: +-%llb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:68:18446744073709551615: +-%*llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:68: +-%llb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:68:18446744073709551615: +-%*llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:68: +-%1llb::0:-1: +-%*1llb::0:-1: +-%1llb:-1111011:0:-1: +-%*1llb:-1111011:0:-1: +-%1llb:-0B1111011:0:-1: +-%*1llb:-0B1111011:0:-1: +-%1llb:-0b1111011:0:-1: +-%*1llb:-0b1111011:0:-1: +-%1llb:-1:0:-1: +-%*1llb:-1:0:-1: +-%1llb:-0B1:0:-1: +-%*1llb:-0B1:0:-1: +-%1llb:-0b1:0:-1: +-%*1llb:-0b1:0:-1: +-%1llb:-0:0:-1: +-%*1llb:-0:0:-1: +-%1llb:-0B0:0:-1: +-%*1llb:-0B0:0:-1: +-%1llb:-0b0:0:-1: +-%*1llb:-0b0:0:-1: +-%1llb:0:1:1:0: +-%*1llb:0:0:1: +-%1llb:0B0:1:1:0: +-%*1llb:0B0:0:1: +-%1llb:0b0:1:1:0: +-%*1llb:0b0:0:1: +-%1llb:1:1:1:1: +-%*1llb:1:0:1: +-%1llb:0B1:1:1:0: +-%*1llb:0B1:0:1: +-%1llb:0b1:1:1:0: +-%*1llb:0b1:0:1: +-%1llb:101010:1:1:1: +-%*1llb:101010:0:1: +-%1llb:0B101010:1:1:0: +-%*1llb:0B101010:0:1: +-%1llb:0b101010:1:1:0: +-%*1llb:0b101010:0:1: +-%1llb:1111111111111111111111111111111111111111111111111111111111111111:1:1:1: +-%*1llb:1111111111111111111111111111111111111111111111111111111111111111:0:1: +-%1llb:0B1111111111111111111111111111111111111111111111111111111111111111:1:1:0: +-%*1llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:1: +-%1llb:0b1111111111111111111111111111111111111111111111111111111111111111:1:1:0: +-%*1llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:1: +-%1llb:10000000000000000000000000000000000000000000000000000000000000000:1:1:1: +-%*1llb:10000000000000000000000000000000000000000000000000000000000000000:0:1: +-%1llb:0B10000000000000000000000000000000000000000000000000000000000000000:1:1:0: +-%*1llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:1: +-%1llb:0b10000000000000000000000000000000000000000000000000000000000000000:1:1:0: +-%*1llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:1: +-%1llb:10000000000000000000000000000000000000010100001110101011110110001:1:1:1: +-%*1llb:10000000000000000000000000000000000000010100001110101011110110001:0:1: +-%1llb:0B10000000000000000000000000000000000000010100001110101011110110001:1:1:0: +-%*1llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:1: +-%1llb:0b10000000000000000000000000000000000000010100001110101011110110001:1:1:0: +-%*1llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:1: +-%1llb:+0:0:-1: +-%*1llb:+0:0:-1: +-%1llb:+0B0:0:-1: +-%*1llb:+0B0:0:-1: +-%1llb:+0b0:0:-1: +-%*1llb:+0b0:0:-1: +-%1llb:+1:0:-1: +-%*1llb:+1:0:-1: +-%1llb:+0B1:0:-1: +-%*1llb:+0B1:0:-1: +-%1llb:+0b1:0:-1: +-%*1llb:+0b1:0:-1: +-%1llb:+101010:0:-1: +-%*1llb:+101010:0:-1: +-%1llb:+0B101010:0:-1: +-%*1llb:+0B101010:0:-1: +-%1llb:+0b101010:0:-1: +-%*1llb:+0b101010:0:-1: +-%1llb:+1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%*1llb:+1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%1llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%*1llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%1llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%*1llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%1llb:+10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1llb:+10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%1llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%1llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%1llb:+10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%*1llb:+10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%1llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%*1llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%1llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%*1llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%2llb::0:-1: +-%*2llb::0:-1: +-%2llb:-1111011:1:2:-1: +-%*2llb:-1111011:0:2: +-%2llb:-0B1111011:1:2:0: +-%*2llb:-0B1111011:0:2: +-%2llb:-0b1111011:1:2:0: +-%*2llb:-0b1111011:0:2: +-%2llb:-1:1:2:-1: +-%*2llb:-1:0:2: +-%2llb:-0B1:1:2:0: +-%*2llb:-0B1:0:2: +-%2llb:-0b1:1:2:0: +-%*2llb:-0b1:0:2: +-%2llb:-0:1:2:0: +-%*2llb:-0:0:2: +-%2llb:-0B0:1:2:0: +-%*2llb:-0B0:0:2: +-%2llb:-0b0:1:2:0: +-%*2llb:-0b0:0:2: +-%2llb:0:1:1:0: +-%*2llb:0:0:1: +-# BZ12701 %2llb:0B0:0:-1: +-# BZ12701 %*2llb:0B0:0:-1: +-# BZ12701 %2llb:0b0:0:-1: +-# BZ12701 %*2llb:0b0:0:-1: +-%2llb:1:1:1:1: +-%*2llb:1:0:1: +-# BZ12701 %2llb:0B1:0:-1: +-# BZ12701 %*2llb:0B1:0:-1: +-# BZ12701 %2llb:0b1:0:-1: +-# BZ12701 %*2llb:0b1:0:-1: +-%2llb:101010:1:2:2: +-%*2llb:101010:0:2: +-# BZ12701 %2llb:0B101010:0:-1: +-# BZ12701 %*2llb:0B101010:0:-1: +-# BZ12701 %2llb:0b101010:0:-1: +-# BZ12701 %*2llb:0b101010:0:-1: +-%2llb:1111111111111111111111111111111111111111111111111111111111111111:1:2:3: +-%*2llb:1111111111111111111111111111111111111111111111111111111111111111:0:2: +-# BZ12701 %2llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %2llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%2llb:10000000000000000000000000000000000000000000000000000000000000000:1:2:2: +-%*2llb:10000000000000000000000000000000000000000000000000000000000000000:0:2: +-# BZ12701 %2llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %2llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%2llb:10000000000000000000000000000000000000010100001110101011110110001:1:2:2: +-%*2llb:10000000000000000000000000000000000000010100001110101011110110001:0:2: +-# BZ12701 %2llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %2llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%2llb:+0:1:2:0: +-%*2llb:+0:0:2: +-%2llb:+0B0:1:2:0: +-%*2llb:+0B0:0:2: +-%2llb:+0b0:1:2:0: +-%*2llb:+0b0:0:2: +-%2llb:+1:1:2:1: +-%*2llb:+1:0:2: +-%2llb:+0B1:1:2:0: +-%*2llb:+0B1:0:2: +-%2llb:+0b1:1:2:0: +-%*2llb:+0b1:0:2: +-%2llb:+101010:1:2:1: +-%*2llb:+101010:0:2: +-%2llb:+0B101010:1:2:0: +-%*2llb:+0B101010:0:2: +-%2llb:+0b101010:1:2:0: +-%*2llb:+0b101010:0:2: +-%2llb:+1111111111111111111111111111111111111111111111111111111111111111:1:2:1: +-%*2llb:+1111111111111111111111111111111111111111111111111111111111111111:0:2: +-%2llb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:2:0: +-%*2llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:2: +-%2llb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:2:0: +-%*2llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:2: +-%2llb:+10000000000000000000000000000000000000000000000000000000000000000:1:2:1: +-%*2llb:+10000000000000000000000000000000000000000000000000000000000000000:0:2: +-%2llb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:2:0: +-%*2llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:2: +-%2llb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:2:0: +-%*2llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:2: +-%2llb:+10000000000000000000000000000000000000010100001110101011110110001:1:2:1: +-%*2llb:+10000000000000000000000000000000000000010100001110101011110110001:0:2: +-%2llb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:2:0: +-%*2llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:2: +-%2llb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:2:0: +-%*2llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:2: +-%15llb::0:-1: +-%*15llb::0:-1: +-%15llb:-1111011:1:8:-123: +-%*15llb:-1111011:0:8: +-%15llb:-0B1111011:1:10:-123: +-%*15llb:-0B1111011:0:10: +-%15llb:-0b1111011:1:10:-123: +-%*15llb:-0b1111011:0:10: +-%15llb:-1:1:2:-1: +-%*15llb:-1:0:2: +-%15llb:-0B1:1:4:-1: +-%*15llb:-0B1:0:4: +-%15llb:-0b1:1:4:-1: +-%*15llb:-0b1:0:4: +-%15llb:-0:1:2:0: +-%*15llb:-0:0:2: +-%15llb:-0B0:1:4:0: +-%*15llb:-0B0:0:4: +-%15llb:-0b0:1:4:0: +-%*15llb:-0b0:0:4: +-%15llb:0:1:1:0: +-%*15llb:0:0:1: +-%15llb:0B0:1:3:0: +-%*15llb:0B0:0:3: +-%15llb:0b0:1:3:0: +-%*15llb:0b0:0:3: +-%15llb:1:1:1:1: +-%*15llb:1:0:1: +-%15llb:0B1:1:3:1: +-%*15llb:0B1:0:3: +-%15llb:0b1:1:3:1: +-%*15llb:0b1:0:3: +-%15llb:101010:1:6:42: +-%*15llb:101010:0:6: +-%15llb:0B101010:1:8:42: +-%*15llb:0B101010:0:8: +-%15llb:0b101010:1:8:42: +-%*15llb:0b101010:0:8: +-%15llb:1111111111111111111111111111111111111111111111111111111111111111:1:15:32767: +-%*15llb:1111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15llb:0B1111111111111111111111111111111111111111111111111111111111111111:1:15:8191: +-%*15llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15llb:0b1111111111111111111111111111111111111111111111111111111111111111:1:15:8191: +-%*15llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15llb:10000000000000000000000000000000000000000000000000000000000000000:1:15:16384: +-%*15llb:10000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15llb:0B10000000000000000000000000000000000000000000000000000000000000000:1:15:4096: +-%*15llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15llb:0b10000000000000000000000000000000000000000000000000000000000000000:1:15:4096: +-%*15llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15llb:10000000000000000000000000000000000000010100001110101011110110001:1:15:16384: +-%*15llb:10000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15llb:0B10000000000000000000000000000000000000010100001110101011110110001:1:15:4096: +-%*15llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15llb:0b10000000000000000000000000000000000000010100001110101011110110001:1:15:4096: +-%*15llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15llb:+0:1:2:0: +-%*15llb:+0:0:2: +-%15llb:+0B0:1:4:0: +-%*15llb:+0B0:0:4: +-%15llb:+0b0:1:4:0: +-%*15llb:+0b0:0:4: +-%15llb:+1:1:2:1: +-%*15llb:+1:0:2: +-%15llb:+0B1:1:4:1: +-%*15llb:+0B1:0:4: +-%15llb:+0b1:1:4:1: +-%*15llb:+0b1:0:4: +-%15llb:+101010:1:7:42: +-%*15llb:+101010:0:7: +-%15llb:+0B101010:1:9:42: +-%*15llb:+0B101010:0:9: +-%15llb:+0b101010:1:9:42: +-%*15llb:+0b101010:0:9: +-%15llb:+1111111111111111111111111111111111111111111111111111111111111111:1:15:16383: +-%*15llb:+1111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15llb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:15:4095: +-%*15llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15llb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:15:4095: +-%*15llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15llb:+10000000000000000000000000000000000000000000000000000000000000000:1:15:8192: +-%*15llb:+10000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15llb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:15:2048: +-%*15llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15llb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:15:2048: +-%*15llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15llb:+10000000000000000000000000000000000000010100001110101011110110001:1:15:8192: +-%*15llb:+10000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15llb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:15:2048: +-%*15llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15llb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:15:2048: +-%*15llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:15: +-%25llb::0:-1: +-%*25llb::0:-1: +-%25llb:-1111011:1:8:-123: +-%*25llb:-1111011:0:8: +-%25llb:-0B1111011:1:10:-123: +-%*25llb:-0B1111011:0:10: +-%25llb:-0b1111011:1:10:-123: +-%*25llb:-0b1111011:0:10: +-%25llb:-1:1:2:-1: +-%*25llb:-1:0:2: +-%25llb:-0B1:1:4:-1: +-%*25llb:-0B1:0:4: +-%25llb:-0b1:1:4:-1: +-%*25llb:-0b1:0:4: +-%25llb:-0:1:2:0: +-%*25llb:-0:0:2: +-%25llb:-0B0:1:4:0: +-%*25llb:-0B0:0:4: +-%25llb:-0b0:1:4:0: +-%*25llb:-0b0:0:4: +-%25llb:0:1:1:0: +-%*25llb:0:0:1: +-%25llb:0B0:1:3:0: +-%*25llb:0B0:0:3: +-%25llb:0b0:1:3:0: +-%*25llb:0b0:0:3: +-%25llb:1:1:1:1: +-%*25llb:1:0:1: +-%25llb:0B1:1:3:1: +-%*25llb:0B1:0:3: +-%25llb:0b1:1:3:1: +-%*25llb:0b1:0:3: +-%25llb:101010:1:6:42: +-%*25llb:101010:0:6: +-%25llb:0B101010:1:8:42: +-%*25llb:0B101010:0:8: +-%25llb:0b101010:1:8:42: +-%*25llb:0b101010:0:8: +-%25llb:1111111111111111111111111111111111111111111111111111111111111111:1:25:33554431: +-%*25llb:1111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25llb:0B1111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: +-%*25llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25llb:0b1111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: +-%*25llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25llb:10000000000000000000000000000000000000000000000000000000000000000:1:25:16777216: +-%*25llb:10000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25llb:0B10000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: +-%*25llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25llb:0b10000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: +-%*25llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25llb:10000000000000000000000000000000000000010100001110101011110110001:1:25:16777216: +-%*25llb:10000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25llb:0B10000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: +-%*25llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25llb:0b10000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: +-%*25llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25llb:+0:1:2:0: +-%*25llb:+0:0:2: +-%25llb:+0B0:1:4:0: +-%*25llb:+0B0:0:4: +-%25llb:+0b0:1:4:0: +-%*25llb:+0b0:0:4: +-%25llb:+1:1:2:1: +-%*25llb:+1:0:2: +-%25llb:+0B1:1:4:1: +-%*25llb:+0B1:0:4: +-%25llb:+0b1:1:4:1: +-%*25llb:+0b1:0:4: +-%25llb:+101010:1:7:42: +-%*25llb:+101010:0:7: +-%25llb:+0B101010:1:9:42: +-%*25llb:+0B101010:0:9: +-%25llb:+0b101010:1:9:42: +-%*25llb:+0b101010:0:9: +-%25llb:+1111111111111111111111111111111111111111111111111111111111111111:1:25:16777215: +-%*25llb:+1111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25llb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: +-%*25llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25llb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: +-%*25llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25llb:+10000000000000000000000000000000000000000000000000000000000000000:1:25:8388608: +-%*25llb:+10000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25llb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: +-%*25llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25llb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: +-%*25llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25llb:+10000000000000000000000000000000000000010100001110101011110110001:1:25:8388608: +-%*25llb:+10000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25llb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: +-%*25llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25llb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: +-%*25llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:25: +-%2llb: :0:-1: +-%*2llb: :0:-1: +-%2llb: -1111011:1:3:-1: +-%*2llb: -1111011:0:3: +-%2llb: -0B1111011:1:3:0: +-%*2llb: -0B1111011:0:3: +-%2llb: -0b1111011:1:3:0: +-%*2llb: -0b1111011:0:3: +-%2llb: -1:1:3:-1: +-%*2llb: -1:0:3: +-%2llb: -0B1:1:3:0: +-%*2llb: -0B1:0:3: +-%2llb: -0b1:1:3:0: +-%*2llb: -0b1:0:3: +-%2llb: -0:1:3:0: +-%*2llb: -0:0:3: +-%2llb: -0B0:1:3:0: +-%*2llb: -0B0:0:3: +-%2llb: -0b0:1:3:0: +-%*2llb: -0b0:0:3: +-%2llb: 0:1:2:0: +-%*2llb: 0:0:2: +-# BZ12701 %2llb: 0B0:0:-1: +-# BZ12701 %*2llb: 0B0:0:-1: +-# BZ12701 %2llb: 0b0:0:-1: +-# BZ12701 %*2llb: 0b0:0:-1: +-%2llb: 1:1:2:1: +-%*2llb: 1:0:2: +-# BZ12701 %2llb: 0B1:0:-1: +-# BZ12701 %*2llb: 0B1:0:-1: +-# BZ12701 %2llb: 0b1:0:-1: +-# BZ12701 %*2llb: 0b1:0:-1: +-%2llb: 101010:1:3:2: +-%*2llb: 101010:0:3: +-# BZ12701 %2llb: 0B101010:0:-1: +-# BZ12701 %*2llb: 0B101010:0:-1: +-# BZ12701 %2llb: 0b101010:0:-1: +-# BZ12701 %*2llb: 0b101010:0:-1: +-%2llb: 1111111111111111111111111111111111111111111111111111111111111111:1:3:3: +-%*2llb: 1111111111111111111111111111111111111111111111111111111111111111:0:3: +-# BZ12701 %2llb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2llb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %2llb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2llb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%2llb: 10000000000000000000000000000000000000000000000000000000000000000:1:3:2: +-%*2llb: 10000000000000000000000000000000000000000000000000000000000000000:0:3: +-# BZ12701 %2llb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2llb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %2llb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2llb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%2llb: 10000000000000000000000000000000000000010100001110101011110110001:1:3:2: +-%*2llb: 10000000000000000000000000000000000000010100001110101011110110001:0:3: +-# BZ12701 %2llb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2llb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %2llb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2llb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%2llb: +0:1:3:0: +-%*2llb: +0:0:3: +-%2llb: +0B0:1:3:0: +-%*2llb: +0B0:0:3: +-%2llb: +0b0:1:3:0: +-%*2llb: +0b0:0:3: +-%2llb: +1:1:3:1: +-%*2llb: +1:0:3: +-%2llb: +0B1:1:3:0: +-%*2llb: +0B1:0:3: +-%2llb: +0b1:1:3:0: +-%*2llb: +0b1:0:3: +-%2llb: +101010:1:3:1: +-%*2llb: +101010:0:3: +-%2llb: +0B101010:1:3:0: +-%*2llb: +0B101010:0:3: +-%2llb: +0b101010:1:3:0: +-%*2llb: +0b101010:0:3: +-%2llb: +1111111111111111111111111111111111111111111111111111111111111111:1:3:1: +-%*2llb: +1111111111111111111111111111111111111111111111111111111111111111:0:3: +-%2llb: +0B1111111111111111111111111111111111111111111111111111111111111111:1:3:0: +-%*2llb: +0B1111111111111111111111111111111111111111111111111111111111111111:0:3: +-%2llb: +0b1111111111111111111111111111111111111111111111111111111111111111:1:3:0: +-%*2llb: +0b1111111111111111111111111111111111111111111111111111111111111111:0:3: +-%2llb: +10000000000000000000000000000000000000000000000000000000000000000:1:3:1: +-%*2llb: +10000000000000000000000000000000000000000000000000000000000000000:0:3: +-%2llb: +0B10000000000000000000000000000000000000000000000000000000000000000:1:3:0: +-%*2llb: +0B10000000000000000000000000000000000000000000000000000000000000000:0:3: +-%2llb: +0b10000000000000000000000000000000000000000000000000000000000000000:1:3:0: +-%*2llb: +0b10000000000000000000000000000000000000000000000000000000000000000:0:3: +-%2llb: +10000000000000000000000000000000000000010100001110101011110110001:1:3:1: +-%*2llb: +10000000000000000000000000000000000000010100001110101011110110001:0:3: +-%2llb: +0B10000000000000000000000000000000000000010100001110101011110110001:1:3:0: +-%*2llb: +0B10000000000000000000000000000000000000010100001110101011110110001:0:3: +-%2llb: +0b10000000000000000000000000000000000000010100001110101011110110001:1:3:0: +-%*2llb: +0b10000000000000000000000000000000000000010100001110101011110110001:0:3: +-%25llb: :0:-1: +-%*25llb: :0:-1: +-%25llb: -1111011:1:9:-123: +-%*25llb: -1111011:0:9: +-%25llb: -0B1111011:1:11:-123: +-%*25llb: -0B1111011:0:11: +-%25llb: -0b1111011:1:11:-123: +-%*25llb: -0b1111011:0:11: +-%25llb: -1:1:3:-1: +-%*25llb: -1:0:3: +-%25llb: -0B1:1:5:-1: +-%*25llb: -0B1:0:5: +-%25llb: -0b1:1:5:-1: +-%*25llb: -0b1:0:5: +-%25llb: -0:1:3:0: +-%*25llb: -0:0:3: +-%25llb: -0B0:1:5:0: +-%*25llb: -0B0:0:5: +-%25llb: -0b0:1:5:0: +-%*25llb: -0b0:0:5: +-%25llb: 0:1:2:0: +-%*25llb: 0:0:2: +-%25llb: 0B0:1:4:0: +-%*25llb: 0B0:0:4: +-%25llb: 0b0:1:4:0: +-%*25llb: 0b0:0:4: +-%25llb: 1:1:2:1: +-%*25llb: 1:0:2: +-%25llb: 0B1:1:4:1: +-%*25llb: 0B1:0:4: +-%25llb: 0b1:1:4:1: +-%*25llb: 0b1:0:4: +-%25llb: 101010:1:7:42: +-%*25llb: 101010:0:7: +-%25llb: 0B101010:1:9:42: +-%*25llb: 0B101010:0:9: +-%25llb: 0b101010:1:9:42: +-%*25llb: 0b101010:0:9: +-%25llb: 1111111111111111111111111111111111111111111111111111111111111111:1:26:33554431: +-%*25llb: 1111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25llb: 0B1111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: +-%*25llb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25llb: 0b1111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: +-%*25llb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25llb: 10000000000000000000000000000000000000000000000000000000000000000:1:26:16777216: +-%*25llb: 10000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25llb: 0B10000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: +-%*25llb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25llb: 0b10000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: +-%*25llb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25llb: 10000000000000000000000000000000000000010100001110101011110110001:1:26:16777216: +-%*25llb: 10000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25llb: 0B10000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: +-%*25llb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25llb: 0b10000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: +-%*25llb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25llb: +0:1:3:0: +-%*25llb: +0:0:3: +-%25llb: +0B0:1:5:0: +-%*25llb: +0B0:0:5: +-%25llb: +0b0:1:5:0: +-%*25llb: +0b0:0:5: +-%25llb: +1:1:3:1: +-%*25llb: +1:0:3: +-%25llb: +0B1:1:5:1: +-%*25llb: +0B1:0:5: +-%25llb: +0b1:1:5:1: +-%*25llb: +0b1:0:5: +-%25llb: +101010:1:8:42: +-%*25llb: +101010:0:8: +-%25llb: +0B101010:1:10:42: +-%*25llb: +0B101010:0:10: +-%25llb: +0b101010:1:10:42: +-%*25llb: +0b101010:0:10: +-%25llb: +1111111111111111111111111111111111111111111111111111111111111111:1:26:16777215: +-%*25llb: +1111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25llb: +0B1111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: +-%*25llb: +0B1111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25llb: +0b1111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: +-%*25llb: +0b1111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25llb: +10000000000000000000000000000000000000000000000000000000000000000:1:26:8388608: +-%*25llb: +10000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25llb: +0B10000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: +-%*25llb: +0B10000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25llb: +0b10000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: +-%*25llb: +0b10000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25llb: +10000000000000000000000000000000000000010100001110101011110110001:1:26:8388608: +-%*25llb: +10000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25llb: +0B10000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: +-%*25llb: +0B10000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25llb: +0b10000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: +-%*25llb: +0b10000000000000000000000000000000000000010100001110101011110110001:0:26: +diff --git a/stdio-common/tst-scanf-format-ushort-b.input b/stdio-common/tst-scanf-format-ushort-b.input +deleted file mode 100644 +index b41a66763a09a962..0000000000000000 +--- a/stdio-common/tst-scanf-format-ushort-b.input ++++ /dev/null +@@ -1,644 +0,0 @@ +-%hb::0:-1: +-%*hb::0:-1: +-%hb:-1111011:1:8:65413: +-%*hb:-1111011:0:8: +-%hb:-0B1111011:1:10:65413: +-%*hb:-0B1111011:0:10: +-%hb:-0b1111011:1:10:65413: +-%*hb:-0b1111011:0:10: +-%hb:-1:1:2:65535: +-%*hb:-1:0:2: +-%hb:-0B1:1:4:65535: +-%*hb:-0B1:0:4: +-%hb:-0b1:1:4:65535: +-%*hb:-0b1:0:4: +-%hb:-0:1:2:0: +-%*hb:-0:0:2: +-%hb:-0B0:1:4:0: +-%*hb:-0B0:0:4: +-%hb:-0b0:1:4:0: +-%*hb:-0b0:0:4: +-%hb:0:1:1:0: +-%*hb:0:0:1: +-%hb:0B0:1:3:0: +-%*hb:0B0:0:3: +-%hb:0b0:1:3:0: +-%*hb:0b0:0:3: +-%hb:1:1:1:1: +-%*hb:1:0:1: +-%hb:0B1:1:3:1: +-%*hb:0B1:0:3: +-%hb:0b1:1:3:1: +-%*hb:0b1:0:3: +-%hb:101010:1:6:42: +-%*hb:101010:0:6: +-%hb:0B101010:1:8:42: +-%*hb:0B101010:0:8: +-%hb:0b101010:1:8:42: +-%*hb:0b101010:0:8: +-%hb:1111111111111111:1:16:65535: +-%*hb:1111111111111111:0:16: +-%hb:0B1111111111111111:1:18:65535: +-%*hb:0B1111111111111111:0:18: +-%hb:0b1111111111111111:1:18:65535: +-%*hb:0b1111111111111111:0:18: +-%hb:10000000000000000:1:17:0: +-%*hb:10000000000000000:0:17: +-%hb:0B10000000000000000:1:19:0: +-%*hb:0B10000000000000000:0:19: +-%hb:0b10000000000000000:1:19:0: +-%*hb:0b10000000000000000:0:19: +-%hb:10000000000101001:1:17:41: +-%*hb:10000000000101001:0:17: +-%hb:0B10000000000101001:1:19:41: +-%*hb:0B10000000000101001:0:19: +-%hb:0b10000000000101001:1:19:41: +-%*hb:0b10000000000101001:0:19: +-%hb:+0:1:2:0: +-%*hb:+0:0:2: +-%hb:+0B0:1:4:0: +-%*hb:+0B0:0:4: +-%hb:+0b0:1:4:0: +-%*hb:+0b0:0:4: +-%hb:+1:1:2:1: +-%*hb:+1:0:2: +-%hb:+0B1:1:4:1: +-%*hb:+0B1:0:4: +-%hb:+0b1:1:4:1: +-%*hb:+0b1:0:4: +-%hb:+101010:1:7:42: +-%*hb:+101010:0:7: +-%hb:+0B101010:1:9:42: +-%*hb:+0B101010:0:9: +-%hb:+0b101010:1:9:42: +-%*hb:+0b101010:0:9: +-%hb:+1111111111111111:1:17:65535: +-%*hb:+1111111111111111:0:17: +-%hb:+0B1111111111111111:1:19:65535: +-%*hb:+0B1111111111111111:0:19: +-%hb:+0b1111111111111111:1:19:65535: +-%*hb:+0b1111111111111111:0:19: +-%hb:+10000000000000000:1:18:0: +-%*hb:+10000000000000000:0:18: +-%hb:+0B10000000000000000:1:20:0: +-%*hb:+0B10000000000000000:0:20: +-%hb:+0b10000000000000000:1:20:0: +-%*hb:+0b10000000000000000:0:20: +-%hb:+10000000000101001:1:18:41: +-%*hb:+10000000000101001:0:18: +-%hb:+0B10000000000101001:1:20:41: +-%*hb:+0B10000000000101001:0:20: +-%hb:+0b10000000000101001:1:20:41: +-%*hb:+0b10000000000101001:0:20: +-%1hb::0:-1: +-%*1hb::0:-1: +-%1hb:-1111011:0:-1: +-%*1hb:-1111011:0:-1: +-%1hb:-0B1111011:0:-1: +-%*1hb:-0B1111011:0:-1: +-%1hb:-0b1111011:0:-1: +-%*1hb:-0b1111011:0:-1: +-%1hb:-1:0:-1: +-%*1hb:-1:0:-1: +-%1hb:-0B1:0:-1: +-%*1hb:-0B1:0:-1: +-%1hb:-0b1:0:-1: +-%*1hb:-0b1:0:-1: +-%1hb:-0:0:-1: +-%*1hb:-0:0:-1: +-%1hb:-0B0:0:-1: +-%*1hb:-0B0:0:-1: +-%1hb:-0b0:0:-1: +-%*1hb:-0b0:0:-1: +-%1hb:0:1:1:0: +-%*1hb:0:0:1: +-%1hb:0B0:1:1:0: +-%*1hb:0B0:0:1: +-%1hb:0b0:1:1:0: +-%*1hb:0b0:0:1: +-%1hb:1:1:1:1: +-%*1hb:1:0:1: +-%1hb:0B1:1:1:0: +-%*1hb:0B1:0:1: +-%1hb:0b1:1:1:0: +-%*1hb:0b1:0:1: +-%1hb:101010:1:1:1: +-%*1hb:101010:0:1: +-%1hb:0B101010:1:1:0: +-%*1hb:0B101010:0:1: +-%1hb:0b101010:1:1:0: +-%*1hb:0b101010:0:1: +-%1hb:1111111111111111:1:1:1: +-%*1hb:1111111111111111:0:1: +-%1hb:0B1111111111111111:1:1:0: +-%*1hb:0B1111111111111111:0:1: +-%1hb:0b1111111111111111:1:1:0: +-%*1hb:0b1111111111111111:0:1: +-%1hb:10000000000000000:1:1:1: +-%*1hb:10000000000000000:0:1: +-%1hb:0B10000000000000000:1:1:0: +-%*1hb:0B10000000000000000:0:1: +-%1hb:0b10000000000000000:1:1:0: +-%*1hb:0b10000000000000000:0:1: +-%1hb:10000000000101001:1:1:1: +-%*1hb:10000000000101001:0:1: +-%1hb:0B10000000000101001:1:1:0: +-%*1hb:0B10000000000101001:0:1: +-%1hb:0b10000000000101001:1:1:0: +-%*1hb:0b10000000000101001:0:1: +-%1hb:+0:0:-1: +-%*1hb:+0:0:-1: +-%1hb:+0B0:0:-1: +-%*1hb:+0B0:0:-1: +-%1hb:+0b0:0:-1: +-%*1hb:+0b0:0:-1: +-%1hb:+1:0:-1: +-%*1hb:+1:0:-1: +-%1hb:+0B1:0:-1: +-%*1hb:+0B1:0:-1: +-%1hb:+0b1:0:-1: +-%*1hb:+0b1:0:-1: +-%1hb:+101010:0:-1: +-%*1hb:+101010:0:-1: +-%1hb:+0B101010:0:-1: +-%*1hb:+0B101010:0:-1: +-%1hb:+0b101010:0:-1: +-%*1hb:+0b101010:0:-1: +-%1hb:+1111111111111111:0:-1: +-%*1hb:+1111111111111111:0:-1: +-%1hb:+0B1111111111111111:0:-1: +-%*1hb:+0B1111111111111111:0:-1: +-%1hb:+0b1111111111111111:0:-1: +-%*1hb:+0b1111111111111111:0:-1: +-%1hb:+10000000000000000:0:-1: +-%*1hb:+10000000000000000:0:-1: +-%1hb:+0B10000000000000000:0:-1: +-%*1hb:+0B10000000000000000:0:-1: +-%1hb:+0b10000000000000000:0:-1: +-%*1hb:+0b10000000000000000:0:-1: +-%1hb:+10000000000101001:0:-1: +-%*1hb:+10000000000101001:0:-1: +-%1hb:+0B10000000000101001:0:-1: +-%*1hb:+0B10000000000101001:0:-1: +-%1hb:+0b10000000000101001:0:-1: +-%*1hb:+0b10000000000101001:0:-1: +-%2hb::0:-1: +-%*2hb::0:-1: +-%2hb:-1111011:1:2:65535: +-%*2hb:-1111011:0:2: +-%2hb:-0B1111011:1:2:0: +-%*2hb:-0B1111011:0:2: +-%2hb:-0b1111011:1:2:0: +-%*2hb:-0b1111011:0:2: +-%2hb:-1:1:2:65535: +-%*2hb:-1:0:2: +-%2hb:-0B1:1:2:0: +-%*2hb:-0B1:0:2: +-%2hb:-0b1:1:2:0: +-%*2hb:-0b1:0:2: +-%2hb:-0:1:2:0: +-%*2hb:-0:0:2: +-%2hb:-0B0:1:2:0: +-%*2hb:-0B0:0:2: +-%2hb:-0b0:1:2:0: +-%*2hb:-0b0:0:2: +-%2hb:0:1:1:0: +-%*2hb:0:0:1: +-# BZ12701 %2hb:0B0:0:-1: +-# BZ12701 %*2hb:0B0:0:-1: +-# BZ12701 %2hb:0b0:0:-1: +-# BZ12701 %*2hb:0b0:0:-1: +-%2hb:1:1:1:1: +-%*2hb:1:0:1: +-# BZ12701 %2hb:0B1:0:-1: +-# BZ12701 %*2hb:0B1:0:-1: +-# BZ12701 %2hb:0b1:0:-1: +-# BZ12701 %*2hb:0b1:0:-1: +-%2hb:101010:1:2:2: +-%*2hb:101010:0:2: +-# BZ12701 %2hb:0B101010:0:-1: +-# BZ12701 %*2hb:0B101010:0:-1: +-# BZ12701 %2hb:0b101010:0:-1: +-# BZ12701 %*2hb:0b101010:0:-1: +-%2hb:1111111111111111:1:2:3: +-%*2hb:1111111111111111:0:2: +-# BZ12701 %2hb:0B1111111111111111:0:-1: +-# BZ12701 %*2hb:0B1111111111111111:0:-1: +-# BZ12701 %2hb:0b1111111111111111:0:-1: +-# BZ12701 %*2hb:0b1111111111111111:0:-1: +-%2hb:10000000000000000:1:2:2: +-%*2hb:10000000000000000:0:2: +-# BZ12701 %2hb:0B10000000000000000:0:-1: +-# BZ12701 %*2hb:0B10000000000000000:0:-1: +-# BZ12701 %2hb:0b10000000000000000:0:-1: +-# BZ12701 %*2hb:0b10000000000000000:0:-1: +-%2hb:10000000000101001:1:2:2: +-%*2hb:10000000000101001:0:2: +-# BZ12701 %2hb:0B10000000000101001:0:-1: +-# BZ12701 %*2hb:0B10000000000101001:0:-1: +-# BZ12701 %2hb:0b10000000000101001:0:-1: +-# BZ12701 %*2hb:0b10000000000101001:0:-1: +-%2hb:+0:1:2:0: +-%*2hb:+0:0:2: +-%2hb:+0B0:1:2:0: +-%*2hb:+0B0:0:2: +-%2hb:+0b0:1:2:0: +-%*2hb:+0b0:0:2: +-%2hb:+1:1:2:1: +-%*2hb:+1:0:2: +-%2hb:+0B1:1:2:0: +-%*2hb:+0B1:0:2: +-%2hb:+0b1:1:2:0: +-%*2hb:+0b1:0:2: +-%2hb:+101010:1:2:1: +-%*2hb:+101010:0:2: +-%2hb:+0B101010:1:2:0: +-%*2hb:+0B101010:0:2: +-%2hb:+0b101010:1:2:0: +-%*2hb:+0b101010:0:2: +-%2hb:+1111111111111111:1:2:1: +-%*2hb:+1111111111111111:0:2: +-%2hb:+0B1111111111111111:1:2:0: +-%*2hb:+0B1111111111111111:0:2: +-%2hb:+0b1111111111111111:1:2:0: +-%*2hb:+0b1111111111111111:0:2: +-%2hb:+10000000000000000:1:2:1: +-%*2hb:+10000000000000000:0:2: +-%2hb:+0B10000000000000000:1:2:0: +-%*2hb:+0B10000000000000000:0:2: +-%2hb:+0b10000000000000000:1:2:0: +-%*2hb:+0b10000000000000000:0:2: +-%2hb:+10000000000101001:1:2:1: +-%*2hb:+10000000000101001:0:2: +-%2hb:+0B10000000000101001:1:2:0: +-%*2hb:+0B10000000000101001:0:2: +-%2hb:+0b10000000000101001:1:2:0: +-%*2hb:+0b10000000000101001:0:2: +-%4hb::0:-1: +-%*4hb::0:-1: +-%4hb:-1111011:1:4:65529: +-%*4hb:-1111011:0:4: +-%4hb:-0B1111011:1:4:65535: +-%*4hb:-0B1111011:0:4: +-%4hb:-0b1111011:1:4:65535: +-%*4hb:-0b1111011:0:4: +-%4hb:-1:1:2:65535: +-%*4hb:-1:0:2: +-%4hb:-0B1:1:4:65535: +-%*4hb:-0B1:0:4: +-%4hb:-0b1:1:4:65535: +-%*4hb:-0b1:0:4: +-%4hb:-0:1:2:0: +-%*4hb:-0:0:2: +-%4hb:-0B0:1:4:0: +-%*4hb:-0B0:0:4: +-%4hb:-0b0:1:4:0: +-%*4hb:-0b0:0:4: +-%4hb:0:1:1:0: +-%*4hb:0:0:1: +-%4hb:0B0:1:3:0: +-%*4hb:0B0:0:3: +-%4hb:0b0:1:3:0: +-%*4hb:0b0:0:3: +-%4hb:1:1:1:1: +-%*4hb:1:0:1: +-%4hb:0B1:1:3:1: +-%*4hb:0B1:0:3: +-%4hb:0b1:1:3:1: +-%*4hb:0b1:0:3: +-%4hb:101010:1:4:10: +-%*4hb:101010:0:4: +-%4hb:0B101010:1:4:2: +-%*4hb:0B101010:0:4: +-%4hb:0b101010:1:4:2: +-%*4hb:0b101010:0:4: +-%4hb:1111111111111111:1:4:15: +-%*4hb:1111111111111111:0:4: +-%4hb:0B1111111111111111:1:4:3: +-%*4hb:0B1111111111111111:0:4: +-%4hb:0b1111111111111111:1:4:3: +-%*4hb:0b1111111111111111:0:4: +-%4hb:10000000000000000:1:4:8: +-%*4hb:10000000000000000:0:4: +-%4hb:0B10000000000000000:1:4:2: +-%*4hb:0B10000000000000000:0:4: +-%4hb:0b10000000000000000:1:4:2: +-%*4hb:0b10000000000000000:0:4: +-%4hb:10000000000101001:1:4:8: +-%*4hb:10000000000101001:0:4: +-%4hb:0B10000000000101001:1:4:2: +-%*4hb:0B10000000000101001:0:4: +-%4hb:0b10000000000101001:1:4:2: +-%*4hb:0b10000000000101001:0:4: +-%4hb:+0:1:2:0: +-%*4hb:+0:0:2: +-%4hb:+0B0:1:4:0: +-%*4hb:+0B0:0:4: +-%4hb:+0b0:1:4:0: +-%*4hb:+0b0:0:4: +-%4hb:+1:1:2:1: +-%*4hb:+1:0:2: +-%4hb:+0B1:1:4:1: +-%*4hb:+0B1:0:4: +-%4hb:+0b1:1:4:1: +-%*4hb:+0b1:0:4: +-%4hb:+101010:1:4:5: +-%*4hb:+101010:0:4: +-%4hb:+0B101010:1:4:1: +-%*4hb:+0B101010:0:4: +-%4hb:+0b101010:1:4:1: +-%*4hb:+0b101010:0:4: +-%4hb:+1111111111111111:1:4:7: +-%*4hb:+1111111111111111:0:4: +-%4hb:+0B1111111111111111:1:4:1: +-%*4hb:+0B1111111111111111:0:4: +-%4hb:+0b1111111111111111:1:4:1: +-%*4hb:+0b1111111111111111:0:4: +-%4hb:+10000000000000000:1:4:4: +-%*4hb:+10000000000000000:0:4: +-%4hb:+0B10000000000000000:1:4:1: +-%*4hb:+0B10000000000000000:0:4: +-%4hb:+0b10000000000000000:1:4:1: +-%*4hb:+0b10000000000000000:0:4: +-%4hb:+10000000000101001:1:4:4: +-%*4hb:+10000000000101001:0:4: +-%4hb:+0B10000000000101001:1:4:1: +-%*4hb:+0B10000000000101001:0:4: +-%4hb:+0b10000000000101001:1:4:1: +-%*4hb:+0b10000000000101001:0:4: +-%7hb::0:-1: +-%*7hb::0:-1: +-%7hb:-1111011:1:7:65475: +-%*7hb:-1111011:0:7: +-%7hb:-0B1111011:1:7:65521: +-%*7hb:-0B1111011:0:7: +-%7hb:-0b1111011:1:7:65521: +-%*7hb:-0b1111011:0:7: +-%7hb:-1:1:2:65535: +-%*7hb:-1:0:2: +-%7hb:-0B1:1:4:65535: +-%*7hb:-0B1:0:4: +-%7hb:-0b1:1:4:65535: +-%*7hb:-0b1:0:4: +-%7hb:-0:1:2:0: +-%*7hb:-0:0:2: +-%7hb:-0B0:1:4:0: +-%*7hb:-0B0:0:4: +-%7hb:-0b0:1:4:0: +-%*7hb:-0b0:0:4: +-%7hb:0:1:1:0: +-%*7hb:0:0:1: +-%7hb:0B0:1:3:0: +-%*7hb:0B0:0:3: +-%7hb:0b0:1:3:0: +-%*7hb:0b0:0:3: +-%7hb:1:1:1:1: +-%*7hb:1:0:1: +-%7hb:0B1:1:3:1: +-%*7hb:0B1:0:3: +-%7hb:0b1:1:3:1: +-%*7hb:0b1:0:3: +-%7hb:101010:1:6:42: +-%*7hb:101010:0:6: +-%7hb:0B101010:1:7:21: +-%*7hb:0B101010:0:7: +-%7hb:0b101010:1:7:21: +-%*7hb:0b101010:0:7: +-%7hb:1111111111111111:1:7:127: +-%*7hb:1111111111111111:0:7: +-%7hb:0B1111111111111111:1:7:31: +-%*7hb:0B1111111111111111:0:7: +-%7hb:0b1111111111111111:1:7:31: +-%*7hb:0b1111111111111111:0:7: +-%7hb:10000000000000000:1:7:64: +-%*7hb:10000000000000000:0:7: +-%7hb:0B10000000000000000:1:7:16: +-%*7hb:0B10000000000000000:0:7: +-%7hb:0b10000000000000000:1:7:16: +-%*7hb:0b10000000000000000:0:7: +-%7hb:10000000000101001:1:7:64: +-%*7hb:10000000000101001:0:7: +-%7hb:0B10000000000101001:1:7:16: +-%*7hb:0B10000000000101001:0:7: +-%7hb:0b10000000000101001:1:7:16: +-%*7hb:0b10000000000101001:0:7: +-%7hb:+0:1:2:0: +-%*7hb:+0:0:2: +-%7hb:+0B0:1:4:0: +-%*7hb:+0B0:0:4: +-%7hb:+0b0:1:4:0: +-%*7hb:+0b0:0:4: +-%7hb:+1:1:2:1: +-%*7hb:+1:0:2: +-%7hb:+0B1:1:4:1: +-%*7hb:+0B1:0:4: +-%7hb:+0b1:1:4:1: +-%*7hb:+0b1:0:4: +-%7hb:+101010:1:7:42: +-%*7hb:+101010:0:7: +-%7hb:+0B101010:1:7:10: +-%*7hb:+0B101010:0:7: +-%7hb:+0b101010:1:7:10: +-%*7hb:+0b101010:0:7: +-%7hb:+1111111111111111:1:7:63: +-%*7hb:+1111111111111111:0:7: +-%7hb:+0B1111111111111111:1:7:15: +-%*7hb:+0B1111111111111111:0:7: +-%7hb:+0b1111111111111111:1:7:15: +-%*7hb:+0b1111111111111111:0:7: +-%7hb:+10000000000000000:1:7:32: +-%*7hb:+10000000000000000:0:7: +-%7hb:+0B10000000000000000:1:7:8: +-%*7hb:+0B10000000000000000:0:7: +-%7hb:+0b10000000000000000:1:7:8: +-%*7hb:+0b10000000000000000:0:7: +-%7hb:+10000000000101001:1:7:32: +-%*7hb:+10000000000101001:0:7: +-%7hb:+0B10000000000101001:1:7:8: +-%*7hb:+0B10000000000101001:0:7: +-%7hb:+0b10000000000101001:1:7:8: +-%*7hb:+0b10000000000101001:0:7: +-%2hb: :0:-1: +-%*2hb: :0:-1: +-%2hb: -1111011:1:3:65535: +-%*2hb: -1111011:0:3: +-%2hb: -0B1111011:1:3:0: +-%*2hb: -0B1111011:0:3: +-%2hb: -0b1111011:1:3:0: +-%*2hb: -0b1111011:0:3: +-%2hb: -1:1:3:65535: +-%*2hb: -1:0:3: +-%2hb: -0B1:1:3:0: +-%*2hb: -0B1:0:3: +-%2hb: -0b1:1:3:0: +-%*2hb: -0b1:0:3: +-%2hb: -0:1:3:0: +-%*2hb: -0:0:3: +-%2hb: -0B0:1:3:0: +-%*2hb: -0B0:0:3: +-%2hb: -0b0:1:3:0: +-%*2hb: -0b0:0:3: +-%2hb: 0:1:2:0: +-%*2hb: 0:0:2: +-# BZ12701 %2hb: 0B0:0:-1: +-# BZ12701 %*2hb: 0B0:0:-1: +-# BZ12701 %2hb: 0b0:0:-1: +-# BZ12701 %*2hb: 0b0:0:-1: +-%2hb: 1:1:2:1: +-%*2hb: 1:0:2: +-# BZ12701 %2hb: 0B1:0:-1: +-# BZ12701 %*2hb: 0B1:0:-1: +-# BZ12701 %2hb: 0b1:0:-1: +-# BZ12701 %*2hb: 0b1:0:-1: +-%2hb: 101010:1:3:2: +-%*2hb: 101010:0:3: +-# BZ12701 %2hb: 0B101010:0:-1: +-# BZ12701 %*2hb: 0B101010:0:-1: +-# BZ12701 %2hb: 0b101010:0:-1: +-# BZ12701 %*2hb: 0b101010:0:-1: +-%2hb: 1111111111111111:1:3:3: +-%*2hb: 1111111111111111:0:3: +-# BZ12701 %2hb: 0B1111111111111111:0:-1: +-# BZ12701 %*2hb: 0B1111111111111111:0:-1: +-# BZ12701 %2hb: 0b1111111111111111:0:-1: +-# BZ12701 %*2hb: 0b1111111111111111:0:-1: +-%2hb: 10000000000000000:1:3:2: +-%*2hb: 10000000000000000:0:3: +-# BZ12701 %2hb: 0B10000000000000000:0:-1: +-# BZ12701 %*2hb: 0B10000000000000000:0:-1: +-# BZ12701 %2hb: 0b10000000000000000:0:-1: +-# BZ12701 %*2hb: 0b10000000000000000:0:-1: +-%2hb: 10000000000101001:1:3:2: +-%*2hb: 10000000000101001:0:3: +-# BZ12701 %2hb: 0B10000000000101001:0:-1: +-# BZ12701 %*2hb: 0B10000000000101001:0:-1: +-# BZ12701 %2hb: 0b10000000000101001:0:-1: +-# BZ12701 %*2hb: 0b10000000000101001:0:-1: +-%2hb: +0:1:3:0: +-%*2hb: +0:0:3: +-%2hb: +0B0:1:3:0: +-%*2hb: +0B0:0:3: +-%2hb: +0b0:1:3:0: +-%*2hb: +0b0:0:3: +-%2hb: +1:1:3:1: +-%*2hb: +1:0:3: +-%2hb: +0B1:1:3:0: +-%*2hb: +0B1:0:3: +-%2hb: +0b1:1:3:0: +-%*2hb: +0b1:0:3: +-%2hb: +101010:1:3:1: +-%*2hb: +101010:0:3: +-%2hb: +0B101010:1:3:0: +-%*2hb: +0B101010:0:3: +-%2hb: +0b101010:1:3:0: +-%*2hb: +0b101010:0:3: +-%2hb: +1111111111111111:1:3:1: +-%*2hb: +1111111111111111:0:3: +-%2hb: +0B1111111111111111:1:3:0: +-%*2hb: +0B1111111111111111:0:3: +-%2hb: +0b1111111111111111:1:3:0: +-%*2hb: +0b1111111111111111:0:3: +-%2hb: +10000000000000000:1:3:1: +-%*2hb: +10000000000000000:0:3: +-%2hb: +0B10000000000000000:1:3:0: +-%*2hb: +0B10000000000000000:0:3: +-%2hb: +0b10000000000000000:1:3:0: +-%*2hb: +0b10000000000000000:0:3: +-%2hb: +10000000000101001:1:3:1: +-%*2hb: +10000000000101001:0:3: +-%2hb: +0B10000000000101001:1:3:0: +-%*2hb: +0B10000000000101001:0:3: +-%2hb: +0b10000000000101001:1:3:0: +-%*2hb: +0b10000000000101001:0:3: +-%7hb: :0:-1: +-%*7hb: :0:-1: +-%7hb: -1111011:1:8:65475: +-%*7hb: -1111011:0:8: +-%7hb: -0B1111011:1:8:65521: +-%*7hb: -0B1111011:0:8: +-%7hb: -0b1111011:1:8:65521: +-%*7hb: -0b1111011:0:8: +-%7hb: -1:1:3:65535: +-%*7hb: -1:0:3: +-%7hb: -0B1:1:5:65535: +-%*7hb: -0B1:0:5: +-%7hb: -0b1:1:5:65535: +-%*7hb: -0b1:0:5: +-%7hb: -0:1:3:0: +-%*7hb: -0:0:3: +-%7hb: -0B0:1:5:0: +-%*7hb: -0B0:0:5: +-%7hb: -0b0:1:5:0: +-%*7hb: -0b0:0:5: +-%7hb: 0:1:2:0: +-%*7hb: 0:0:2: +-%7hb: 0B0:1:4:0: +-%*7hb: 0B0:0:4: +-%7hb: 0b0:1:4:0: +-%*7hb: 0b0:0:4: +-%7hb: 1:1:2:1: +-%*7hb: 1:0:2: +-%7hb: 0B1:1:4:1: +-%*7hb: 0B1:0:4: +-%7hb: 0b1:1:4:1: +-%*7hb: 0b1:0:4: +-%7hb: 101010:1:7:42: +-%*7hb: 101010:0:7: +-%7hb: 0B101010:1:8:21: +-%*7hb: 0B101010:0:8: +-%7hb: 0b101010:1:8:21: +-%*7hb: 0b101010:0:8: +-%7hb: 1111111111111111:1:8:127: +-%*7hb: 1111111111111111:0:8: +-%7hb: 0B1111111111111111:1:8:31: +-%*7hb: 0B1111111111111111:0:8: +-%7hb: 0b1111111111111111:1:8:31: +-%*7hb: 0b1111111111111111:0:8: +-%7hb: 10000000000000000:1:8:64: +-%*7hb: 10000000000000000:0:8: +-%7hb: 0B10000000000000000:1:8:16: +-%*7hb: 0B10000000000000000:0:8: +-%7hb: 0b10000000000000000:1:8:16: +-%*7hb: 0b10000000000000000:0:8: +-%7hb: 10000000000101001:1:8:64: +-%*7hb: 10000000000101001:0:8: +-%7hb: 0B10000000000101001:1:8:16: +-%*7hb: 0B10000000000101001:0:8: +-%7hb: 0b10000000000101001:1:8:16: +-%*7hb: 0b10000000000101001:0:8: +-%7hb: +0:1:3:0: +-%*7hb: +0:0:3: +-%7hb: +0B0:1:5:0: +-%*7hb: +0B0:0:5: +-%7hb: +0b0:1:5:0: +-%*7hb: +0b0:0:5: +-%7hb: +1:1:3:1: +-%*7hb: +1:0:3: +-%7hb: +0B1:1:5:1: +-%*7hb: +0B1:0:5: +-%7hb: +0b1:1:5:1: +-%*7hb: +0b1:0:5: +-%7hb: +101010:1:8:42: +-%*7hb: +101010:0:8: +-%7hb: +0B101010:1:8:10: +-%*7hb: +0B101010:0:8: +-%7hb: +0b101010:1:8:10: +-%*7hb: +0b101010:0:8: +-%7hb: +1111111111111111:1:8:63: +-%*7hb: +1111111111111111:0:8: +-%7hb: +0B1111111111111111:1:8:15: +-%*7hb: +0B1111111111111111:0:8: +-%7hb: +0b1111111111111111:1:8:15: +-%*7hb: +0b1111111111111111:0:8: +-%7hb: +10000000000000000:1:8:32: +-%*7hb: +10000000000000000:0:8: +-%7hb: +0B10000000000000000:1:8:8: +-%*7hb: +0B10000000000000000:0:8: +-%7hb: +0b10000000000000000:1:8:8: +-%*7hb: +0b10000000000000000:0:8: +-%7hb: +10000000000101001:1:8:32: +-%*7hb: +10000000000101001:0:8: +-%7hb: +0B10000000000101001:1:8:8: +-%*7hb: +0B10000000000101001:0:8: +-%7hb: +0b10000000000101001:1:8:8: +-%*7hb: +0b10000000000101001:0:8: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input +index 9d50b08b0b7aed3a..f25c8b68fbd2e1f2 100644 +--- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input +@@ -16,14 +16,14 @@ + %*la:-0x0p+0:0:7: + %la:-0x0p0:1:6:-0x0: + %*la:-0x0p0:0:6: +-%la:-nan(09A_Zaz):1:13:-nan: +-%*la:-nan(09A_Zaz):0:13: +-%la:-nan():1:6:-nan: +-%*la:-nan():0:6: +-%la:nan():1:5:nan: +-%*la:nan():0:5: +-%la:nan(09A_Zaz):1:12:nan: +-%*la:nan(09A_Zaz):0:12: ++# BZ30647 %la:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*la:-nan(09A_Zaz):0:13: ++# BZ30647 %la:-nan():1:6:-nan: ++# BZ30647 %*la:-nan():0:6: ++# BZ30647 %la:nan():1:5:nan: ++# BZ30647 %*la:nan():0:5: ++# BZ30647 %la:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*la:nan(09A_Zaz):0:12: + %la:0x0p0:1:5:0x0: + %*la:0x0p0:0:5: + %la:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*la:0xf.ffffffffffff8p+1020:0:23: + %la:infinity:1:8:inf: + %*la:infinity:0:8: +-%la:+nan():1:6:nan: +-%*la:+nan():0:6: +-%la:+nan(09A_Zaz):1:13:nan: +-%*la:+nan(09A_Zaz):0:13: ++# BZ30647 %la:+nan():1:6:nan: ++# BZ30647 %*la:+nan():0:6: ++# BZ30647 %la:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*la:+nan(09A_Zaz):0:13: + %la:+0x0p0:1:6:0x0: + %*la:+0x0p0:0:6: + %la:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1la:-0x0p+0:0:-1: + %1la:-0x0p0:0:-1: + %*1la:-0x0p0:0:-1: +-%1la:-nan(09A_Zaz):0:-1: +-%*1la:-nan(09A_Zaz):0:-1: +-%1la:-nan():0:-1: +-%*1la:-nan():0:-1: +-%1la:nan():0:-1: +-%*1la:nan():0:-1: +-%1la:nan(09A_Zaz):0:-1: +-%*1la:nan(09A_Zaz):0:-1: ++# BZ30647 %1la:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1la:-nan(09A_Zaz):0:-1: ++# BZ30647 %1la:-nan():0:-1: ++# BZ30647 %*1la:-nan():0:-1: ++# BZ30647 %1la:nan():0:-1: ++# BZ30647 %*1la:nan():0:-1: ++# BZ30647 %1la:nan(09A_Zaz):0:-1: ++# BZ30647 %*1la:nan(09A_Zaz):0:-1: + %1la:0x0p0:1:1:0x0: + %*1la:0x0p0:0:1: + %1la:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1la:0xf.ffffffffffff8p+1020:0:1: + %1la:infinity:0:-1: + %*1la:infinity:0:-1: +-%1la:+nan():0:-1: +-%*1la:+nan():0:-1: +-%1la:+nan(09A_Zaz):0:-1: +-%*1la:+nan(09A_Zaz):0:-1: ++# BZ30647 %1la:+nan():0:-1: ++# BZ30647 %*1la:+nan():0:-1: ++# BZ30647 %1la:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1la:+nan(09A_Zaz):0:-1: + %1la:+0x0p0:0:-1: + %*1la:+0x0p0:0:-1: + %1la:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2la:-0x0p+0:0:2: + %2la:-0x0p0:1:2:-0x0: + %*2la:-0x0p0:0:2: +-%2la:-nan(09A_Zaz):0:-1: +-%*2la:-nan(09A_Zaz):0:-1: +-%2la:-nan():0:-1: +-%*2la:-nan():0:-1: +-%2la:nan():0:-1: +-%*2la:nan():0:-1: +-%2la:nan(09A_Zaz):0:-1: +-%*2la:nan(09A_Zaz):0:-1: ++# BZ30647 %2la:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2la:-nan(09A_Zaz):0:-1: ++# BZ30647 %2la:-nan():0:-1: ++# BZ30647 %*2la:-nan():0:-1: ++# BZ30647 %2la:nan():0:-1: ++# BZ30647 %*2la:nan():0:-1: ++# BZ30647 %2la:nan(09A_Zaz):0:-1: ++# BZ30647 %*2la:nan(09A_Zaz):0:-1: + # BZ12701 %2la:0x0p0:0:-1: + # BZ12701 %*2la:0x0p0:0:-1: + # BZ12701 %2la:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2la:0xf.ffffffffffff8p+1020:0:-1: + %2la:infinity:0:-1: + %*2la:infinity:0:-1: +-%2la:+nan():0:-1: +-%*2la:+nan():0:-1: +-%2la:+nan(09A_Zaz):0:-1: +-%*2la:+nan(09A_Zaz):0:-1: ++# BZ30647 %2la:+nan():0:-1: ++# BZ30647 %*2la:+nan():0:-1: ++# BZ30647 %2la:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2la:+nan(09A_Zaz):0:-1: + %2la:+0x0p0:1:2:0x0: + %*2la:+0x0p0:0:2: + %2la:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3la:-0x0p+0:0:-1: + # BZ12701 %3la:-0x0p0:0:-1: + # BZ12701 %*3la:-0x0p0:0:-1: +-%3la:-nan(09A_Zaz):0:-1: +-%*3la:-nan(09A_Zaz):0:-1: +-%3la:-nan():0:-1: +-%*3la:-nan():0:-1: +-%3la:nan():1:3:nan: +-%*3la:nan():0:3: +-%3la:nan(09A_Zaz):1:3:nan: +-%*3la:nan(09A_Zaz):0:3: ++# BZ30647 %3la:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3la:-nan(09A_Zaz):0:-1: ++# BZ30647 %3la:-nan():0:-1: ++# BZ30647 %*3la:-nan():0:-1: ++# BZ30647 %3la:nan():1:3:nan: ++# BZ30647 %*3la:nan():0:3: ++# BZ30647 %3la:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3la:nan(09A_Zaz):0:3: + %3la:0x0p0:1:3:0x0: + %*3la:0x0p0:0:3: + %3la:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3la:0xf.ffffffffffff8p+1020:0:3: + %3la:infinity:1:3:inf: + %*3la:infinity:0:3: +-%3la:+nan():0:-1: +-%*3la:+nan():0:-1: +-%3la:+nan(09A_Zaz):0:-1: +-%*3la:+nan(09A_Zaz):0:-1: ++# BZ30647 %3la:+nan():0:-1: ++# BZ30647 %*3la:+nan():0:-1: ++# BZ30647 %3la:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3la:+nan(09A_Zaz):0:-1: + # BZ12701 %3la:+0x0p0:0:-1: + # BZ12701 %*3la:+0x0p0:0:-1: + # BZ12701 %3la:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4la:-0x0p+0:0:4: + %4la:-0x0p0:1:4:-0x0: + %*4la:-0x0p0:0:4: +-%4la:-nan(09A_Zaz):1:4:-nan: +-%*4la:-nan(09A_Zaz):0:4: +-%4la:-nan():1:4:-nan: +-%*4la:-nan():0:4: +-%4la:nan():0:-1: +-%*4la:nan():0:-1: +-%4la:nan(09A_Zaz):0:-1: +-%*4la:nan(09A_Zaz):0:-1: ++# BZ30647 %4la:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4la:-nan(09A_Zaz):0:4: ++# BZ30647 %4la:-nan():1:4:-nan: ++# BZ30647 %*4la:-nan():0:4: ++# BZ30647 %4la:nan():0:-1: ++# BZ30647 %*4la:nan():0:-1: ++# BZ30647 %4la:nan(09A_Zaz):0:-1: ++# BZ30647 %*4la:nan(09A_Zaz):0:-1: + # BZ12701 %4la:0x0p0:0:-1: + # BZ12701 %*4la:0x0p0:0:-1: + # BZ12701 %4la:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4la:0xf.ffffffffffff8p+1020:0:4: + %4la:infinity:0:-1: + %*4la:infinity:0:-1: +-%4la:+nan():1:4:nan: +-%*4la:+nan():0:4: +-%4la:+nan(09A_Zaz):1:4:nan: +-%*4la:+nan(09A_Zaz):0:4: ++# BZ30647 %4la:+nan():1:4:nan: ++# BZ30647 %*4la:+nan():0:4: ++# BZ30647 %4la:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4la:+nan(09A_Zaz):0:4: + %4la:+0x0p0:1:4:0x0: + %*4la:+0x0p0:0:4: + %4la:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5la:-0x0p+0:0:-1: + # BZ12701 %5la:-0x0p0:0:-1: + # BZ12701 %*5la:-0x0p0:0:-1: +-%5la:-nan(09A_Zaz):0:-1: +-%*5la:-nan(09A_Zaz):0:-1: +-%5la:-nan():0:-1: +-%*5la:-nan():0:-1: +-%5la:nan():1:5:nan: +-%*5la:nan():0:5: +-%5la:nan(09A_Zaz):0:-1: +-%*5la:nan(09A_Zaz):0:-1: ++# BZ30647 %5la:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5la:-nan(09A_Zaz):0:-1: ++# BZ30647 %5la:-nan():0:-1: ++# BZ30647 %*5la:-nan():0:-1: ++# BZ30647 %5la:nan():1:5:nan: ++# BZ30647 %*5la:nan():0:5: ++# BZ30647 %5la:nan(09A_Zaz):0:-1: ++# BZ30647 %*5la:nan(09A_Zaz):0:-1: + %5la:0x0p0:1:5:0x0: + %*5la:0x0p0:0:5: + # BZ12701 %5la:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5la:0xf.ffffffffffff8p+1020:0:5: + %5la:infinity:0:-1: + %*5la:infinity:0:-1: +-%5la:+nan():0:-1: +-%*5la:+nan():0:-1: +-%5la:+nan(09A_Zaz):0:-1: +-%*5la:+nan(09A_Zaz):0:-1: ++# BZ30647 %5la:+nan():0:-1: ++# BZ30647 %*5la:+nan():0:-1: ++# BZ30647 %5la:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5la:+nan(09A_Zaz):0:-1: + # BZ12701 %5la:+0x0p0:0:-1: + # BZ12701 %*5la:+0x0p0:0:-1: + # BZ12701 %5la:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6la:-0x0p+0:0:-1: + %6la:-0x0p0:1:6:-0x0: + %*6la:-0x0p0:0:6: +-%6la:-nan(09A_Zaz):0:-1: +-%*6la:-nan(09A_Zaz):0:-1: +-%6la:-nan():1:6:-nan: +-%*6la:-nan():0:6: +-%6la:nan():1:5:nan: +-%*6la:nan():0:5: +-%6la:nan(09A_Zaz):0:-1: +-%*6la:nan(09A_Zaz):0:-1: ++# BZ30647 %6la:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6la:-nan(09A_Zaz):0:-1: ++# BZ30647 %6la:-nan():1:6:-nan: ++# BZ30647 %*6la:-nan():0:6: ++# BZ30647 %6la:nan():1:5:nan: ++# BZ30647 %*6la:nan():0:5: ++# BZ30647 %6la:nan(09A_Zaz):0:-1: ++# BZ30647 %*6la:nan(09A_Zaz):0:-1: + %6la:0x0p0:1:5:0x0: + %*6la:0x0p0:0:5: + %6la:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6la:0xf.ffffffffffff8p+1020:0:6: + %6la:infinity:0:-1: + %*6la:infinity:0:-1: +-%6la:+nan():1:6:nan: +-%*6la:+nan():0:6: +-%6la:+nan(09A_Zaz):0:-1: +-%*6la:+nan(09A_Zaz):0:-1: ++# BZ30647 %6la:+nan():1:6:nan: ++# BZ30647 %*6la:+nan():0:6: ++# BZ30647 %6la:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6la:+nan(09A_Zaz):0:-1: + %6la:+0x0p0:1:6:0x0: + %*6la:+0x0p0:0:6: + # BZ12701 %6la:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*20la:-0x0p+0:0:7: + %20la:-0x0p0:1:6:-0x0: + %*20la:-0x0p0:0:6: +-%20la:-nan(09A_Zaz):1:13:-nan: +-%*20la:-nan(09A_Zaz):0:13: +-%20la:-nan():1:6:-nan: +-%*20la:-nan():0:6: +-%20la:nan():1:5:nan: +-%*20la:nan():0:5: +-%20la:nan(09A_Zaz):1:12:nan: +-%*20la:nan(09A_Zaz):0:12: ++# BZ30647 %20la:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*20la:-nan(09A_Zaz):0:13: ++# BZ30647 %20la:-nan():1:6:-nan: ++# BZ30647 %*20la:-nan():0:6: ++# BZ30647 %20la:nan():1:5:nan: ++# BZ30647 %*20la:nan():0:5: ++# BZ30647 %20la:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*20la:nan(09A_Zaz):0:12: + %20la:0x0p0:1:5:0x0: + %*20la:0x0p0:0:5: + %20la:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*20la:0xf.ffffffffffff8p+1020:0:20: + %20la:infinity:1:8:inf: + %*20la:infinity:0:8: +-%20la:+nan():1:6:nan: +-%*20la:+nan():0:6: +-%20la:+nan(09A_Zaz):1:13:nan: +-%*20la:+nan(09A_Zaz):0:13: ++# BZ30647 %20la:+nan():1:6:nan: ++# BZ30647 %*20la:+nan():0:6: ++# BZ30647 %20la:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*20la:+nan(09A_Zaz):0:13: + %20la:+0x0p0:1:6:0x0: + %*20la:+0x0p0:0:6: + %20la:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*32la:-0x0p+0:0:7: + %32la:-0x0p0:1:6:-0x0: + %*32la:-0x0p0:0:6: +-%32la:-nan(09A_Zaz):1:13:-nan: +-%*32la:-nan(09A_Zaz):0:13: +-%32la:-nan():1:6:-nan: +-%*32la:-nan():0:6: +-%32la:nan():1:5:nan: +-%*32la:nan():0:5: +-%32la:nan(09A_Zaz):1:12:nan: +-%*32la:nan(09A_Zaz):0:12: ++# BZ30647 %32la:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*32la:-nan(09A_Zaz):0:13: ++# BZ30647 %32la:-nan():1:6:-nan: ++# BZ30647 %*32la:-nan():0:6: ++# BZ30647 %32la:nan():1:5:nan: ++# BZ30647 %*32la:nan():0:5: ++# BZ30647 %32la:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*32la:nan(09A_Zaz):0:12: + %32la:0x0p0:1:5:0x0: + %*32la:0x0p0:0:5: + %32la:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*32la:0xf.ffffffffffff8p+1020:0:23: + %32la:infinity:1:8:inf: + %*32la:infinity:0:8: +-%32la:+nan():1:6:nan: +-%*32la:+nan():0:6: +-%32la:+nan(09A_Zaz):1:13:nan: +-%*32la:+nan(09A_Zaz):0:13: ++# BZ30647 %32la:+nan():1:6:nan: ++# BZ30647 %*32la:+nan():0:6: ++# BZ30647 %32la:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*32la:+nan(09A_Zaz):0:13: + %32la:+0x0p0:1:6:0x0: + %*32la:+0x0p0:0:6: + %32la:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5la: -0x0p+0:0:-1: + # BZ12701 %5la: -0x0p0:0:-1: + # BZ12701 %*5la: -0x0p0:0:-1: +-%5la: -nan(09A_Zaz):0:-1: +-%*5la: -nan(09A_Zaz):0:-1: +-%5la: -nan():0:-1: +-%*5la: -nan():0:-1: +-%5la: nan():1:6:nan: +-%*5la: nan():0:6: +-%5la: nan(09A_Zaz):0:-1: +-%*5la: nan(09A_Zaz):0:-1: ++# BZ30647 %5la: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5la: -nan(09A_Zaz):0:-1: ++# BZ30647 %5la: -nan():0:-1: ++# BZ30647 %*5la: -nan():0:-1: ++# BZ30647 %5la: nan():1:6:nan: ++# BZ30647 %*5la: nan():0:6: ++# BZ30647 %5la: nan(09A_Zaz):0:-1: ++# BZ30647 %*5la: nan(09A_Zaz):0:-1: + %5la: 0x0p0:1:6:0x0: + %*5la: 0x0p0:0:6: + # BZ12701 %5la: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5la: 0xf.ffffffffffff8p+1020:0:6: + %5la: infinity:0:-1: + %*5la: infinity:0:-1: +-%5la: +nan():0:-1: +-%*5la: +nan():0:-1: +-%5la: +nan(09A_Zaz):0:-1: +-%*5la: +nan(09A_Zaz):0:-1: ++# BZ30647 %5la: +nan():0:-1: ++# BZ30647 %*5la: +nan():0:-1: ++# BZ30647 %5la: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5la: +nan(09A_Zaz):0:-1: + # BZ12701 %5la: +0x0p0:0:-1: + # BZ12701 %*5la: +0x0p0:0:-1: + # BZ12701 %5la: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*32la: -0x0p+0:0:8: + %32la: -0x0p0:1:7:-0x0: + %*32la: -0x0p0:0:7: +-%32la: -nan(09A_Zaz):1:14:-nan: +-%*32la: -nan(09A_Zaz):0:14: +-%32la: -nan():1:7:-nan: +-%*32la: -nan():0:7: +-%32la: nan():1:6:nan: +-%*32la: nan():0:6: +-%32la: nan(09A_Zaz):1:13:nan: +-%*32la: nan(09A_Zaz):0:13: ++# BZ30647 %32la: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*32la: -nan(09A_Zaz):0:14: ++# BZ30647 %32la: -nan():1:7:-nan: ++# BZ30647 %*32la: -nan():0:7: ++# BZ30647 %32la: nan():1:6:nan: ++# BZ30647 %*32la: nan():0:6: ++# BZ30647 %32la: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*32la: nan(09A_Zaz):0:13: + %32la: 0x0p0:1:6:0x0: + %*32la: 0x0p0:0:6: + %32la: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*32la: 0xf.ffffffffffff8p+1020:0:24: + %32la: infinity:1:9:inf: + %*32la: infinity:0:9: +-%32la: +nan():1:7:nan: +-%*32la: +nan():0:7: +-%32la: +nan(09A_Zaz):1:14:nan: +-%*32la: +nan(09A_Zaz):0:14: ++# BZ30647 %32la: +nan():1:7:nan: ++# BZ30647 %*32la: +nan():0:7: ++# BZ30647 %32la: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*32la: +nan(09A_Zaz):0:14: + %32la: +0x0p0:1:7:0x0: + %*32la: +0x0p0:0:7: + %32la: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input +index 3b5a4fe81268339e..adf5b3dd4e72e7eb 100644 +--- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input +@@ -16,14 +16,14 @@ + %*lA:-0X0P+0:0:7: + %lA:-0X0P0:1:6:-0x0: + %*lA:-0X0P0:0:6: +-%lA:-NAN(09A_Zaz):1:13:-nan: +-%*lA:-NAN(09A_Zaz):0:13: +-%lA:-NAN():1:6:-nan: +-%*lA:-NAN():0:6: +-%lA:NAN():1:5:nan: +-%*lA:NAN():0:5: +-%lA:NAN(09A_Zaz):1:12:nan: +-%*lA:NAN(09A_Zaz):0:12: ++# BZ30647 %lA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*lA:-NAN(09A_Zaz):0:13: ++# BZ30647 %lA:-NAN():1:6:-nan: ++# BZ30647 %*lA:-NAN():0:6: ++# BZ30647 %lA:NAN():1:5:nan: ++# BZ30647 %*lA:NAN():0:5: ++# BZ30647 %lA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*lA:NAN(09A_Zaz):0:12: + %lA:0X0P0:1:5:0x0: + %*lA:0X0P0:0:5: + %lA:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*lA:0XF.FFFFFFFFFFFF8P+1020:0:23: + %lA:INFINITY:1:8:inf: + %*lA:INFINITY:0:8: +-%lA:+NAN():1:6:nan: +-%*lA:+NAN():0:6: +-%lA:+NAN(09A_Zaz):1:13:nan: +-%*lA:+NAN(09A_Zaz):0:13: ++# BZ30647 %lA:+NAN():1:6:nan: ++# BZ30647 %*lA:+NAN():0:6: ++# BZ30647 %lA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*lA:+NAN(09A_Zaz):0:13: + %lA:+0X0P0:1:6:0x0: + %*lA:+0X0P0:0:6: + %lA:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1lA:-0X0P+0:0:-1: + %1lA:-0X0P0:0:-1: + %*1lA:-0X0P0:0:-1: +-%1lA:-NAN(09A_Zaz):0:-1: +-%*1lA:-NAN(09A_Zaz):0:-1: +-%1lA:-NAN():0:-1: +-%*1lA:-NAN():0:-1: +-%1lA:NAN():0:-1: +-%*1lA:NAN():0:-1: +-%1lA:NAN(09A_Zaz):0:-1: +-%*1lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %1lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1lA:-NAN():0:-1: ++# BZ30647 %*1lA:-NAN():0:-1: ++# BZ30647 %1lA:NAN():0:-1: ++# BZ30647 %*1lA:NAN():0:-1: ++# BZ30647 %1lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lA:NAN(09A_Zaz):0:-1: + %1lA:0X0P0:1:1:0x0: + %*1lA:0X0P0:0:1: + %1lA:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1lA:0XF.FFFFFFFFFFFF8P+1020:0:1: + %1lA:INFINITY:0:-1: + %*1lA:INFINITY:0:-1: +-%1lA:+NAN():0:-1: +-%*1lA:+NAN():0:-1: +-%1lA:+NAN(09A_Zaz):0:-1: +-%*1lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1lA:+NAN():0:-1: ++# BZ30647 %*1lA:+NAN():0:-1: ++# BZ30647 %1lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lA:+NAN(09A_Zaz):0:-1: + %1lA:+0X0P0:0:-1: + %*1lA:+0X0P0:0:-1: + %1lA:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2lA:-0X0P+0:0:2: + %2lA:-0X0P0:1:2:-0x0: + %*2lA:-0X0P0:0:2: +-%2lA:-NAN(09A_Zaz):0:-1: +-%*2lA:-NAN(09A_Zaz):0:-1: +-%2lA:-NAN():0:-1: +-%*2lA:-NAN():0:-1: +-%2lA:NAN():0:-1: +-%*2lA:NAN():0:-1: +-%2lA:NAN(09A_Zaz):0:-1: +-%*2lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %2lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2lA:-NAN():0:-1: ++# BZ30647 %*2lA:-NAN():0:-1: ++# BZ30647 %2lA:NAN():0:-1: ++# BZ30647 %*2lA:NAN():0:-1: ++# BZ30647 %2lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lA:NAN(09A_Zaz):0:-1: + # BZ12701 %2lA:0X0P0:0:-1: + # BZ12701 %*2lA:0X0P0:0:-1: + # BZ12701 %2lA:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2lA:0XF.FFFFFFFFFFFF8P+1020:0:-1: + %2lA:INFINITY:0:-1: + %*2lA:INFINITY:0:-1: +-%2lA:+NAN():0:-1: +-%*2lA:+NAN():0:-1: +-%2lA:+NAN(09A_Zaz):0:-1: +-%*2lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2lA:+NAN():0:-1: ++# BZ30647 %*2lA:+NAN():0:-1: ++# BZ30647 %2lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lA:+NAN(09A_Zaz):0:-1: + %2lA:+0X0P0:1:2:0x0: + %*2lA:+0X0P0:0:2: + %2lA:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3lA:-0X0P+0:0:-1: + # BZ12701 %3lA:-0X0P0:0:-1: + # BZ12701 %*3lA:-0X0P0:0:-1: +-%3lA:-NAN(09A_Zaz):0:-1: +-%*3lA:-NAN(09A_Zaz):0:-1: +-%3lA:-NAN():0:-1: +-%*3lA:-NAN():0:-1: +-%3lA:NAN():1:3:nan: +-%*3lA:NAN():0:3: +-%3lA:NAN(09A_Zaz):1:3:nan: +-%*3lA:NAN(09A_Zaz):0:3: ++# BZ30647 %3lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3lA:-NAN():0:-1: ++# BZ30647 %*3lA:-NAN():0:-1: ++# BZ30647 %3lA:NAN():1:3:nan: ++# BZ30647 %*3lA:NAN():0:3: ++# BZ30647 %3lA:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3lA:NAN(09A_Zaz):0:3: + %3lA:0X0P0:1:3:0x0: + %*3lA:0X0P0:0:3: + %3lA:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3lA:0XF.FFFFFFFFFFFF8P+1020:0:3: + %3lA:INFINITY:1:3:inf: + %*3lA:INFINITY:0:3: +-%3lA:+NAN():0:-1: +-%*3lA:+NAN():0:-1: +-%3lA:+NAN(09A_Zaz):0:-1: +-%*3lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3lA:+NAN():0:-1: ++# BZ30647 %*3lA:+NAN():0:-1: ++# BZ30647 %3lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lA:+NAN(09A_Zaz):0:-1: + # BZ12701 %3lA:+0X0P0:0:-1: + # BZ12701 %*3lA:+0X0P0:0:-1: + # BZ12701 %3lA:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4lA:-0X0P+0:0:4: + %4lA:-0X0P0:1:4:-0x0: + %*4lA:-0X0P0:0:4: +-%4lA:-NAN(09A_Zaz):1:4:-nan: +-%*4lA:-NAN(09A_Zaz):0:4: +-%4lA:-NAN():1:4:-nan: +-%*4lA:-NAN():0:4: +-%4lA:NAN():0:-1: +-%*4lA:NAN():0:-1: +-%4lA:NAN(09A_Zaz):0:-1: +-%*4lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %4lA:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4lA:-NAN(09A_Zaz):0:4: ++# BZ30647 %4lA:-NAN():1:4:-nan: ++# BZ30647 %*4lA:-NAN():0:4: ++# BZ30647 %4lA:NAN():0:-1: ++# BZ30647 %*4lA:NAN():0:-1: ++# BZ30647 %4lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4lA:NAN(09A_Zaz):0:-1: + # BZ12701 %4lA:0X0P0:0:-1: + # BZ12701 %*4lA:0X0P0:0:-1: + # BZ12701 %4lA:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4lA:0XF.FFFFFFFFFFFF8P+1020:0:4: + %4lA:INFINITY:0:-1: + %*4lA:INFINITY:0:-1: +-%4lA:+NAN():1:4:nan: +-%*4lA:+NAN():0:4: +-%4lA:+NAN(09A_Zaz):1:4:nan: +-%*4lA:+NAN(09A_Zaz):0:4: ++# BZ30647 %4lA:+NAN():1:4:nan: ++# BZ30647 %*4lA:+NAN():0:4: ++# BZ30647 %4lA:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4lA:+NAN(09A_Zaz):0:4: + %4lA:+0X0P0:1:4:0x0: + %*4lA:+0X0P0:0:4: + %4lA:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5lA:-0X0P+0:0:-1: + # BZ12701 %5lA:-0X0P0:0:-1: + # BZ12701 %*5lA:-0X0P0:0:-1: +-%5lA:-NAN(09A_Zaz):0:-1: +-%*5lA:-NAN(09A_Zaz):0:-1: +-%5lA:-NAN():0:-1: +-%*5lA:-NAN():0:-1: +-%5lA:NAN():1:5:nan: +-%*5lA:NAN():0:5: +-%5lA:NAN(09A_Zaz):0:-1: +-%*5lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %5lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5lA:-NAN():0:-1: ++# BZ30647 %*5lA:-NAN():0:-1: ++# BZ30647 %5lA:NAN():1:5:nan: ++# BZ30647 %*5lA:NAN():0:5: ++# BZ30647 %5lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lA:NAN(09A_Zaz):0:-1: + %5lA:0X0P0:1:5:0x0: + %*5lA:0X0P0:0:5: + # BZ12701 %5lA:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5lA:0XF.FFFFFFFFFFFF8P+1020:0:5: + %5lA:INFINITY:0:-1: + %*5lA:INFINITY:0:-1: +-%5lA:+NAN():0:-1: +-%*5lA:+NAN():0:-1: +-%5lA:+NAN(09A_Zaz):0:-1: +-%*5lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5lA:+NAN():0:-1: ++# BZ30647 %*5lA:+NAN():0:-1: ++# BZ30647 %5lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lA:+NAN(09A_Zaz):0:-1: + # BZ12701 %5lA:+0X0P0:0:-1: + # BZ12701 %*5lA:+0X0P0:0:-1: + # BZ12701 %5lA:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6lA:-0X0P+0:0:-1: + %6lA:-0X0P0:1:6:-0x0: + %*6lA:-0X0P0:0:6: +-%6lA:-NAN(09A_Zaz):0:-1: +-%*6lA:-NAN(09A_Zaz):0:-1: +-%6lA:-NAN():1:6:-nan: +-%*6lA:-NAN():0:6: +-%6lA:NAN():1:5:nan: +-%*6lA:NAN():0:5: +-%6lA:NAN(09A_Zaz):0:-1: +-%*6lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %6lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6lA:-NAN():1:6:-nan: ++# BZ30647 %*6lA:-NAN():0:6: ++# BZ30647 %6lA:NAN():1:5:nan: ++# BZ30647 %*6lA:NAN():0:5: ++# BZ30647 %6lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6lA:NAN(09A_Zaz):0:-1: + %6lA:0X0P0:1:5:0x0: + %*6lA:0X0P0:0:5: + %6lA:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6lA:0XF.FFFFFFFFFFFF8P+1020:0:6: + %6lA:INFINITY:0:-1: + %*6lA:INFINITY:0:-1: +-%6lA:+NAN():1:6:nan: +-%*6lA:+NAN():0:6: +-%6lA:+NAN(09A_Zaz):0:-1: +-%*6lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6lA:+NAN():1:6:nan: ++# BZ30647 %*6lA:+NAN():0:6: ++# BZ30647 %6lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6lA:+NAN(09A_Zaz):0:-1: + %6lA:+0X0P0:1:6:0x0: + %*6lA:+0X0P0:0:6: + # BZ12701 %6lA:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*20lA:-0X0P+0:0:7: + %20lA:-0X0P0:1:6:-0x0: + %*20lA:-0X0P0:0:6: +-%20lA:-NAN(09A_Zaz):1:13:-nan: +-%*20lA:-NAN(09A_Zaz):0:13: +-%20lA:-NAN():1:6:-nan: +-%*20lA:-NAN():0:6: +-%20lA:NAN():1:5:nan: +-%*20lA:NAN():0:5: +-%20lA:NAN(09A_Zaz):1:12:nan: +-%*20lA:NAN(09A_Zaz):0:12: ++# BZ30647 %20lA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*20lA:-NAN(09A_Zaz):0:13: ++# BZ30647 %20lA:-NAN():1:6:-nan: ++# BZ30647 %*20lA:-NAN():0:6: ++# BZ30647 %20lA:NAN():1:5:nan: ++# BZ30647 %*20lA:NAN():0:5: ++# BZ30647 %20lA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*20lA:NAN(09A_Zaz):0:12: + %20lA:0X0P0:1:5:0x0: + %*20lA:0X0P0:0:5: + %20lA:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*20lA:0XF.FFFFFFFFFFFF8P+1020:0:20: + %20lA:INFINITY:1:8:inf: + %*20lA:INFINITY:0:8: +-%20lA:+NAN():1:6:nan: +-%*20lA:+NAN():0:6: +-%20lA:+NAN(09A_Zaz):1:13:nan: +-%*20lA:+NAN(09A_Zaz):0:13: ++# BZ30647 %20lA:+NAN():1:6:nan: ++# BZ30647 %*20lA:+NAN():0:6: ++# BZ30647 %20lA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*20lA:+NAN(09A_Zaz):0:13: + %20lA:+0X0P0:1:6:0x0: + %*20lA:+0X0P0:0:6: + %20lA:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*32lA:-0X0P+0:0:7: + %32lA:-0X0P0:1:6:-0x0: + %*32lA:-0X0P0:0:6: +-%32lA:-NAN(09A_Zaz):1:13:-nan: +-%*32lA:-NAN(09A_Zaz):0:13: +-%32lA:-NAN():1:6:-nan: +-%*32lA:-NAN():0:6: +-%32lA:NAN():1:5:nan: +-%*32lA:NAN():0:5: +-%32lA:NAN(09A_Zaz):1:12:nan: +-%*32lA:NAN(09A_Zaz):0:12: ++# BZ30647 %32lA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*32lA:-NAN(09A_Zaz):0:13: ++# BZ30647 %32lA:-NAN():1:6:-nan: ++# BZ30647 %*32lA:-NAN():0:6: ++# BZ30647 %32lA:NAN():1:5:nan: ++# BZ30647 %*32lA:NAN():0:5: ++# BZ30647 %32lA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*32lA:NAN(09A_Zaz):0:12: + %32lA:0X0P0:1:5:0x0: + %*32lA:0X0P0:0:5: + %32lA:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*32lA:0XF.FFFFFFFFFFFF8P+1020:0:23: + %32lA:INFINITY:1:8:inf: + %*32lA:INFINITY:0:8: +-%32lA:+NAN():1:6:nan: +-%*32lA:+NAN():0:6: +-%32lA:+NAN(09A_Zaz):1:13:nan: +-%*32lA:+NAN(09A_Zaz):0:13: ++# BZ30647 %32lA:+NAN():1:6:nan: ++# BZ30647 %*32lA:+NAN():0:6: ++# BZ30647 %32lA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*32lA:+NAN(09A_Zaz):0:13: + %32lA:+0X0P0:1:6:0x0: + %*32lA:+0X0P0:0:6: + %32lA:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5lA: -0X0P+0:0:-1: + # BZ12701 %5lA: -0X0P0:0:-1: + # BZ12701 %*5lA: -0X0P0:0:-1: +-%5lA: -NAN(09A_Zaz):0:-1: +-%*5lA: -NAN(09A_Zaz):0:-1: +-%5lA: -NAN():0:-1: +-%*5lA: -NAN():0:-1: +-%5lA: NAN():1:6:nan: +-%*5lA: NAN():0:6: +-%5lA: NAN(09A_Zaz):0:-1: +-%*5lA: NAN(09A_Zaz):0:-1: ++# BZ30647 %5lA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5lA: -NAN():0:-1: ++# BZ30647 %*5lA: -NAN():0:-1: ++# BZ30647 %5lA: NAN():1:6:nan: ++# BZ30647 %*5lA: NAN():0:6: ++# BZ30647 %5lA: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lA: NAN(09A_Zaz):0:-1: + %5lA: 0X0P0:1:6:0x0: + %*5lA: 0X0P0:0:6: + # BZ12701 %5lA: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5lA: 0XF.FFFFFFFFFFFF8P+1020:0:6: + %5lA: INFINITY:0:-1: + %*5lA: INFINITY:0:-1: +-%5lA: +NAN():0:-1: +-%*5lA: +NAN():0:-1: +-%5lA: +NAN(09A_Zaz):0:-1: +-%*5lA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5lA: +NAN():0:-1: ++# BZ30647 %*5lA: +NAN():0:-1: ++# BZ30647 %5lA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lA: +NAN(09A_Zaz):0:-1: + # BZ12701 %5lA: +0X0P0:0:-1: + # BZ12701 %*5lA: +0X0P0:0:-1: + # BZ12701 %5lA: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*32lA: -0X0P+0:0:8: + %32lA: -0X0P0:1:7:-0x0: + %*32lA: -0X0P0:0:7: +-%32lA: -NAN(09A_Zaz):1:14:-nan: +-%*32lA: -NAN(09A_Zaz):0:14: +-%32lA: -NAN():1:7:-nan: +-%*32lA: -NAN():0:7: +-%32lA: NAN():1:6:nan: +-%*32lA: NAN():0:6: +-%32lA: NAN(09A_Zaz):1:13:nan: +-%*32lA: NAN(09A_Zaz):0:13: ++# BZ30647 %32lA: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*32lA: -NAN(09A_Zaz):0:14: ++# BZ30647 %32lA: -NAN():1:7:-nan: ++# BZ30647 %*32lA: -NAN():0:7: ++# BZ30647 %32lA: NAN():1:6:nan: ++# BZ30647 %*32lA: NAN():0:6: ++# BZ30647 %32lA: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*32lA: NAN(09A_Zaz):0:13: + %32lA: 0X0P0:1:6:0x0: + %*32lA: 0X0P0:0:6: + %32lA: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*32lA: 0XF.FFFFFFFFFFFF8P+1020:0:24: + %32lA: INFINITY:1:9:inf: + %*32lA: INFINITY:0:9: +-%32lA: +NAN():1:7:nan: +-%*32lA: +NAN():0:7: +-%32lA: +NAN(09A_Zaz):1:14:nan: +-%*32lA: +NAN(09A_Zaz):0:14: ++# BZ30647 %32lA: +NAN():1:7:nan: ++# BZ30647 %*32lA: +NAN():0:7: ++# BZ30647 %32lA: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*32lA: +NAN(09A_Zaz):0:14: + %32lA: +0X0P0:1:7:0x0: + %*32lA: +0X0P0:0:7: + %32lA: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input +index cf1ea542c94e4082..703d785642b58e51 100644 +--- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input +@@ -16,14 +16,14 @@ + %*le:-0e+0:0:5: + %le:-0e0:1:4:-0x0: + %*le:-0e0:0:4: +-%le:-nan(09A_Zaz):1:13:-nan: +-%*le:-nan(09A_Zaz):0:13: +-%le:-nan():1:6:-nan: +-%*le:-nan():0:6: +-%le:nan():1:5:nan: +-%*le:nan():0:5: +-%le:nan(09A_Zaz):1:12:nan: +-%*le:nan(09A_Zaz):0:12: ++# BZ30647 %le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*le:-nan(09A_Zaz):0:13: ++# BZ30647 %le:-nan():1:6:-nan: ++# BZ30647 %*le:-nan():0:6: ++# BZ30647 %le:nan():1:5:nan: ++# BZ30647 %*le:nan():0:5: ++# BZ30647 %le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*le:nan(09A_Zaz):0:12: + %le:0e0:1:3:0x0: + %*le:0e0:0:3: + %le:0e+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*le:1.79769313486231570814527423731704357e+308:0:42: + %le:infinity:1:8:inf: + %*le:infinity:0:8: +-%le:+nan():1:6:nan: +-%*le:+nan():0:6: +-%le:+nan(09A_Zaz):1:13:nan: +-%*le:+nan(09A_Zaz):0:13: ++# BZ30647 %le:+nan():1:6:nan: ++# BZ30647 %*le:+nan():0:6: ++# BZ30647 %le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*le:+nan(09A_Zaz):0:13: + %le:+0e0:1:4:0x0: + %*le:+0e0:0:4: + %le:+0e+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1le:-0e+0:0:-1: + %1le:-0e0:0:-1: + %*1le:-0e0:0:-1: +-%1le:-nan(09A_Zaz):0:-1: +-%*1le:-nan(09A_Zaz):0:-1: +-%1le:-nan():0:-1: +-%*1le:-nan():0:-1: +-%1le:nan():0:-1: +-%*1le:nan():0:-1: +-%1le:nan(09A_Zaz):0:-1: +-%*1le:nan(09A_Zaz):0:-1: ++# BZ30647 %1le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1le:-nan(09A_Zaz):0:-1: ++# BZ30647 %1le:-nan():0:-1: ++# BZ30647 %*1le:-nan():0:-1: ++# BZ30647 %1le:nan():0:-1: ++# BZ30647 %*1le:nan():0:-1: ++# BZ30647 %1le:nan(09A_Zaz):0:-1: ++# BZ30647 %*1le:nan(09A_Zaz):0:-1: + %1le:0e0:1:1:0x0: + %*1le:0e0:0:1: + %1le:0e+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1le:1.79769313486231570814527423731704357e+308:0:1: + %1le:infinity:0:-1: + %*1le:infinity:0:-1: +-%1le:+nan():0:-1: +-%*1le:+nan():0:-1: +-%1le:+nan(09A_Zaz):0:-1: +-%*1le:+nan(09A_Zaz):0:-1: ++# BZ30647 %1le:+nan():0:-1: ++# BZ30647 %*1le:+nan():0:-1: ++# BZ30647 %1le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1le:+nan(09A_Zaz):0:-1: + %1le:+0e0:0:-1: + %*1le:+0e0:0:-1: + %1le:+0e+0:0:-1: +@@ -140,14 +140,14 @@ + %*2le:-0e+0:0:2: + %2le:-0e0:1:2:-0x0: + %*2le:-0e0:0:2: +-%2le:-nan(09A_Zaz):0:-1: +-%*2le:-nan(09A_Zaz):0:-1: +-%2le:-nan():0:-1: +-%*2le:-nan():0:-1: +-%2le:nan():0:-1: +-%*2le:nan():0:-1: +-%2le:nan(09A_Zaz):0:-1: +-%*2le:nan(09A_Zaz):0:-1: ++# BZ30647 %2le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2le:-nan(09A_Zaz):0:-1: ++# BZ30647 %2le:-nan():0:-1: ++# BZ30647 %*2le:-nan():0:-1: ++# BZ30647 %2le:nan():0:-1: ++# BZ30647 %*2le:nan():0:-1: ++# BZ30647 %2le:nan(09A_Zaz):0:-1: ++# BZ30647 %*2le:nan(09A_Zaz):0:-1: + # BZ12701 %2le:0e0:0:-1: + # BZ12701 %*2le:0e0:0:-1: + # BZ12701 %2le:0e+0:0:-1: +@@ -164,10 +164,10 @@ + %*2le:1.79769313486231570814527423731704357e+308:0:2: + %2le:infinity:0:-1: + %*2le:infinity:0:-1: +-%2le:+nan():0:-1: +-%*2le:+nan():0:-1: +-%2le:+nan(09A_Zaz):0:-1: +-%*2le:+nan(09A_Zaz):0:-1: ++# BZ30647 %2le:+nan():0:-1: ++# BZ30647 %*2le:+nan():0:-1: ++# BZ30647 %2le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2le:+nan(09A_Zaz):0:-1: + %2le:+0e0:1:2:0x0: + %*2le:+0e0:0:2: + %2le:+0e+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3le:-0e+0:0:-1: + # BZ12701 %3le:-0e0:0:-1: + # BZ12701 %*3le:-0e0:0:-1: +-%3le:-nan(09A_Zaz):0:-1: +-%*3le:-nan(09A_Zaz):0:-1: +-%3le:-nan():0:-1: +-%*3le:-nan():0:-1: +-%3le:nan():1:3:nan: +-%*3le:nan():0:3: +-%3le:nan(09A_Zaz):1:3:nan: +-%*3le:nan(09A_Zaz):0:3: ++# BZ30647 %3le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3le:-nan(09A_Zaz):0:-1: ++# BZ30647 %3le:-nan():0:-1: ++# BZ30647 %*3le:-nan():0:-1: ++# BZ30647 %3le:nan():1:3:nan: ++# BZ30647 %*3le:nan():0:3: ++# BZ30647 %3le:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3le:nan(09A_Zaz):0:3: + %3le:0e0:1:3:0x0: + %*3le:0e0:0:3: + # BZ12701 %3le:0e+0:0:-1: +@@ -226,10 +226,10 @@ + %*3le:1.79769313486231570814527423731704357e+308:0:3: + %3le:infinity:1:3:inf: + %*3le:infinity:0:3: +-%3le:+nan():0:-1: +-%*3le:+nan():0:-1: +-%3le:+nan(09A_Zaz):0:-1: +-%*3le:+nan(09A_Zaz):0:-1: ++# BZ30647 %3le:+nan():0:-1: ++# BZ30647 %*3le:+nan():0:-1: ++# BZ30647 %3le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3le:+nan(09A_Zaz):0:-1: + # BZ12701 %3le:+0e0:0:-1: + # BZ12701 %*3le:+0e0:0:-1: + # BZ12701 %3le:+0e+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4le:-0e+0:0:-1: + %4le:-0e0:1:4:-0x0: + %*4le:-0e0:0:4: +-%4le:-nan(09A_Zaz):1:4:-nan: +-%*4le:-nan(09A_Zaz):0:4: +-%4le:-nan():1:4:-nan: +-%*4le:-nan():0:4: +-%4le:nan():0:-1: +-%*4le:nan():0:-1: +-%4le:nan(09A_Zaz):0:-1: +-%*4le:nan(09A_Zaz):0:-1: ++# BZ30647 %4le:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4le:-nan(09A_Zaz):0:4: ++# BZ30647 %4le:-nan():1:4:-nan: ++# BZ30647 %*4le:-nan():0:4: ++# BZ30647 %4le:nan():0:-1: ++# BZ30647 %*4le:nan():0:-1: ++# BZ30647 %4le:nan(09A_Zaz):0:-1: ++# BZ30647 %*4le:nan(09A_Zaz):0:-1: + %4le:0e0:1:3:0x0: + %*4le:0e0:0:3: + %4le:0e+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4le:1.79769313486231570814527423731704357e+308:0:4: + %4le:infinity:0:-1: + %*4le:infinity:0:-1: +-%4le:+nan():1:4:nan: +-%*4le:+nan():0:4: +-%4le:+nan(09A_Zaz):1:4:nan: +-%*4le:+nan(09A_Zaz):0:4: ++# BZ30647 %4le:+nan():1:4:nan: ++# BZ30647 %*4le:+nan():0:4: ++# BZ30647 %4le:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4le:+nan(09A_Zaz):0:4: + %4le:+0e0:1:4:0x0: + %*4le:+0e0:0:4: + # BZ12701 %4le:+0e+0:0:-1: +@@ -326,14 +326,14 @@ + %*40le:-0e+0:0:5: + %40le:-0e0:1:4:-0x0: + %*40le:-0e0:0:4: +-%40le:-nan(09A_Zaz):1:13:-nan: +-%*40le:-nan(09A_Zaz):0:13: +-%40le:-nan():1:6:-nan: +-%*40le:-nan():0:6: +-%40le:nan():1:5:nan: +-%*40le:nan():0:5: +-%40le:nan(09A_Zaz):1:12:nan: +-%*40le:nan(09A_Zaz):0:12: ++# BZ30647 %40le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*40le:-nan(09A_Zaz):0:13: ++# BZ30647 %40le:-nan():1:6:-nan: ++# BZ30647 %*40le:-nan():0:6: ++# BZ30647 %40le:nan():1:5:nan: ++# BZ30647 %*40le:nan():0:5: ++# BZ30647 %40le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*40le:nan(09A_Zaz):0:12: + %40le:0e0:1:3:0x0: + %*40le:0e0:0:3: + %40le:0e+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40le:1.79769313486231570814527423731704357e+308:0:40: + %40le:infinity:1:8:inf: + %*40le:infinity:0:8: +-%40le:+nan():1:6:nan: +-%*40le:+nan():0:6: +-%40le:+nan(09A_Zaz):1:13:nan: +-%*40le:+nan(09A_Zaz):0:13: ++# BZ30647 %40le:+nan():1:6:nan: ++# BZ30647 %*40le:+nan():0:6: ++# BZ30647 %40le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*40le:+nan(09A_Zaz):0:13: + %40le:+0e0:1:4:0x0: + %*40le:+0e0:0:4: + %40le:+0e+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48le:-0e+0:0:5: + %48le:-0e0:1:4:-0x0: + %*48le:-0e0:0:4: +-%48le:-nan(09A_Zaz):1:13:-nan: +-%*48le:-nan(09A_Zaz):0:13: +-%48le:-nan():1:6:-nan: +-%*48le:-nan():0:6: +-%48le:nan():1:5:nan: +-%*48le:nan():0:5: +-%48le:nan(09A_Zaz):1:12:nan: +-%*48le:nan(09A_Zaz):0:12: ++# BZ30647 %48le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*48le:-nan(09A_Zaz):0:13: ++# BZ30647 %48le:-nan():1:6:-nan: ++# BZ30647 %*48le:-nan():0:6: ++# BZ30647 %48le:nan():1:5:nan: ++# BZ30647 %*48le:nan():0:5: ++# BZ30647 %48le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*48le:nan(09A_Zaz):0:12: + %48le:0e0:1:3:0x0: + %*48le:0e0:0:3: + %48le:0e+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48le:1.79769313486231570814527423731704357e+308:0:42: + %48le:infinity:1:8:inf: + %*48le:infinity:0:8: +-%48le:+nan():1:6:nan: +-%*48le:+nan():0:6: +-%48le:+nan(09A_Zaz):1:13:nan: +-%*48le:+nan(09A_Zaz):0:13: ++# BZ30647 %48le:+nan():1:6:nan: ++# BZ30647 %*48le:+nan():0:6: ++# BZ30647 %48le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48le:+nan(09A_Zaz):0:13: + %48le:+0e0:1:4:0x0: + %*48le:+0e0:0:4: + %48le:+0e+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3le: -0e+0:0:-1: + # BZ12701 %3le: -0e0:0:-1: + # BZ12701 %*3le: -0e0:0:-1: +-%3le: -nan(09A_Zaz):0:-1: +-%*3le: -nan(09A_Zaz):0:-1: +-%3le: -nan():0:-1: +-%*3le: -nan():0:-1: +-%3le: nan():1:4:nan: +-%*3le: nan():0:4: +-%3le: nan(09A_Zaz):1:4:nan: +-%*3le: nan(09A_Zaz):0:4: ++# BZ30647 %3le: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3le: -nan(09A_Zaz):0:-1: ++# BZ30647 %3le: -nan():0:-1: ++# BZ30647 %*3le: -nan():0:-1: ++# BZ30647 %3le: nan():1:4:nan: ++# BZ30647 %*3le: nan():0:4: ++# BZ30647 %3le: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3le: nan(09A_Zaz):0:4: + %3le: 0e0:1:4:0x0: + %*3le: 0e0:0:4: + # BZ12701 %3le: 0e+0:0:-1: +@@ -474,10 +474,10 @@ + %*3le: 1.79769313486231570814527423731704357e+308:0:4: + %3le: infinity:1:4:inf: + %*3le: infinity:0:4: +-%3le: +nan():0:-1: +-%*3le: +nan():0:-1: +-%3le: +nan(09A_Zaz):0:-1: +-%*3le: +nan(09A_Zaz):0:-1: ++# BZ30647 %3le: +nan():0:-1: ++# BZ30647 %*3le: +nan():0:-1: ++# BZ30647 %3le: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3le: +nan(09A_Zaz):0:-1: + # BZ12701 %3le: +0e0:0:-1: + # BZ12701 %*3le: +0e0:0:-1: + # BZ12701 %3le: +0e+0:0:-1: +@@ -512,14 +512,14 @@ + %*48le: -0e+0:0:6: + %48le: -0e0:1:5:-0x0: + %*48le: -0e0:0:5: +-%48le: -nan(09A_Zaz):1:14:-nan: +-%*48le: -nan(09A_Zaz):0:14: +-%48le: -nan():1:7:-nan: +-%*48le: -nan():0:7: +-%48le: nan():1:6:nan: +-%*48le: nan():0:6: +-%48le: nan(09A_Zaz):1:13:nan: +-%*48le: nan(09A_Zaz):0:13: ++# BZ30647 %48le: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*48le: -nan(09A_Zaz):0:14: ++# BZ30647 %48le: -nan():1:7:-nan: ++# BZ30647 %*48le: -nan():0:7: ++# BZ30647 %48le: nan():1:6:nan: ++# BZ30647 %*48le: nan():0:6: ++# BZ30647 %48le: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48le: nan(09A_Zaz):0:13: + %48le: 0e0:1:4:0x0: + %*48le: 0e0:0:4: + %48le: 0e+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48le: 1.79769313486231570814527423731704357e+308:0:43: + %48le: infinity:1:9:inf: + %*48le: infinity:0:9: +-%48le: +nan():1:7:nan: +-%*48le: +nan():0:7: +-%48le: +nan(09A_Zaz):1:14:nan: +-%*48le: +nan(09A_Zaz):0:14: ++# BZ30647 %48le: +nan():1:7:nan: ++# BZ30647 %*48le: +nan():0:7: ++# BZ30647 %48le: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*48le: +nan(09A_Zaz):0:14: + %48le: +0e0:1:5:0x0: + %*48le: +0e0:0:5: + %48le: +0e+0:1:6:0x0: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ee.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ee.input +index ba9d5cbb45cfb659..e7100e8740954725 100644 +--- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ee.input ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ee.input +@@ -16,14 +16,14 @@ + %*lE:-0E+0:0:5: + %lE:-0E0:1:4:-0x0: + %*lE:-0E0:0:4: +-%lE:-NAN(09A_Zaz):1:13:-nan: +-%*lE:-NAN(09A_Zaz):0:13: +-%lE:-NAN():1:6:-nan: +-%*lE:-NAN():0:6: +-%lE:NAN():1:5:nan: +-%*lE:NAN():0:5: +-%lE:NAN(09A_Zaz):1:12:nan: +-%*lE:NAN(09A_Zaz):0:12: ++# BZ30647 %lE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*lE:-NAN(09A_Zaz):0:13: ++# BZ30647 %lE:-NAN():1:6:-nan: ++# BZ30647 %*lE:-NAN():0:6: ++# BZ30647 %lE:NAN():1:5:nan: ++# BZ30647 %*lE:NAN():0:5: ++# BZ30647 %lE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*lE:NAN(09A_Zaz):0:12: + %lE:0E0:1:3:0x0: + %*lE:0E0:0:3: + %lE:0E+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*lE:1.79769313486231570814527423731704357E+308:0:42: + %lE:INFINITY:1:8:inf: + %*lE:INFINITY:0:8: +-%lE:+NAN():1:6:nan: +-%*lE:+NAN():0:6: +-%lE:+NAN(09A_Zaz):1:13:nan: +-%*lE:+NAN(09A_Zaz):0:13: ++# BZ30647 %lE:+NAN():1:6:nan: ++# BZ30647 %*lE:+NAN():0:6: ++# BZ30647 %lE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*lE:+NAN(09A_Zaz):0:13: + %lE:+0E0:1:4:0x0: + %*lE:+0E0:0:4: + %lE:+0E+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1lE:-0E+0:0:-1: + %1lE:-0E0:0:-1: + %*1lE:-0E0:0:-1: +-%1lE:-NAN(09A_Zaz):0:-1: +-%*1lE:-NAN(09A_Zaz):0:-1: +-%1lE:-NAN():0:-1: +-%*1lE:-NAN():0:-1: +-%1lE:NAN():0:-1: +-%*1lE:NAN():0:-1: +-%1lE:NAN(09A_Zaz):0:-1: +-%*1lE:NAN(09A_Zaz):0:-1: ++# BZ30647 %1lE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1lE:-NAN():0:-1: ++# BZ30647 %*1lE:-NAN():0:-1: ++# BZ30647 %1lE:NAN():0:-1: ++# BZ30647 %*1lE:NAN():0:-1: ++# BZ30647 %1lE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lE:NAN(09A_Zaz):0:-1: + %1lE:0E0:1:1:0x0: + %*1lE:0E0:0:1: + %1lE:0E+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1lE:1.79769313486231570814527423731704357E+308:0:1: + %1lE:INFINITY:0:-1: + %*1lE:INFINITY:0:-1: +-%1lE:+NAN():0:-1: +-%*1lE:+NAN():0:-1: +-%1lE:+NAN(09A_Zaz):0:-1: +-%*1lE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1lE:+NAN():0:-1: ++# BZ30647 %*1lE:+NAN():0:-1: ++# BZ30647 %1lE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lE:+NAN(09A_Zaz):0:-1: + %1lE:+0E0:0:-1: + %*1lE:+0E0:0:-1: + %1lE:+0E+0:0:-1: +@@ -140,14 +140,14 @@ + %*2lE:-0E+0:0:2: + %2lE:-0E0:1:2:-0x0: + %*2lE:-0E0:0:2: +-%2lE:-NAN(09A_Zaz):0:-1: +-%*2lE:-NAN(09A_Zaz):0:-1: +-%2lE:-NAN():0:-1: +-%*2lE:-NAN():0:-1: +-%2lE:NAN():0:-1: +-%*2lE:NAN():0:-1: +-%2lE:NAN(09A_Zaz):0:-1: +-%*2lE:NAN(09A_Zaz):0:-1: ++# BZ30647 %2lE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2lE:-NAN():0:-1: ++# BZ30647 %*2lE:-NAN():0:-1: ++# BZ30647 %2lE:NAN():0:-1: ++# BZ30647 %*2lE:NAN():0:-1: ++# BZ30647 %2lE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lE:NAN(09A_Zaz):0:-1: + # BZ12701 %2lE:0E0:0:-1: + # BZ12701 %*2lE:0E0:0:-1: + # BZ12701 %2lE:0E+0:0:-1: +@@ -164,10 +164,10 @@ + %*2lE:1.79769313486231570814527423731704357E+308:0:2: + %2lE:INFINITY:0:-1: + %*2lE:INFINITY:0:-1: +-%2lE:+NAN():0:-1: +-%*2lE:+NAN():0:-1: +-%2lE:+NAN(09A_Zaz):0:-1: +-%*2lE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2lE:+NAN():0:-1: ++# BZ30647 %*2lE:+NAN():0:-1: ++# BZ30647 %2lE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lE:+NAN(09A_Zaz):0:-1: + %2lE:+0E0:1:2:0x0: + %*2lE:+0E0:0:2: + %2lE:+0E+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3lE:-0E+0:0:-1: + # BZ12701 %3lE:-0E0:0:-1: + # BZ12701 %*3lE:-0E0:0:-1: +-%3lE:-NAN(09A_Zaz):0:-1: +-%*3lE:-NAN(09A_Zaz):0:-1: +-%3lE:-NAN():0:-1: +-%*3lE:-NAN():0:-1: +-%3lE:NAN():1:3:nan: +-%*3lE:NAN():0:3: +-%3lE:NAN(09A_Zaz):1:3:nan: +-%*3lE:NAN(09A_Zaz):0:3: ++# BZ30647 %3lE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3lE:-NAN():0:-1: ++# BZ30647 %*3lE:-NAN():0:-1: ++# BZ30647 %3lE:NAN():1:3:nan: ++# BZ30647 %*3lE:NAN():0:3: ++# BZ30647 %3lE:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3lE:NAN(09A_Zaz):0:3: + %3lE:0E0:1:3:0x0: + %*3lE:0E0:0:3: + # BZ12701 %3lE:0E+0:0:-1: +@@ -226,10 +226,10 @@ + %*3lE:1.79769313486231570814527423731704357E+308:0:3: + %3lE:INFINITY:1:3:inf: + %*3lE:INFINITY:0:3: +-%3lE:+NAN():0:-1: +-%*3lE:+NAN():0:-1: +-%3lE:+NAN(09A_Zaz):0:-1: +-%*3lE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3lE:+NAN():0:-1: ++# BZ30647 %*3lE:+NAN():0:-1: ++# BZ30647 %3lE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lE:+NAN(09A_Zaz):0:-1: + # BZ12701 %3lE:+0E0:0:-1: + # BZ12701 %*3lE:+0E0:0:-1: + # BZ12701 %3lE:+0E+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4lE:-0E+0:0:-1: + %4lE:-0E0:1:4:-0x0: + %*4lE:-0E0:0:4: +-%4lE:-NAN(09A_Zaz):1:4:-nan: +-%*4lE:-NAN(09A_Zaz):0:4: +-%4lE:-NAN():1:4:-nan: +-%*4lE:-NAN():0:4: +-%4lE:NAN():0:-1: +-%*4lE:NAN():0:-1: +-%4lE:NAN(09A_Zaz):0:-1: +-%*4lE:NAN(09A_Zaz):0:-1: ++# BZ30647 %4lE:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4lE:-NAN(09A_Zaz):0:4: ++# BZ30647 %4lE:-NAN():1:4:-nan: ++# BZ30647 %*4lE:-NAN():0:4: ++# BZ30647 %4lE:NAN():0:-1: ++# BZ30647 %*4lE:NAN():0:-1: ++# BZ30647 %4lE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4lE:NAN(09A_Zaz):0:-1: + %4lE:0E0:1:3:0x0: + %*4lE:0E0:0:3: + %4lE:0E+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4lE:1.79769313486231570814527423731704357E+308:0:4: + %4lE:INFINITY:0:-1: + %*4lE:INFINITY:0:-1: +-%4lE:+NAN():1:4:nan: +-%*4lE:+NAN():0:4: +-%4lE:+NAN(09A_Zaz):1:4:nan: +-%*4lE:+NAN(09A_Zaz):0:4: ++# BZ30647 %4lE:+NAN():1:4:nan: ++# BZ30647 %*4lE:+NAN():0:4: ++# BZ30647 %4lE:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4lE:+NAN(09A_Zaz):0:4: + %4lE:+0E0:1:4:0x0: + %*4lE:+0E0:0:4: + # BZ12701 %4lE:+0E+0:0:-1: +@@ -326,14 +326,14 @@ + %*40lE:-0E+0:0:5: + %40lE:-0E0:1:4:-0x0: + %*40lE:-0E0:0:4: +-%40lE:-NAN(09A_Zaz):1:13:-nan: +-%*40lE:-NAN(09A_Zaz):0:13: +-%40lE:-NAN():1:6:-nan: +-%*40lE:-NAN():0:6: +-%40lE:NAN():1:5:nan: +-%*40lE:NAN():0:5: +-%40lE:NAN(09A_Zaz):1:12:nan: +-%*40lE:NAN(09A_Zaz):0:12: ++# BZ30647 %40lE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*40lE:-NAN(09A_Zaz):0:13: ++# BZ30647 %40lE:-NAN():1:6:-nan: ++# BZ30647 %*40lE:-NAN():0:6: ++# BZ30647 %40lE:NAN():1:5:nan: ++# BZ30647 %*40lE:NAN():0:5: ++# BZ30647 %40lE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*40lE:NAN(09A_Zaz):0:12: + %40lE:0E0:1:3:0x0: + %*40lE:0E0:0:3: + %40lE:0E+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40lE:1.79769313486231570814527423731704357E+308:0:40: + %40lE:INFINITY:1:8:inf: + %*40lE:INFINITY:0:8: +-%40lE:+NAN():1:6:nan: +-%*40lE:+NAN():0:6: +-%40lE:+NAN(09A_Zaz):1:13:nan: +-%*40lE:+NAN(09A_Zaz):0:13: ++# BZ30647 %40lE:+NAN():1:6:nan: ++# BZ30647 %*40lE:+NAN():0:6: ++# BZ30647 %40lE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*40lE:+NAN(09A_Zaz):0:13: + %40lE:+0E0:1:4:0x0: + %*40lE:+0E0:0:4: + %40lE:+0E+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48lE:-0E+0:0:5: + %48lE:-0E0:1:4:-0x0: + %*48lE:-0E0:0:4: +-%48lE:-NAN(09A_Zaz):1:13:-nan: +-%*48lE:-NAN(09A_Zaz):0:13: +-%48lE:-NAN():1:6:-nan: +-%*48lE:-NAN():0:6: +-%48lE:NAN():1:5:nan: +-%*48lE:NAN():0:5: +-%48lE:NAN(09A_Zaz):1:12:nan: +-%*48lE:NAN(09A_Zaz):0:12: ++# BZ30647 %48lE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*48lE:-NAN(09A_Zaz):0:13: ++# BZ30647 %48lE:-NAN():1:6:-nan: ++# BZ30647 %*48lE:-NAN():0:6: ++# BZ30647 %48lE:NAN():1:5:nan: ++# BZ30647 %*48lE:NAN():0:5: ++# BZ30647 %48lE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*48lE:NAN(09A_Zaz):0:12: + %48lE:0E0:1:3:0x0: + %*48lE:0E0:0:3: + %48lE:0E+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48lE:1.79769313486231570814527423731704357E+308:0:42: + %48lE:INFINITY:1:8:inf: + %*48lE:INFINITY:0:8: +-%48lE:+NAN():1:6:nan: +-%*48lE:+NAN():0:6: +-%48lE:+NAN(09A_Zaz):1:13:nan: +-%*48lE:+NAN(09A_Zaz):0:13: ++# BZ30647 %48lE:+NAN():1:6:nan: ++# BZ30647 %*48lE:+NAN():0:6: ++# BZ30647 %48lE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48lE:+NAN(09A_Zaz):0:13: + %48lE:+0E0:1:4:0x0: + %*48lE:+0E0:0:4: + %48lE:+0E+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3lE: -0E+0:0:-1: + # BZ12701 %3lE: -0E0:0:-1: + # BZ12701 %*3lE: -0E0:0:-1: +-%3lE: -NAN(09A_Zaz):0:-1: +-%*3lE: -NAN(09A_Zaz):0:-1: +-%3lE: -NAN():0:-1: +-%*3lE: -NAN():0:-1: +-%3lE: NAN():1:4:nan: +-%*3lE: NAN():0:4: +-%3lE: NAN(09A_Zaz):1:4:nan: +-%*3lE: NAN(09A_Zaz):0:4: ++# BZ30647 %3lE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3lE: -NAN():0:-1: ++# BZ30647 %*3lE: -NAN():0:-1: ++# BZ30647 %3lE: NAN():1:4:nan: ++# BZ30647 %*3lE: NAN():0:4: ++# BZ30647 %3lE: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3lE: NAN(09A_Zaz):0:4: + %3lE: 0E0:1:4:0x0: + %*3lE: 0E0:0:4: + # BZ12701 %3lE: 0E+0:0:-1: +@@ -474,10 +474,10 @@ + %*3lE: 1.79769313486231570814527423731704357E+308:0:4: + %3lE: INFINITY:1:4:inf: + %*3lE: INFINITY:0:4: +-%3lE: +NAN():0:-1: +-%*3lE: +NAN():0:-1: +-%3lE: +NAN(09A_Zaz):0:-1: +-%*3lE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3lE: +NAN():0:-1: ++# BZ30647 %*3lE: +NAN():0:-1: ++# BZ30647 %3lE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lE: +NAN(09A_Zaz):0:-1: + # BZ12701 %3lE: +0E0:0:-1: + # BZ12701 %*3lE: +0E0:0:-1: + # BZ12701 %3lE: +0E+0:0:-1: +@@ -512,14 +512,14 @@ + %*48lE: -0E+0:0:6: + %48lE: -0E0:1:5:-0x0: + %*48lE: -0E0:0:5: +-%48lE: -NAN(09A_Zaz):1:14:-nan: +-%*48lE: -NAN(09A_Zaz):0:14: +-%48lE: -NAN():1:7:-nan: +-%*48lE: -NAN():0:7: +-%48lE: NAN():1:6:nan: +-%*48lE: NAN():0:6: +-%48lE: NAN(09A_Zaz):1:13:nan: +-%*48lE: NAN(09A_Zaz):0:13: ++# BZ30647 %48lE: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*48lE: -NAN(09A_Zaz):0:14: ++# BZ30647 %48lE: -NAN():1:7:-nan: ++# BZ30647 %*48lE: -NAN():0:7: ++# BZ30647 %48lE: NAN():1:6:nan: ++# BZ30647 %*48lE: NAN():0:6: ++# BZ30647 %48lE: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48lE: NAN(09A_Zaz):0:13: + %48lE: 0E0:1:4:0x0: + %*48lE: 0E0:0:4: + %48lE: 0E+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48lE: 1.79769313486231570814527423731704357E+308:0:43: + %48lE: INFINITY:1:9:inf: + %*48lE: INFINITY:0:9: +-%48lE: +NAN():1:7:nan: +-%*48lE: +NAN():0:7: +-%48lE: +NAN(09A_Zaz):1:14:nan: +-%*48lE: +NAN(09A_Zaz):0:14: ++# BZ30647 %48lE: +NAN():1:7:nan: ++# BZ30647 %*48lE: +NAN():0:7: ++# BZ30647 %48lE: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*48lE: +NAN(09A_Zaz):0:14: + %48lE: +0E0:1:5:0x0: + %*48lE: +0E0:0:5: + %48lE: +0E+0:1:6:0x0: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-f.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-f.input +index 22b9fdc4f62cfa08..630437ea49587620 100644 +--- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-f.input ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-f.input +@@ -16,14 +16,14 @@ + %*lf:-0.0:0:4: + %lf:-0:1:2:-0x0: + %*lf:-0:0:2: +-%lf:-nan(09A_Zaz):1:13:-nan: +-%*lf:-nan(09A_Zaz):0:13: +-%lf:-nan():1:6:-nan: +-%*lf:-nan():0:6: +-%lf:nan():1:5:nan: +-%*lf:nan():0:5: +-%lf:nan(09A_Zaz):1:12:nan: +-%*lf:nan(09A_Zaz):0:12: ++# BZ30647 %lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*lf:-nan(09A_Zaz):0:13: ++# BZ30647 %lf:-nan():1:6:-nan: ++# BZ30647 %*lf:-nan():0:6: ++# BZ30647 %lf:nan():1:5:nan: ++# BZ30647 %*lf:nan():0:5: ++# BZ30647 %lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*lf:nan(09A_Zaz):0:12: + %lf:0:1:1:0x0: + %*lf:0:0:1: + %lf:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: + %lf:infinity:1:8:inf: + %*lf:infinity:0:8: +-%lf:+nan():1:6:nan: +-%*lf:+nan():0:6: +-%lf:+nan(09A_Zaz):1:13:nan: +-%*lf:+nan(09A_Zaz):0:13: ++# BZ30647 %lf:+nan():1:6:nan: ++# BZ30647 %*lf:+nan():0:6: ++# BZ30647 %lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*lf:+nan(09A_Zaz):0:13: + %lf:+0:1:2:0x0: + %*lf:+0:0:2: + %lf:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1lf:-0.0:0:-1: + %1lf:-0:0:-1: + %*1lf:-0:0:-1: +-%1lf:-nan(09A_Zaz):0:-1: +-%*1lf:-nan(09A_Zaz):0:-1: +-%1lf:-nan():0:-1: +-%*1lf:-nan():0:-1: +-%1lf:nan():0:-1: +-%*1lf:nan():0:-1: +-%1lf:nan(09A_Zaz):0:-1: +-%*1lf:nan(09A_Zaz):0:-1: ++# BZ30647 %1lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %1lf:-nan():0:-1: ++# BZ30647 %*1lf:-nan():0:-1: ++# BZ30647 %1lf:nan():0:-1: ++# BZ30647 %*1lf:nan():0:-1: ++# BZ30647 %1lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*1lf:nan(09A_Zaz):0:-1: + %1lf:0:1:1:0x0: + %*1lf:0:0:1: + %1lf:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1: + %1lf:infinity:0:-1: + %*1lf:infinity:0:-1: +-%1lf:+nan():0:-1: +-%*1lf:+nan():0:-1: +-%1lf:+nan(09A_Zaz):0:-1: +-%*1lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %1lf:+nan():0:-1: ++# BZ30647 %*1lf:+nan():0:-1: ++# BZ30647 %1lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1lf:+nan(09A_Zaz):0:-1: + %1lf:+0:0:-1: + %*1lf:+0:0:-1: + %1lf:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2lf:-0.0:0:2: + %2lf:-0:1:2:-0x0: + %*2lf:-0:0:2: +-%2lf:-nan(09A_Zaz):0:-1: +-%*2lf:-nan(09A_Zaz):0:-1: +-%2lf:-nan():0:-1: +-%*2lf:-nan():0:-1: +-%2lf:nan():0:-1: +-%*2lf:nan():0:-1: +-%2lf:nan(09A_Zaz):0:-1: +-%*2lf:nan(09A_Zaz):0:-1: ++# BZ30647 %2lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %2lf:-nan():0:-1: ++# BZ30647 %*2lf:-nan():0:-1: ++# BZ30647 %2lf:nan():0:-1: ++# BZ30647 %*2lf:nan():0:-1: ++# BZ30647 %2lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*2lf:nan(09A_Zaz):0:-1: + %2lf:0:1:1:0x0: + %*2lf:0:0:1: + %2lf:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: + %2lf:infinity:0:-1: + %*2lf:infinity:0:-1: +-%2lf:+nan():0:-1: +-%*2lf:+nan():0:-1: +-%2lf:+nan(09A_Zaz):0:-1: +-%*2lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %2lf:+nan():0:-1: ++# BZ30647 %*2lf:+nan():0:-1: ++# BZ30647 %2lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2lf:+nan(09A_Zaz):0:-1: + %2lf:+0:1:2:0x0: + %*2lf:+0:0:2: + %2lf:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3lf:-0.0:0:3: + %3lf:-0:1:2:-0x0: + %*3lf:-0:0:2: +-%3lf:-nan(09A_Zaz):0:-1: +-%*3lf:-nan(09A_Zaz):0:-1: +-%3lf:-nan():0:-1: +-%*3lf:-nan():0:-1: +-%3lf:nan():1:3:nan: +-%*3lf:nan():0:3: +-%3lf:nan(09A_Zaz):1:3:nan: +-%*3lf:nan(09A_Zaz):0:3: ++# BZ30647 %3lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %3lf:-nan():0:-1: ++# BZ30647 %*3lf:-nan():0:-1: ++# BZ30647 %3lf:nan():1:3:nan: ++# BZ30647 %*3lf:nan():0:3: ++# BZ30647 %3lf:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3lf:nan(09A_Zaz):0:3: + %3lf:0:1:1:0x0: + %*3lf:0:0:1: + %3lf:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: + %3lf:infinity:1:3:inf: + %*3lf:infinity:0:3: +-%3lf:+nan():0:-1: +-%*3lf:+nan():0:-1: +-%3lf:+nan(09A_Zaz):0:-1: +-%*3lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %3lf:+nan():0:-1: ++# BZ30647 %*3lf:+nan():0:-1: ++# BZ30647 %3lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3lf:+nan(09A_Zaz):0:-1: + %3lf:+0:1:2:0x0: + %*3lf:+0:0:2: + %3lf:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4lf:-0.0:0:4: + %4lf:-0:1:2:-0x0: + %*4lf:-0:0:2: +-%4lf:-nan(09A_Zaz):1:4:-nan: +-%*4lf:-nan(09A_Zaz):0:4: +-%4lf:-nan():1:4:-nan: +-%*4lf:-nan():0:4: +-%4lf:nan():0:-1: +-%*4lf:nan():0:-1: +-%4lf:nan(09A_Zaz):0:-1: +-%*4lf:nan(09A_Zaz):0:-1: ++# BZ30647 %4lf:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4lf:-nan(09A_Zaz):0:4: ++# BZ30647 %4lf:-nan():1:4:-nan: ++# BZ30647 %*4lf:-nan():0:4: ++# BZ30647 %4lf:nan():0:-1: ++# BZ30647 %*4lf:nan():0:-1: ++# BZ30647 %4lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*4lf:nan(09A_Zaz):0:-1: + %4lf:0:1:1:0x0: + %*4lf:0:0:1: + %4lf:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: + %4lf:infinity:0:-1: + %*4lf:infinity:0:-1: +-%4lf:+nan():1:4:nan: +-%*4lf:+nan():0:4: +-%4lf:+nan(09A_Zaz):1:4:nan: +-%*4lf:+nan(09A_Zaz):0:4: ++# BZ30647 %4lf:+nan():1:4:nan: ++# BZ30647 %*4lf:+nan():0:4: ++# BZ30647 %4lf:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4lf:+nan(09A_Zaz):0:4: + %4lf:+0:1:2:0x0: + %*4lf:+0:0:2: + %4lf:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*311lf:-0.0:0:4: + %311lf:-0:1:2:-0x0: + %*311lf:-0:0:2: +-%311lf:-nan(09A_Zaz):1:13:-nan: +-%*311lf:-nan(09A_Zaz):0:13: +-%311lf:-nan():1:6:-nan: +-%*311lf:-nan():0:6: +-%311lf:nan():1:5:nan: +-%*311lf:nan():0:5: +-%311lf:nan(09A_Zaz):1:12:nan: +-%*311lf:nan(09A_Zaz):0:12: ++# BZ30647 %311lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*311lf:-nan(09A_Zaz):0:13: ++# BZ30647 %311lf:-nan():1:6:-nan: ++# BZ30647 %*311lf:-nan():0:6: ++# BZ30647 %311lf:nan():1:5:nan: ++# BZ30647 %*311lf:nan():0:5: ++# BZ30647 %311lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*311lf:nan(09A_Zaz):0:12: + %311lf:0:1:1:0x0: + %*311lf:0:0:1: + %311lf:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*311lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: + %311lf:infinity:1:8:inf: + %*311lf:infinity:0:8: +-%311lf:+nan():1:6:nan: +-%*311lf:+nan():0:6: +-%311lf:+nan(09A_Zaz):1:13:nan: +-%*311lf:+nan(09A_Zaz):0:13: ++# BZ30647 %311lf:+nan():1:6:nan: ++# BZ30647 %*311lf:+nan():0:6: ++# BZ30647 %311lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*311lf:+nan(09A_Zaz):0:13: + %311lf:+0:1:2:0x0: + %*311lf:+0:0:2: + %311lf:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*350lf:-0.0:0:4: + %350lf:-0:1:2:-0x0: + %*350lf:-0:0:2: +-%350lf:-nan(09A_Zaz):1:13:-nan: +-%*350lf:-nan(09A_Zaz):0:13: +-%350lf:-nan():1:6:-nan: +-%*350lf:-nan():0:6: +-%350lf:nan():1:5:nan: +-%*350lf:nan():0:5: +-%350lf:nan(09A_Zaz):1:12:nan: +-%*350lf:nan(09A_Zaz):0:12: ++# BZ30647 %350lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*350lf:-nan(09A_Zaz):0:13: ++# BZ30647 %350lf:-nan():1:6:-nan: ++# BZ30647 %*350lf:-nan():0:6: ++# BZ30647 %350lf:nan():1:5:nan: ++# BZ30647 %*350lf:nan():0:5: ++# BZ30647 %350lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*350lf:nan(09A_Zaz):0:12: + %350lf:0:1:1:0x0: + %*350lf:0:0:1: + %350lf:0.0:1:3:0x0: +@@ -412,10 +412,10 @@ + %*350lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: + %350lf:infinity:1:8:inf: + %*350lf:infinity:0:8: +-%350lf:+nan():1:6:nan: +-%*350lf:+nan():0:6: +-%350lf:+nan(09A_Zaz):1:13:nan: +-%*350lf:+nan(09A_Zaz):0:13: ++# BZ30647 %350lf:+nan():1:6:nan: ++# BZ30647 %*350lf:+nan():0:6: ++# BZ30647 %350lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*350lf:+nan(09A_Zaz):0:13: + %350lf:+0:1:2:0x0: + %*350lf:+0:0:2: + %350lf:+0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*3lf: -0.0:0:4: + %3lf: -0:1:3:-0x0: + %*3lf: -0:0:3: +-%3lf: -nan(09A_Zaz):0:-1: +-%*3lf: -nan(09A_Zaz):0:-1: +-%3lf: -nan():0:-1: +-%*3lf: -nan():0:-1: +-%3lf: nan():1:4:nan: +-%*3lf: nan():0:4: +-%3lf: nan(09A_Zaz):1:4:nan: +-%*3lf: nan(09A_Zaz):0:4: ++# BZ30647 %3lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %3lf: -nan():0:-1: ++# BZ30647 %*3lf: -nan():0:-1: ++# BZ30647 %3lf: nan():1:4:nan: ++# BZ30647 %*3lf: nan():0:4: ++# BZ30647 %3lf: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3lf: nan(09A_Zaz):0:4: + %3lf: 0:1:2:0x0: + %*3lf: 0:0:2: + %3lf: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*3lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: + %3lf: infinity:1:4:inf: + %*3lf: infinity:0:4: +-%3lf: +nan():0:-1: +-%*3lf: +nan():0:-1: +-%3lf: +nan(09A_Zaz):0:-1: +-%*3lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %3lf: +nan():0:-1: ++# BZ30647 %*3lf: +nan():0:-1: ++# BZ30647 %3lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3lf: +nan(09A_Zaz):0:-1: + %3lf: +0:1:3:0x0: + %*3lf: +0:0:3: + %3lf: +0.0:1:4:0x0: +@@ -512,14 +512,14 @@ + %*350lf: -0.0:0:5: + %350lf: -0:1:3:-0x0: + %*350lf: -0:0:3: +-%350lf: -nan(09A_Zaz):1:14:-nan: +-%*350lf: -nan(09A_Zaz):0:14: +-%350lf: -nan():1:7:-nan: +-%*350lf: -nan():0:7: +-%350lf: nan():1:6:nan: +-%*350lf: nan():0:6: +-%350lf: nan(09A_Zaz):1:13:nan: +-%*350lf: nan(09A_Zaz):0:13: ++# BZ30647 %350lf: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*350lf: -nan(09A_Zaz):0:14: ++# BZ30647 %350lf: -nan():1:7:-nan: ++# BZ30647 %*350lf: -nan():0:7: ++# BZ30647 %350lf: nan():1:6:nan: ++# BZ30647 %*350lf: nan():0:6: ++# BZ30647 %350lf: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*350lf: nan(09A_Zaz):0:13: + %350lf: 0:1:2:0x0: + %*350lf: 0:0:2: + %350lf: 0.0:1:4:0x0: +@@ -536,10 +536,10 @@ + %*350lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: + %350lf: infinity:1:9:inf: + %*350lf: infinity:0:9: +-%350lf: +nan():1:7:nan: +-%*350lf: +nan():0:7: +-%350lf: +nan(09A_Zaz):1:14:nan: +-%*350lf: +nan(09A_Zaz):0:14: ++# BZ30647 %350lf: +nan():1:7:nan: ++# BZ30647 %*350lf: +nan():0:7: ++# BZ30647 %350lf: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*350lf: +nan(09A_Zaz):0:14: + %350lf: +0:1:3:0x0: + %*350lf: +0:0:3: + %350lf: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ff.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ff.input +index 6168884e133d78d3..ce6599fb1a108899 100644 +--- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ff.input ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ff.input +@@ -16,14 +16,14 @@ + %*lF:-0.0:0:4: + %lF:-0:1:2:-0x0: + %*lF:-0:0:2: +-%lF:-NAN(09A_Zaz):1:13:-nan: +-%*lF:-NAN(09A_Zaz):0:13: +-%lF:-NAN():1:6:-nan: +-%*lF:-NAN():0:6: +-%lF:NAN():1:5:nan: +-%*lF:NAN():0:5: +-%lF:NAN(09A_Zaz):1:12:nan: +-%*lF:NAN(09A_Zaz):0:12: ++# BZ30647 %lF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*lF:-NAN(09A_Zaz):0:13: ++# BZ30647 %lF:-NAN():1:6:-nan: ++# BZ30647 %*lF:-NAN():0:6: ++# BZ30647 %lF:NAN():1:5:nan: ++# BZ30647 %*lF:NAN():0:5: ++# BZ30647 %lF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*lF:NAN(09A_Zaz):0:12: + %lF:0:1:1:0x0: + %*lF:0:0:1: + %lF:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: + %lF:INFINITY:1:8:inf: + %*lF:INFINITY:0:8: +-%lF:+NAN():1:6:nan: +-%*lF:+NAN():0:6: +-%lF:+NAN(09A_Zaz):1:13:nan: +-%*lF:+NAN(09A_Zaz):0:13: ++# BZ30647 %lF:+NAN():1:6:nan: ++# BZ30647 %*lF:+NAN():0:6: ++# BZ30647 %lF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*lF:+NAN(09A_Zaz):0:13: + %lF:+0:1:2:0x0: + %*lF:+0:0:2: + %lF:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1lF:-0.0:0:-1: + %1lF:-0:0:-1: + %*1lF:-0:0:-1: +-%1lF:-NAN(09A_Zaz):0:-1: +-%*1lF:-NAN(09A_Zaz):0:-1: +-%1lF:-NAN():0:-1: +-%*1lF:-NAN():0:-1: +-%1lF:NAN():0:-1: +-%*1lF:NAN():0:-1: +-%1lF:NAN(09A_Zaz):0:-1: +-%*1lF:NAN(09A_Zaz):0:-1: ++# BZ30647 %1lF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1lF:-NAN():0:-1: ++# BZ30647 %*1lF:-NAN():0:-1: ++# BZ30647 %1lF:NAN():0:-1: ++# BZ30647 %*1lF:NAN():0:-1: ++# BZ30647 %1lF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lF:NAN(09A_Zaz):0:-1: + %1lF:0:1:1:0x0: + %*1lF:0:0:1: + %1lF:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1: + %1lF:INFINITY:0:-1: + %*1lF:INFINITY:0:-1: +-%1lF:+NAN():0:-1: +-%*1lF:+NAN():0:-1: +-%1lF:+NAN(09A_Zaz):0:-1: +-%*1lF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1lF:+NAN():0:-1: ++# BZ30647 %*1lF:+NAN():0:-1: ++# BZ30647 %1lF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lF:+NAN(09A_Zaz):0:-1: + %1lF:+0:0:-1: + %*1lF:+0:0:-1: + %1lF:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2lF:-0.0:0:2: + %2lF:-0:1:2:-0x0: + %*2lF:-0:0:2: +-%2lF:-NAN(09A_Zaz):0:-1: +-%*2lF:-NAN(09A_Zaz):0:-1: +-%2lF:-NAN():0:-1: +-%*2lF:-NAN():0:-1: +-%2lF:NAN():0:-1: +-%*2lF:NAN():0:-1: +-%2lF:NAN(09A_Zaz):0:-1: +-%*2lF:NAN(09A_Zaz):0:-1: ++# BZ30647 %2lF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2lF:-NAN():0:-1: ++# BZ30647 %*2lF:-NAN():0:-1: ++# BZ30647 %2lF:NAN():0:-1: ++# BZ30647 %*2lF:NAN():0:-1: ++# BZ30647 %2lF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lF:NAN(09A_Zaz):0:-1: + %2lF:0:1:1:0x0: + %*2lF:0:0:1: + %2lF:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: + %2lF:INFINITY:0:-1: + %*2lF:INFINITY:0:-1: +-%2lF:+NAN():0:-1: +-%*2lF:+NAN():0:-1: +-%2lF:+NAN(09A_Zaz):0:-1: +-%*2lF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2lF:+NAN():0:-1: ++# BZ30647 %*2lF:+NAN():0:-1: ++# BZ30647 %2lF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lF:+NAN(09A_Zaz):0:-1: + %2lF:+0:1:2:0x0: + %*2lF:+0:0:2: + %2lF:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3lF:-0.0:0:3: + %3lF:-0:1:2:-0x0: + %*3lF:-0:0:2: +-%3lF:-NAN(09A_Zaz):0:-1: +-%*3lF:-NAN(09A_Zaz):0:-1: +-%3lF:-NAN():0:-1: +-%*3lF:-NAN():0:-1: +-%3lF:NAN():1:3:nan: +-%*3lF:NAN():0:3: +-%3lF:NAN(09A_Zaz):1:3:nan: +-%*3lF:NAN(09A_Zaz):0:3: ++# BZ30647 %3lF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3lF:-NAN():0:-1: ++# BZ30647 %*3lF:-NAN():0:-1: ++# BZ30647 %3lF:NAN():1:3:nan: ++# BZ30647 %*3lF:NAN():0:3: ++# BZ30647 %3lF:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3lF:NAN(09A_Zaz):0:3: + %3lF:0:1:1:0x0: + %*3lF:0:0:1: + %3lF:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: + %3lF:INFINITY:1:3:inf: + %*3lF:INFINITY:0:3: +-%3lF:+NAN():0:-1: +-%*3lF:+NAN():0:-1: +-%3lF:+NAN(09A_Zaz):0:-1: +-%*3lF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3lF:+NAN():0:-1: ++# BZ30647 %*3lF:+NAN():0:-1: ++# BZ30647 %3lF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lF:+NAN(09A_Zaz):0:-1: + %3lF:+0:1:2:0x0: + %*3lF:+0:0:2: + %3lF:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4lF:-0.0:0:4: + %4lF:-0:1:2:-0x0: + %*4lF:-0:0:2: +-%4lF:-NAN(09A_Zaz):1:4:-nan: +-%*4lF:-NAN(09A_Zaz):0:4: +-%4lF:-NAN():1:4:-nan: +-%*4lF:-NAN():0:4: +-%4lF:NAN():0:-1: +-%*4lF:NAN():0:-1: +-%4lF:NAN(09A_Zaz):0:-1: +-%*4lF:NAN(09A_Zaz):0:-1: ++# BZ30647 %4lF:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4lF:-NAN(09A_Zaz):0:4: ++# BZ30647 %4lF:-NAN():1:4:-nan: ++# BZ30647 %*4lF:-NAN():0:4: ++# BZ30647 %4lF:NAN():0:-1: ++# BZ30647 %*4lF:NAN():0:-1: ++# BZ30647 %4lF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4lF:NAN(09A_Zaz):0:-1: + %4lF:0:1:1:0x0: + %*4lF:0:0:1: + %4lF:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: + %4lF:INFINITY:0:-1: + %*4lF:INFINITY:0:-1: +-%4lF:+NAN():1:4:nan: +-%*4lF:+NAN():0:4: +-%4lF:+NAN(09A_Zaz):1:4:nan: +-%*4lF:+NAN(09A_Zaz):0:4: ++# BZ30647 %4lF:+NAN():1:4:nan: ++# BZ30647 %*4lF:+NAN():0:4: ++# BZ30647 %4lF:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4lF:+NAN(09A_Zaz):0:4: + %4lF:+0:1:2:0x0: + %*4lF:+0:0:2: + %4lF:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*311lF:-0.0:0:4: + %311lF:-0:1:2:-0x0: + %*311lF:-0:0:2: +-%311lF:-NAN(09A_Zaz):1:13:-nan: +-%*311lF:-NAN(09A_Zaz):0:13: +-%311lF:-NAN():1:6:-nan: +-%*311lF:-NAN():0:6: +-%311lF:NAN():1:5:nan: +-%*311lF:NAN():0:5: +-%311lF:NAN(09A_Zaz):1:12:nan: +-%*311lF:NAN(09A_Zaz):0:12: ++# BZ30647 %311lF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*311lF:-NAN(09A_Zaz):0:13: ++# BZ30647 %311lF:-NAN():1:6:-nan: ++# BZ30647 %*311lF:-NAN():0:6: ++# BZ30647 %311lF:NAN():1:5:nan: ++# BZ30647 %*311lF:NAN():0:5: ++# BZ30647 %311lF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*311lF:NAN(09A_Zaz):0:12: + %311lF:0:1:1:0x0: + %*311lF:0:0:1: + %311lF:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*311lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: + %311lF:INFINITY:1:8:inf: + %*311lF:INFINITY:0:8: +-%311lF:+NAN():1:6:nan: +-%*311lF:+NAN():0:6: +-%311lF:+NAN(09A_Zaz):1:13:nan: +-%*311lF:+NAN(09A_Zaz):0:13: ++# BZ30647 %311lF:+NAN():1:6:nan: ++# BZ30647 %*311lF:+NAN():0:6: ++# BZ30647 %311lF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*311lF:+NAN(09A_Zaz):0:13: + %311lF:+0:1:2:0x0: + %*311lF:+0:0:2: + %311lF:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*350lF:-0.0:0:4: + %350lF:-0:1:2:-0x0: + %*350lF:-0:0:2: +-%350lF:-NAN(09A_Zaz):1:13:-nan: +-%*350lF:-NAN(09A_Zaz):0:13: +-%350lF:-NAN():1:6:-nan: +-%*350lF:-NAN():0:6: +-%350lF:NAN():1:5:nan: +-%*350lF:NAN():0:5: +-%350lF:NAN(09A_Zaz):1:12:nan: +-%*350lF:NAN(09A_Zaz):0:12: ++# BZ30647 %350lF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*350lF:-NAN(09A_Zaz):0:13: ++# BZ30647 %350lF:-NAN():1:6:-nan: ++# BZ30647 %*350lF:-NAN():0:6: ++# BZ30647 %350lF:NAN():1:5:nan: ++# BZ30647 %*350lF:NAN():0:5: ++# BZ30647 %350lF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*350lF:NAN(09A_Zaz):0:12: + %350lF:0:1:1:0x0: + %*350lF:0:0:1: + %350lF:0.0:1:3:0x0: +@@ -412,10 +412,10 @@ + %*350lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: + %350lF:INFINITY:1:8:inf: + %*350lF:INFINITY:0:8: +-%350lF:+NAN():1:6:nan: +-%*350lF:+NAN():0:6: +-%350lF:+NAN(09A_Zaz):1:13:nan: +-%*350lF:+NAN(09A_Zaz):0:13: ++# BZ30647 %350lF:+NAN():1:6:nan: ++# BZ30647 %*350lF:+NAN():0:6: ++# BZ30647 %350lF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*350lF:+NAN(09A_Zaz):0:13: + %350lF:+0:1:2:0x0: + %*350lF:+0:0:2: + %350lF:+0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*3lF: -0.0:0:4: + %3lF: -0:1:3:-0x0: + %*3lF: -0:0:3: +-%3lF: -NAN(09A_Zaz):0:-1: +-%*3lF: -NAN(09A_Zaz):0:-1: +-%3lF: -NAN():0:-1: +-%*3lF: -NAN():0:-1: +-%3lF: NAN():1:4:nan: +-%*3lF: NAN():0:4: +-%3lF: NAN(09A_Zaz):1:4:nan: +-%*3lF: NAN(09A_Zaz):0:4: ++# BZ30647 %3lF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3lF: -NAN():0:-1: ++# BZ30647 %*3lF: -NAN():0:-1: ++# BZ30647 %3lF: NAN():1:4:nan: ++# BZ30647 %*3lF: NAN():0:4: ++# BZ30647 %3lF: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3lF: NAN(09A_Zaz):0:4: + %3lF: 0:1:2:0x0: + %*3lF: 0:0:2: + %3lF: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*3lF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: + %3lF: INFINITY:1:4:inf: + %*3lF: INFINITY:0:4: +-%3lF: +NAN():0:-1: +-%*3lF: +NAN():0:-1: +-%3lF: +NAN(09A_Zaz):0:-1: +-%*3lF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3lF: +NAN():0:-1: ++# BZ30647 %*3lF: +NAN():0:-1: ++# BZ30647 %3lF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lF: +NAN(09A_Zaz):0:-1: + %3lF: +0:1:3:0x0: + %*3lF: +0:0:3: + %3lF: +0.0:1:4:0x0: +@@ -512,14 +512,14 @@ + %*350lF: -0.0:0:5: + %350lF: -0:1:3:-0x0: + %*350lF: -0:0:3: +-%350lF: -NAN(09A_Zaz):1:14:-nan: +-%*350lF: -NAN(09A_Zaz):0:14: +-%350lF: -NAN():1:7:-nan: +-%*350lF: -NAN():0:7: +-%350lF: NAN():1:6:nan: +-%*350lF: NAN():0:6: +-%350lF: NAN(09A_Zaz):1:13:nan: +-%*350lF: NAN(09A_Zaz):0:13: ++# BZ30647 %350lF: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*350lF: -NAN(09A_Zaz):0:14: ++# BZ30647 %350lF: -NAN():1:7:-nan: ++# BZ30647 %*350lF: -NAN():0:7: ++# BZ30647 %350lF: NAN():1:6:nan: ++# BZ30647 %*350lF: NAN():0:6: ++# BZ30647 %350lF: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*350lF: NAN(09A_Zaz):0:13: + %350lF: 0:1:2:0x0: + %*350lF: 0:0:2: + %350lF: 0.0:1:4:0x0: +@@ -536,10 +536,10 @@ + %*350lF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: + %350lF: INFINITY:1:9:inf: + %*350lF: INFINITY:0:9: +-%350lF: +NAN():1:7:nan: +-%*350lF: +NAN():0:7: +-%350lF: +NAN(09A_Zaz):1:14:nan: +-%*350lF: +NAN(09A_Zaz):0:14: ++# BZ30647 %350lF: +NAN():1:7:nan: ++# BZ30647 %*350lF: +NAN():0:7: ++# BZ30647 %350lF: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*350lF: +NAN(09A_Zaz):0:14: + %350lF: +0:1:3:0x0: + %*350lF: +0:0:3: + %350lF: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-g.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-g.input +index d499303451083898..cfbb71ebc4fa9558 100644 +--- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-g.input ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-g.input +@@ -16,14 +16,14 @@ + %*lg:-0x0p+0:0:7: + %lg:-0x0p0:1:6:-0x0: + %*lg:-0x0p0:0:6: +-%lg:-nan(09A_Zaz):1:13:-nan: +-%*lg:-nan(09A_Zaz):0:13: +-%lg:-nan():1:6:-nan: +-%*lg:-nan():0:6: +-%lg:nan():1:5:nan: +-%*lg:nan():0:5: +-%lg:nan(09A_Zaz):1:12:nan: +-%*lg:nan(09A_Zaz):0:12: ++# BZ30647 %lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*lg:-nan(09A_Zaz):0:13: ++# BZ30647 %lg:-nan():1:6:-nan: ++# BZ30647 %*lg:-nan():0:6: ++# BZ30647 %lg:nan():1:5:nan: ++# BZ30647 %*lg:nan():0:5: ++# BZ30647 %lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*lg:nan(09A_Zaz):0:12: + %lg:0x0p0:1:5:0x0: + %*lg:0x0p0:0:5: + %lg:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*lg:0xf.ffffffffffff8p+1020:0:23: + %lg:infinity:1:8:inf: + %*lg:infinity:0:8: +-%lg:+nan():1:6:nan: +-%*lg:+nan():0:6: +-%lg:+nan(09A_Zaz):1:13:nan: +-%*lg:+nan(09A_Zaz):0:13: ++# BZ30647 %lg:+nan():1:6:nan: ++# BZ30647 %*lg:+nan():0:6: ++# BZ30647 %lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*lg:+nan(09A_Zaz):0:13: + %lg:+0x0p0:1:6:0x0: + %*lg:+0x0p0:0:6: + %lg:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1lg:-0x0p+0:0:-1: + %1lg:-0x0p0:0:-1: + %*1lg:-0x0p0:0:-1: +-%1lg:-nan(09A_Zaz):0:-1: +-%*1lg:-nan(09A_Zaz):0:-1: +-%1lg:-nan():0:-1: +-%*1lg:-nan():0:-1: +-%1lg:nan():0:-1: +-%*1lg:nan():0:-1: +-%1lg:nan(09A_Zaz):0:-1: +-%*1lg:nan(09A_Zaz):0:-1: ++# BZ30647 %1lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %1lg:-nan():0:-1: ++# BZ30647 %*1lg:-nan():0:-1: ++# BZ30647 %1lg:nan():0:-1: ++# BZ30647 %*1lg:nan():0:-1: ++# BZ30647 %1lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*1lg:nan(09A_Zaz):0:-1: + %1lg:0x0p0:1:1:0x0: + %*1lg:0x0p0:0:1: + %1lg:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1lg:0xf.ffffffffffff8p+1020:0:1: + %1lg:infinity:0:-1: + %*1lg:infinity:0:-1: +-%1lg:+nan():0:-1: +-%*1lg:+nan():0:-1: +-%1lg:+nan(09A_Zaz):0:-1: +-%*1lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %1lg:+nan():0:-1: ++# BZ30647 %*1lg:+nan():0:-1: ++# BZ30647 %1lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1lg:+nan(09A_Zaz):0:-1: + %1lg:+0x0p0:0:-1: + %*1lg:+0x0p0:0:-1: + %1lg:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2lg:-0x0p+0:0:2: + %2lg:-0x0p0:1:2:-0x0: + %*2lg:-0x0p0:0:2: +-%2lg:-nan(09A_Zaz):0:-1: +-%*2lg:-nan(09A_Zaz):0:-1: +-%2lg:-nan():0:-1: +-%*2lg:-nan():0:-1: +-%2lg:nan():0:-1: +-%*2lg:nan():0:-1: +-%2lg:nan(09A_Zaz):0:-1: +-%*2lg:nan(09A_Zaz):0:-1: ++# BZ30647 %2lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %2lg:-nan():0:-1: ++# BZ30647 %*2lg:-nan():0:-1: ++# BZ30647 %2lg:nan():0:-1: ++# BZ30647 %*2lg:nan():0:-1: ++# BZ30647 %2lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*2lg:nan(09A_Zaz):0:-1: + # BZ12701 %2lg:0x0p0:0:-1: + # BZ12701 %*2lg:0x0p0:0:-1: + # BZ12701 %2lg:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2lg:0xf.ffffffffffff8p+1020:0:-1: + %2lg:infinity:0:-1: + %*2lg:infinity:0:-1: +-%2lg:+nan():0:-1: +-%*2lg:+nan():0:-1: +-%2lg:+nan(09A_Zaz):0:-1: +-%*2lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %2lg:+nan():0:-1: ++# BZ30647 %*2lg:+nan():0:-1: ++# BZ30647 %2lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2lg:+nan(09A_Zaz):0:-1: + %2lg:+0x0p0:1:2:0x0: + %*2lg:+0x0p0:0:2: + %2lg:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3lg:-0x0p+0:0:-1: + # BZ12701 %3lg:-0x0p0:0:-1: + # BZ12701 %*3lg:-0x0p0:0:-1: +-%3lg:-nan(09A_Zaz):0:-1: +-%*3lg:-nan(09A_Zaz):0:-1: +-%3lg:-nan():0:-1: +-%*3lg:-nan():0:-1: +-%3lg:nan():1:3:nan: +-%*3lg:nan():0:3: +-%3lg:nan(09A_Zaz):1:3:nan: +-%*3lg:nan(09A_Zaz):0:3: ++# BZ30647 %3lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %3lg:-nan():0:-1: ++# BZ30647 %*3lg:-nan():0:-1: ++# BZ30647 %3lg:nan():1:3:nan: ++# BZ30647 %*3lg:nan():0:3: ++# BZ30647 %3lg:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3lg:nan(09A_Zaz):0:3: + %3lg:0x0p0:1:3:0x0: + %*3lg:0x0p0:0:3: + %3lg:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3lg:0xf.ffffffffffff8p+1020:0:3: + %3lg:infinity:1:3:inf: + %*3lg:infinity:0:3: +-%3lg:+nan():0:-1: +-%*3lg:+nan():0:-1: +-%3lg:+nan(09A_Zaz):0:-1: +-%*3lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %3lg:+nan():0:-1: ++# BZ30647 %*3lg:+nan():0:-1: ++# BZ30647 %3lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3lg:+nan(09A_Zaz):0:-1: + # BZ12701 %3lg:+0x0p0:0:-1: + # BZ12701 %*3lg:+0x0p0:0:-1: + # BZ12701 %3lg:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4lg:-0x0p+0:0:4: + %4lg:-0x0p0:1:4:-0x0: + %*4lg:-0x0p0:0:4: +-%4lg:-nan(09A_Zaz):1:4:-nan: +-%*4lg:-nan(09A_Zaz):0:4: +-%4lg:-nan():1:4:-nan: +-%*4lg:-nan():0:4: +-%4lg:nan():0:-1: +-%*4lg:nan():0:-1: +-%4lg:nan(09A_Zaz):0:-1: +-%*4lg:nan(09A_Zaz):0:-1: ++# BZ30647 %4lg:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4lg:-nan(09A_Zaz):0:4: ++# BZ30647 %4lg:-nan():1:4:-nan: ++# BZ30647 %*4lg:-nan():0:4: ++# BZ30647 %4lg:nan():0:-1: ++# BZ30647 %*4lg:nan():0:-1: ++# BZ30647 %4lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*4lg:nan(09A_Zaz):0:-1: + # BZ12701 %4lg:0x0p0:0:-1: + # BZ12701 %*4lg:0x0p0:0:-1: + # BZ12701 %4lg:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4lg:0xf.ffffffffffff8p+1020:0:4: + %4lg:infinity:0:-1: + %*4lg:infinity:0:-1: +-%4lg:+nan():1:4:nan: +-%*4lg:+nan():0:4: +-%4lg:+nan(09A_Zaz):1:4:nan: +-%*4lg:+nan(09A_Zaz):0:4: ++# BZ30647 %4lg:+nan():1:4:nan: ++# BZ30647 %*4lg:+nan():0:4: ++# BZ30647 %4lg:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4lg:+nan(09A_Zaz):0:4: + %4lg:+0x0p0:1:4:0x0: + %*4lg:+0x0p0:0:4: + %4lg:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5lg:-0x0p+0:0:-1: + # BZ12701 %5lg:-0x0p0:0:-1: + # BZ12701 %*5lg:-0x0p0:0:-1: +-%5lg:-nan(09A_Zaz):0:-1: +-%*5lg:-nan(09A_Zaz):0:-1: +-%5lg:-nan():0:-1: +-%*5lg:-nan():0:-1: +-%5lg:nan():1:5:nan: +-%*5lg:nan():0:5: +-%5lg:nan(09A_Zaz):0:-1: +-%*5lg:nan(09A_Zaz):0:-1: ++# BZ30647 %5lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %5lg:-nan():0:-1: ++# BZ30647 %*5lg:-nan():0:-1: ++# BZ30647 %5lg:nan():1:5:nan: ++# BZ30647 %*5lg:nan():0:5: ++# BZ30647 %5lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*5lg:nan(09A_Zaz):0:-1: + %5lg:0x0p0:1:5:0x0: + %*5lg:0x0p0:0:5: + # BZ12701 %5lg:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5lg:0xf.ffffffffffff8p+1020:0:5: + %5lg:infinity:0:-1: + %*5lg:infinity:0:-1: +-%5lg:+nan():0:-1: +-%*5lg:+nan():0:-1: +-%5lg:+nan(09A_Zaz):0:-1: +-%*5lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %5lg:+nan():0:-1: ++# BZ30647 %*5lg:+nan():0:-1: ++# BZ30647 %5lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5lg:+nan(09A_Zaz):0:-1: + # BZ12701 %5lg:+0x0p0:0:-1: + # BZ12701 %*5lg:+0x0p0:0:-1: + # BZ12701 %5lg:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6lg:-0x0p+0:0:-1: + %6lg:-0x0p0:1:6:-0x0: + %*6lg:-0x0p0:0:6: +-%6lg:-nan(09A_Zaz):0:-1: +-%*6lg:-nan(09A_Zaz):0:-1: +-%6lg:-nan():1:6:-nan: +-%*6lg:-nan():0:6: +-%6lg:nan():1:5:nan: +-%*6lg:nan():0:5: +-%6lg:nan(09A_Zaz):0:-1: +-%*6lg:nan(09A_Zaz):0:-1: ++# BZ30647 %6lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %6lg:-nan():1:6:-nan: ++# BZ30647 %*6lg:-nan():0:6: ++# BZ30647 %6lg:nan():1:5:nan: ++# BZ30647 %*6lg:nan():0:5: ++# BZ30647 %6lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*6lg:nan(09A_Zaz):0:-1: + %6lg:0x0p0:1:5:0x0: + %*6lg:0x0p0:0:5: + %6lg:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6lg:0xf.ffffffffffff8p+1020:0:6: + %6lg:infinity:0:-1: + %*6lg:infinity:0:-1: +-%6lg:+nan():1:6:nan: +-%*6lg:+nan():0:6: +-%6lg:+nan(09A_Zaz):0:-1: +-%*6lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %6lg:+nan():1:6:nan: ++# BZ30647 %*6lg:+nan():0:6: ++# BZ30647 %6lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6lg:+nan(09A_Zaz):0:-1: + %6lg:+0x0p0:1:6:0x0: + %*6lg:+0x0p0:0:6: + # BZ12701 %6lg:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*20lg:-0x0p+0:0:7: + %20lg:-0x0p0:1:6:-0x0: + %*20lg:-0x0p0:0:6: +-%20lg:-nan(09A_Zaz):1:13:-nan: +-%*20lg:-nan(09A_Zaz):0:13: +-%20lg:-nan():1:6:-nan: +-%*20lg:-nan():0:6: +-%20lg:nan():1:5:nan: +-%*20lg:nan():0:5: +-%20lg:nan(09A_Zaz):1:12:nan: +-%*20lg:nan(09A_Zaz):0:12: ++# BZ30647 %20lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*20lg:-nan(09A_Zaz):0:13: ++# BZ30647 %20lg:-nan():1:6:-nan: ++# BZ30647 %*20lg:-nan():0:6: ++# BZ30647 %20lg:nan():1:5:nan: ++# BZ30647 %*20lg:nan():0:5: ++# BZ30647 %20lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*20lg:nan(09A_Zaz):0:12: + %20lg:0x0p0:1:5:0x0: + %*20lg:0x0p0:0:5: + %20lg:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*20lg:0xf.ffffffffffff8p+1020:0:20: + %20lg:infinity:1:8:inf: + %*20lg:infinity:0:8: +-%20lg:+nan():1:6:nan: +-%*20lg:+nan():0:6: +-%20lg:+nan(09A_Zaz):1:13:nan: +-%*20lg:+nan(09A_Zaz):0:13: ++# BZ30647 %20lg:+nan():1:6:nan: ++# BZ30647 %*20lg:+nan():0:6: ++# BZ30647 %20lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*20lg:+nan(09A_Zaz):0:13: + %20lg:+0x0p0:1:6:0x0: + %*20lg:+0x0p0:0:6: + %20lg:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*32lg:-0x0p+0:0:7: + %32lg:-0x0p0:1:6:-0x0: + %*32lg:-0x0p0:0:6: +-%32lg:-nan(09A_Zaz):1:13:-nan: +-%*32lg:-nan(09A_Zaz):0:13: +-%32lg:-nan():1:6:-nan: +-%*32lg:-nan():0:6: +-%32lg:nan():1:5:nan: +-%*32lg:nan():0:5: +-%32lg:nan(09A_Zaz):1:12:nan: +-%*32lg:nan(09A_Zaz):0:12: ++# BZ30647 %32lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*32lg:-nan(09A_Zaz):0:13: ++# BZ30647 %32lg:-nan():1:6:-nan: ++# BZ30647 %*32lg:-nan():0:6: ++# BZ30647 %32lg:nan():1:5:nan: ++# BZ30647 %*32lg:nan():0:5: ++# BZ30647 %32lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*32lg:nan(09A_Zaz):0:12: + %32lg:0x0p0:1:5:0x0: + %*32lg:0x0p0:0:5: + %32lg:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*32lg:0xf.ffffffffffff8p+1020:0:23: + %32lg:infinity:1:8:inf: + %*32lg:infinity:0:8: +-%32lg:+nan():1:6:nan: +-%*32lg:+nan():0:6: +-%32lg:+nan(09A_Zaz):1:13:nan: +-%*32lg:+nan(09A_Zaz):0:13: ++# BZ30647 %32lg:+nan():1:6:nan: ++# BZ30647 %*32lg:+nan():0:6: ++# BZ30647 %32lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*32lg:+nan(09A_Zaz):0:13: + %32lg:+0x0p0:1:6:0x0: + %*32lg:+0x0p0:0:6: + %32lg:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5lg: -0x0p+0:0:-1: + # BZ12701 %5lg: -0x0p0:0:-1: + # BZ12701 %*5lg: -0x0p0:0:-1: +-%5lg: -nan(09A_Zaz):0:-1: +-%*5lg: -nan(09A_Zaz):0:-1: +-%5lg: -nan():0:-1: +-%*5lg: -nan():0:-1: +-%5lg: nan():1:6:nan: +-%*5lg: nan():0:6: +-%5lg: nan(09A_Zaz):0:-1: +-%*5lg: nan(09A_Zaz):0:-1: ++# BZ30647 %5lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %5lg: -nan():0:-1: ++# BZ30647 %*5lg: -nan():0:-1: ++# BZ30647 %5lg: nan():1:6:nan: ++# BZ30647 %*5lg: nan():0:6: ++# BZ30647 %5lg: nan(09A_Zaz):0:-1: ++# BZ30647 %*5lg: nan(09A_Zaz):0:-1: + %5lg: 0x0p0:1:6:0x0: + %*5lg: 0x0p0:0:6: + # BZ12701 %5lg: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5lg: 0xf.ffffffffffff8p+1020:0:6: + %5lg: infinity:0:-1: + %*5lg: infinity:0:-1: +-%5lg: +nan():0:-1: +-%*5lg: +nan():0:-1: +-%5lg: +nan(09A_Zaz):0:-1: +-%*5lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %5lg: +nan():0:-1: ++# BZ30647 %*5lg: +nan():0:-1: ++# BZ30647 %5lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5lg: +nan(09A_Zaz):0:-1: + # BZ12701 %5lg: +0x0p0:0:-1: + # BZ12701 %*5lg: +0x0p0:0:-1: + # BZ12701 %5lg: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*32lg: -0x0p+0:0:8: + %32lg: -0x0p0:1:7:-0x0: + %*32lg: -0x0p0:0:7: +-%32lg: -nan(09A_Zaz):1:14:-nan: +-%*32lg: -nan(09A_Zaz):0:14: +-%32lg: -nan():1:7:-nan: +-%*32lg: -nan():0:7: +-%32lg: nan():1:6:nan: +-%*32lg: nan():0:6: +-%32lg: nan(09A_Zaz):1:13:nan: +-%*32lg: nan(09A_Zaz):0:13: ++# BZ30647 %32lg: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*32lg: -nan(09A_Zaz):0:14: ++# BZ30647 %32lg: -nan():1:7:-nan: ++# BZ30647 %*32lg: -nan():0:7: ++# BZ30647 %32lg: nan():1:6:nan: ++# BZ30647 %*32lg: nan():0:6: ++# BZ30647 %32lg: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*32lg: nan(09A_Zaz):0:13: + %32lg: 0x0p0:1:6:0x0: + %*32lg: 0x0p0:0:6: + %32lg: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*32lg: 0xf.ffffffffffff8p+1020:0:24: + %32lg: infinity:1:9:inf: + %*32lg: infinity:0:9: +-%32lg: +nan():1:7:nan: +-%*32lg: +nan():0:7: +-%32lg: +nan(09A_Zaz):1:14:nan: +-%*32lg: +nan(09A_Zaz):0:14: ++# BZ30647 %32lg: +nan():1:7:nan: ++# BZ30647 %*32lg: +nan():0:7: ++# BZ30647 %32lg: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*32lg: +nan(09A_Zaz):0:14: + %32lg: +0x0p0:1:7:0x0: + %*32lg: +0x0p0:0:7: + %32lg: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-gg.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-gg.input +index eb8bb9f48ebddc7c..04255525e87c3aa3 100644 +--- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-gg.input ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-gg.input +@@ -16,14 +16,14 @@ + %*lG:-0X0P+0:0:7: + %lG:-0X0P0:1:6:-0x0: + %*lG:-0X0P0:0:6: +-%lG:-NAN(09A_Zaz):1:13:-nan: +-%*lG:-NAN(09A_Zaz):0:13: +-%lG:-NAN():1:6:-nan: +-%*lG:-NAN():0:6: +-%lG:NAN():1:5:nan: +-%*lG:NAN():0:5: +-%lG:NAN(09A_Zaz):1:12:nan: +-%*lG:NAN(09A_Zaz):0:12: ++# BZ30647 %lG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*lG:-NAN(09A_Zaz):0:13: ++# BZ30647 %lG:-NAN():1:6:-nan: ++# BZ30647 %*lG:-NAN():0:6: ++# BZ30647 %lG:NAN():1:5:nan: ++# BZ30647 %*lG:NAN():0:5: ++# BZ30647 %lG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*lG:NAN(09A_Zaz):0:12: + %lG:0X0P0:1:5:0x0: + %*lG:0X0P0:0:5: + %lG:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*lG:0XF.FFFFFFFFFFFF8P+1020:0:23: + %lG:INFINITY:1:8:inf: + %*lG:INFINITY:0:8: +-%lG:+NAN():1:6:nan: +-%*lG:+NAN():0:6: +-%lG:+NAN(09A_Zaz):1:13:nan: +-%*lG:+NAN(09A_Zaz):0:13: ++# BZ30647 %lG:+NAN():1:6:nan: ++# BZ30647 %*lG:+NAN():0:6: ++# BZ30647 %lG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*lG:+NAN(09A_Zaz):0:13: + %lG:+0X0P0:1:6:0x0: + %*lG:+0X0P0:0:6: + %lG:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1lG:-0X0P+0:0:-1: + %1lG:-0X0P0:0:-1: + %*1lG:-0X0P0:0:-1: +-%1lG:-NAN(09A_Zaz):0:-1: +-%*1lG:-NAN(09A_Zaz):0:-1: +-%1lG:-NAN():0:-1: +-%*1lG:-NAN():0:-1: +-%1lG:NAN():0:-1: +-%*1lG:NAN():0:-1: +-%1lG:NAN(09A_Zaz):0:-1: +-%*1lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %1lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1lG:-NAN():0:-1: ++# BZ30647 %*1lG:-NAN():0:-1: ++# BZ30647 %1lG:NAN():0:-1: ++# BZ30647 %*1lG:NAN():0:-1: ++# BZ30647 %1lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lG:NAN(09A_Zaz):0:-1: + %1lG:0X0P0:1:1:0x0: + %*1lG:0X0P0:0:1: + %1lG:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1lG:0XF.FFFFFFFFFFFF8P+1020:0:1: + %1lG:INFINITY:0:-1: + %*1lG:INFINITY:0:-1: +-%1lG:+NAN():0:-1: +-%*1lG:+NAN():0:-1: +-%1lG:+NAN(09A_Zaz):0:-1: +-%*1lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1lG:+NAN():0:-1: ++# BZ30647 %*1lG:+NAN():0:-1: ++# BZ30647 %1lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lG:+NAN(09A_Zaz):0:-1: + %1lG:+0X0P0:0:-1: + %*1lG:+0X0P0:0:-1: + %1lG:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2lG:-0X0P+0:0:2: + %2lG:-0X0P0:1:2:-0x0: + %*2lG:-0X0P0:0:2: +-%2lG:-NAN(09A_Zaz):0:-1: +-%*2lG:-NAN(09A_Zaz):0:-1: +-%2lG:-NAN():0:-1: +-%*2lG:-NAN():0:-1: +-%2lG:NAN():0:-1: +-%*2lG:NAN():0:-1: +-%2lG:NAN(09A_Zaz):0:-1: +-%*2lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %2lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2lG:-NAN():0:-1: ++# BZ30647 %*2lG:-NAN():0:-1: ++# BZ30647 %2lG:NAN():0:-1: ++# BZ30647 %*2lG:NAN():0:-1: ++# BZ30647 %2lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lG:NAN(09A_Zaz):0:-1: + # BZ12701 %2lG:0X0P0:0:-1: + # BZ12701 %*2lG:0X0P0:0:-1: + # BZ12701 %2lG:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2lG:0XF.FFFFFFFFFFFF8P+1020:0:-1: + %2lG:INFINITY:0:-1: + %*2lG:INFINITY:0:-1: +-%2lG:+NAN():0:-1: +-%*2lG:+NAN():0:-1: +-%2lG:+NAN(09A_Zaz):0:-1: +-%*2lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2lG:+NAN():0:-1: ++# BZ30647 %*2lG:+NAN():0:-1: ++# BZ30647 %2lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lG:+NAN(09A_Zaz):0:-1: + %2lG:+0X0P0:1:2:0x0: + %*2lG:+0X0P0:0:2: + %2lG:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3lG:-0X0P+0:0:-1: + # BZ12701 %3lG:-0X0P0:0:-1: + # BZ12701 %*3lG:-0X0P0:0:-1: +-%3lG:-NAN(09A_Zaz):0:-1: +-%*3lG:-NAN(09A_Zaz):0:-1: +-%3lG:-NAN():0:-1: +-%*3lG:-NAN():0:-1: +-%3lG:NAN():1:3:nan: +-%*3lG:NAN():0:3: +-%3lG:NAN(09A_Zaz):1:3:nan: +-%*3lG:NAN(09A_Zaz):0:3: ++# BZ30647 %3lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3lG:-NAN():0:-1: ++# BZ30647 %*3lG:-NAN():0:-1: ++# BZ30647 %3lG:NAN():1:3:nan: ++# BZ30647 %*3lG:NAN():0:3: ++# BZ30647 %3lG:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3lG:NAN(09A_Zaz):0:3: + %3lG:0X0P0:1:3:0x0: + %*3lG:0X0P0:0:3: + %3lG:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3lG:0XF.FFFFFFFFFFFF8P+1020:0:3: + %3lG:INFINITY:1:3:inf: + %*3lG:INFINITY:0:3: +-%3lG:+NAN():0:-1: +-%*3lG:+NAN():0:-1: +-%3lG:+NAN(09A_Zaz):0:-1: +-%*3lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3lG:+NAN():0:-1: ++# BZ30647 %*3lG:+NAN():0:-1: ++# BZ30647 %3lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lG:+NAN(09A_Zaz):0:-1: + # BZ12701 %3lG:+0X0P0:0:-1: + # BZ12701 %*3lG:+0X0P0:0:-1: + # BZ12701 %3lG:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4lG:-0X0P+0:0:4: + %4lG:-0X0P0:1:4:-0x0: + %*4lG:-0X0P0:0:4: +-%4lG:-NAN(09A_Zaz):1:4:-nan: +-%*4lG:-NAN(09A_Zaz):0:4: +-%4lG:-NAN():1:4:-nan: +-%*4lG:-NAN():0:4: +-%4lG:NAN():0:-1: +-%*4lG:NAN():0:-1: +-%4lG:NAN(09A_Zaz):0:-1: +-%*4lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %4lG:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4lG:-NAN(09A_Zaz):0:4: ++# BZ30647 %4lG:-NAN():1:4:-nan: ++# BZ30647 %*4lG:-NAN():0:4: ++# BZ30647 %4lG:NAN():0:-1: ++# BZ30647 %*4lG:NAN():0:-1: ++# BZ30647 %4lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4lG:NAN(09A_Zaz):0:-1: + # BZ12701 %4lG:0X0P0:0:-1: + # BZ12701 %*4lG:0X0P0:0:-1: + # BZ12701 %4lG:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4lG:0XF.FFFFFFFFFFFF8P+1020:0:4: + %4lG:INFINITY:0:-1: + %*4lG:INFINITY:0:-1: +-%4lG:+NAN():1:4:nan: +-%*4lG:+NAN():0:4: +-%4lG:+NAN(09A_Zaz):1:4:nan: +-%*4lG:+NAN(09A_Zaz):0:4: ++# BZ30647 %4lG:+NAN():1:4:nan: ++# BZ30647 %*4lG:+NAN():0:4: ++# BZ30647 %4lG:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4lG:+NAN(09A_Zaz):0:4: + %4lG:+0X0P0:1:4:0x0: + %*4lG:+0X0P0:0:4: + %4lG:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5lG:-0X0P+0:0:-1: + # BZ12701 %5lG:-0X0P0:0:-1: + # BZ12701 %*5lG:-0X0P0:0:-1: +-%5lG:-NAN(09A_Zaz):0:-1: +-%*5lG:-NAN(09A_Zaz):0:-1: +-%5lG:-NAN():0:-1: +-%*5lG:-NAN():0:-1: +-%5lG:NAN():1:5:nan: +-%*5lG:NAN():0:5: +-%5lG:NAN(09A_Zaz):0:-1: +-%*5lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %5lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5lG:-NAN():0:-1: ++# BZ30647 %*5lG:-NAN():0:-1: ++# BZ30647 %5lG:NAN():1:5:nan: ++# BZ30647 %*5lG:NAN():0:5: ++# BZ30647 %5lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lG:NAN(09A_Zaz):0:-1: + %5lG:0X0P0:1:5:0x0: + %*5lG:0X0P0:0:5: + # BZ12701 %5lG:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5lG:0XF.FFFFFFFFFFFF8P+1020:0:5: + %5lG:INFINITY:0:-1: + %*5lG:INFINITY:0:-1: +-%5lG:+NAN():0:-1: +-%*5lG:+NAN():0:-1: +-%5lG:+NAN(09A_Zaz):0:-1: +-%*5lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5lG:+NAN():0:-1: ++# BZ30647 %*5lG:+NAN():0:-1: ++# BZ30647 %5lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lG:+NAN(09A_Zaz):0:-1: + # BZ12701 %5lG:+0X0P0:0:-1: + # BZ12701 %*5lG:+0X0P0:0:-1: + # BZ12701 %5lG:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6lG:-0X0P+0:0:-1: + %6lG:-0X0P0:1:6:-0x0: + %*6lG:-0X0P0:0:6: +-%6lG:-NAN(09A_Zaz):0:-1: +-%*6lG:-NAN(09A_Zaz):0:-1: +-%6lG:-NAN():1:6:-nan: +-%*6lG:-NAN():0:6: +-%6lG:NAN():1:5:nan: +-%*6lG:NAN():0:5: +-%6lG:NAN(09A_Zaz):0:-1: +-%*6lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %6lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6lG:-NAN():1:6:-nan: ++# BZ30647 %*6lG:-NAN():0:6: ++# BZ30647 %6lG:NAN():1:5:nan: ++# BZ30647 %*6lG:NAN():0:5: ++# BZ30647 %6lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6lG:NAN(09A_Zaz):0:-1: + %6lG:0X0P0:1:5:0x0: + %*6lG:0X0P0:0:5: + %6lG:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6lG:0XF.FFFFFFFFFFFF8P+1020:0:6: + %6lG:INFINITY:0:-1: + %*6lG:INFINITY:0:-1: +-%6lG:+NAN():1:6:nan: +-%*6lG:+NAN():0:6: +-%6lG:+NAN(09A_Zaz):0:-1: +-%*6lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6lG:+NAN():1:6:nan: ++# BZ30647 %*6lG:+NAN():0:6: ++# BZ30647 %6lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6lG:+NAN(09A_Zaz):0:-1: + %6lG:+0X0P0:1:6:0x0: + %*6lG:+0X0P0:0:6: + # BZ12701 %6lG:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*20lG:-0X0P+0:0:7: + %20lG:-0X0P0:1:6:-0x0: + %*20lG:-0X0P0:0:6: +-%20lG:-NAN(09A_Zaz):1:13:-nan: +-%*20lG:-NAN(09A_Zaz):0:13: +-%20lG:-NAN():1:6:-nan: +-%*20lG:-NAN():0:6: +-%20lG:NAN():1:5:nan: +-%*20lG:NAN():0:5: +-%20lG:NAN(09A_Zaz):1:12:nan: +-%*20lG:NAN(09A_Zaz):0:12: ++# BZ30647 %20lG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*20lG:-NAN(09A_Zaz):0:13: ++# BZ30647 %20lG:-NAN():1:6:-nan: ++# BZ30647 %*20lG:-NAN():0:6: ++# BZ30647 %20lG:NAN():1:5:nan: ++# BZ30647 %*20lG:NAN():0:5: ++# BZ30647 %20lG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*20lG:NAN(09A_Zaz):0:12: + %20lG:0X0P0:1:5:0x0: + %*20lG:0X0P0:0:5: + %20lG:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*20lG:0XF.FFFFFFFFFFFF8P+1020:0:20: + %20lG:INFINITY:1:8:inf: + %*20lG:INFINITY:0:8: +-%20lG:+NAN():1:6:nan: +-%*20lG:+NAN():0:6: +-%20lG:+NAN(09A_Zaz):1:13:nan: +-%*20lG:+NAN(09A_Zaz):0:13: ++# BZ30647 %20lG:+NAN():1:6:nan: ++# BZ30647 %*20lG:+NAN():0:6: ++# BZ30647 %20lG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*20lG:+NAN(09A_Zaz):0:13: + %20lG:+0X0P0:1:6:0x0: + %*20lG:+0X0P0:0:6: + %20lG:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*32lG:-0X0P+0:0:7: + %32lG:-0X0P0:1:6:-0x0: + %*32lG:-0X0P0:0:6: +-%32lG:-NAN(09A_Zaz):1:13:-nan: +-%*32lG:-NAN(09A_Zaz):0:13: +-%32lG:-NAN():1:6:-nan: +-%*32lG:-NAN():0:6: +-%32lG:NAN():1:5:nan: +-%*32lG:NAN():0:5: +-%32lG:NAN(09A_Zaz):1:12:nan: +-%*32lG:NAN(09A_Zaz):0:12: ++# BZ30647 %32lG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*32lG:-NAN(09A_Zaz):0:13: ++# BZ30647 %32lG:-NAN():1:6:-nan: ++# BZ30647 %*32lG:-NAN():0:6: ++# BZ30647 %32lG:NAN():1:5:nan: ++# BZ30647 %*32lG:NAN():0:5: ++# BZ30647 %32lG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*32lG:NAN(09A_Zaz):0:12: + %32lG:0X0P0:1:5:0x0: + %*32lG:0X0P0:0:5: + %32lG:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*32lG:0XF.FFFFFFFFFFFF8P+1020:0:23: + %32lG:INFINITY:1:8:inf: + %*32lG:INFINITY:0:8: +-%32lG:+NAN():1:6:nan: +-%*32lG:+NAN():0:6: +-%32lG:+NAN(09A_Zaz):1:13:nan: +-%*32lG:+NAN(09A_Zaz):0:13: ++# BZ30647 %32lG:+NAN():1:6:nan: ++# BZ30647 %*32lG:+NAN():0:6: ++# BZ30647 %32lG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*32lG:+NAN(09A_Zaz):0:13: + %32lG:+0X0P0:1:6:0x0: + %*32lG:+0X0P0:0:6: + %32lG:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5lG: -0X0P+0:0:-1: + # BZ12701 %5lG: -0X0P0:0:-1: + # BZ12701 %*5lG: -0X0P0:0:-1: +-%5lG: -NAN(09A_Zaz):0:-1: +-%*5lG: -NAN(09A_Zaz):0:-1: +-%5lG: -NAN():0:-1: +-%*5lG: -NAN():0:-1: +-%5lG: NAN():1:6:nan: +-%*5lG: NAN():0:6: +-%5lG: NAN(09A_Zaz):0:-1: +-%*5lG: NAN(09A_Zaz):0:-1: ++# BZ30647 %5lG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5lG: -NAN():0:-1: ++# BZ30647 %*5lG: -NAN():0:-1: ++# BZ30647 %5lG: NAN():1:6:nan: ++# BZ30647 %*5lG: NAN():0:6: ++# BZ30647 %5lG: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lG: NAN(09A_Zaz):0:-1: + %5lG: 0X0P0:1:6:0x0: + %*5lG: 0X0P0:0:6: + # BZ12701 %5lG: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5lG: 0XF.FFFFFFFFFFFF8P+1020:0:6: + %5lG: INFINITY:0:-1: + %*5lG: INFINITY:0:-1: +-%5lG: +NAN():0:-1: +-%*5lG: +NAN():0:-1: +-%5lG: +NAN(09A_Zaz):0:-1: +-%*5lG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5lG: +NAN():0:-1: ++# BZ30647 %*5lG: +NAN():0:-1: ++# BZ30647 %5lG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lG: +NAN(09A_Zaz):0:-1: + # BZ12701 %5lG: +0X0P0:0:-1: + # BZ12701 %*5lG: +0X0P0:0:-1: + # BZ12701 %5lG: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*32lG: -0X0P+0:0:8: + %32lG: -0X0P0:1:7:-0x0: + %*32lG: -0X0P0:0:7: +-%32lG: -NAN(09A_Zaz):1:14:-nan: +-%*32lG: -NAN(09A_Zaz):0:14: +-%32lG: -NAN():1:7:-nan: +-%*32lG: -NAN():0:7: +-%32lG: NAN():1:6:nan: +-%*32lG: NAN():0:6: +-%32lG: NAN(09A_Zaz):1:13:nan: +-%*32lG: NAN(09A_Zaz):0:13: ++# BZ30647 %32lG: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*32lG: -NAN(09A_Zaz):0:14: ++# BZ30647 %32lG: -NAN():1:7:-nan: ++# BZ30647 %*32lG: -NAN():0:7: ++# BZ30647 %32lG: NAN():1:6:nan: ++# BZ30647 %*32lG: NAN():0:6: ++# BZ30647 %32lG: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*32lG: NAN(09A_Zaz):0:13: + %32lG: 0X0P0:1:6:0x0: + %*32lG: 0X0P0:0:6: + %32lG: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*32lG: 0XF.FFFFFFFFFFFF8P+1020:0:24: + %32lG: INFINITY:1:9:inf: + %*32lG: INFINITY:0:9: +-%32lG: +NAN():1:7:nan: +-%*32lG: +NAN():0:7: +-%32lG: +NAN(09A_Zaz):1:14:nan: +-%*32lG: +NAN(09A_Zaz):0:14: ++# BZ30647 %32lG: +NAN():1:7:nan: ++# BZ30647 %*32lG: +NAN():0:7: ++# BZ30647 %32lG: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*32lG: +NAN(09A_Zaz):0:14: + %32lG: +0X0P0:1:7:0x0: + %*32lG: +0X0P0:0:7: + %32lG: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-a.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-a.input +index 196cb734b277653e..6e32c8d4b1390ab0 100644 +--- a/sysdeps/ieee754/flt-32/tst-scanf-format-float-a.input ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-a.input +@@ -16,14 +16,14 @@ + %*a:-0x0p+0:0:7: + %a:-0x0p0:1:6:-0x0: + %*a:-0x0p0:0:6: +-%a:-nan(09A_Zaz):1:13:-nan: +-%*a:-nan(09A_Zaz):0:13: +-%a:-nan():1:6:-nan: +-%*a:-nan():0:6: +-%a:nan():1:5:nan: +-%*a:nan():0:5: +-%a:nan(09A_Zaz):1:12:nan: +-%*a:nan(09A_Zaz):0:12: ++# BZ30647 %a:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*a:-nan(09A_Zaz):0:13: ++# BZ30647 %a:-nan():1:6:-nan: ++# BZ30647 %*a:-nan():0:6: ++# BZ30647 %a:nan():1:5:nan: ++# BZ30647 %*a:nan():0:5: ++# BZ30647 %a:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*a:nan(09A_Zaz):0:12: + %a:0x0p0:1:5:0x0: + %*a:0x0p0:0:5: + %a:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*a:0xf.fffffp+124:0:14: + %a:infinity:1:8:inf: + %*a:infinity:0:8: +-%a:+nan():1:6:nan: +-%*a:+nan():0:6: +-%a:+nan(09A_Zaz):1:13:nan: +-%*a:+nan(09A_Zaz):0:13: ++# BZ30647 %a:+nan():1:6:nan: ++# BZ30647 %*a:+nan():0:6: ++# BZ30647 %a:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*a:+nan(09A_Zaz):0:13: + %a:+0x0p0:1:6:0x0: + %*a:+0x0p0:0:6: + %a:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1a:-0x0p+0:0:-1: + %1a:-0x0p0:0:-1: + %*1a:-0x0p0:0:-1: +-%1a:-nan(09A_Zaz):0:-1: +-%*1a:-nan(09A_Zaz):0:-1: +-%1a:-nan():0:-1: +-%*1a:-nan():0:-1: +-%1a:nan():0:-1: +-%*1a:nan():0:-1: +-%1a:nan(09A_Zaz):0:-1: +-%*1a:nan(09A_Zaz):0:-1: ++# BZ30647 %1a:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1a:-nan(09A_Zaz):0:-1: ++# BZ30647 %1a:-nan():0:-1: ++# BZ30647 %*1a:-nan():0:-1: ++# BZ30647 %1a:nan():0:-1: ++# BZ30647 %*1a:nan():0:-1: ++# BZ30647 %1a:nan(09A_Zaz):0:-1: ++# BZ30647 %*1a:nan(09A_Zaz):0:-1: + %1a:0x0p0:1:1:0x0: + %*1a:0x0p0:0:1: + %1a:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1a:0xf.fffffp+124:0:1: + %1a:infinity:0:-1: + %*1a:infinity:0:-1: +-%1a:+nan():0:-1: +-%*1a:+nan():0:-1: +-%1a:+nan(09A_Zaz):0:-1: +-%*1a:+nan(09A_Zaz):0:-1: ++# BZ30647 %1a:+nan():0:-1: ++# BZ30647 %*1a:+nan():0:-1: ++# BZ30647 %1a:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1a:+nan(09A_Zaz):0:-1: + %1a:+0x0p0:0:-1: + %*1a:+0x0p0:0:-1: + %1a:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2a:-0x0p+0:0:2: + %2a:-0x0p0:1:2:-0x0: + %*2a:-0x0p0:0:2: +-%2a:-nan(09A_Zaz):0:-1: +-%*2a:-nan(09A_Zaz):0:-1: +-%2a:-nan():0:-1: +-%*2a:-nan():0:-1: +-%2a:nan():0:-1: +-%*2a:nan():0:-1: +-%2a:nan(09A_Zaz):0:-1: +-%*2a:nan(09A_Zaz):0:-1: ++# BZ30647 %2a:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2a:-nan(09A_Zaz):0:-1: ++# BZ30647 %2a:-nan():0:-1: ++# BZ30647 %*2a:-nan():0:-1: ++# BZ30647 %2a:nan():0:-1: ++# BZ30647 %*2a:nan():0:-1: ++# BZ30647 %2a:nan(09A_Zaz):0:-1: ++# BZ30647 %*2a:nan(09A_Zaz):0:-1: + # BZ12701 %2a:0x0p0:0:-1: + # BZ12701 %*2a:0x0p0:0:-1: + # BZ12701 %2a:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2a:0xf.fffffp+124:0:-1: + %2a:infinity:0:-1: + %*2a:infinity:0:-1: +-%2a:+nan():0:-1: +-%*2a:+nan():0:-1: +-%2a:+nan(09A_Zaz):0:-1: +-%*2a:+nan(09A_Zaz):0:-1: ++# BZ30647 %2a:+nan():0:-1: ++# BZ30647 %*2a:+nan():0:-1: ++# BZ30647 %2a:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2a:+nan(09A_Zaz):0:-1: + %2a:+0x0p0:1:2:0x0: + %*2a:+0x0p0:0:2: + %2a:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3a:-0x0p+0:0:-1: + # BZ12701 %3a:-0x0p0:0:-1: + # BZ12701 %*3a:-0x0p0:0:-1: +-%3a:-nan(09A_Zaz):0:-1: +-%*3a:-nan(09A_Zaz):0:-1: +-%3a:-nan():0:-1: +-%*3a:-nan():0:-1: +-%3a:nan():1:3:nan: +-%*3a:nan():0:3: +-%3a:nan(09A_Zaz):1:3:nan: +-%*3a:nan(09A_Zaz):0:3: ++# BZ30647 %3a:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3a:-nan(09A_Zaz):0:-1: ++# BZ30647 %3a:-nan():0:-1: ++# BZ30647 %*3a:-nan():0:-1: ++# BZ30647 %3a:nan():1:3:nan: ++# BZ30647 %*3a:nan():0:3: ++# BZ30647 %3a:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3a:nan(09A_Zaz):0:3: + %3a:0x0p0:1:3:0x0: + %*3a:0x0p0:0:3: + %3a:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3a:0xf.fffffp+124:0:3: + %3a:infinity:1:3:inf: + %*3a:infinity:0:3: +-%3a:+nan():0:-1: +-%*3a:+nan():0:-1: +-%3a:+nan(09A_Zaz):0:-1: +-%*3a:+nan(09A_Zaz):0:-1: ++# BZ30647 %3a:+nan():0:-1: ++# BZ30647 %*3a:+nan():0:-1: ++# BZ30647 %3a:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3a:+nan(09A_Zaz):0:-1: + # BZ12701 %3a:+0x0p0:0:-1: + # BZ12701 %*3a:+0x0p0:0:-1: + # BZ12701 %3a:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4a:-0x0p+0:0:4: + %4a:-0x0p0:1:4:-0x0: + %*4a:-0x0p0:0:4: +-%4a:-nan(09A_Zaz):1:4:-nan: +-%*4a:-nan(09A_Zaz):0:4: +-%4a:-nan():1:4:-nan: +-%*4a:-nan():0:4: +-%4a:nan():0:-1: +-%*4a:nan():0:-1: +-%4a:nan(09A_Zaz):0:-1: +-%*4a:nan(09A_Zaz):0:-1: ++# BZ30647 %4a:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4a:-nan(09A_Zaz):0:4: ++# BZ30647 %4a:-nan():1:4:-nan: ++# BZ30647 %*4a:-nan():0:4: ++# BZ30647 %4a:nan():0:-1: ++# BZ30647 %*4a:nan():0:-1: ++# BZ30647 %4a:nan(09A_Zaz):0:-1: ++# BZ30647 %*4a:nan(09A_Zaz):0:-1: + # BZ12701 %4a:0x0p0:0:-1: + # BZ12701 %*4a:0x0p0:0:-1: + # BZ12701 %4a:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4a:0xf.fffffp+124:0:4: + %4a:infinity:0:-1: + %*4a:infinity:0:-1: +-%4a:+nan():1:4:nan: +-%*4a:+nan():0:4: +-%4a:+nan(09A_Zaz):1:4:nan: +-%*4a:+nan(09A_Zaz):0:4: ++# BZ30647 %4a:+nan():1:4:nan: ++# BZ30647 %*4a:+nan():0:4: ++# BZ30647 %4a:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4a:+nan(09A_Zaz):0:4: + %4a:+0x0p0:1:4:0x0: + %*4a:+0x0p0:0:4: + %4a:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5a:-0x0p+0:0:-1: + # BZ12701 %5a:-0x0p0:0:-1: + # BZ12701 %*5a:-0x0p0:0:-1: +-%5a:-nan(09A_Zaz):0:-1: +-%*5a:-nan(09A_Zaz):0:-1: +-%5a:-nan():0:-1: +-%*5a:-nan():0:-1: +-%5a:nan():1:5:nan: +-%*5a:nan():0:5: +-%5a:nan(09A_Zaz):0:-1: +-%*5a:nan(09A_Zaz):0:-1: ++# BZ30647 %5a:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5a:-nan(09A_Zaz):0:-1: ++# BZ30647 %5a:-nan():0:-1: ++# BZ30647 %*5a:-nan():0:-1: ++# BZ30647 %5a:nan():1:5:nan: ++# BZ30647 %*5a:nan():0:5: ++# BZ30647 %5a:nan(09A_Zaz):0:-1: ++# BZ30647 %*5a:nan(09A_Zaz):0:-1: + %5a:0x0p0:1:5:0x0: + %*5a:0x0p0:0:5: + # BZ12701 %5a:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5a:0xf.fffffp+124:0:5: + %5a:infinity:0:-1: + %*5a:infinity:0:-1: +-%5a:+nan():0:-1: +-%*5a:+nan():0:-1: +-%5a:+nan(09A_Zaz):0:-1: +-%*5a:+nan(09A_Zaz):0:-1: ++# BZ30647 %5a:+nan():0:-1: ++# BZ30647 %*5a:+nan():0:-1: ++# BZ30647 %5a:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5a:+nan(09A_Zaz):0:-1: + # BZ12701 %5a:+0x0p0:0:-1: + # BZ12701 %*5a:+0x0p0:0:-1: + # BZ12701 %5a:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6a:-0x0p+0:0:-1: + %6a:-0x0p0:1:6:-0x0: + %*6a:-0x0p0:0:6: +-%6a:-nan(09A_Zaz):0:-1: +-%*6a:-nan(09A_Zaz):0:-1: +-%6a:-nan():1:6:-nan: +-%*6a:-nan():0:6: +-%6a:nan():1:5:nan: +-%*6a:nan():0:5: +-%6a:nan(09A_Zaz):0:-1: +-%*6a:nan(09A_Zaz):0:-1: ++# BZ30647 %6a:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6a:-nan(09A_Zaz):0:-1: ++# BZ30647 %6a:-nan():1:6:-nan: ++# BZ30647 %*6a:-nan():0:6: ++# BZ30647 %6a:nan():1:5:nan: ++# BZ30647 %*6a:nan():0:5: ++# BZ30647 %6a:nan(09A_Zaz):0:-1: ++# BZ30647 %*6a:nan(09A_Zaz):0:-1: + %6a:0x0p0:1:5:0x0: + %*6a:0x0p0:0:5: + %6a:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6a:0xf.fffffp+124:0:6: + %6a:infinity:0:-1: + %*6a:infinity:0:-1: +-%6a:+nan():1:6:nan: +-%*6a:+nan():0:6: +-%6a:+nan(09A_Zaz):0:-1: +-%*6a:+nan(09A_Zaz):0:-1: ++# BZ30647 %6a:+nan():1:6:nan: ++# BZ30647 %*6a:+nan():0:6: ++# BZ30647 %6a:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6a:+nan(09A_Zaz):0:-1: + %6a:+0x0p0:1:6:0x0: + %*6a:+0x0p0:0:6: + # BZ12701 %6a:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*12a:-0x0p+0:0:7: + %12a:-0x0p0:1:6:-0x0: + %*12a:-0x0p0:0:6: +-%12a:-nan(09A_Zaz):0:-1: +-%*12a:-nan(09A_Zaz):0:-1: +-%12a:-nan():1:6:-nan: +-%*12a:-nan():0:6: +-%12a:nan():1:5:nan: +-%*12a:nan():0:5: +-%12a:nan(09A_Zaz):1:12:nan: +-%*12a:nan(09A_Zaz):0:12: ++# BZ30647 %12a:-nan(09A_Zaz):0:-1: ++# BZ30647 %*12a:-nan(09A_Zaz):0:-1: ++# BZ30647 %12a:-nan():1:6:-nan: ++# BZ30647 %*12a:-nan():0:6: ++# BZ30647 %12a:nan():1:5:nan: ++# BZ30647 %*12a:nan():0:5: ++# BZ30647 %12a:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*12a:nan(09A_Zaz):0:12: + %12a:0x0p0:1:5:0x0: + %*12a:0x0p0:0:5: + %12a:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*12a:0xf.fffffp+124:0:12: + %12a:infinity:1:8:inf: + %*12a:infinity:0:8: +-%12a:+nan():1:6:nan: +-%*12a:+nan():0:6: +-%12a:+nan(09A_Zaz):0:-1: +-%*12a:+nan(09A_Zaz):0:-1: ++# BZ30647 %12a:+nan():1:6:nan: ++# BZ30647 %*12a:+nan():0:6: ++# BZ30647 %12a:+nan(09A_Zaz):0:-1: ++# BZ30647 %*12a:+nan(09A_Zaz):0:-1: + %12a:+0x0p0:1:6:0x0: + %*12a:+0x0p0:0:6: + %12a:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*18a:-0x0p+0:0:7: + %18a:-0x0p0:1:6:-0x0: + %*18a:-0x0p0:0:6: +-%18a:-nan(09A_Zaz):1:13:-nan: +-%*18a:-nan(09A_Zaz):0:13: +-%18a:-nan():1:6:-nan: +-%*18a:-nan():0:6: +-%18a:nan():1:5:nan: +-%*18a:nan():0:5: +-%18a:nan(09A_Zaz):1:12:nan: +-%*18a:nan(09A_Zaz):0:12: ++# BZ30647 %18a:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*18a:-nan(09A_Zaz):0:13: ++# BZ30647 %18a:-nan():1:6:-nan: ++# BZ30647 %*18a:-nan():0:6: ++# BZ30647 %18a:nan():1:5:nan: ++# BZ30647 %*18a:nan():0:5: ++# BZ30647 %18a:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*18a:nan(09A_Zaz):0:12: + %18a:0x0p0:1:5:0x0: + %*18a:0x0p0:0:5: + %18a:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*18a:0xf.fffffp+124:0:14: + %18a:infinity:1:8:inf: + %*18a:infinity:0:8: +-%18a:+nan():1:6:nan: +-%*18a:+nan():0:6: +-%18a:+nan(09A_Zaz):1:13:nan: +-%*18a:+nan(09A_Zaz):0:13: ++# BZ30647 %18a:+nan():1:6:nan: ++# BZ30647 %*18a:+nan():0:6: ++# BZ30647 %18a:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*18a:+nan(09A_Zaz):0:13: + %18a:+0x0p0:1:6:0x0: + %*18a:+0x0p0:0:6: + %18a:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5a: -0x0p+0:0:-1: + # BZ12701 %5a: -0x0p0:0:-1: + # BZ12701 %*5a: -0x0p0:0:-1: +-%5a: -nan(09A_Zaz):0:-1: +-%*5a: -nan(09A_Zaz):0:-1: +-%5a: -nan():0:-1: +-%*5a: -nan():0:-1: +-%5a: nan():1:6:nan: +-%*5a: nan():0:6: +-%5a: nan(09A_Zaz):0:-1: +-%*5a: nan(09A_Zaz):0:-1: ++# BZ30647 %5a: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5a: -nan(09A_Zaz):0:-1: ++# BZ30647 %5a: -nan():0:-1: ++# BZ30647 %*5a: -nan():0:-1: ++# BZ30647 %5a: nan():1:6:nan: ++# BZ30647 %*5a: nan():0:6: ++# BZ30647 %5a: nan(09A_Zaz):0:-1: ++# BZ30647 %*5a: nan(09A_Zaz):0:-1: + %5a: 0x0p0:1:6:0x0: + %*5a: 0x0p0:0:6: + # BZ12701 %5a: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5a: 0xf.fffffp+124:0:6: + %5a: infinity:0:-1: + %*5a: infinity:0:-1: +-%5a: +nan():0:-1: +-%*5a: +nan():0:-1: +-%5a: +nan(09A_Zaz):0:-1: +-%*5a: +nan(09A_Zaz):0:-1: ++# BZ30647 %5a: +nan():0:-1: ++# BZ30647 %*5a: +nan():0:-1: ++# BZ30647 %5a: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5a: +nan(09A_Zaz):0:-1: + # BZ12701 %5a: +0x0p0:0:-1: + # BZ12701 %*5a: +0x0p0:0:-1: + # BZ12701 %5a: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*18a: -0x0p+0:0:8: + %18a: -0x0p0:1:7:-0x0: + %*18a: -0x0p0:0:7: +-%18a: -nan(09A_Zaz):1:14:-nan: +-%*18a: -nan(09A_Zaz):0:14: +-%18a: -nan():1:7:-nan: +-%*18a: -nan():0:7: +-%18a: nan():1:6:nan: +-%*18a: nan():0:6: +-%18a: nan(09A_Zaz):1:13:nan: +-%*18a: nan(09A_Zaz):0:13: ++# BZ30647 %18a: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*18a: -nan(09A_Zaz):0:14: ++# BZ30647 %18a: -nan():1:7:-nan: ++# BZ30647 %*18a: -nan():0:7: ++# BZ30647 %18a: nan():1:6:nan: ++# BZ30647 %*18a: nan():0:6: ++# BZ30647 %18a: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*18a: nan(09A_Zaz):0:13: + %18a: 0x0p0:1:6:0x0: + %*18a: 0x0p0:0:6: + %18a: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*18a: 0xf.fffffp+124:0:15: + %18a: infinity:1:9:inf: + %*18a: infinity:0:9: +-%18a: +nan():1:7:nan: +-%*18a: +nan():0:7: +-%18a: +nan(09A_Zaz):1:14:nan: +-%*18a: +nan(09A_Zaz):0:14: ++# BZ30647 %18a: +nan():1:7:nan: ++# BZ30647 %*18a: +nan():0:7: ++# BZ30647 %18a: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*18a: +nan(09A_Zaz):0:14: + %18a: +0x0p0:1:7:0x0: + %*18a: +0x0p0:0:7: + %18a: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-aa.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-aa.input +index 9f541217605c0b7a..255d1368c0d844c0 100644 +--- a/sysdeps/ieee754/flt-32/tst-scanf-format-float-aa.input ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-aa.input +@@ -16,14 +16,14 @@ + %*A:-0X0P+0:0:7: + %A:-0X0P0:1:6:-0x0: + %*A:-0X0P0:0:6: +-%A:-NAN(09A_Zaz):1:13:-nan: +-%*A:-NAN(09A_Zaz):0:13: +-%A:-NAN():1:6:-nan: +-%*A:-NAN():0:6: +-%A:NAN():1:5:nan: +-%*A:NAN():0:5: +-%A:NAN(09A_Zaz):1:12:nan: +-%*A:NAN(09A_Zaz):0:12: ++# BZ30647 %A:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*A:-NAN(09A_Zaz):0:13: ++# BZ30647 %A:-NAN():1:6:-nan: ++# BZ30647 %*A:-NAN():0:6: ++# BZ30647 %A:NAN():1:5:nan: ++# BZ30647 %*A:NAN():0:5: ++# BZ30647 %A:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*A:NAN(09A_Zaz):0:12: + %A:0X0P0:1:5:0x0: + %*A:0X0P0:0:5: + %A:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*A:0XF.FFFFFP+124:0:14: + %A:INFINITY:1:8:inf: + %*A:INFINITY:0:8: +-%A:+NAN():1:6:nan: +-%*A:+NAN():0:6: +-%A:+NAN(09A_Zaz):1:13:nan: +-%*A:+NAN(09A_Zaz):0:13: ++# BZ30647 %A:+NAN():1:6:nan: ++# BZ30647 %*A:+NAN():0:6: ++# BZ30647 %A:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*A:+NAN(09A_Zaz):0:13: + %A:+0X0P0:1:6:0x0: + %*A:+0X0P0:0:6: + %A:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1A:-0X0P+0:0:-1: + %1A:-0X0P0:0:-1: + %*1A:-0X0P0:0:-1: +-%1A:-NAN(09A_Zaz):0:-1: +-%*1A:-NAN(09A_Zaz):0:-1: +-%1A:-NAN():0:-1: +-%*1A:-NAN():0:-1: +-%1A:NAN():0:-1: +-%*1A:NAN():0:-1: +-%1A:NAN(09A_Zaz):0:-1: +-%*1A:NAN(09A_Zaz):0:-1: ++# BZ30647 %1A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1A:-NAN():0:-1: ++# BZ30647 %*1A:-NAN():0:-1: ++# BZ30647 %1A:NAN():0:-1: ++# BZ30647 %*1A:NAN():0:-1: ++# BZ30647 %1A:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1A:NAN(09A_Zaz):0:-1: + %1A:0X0P0:1:1:0x0: + %*1A:0X0P0:0:1: + %1A:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1A:0XF.FFFFFP+124:0:1: + %1A:INFINITY:0:-1: + %*1A:INFINITY:0:-1: +-%1A:+NAN():0:-1: +-%*1A:+NAN():0:-1: +-%1A:+NAN(09A_Zaz):0:-1: +-%*1A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1A:+NAN():0:-1: ++# BZ30647 %*1A:+NAN():0:-1: ++# BZ30647 %1A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1A:+NAN(09A_Zaz):0:-1: + %1A:+0X0P0:0:-1: + %*1A:+0X0P0:0:-1: + %1A:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2A:-0X0P+0:0:2: + %2A:-0X0P0:1:2:-0x0: + %*2A:-0X0P0:0:2: +-%2A:-NAN(09A_Zaz):0:-1: +-%*2A:-NAN(09A_Zaz):0:-1: +-%2A:-NAN():0:-1: +-%*2A:-NAN():0:-1: +-%2A:NAN():0:-1: +-%*2A:NAN():0:-1: +-%2A:NAN(09A_Zaz):0:-1: +-%*2A:NAN(09A_Zaz):0:-1: ++# BZ30647 %2A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2A:-NAN():0:-1: ++# BZ30647 %*2A:-NAN():0:-1: ++# BZ30647 %2A:NAN():0:-1: ++# BZ30647 %*2A:NAN():0:-1: ++# BZ30647 %2A:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2A:NAN(09A_Zaz):0:-1: + # BZ12701 %2A:0X0P0:0:-1: + # BZ12701 %*2A:0X0P0:0:-1: + # BZ12701 %2A:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2A:0XF.FFFFFP+124:0:-1: + %2A:INFINITY:0:-1: + %*2A:INFINITY:0:-1: +-%2A:+NAN():0:-1: +-%*2A:+NAN():0:-1: +-%2A:+NAN(09A_Zaz):0:-1: +-%*2A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2A:+NAN():0:-1: ++# BZ30647 %*2A:+NAN():0:-1: ++# BZ30647 %2A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2A:+NAN(09A_Zaz):0:-1: + %2A:+0X0P0:1:2:0x0: + %*2A:+0X0P0:0:2: + %2A:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3A:-0X0P+0:0:-1: + # BZ12701 %3A:-0X0P0:0:-1: + # BZ12701 %*3A:-0X0P0:0:-1: +-%3A:-NAN(09A_Zaz):0:-1: +-%*3A:-NAN(09A_Zaz):0:-1: +-%3A:-NAN():0:-1: +-%*3A:-NAN():0:-1: +-%3A:NAN():1:3:nan: +-%*3A:NAN():0:3: +-%3A:NAN(09A_Zaz):1:3:nan: +-%*3A:NAN(09A_Zaz):0:3: ++# BZ30647 %3A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3A:-NAN():0:-1: ++# BZ30647 %*3A:-NAN():0:-1: ++# BZ30647 %3A:NAN():1:3:nan: ++# BZ30647 %*3A:NAN():0:3: ++# BZ30647 %3A:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3A:NAN(09A_Zaz):0:3: + %3A:0X0P0:1:3:0x0: + %*3A:0X0P0:0:3: + %3A:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3A:0XF.FFFFFP+124:0:3: + %3A:INFINITY:1:3:inf: + %*3A:INFINITY:0:3: +-%3A:+NAN():0:-1: +-%*3A:+NAN():0:-1: +-%3A:+NAN(09A_Zaz):0:-1: +-%*3A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3A:+NAN():0:-1: ++# BZ30647 %*3A:+NAN():0:-1: ++# BZ30647 %3A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3A:+NAN(09A_Zaz):0:-1: + # BZ12701 %3A:+0X0P0:0:-1: + # BZ12701 %*3A:+0X0P0:0:-1: + # BZ12701 %3A:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4A:-0X0P+0:0:4: + %4A:-0X0P0:1:4:-0x0: + %*4A:-0X0P0:0:4: +-%4A:-NAN(09A_Zaz):1:4:-nan: +-%*4A:-NAN(09A_Zaz):0:4: +-%4A:-NAN():1:4:-nan: +-%*4A:-NAN():0:4: +-%4A:NAN():0:-1: +-%*4A:NAN():0:-1: +-%4A:NAN(09A_Zaz):0:-1: +-%*4A:NAN(09A_Zaz):0:-1: ++# BZ30647 %4A:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4A:-NAN(09A_Zaz):0:4: ++# BZ30647 %4A:-NAN():1:4:-nan: ++# BZ30647 %*4A:-NAN():0:4: ++# BZ30647 %4A:NAN():0:-1: ++# BZ30647 %*4A:NAN():0:-1: ++# BZ30647 %4A:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4A:NAN(09A_Zaz):0:-1: + # BZ12701 %4A:0X0P0:0:-1: + # BZ12701 %*4A:0X0P0:0:-1: + # BZ12701 %4A:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4A:0XF.FFFFFP+124:0:4: + %4A:INFINITY:0:-1: + %*4A:INFINITY:0:-1: +-%4A:+NAN():1:4:nan: +-%*4A:+NAN():0:4: +-%4A:+NAN(09A_Zaz):1:4:nan: +-%*4A:+NAN(09A_Zaz):0:4: ++# BZ30647 %4A:+NAN():1:4:nan: ++# BZ30647 %*4A:+NAN():0:4: ++# BZ30647 %4A:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4A:+NAN(09A_Zaz):0:4: + %4A:+0X0P0:1:4:0x0: + %*4A:+0X0P0:0:4: + %4A:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5A:-0X0P+0:0:-1: + # BZ12701 %5A:-0X0P0:0:-1: + # BZ12701 %*5A:-0X0P0:0:-1: +-%5A:-NAN(09A_Zaz):0:-1: +-%*5A:-NAN(09A_Zaz):0:-1: +-%5A:-NAN():0:-1: +-%*5A:-NAN():0:-1: +-%5A:NAN():1:5:nan: +-%*5A:NAN():0:5: +-%5A:NAN(09A_Zaz):0:-1: +-%*5A:NAN(09A_Zaz):0:-1: ++# BZ30647 %5A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5A:-NAN():0:-1: ++# BZ30647 %*5A:-NAN():0:-1: ++# BZ30647 %5A:NAN():1:5:nan: ++# BZ30647 %*5A:NAN():0:5: ++# BZ30647 %5A:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5A:NAN(09A_Zaz):0:-1: + %5A:0X0P0:1:5:0x0: + %*5A:0X0P0:0:5: + # BZ12701 %5A:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5A:0XF.FFFFFP+124:0:5: + %5A:INFINITY:0:-1: + %*5A:INFINITY:0:-1: +-%5A:+NAN():0:-1: +-%*5A:+NAN():0:-1: +-%5A:+NAN(09A_Zaz):0:-1: +-%*5A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5A:+NAN():0:-1: ++# BZ30647 %*5A:+NAN():0:-1: ++# BZ30647 %5A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5A:+NAN(09A_Zaz):0:-1: + # BZ12701 %5A:+0X0P0:0:-1: + # BZ12701 %*5A:+0X0P0:0:-1: + # BZ12701 %5A:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6A:-0X0P+0:0:-1: + %6A:-0X0P0:1:6:-0x0: + %*6A:-0X0P0:0:6: +-%6A:-NAN(09A_Zaz):0:-1: +-%*6A:-NAN(09A_Zaz):0:-1: +-%6A:-NAN():1:6:-nan: +-%*6A:-NAN():0:6: +-%6A:NAN():1:5:nan: +-%*6A:NAN():0:5: +-%6A:NAN(09A_Zaz):0:-1: +-%*6A:NAN(09A_Zaz):0:-1: ++# BZ30647 %6A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6A:-NAN():1:6:-nan: ++# BZ30647 %*6A:-NAN():0:6: ++# BZ30647 %6A:NAN():1:5:nan: ++# BZ30647 %*6A:NAN():0:5: ++# BZ30647 %6A:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6A:NAN(09A_Zaz):0:-1: + %6A:0X0P0:1:5:0x0: + %*6A:0X0P0:0:5: + %6A:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6A:0XF.FFFFFP+124:0:6: + %6A:INFINITY:0:-1: + %*6A:INFINITY:0:-1: +-%6A:+NAN():1:6:nan: +-%*6A:+NAN():0:6: +-%6A:+NAN(09A_Zaz):0:-1: +-%*6A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6A:+NAN():1:6:nan: ++# BZ30647 %*6A:+NAN():0:6: ++# BZ30647 %6A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6A:+NAN(09A_Zaz):0:-1: + %6A:+0X0P0:1:6:0x0: + %*6A:+0X0P0:0:6: + # BZ12701 %6A:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*12A:-0X0P+0:0:7: + %12A:-0X0P0:1:6:-0x0: + %*12A:-0X0P0:0:6: +-%12A:-NAN(09A_Zaz):0:-1: +-%*12A:-NAN(09A_Zaz):0:-1: +-%12A:-NAN():1:6:-nan: +-%*12A:-NAN():0:6: +-%12A:NAN():1:5:nan: +-%*12A:NAN():0:5: +-%12A:NAN(09A_Zaz):1:12:nan: +-%*12A:NAN(09A_Zaz):0:12: ++# BZ30647 %12A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*12A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %12A:-NAN():1:6:-nan: ++# BZ30647 %*12A:-NAN():0:6: ++# BZ30647 %12A:NAN():1:5:nan: ++# BZ30647 %*12A:NAN():0:5: ++# BZ30647 %12A:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*12A:NAN(09A_Zaz):0:12: + %12A:0X0P0:1:5:0x0: + %*12A:0X0P0:0:5: + %12A:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*12A:0XF.FFFFFP+124:0:12: + %12A:INFINITY:1:8:inf: + %*12A:INFINITY:0:8: +-%12A:+NAN():1:6:nan: +-%*12A:+NAN():0:6: +-%12A:+NAN(09A_Zaz):0:-1: +-%*12A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %12A:+NAN():1:6:nan: ++# BZ30647 %*12A:+NAN():0:6: ++# BZ30647 %12A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*12A:+NAN(09A_Zaz):0:-1: + %12A:+0X0P0:1:6:0x0: + %*12A:+0X0P0:0:6: + %12A:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*18A:-0X0P+0:0:7: + %18A:-0X0P0:1:6:-0x0: + %*18A:-0X0P0:0:6: +-%18A:-NAN(09A_Zaz):1:13:-nan: +-%*18A:-NAN(09A_Zaz):0:13: +-%18A:-NAN():1:6:-nan: +-%*18A:-NAN():0:6: +-%18A:NAN():1:5:nan: +-%*18A:NAN():0:5: +-%18A:NAN(09A_Zaz):1:12:nan: +-%*18A:NAN(09A_Zaz):0:12: ++# BZ30647 %18A:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*18A:-NAN(09A_Zaz):0:13: ++# BZ30647 %18A:-NAN():1:6:-nan: ++# BZ30647 %*18A:-NAN():0:6: ++# BZ30647 %18A:NAN():1:5:nan: ++# BZ30647 %*18A:NAN():0:5: ++# BZ30647 %18A:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*18A:NAN(09A_Zaz):0:12: + %18A:0X0P0:1:5:0x0: + %*18A:0X0P0:0:5: + %18A:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*18A:0XF.FFFFFP+124:0:14: + %18A:INFINITY:1:8:inf: + %*18A:INFINITY:0:8: +-%18A:+NAN():1:6:nan: +-%*18A:+NAN():0:6: +-%18A:+NAN(09A_Zaz):1:13:nan: +-%*18A:+NAN(09A_Zaz):0:13: ++# BZ30647 %18A:+NAN():1:6:nan: ++# BZ30647 %*18A:+NAN():0:6: ++# BZ30647 %18A:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*18A:+NAN(09A_Zaz):0:13: + %18A:+0X0P0:1:6:0x0: + %*18A:+0X0P0:0:6: + %18A:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5A: -0X0P+0:0:-1: + # BZ12701 %5A: -0X0P0:0:-1: + # BZ12701 %*5A: -0X0P0:0:-1: +-%5A: -NAN(09A_Zaz):0:-1: +-%*5A: -NAN(09A_Zaz):0:-1: +-%5A: -NAN():0:-1: +-%*5A: -NAN():0:-1: +-%5A: NAN():1:6:nan: +-%*5A: NAN():0:6: +-%5A: NAN(09A_Zaz):0:-1: +-%*5A: NAN(09A_Zaz):0:-1: ++# BZ30647 %5A: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5A: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5A: -NAN():0:-1: ++# BZ30647 %*5A: -NAN():0:-1: ++# BZ30647 %5A: NAN():1:6:nan: ++# BZ30647 %*5A: NAN():0:6: ++# BZ30647 %5A: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5A: NAN(09A_Zaz):0:-1: + %5A: 0X0P0:1:6:0x0: + %*5A: 0X0P0:0:6: + # BZ12701 %5A: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5A: 0XF.FFFFFP+124:0:6: + %5A: INFINITY:0:-1: + %*5A: INFINITY:0:-1: +-%5A: +NAN():0:-1: +-%*5A: +NAN():0:-1: +-%5A: +NAN(09A_Zaz):0:-1: +-%*5A: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5A: +NAN():0:-1: ++# BZ30647 %*5A: +NAN():0:-1: ++# BZ30647 %5A: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5A: +NAN(09A_Zaz):0:-1: + # BZ12701 %5A: +0X0P0:0:-1: + # BZ12701 %*5A: +0X0P0:0:-1: + # BZ12701 %5A: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*18A: -0X0P+0:0:8: + %18A: -0X0P0:1:7:-0x0: + %*18A: -0X0P0:0:7: +-%18A: -NAN(09A_Zaz):1:14:-nan: +-%*18A: -NAN(09A_Zaz):0:14: +-%18A: -NAN():1:7:-nan: +-%*18A: -NAN():0:7: +-%18A: NAN():1:6:nan: +-%*18A: NAN():0:6: +-%18A: NAN(09A_Zaz):1:13:nan: +-%*18A: NAN(09A_Zaz):0:13: ++# BZ30647 %18A: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*18A: -NAN(09A_Zaz):0:14: ++# BZ30647 %18A: -NAN():1:7:-nan: ++# BZ30647 %*18A: -NAN():0:7: ++# BZ30647 %18A: NAN():1:6:nan: ++# BZ30647 %*18A: NAN():0:6: ++# BZ30647 %18A: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*18A: NAN(09A_Zaz):0:13: + %18A: 0X0P0:1:6:0x0: + %*18A: 0X0P0:0:6: + %18A: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*18A: 0XF.FFFFFP+124:0:15: + %18A: INFINITY:1:9:inf: + %*18A: INFINITY:0:9: +-%18A: +NAN():1:7:nan: +-%*18A: +NAN():0:7: +-%18A: +NAN(09A_Zaz):1:14:nan: +-%*18A: +NAN(09A_Zaz):0:14: ++# BZ30647 %18A: +NAN():1:7:nan: ++# BZ30647 %*18A: +NAN():0:7: ++# BZ30647 %18A: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*18A: +NAN(09A_Zaz):0:14: + %18A: +0X0P0:1:7:0x0: + %*18A: +0X0P0:0:7: + %18A: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-e.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-e.input +index e555bb47b9c86bbe..c75034244e7ef86e 100644 +--- a/sysdeps/ieee754/flt-32/tst-scanf-format-float-e.input ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-e.input +@@ -16,14 +16,14 @@ + %*e:-0e+0:0:5: + %e:-0e0:1:4:-0x0: + %*e:-0e0:0:4: +-%e:-nan(09A_Zaz):1:13:-nan: +-%*e:-nan(09A_Zaz):0:13: +-%e:-nan():1:6:-nan: +-%*e:-nan():0:6: +-%e:nan():1:5:nan: +-%*e:nan():0:5: +-%e:nan(09A_Zaz):1:12:nan: +-%*e:nan(09A_Zaz):0:12: ++# BZ30647 %e:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*e:-nan(09A_Zaz):0:13: ++# BZ30647 %e:-nan():1:6:-nan: ++# BZ30647 %*e:-nan():0:6: ++# BZ30647 %e:nan():1:5:nan: ++# BZ30647 %*e:nan():0:5: ++# BZ30647 %e:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*e:nan(09A_Zaz):0:12: + %e:0e0:1:3:0x0: + %*e:0e0:0:3: + %e:0e+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*e:3.40282346638528859811704183484516925e+38:0:41: + %e:infinity:1:8:inf: + %*e:infinity:0:8: +-%e:+nan():1:6:nan: +-%*e:+nan():0:6: +-%e:+nan(09A_Zaz):1:13:nan: +-%*e:+nan(09A_Zaz):0:13: ++# BZ30647 %e:+nan():1:6:nan: ++# BZ30647 %*e:+nan():0:6: ++# BZ30647 %e:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*e:+nan(09A_Zaz):0:13: + %e:+0e0:1:4:0x0: + %*e:+0e0:0:4: + %e:+0e+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1e:-0e+0:0:-1: + %1e:-0e0:0:-1: + %*1e:-0e0:0:-1: +-%1e:-nan(09A_Zaz):0:-1: +-%*1e:-nan(09A_Zaz):0:-1: +-%1e:-nan():0:-1: +-%*1e:-nan():0:-1: +-%1e:nan():0:-1: +-%*1e:nan():0:-1: +-%1e:nan(09A_Zaz):0:-1: +-%*1e:nan(09A_Zaz):0:-1: ++# BZ30647 %1e:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1e:-nan(09A_Zaz):0:-1: ++# BZ30647 %1e:-nan():0:-1: ++# BZ30647 %*1e:-nan():0:-1: ++# BZ30647 %1e:nan():0:-1: ++# BZ30647 %*1e:nan():0:-1: ++# BZ30647 %1e:nan(09A_Zaz):0:-1: ++# BZ30647 %*1e:nan(09A_Zaz):0:-1: + %1e:0e0:1:1:0x0: + %*1e:0e0:0:1: + %1e:0e+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1e:3.40282346638528859811704183484516925e+38:0:1: + %1e:infinity:0:-1: + %*1e:infinity:0:-1: +-%1e:+nan():0:-1: +-%*1e:+nan():0:-1: +-%1e:+nan(09A_Zaz):0:-1: +-%*1e:+nan(09A_Zaz):0:-1: ++# BZ30647 %1e:+nan():0:-1: ++# BZ30647 %*1e:+nan():0:-1: ++# BZ30647 %1e:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1e:+nan(09A_Zaz):0:-1: + %1e:+0e0:0:-1: + %*1e:+0e0:0:-1: + %1e:+0e+0:0:-1: +@@ -140,14 +140,14 @@ + %*2e:-0e+0:0:2: + %2e:-0e0:1:2:-0x0: + %*2e:-0e0:0:2: +-%2e:-nan(09A_Zaz):0:-1: +-%*2e:-nan(09A_Zaz):0:-1: +-%2e:-nan():0:-1: +-%*2e:-nan():0:-1: +-%2e:nan():0:-1: +-%*2e:nan():0:-1: +-%2e:nan(09A_Zaz):0:-1: +-%*2e:nan(09A_Zaz):0:-1: ++# BZ30647 %2e:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2e:-nan(09A_Zaz):0:-1: ++# BZ30647 %2e:-nan():0:-1: ++# BZ30647 %*2e:-nan():0:-1: ++# BZ30647 %2e:nan():0:-1: ++# BZ30647 %*2e:nan():0:-1: ++# BZ30647 %2e:nan(09A_Zaz):0:-1: ++# BZ30647 %*2e:nan(09A_Zaz):0:-1: + # BZ12701 %2e:0e0:0:-1: + # BZ12701 %*2e:0e0:0:-1: + # BZ12701 %2e:0e+0:0:-1: +@@ -164,10 +164,10 @@ + %*2e:3.40282346638528859811704183484516925e+38:0:2: + %2e:infinity:0:-1: + %*2e:infinity:0:-1: +-%2e:+nan():0:-1: +-%*2e:+nan():0:-1: +-%2e:+nan(09A_Zaz):0:-1: +-%*2e:+nan(09A_Zaz):0:-1: ++# BZ30647 %2e:+nan():0:-1: ++# BZ30647 %*2e:+nan():0:-1: ++# BZ30647 %2e:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2e:+nan(09A_Zaz):0:-1: + %2e:+0e0:1:2:0x0: + %*2e:+0e0:0:2: + %2e:+0e+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3e:-0e+0:0:-1: + # BZ12701 %3e:-0e0:0:-1: + # BZ12701 %*3e:-0e0:0:-1: +-%3e:-nan(09A_Zaz):0:-1: +-%*3e:-nan(09A_Zaz):0:-1: +-%3e:-nan():0:-1: +-%*3e:-nan():0:-1: +-%3e:nan():1:3:nan: +-%*3e:nan():0:3: +-%3e:nan(09A_Zaz):1:3:nan: +-%*3e:nan(09A_Zaz):0:3: ++# BZ30647 %3e:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3e:-nan(09A_Zaz):0:-1: ++# BZ30647 %3e:-nan():0:-1: ++# BZ30647 %*3e:-nan():0:-1: ++# BZ30647 %3e:nan():1:3:nan: ++# BZ30647 %*3e:nan():0:3: ++# BZ30647 %3e:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3e:nan(09A_Zaz):0:3: + %3e:0e0:1:3:0x0: + %*3e:0e0:0:3: + # BZ12701 %3e:0e+0:0:-1: +@@ -226,10 +226,10 @@ + %*3e:3.40282346638528859811704183484516925e+38:0:3: + %3e:infinity:1:3:inf: + %*3e:infinity:0:3: +-%3e:+nan():0:-1: +-%*3e:+nan():0:-1: +-%3e:+nan(09A_Zaz):0:-1: +-%*3e:+nan(09A_Zaz):0:-1: ++# BZ30647 %3e:+nan():0:-1: ++# BZ30647 %*3e:+nan():0:-1: ++# BZ30647 %3e:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3e:+nan(09A_Zaz):0:-1: + # BZ12701 %3e:+0e0:0:-1: + # BZ12701 %*3e:+0e0:0:-1: + # BZ12701 %3e:+0e+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4e:-0e+0:0:-1: + %4e:-0e0:1:4:-0x0: + %*4e:-0e0:0:4: +-%4e:-nan(09A_Zaz):1:4:-nan: +-%*4e:-nan(09A_Zaz):0:4: +-%4e:-nan():1:4:-nan: +-%*4e:-nan():0:4: +-%4e:nan():0:-1: +-%*4e:nan():0:-1: +-%4e:nan(09A_Zaz):0:-1: +-%*4e:nan(09A_Zaz):0:-1: ++# BZ30647 %4e:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4e:-nan(09A_Zaz):0:4: ++# BZ30647 %4e:-nan():1:4:-nan: ++# BZ30647 %*4e:-nan():0:4: ++# BZ30647 %4e:nan():0:-1: ++# BZ30647 %*4e:nan():0:-1: ++# BZ30647 %4e:nan(09A_Zaz):0:-1: ++# BZ30647 %*4e:nan(09A_Zaz):0:-1: + %4e:0e0:1:3:0x0: + %*4e:0e0:0:3: + %4e:0e+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4e:3.40282346638528859811704183484516925e+38:0:4: + %4e:infinity:0:-1: + %*4e:infinity:0:-1: +-%4e:+nan():1:4:nan: +-%*4e:+nan():0:4: +-%4e:+nan(09A_Zaz):1:4:nan: +-%*4e:+nan(09A_Zaz):0:4: ++# BZ30647 %4e:+nan():1:4:nan: ++# BZ30647 %*4e:+nan():0:4: ++# BZ30647 %4e:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4e:+nan(09A_Zaz):0:4: + %4e:+0e0:1:4:0x0: + %*4e:+0e0:0:4: + # BZ12701 %4e:+0e+0:0:-1: +@@ -326,14 +326,14 @@ + %*40e:-0e+0:0:5: + %40e:-0e0:1:4:-0x0: + %*40e:-0e0:0:4: +-%40e:-nan(09A_Zaz):1:13:-nan: +-%*40e:-nan(09A_Zaz):0:13: +-%40e:-nan():1:6:-nan: +-%*40e:-nan():0:6: +-%40e:nan():1:5:nan: +-%*40e:nan():0:5: +-%40e:nan(09A_Zaz):1:12:nan: +-%*40e:nan(09A_Zaz):0:12: ++# BZ30647 %40e:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*40e:-nan(09A_Zaz):0:13: ++# BZ30647 %40e:-nan():1:6:-nan: ++# BZ30647 %*40e:-nan():0:6: ++# BZ30647 %40e:nan():1:5:nan: ++# BZ30647 %*40e:nan():0:5: ++# BZ30647 %40e:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*40e:nan(09A_Zaz):0:12: + %40e:0e0:1:3:0x0: + %*40e:0e0:0:3: + %40e:0e+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40e:3.40282346638528859811704183484516925e+38:0:40: + %40e:infinity:1:8:inf: + %*40e:infinity:0:8: +-%40e:+nan():1:6:nan: +-%*40e:+nan():0:6: +-%40e:+nan(09A_Zaz):1:13:nan: +-%*40e:+nan(09A_Zaz):0:13: ++# BZ30647 %40e:+nan():1:6:nan: ++# BZ30647 %*40e:+nan():0:6: ++# BZ30647 %40e:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*40e:+nan(09A_Zaz):0:13: + %40e:+0e0:1:4:0x0: + %*40e:+0e0:0:4: + %40e:+0e+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48e:-0e+0:0:5: + %48e:-0e0:1:4:-0x0: + %*48e:-0e0:0:4: +-%48e:-nan(09A_Zaz):1:13:-nan: +-%*48e:-nan(09A_Zaz):0:13: +-%48e:-nan():1:6:-nan: +-%*48e:-nan():0:6: +-%48e:nan():1:5:nan: +-%*48e:nan():0:5: +-%48e:nan(09A_Zaz):1:12:nan: +-%*48e:nan(09A_Zaz):0:12: ++# BZ30647 %48e:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*48e:-nan(09A_Zaz):0:13: ++# BZ30647 %48e:-nan():1:6:-nan: ++# BZ30647 %*48e:-nan():0:6: ++# BZ30647 %48e:nan():1:5:nan: ++# BZ30647 %*48e:nan():0:5: ++# BZ30647 %48e:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*48e:nan(09A_Zaz):0:12: + %48e:0e0:1:3:0x0: + %*48e:0e0:0:3: + %48e:0e+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48e:3.40282346638528859811704183484516925e+38:0:41: + %48e:infinity:1:8:inf: + %*48e:infinity:0:8: +-%48e:+nan():1:6:nan: +-%*48e:+nan():0:6: +-%48e:+nan(09A_Zaz):1:13:nan: +-%*48e:+nan(09A_Zaz):0:13: ++# BZ30647 %48e:+nan():1:6:nan: ++# BZ30647 %*48e:+nan():0:6: ++# BZ30647 %48e:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48e:+nan(09A_Zaz):0:13: + %48e:+0e0:1:4:0x0: + %*48e:+0e0:0:4: + %48e:+0e+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3e: -0e+0:0:-1: + # BZ12701 %3e: -0e0:0:-1: + # BZ12701 %*3e: -0e0:0:-1: +-%3e: -nan(09A_Zaz):0:-1: +-%*3e: -nan(09A_Zaz):0:-1: +-%3e: -nan():0:-1: +-%*3e: -nan():0:-1: +-%3e: nan():1:4:nan: +-%*3e: nan():0:4: +-%3e: nan(09A_Zaz):1:4:nan: +-%*3e: nan(09A_Zaz):0:4: ++# BZ30647 %3e: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3e: -nan(09A_Zaz):0:-1: ++# BZ30647 %3e: -nan():0:-1: ++# BZ30647 %*3e: -nan():0:-1: ++# BZ30647 %3e: nan():1:4:nan: ++# BZ30647 %*3e: nan():0:4: ++# BZ30647 %3e: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3e: nan(09A_Zaz):0:4: + %3e: 0e0:1:4:0x0: + %*3e: 0e0:0:4: + # BZ12701 %3e: 0e+0:0:-1: +@@ -474,10 +474,10 @@ + %*3e: 3.40282346638528859811704183484516925e+38:0:4: + %3e: infinity:1:4:inf: + %*3e: infinity:0:4: +-%3e: +nan():0:-1: +-%*3e: +nan():0:-1: +-%3e: +nan(09A_Zaz):0:-1: +-%*3e: +nan(09A_Zaz):0:-1: ++# BZ30647 %3e: +nan():0:-1: ++# BZ30647 %*3e: +nan():0:-1: ++# BZ30647 %3e: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3e: +nan(09A_Zaz):0:-1: + # BZ12701 %3e: +0e0:0:-1: + # BZ12701 %*3e: +0e0:0:-1: + # BZ12701 %3e: +0e+0:0:-1: +@@ -512,14 +512,14 @@ + %*48e: -0e+0:0:6: + %48e: -0e0:1:5:-0x0: + %*48e: -0e0:0:5: +-%48e: -nan(09A_Zaz):1:14:-nan: +-%*48e: -nan(09A_Zaz):0:14: +-%48e: -nan():1:7:-nan: +-%*48e: -nan():0:7: +-%48e: nan():1:6:nan: +-%*48e: nan():0:6: +-%48e: nan(09A_Zaz):1:13:nan: +-%*48e: nan(09A_Zaz):0:13: ++# BZ30647 %48e: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*48e: -nan(09A_Zaz):0:14: ++# BZ30647 %48e: -nan():1:7:-nan: ++# BZ30647 %*48e: -nan():0:7: ++# BZ30647 %48e: nan():1:6:nan: ++# BZ30647 %*48e: nan():0:6: ++# BZ30647 %48e: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48e: nan(09A_Zaz):0:13: + %48e: 0e0:1:4:0x0: + %*48e: 0e0:0:4: + %48e: 0e+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48e: 3.40282346638528859811704183484516925e+38:0:42: + %48e: infinity:1:9:inf: + %*48e: infinity:0:9: +-%48e: +nan():1:7:nan: +-%*48e: +nan():0:7: +-%48e: +nan(09A_Zaz):1:14:nan: +-%*48e: +nan(09A_Zaz):0:14: ++# BZ30647 %48e: +nan():1:7:nan: ++# BZ30647 %*48e: +nan():0:7: ++# BZ30647 %48e: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*48e: +nan(09A_Zaz):0:14: + %48e: +0e0:1:5:0x0: + %*48e: +0e0:0:5: + %48e: +0e+0:1:6:0x0: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-ee.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ee.input +index a5aa4175ee0a4641..aa467b9c0ea8a973 100644 +--- a/sysdeps/ieee754/flt-32/tst-scanf-format-float-ee.input ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ee.input +@@ -16,14 +16,14 @@ + %*E:-0E+0:0:5: + %E:-0E0:1:4:-0x0: + %*E:-0E0:0:4: +-%E:-NAN(09A_Zaz):1:13:-nan: +-%*E:-NAN(09A_Zaz):0:13: +-%E:-NAN():1:6:-nan: +-%*E:-NAN():0:6: +-%E:NAN():1:5:nan: +-%*E:NAN():0:5: +-%E:NAN(09A_Zaz):1:12:nan: +-%*E:NAN(09A_Zaz):0:12: ++# BZ30647 %E:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*E:-NAN(09A_Zaz):0:13: ++# BZ30647 %E:-NAN():1:6:-nan: ++# BZ30647 %*E:-NAN():0:6: ++# BZ30647 %E:NAN():1:5:nan: ++# BZ30647 %*E:NAN():0:5: ++# BZ30647 %E:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*E:NAN(09A_Zaz):0:12: + %E:0E0:1:3:0x0: + %*E:0E0:0:3: + %E:0E+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*E:3.40282346638528859811704183484516925E+38:0:41: + %E:INFINITY:1:8:inf: + %*E:INFINITY:0:8: +-%E:+NAN():1:6:nan: +-%*E:+NAN():0:6: +-%E:+NAN(09A_Zaz):1:13:nan: +-%*E:+NAN(09A_Zaz):0:13: ++# BZ30647 %E:+NAN():1:6:nan: ++# BZ30647 %*E:+NAN():0:6: ++# BZ30647 %E:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*E:+NAN(09A_Zaz):0:13: + %E:+0E0:1:4:0x0: + %*E:+0E0:0:4: + %E:+0E+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1E:-0E+0:0:-1: + %1E:-0E0:0:-1: + %*1E:-0E0:0:-1: +-%1E:-NAN(09A_Zaz):0:-1: +-%*1E:-NAN(09A_Zaz):0:-1: +-%1E:-NAN():0:-1: +-%*1E:-NAN():0:-1: +-%1E:NAN():0:-1: +-%*1E:NAN():0:-1: +-%1E:NAN(09A_Zaz):0:-1: +-%*1E:NAN(09A_Zaz):0:-1: ++# BZ30647 %1E:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1E:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1E:-NAN():0:-1: ++# BZ30647 %*1E:-NAN():0:-1: ++# BZ30647 %1E:NAN():0:-1: ++# BZ30647 %*1E:NAN():0:-1: ++# BZ30647 %1E:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1E:NAN(09A_Zaz):0:-1: + %1E:0E0:1:1:0x0: + %*1E:0E0:0:1: + %1E:0E+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1E:3.40282346638528859811704183484516925E+38:0:1: + %1E:INFINITY:0:-1: + %*1E:INFINITY:0:-1: +-%1E:+NAN():0:-1: +-%*1E:+NAN():0:-1: +-%1E:+NAN(09A_Zaz):0:-1: +-%*1E:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1E:+NAN():0:-1: ++# BZ30647 %*1E:+NAN():0:-1: ++# BZ30647 %1E:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1E:+NAN(09A_Zaz):0:-1: + %1E:+0E0:0:-1: + %*1E:+0E0:0:-1: + %1E:+0E+0:0:-1: +@@ -140,14 +140,14 @@ + %*2E:-0E+0:0:2: + %2E:-0E0:1:2:-0x0: + %*2E:-0E0:0:2: +-%2E:-NAN(09A_Zaz):0:-1: +-%*2E:-NAN(09A_Zaz):0:-1: +-%2E:-NAN():0:-1: +-%*2E:-NAN():0:-1: +-%2E:NAN():0:-1: +-%*2E:NAN():0:-1: +-%2E:NAN(09A_Zaz):0:-1: +-%*2E:NAN(09A_Zaz):0:-1: ++# BZ30647 %2E:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2E:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2E:-NAN():0:-1: ++# BZ30647 %*2E:-NAN():0:-1: ++# BZ30647 %2E:NAN():0:-1: ++# BZ30647 %*2E:NAN():0:-1: ++# BZ30647 %2E:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2E:NAN(09A_Zaz):0:-1: + # BZ12701 %2E:0E0:0:-1: + # BZ12701 %*2E:0E0:0:-1: + # BZ12701 %2E:0E+0:0:-1: +@@ -164,10 +164,10 @@ + %*2E:3.40282346638528859811704183484516925E+38:0:2: + %2E:INFINITY:0:-1: + %*2E:INFINITY:0:-1: +-%2E:+NAN():0:-1: +-%*2E:+NAN():0:-1: +-%2E:+NAN(09A_Zaz):0:-1: +-%*2E:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2E:+NAN():0:-1: ++# BZ30647 %*2E:+NAN():0:-1: ++# BZ30647 %2E:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2E:+NAN(09A_Zaz):0:-1: + %2E:+0E0:1:2:0x0: + %*2E:+0E0:0:2: + %2E:+0E+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3E:-0E+0:0:-1: + # BZ12701 %3E:-0E0:0:-1: + # BZ12701 %*3E:-0E0:0:-1: +-%3E:-NAN(09A_Zaz):0:-1: +-%*3E:-NAN(09A_Zaz):0:-1: +-%3E:-NAN():0:-1: +-%*3E:-NAN():0:-1: +-%3E:NAN():1:3:nan: +-%*3E:NAN():0:3: +-%3E:NAN(09A_Zaz):1:3:nan: +-%*3E:NAN(09A_Zaz):0:3: ++# BZ30647 %3E:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3E:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3E:-NAN():0:-1: ++# BZ30647 %*3E:-NAN():0:-1: ++# BZ30647 %3E:NAN():1:3:nan: ++# BZ30647 %*3E:NAN():0:3: ++# BZ30647 %3E:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3E:NAN(09A_Zaz):0:3: + %3E:0E0:1:3:0x0: + %*3E:0E0:0:3: + # BZ12701 %3E:0E+0:0:-1: +@@ -226,10 +226,10 @@ + %*3E:3.40282346638528859811704183484516925E+38:0:3: + %3E:INFINITY:1:3:inf: + %*3E:INFINITY:0:3: +-%3E:+NAN():0:-1: +-%*3E:+NAN():0:-1: +-%3E:+NAN(09A_Zaz):0:-1: +-%*3E:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3E:+NAN():0:-1: ++# BZ30647 %*3E:+NAN():0:-1: ++# BZ30647 %3E:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3E:+NAN(09A_Zaz):0:-1: + # BZ12701 %3E:+0E0:0:-1: + # BZ12701 %*3E:+0E0:0:-1: + # BZ12701 %3E:+0E+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4E:-0E+0:0:-1: + %4E:-0E0:1:4:-0x0: + %*4E:-0E0:0:4: +-%4E:-NAN(09A_Zaz):1:4:-nan: +-%*4E:-NAN(09A_Zaz):0:4: +-%4E:-NAN():1:4:-nan: +-%*4E:-NAN():0:4: +-%4E:NAN():0:-1: +-%*4E:NAN():0:-1: +-%4E:NAN(09A_Zaz):0:-1: +-%*4E:NAN(09A_Zaz):0:-1: ++# BZ30647 %4E:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4E:-NAN(09A_Zaz):0:4: ++# BZ30647 %4E:-NAN():1:4:-nan: ++# BZ30647 %*4E:-NAN():0:4: ++# BZ30647 %4E:NAN():0:-1: ++# BZ30647 %*4E:NAN():0:-1: ++# BZ30647 %4E:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4E:NAN(09A_Zaz):0:-1: + %4E:0E0:1:3:0x0: + %*4E:0E0:0:3: + %4E:0E+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4E:3.40282346638528859811704183484516925E+38:0:4: + %4E:INFINITY:0:-1: + %*4E:INFINITY:0:-1: +-%4E:+NAN():1:4:nan: +-%*4E:+NAN():0:4: +-%4E:+NAN(09A_Zaz):1:4:nan: +-%*4E:+NAN(09A_Zaz):0:4: ++# BZ30647 %4E:+NAN():1:4:nan: ++# BZ30647 %*4E:+NAN():0:4: ++# BZ30647 %4E:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4E:+NAN(09A_Zaz):0:4: + %4E:+0E0:1:4:0x0: + %*4E:+0E0:0:4: + # BZ12701 %4E:+0E+0:0:-1: +@@ -326,14 +326,14 @@ + %*40E:-0E+0:0:5: + %40E:-0E0:1:4:-0x0: + %*40E:-0E0:0:4: +-%40E:-NAN(09A_Zaz):1:13:-nan: +-%*40E:-NAN(09A_Zaz):0:13: +-%40E:-NAN():1:6:-nan: +-%*40E:-NAN():0:6: +-%40E:NAN():1:5:nan: +-%*40E:NAN():0:5: +-%40E:NAN(09A_Zaz):1:12:nan: +-%*40E:NAN(09A_Zaz):0:12: ++# BZ30647 %40E:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*40E:-NAN(09A_Zaz):0:13: ++# BZ30647 %40E:-NAN():1:6:-nan: ++# BZ30647 %*40E:-NAN():0:6: ++# BZ30647 %40E:NAN():1:5:nan: ++# BZ30647 %*40E:NAN():0:5: ++# BZ30647 %40E:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*40E:NAN(09A_Zaz):0:12: + %40E:0E0:1:3:0x0: + %*40E:0E0:0:3: + %40E:0E+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40E:3.40282346638528859811704183484516925E+38:0:40: + %40E:INFINITY:1:8:inf: + %*40E:INFINITY:0:8: +-%40E:+NAN():1:6:nan: +-%*40E:+NAN():0:6: +-%40E:+NAN(09A_Zaz):1:13:nan: +-%*40E:+NAN(09A_Zaz):0:13: ++# BZ30647 %40E:+NAN():1:6:nan: ++# BZ30647 %*40E:+NAN():0:6: ++# BZ30647 %40E:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*40E:+NAN(09A_Zaz):0:13: + %40E:+0E0:1:4:0x0: + %*40E:+0E0:0:4: + %40E:+0E+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48E:-0E+0:0:5: + %48E:-0E0:1:4:-0x0: + %*48E:-0E0:0:4: +-%48E:-NAN(09A_Zaz):1:13:-nan: +-%*48E:-NAN(09A_Zaz):0:13: +-%48E:-NAN():1:6:-nan: +-%*48E:-NAN():0:6: +-%48E:NAN():1:5:nan: +-%*48E:NAN():0:5: +-%48E:NAN(09A_Zaz):1:12:nan: +-%*48E:NAN(09A_Zaz):0:12: ++# BZ30647 %48E:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*48E:-NAN(09A_Zaz):0:13: ++# BZ30647 %48E:-NAN():1:6:-nan: ++# BZ30647 %*48E:-NAN():0:6: ++# BZ30647 %48E:NAN():1:5:nan: ++# BZ30647 %*48E:NAN():0:5: ++# BZ30647 %48E:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*48E:NAN(09A_Zaz):0:12: + %48E:0E0:1:3:0x0: + %*48E:0E0:0:3: + %48E:0E+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48E:3.40282346638528859811704183484516925E+38:0:41: + %48E:INFINITY:1:8:inf: + %*48E:INFINITY:0:8: +-%48E:+NAN():1:6:nan: +-%*48E:+NAN():0:6: +-%48E:+NAN(09A_Zaz):1:13:nan: +-%*48E:+NAN(09A_Zaz):0:13: ++# BZ30647 %48E:+NAN():1:6:nan: ++# BZ30647 %*48E:+NAN():0:6: ++# BZ30647 %48E:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48E:+NAN(09A_Zaz):0:13: + %48E:+0E0:1:4:0x0: + %*48E:+0E0:0:4: + %48E:+0E+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3E: -0E+0:0:-1: + # BZ12701 %3E: -0E0:0:-1: + # BZ12701 %*3E: -0E0:0:-1: +-%3E: -NAN(09A_Zaz):0:-1: +-%*3E: -NAN(09A_Zaz):0:-1: +-%3E: -NAN():0:-1: +-%*3E: -NAN():0:-1: +-%3E: NAN():1:4:nan: +-%*3E: NAN():0:4: +-%3E: NAN(09A_Zaz):1:4:nan: +-%*3E: NAN(09A_Zaz):0:4: ++# BZ30647 %3E: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3E: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3E: -NAN():0:-1: ++# BZ30647 %*3E: -NAN():0:-1: ++# BZ30647 %3E: NAN():1:4:nan: ++# BZ30647 %*3E: NAN():0:4: ++# BZ30647 %3E: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3E: NAN(09A_Zaz):0:4: + %3E: 0E0:1:4:0x0: + %*3E: 0E0:0:4: + # BZ12701 %3E: 0E+0:0:-1: +@@ -474,10 +474,10 @@ + %*3E: 3.40282346638528859811704183484516925E+38:0:4: + %3E: INFINITY:1:4:inf: + %*3E: INFINITY:0:4: +-%3E: +NAN():0:-1: +-%*3E: +NAN():0:-1: +-%3E: +NAN(09A_Zaz):0:-1: +-%*3E: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3E: +NAN():0:-1: ++# BZ30647 %*3E: +NAN():0:-1: ++# BZ30647 %3E: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3E: +NAN(09A_Zaz):0:-1: + # BZ12701 %3E: +0E0:0:-1: + # BZ12701 %*3E: +0E0:0:-1: + # BZ12701 %3E: +0E+0:0:-1: +@@ -512,14 +512,14 @@ + %*48E: -0E+0:0:6: + %48E: -0E0:1:5:-0x0: + %*48E: -0E0:0:5: +-%48E: -NAN(09A_Zaz):1:14:-nan: +-%*48E: -NAN(09A_Zaz):0:14: +-%48E: -NAN():1:7:-nan: +-%*48E: -NAN():0:7: +-%48E: NAN():1:6:nan: +-%*48E: NAN():0:6: +-%48E: NAN(09A_Zaz):1:13:nan: +-%*48E: NAN(09A_Zaz):0:13: ++# BZ30647 %48E: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*48E: -NAN(09A_Zaz):0:14: ++# BZ30647 %48E: -NAN():1:7:-nan: ++# BZ30647 %*48E: -NAN():0:7: ++# BZ30647 %48E: NAN():1:6:nan: ++# BZ30647 %*48E: NAN():0:6: ++# BZ30647 %48E: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48E: NAN(09A_Zaz):0:13: + %48E: 0E0:1:4:0x0: + %*48E: 0E0:0:4: + %48E: 0E+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48E: 3.40282346638528859811704183484516925E+38:0:42: + %48E: INFINITY:1:9:inf: + %*48E: INFINITY:0:9: +-%48E: +NAN():1:7:nan: +-%*48E: +NAN():0:7: +-%48E: +NAN(09A_Zaz):1:14:nan: +-%*48E: +NAN(09A_Zaz):0:14: ++# BZ30647 %48E: +NAN():1:7:nan: ++# BZ30647 %*48E: +NAN():0:7: ++# BZ30647 %48E: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*48E: +NAN(09A_Zaz):0:14: + %48E: +0E0:1:5:0x0: + %*48E: +0E0:0:5: + %48E: +0E+0:1:6:0x0: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-f.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-f.input +index 57d9677b1b9650db..18e64459901711db 100644 +--- a/sysdeps/ieee754/flt-32/tst-scanf-format-float-f.input ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-f.input +@@ -16,14 +16,14 @@ + %*f:-0.0:0:4: + %f:-0:1:2:-0x0: + %*f:-0:0:2: +-%f:-nan(09A_Zaz):1:13:-nan: +-%*f:-nan(09A_Zaz):0:13: +-%f:-nan():1:6:-nan: +-%*f:-nan():0:6: +-%f:nan():1:5:nan: +-%*f:nan():0:5: +-%f:nan(09A_Zaz):1:12:nan: +-%*f:nan(09A_Zaz):0:12: ++# BZ30647 %f:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*f:-nan(09A_Zaz):0:13: ++# BZ30647 %f:-nan():1:6:-nan: ++# BZ30647 %*f:-nan():0:6: ++# BZ30647 %f:nan():1:5:nan: ++# BZ30647 %*f:nan():0:5: ++# BZ30647 %f:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*f:nan(09A_Zaz):0:12: + %f:0:1:1:0x0: + %*f:0:0:1: + %f:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*f:0340282346638528859811704183484516925440.0:0:42: + %f:infinity:1:8:inf: + %*f:infinity:0:8: +-%f:+nan():1:6:nan: +-%*f:+nan():0:6: +-%f:+nan(09A_Zaz):1:13:nan: +-%*f:+nan(09A_Zaz):0:13: ++# BZ30647 %f:+nan():1:6:nan: ++# BZ30647 %*f:+nan():0:6: ++# BZ30647 %f:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*f:+nan(09A_Zaz):0:13: + %f:+0:1:2:0x0: + %*f:+0:0:2: + %f:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1f:-0.0:0:-1: + %1f:-0:0:-1: + %*1f:-0:0:-1: +-%1f:-nan(09A_Zaz):0:-1: +-%*1f:-nan(09A_Zaz):0:-1: +-%1f:-nan():0:-1: +-%*1f:-nan():0:-1: +-%1f:nan():0:-1: +-%*1f:nan():0:-1: +-%1f:nan(09A_Zaz):0:-1: +-%*1f:nan(09A_Zaz):0:-1: ++# BZ30647 %1f:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1f:-nan(09A_Zaz):0:-1: ++# BZ30647 %1f:-nan():0:-1: ++# BZ30647 %*1f:-nan():0:-1: ++# BZ30647 %1f:nan():0:-1: ++# BZ30647 %*1f:nan():0:-1: ++# BZ30647 %1f:nan(09A_Zaz):0:-1: ++# BZ30647 %*1f:nan(09A_Zaz):0:-1: + %1f:0:1:1:0x0: + %*1f:0:0:1: + %1f:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1f:0340282346638528859811704183484516925440.0:0:1: + %1f:infinity:0:-1: + %*1f:infinity:0:-1: +-%1f:+nan():0:-1: +-%*1f:+nan():0:-1: +-%1f:+nan(09A_Zaz):0:-1: +-%*1f:+nan(09A_Zaz):0:-1: ++# BZ30647 %1f:+nan():0:-1: ++# BZ30647 %*1f:+nan():0:-1: ++# BZ30647 %1f:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1f:+nan(09A_Zaz):0:-1: + %1f:+0:0:-1: + %*1f:+0:0:-1: + %1f:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2f:-0.0:0:2: + %2f:-0:1:2:-0x0: + %*2f:-0:0:2: +-%2f:-nan(09A_Zaz):0:-1: +-%*2f:-nan(09A_Zaz):0:-1: +-%2f:-nan():0:-1: +-%*2f:-nan():0:-1: +-%2f:nan():0:-1: +-%*2f:nan():0:-1: +-%2f:nan(09A_Zaz):0:-1: +-%*2f:nan(09A_Zaz):0:-1: ++# BZ30647 %2f:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2f:-nan(09A_Zaz):0:-1: ++# BZ30647 %2f:-nan():0:-1: ++# BZ30647 %*2f:-nan():0:-1: ++# BZ30647 %2f:nan():0:-1: ++# BZ30647 %*2f:nan():0:-1: ++# BZ30647 %2f:nan(09A_Zaz):0:-1: ++# BZ30647 %*2f:nan(09A_Zaz):0:-1: + %2f:0:1:1:0x0: + %*2f:0:0:1: + %2f:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2f:0340282346638528859811704183484516925440.0:0:2: + %2f:infinity:0:-1: + %*2f:infinity:0:-1: +-%2f:+nan():0:-1: +-%*2f:+nan():0:-1: +-%2f:+nan(09A_Zaz):0:-1: +-%*2f:+nan(09A_Zaz):0:-1: ++# BZ30647 %2f:+nan():0:-1: ++# BZ30647 %*2f:+nan():0:-1: ++# BZ30647 %2f:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2f:+nan(09A_Zaz):0:-1: + %2f:+0:1:2:0x0: + %*2f:+0:0:2: + %2f:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3f:-0.0:0:3: + %3f:-0:1:2:-0x0: + %*3f:-0:0:2: +-%3f:-nan(09A_Zaz):0:-1: +-%*3f:-nan(09A_Zaz):0:-1: +-%3f:-nan():0:-1: +-%*3f:-nan():0:-1: +-%3f:nan():1:3:nan: +-%*3f:nan():0:3: +-%3f:nan(09A_Zaz):1:3:nan: +-%*3f:nan(09A_Zaz):0:3: ++# BZ30647 %3f:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3f:-nan(09A_Zaz):0:-1: ++# BZ30647 %3f:-nan():0:-1: ++# BZ30647 %*3f:-nan():0:-1: ++# BZ30647 %3f:nan():1:3:nan: ++# BZ30647 %*3f:nan():0:3: ++# BZ30647 %3f:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3f:nan(09A_Zaz):0:3: + %3f:0:1:1:0x0: + %*3f:0:0:1: + %3f:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3f:0340282346638528859811704183484516925440.0:0:3: + %3f:infinity:1:3:inf: + %*3f:infinity:0:3: +-%3f:+nan():0:-1: +-%*3f:+nan():0:-1: +-%3f:+nan(09A_Zaz):0:-1: +-%*3f:+nan(09A_Zaz):0:-1: ++# BZ30647 %3f:+nan():0:-1: ++# BZ30647 %*3f:+nan():0:-1: ++# BZ30647 %3f:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3f:+nan(09A_Zaz):0:-1: + %3f:+0:1:2:0x0: + %*3f:+0:0:2: + %3f:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4f:-0.0:0:4: + %4f:-0:1:2:-0x0: + %*4f:-0:0:2: +-%4f:-nan(09A_Zaz):1:4:-nan: +-%*4f:-nan(09A_Zaz):0:4: +-%4f:-nan():1:4:-nan: +-%*4f:-nan():0:4: +-%4f:nan():0:-1: +-%*4f:nan():0:-1: +-%4f:nan(09A_Zaz):0:-1: +-%*4f:nan(09A_Zaz):0:-1: ++# BZ30647 %4f:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4f:-nan(09A_Zaz):0:4: ++# BZ30647 %4f:-nan():1:4:-nan: ++# BZ30647 %*4f:-nan():0:4: ++# BZ30647 %4f:nan():0:-1: ++# BZ30647 %*4f:nan():0:-1: ++# BZ30647 %4f:nan(09A_Zaz):0:-1: ++# BZ30647 %*4f:nan(09A_Zaz):0:-1: + %4f:0:1:1:0x0: + %*4f:0:0:1: + %4f:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4f:0340282346638528859811704183484516925440.0:0:4: + %4f:infinity:0:-1: + %*4f:infinity:0:-1: +-%4f:+nan():1:4:nan: +-%*4f:+nan():0:4: +-%4f:+nan(09A_Zaz):1:4:nan: +-%*4f:+nan(09A_Zaz):0:4: ++# BZ30647 %4f:+nan():1:4:nan: ++# BZ30647 %*4f:+nan():0:4: ++# BZ30647 %4f:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4f:+nan(09A_Zaz):0:4: + %4f:+0:1:2:0x0: + %*4f:+0:0:2: + %4f:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*41f:-0.0:0:4: + %41f:-0:1:2:-0x0: + %*41f:-0:0:2: +-%41f:-nan(09A_Zaz):1:13:-nan: +-%*41f:-nan(09A_Zaz):0:13: +-%41f:-nan():1:6:-nan: +-%*41f:-nan():0:6: +-%41f:nan():1:5:nan: +-%*41f:nan():0:5: +-%41f:nan(09A_Zaz):1:12:nan: +-%*41f:nan(09A_Zaz):0:12: ++# BZ30647 %41f:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*41f:-nan(09A_Zaz):0:13: ++# BZ30647 %41f:-nan():1:6:-nan: ++# BZ30647 %*41f:-nan():0:6: ++# BZ30647 %41f:nan():1:5:nan: ++# BZ30647 %*41f:nan():0:5: ++# BZ30647 %41f:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*41f:nan(09A_Zaz):0:12: + %41f:0:1:1:0x0: + %*41f:0:0:1: + %41f:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*41f:0340282346638528859811704183484516925440.0:0:41: + %41f:infinity:1:8:inf: + %*41f:infinity:0:8: +-%41f:+nan():1:6:nan: +-%*41f:+nan():0:6: +-%41f:+nan(09A_Zaz):1:13:nan: +-%*41f:+nan(09A_Zaz):0:13: ++# BZ30647 %41f:+nan():1:6:nan: ++# BZ30647 %*41f:+nan():0:6: ++# BZ30647 %41f:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*41f:+nan(09A_Zaz):0:13: + %41f:+0:1:2:0x0: + %*41f:+0:0:2: + %41f:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*80f:-0.0:0:4: + %80f:-0:1:2:-0x0: + %*80f:-0:0:2: +-%80f:-nan(09A_Zaz):1:13:-nan: +-%*80f:-nan(09A_Zaz):0:13: +-%80f:-nan():1:6:-nan: +-%*80f:-nan():0:6: +-%80f:nan():1:5:nan: +-%*80f:nan():0:5: +-%80f:nan(09A_Zaz):1:12:nan: +-%*80f:nan(09A_Zaz):0:12: ++# BZ30647 %80f:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*80f:-nan(09A_Zaz):0:13: ++# BZ30647 %80f:-nan():1:6:-nan: ++# BZ30647 %*80f:-nan():0:6: ++# BZ30647 %80f:nan():1:5:nan: ++# BZ30647 %*80f:nan():0:5: ++# BZ30647 %80f:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*80f:nan(09A_Zaz):0:12: + %80f:0:1:1:0x0: + %*80f:0:0:1: + %80f:0.0:1:3:0x0: +@@ -412,10 +412,10 @@ + %*80f:0340282346638528859811704183484516925440.0:0:42: + %80f:infinity:1:8:inf: + %*80f:infinity:0:8: +-%80f:+nan():1:6:nan: +-%*80f:+nan():0:6: +-%80f:+nan(09A_Zaz):1:13:nan: +-%*80f:+nan(09A_Zaz):0:13: ++# BZ30647 %80f:+nan():1:6:nan: ++# BZ30647 %*80f:+nan():0:6: ++# BZ30647 %80f:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*80f:+nan(09A_Zaz):0:13: + %80f:+0:1:2:0x0: + %*80f:+0:0:2: + %80f:+0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*3f: -0.0:0:4: + %3f: -0:1:3:-0x0: + %*3f: -0:0:3: +-%3f: -nan(09A_Zaz):0:-1: +-%*3f: -nan(09A_Zaz):0:-1: +-%3f: -nan():0:-1: +-%*3f: -nan():0:-1: +-%3f: nan():1:4:nan: +-%*3f: nan():0:4: +-%3f: nan(09A_Zaz):1:4:nan: +-%*3f: nan(09A_Zaz):0:4: ++# BZ30647 %3f: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3f: -nan(09A_Zaz):0:-1: ++# BZ30647 %3f: -nan():0:-1: ++# BZ30647 %*3f: -nan():0:-1: ++# BZ30647 %3f: nan():1:4:nan: ++# BZ30647 %*3f: nan():0:4: ++# BZ30647 %3f: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3f: nan(09A_Zaz):0:4: + %3f: 0:1:2:0x0: + %*3f: 0:0:2: + %3f: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*3f: 0340282346638528859811704183484516925440.0:0:4: + %3f: infinity:1:4:inf: + %*3f: infinity:0:4: +-%3f: +nan():0:-1: +-%*3f: +nan():0:-1: +-%3f: +nan(09A_Zaz):0:-1: +-%*3f: +nan(09A_Zaz):0:-1: ++# BZ30647 %3f: +nan():0:-1: ++# BZ30647 %*3f: +nan():0:-1: ++# BZ30647 %3f: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3f: +nan(09A_Zaz):0:-1: + %3f: +0:1:3:0x0: + %*3f: +0:0:3: + %3f: +0.0:1:4:0x0: +@@ -512,14 +512,14 @@ + %*80f: -0.0:0:5: + %80f: -0:1:3:-0x0: + %*80f: -0:0:3: +-%80f: -nan(09A_Zaz):1:14:-nan: +-%*80f: -nan(09A_Zaz):0:14: +-%80f: -nan():1:7:-nan: +-%*80f: -nan():0:7: +-%80f: nan():1:6:nan: +-%*80f: nan():0:6: +-%80f: nan(09A_Zaz):1:13:nan: +-%*80f: nan(09A_Zaz):0:13: ++# BZ30647 %80f: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*80f: -nan(09A_Zaz):0:14: ++# BZ30647 %80f: -nan():1:7:-nan: ++# BZ30647 %*80f: -nan():0:7: ++# BZ30647 %80f: nan():1:6:nan: ++# BZ30647 %*80f: nan():0:6: ++# BZ30647 %80f: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*80f: nan(09A_Zaz):0:13: + %80f: 0:1:2:0x0: + %*80f: 0:0:2: + %80f: 0.0:1:4:0x0: +@@ -536,10 +536,10 @@ + %*80f: 0340282346638528859811704183484516925440.0:0:43: + %80f: infinity:1:9:inf: + %*80f: infinity:0:9: +-%80f: +nan():1:7:nan: +-%*80f: +nan():0:7: +-%80f: +nan(09A_Zaz):1:14:nan: +-%*80f: +nan(09A_Zaz):0:14: ++# BZ30647 %80f: +nan():1:7:nan: ++# BZ30647 %*80f: +nan():0:7: ++# BZ30647 %80f: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*80f: +nan(09A_Zaz):0:14: + %80f: +0:1:3:0x0: + %*80f: +0:0:3: + %80f: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-ff.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ff.input +index 3ec8ed0e8f7069be..521ea247b140b17d 100644 +--- a/sysdeps/ieee754/flt-32/tst-scanf-format-float-ff.input ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ff.input +@@ -16,14 +16,14 @@ + %*F:-0.0:0:4: + %F:-0:1:2:-0x0: + %*F:-0:0:2: +-%F:-NAN(09A_Zaz):1:13:-nan: +-%*F:-NAN(09A_Zaz):0:13: +-%F:-NAN():1:6:-nan: +-%*F:-NAN():0:6: +-%F:NAN():1:5:nan: +-%*F:NAN():0:5: +-%F:NAN(09A_Zaz):1:12:nan: +-%*F:NAN(09A_Zaz):0:12: ++# BZ30647 %F:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*F:-NAN(09A_Zaz):0:13: ++# BZ30647 %F:-NAN():1:6:-nan: ++# BZ30647 %*F:-NAN():0:6: ++# BZ30647 %F:NAN():1:5:nan: ++# BZ30647 %*F:NAN():0:5: ++# BZ30647 %F:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*F:NAN(09A_Zaz):0:12: + %F:0:1:1:0x0: + %*F:0:0:1: + %F:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*F:0340282346638528859811704183484516925440.0:0:42: + %F:INFINITY:1:8:inf: + %*F:INFINITY:0:8: +-%F:+NAN():1:6:nan: +-%*F:+NAN():0:6: +-%F:+NAN(09A_Zaz):1:13:nan: +-%*F:+NAN(09A_Zaz):0:13: ++# BZ30647 %F:+NAN():1:6:nan: ++# BZ30647 %*F:+NAN():0:6: ++# BZ30647 %F:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*F:+NAN(09A_Zaz):0:13: + %F:+0:1:2:0x0: + %*F:+0:0:2: + %F:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1F:-0.0:0:-1: + %1F:-0:0:-1: + %*1F:-0:0:-1: +-%1F:-NAN(09A_Zaz):0:-1: +-%*1F:-NAN(09A_Zaz):0:-1: +-%1F:-NAN():0:-1: +-%*1F:-NAN():0:-1: +-%1F:NAN():0:-1: +-%*1F:NAN():0:-1: +-%1F:NAN(09A_Zaz):0:-1: +-%*1F:NAN(09A_Zaz):0:-1: ++# BZ30647 %1F:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1F:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1F:-NAN():0:-1: ++# BZ30647 %*1F:-NAN():0:-1: ++# BZ30647 %1F:NAN():0:-1: ++# BZ30647 %*1F:NAN():0:-1: ++# BZ30647 %1F:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1F:NAN(09A_Zaz):0:-1: + %1F:0:1:1:0x0: + %*1F:0:0:1: + %1F:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1F:0340282346638528859811704183484516925440.0:0:1: + %1F:INFINITY:0:-1: + %*1F:INFINITY:0:-1: +-%1F:+NAN():0:-1: +-%*1F:+NAN():0:-1: +-%1F:+NAN(09A_Zaz):0:-1: +-%*1F:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1F:+NAN():0:-1: ++# BZ30647 %*1F:+NAN():0:-1: ++# BZ30647 %1F:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1F:+NAN(09A_Zaz):0:-1: + %1F:+0:0:-1: + %*1F:+0:0:-1: + %1F:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2F:-0.0:0:2: + %2F:-0:1:2:-0x0: + %*2F:-0:0:2: +-%2F:-NAN(09A_Zaz):0:-1: +-%*2F:-NAN(09A_Zaz):0:-1: +-%2F:-NAN():0:-1: +-%*2F:-NAN():0:-1: +-%2F:NAN():0:-1: +-%*2F:NAN():0:-1: +-%2F:NAN(09A_Zaz):0:-1: +-%*2F:NAN(09A_Zaz):0:-1: ++# BZ30647 %2F:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2F:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2F:-NAN():0:-1: ++# BZ30647 %*2F:-NAN():0:-1: ++# BZ30647 %2F:NAN():0:-1: ++# BZ30647 %*2F:NAN():0:-1: ++# BZ30647 %2F:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2F:NAN(09A_Zaz):0:-1: + %2F:0:1:1:0x0: + %*2F:0:0:1: + %2F:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2F:0340282346638528859811704183484516925440.0:0:2: + %2F:INFINITY:0:-1: + %*2F:INFINITY:0:-1: +-%2F:+NAN():0:-1: +-%*2F:+NAN():0:-1: +-%2F:+NAN(09A_Zaz):0:-1: +-%*2F:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2F:+NAN():0:-1: ++# BZ30647 %*2F:+NAN():0:-1: ++# BZ30647 %2F:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2F:+NAN(09A_Zaz):0:-1: + %2F:+0:1:2:0x0: + %*2F:+0:0:2: + %2F:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3F:-0.0:0:3: + %3F:-0:1:2:-0x0: + %*3F:-0:0:2: +-%3F:-NAN(09A_Zaz):0:-1: +-%*3F:-NAN(09A_Zaz):0:-1: +-%3F:-NAN():0:-1: +-%*3F:-NAN():0:-1: +-%3F:NAN():1:3:nan: +-%*3F:NAN():0:3: +-%3F:NAN(09A_Zaz):1:3:nan: +-%*3F:NAN(09A_Zaz):0:3: ++# BZ30647 %3F:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3F:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3F:-NAN():0:-1: ++# BZ30647 %*3F:-NAN():0:-1: ++# BZ30647 %3F:NAN():1:3:nan: ++# BZ30647 %*3F:NAN():0:3: ++# BZ30647 %3F:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3F:NAN(09A_Zaz):0:3: + %3F:0:1:1:0x0: + %*3F:0:0:1: + %3F:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3F:0340282346638528859811704183484516925440.0:0:3: + %3F:INFINITY:1:3:inf: + %*3F:INFINITY:0:3: +-%3F:+NAN():0:-1: +-%*3F:+NAN():0:-1: +-%3F:+NAN(09A_Zaz):0:-1: +-%*3F:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3F:+NAN():0:-1: ++# BZ30647 %*3F:+NAN():0:-1: ++# BZ30647 %3F:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3F:+NAN(09A_Zaz):0:-1: + %3F:+0:1:2:0x0: + %*3F:+0:0:2: + %3F:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4F:-0.0:0:4: + %4F:-0:1:2:-0x0: + %*4F:-0:0:2: +-%4F:-NAN(09A_Zaz):1:4:-nan: +-%*4F:-NAN(09A_Zaz):0:4: +-%4F:-NAN():1:4:-nan: +-%*4F:-NAN():0:4: +-%4F:NAN():0:-1: +-%*4F:NAN():0:-1: +-%4F:NAN(09A_Zaz):0:-1: +-%*4F:NAN(09A_Zaz):0:-1: ++# BZ30647 %4F:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4F:-NAN(09A_Zaz):0:4: ++# BZ30647 %4F:-NAN():1:4:-nan: ++# BZ30647 %*4F:-NAN():0:4: ++# BZ30647 %4F:NAN():0:-1: ++# BZ30647 %*4F:NAN():0:-1: ++# BZ30647 %4F:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4F:NAN(09A_Zaz):0:-1: + %4F:0:1:1:0x0: + %*4F:0:0:1: + %4F:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4F:0340282346638528859811704183484516925440.0:0:4: + %4F:INFINITY:0:-1: + %*4F:INFINITY:0:-1: +-%4F:+NAN():1:4:nan: +-%*4F:+NAN():0:4: +-%4F:+NAN(09A_Zaz):1:4:nan: +-%*4F:+NAN(09A_Zaz):0:4: ++# BZ30647 %4F:+NAN():1:4:nan: ++# BZ30647 %*4F:+NAN():0:4: ++# BZ30647 %4F:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4F:+NAN(09A_Zaz):0:4: + %4F:+0:1:2:0x0: + %*4F:+0:0:2: + %4F:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*41F:-0.0:0:4: + %41F:-0:1:2:-0x0: + %*41F:-0:0:2: +-%41F:-NAN(09A_Zaz):1:13:-nan: +-%*41F:-NAN(09A_Zaz):0:13: +-%41F:-NAN():1:6:-nan: +-%*41F:-NAN():0:6: +-%41F:NAN():1:5:nan: +-%*41F:NAN():0:5: +-%41F:NAN(09A_Zaz):1:12:nan: +-%*41F:NAN(09A_Zaz):0:12: ++# BZ30647 %41F:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*41F:-NAN(09A_Zaz):0:13: ++# BZ30647 %41F:-NAN():1:6:-nan: ++# BZ30647 %*41F:-NAN():0:6: ++# BZ30647 %41F:NAN():1:5:nan: ++# BZ30647 %*41F:NAN():0:5: ++# BZ30647 %41F:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*41F:NAN(09A_Zaz):0:12: + %41F:0:1:1:0x0: + %*41F:0:0:1: + %41F:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*41F:0340282346638528859811704183484516925440.0:0:41: + %41F:INFINITY:1:8:inf: + %*41F:INFINITY:0:8: +-%41F:+NAN():1:6:nan: +-%*41F:+NAN():0:6: +-%41F:+NAN(09A_Zaz):1:13:nan: +-%*41F:+NAN(09A_Zaz):0:13: ++# BZ30647 %41F:+NAN():1:6:nan: ++# BZ30647 %*41F:+NAN():0:6: ++# BZ30647 %41F:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*41F:+NAN(09A_Zaz):0:13: + %41F:+0:1:2:0x0: + %*41F:+0:0:2: + %41F:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*80F:-0.0:0:4: + %80F:-0:1:2:-0x0: + %*80F:-0:0:2: +-%80F:-NAN(09A_Zaz):1:13:-nan: +-%*80F:-NAN(09A_Zaz):0:13: +-%80F:-NAN():1:6:-nan: +-%*80F:-NAN():0:6: +-%80F:NAN():1:5:nan: +-%*80F:NAN():0:5: +-%80F:NAN(09A_Zaz):1:12:nan: +-%*80F:NAN(09A_Zaz):0:12: ++# BZ30647 %80F:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*80F:-NAN(09A_Zaz):0:13: ++# BZ30647 %80F:-NAN():1:6:-nan: ++# BZ30647 %*80F:-NAN():0:6: ++# BZ30647 %80F:NAN():1:5:nan: ++# BZ30647 %*80F:NAN():0:5: ++# BZ30647 %80F:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*80F:NAN(09A_Zaz):0:12: + %80F:0:1:1:0x0: + %*80F:0:0:1: + %80F:0.0:1:3:0x0: +@@ -412,10 +412,10 @@ + %*80F:0340282346638528859811704183484516925440.0:0:42: + %80F:INFINITY:1:8:inf: + %*80F:INFINITY:0:8: +-%80F:+NAN():1:6:nan: +-%*80F:+NAN():0:6: +-%80F:+NAN(09A_Zaz):1:13:nan: +-%*80F:+NAN(09A_Zaz):0:13: ++# BZ30647 %80F:+NAN():1:6:nan: ++# BZ30647 %*80F:+NAN():0:6: ++# BZ30647 %80F:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*80F:+NAN(09A_Zaz):0:13: + %80F:+0:1:2:0x0: + %*80F:+0:0:2: + %80F:+0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*3F: -0.0:0:4: + %3F: -0:1:3:-0x0: + %*3F: -0:0:3: +-%3F: -NAN(09A_Zaz):0:-1: +-%*3F: -NAN(09A_Zaz):0:-1: +-%3F: -NAN():0:-1: +-%*3F: -NAN():0:-1: +-%3F: NAN():1:4:nan: +-%*3F: NAN():0:4: +-%3F: NAN(09A_Zaz):1:4:nan: +-%*3F: NAN(09A_Zaz):0:4: ++# BZ30647 %3F: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3F: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3F: -NAN():0:-1: ++# BZ30647 %*3F: -NAN():0:-1: ++# BZ30647 %3F: NAN():1:4:nan: ++# BZ30647 %*3F: NAN():0:4: ++# BZ30647 %3F: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3F: NAN(09A_Zaz):0:4: + %3F: 0:1:2:0x0: + %*3F: 0:0:2: + %3F: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*3F: 0340282346638528859811704183484516925440.0:0:4: + %3F: INFINITY:1:4:inf: + %*3F: INFINITY:0:4: +-%3F: +NAN():0:-1: +-%*3F: +NAN():0:-1: +-%3F: +NAN(09A_Zaz):0:-1: +-%*3F: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3F: +NAN():0:-1: ++# BZ30647 %*3F: +NAN():0:-1: ++# BZ30647 %3F: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3F: +NAN(09A_Zaz):0:-1: + %3F: +0:1:3:0x0: + %*3F: +0:0:3: + %3F: +0.0:1:4:0x0: +@@ -512,14 +512,14 @@ + %*80F: -0.0:0:5: + %80F: -0:1:3:-0x0: + %*80F: -0:0:3: +-%80F: -NAN(09A_Zaz):1:14:-nan: +-%*80F: -NAN(09A_Zaz):0:14: +-%80F: -NAN():1:7:-nan: +-%*80F: -NAN():0:7: +-%80F: NAN():1:6:nan: +-%*80F: NAN():0:6: +-%80F: NAN(09A_Zaz):1:13:nan: +-%*80F: NAN(09A_Zaz):0:13: ++# BZ30647 %80F: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*80F: -NAN(09A_Zaz):0:14: ++# BZ30647 %80F: -NAN():1:7:-nan: ++# BZ30647 %*80F: -NAN():0:7: ++# BZ30647 %80F: NAN():1:6:nan: ++# BZ30647 %*80F: NAN():0:6: ++# BZ30647 %80F: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*80F: NAN(09A_Zaz):0:13: + %80F: 0:1:2:0x0: + %*80F: 0:0:2: + %80F: 0.0:1:4:0x0: +@@ -536,10 +536,10 @@ + %*80F: 0340282346638528859811704183484516925440.0:0:43: + %80F: INFINITY:1:9:inf: + %*80F: INFINITY:0:9: +-%80F: +NAN():1:7:nan: +-%*80F: +NAN():0:7: +-%80F: +NAN(09A_Zaz):1:14:nan: +-%*80F: +NAN(09A_Zaz):0:14: ++# BZ30647 %80F: +NAN():1:7:nan: ++# BZ30647 %*80F: +NAN():0:7: ++# BZ30647 %80F: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*80F: +NAN(09A_Zaz):0:14: + %80F: +0:1:3:0x0: + %*80F: +0:0:3: + %80F: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-g.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-g.input +index 81462cd764def99b..5b7b481e2b549682 100644 +--- a/sysdeps/ieee754/flt-32/tst-scanf-format-float-g.input ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-g.input +@@ -16,14 +16,14 @@ + %*g:-0x0p+0:0:7: + %g:-0x0p0:1:6:-0x0: + %*g:-0x0p0:0:6: +-%g:-nan(09A_Zaz):1:13:-nan: +-%*g:-nan(09A_Zaz):0:13: +-%g:-nan():1:6:-nan: +-%*g:-nan():0:6: +-%g:nan():1:5:nan: +-%*g:nan():0:5: +-%g:nan(09A_Zaz):1:12:nan: +-%*g:nan(09A_Zaz):0:12: ++# BZ30647 %g:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*g:-nan(09A_Zaz):0:13: ++# BZ30647 %g:-nan():1:6:-nan: ++# BZ30647 %*g:-nan():0:6: ++# BZ30647 %g:nan():1:5:nan: ++# BZ30647 %*g:nan():0:5: ++# BZ30647 %g:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*g:nan(09A_Zaz):0:12: + %g:0x0p0:1:5:0x0: + %*g:0x0p0:0:5: + %g:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*g:0xf.fffffp+124:0:14: + %g:infinity:1:8:inf: + %*g:infinity:0:8: +-%g:+nan():1:6:nan: +-%*g:+nan():0:6: +-%g:+nan(09A_Zaz):1:13:nan: +-%*g:+nan(09A_Zaz):0:13: ++# BZ30647 %g:+nan():1:6:nan: ++# BZ30647 %*g:+nan():0:6: ++# BZ30647 %g:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*g:+nan(09A_Zaz):0:13: + %g:+0x0p0:1:6:0x0: + %*g:+0x0p0:0:6: + %g:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1g:-0x0p+0:0:-1: + %1g:-0x0p0:0:-1: + %*1g:-0x0p0:0:-1: +-%1g:-nan(09A_Zaz):0:-1: +-%*1g:-nan(09A_Zaz):0:-1: +-%1g:-nan():0:-1: +-%*1g:-nan():0:-1: +-%1g:nan():0:-1: +-%*1g:nan():0:-1: +-%1g:nan(09A_Zaz):0:-1: +-%*1g:nan(09A_Zaz):0:-1: ++# BZ30647 %1g:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1g:-nan(09A_Zaz):0:-1: ++# BZ30647 %1g:-nan():0:-1: ++# BZ30647 %*1g:-nan():0:-1: ++# BZ30647 %1g:nan():0:-1: ++# BZ30647 %*1g:nan():0:-1: ++# BZ30647 %1g:nan(09A_Zaz):0:-1: ++# BZ30647 %*1g:nan(09A_Zaz):0:-1: + %1g:0x0p0:1:1:0x0: + %*1g:0x0p0:0:1: + %1g:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1g:0xf.fffffp+124:0:1: + %1g:infinity:0:-1: + %*1g:infinity:0:-1: +-%1g:+nan():0:-1: +-%*1g:+nan():0:-1: +-%1g:+nan(09A_Zaz):0:-1: +-%*1g:+nan(09A_Zaz):0:-1: ++# BZ30647 %1g:+nan():0:-1: ++# BZ30647 %*1g:+nan():0:-1: ++# BZ30647 %1g:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1g:+nan(09A_Zaz):0:-1: + %1g:+0x0p0:0:-1: + %*1g:+0x0p0:0:-1: + %1g:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2g:-0x0p+0:0:2: + %2g:-0x0p0:1:2:-0x0: + %*2g:-0x0p0:0:2: +-%2g:-nan(09A_Zaz):0:-1: +-%*2g:-nan(09A_Zaz):0:-1: +-%2g:-nan():0:-1: +-%*2g:-nan():0:-1: +-%2g:nan():0:-1: +-%*2g:nan():0:-1: +-%2g:nan(09A_Zaz):0:-1: +-%*2g:nan(09A_Zaz):0:-1: ++# BZ30647 %2g:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2g:-nan(09A_Zaz):0:-1: ++# BZ30647 %2g:-nan():0:-1: ++# BZ30647 %*2g:-nan():0:-1: ++# BZ30647 %2g:nan():0:-1: ++# BZ30647 %*2g:nan():0:-1: ++# BZ30647 %2g:nan(09A_Zaz):0:-1: ++# BZ30647 %*2g:nan(09A_Zaz):0:-1: + # BZ12701 %2g:0x0p0:0:-1: + # BZ12701 %*2g:0x0p0:0:-1: + # BZ12701 %2g:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2g:0xf.fffffp+124:0:-1: + %2g:infinity:0:-1: + %*2g:infinity:0:-1: +-%2g:+nan():0:-1: +-%*2g:+nan():0:-1: +-%2g:+nan(09A_Zaz):0:-1: +-%*2g:+nan(09A_Zaz):0:-1: ++# BZ30647 %2g:+nan():0:-1: ++# BZ30647 %*2g:+nan():0:-1: ++# BZ30647 %2g:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2g:+nan(09A_Zaz):0:-1: + %2g:+0x0p0:1:2:0x0: + %*2g:+0x0p0:0:2: + %2g:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3g:-0x0p+0:0:-1: + # BZ12701 %3g:-0x0p0:0:-1: + # BZ12701 %*3g:-0x0p0:0:-1: +-%3g:-nan(09A_Zaz):0:-1: +-%*3g:-nan(09A_Zaz):0:-1: +-%3g:-nan():0:-1: +-%*3g:-nan():0:-1: +-%3g:nan():1:3:nan: +-%*3g:nan():0:3: +-%3g:nan(09A_Zaz):1:3:nan: +-%*3g:nan(09A_Zaz):0:3: ++# BZ30647 %3g:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3g:-nan(09A_Zaz):0:-1: ++# BZ30647 %3g:-nan():0:-1: ++# BZ30647 %*3g:-nan():0:-1: ++# BZ30647 %3g:nan():1:3:nan: ++# BZ30647 %*3g:nan():0:3: ++# BZ30647 %3g:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3g:nan(09A_Zaz):0:3: + %3g:0x0p0:1:3:0x0: + %*3g:0x0p0:0:3: + %3g:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3g:0xf.fffffp+124:0:3: + %3g:infinity:1:3:inf: + %*3g:infinity:0:3: +-%3g:+nan():0:-1: +-%*3g:+nan():0:-1: +-%3g:+nan(09A_Zaz):0:-1: +-%*3g:+nan(09A_Zaz):0:-1: ++# BZ30647 %3g:+nan():0:-1: ++# BZ30647 %*3g:+nan():0:-1: ++# BZ30647 %3g:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3g:+nan(09A_Zaz):0:-1: + # BZ12701 %3g:+0x0p0:0:-1: + # BZ12701 %*3g:+0x0p0:0:-1: + # BZ12701 %3g:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4g:-0x0p+0:0:4: + %4g:-0x0p0:1:4:-0x0: + %*4g:-0x0p0:0:4: +-%4g:-nan(09A_Zaz):1:4:-nan: +-%*4g:-nan(09A_Zaz):0:4: +-%4g:-nan():1:4:-nan: +-%*4g:-nan():0:4: +-%4g:nan():0:-1: +-%*4g:nan():0:-1: +-%4g:nan(09A_Zaz):0:-1: +-%*4g:nan(09A_Zaz):0:-1: ++# BZ30647 %4g:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4g:-nan(09A_Zaz):0:4: ++# BZ30647 %4g:-nan():1:4:-nan: ++# BZ30647 %*4g:-nan():0:4: ++# BZ30647 %4g:nan():0:-1: ++# BZ30647 %*4g:nan():0:-1: ++# BZ30647 %4g:nan(09A_Zaz):0:-1: ++# BZ30647 %*4g:nan(09A_Zaz):0:-1: + # BZ12701 %4g:0x0p0:0:-1: + # BZ12701 %*4g:0x0p0:0:-1: + # BZ12701 %4g:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4g:0xf.fffffp+124:0:4: + %4g:infinity:0:-1: + %*4g:infinity:0:-1: +-%4g:+nan():1:4:nan: +-%*4g:+nan():0:4: +-%4g:+nan(09A_Zaz):1:4:nan: +-%*4g:+nan(09A_Zaz):0:4: ++# BZ30647 %4g:+nan():1:4:nan: ++# BZ30647 %*4g:+nan():0:4: ++# BZ30647 %4g:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4g:+nan(09A_Zaz):0:4: + %4g:+0x0p0:1:4:0x0: + %*4g:+0x0p0:0:4: + %4g:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5g:-0x0p+0:0:-1: + # BZ12701 %5g:-0x0p0:0:-1: + # BZ12701 %*5g:-0x0p0:0:-1: +-%5g:-nan(09A_Zaz):0:-1: +-%*5g:-nan(09A_Zaz):0:-1: +-%5g:-nan():0:-1: +-%*5g:-nan():0:-1: +-%5g:nan():1:5:nan: +-%*5g:nan():0:5: +-%5g:nan(09A_Zaz):0:-1: +-%*5g:nan(09A_Zaz):0:-1: ++# BZ30647 %5g:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5g:-nan(09A_Zaz):0:-1: ++# BZ30647 %5g:-nan():0:-1: ++# BZ30647 %*5g:-nan():0:-1: ++# BZ30647 %5g:nan():1:5:nan: ++# BZ30647 %*5g:nan():0:5: ++# BZ30647 %5g:nan(09A_Zaz):0:-1: ++# BZ30647 %*5g:nan(09A_Zaz):0:-1: + %5g:0x0p0:1:5:0x0: + %*5g:0x0p0:0:5: + # BZ12701 %5g:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5g:0xf.fffffp+124:0:5: + %5g:infinity:0:-1: + %*5g:infinity:0:-1: +-%5g:+nan():0:-1: +-%*5g:+nan():0:-1: +-%5g:+nan(09A_Zaz):0:-1: +-%*5g:+nan(09A_Zaz):0:-1: ++# BZ30647 %5g:+nan():0:-1: ++# BZ30647 %*5g:+nan():0:-1: ++# BZ30647 %5g:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5g:+nan(09A_Zaz):0:-1: + # BZ12701 %5g:+0x0p0:0:-1: + # BZ12701 %*5g:+0x0p0:0:-1: + # BZ12701 %5g:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6g:-0x0p+0:0:-1: + %6g:-0x0p0:1:6:-0x0: + %*6g:-0x0p0:0:6: +-%6g:-nan(09A_Zaz):0:-1: +-%*6g:-nan(09A_Zaz):0:-1: +-%6g:-nan():1:6:-nan: +-%*6g:-nan():0:6: +-%6g:nan():1:5:nan: +-%*6g:nan():0:5: +-%6g:nan(09A_Zaz):0:-1: +-%*6g:nan(09A_Zaz):0:-1: ++# BZ30647 %6g:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6g:-nan(09A_Zaz):0:-1: ++# BZ30647 %6g:-nan():1:6:-nan: ++# BZ30647 %*6g:-nan():0:6: ++# BZ30647 %6g:nan():1:5:nan: ++# BZ30647 %*6g:nan():0:5: ++# BZ30647 %6g:nan(09A_Zaz):0:-1: ++# BZ30647 %*6g:nan(09A_Zaz):0:-1: + %6g:0x0p0:1:5:0x0: + %*6g:0x0p0:0:5: + %6g:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6g:0xf.fffffp+124:0:6: + %6g:infinity:0:-1: + %*6g:infinity:0:-1: +-%6g:+nan():1:6:nan: +-%*6g:+nan():0:6: +-%6g:+nan(09A_Zaz):0:-1: +-%*6g:+nan(09A_Zaz):0:-1: ++# BZ30647 %6g:+nan():1:6:nan: ++# BZ30647 %*6g:+nan():0:6: ++# BZ30647 %6g:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6g:+nan(09A_Zaz):0:-1: + %6g:+0x0p0:1:6:0x0: + %*6g:+0x0p0:0:6: + # BZ12701 %6g:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*12g:-0x0p+0:0:7: + %12g:-0x0p0:1:6:-0x0: + %*12g:-0x0p0:0:6: +-%12g:-nan(09A_Zaz):0:-1: +-%*12g:-nan(09A_Zaz):0:-1: +-%12g:-nan():1:6:-nan: +-%*12g:-nan():0:6: +-%12g:nan():1:5:nan: +-%*12g:nan():0:5: +-%12g:nan(09A_Zaz):1:12:nan: +-%*12g:nan(09A_Zaz):0:12: ++# BZ30647 %12g:-nan(09A_Zaz):0:-1: ++# BZ30647 %*12g:-nan(09A_Zaz):0:-1: ++# BZ30647 %12g:-nan():1:6:-nan: ++# BZ30647 %*12g:-nan():0:6: ++# BZ30647 %12g:nan():1:5:nan: ++# BZ30647 %*12g:nan():0:5: ++# BZ30647 %12g:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*12g:nan(09A_Zaz):0:12: + %12g:0x0p0:1:5:0x0: + %*12g:0x0p0:0:5: + %12g:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*12g:0xf.fffffp+124:0:12: + %12g:infinity:1:8:inf: + %*12g:infinity:0:8: +-%12g:+nan():1:6:nan: +-%*12g:+nan():0:6: +-%12g:+nan(09A_Zaz):0:-1: +-%*12g:+nan(09A_Zaz):0:-1: ++# BZ30647 %12g:+nan():1:6:nan: ++# BZ30647 %*12g:+nan():0:6: ++# BZ30647 %12g:+nan(09A_Zaz):0:-1: ++# BZ30647 %*12g:+nan(09A_Zaz):0:-1: + %12g:+0x0p0:1:6:0x0: + %*12g:+0x0p0:0:6: + %12g:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*18g:-0x0p+0:0:7: + %18g:-0x0p0:1:6:-0x0: + %*18g:-0x0p0:0:6: +-%18g:-nan(09A_Zaz):1:13:-nan: +-%*18g:-nan(09A_Zaz):0:13: +-%18g:-nan():1:6:-nan: +-%*18g:-nan():0:6: +-%18g:nan():1:5:nan: +-%*18g:nan():0:5: +-%18g:nan(09A_Zaz):1:12:nan: +-%*18g:nan(09A_Zaz):0:12: ++# BZ30647 %18g:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*18g:-nan(09A_Zaz):0:13: ++# BZ30647 %18g:-nan():1:6:-nan: ++# BZ30647 %*18g:-nan():0:6: ++# BZ30647 %18g:nan():1:5:nan: ++# BZ30647 %*18g:nan():0:5: ++# BZ30647 %18g:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*18g:nan(09A_Zaz):0:12: + %18g:0x0p0:1:5:0x0: + %*18g:0x0p0:0:5: + %18g:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*18g:0xf.fffffp+124:0:14: + %18g:infinity:1:8:inf: + %*18g:infinity:0:8: +-%18g:+nan():1:6:nan: +-%*18g:+nan():0:6: +-%18g:+nan(09A_Zaz):1:13:nan: +-%*18g:+nan(09A_Zaz):0:13: ++# BZ30647 %18g:+nan():1:6:nan: ++# BZ30647 %*18g:+nan():0:6: ++# BZ30647 %18g:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*18g:+nan(09A_Zaz):0:13: + %18g:+0x0p0:1:6:0x0: + %*18g:+0x0p0:0:6: + %18g:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5g: -0x0p+0:0:-1: + # BZ12701 %5g: -0x0p0:0:-1: + # BZ12701 %*5g: -0x0p0:0:-1: +-%5g: -nan(09A_Zaz):0:-1: +-%*5g: -nan(09A_Zaz):0:-1: +-%5g: -nan():0:-1: +-%*5g: -nan():0:-1: +-%5g: nan():1:6:nan: +-%*5g: nan():0:6: +-%5g: nan(09A_Zaz):0:-1: +-%*5g: nan(09A_Zaz):0:-1: ++# BZ30647 %5g: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5g: -nan(09A_Zaz):0:-1: ++# BZ30647 %5g: -nan():0:-1: ++# BZ30647 %*5g: -nan():0:-1: ++# BZ30647 %5g: nan():1:6:nan: ++# BZ30647 %*5g: nan():0:6: ++# BZ30647 %5g: nan(09A_Zaz):0:-1: ++# BZ30647 %*5g: nan(09A_Zaz):0:-1: + %5g: 0x0p0:1:6:0x0: + %*5g: 0x0p0:0:6: + # BZ12701 %5g: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5g: 0xf.fffffp+124:0:6: + %5g: infinity:0:-1: + %*5g: infinity:0:-1: +-%5g: +nan():0:-1: +-%*5g: +nan():0:-1: +-%5g: +nan(09A_Zaz):0:-1: +-%*5g: +nan(09A_Zaz):0:-1: ++# BZ30647 %5g: +nan():0:-1: ++# BZ30647 %*5g: +nan():0:-1: ++# BZ30647 %5g: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5g: +nan(09A_Zaz):0:-1: + # BZ12701 %5g: +0x0p0:0:-1: + # BZ12701 %*5g: +0x0p0:0:-1: + # BZ12701 %5g: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*18g: -0x0p+0:0:8: + %18g: -0x0p0:1:7:-0x0: + %*18g: -0x0p0:0:7: +-%18g: -nan(09A_Zaz):1:14:-nan: +-%*18g: -nan(09A_Zaz):0:14: +-%18g: -nan():1:7:-nan: +-%*18g: -nan():0:7: +-%18g: nan():1:6:nan: +-%*18g: nan():0:6: +-%18g: nan(09A_Zaz):1:13:nan: +-%*18g: nan(09A_Zaz):0:13: ++# BZ30647 %18g: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*18g: -nan(09A_Zaz):0:14: ++# BZ30647 %18g: -nan():1:7:-nan: ++# BZ30647 %*18g: -nan():0:7: ++# BZ30647 %18g: nan():1:6:nan: ++# BZ30647 %*18g: nan():0:6: ++# BZ30647 %18g: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*18g: nan(09A_Zaz):0:13: + %18g: 0x0p0:1:6:0x0: + %*18g: 0x0p0:0:6: + %18g: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*18g: 0xf.fffffp+124:0:15: + %18g: infinity:1:9:inf: + %*18g: infinity:0:9: +-%18g: +nan():1:7:nan: +-%*18g: +nan():0:7: +-%18g: +nan(09A_Zaz):1:14:nan: +-%*18g: +nan(09A_Zaz):0:14: ++# BZ30647 %18g: +nan():1:7:nan: ++# BZ30647 %*18g: +nan():0:7: ++# BZ30647 %18g: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*18g: +nan(09A_Zaz):0:14: + %18g: +0x0p0:1:7:0x0: + %*18g: +0x0p0:0:7: + %18g: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-gg.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-gg.input +index 4236ea9f247c13cc..1f6f92d1aa6e23ef 100644 +--- a/sysdeps/ieee754/flt-32/tst-scanf-format-float-gg.input ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-gg.input +@@ -16,14 +16,14 @@ + %*G:-0X0P+0:0:7: + %G:-0X0P0:1:6:-0x0: + %*G:-0X0P0:0:6: +-%G:-NAN(09A_Zaz):1:13:-nan: +-%*G:-NAN(09A_Zaz):0:13: +-%G:-NAN():1:6:-nan: +-%*G:-NAN():0:6: +-%G:NAN():1:5:nan: +-%*G:NAN():0:5: +-%G:NAN(09A_Zaz):1:12:nan: +-%*G:NAN(09A_Zaz):0:12: ++# BZ30647 %G:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*G:-NAN(09A_Zaz):0:13: ++# BZ30647 %G:-NAN():1:6:-nan: ++# BZ30647 %*G:-NAN():0:6: ++# BZ30647 %G:NAN():1:5:nan: ++# BZ30647 %*G:NAN():0:5: ++# BZ30647 %G:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*G:NAN(09A_Zaz):0:12: + %G:0X0P0:1:5:0x0: + %*G:0X0P0:0:5: + %G:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*G:0XF.FFFFFP+124:0:14: + %G:INFINITY:1:8:inf: + %*G:INFINITY:0:8: +-%G:+NAN():1:6:nan: +-%*G:+NAN():0:6: +-%G:+NAN(09A_Zaz):1:13:nan: +-%*G:+NAN(09A_Zaz):0:13: ++# BZ30647 %G:+NAN():1:6:nan: ++# BZ30647 %*G:+NAN():0:6: ++# BZ30647 %G:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*G:+NAN(09A_Zaz):0:13: + %G:+0X0P0:1:6:0x0: + %*G:+0X0P0:0:6: + %G:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1G:-0X0P+0:0:-1: + %1G:-0X0P0:0:-1: + %*1G:-0X0P0:0:-1: +-%1G:-NAN(09A_Zaz):0:-1: +-%*1G:-NAN(09A_Zaz):0:-1: +-%1G:-NAN():0:-1: +-%*1G:-NAN():0:-1: +-%1G:NAN():0:-1: +-%*1G:NAN():0:-1: +-%1G:NAN(09A_Zaz):0:-1: +-%*1G:NAN(09A_Zaz):0:-1: ++# BZ30647 %1G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1G:-NAN():0:-1: ++# BZ30647 %*1G:-NAN():0:-1: ++# BZ30647 %1G:NAN():0:-1: ++# BZ30647 %*1G:NAN():0:-1: ++# BZ30647 %1G:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1G:NAN(09A_Zaz):0:-1: + %1G:0X0P0:1:1:0x0: + %*1G:0X0P0:0:1: + %1G:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1G:0XF.FFFFFP+124:0:1: + %1G:INFINITY:0:-1: + %*1G:INFINITY:0:-1: +-%1G:+NAN():0:-1: +-%*1G:+NAN():0:-1: +-%1G:+NAN(09A_Zaz):0:-1: +-%*1G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1G:+NAN():0:-1: ++# BZ30647 %*1G:+NAN():0:-1: ++# BZ30647 %1G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1G:+NAN(09A_Zaz):0:-1: + %1G:+0X0P0:0:-1: + %*1G:+0X0P0:0:-1: + %1G:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2G:-0X0P+0:0:2: + %2G:-0X0P0:1:2:-0x0: + %*2G:-0X0P0:0:2: +-%2G:-NAN(09A_Zaz):0:-1: +-%*2G:-NAN(09A_Zaz):0:-1: +-%2G:-NAN():0:-1: +-%*2G:-NAN():0:-1: +-%2G:NAN():0:-1: +-%*2G:NAN():0:-1: +-%2G:NAN(09A_Zaz):0:-1: +-%*2G:NAN(09A_Zaz):0:-1: ++# BZ30647 %2G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2G:-NAN():0:-1: ++# BZ30647 %*2G:-NAN():0:-1: ++# BZ30647 %2G:NAN():0:-1: ++# BZ30647 %*2G:NAN():0:-1: ++# BZ30647 %2G:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2G:NAN(09A_Zaz):0:-1: + # BZ12701 %2G:0X0P0:0:-1: + # BZ12701 %*2G:0X0P0:0:-1: + # BZ12701 %2G:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2G:0XF.FFFFFP+124:0:-1: + %2G:INFINITY:0:-1: + %*2G:INFINITY:0:-1: +-%2G:+NAN():0:-1: +-%*2G:+NAN():0:-1: +-%2G:+NAN(09A_Zaz):0:-1: +-%*2G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2G:+NAN():0:-1: ++# BZ30647 %*2G:+NAN():0:-1: ++# BZ30647 %2G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2G:+NAN(09A_Zaz):0:-1: + %2G:+0X0P0:1:2:0x0: + %*2G:+0X0P0:0:2: + %2G:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3G:-0X0P+0:0:-1: + # BZ12701 %3G:-0X0P0:0:-1: + # BZ12701 %*3G:-0X0P0:0:-1: +-%3G:-NAN(09A_Zaz):0:-1: +-%*3G:-NAN(09A_Zaz):0:-1: +-%3G:-NAN():0:-1: +-%*3G:-NAN():0:-1: +-%3G:NAN():1:3:nan: +-%*3G:NAN():0:3: +-%3G:NAN(09A_Zaz):1:3:nan: +-%*3G:NAN(09A_Zaz):0:3: ++# BZ30647 %3G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3G:-NAN():0:-1: ++# BZ30647 %*3G:-NAN():0:-1: ++# BZ30647 %3G:NAN():1:3:nan: ++# BZ30647 %*3G:NAN():0:3: ++# BZ30647 %3G:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3G:NAN(09A_Zaz):0:3: + %3G:0X0P0:1:3:0x0: + %*3G:0X0P0:0:3: + %3G:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3G:0XF.FFFFFP+124:0:3: + %3G:INFINITY:1:3:inf: + %*3G:INFINITY:0:3: +-%3G:+NAN():0:-1: +-%*3G:+NAN():0:-1: +-%3G:+NAN(09A_Zaz):0:-1: +-%*3G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3G:+NAN():0:-1: ++# BZ30647 %*3G:+NAN():0:-1: ++# BZ30647 %3G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3G:+NAN(09A_Zaz):0:-1: + # BZ12701 %3G:+0X0P0:0:-1: + # BZ12701 %*3G:+0X0P0:0:-1: + # BZ12701 %3G:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4G:-0X0P+0:0:4: + %4G:-0X0P0:1:4:-0x0: + %*4G:-0X0P0:0:4: +-%4G:-NAN(09A_Zaz):1:4:-nan: +-%*4G:-NAN(09A_Zaz):0:4: +-%4G:-NAN():1:4:-nan: +-%*4G:-NAN():0:4: +-%4G:NAN():0:-1: +-%*4G:NAN():0:-1: +-%4G:NAN(09A_Zaz):0:-1: +-%*4G:NAN(09A_Zaz):0:-1: ++# BZ30647 %4G:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4G:-NAN(09A_Zaz):0:4: ++# BZ30647 %4G:-NAN():1:4:-nan: ++# BZ30647 %*4G:-NAN():0:4: ++# BZ30647 %4G:NAN():0:-1: ++# BZ30647 %*4G:NAN():0:-1: ++# BZ30647 %4G:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4G:NAN(09A_Zaz):0:-1: + # BZ12701 %4G:0X0P0:0:-1: + # BZ12701 %*4G:0X0P0:0:-1: + # BZ12701 %4G:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4G:0XF.FFFFFP+124:0:4: + %4G:INFINITY:0:-1: + %*4G:INFINITY:0:-1: +-%4G:+NAN():1:4:nan: +-%*4G:+NAN():0:4: +-%4G:+NAN(09A_Zaz):1:4:nan: +-%*4G:+NAN(09A_Zaz):0:4: ++# BZ30647 %4G:+NAN():1:4:nan: ++# BZ30647 %*4G:+NAN():0:4: ++# BZ30647 %4G:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4G:+NAN(09A_Zaz):0:4: + %4G:+0X0P0:1:4:0x0: + %*4G:+0X0P0:0:4: + %4G:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5G:-0X0P+0:0:-1: + # BZ12701 %5G:-0X0P0:0:-1: + # BZ12701 %*5G:-0X0P0:0:-1: +-%5G:-NAN(09A_Zaz):0:-1: +-%*5G:-NAN(09A_Zaz):0:-1: +-%5G:-NAN():0:-1: +-%*5G:-NAN():0:-1: +-%5G:NAN():1:5:nan: +-%*5G:NAN():0:5: +-%5G:NAN(09A_Zaz):0:-1: +-%*5G:NAN(09A_Zaz):0:-1: ++# BZ30647 %5G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5G:-NAN():0:-1: ++# BZ30647 %*5G:-NAN():0:-1: ++# BZ30647 %5G:NAN():1:5:nan: ++# BZ30647 %*5G:NAN():0:5: ++# BZ30647 %5G:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5G:NAN(09A_Zaz):0:-1: + %5G:0X0P0:1:5:0x0: + %*5G:0X0P0:0:5: + # BZ12701 %5G:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5G:0XF.FFFFFP+124:0:5: + %5G:INFINITY:0:-1: + %*5G:INFINITY:0:-1: +-%5G:+NAN():0:-1: +-%*5G:+NAN():0:-1: +-%5G:+NAN(09A_Zaz):0:-1: +-%*5G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5G:+NAN():0:-1: ++# BZ30647 %*5G:+NAN():0:-1: ++# BZ30647 %5G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5G:+NAN(09A_Zaz):0:-1: + # BZ12701 %5G:+0X0P0:0:-1: + # BZ12701 %*5G:+0X0P0:0:-1: + # BZ12701 %5G:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6G:-0X0P+0:0:-1: + %6G:-0X0P0:1:6:-0x0: + %*6G:-0X0P0:0:6: +-%6G:-NAN(09A_Zaz):0:-1: +-%*6G:-NAN(09A_Zaz):0:-1: +-%6G:-NAN():1:6:-nan: +-%*6G:-NAN():0:6: +-%6G:NAN():1:5:nan: +-%*6G:NAN():0:5: +-%6G:NAN(09A_Zaz):0:-1: +-%*6G:NAN(09A_Zaz):0:-1: ++# BZ30647 %6G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6G:-NAN():1:6:-nan: ++# BZ30647 %*6G:-NAN():0:6: ++# BZ30647 %6G:NAN():1:5:nan: ++# BZ30647 %*6G:NAN():0:5: ++# BZ30647 %6G:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6G:NAN(09A_Zaz):0:-1: + %6G:0X0P0:1:5:0x0: + %*6G:0X0P0:0:5: + %6G:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6G:0XF.FFFFFP+124:0:6: + %6G:INFINITY:0:-1: + %*6G:INFINITY:0:-1: +-%6G:+NAN():1:6:nan: +-%*6G:+NAN():0:6: +-%6G:+NAN(09A_Zaz):0:-1: +-%*6G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6G:+NAN():1:6:nan: ++# BZ30647 %*6G:+NAN():0:6: ++# BZ30647 %6G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6G:+NAN(09A_Zaz):0:-1: + %6G:+0X0P0:1:6:0x0: + %*6G:+0X0P0:0:6: + # BZ12701 %6G:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*12G:-0X0P+0:0:7: + %12G:-0X0P0:1:6:-0x0: + %*12G:-0X0P0:0:6: +-%12G:-NAN(09A_Zaz):0:-1: +-%*12G:-NAN(09A_Zaz):0:-1: +-%12G:-NAN():1:6:-nan: +-%*12G:-NAN():0:6: +-%12G:NAN():1:5:nan: +-%*12G:NAN():0:5: +-%12G:NAN(09A_Zaz):1:12:nan: +-%*12G:NAN(09A_Zaz):0:12: ++# BZ30647 %12G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*12G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %12G:-NAN():1:6:-nan: ++# BZ30647 %*12G:-NAN():0:6: ++# BZ30647 %12G:NAN():1:5:nan: ++# BZ30647 %*12G:NAN():0:5: ++# BZ30647 %12G:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*12G:NAN(09A_Zaz):0:12: + %12G:0X0P0:1:5:0x0: + %*12G:0X0P0:0:5: + %12G:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*12G:0XF.FFFFFP+124:0:12: + %12G:INFINITY:1:8:inf: + %*12G:INFINITY:0:8: +-%12G:+NAN():1:6:nan: +-%*12G:+NAN():0:6: +-%12G:+NAN(09A_Zaz):0:-1: +-%*12G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %12G:+NAN():1:6:nan: ++# BZ30647 %*12G:+NAN():0:6: ++# BZ30647 %12G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*12G:+NAN(09A_Zaz):0:-1: + %12G:+0X0P0:1:6:0x0: + %*12G:+0X0P0:0:6: + %12G:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*18G:-0X0P+0:0:7: + %18G:-0X0P0:1:6:-0x0: + %*18G:-0X0P0:0:6: +-%18G:-NAN(09A_Zaz):1:13:-nan: +-%*18G:-NAN(09A_Zaz):0:13: +-%18G:-NAN():1:6:-nan: +-%*18G:-NAN():0:6: +-%18G:NAN():1:5:nan: +-%*18G:NAN():0:5: +-%18G:NAN(09A_Zaz):1:12:nan: +-%*18G:NAN(09A_Zaz):0:12: ++# BZ30647 %18G:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*18G:-NAN(09A_Zaz):0:13: ++# BZ30647 %18G:-NAN():1:6:-nan: ++# BZ30647 %*18G:-NAN():0:6: ++# BZ30647 %18G:NAN():1:5:nan: ++# BZ30647 %*18G:NAN():0:5: ++# BZ30647 %18G:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*18G:NAN(09A_Zaz):0:12: + %18G:0X0P0:1:5:0x0: + %*18G:0X0P0:0:5: + %18G:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*18G:0XF.FFFFFP+124:0:14: + %18G:INFINITY:1:8:inf: + %*18G:INFINITY:0:8: +-%18G:+NAN():1:6:nan: +-%*18G:+NAN():0:6: +-%18G:+NAN(09A_Zaz):1:13:nan: +-%*18G:+NAN(09A_Zaz):0:13: ++# BZ30647 %18G:+NAN():1:6:nan: ++# BZ30647 %*18G:+NAN():0:6: ++# BZ30647 %18G:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*18G:+NAN(09A_Zaz):0:13: + %18G:+0X0P0:1:6:0x0: + %*18G:+0X0P0:0:6: + %18G:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5G: -0X0P+0:0:-1: + # BZ12701 %5G: -0X0P0:0:-1: + # BZ12701 %*5G: -0X0P0:0:-1: +-%5G: -NAN(09A_Zaz):0:-1: +-%*5G: -NAN(09A_Zaz):0:-1: +-%5G: -NAN():0:-1: +-%*5G: -NAN():0:-1: +-%5G: NAN():1:6:nan: +-%*5G: NAN():0:6: +-%5G: NAN(09A_Zaz):0:-1: +-%*5G: NAN(09A_Zaz):0:-1: ++# BZ30647 %5G: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5G: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5G: -NAN():0:-1: ++# BZ30647 %*5G: -NAN():0:-1: ++# BZ30647 %5G: NAN():1:6:nan: ++# BZ30647 %*5G: NAN():0:6: ++# BZ30647 %5G: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5G: NAN(09A_Zaz):0:-1: + %5G: 0X0P0:1:6:0x0: + %*5G: 0X0P0:0:6: + # BZ12701 %5G: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5G: 0XF.FFFFFP+124:0:6: + %5G: INFINITY:0:-1: + %*5G: INFINITY:0:-1: +-%5G: +NAN():0:-1: +-%*5G: +NAN():0:-1: +-%5G: +NAN(09A_Zaz):0:-1: +-%*5G: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5G: +NAN():0:-1: ++# BZ30647 %*5G: +NAN():0:-1: ++# BZ30647 %5G: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5G: +NAN(09A_Zaz):0:-1: + # BZ12701 %5G: +0X0P0:0:-1: + # BZ12701 %*5G: +0X0P0:0:-1: + # BZ12701 %5G: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*18G: -0X0P+0:0:8: + %18G: -0X0P0:1:7:-0x0: + %*18G: -0X0P0:0:7: +-%18G: -NAN(09A_Zaz):1:14:-nan: +-%*18G: -NAN(09A_Zaz):0:14: +-%18G: -NAN():1:7:-nan: +-%*18G: -NAN():0:7: +-%18G: NAN():1:6:nan: +-%*18G: NAN():0:6: +-%18G: NAN(09A_Zaz):1:13:nan: +-%*18G: NAN(09A_Zaz):0:13: ++# BZ30647 %18G: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*18G: -NAN(09A_Zaz):0:14: ++# BZ30647 %18G: -NAN():1:7:-nan: ++# BZ30647 %*18G: -NAN():0:7: ++# BZ30647 %18G: NAN():1:6:nan: ++# BZ30647 %*18G: NAN():0:6: ++# BZ30647 %18G: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*18G: NAN(09A_Zaz):0:13: + %18G: 0X0P0:1:6:0x0: + %*18G: 0X0P0:0:6: + %18G: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*18G: 0XF.FFFFFP+124:0:15: + %18G: INFINITY:1:9:inf: + %*18G: INFINITY:0:9: +-%18G: +NAN():1:7:nan: +-%*18G: +NAN():0:7: +-%18G: +NAN(09A_Zaz):1:14:nan: +-%*18G: +NAN(09A_Zaz):0:14: ++# BZ30647 %18G: +NAN():1:7:nan: ++# BZ30647 %*18G: +NAN():0:7: ++# BZ30647 %18G: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*18G: +NAN(09A_Zaz):0:14: + %18G: +0X0P0:1:7:0x0: + %*18G: +0X0P0:0:7: + %18G: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-a.input +index 41fe52ffa0e50613..f6893043b2f0b970 100644 +--- a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-a.input ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-a.input +@@ -16,14 +16,14 @@ + %*La:-0x0p+0:0:7: + %La:-0x0p0:1:6:-0x0: + %*La:-0x0p0:0:6: +-%La:-nan(09A_Zaz):1:13:-nan: +-%*La:-nan(09A_Zaz):0:13: +-%La:-nan():1:6:-nan: +-%*La:-nan():0:6: +-%La:nan():1:5:nan: +-%*La:nan():0:5: +-%La:nan(09A_Zaz):1:12:nan: +-%*La:nan(09A_Zaz):0:12: ++# BZ30647 %La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*La:-nan(09A_Zaz):0:13: ++# BZ30647 %La:-nan():1:6:-nan: ++# BZ30647 %*La:-nan():0:6: ++# BZ30647 %La:nan():1:5:nan: ++# BZ30647 %*La:nan():0:5: ++# BZ30647 %La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*La:nan(09A_Zaz):0:12: + %La:0x0p0:1:5:0x0: + %*La:0x0p0:0:5: + %La:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*La:0xf.fffffffffffffffffffffffffff8p+16380:0:39: + %La:infinity:1:8:inf: + %*La:infinity:0:8: +-%La:+nan():1:6:nan: +-%*La:+nan():0:6: +-%La:+nan(09A_Zaz):1:13:nan: +-%*La:+nan(09A_Zaz):0:13: ++# BZ30647 %La:+nan():1:6:nan: ++# BZ30647 %*La:+nan():0:6: ++# BZ30647 %La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*La:+nan(09A_Zaz):0:13: + %La:+0x0p0:1:6:0x0: + %*La:+0x0p0:0:6: + %La:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1La:-0x0p+0:0:-1: + %1La:-0x0p0:0:-1: + %*1La:-0x0p0:0:-1: +-%1La:-nan(09A_Zaz):0:-1: +-%*1La:-nan(09A_Zaz):0:-1: +-%1La:-nan():0:-1: +-%*1La:-nan():0:-1: +-%1La:nan():0:-1: +-%*1La:nan():0:-1: +-%1La:nan(09A_Zaz):0:-1: +-%*1La:nan(09A_Zaz):0:-1: ++# BZ30647 %1La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:-nan(09A_Zaz):0:-1: ++# BZ30647 %1La:-nan():0:-1: ++# BZ30647 %*1La:-nan():0:-1: ++# BZ30647 %1La:nan():0:-1: ++# BZ30647 %*1La:nan():0:-1: ++# BZ30647 %1La:nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:nan(09A_Zaz):0:-1: + %1La:0x0p0:1:1:0x0: + %*1La:0x0p0:0:1: + %1La:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1La:0xf.fffffffffffffffffffffffffff8p+16380:0:1: + %1La:infinity:0:-1: + %*1La:infinity:0:-1: +-%1La:+nan():0:-1: +-%*1La:+nan():0:-1: +-%1La:+nan(09A_Zaz):0:-1: +-%*1La:+nan(09A_Zaz):0:-1: ++# BZ30647 %1La:+nan():0:-1: ++# BZ30647 %*1La:+nan():0:-1: ++# BZ30647 %1La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:+nan(09A_Zaz):0:-1: + %1La:+0x0p0:0:-1: + %*1La:+0x0p0:0:-1: + %1La:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2La:-0x0p+0:0:2: + %2La:-0x0p0:1:2:-0x0: + %*2La:-0x0p0:0:2: +-%2La:-nan(09A_Zaz):0:-1: +-%*2La:-nan(09A_Zaz):0:-1: +-%2La:-nan():0:-1: +-%*2La:-nan():0:-1: +-%2La:nan():0:-1: +-%*2La:nan():0:-1: +-%2La:nan(09A_Zaz):0:-1: +-%*2La:nan(09A_Zaz):0:-1: ++# BZ30647 %2La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:-nan(09A_Zaz):0:-1: ++# BZ30647 %2La:-nan():0:-1: ++# BZ30647 %*2La:-nan():0:-1: ++# BZ30647 %2La:nan():0:-1: ++# BZ30647 %*2La:nan():0:-1: ++# BZ30647 %2La:nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:nan(09A_Zaz):0:-1: + # BZ12701 %2La:0x0p0:0:-1: + # BZ12701 %*2La:0x0p0:0:-1: + # BZ12701 %2La:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2La:0xf.fffffffffffffffffffffffffff8p+16380:0:-1: + %2La:infinity:0:-1: + %*2La:infinity:0:-1: +-%2La:+nan():0:-1: +-%*2La:+nan():0:-1: +-%2La:+nan(09A_Zaz):0:-1: +-%*2La:+nan(09A_Zaz):0:-1: ++# BZ30647 %2La:+nan():0:-1: ++# BZ30647 %*2La:+nan():0:-1: ++# BZ30647 %2La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:+nan(09A_Zaz):0:-1: + %2La:+0x0p0:1:2:0x0: + %*2La:+0x0p0:0:2: + %2La:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3La:-0x0p+0:0:-1: + # BZ12701 %3La:-0x0p0:0:-1: + # BZ12701 %*3La:-0x0p0:0:-1: +-%3La:-nan(09A_Zaz):0:-1: +-%*3La:-nan(09A_Zaz):0:-1: +-%3La:-nan():0:-1: +-%*3La:-nan():0:-1: +-%3La:nan():1:3:nan: +-%*3La:nan():0:3: +-%3La:nan(09A_Zaz):1:3:nan: +-%*3La:nan(09A_Zaz):0:3: ++# BZ30647 %3La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3La:-nan(09A_Zaz):0:-1: ++# BZ30647 %3La:-nan():0:-1: ++# BZ30647 %*3La:-nan():0:-1: ++# BZ30647 %3La:nan():1:3:nan: ++# BZ30647 %*3La:nan():0:3: ++# BZ30647 %3La:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3La:nan(09A_Zaz):0:3: + %3La:0x0p0:1:3:0x0: + %*3La:0x0p0:0:3: + %3La:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3La:0xf.fffffffffffffffffffffffffff8p+16380:0:3: + %3La:infinity:1:3:inf: + %*3La:infinity:0:3: +-%3La:+nan():0:-1: +-%*3La:+nan():0:-1: +-%3La:+nan(09A_Zaz):0:-1: +-%*3La:+nan(09A_Zaz):0:-1: ++# BZ30647 %3La:+nan():0:-1: ++# BZ30647 %*3La:+nan():0:-1: ++# BZ30647 %3La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3La:+nan(09A_Zaz):0:-1: + # BZ12701 %3La:+0x0p0:0:-1: + # BZ12701 %*3La:+0x0p0:0:-1: + # BZ12701 %3La:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4La:-0x0p+0:0:4: + %4La:-0x0p0:1:4:-0x0: + %*4La:-0x0p0:0:4: +-%4La:-nan(09A_Zaz):1:4:-nan: +-%*4La:-nan(09A_Zaz):0:4: +-%4La:-nan():1:4:-nan: +-%*4La:-nan():0:4: +-%4La:nan():0:-1: +-%*4La:nan():0:-1: +-%4La:nan(09A_Zaz):0:-1: +-%*4La:nan(09A_Zaz):0:-1: ++# BZ30647 %4La:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4La:-nan(09A_Zaz):0:4: ++# BZ30647 %4La:-nan():1:4:-nan: ++# BZ30647 %*4La:-nan():0:4: ++# BZ30647 %4La:nan():0:-1: ++# BZ30647 %*4La:nan():0:-1: ++# BZ30647 %4La:nan(09A_Zaz):0:-1: ++# BZ30647 %*4La:nan(09A_Zaz):0:-1: + # BZ12701 %4La:0x0p0:0:-1: + # BZ12701 %*4La:0x0p0:0:-1: + # BZ12701 %4La:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4La:0xf.fffffffffffffffffffffffffff8p+16380:0:4: + %4La:infinity:0:-1: + %*4La:infinity:0:-1: +-%4La:+nan():1:4:nan: +-%*4La:+nan():0:4: +-%4La:+nan(09A_Zaz):1:4:nan: +-%*4La:+nan(09A_Zaz):0:4: ++# BZ30647 %4La:+nan():1:4:nan: ++# BZ30647 %*4La:+nan():0:4: ++# BZ30647 %4La:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4La:+nan(09A_Zaz):0:4: + %4La:+0x0p0:1:4:0x0: + %*4La:+0x0p0:0:4: + %4La:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5La:-0x0p+0:0:-1: + # BZ12701 %5La:-0x0p0:0:-1: + # BZ12701 %*5La:-0x0p0:0:-1: +-%5La:-nan(09A_Zaz):0:-1: +-%*5La:-nan(09A_Zaz):0:-1: +-%5La:-nan():0:-1: +-%*5La:-nan():0:-1: +-%5La:nan():1:5:nan: +-%*5La:nan():0:5: +-%5La:nan(09A_Zaz):0:-1: +-%*5La:nan(09A_Zaz):0:-1: ++# BZ30647 %5La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:-nan(09A_Zaz):0:-1: ++# BZ30647 %5La:-nan():0:-1: ++# BZ30647 %*5La:-nan():0:-1: ++# BZ30647 %5La:nan():1:5:nan: ++# BZ30647 %*5La:nan():0:5: ++# BZ30647 %5La:nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:nan(09A_Zaz):0:-1: + %5La:0x0p0:1:5:0x0: + %*5La:0x0p0:0:5: + # BZ12701 %5La:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5La:0xf.fffffffffffffffffffffffffff8p+16380:0:5: + %5La:infinity:0:-1: + %*5La:infinity:0:-1: +-%5La:+nan():0:-1: +-%*5La:+nan():0:-1: +-%5La:+nan(09A_Zaz):0:-1: +-%*5La:+nan(09A_Zaz):0:-1: ++# BZ30647 %5La:+nan():0:-1: ++# BZ30647 %*5La:+nan():0:-1: ++# BZ30647 %5La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:+nan(09A_Zaz):0:-1: + # BZ12701 %5La:+0x0p0:0:-1: + # BZ12701 %*5La:+0x0p0:0:-1: + # BZ12701 %5La:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6La:-0x0p+0:0:-1: + %6La:-0x0p0:1:6:-0x0: + %*6La:-0x0p0:0:6: +-%6La:-nan(09A_Zaz):0:-1: +-%*6La:-nan(09A_Zaz):0:-1: +-%6La:-nan():1:6:-nan: +-%*6La:-nan():0:6: +-%6La:nan():1:5:nan: +-%*6La:nan():0:5: +-%6La:nan(09A_Zaz):0:-1: +-%*6La:nan(09A_Zaz):0:-1: ++# BZ30647 %6La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:-nan(09A_Zaz):0:-1: ++# BZ30647 %6La:-nan():1:6:-nan: ++# BZ30647 %*6La:-nan():0:6: ++# BZ30647 %6La:nan():1:5:nan: ++# BZ30647 %*6La:nan():0:5: ++# BZ30647 %6La:nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:nan(09A_Zaz):0:-1: + %6La:0x0p0:1:5:0x0: + %*6La:0x0p0:0:5: + %6La:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6La:0xf.fffffffffffffffffffffffffff8p+16380:0:6: + %6La:infinity:0:-1: + %*6La:infinity:0:-1: +-%6La:+nan():1:6:nan: +-%*6La:+nan():0:6: +-%6La:+nan(09A_Zaz):0:-1: +-%*6La:+nan(09A_Zaz):0:-1: ++# BZ30647 %6La:+nan():1:6:nan: ++# BZ30647 %*6La:+nan():0:6: ++# BZ30647 %6La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:+nan(09A_Zaz):0:-1: + %6La:+0x0p0:1:6:0x0: + %*6La:+0x0p0:0:6: + # BZ12701 %6La:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*35La:-0x0p+0:0:7: + %35La:-0x0p0:1:6:-0x0: + %*35La:-0x0p0:0:6: +-%35La:-nan(09A_Zaz):1:13:-nan: +-%*35La:-nan(09A_Zaz):0:13: +-%35La:-nan():1:6:-nan: +-%*35La:-nan():0:6: +-%35La:nan():1:5:nan: +-%*35La:nan():0:5: +-%35La:nan(09A_Zaz):1:12:nan: +-%*35La:nan(09A_Zaz):0:12: ++# BZ30647 %35La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*35La:-nan(09A_Zaz):0:13: ++# BZ30647 %35La:-nan():1:6:-nan: ++# BZ30647 %*35La:-nan():0:6: ++# BZ30647 %35La:nan():1:5:nan: ++# BZ30647 %*35La:nan():0:5: ++# BZ30647 %35La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*35La:nan(09A_Zaz):0:12: + %35La:0x0p0:1:5:0x0: + %*35La:0x0p0:0:5: + %35La:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*35La:0xf.fffffffffffffffffffffffffff8p+16380:0:35: + %35La:infinity:1:8:inf: + %*35La:infinity:0:8: +-%35La:+nan():1:6:nan: +-%*35La:+nan():0:6: +-%35La:+nan(09A_Zaz):1:13:nan: +-%*35La:+nan(09A_Zaz):0:13: ++# BZ30647 %35La:+nan():1:6:nan: ++# BZ30647 %*35La:+nan():0:6: ++# BZ30647 %35La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*35La:+nan(09A_Zaz):0:13: + %35La:+0x0p0:1:6:0x0: + %*35La:+0x0p0:0:6: + %35La:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*53La:-0x0p+0:0:7: + %53La:-0x0p0:1:6:-0x0: + %*53La:-0x0p0:0:6: +-%53La:-nan(09A_Zaz):1:13:-nan: +-%*53La:-nan(09A_Zaz):0:13: +-%53La:-nan():1:6:-nan: +-%*53La:-nan():0:6: +-%53La:nan():1:5:nan: +-%*53La:nan():0:5: +-%53La:nan(09A_Zaz):1:12:nan: +-%*53La:nan(09A_Zaz):0:12: ++# BZ30647 %53La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*53La:-nan(09A_Zaz):0:13: ++# BZ30647 %53La:-nan():1:6:-nan: ++# BZ30647 %*53La:-nan():0:6: ++# BZ30647 %53La:nan():1:5:nan: ++# BZ30647 %*53La:nan():0:5: ++# BZ30647 %53La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*53La:nan(09A_Zaz):0:12: + %53La:0x0p0:1:5:0x0: + %*53La:0x0p0:0:5: + %53La:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*53La:0xf.fffffffffffffffffffffffffff8p+16380:0:39: + %53La:infinity:1:8:inf: + %*53La:infinity:0:8: +-%53La:+nan():1:6:nan: +-%*53La:+nan():0:6: +-%53La:+nan(09A_Zaz):1:13:nan: +-%*53La:+nan(09A_Zaz):0:13: ++# BZ30647 %53La:+nan():1:6:nan: ++# BZ30647 %*53La:+nan():0:6: ++# BZ30647 %53La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*53La:+nan(09A_Zaz):0:13: + %53La:+0x0p0:1:6:0x0: + %*53La:+0x0p0:0:6: + %53La:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5La: -0x0p+0:0:-1: + # BZ12701 %5La: -0x0p0:0:-1: + # BZ12701 %*5La: -0x0p0:0:-1: +-%5La: -nan(09A_Zaz):0:-1: +-%*5La: -nan(09A_Zaz):0:-1: +-%5La: -nan():0:-1: +-%*5La: -nan():0:-1: +-%5La: nan():1:6:nan: +-%*5La: nan():0:6: +-%5La: nan(09A_Zaz):0:-1: +-%*5La: nan(09A_Zaz):0:-1: ++# BZ30647 %5La: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: -nan(09A_Zaz):0:-1: ++# BZ30647 %5La: -nan():0:-1: ++# BZ30647 %*5La: -nan():0:-1: ++# BZ30647 %5La: nan():1:6:nan: ++# BZ30647 %*5La: nan():0:6: ++# BZ30647 %5La: nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: nan(09A_Zaz):0:-1: + %5La: 0x0p0:1:6:0x0: + %*5La: 0x0p0:0:6: + # BZ12701 %5La: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5La: 0xf.fffffffffffffffffffffffffff8p+16380:0:6: + %5La: infinity:0:-1: + %*5La: infinity:0:-1: +-%5La: +nan():0:-1: +-%*5La: +nan():0:-1: +-%5La: +nan(09A_Zaz):0:-1: +-%*5La: +nan(09A_Zaz):0:-1: ++# BZ30647 %5La: +nan():0:-1: ++# BZ30647 %*5La: +nan():0:-1: ++# BZ30647 %5La: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: +nan(09A_Zaz):0:-1: + # BZ12701 %5La: +0x0p0:0:-1: + # BZ12701 %*5La: +0x0p0:0:-1: + # BZ12701 %5La: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*53La: -0x0p+0:0:8: + %53La: -0x0p0:1:7:-0x0: + %*53La: -0x0p0:0:7: +-%53La: -nan(09A_Zaz):1:14:-nan: +-%*53La: -nan(09A_Zaz):0:14: +-%53La: -nan():1:7:-nan: +-%*53La: -nan():0:7: +-%53La: nan():1:6:nan: +-%*53La: nan():0:6: +-%53La: nan(09A_Zaz):1:13:nan: +-%*53La: nan(09A_Zaz):0:13: ++# BZ30647 %53La: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*53La: -nan(09A_Zaz):0:14: ++# BZ30647 %53La: -nan():1:7:-nan: ++# BZ30647 %*53La: -nan():0:7: ++# BZ30647 %53La: nan():1:6:nan: ++# BZ30647 %*53La: nan():0:6: ++# BZ30647 %53La: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*53La: nan(09A_Zaz):0:13: + %53La: 0x0p0:1:6:0x0: + %*53La: 0x0p0:0:6: + %53La: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*53La: 0xf.fffffffffffffffffffffffffff8p+16380:0:40: + %53La: infinity:1:9:inf: + %*53La: infinity:0:9: +-%53La: +nan():1:7:nan: +-%*53La: +nan():0:7: +-%53La: +nan(09A_Zaz):1:14:nan: +-%*53La: +nan(09A_Zaz):0:14: ++# BZ30647 %53La: +nan():1:7:nan: ++# BZ30647 %*53La: +nan():0:7: ++# BZ30647 %53La: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*53La: +nan(09A_Zaz):0:14: + %53La: +0x0p0:1:7:0x0: + %*53La: +0x0p0:0:7: + %53La: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-aa.input +index 7208c6e37b10942d..ddf7cf5308ecd210 100644 +--- a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-aa.input ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-aa.input +@@ -16,14 +16,14 @@ + %*LA:-0X0P+0:0:7: + %LA:-0X0P0:1:6:-0x0: + %*LA:-0X0P0:0:6: +-%LA:-NAN(09A_Zaz):1:13:-nan: +-%*LA:-NAN(09A_Zaz):0:13: +-%LA:-NAN():1:6:-nan: +-%*LA:-NAN():0:6: +-%LA:NAN():1:5:nan: +-%*LA:NAN():0:5: +-%LA:NAN(09A_Zaz):1:12:nan: +-%*LA:NAN(09A_Zaz):0:12: ++# BZ30647 %LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %LA:-NAN():1:6:-nan: ++# BZ30647 %*LA:-NAN():0:6: ++# BZ30647 %LA:NAN():1:5:nan: ++# BZ30647 %*LA:NAN():0:5: ++# BZ30647 %LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LA:NAN(09A_Zaz):0:12: + %LA:0X0P0:1:5:0x0: + %*LA:0X0P0:0:5: + %LA:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39: + %LA:INFINITY:1:8:inf: + %*LA:INFINITY:0:8: +-%LA:+NAN():1:6:nan: +-%*LA:+NAN():0:6: +-%LA:+NAN(09A_Zaz):1:13:nan: +-%*LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %LA:+NAN():1:6:nan: ++# BZ30647 %*LA:+NAN():0:6: ++# BZ30647 %LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LA:+NAN(09A_Zaz):0:13: + %LA:+0X0P0:1:6:0x0: + %*LA:+0X0P0:0:6: + %LA:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1LA:-0X0P+0:0:-1: + %1LA:-0X0P0:0:-1: + %*1LA:-0X0P0:0:-1: +-%1LA:-NAN(09A_Zaz):0:-1: +-%*1LA:-NAN(09A_Zaz):0:-1: +-%1LA:-NAN():0:-1: +-%*1LA:-NAN():0:-1: +-%1LA:NAN():0:-1: +-%*1LA:NAN():0:-1: +-%1LA:NAN(09A_Zaz):0:-1: +-%*1LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:-NAN():0:-1: ++# BZ30647 %*1LA:-NAN():0:-1: ++# BZ30647 %1LA:NAN():0:-1: ++# BZ30647 %*1LA:NAN():0:-1: ++# BZ30647 %1LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:NAN(09A_Zaz):0:-1: + %1LA:0X0P0:1:1:0x0: + %*1LA:0X0P0:0:1: + %1LA:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:1: + %1LA:INFINITY:0:-1: + %*1LA:INFINITY:0:-1: +-%1LA:+NAN():0:-1: +-%*1LA:+NAN():0:-1: +-%1LA:+NAN(09A_Zaz):0:-1: +-%*1LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:+NAN():0:-1: ++# BZ30647 %*1LA:+NAN():0:-1: ++# BZ30647 %1LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:+NAN(09A_Zaz):0:-1: + %1LA:+0X0P0:0:-1: + %*1LA:+0X0P0:0:-1: + %1LA:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LA:-0X0P+0:0:2: + %2LA:-0X0P0:1:2:-0x0: + %*2LA:-0X0P0:0:2: +-%2LA:-NAN(09A_Zaz):0:-1: +-%*2LA:-NAN(09A_Zaz):0:-1: +-%2LA:-NAN():0:-1: +-%*2LA:-NAN():0:-1: +-%2LA:NAN():0:-1: +-%*2LA:NAN():0:-1: +-%2LA:NAN(09A_Zaz):0:-1: +-%*2LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:-NAN():0:-1: ++# BZ30647 %*2LA:-NAN():0:-1: ++# BZ30647 %2LA:NAN():0:-1: ++# BZ30647 %*2LA:NAN():0:-1: ++# BZ30647 %2LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:NAN(09A_Zaz):0:-1: + # BZ12701 %2LA:0X0P0:0:-1: + # BZ12701 %*2LA:0X0P0:0:-1: + # BZ12701 %2LA:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: + %2LA:INFINITY:0:-1: + %*2LA:INFINITY:0:-1: +-%2LA:+NAN():0:-1: +-%*2LA:+NAN():0:-1: +-%2LA:+NAN(09A_Zaz):0:-1: +-%*2LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:+NAN():0:-1: ++# BZ30647 %*2LA:+NAN():0:-1: ++# BZ30647 %2LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:+NAN(09A_Zaz):0:-1: + %2LA:+0X0P0:1:2:0x0: + %*2LA:+0X0P0:0:2: + %2LA:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LA:-0X0P+0:0:-1: + # BZ12701 %3LA:-0X0P0:0:-1: + # BZ12701 %*3LA:-0X0P0:0:-1: +-%3LA:-NAN(09A_Zaz):0:-1: +-%*3LA:-NAN(09A_Zaz):0:-1: +-%3LA:-NAN():0:-1: +-%*3LA:-NAN():0:-1: +-%3LA:NAN():1:3:nan: +-%*3LA:NAN():0:3: +-%3LA:NAN(09A_Zaz):1:3:nan: +-%*3LA:NAN(09A_Zaz):0:3: ++# BZ30647 %3LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LA:-NAN():0:-1: ++# BZ30647 %*3LA:-NAN():0:-1: ++# BZ30647 %3LA:NAN():1:3:nan: ++# BZ30647 %*3LA:NAN():0:3: ++# BZ30647 %3LA:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LA:NAN(09A_Zaz):0:3: + %3LA:0X0P0:1:3:0x0: + %*3LA:0X0P0:0:3: + %3LA:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:3: + %3LA:INFINITY:1:3:inf: + %*3LA:INFINITY:0:3: +-%3LA:+NAN():0:-1: +-%*3LA:+NAN():0:-1: +-%3LA:+NAN(09A_Zaz):0:-1: +-%*3LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LA:+NAN():0:-1: ++# BZ30647 %*3LA:+NAN():0:-1: ++# BZ30647 %3LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LA:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LA:+0X0P0:0:-1: + # BZ12701 %*3LA:+0X0P0:0:-1: + # BZ12701 %3LA:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4LA:-0X0P+0:0:4: + %4LA:-0X0P0:1:4:-0x0: + %*4LA:-0X0P0:0:4: +-%4LA:-NAN(09A_Zaz):1:4:-nan: +-%*4LA:-NAN(09A_Zaz):0:4: +-%4LA:-NAN():1:4:-nan: +-%*4LA:-NAN():0:4: +-%4LA:NAN():0:-1: +-%*4LA:NAN():0:-1: +-%4LA:NAN(09A_Zaz):0:-1: +-%*4LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LA:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LA:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LA:-NAN():1:4:-nan: ++# BZ30647 %*4LA:-NAN():0:4: ++# BZ30647 %4LA:NAN():0:-1: ++# BZ30647 %*4LA:NAN():0:-1: ++# BZ30647 %4LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LA:NAN(09A_Zaz):0:-1: + # BZ12701 %4LA:0X0P0:0:-1: + # BZ12701 %*4LA:0X0P0:0:-1: + # BZ12701 %4LA:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4: + %4LA:INFINITY:0:-1: + %*4LA:INFINITY:0:-1: +-%4LA:+NAN():1:4:nan: +-%*4LA:+NAN():0:4: +-%4LA:+NAN(09A_Zaz):1:4:nan: +-%*4LA:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LA:+NAN():1:4:nan: ++# BZ30647 %*4LA:+NAN():0:4: ++# BZ30647 %4LA:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LA:+NAN(09A_Zaz):0:4: + %4LA:+0X0P0:1:4:0x0: + %*4LA:+0X0P0:0:4: + %4LA:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5LA:-0X0P+0:0:-1: + # BZ12701 %5LA:-0X0P0:0:-1: + # BZ12701 %*5LA:-0X0P0:0:-1: +-%5LA:-NAN(09A_Zaz):0:-1: +-%*5LA:-NAN(09A_Zaz):0:-1: +-%5LA:-NAN():0:-1: +-%*5LA:-NAN():0:-1: +-%5LA:NAN():1:5:nan: +-%*5LA:NAN():0:5: +-%5LA:NAN(09A_Zaz):0:-1: +-%*5LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:-NAN():0:-1: ++# BZ30647 %*5LA:-NAN():0:-1: ++# BZ30647 %5LA:NAN():1:5:nan: ++# BZ30647 %*5LA:NAN():0:5: ++# BZ30647 %5LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:NAN(09A_Zaz):0:-1: + %5LA:0X0P0:1:5:0x0: + %*5LA:0X0P0:0:5: + # BZ12701 %5LA:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5: + %5LA:INFINITY:0:-1: + %*5LA:INFINITY:0:-1: +-%5LA:+NAN():0:-1: +-%*5LA:+NAN():0:-1: +-%5LA:+NAN(09A_Zaz):0:-1: +-%*5LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:+NAN():0:-1: ++# BZ30647 %*5LA:+NAN():0:-1: ++# BZ30647 %5LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:+NAN(09A_Zaz):0:-1: + # BZ12701 %5LA:+0X0P0:0:-1: + # BZ12701 %*5LA:+0X0P0:0:-1: + # BZ12701 %5LA:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6LA:-0X0P+0:0:-1: + %6LA:-0X0P0:1:6:-0x0: + %*6LA:-0X0P0:0:6: +-%6LA:-NAN(09A_Zaz):0:-1: +-%*6LA:-NAN(09A_Zaz):0:-1: +-%6LA:-NAN():1:6:-nan: +-%*6LA:-NAN():0:6: +-%6LA:NAN():1:5:nan: +-%*6LA:NAN():0:5: +-%6LA:NAN(09A_Zaz):0:-1: +-%*6LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:-NAN():1:6:-nan: ++# BZ30647 %*6LA:-NAN():0:6: ++# BZ30647 %6LA:NAN():1:5:nan: ++# BZ30647 %*6LA:NAN():0:5: ++# BZ30647 %6LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:NAN(09A_Zaz):0:-1: + %6LA:0X0P0:1:5:0x0: + %*6LA:0X0P0:0:5: + %6LA:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: + %6LA:INFINITY:0:-1: + %*6LA:INFINITY:0:-1: +-%6LA:+NAN():1:6:nan: +-%*6LA:+NAN():0:6: +-%6LA:+NAN(09A_Zaz):0:-1: +-%*6LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:+NAN():1:6:nan: ++# BZ30647 %*6LA:+NAN():0:6: ++# BZ30647 %6LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:+NAN(09A_Zaz):0:-1: + %6LA:+0X0P0:1:6:0x0: + %*6LA:+0X0P0:0:6: + # BZ12701 %6LA:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*35LA:-0X0P+0:0:7: + %35LA:-0X0P0:1:6:-0x0: + %*35LA:-0X0P0:0:6: +-%35LA:-NAN(09A_Zaz):1:13:-nan: +-%*35LA:-NAN(09A_Zaz):0:13: +-%35LA:-NAN():1:6:-nan: +-%*35LA:-NAN():0:6: +-%35LA:NAN():1:5:nan: +-%*35LA:NAN():0:5: +-%35LA:NAN(09A_Zaz):1:12:nan: +-%*35LA:NAN(09A_Zaz):0:12: ++# BZ30647 %35LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*35LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %35LA:-NAN():1:6:-nan: ++# BZ30647 %*35LA:-NAN():0:6: ++# BZ30647 %35LA:NAN():1:5:nan: ++# BZ30647 %*35LA:NAN():0:5: ++# BZ30647 %35LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*35LA:NAN(09A_Zaz):0:12: + %35LA:0X0P0:1:5:0x0: + %*35LA:0X0P0:0:5: + %35LA:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*35LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:35: + %35LA:INFINITY:1:8:inf: + %*35LA:INFINITY:0:8: +-%35LA:+NAN():1:6:nan: +-%*35LA:+NAN():0:6: +-%35LA:+NAN(09A_Zaz):1:13:nan: +-%*35LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %35LA:+NAN():1:6:nan: ++# BZ30647 %*35LA:+NAN():0:6: ++# BZ30647 %35LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*35LA:+NAN(09A_Zaz):0:13: + %35LA:+0X0P0:1:6:0x0: + %*35LA:+0X0P0:0:6: + %35LA:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*53LA:-0X0P+0:0:7: + %53LA:-0X0P0:1:6:-0x0: + %*53LA:-0X0P0:0:6: +-%53LA:-NAN(09A_Zaz):1:13:-nan: +-%*53LA:-NAN(09A_Zaz):0:13: +-%53LA:-NAN():1:6:-nan: +-%*53LA:-NAN():0:6: +-%53LA:NAN():1:5:nan: +-%*53LA:NAN():0:5: +-%53LA:NAN(09A_Zaz):1:12:nan: +-%*53LA:NAN(09A_Zaz):0:12: ++# BZ30647 %53LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*53LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %53LA:-NAN():1:6:-nan: ++# BZ30647 %*53LA:-NAN():0:6: ++# BZ30647 %53LA:NAN():1:5:nan: ++# BZ30647 %*53LA:NAN():0:5: ++# BZ30647 %53LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*53LA:NAN(09A_Zaz):0:12: + %53LA:0X0P0:1:5:0x0: + %*53LA:0X0P0:0:5: + %53LA:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*53LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39: + %53LA:INFINITY:1:8:inf: + %*53LA:INFINITY:0:8: +-%53LA:+NAN():1:6:nan: +-%*53LA:+NAN():0:6: +-%53LA:+NAN(09A_Zaz):1:13:nan: +-%*53LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %53LA:+NAN():1:6:nan: ++# BZ30647 %*53LA:+NAN():0:6: ++# BZ30647 %53LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*53LA:+NAN(09A_Zaz):0:13: + %53LA:+0X0P0:1:6:0x0: + %*53LA:+0X0P0:0:6: + %53LA:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5LA: -0X0P+0:0:-1: + # BZ12701 %5LA: -0X0P0:0:-1: + # BZ12701 %*5LA: -0X0P0:0:-1: +-%5LA: -NAN(09A_Zaz):0:-1: +-%*5LA: -NAN(09A_Zaz):0:-1: +-%5LA: -NAN():0:-1: +-%*5LA: -NAN():0:-1: +-%5LA: NAN():1:6:nan: +-%*5LA: NAN():0:6: +-%5LA: NAN(09A_Zaz):0:-1: +-%*5LA: NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: -NAN():0:-1: ++# BZ30647 %*5LA: -NAN():0:-1: ++# BZ30647 %5LA: NAN():1:6:nan: ++# BZ30647 %*5LA: NAN():0:6: ++# BZ30647 %5LA: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: NAN(09A_Zaz):0:-1: + %5LA: 0X0P0:1:6:0x0: + %*5LA: 0X0P0:0:6: + # BZ12701 %5LA: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5LA: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: + %5LA: INFINITY:0:-1: + %*5LA: INFINITY:0:-1: +-%5LA: +NAN():0:-1: +-%*5LA: +NAN():0:-1: +-%5LA: +NAN(09A_Zaz):0:-1: +-%*5LA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: +NAN():0:-1: ++# BZ30647 %*5LA: +NAN():0:-1: ++# BZ30647 %5LA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: +NAN(09A_Zaz):0:-1: + # BZ12701 %5LA: +0X0P0:0:-1: + # BZ12701 %*5LA: +0X0P0:0:-1: + # BZ12701 %5LA: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*53LA: -0X0P+0:0:8: + %53LA: -0X0P0:1:7:-0x0: + %*53LA: -0X0P0:0:7: +-%53LA: -NAN(09A_Zaz):1:14:-nan: +-%*53LA: -NAN(09A_Zaz):0:14: +-%53LA: -NAN():1:7:-nan: +-%*53LA: -NAN():0:7: +-%53LA: NAN():1:6:nan: +-%*53LA: NAN():0:6: +-%53LA: NAN(09A_Zaz):1:13:nan: +-%*53LA: NAN(09A_Zaz):0:13: ++# BZ30647 %53LA: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*53LA: -NAN(09A_Zaz):0:14: ++# BZ30647 %53LA: -NAN():1:7:-nan: ++# BZ30647 %*53LA: -NAN():0:7: ++# BZ30647 %53LA: NAN():1:6:nan: ++# BZ30647 %*53LA: NAN():0:6: ++# BZ30647 %53LA: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*53LA: NAN(09A_Zaz):0:13: + %53LA: 0X0P0:1:6:0x0: + %*53LA: 0X0P0:0:6: + %53LA: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*53LA: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: + %53LA: INFINITY:1:9:inf: + %*53LA: INFINITY:0:9: +-%53LA: +NAN():1:7:nan: +-%*53LA: +NAN():0:7: +-%53LA: +NAN(09A_Zaz):1:14:nan: +-%*53LA: +NAN(09A_Zaz):0:14: ++# BZ30647 %53LA: +NAN():1:7:nan: ++# BZ30647 %*53LA: +NAN():0:7: ++# BZ30647 %53LA: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*53LA: +NAN(09A_Zaz):0:14: + %53LA: +0X0P0:1:7:0x0: + %*53LA: +0X0P0:0:7: + %53LA: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-e.input +index 0e65a3706cce1ce0..53f8cdf609836624 100644 +--- a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-e.input ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-e.input +@@ -16,14 +16,14 @@ + %*Le:-0e+0:0:5: + %Le:-0e0:1:4:-0x0: + %*Le:-0e0:0:4: +-%Le:-nan(09A_Zaz):1:13:-nan: +-%*Le:-nan(09A_Zaz):0:13: +-%Le:-nan():1:6:-nan: +-%*Le:-nan():0:6: +-%Le:nan():1:5:nan: +-%*Le:nan():0:5: +-%Le:nan(09A_Zaz):1:12:nan: +-%*Le:nan(09A_Zaz):0:12: ++# BZ30647 %Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Le:-nan(09A_Zaz):0:13: ++# BZ30647 %Le:-nan():1:6:-nan: ++# BZ30647 %*Le:-nan():0:6: ++# BZ30647 %Le:nan():1:5:nan: ++# BZ30647 %*Le:nan():0:5: ++# BZ30647 %Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Le:nan(09A_Zaz):0:12: + %Le:0e0:1:3:0x0: + %*Le:0e0:0:3: + %Le:0e+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*Le:1.18973149535723176508575932662800702e+4932:0:43: + %Le:infinity:1:8:inf: + %*Le:infinity:0:8: +-%Le:+nan():1:6:nan: +-%*Le:+nan():0:6: +-%Le:+nan(09A_Zaz):1:13:nan: +-%*Le:+nan(09A_Zaz):0:13: ++# BZ30647 %Le:+nan():1:6:nan: ++# BZ30647 %*Le:+nan():0:6: ++# BZ30647 %Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Le:+nan(09A_Zaz):0:13: + %Le:+0e0:1:4:0x0: + %*Le:+0e0:0:4: + %Le:+0e+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1Le:-0e+0:0:-1: + %1Le:-0e0:0:-1: + %*1Le:-0e0:0:-1: +-%1Le:-nan(09A_Zaz):0:-1: +-%*1Le:-nan(09A_Zaz):0:-1: +-%1Le:-nan():0:-1: +-%*1Le:-nan():0:-1: +-%1Le:nan():0:-1: +-%*1Le:nan():0:-1: +-%1Le:nan(09A_Zaz):0:-1: +-%*1Le:nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:-nan():0:-1: ++# BZ30647 %*1Le:-nan():0:-1: ++# BZ30647 %1Le:nan():0:-1: ++# BZ30647 %*1Le:nan():0:-1: ++# BZ30647 %1Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:nan(09A_Zaz):0:-1: + %1Le:0e0:1:1:0x0: + %*1Le:0e0:0:1: + %1Le:0e+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Le:1.18973149535723176508575932662800702e+4932:0:1: + %1Le:infinity:0:-1: + %*1Le:infinity:0:-1: +-%1Le:+nan():0:-1: +-%*1Le:+nan():0:-1: +-%1Le:+nan(09A_Zaz):0:-1: +-%*1Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:+nan():0:-1: ++# BZ30647 %*1Le:+nan():0:-1: ++# BZ30647 %1Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:+nan(09A_Zaz):0:-1: + %1Le:+0e0:0:-1: + %*1Le:+0e0:0:-1: + %1Le:+0e+0:0:-1: +@@ -140,14 +140,14 @@ + %*2Le:-0e+0:0:2: + %2Le:-0e0:1:2:-0x0: + %*2Le:-0e0:0:2: +-%2Le:-nan(09A_Zaz):0:-1: +-%*2Le:-nan(09A_Zaz):0:-1: +-%2Le:-nan():0:-1: +-%*2Le:-nan():0:-1: +-%2Le:nan():0:-1: +-%*2Le:nan():0:-1: +-%2Le:nan(09A_Zaz):0:-1: +-%*2Le:nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:-nan():0:-1: ++# BZ30647 %*2Le:-nan():0:-1: ++# BZ30647 %2Le:nan():0:-1: ++# BZ30647 %*2Le:nan():0:-1: ++# BZ30647 %2Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:nan(09A_Zaz):0:-1: + # BZ12701 %2Le:0e0:0:-1: + # BZ12701 %*2Le:0e0:0:-1: + # BZ12701 %2Le:0e+0:0:-1: +@@ -164,10 +164,10 @@ + %*2Le:1.18973149535723176508575932662800702e+4932:0:2: + %2Le:infinity:0:-1: + %*2Le:infinity:0:-1: +-%2Le:+nan():0:-1: +-%*2Le:+nan():0:-1: +-%2Le:+nan(09A_Zaz):0:-1: +-%*2Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:+nan():0:-1: ++# BZ30647 %*2Le:+nan():0:-1: ++# BZ30647 %2Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:+nan(09A_Zaz):0:-1: + %2Le:+0e0:1:2:0x0: + %*2Le:+0e0:0:2: + %2Le:+0e+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3Le:-0e+0:0:-1: + # BZ12701 %3Le:-0e0:0:-1: + # BZ12701 %*3Le:-0e0:0:-1: +-%3Le:-nan(09A_Zaz):0:-1: +-%*3Le:-nan(09A_Zaz):0:-1: +-%3Le:-nan():0:-1: +-%*3Le:-nan():0:-1: +-%3Le:nan():1:3:nan: +-%*3Le:nan():0:3: +-%3Le:nan(09A_Zaz):1:3:nan: +-%*3Le:nan(09A_Zaz):0:3: ++# BZ30647 %3Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Le:-nan():0:-1: ++# BZ30647 %*3Le:-nan():0:-1: ++# BZ30647 %3Le:nan():1:3:nan: ++# BZ30647 %*3Le:nan():0:3: ++# BZ30647 %3Le:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Le:nan(09A_Zaz):0:3: + %3Le:0e0:1:3:0x0: + %*3Le:0e0:0:3: + # BZ12701 %3Le:0e+0:0:-1: +@@ -226,10 +226,10 @@ + %*3Le:1.18973149535723176508575932662800702e+4932:0:3: + %3Le:infinity:1:3:inf: + %*3Le:infinity:0:3: +-%3Le:+nan():0:-1: +-%*3Le:+nan():0:-1: +-%3Le:+nan(09A_Zaz):0:-1: +-%*3Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Le:+nan():0:-1: ++# BZ30647 %*3Le:+nan():0:-1: ++# BZ30647 %3Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le:+nan(09A_Zaz):0:-1: + # BZ12701 %3Le:+0e0:0:-1: + # BZ12701 %*3Le:+0e0:0:-1: + # BZ12701 %3Le:+0e+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4Le:-0e+0:0:-1: + %4Le:-0e0:1:4:-0x0: + %*4Le:-0e0:0:4: +-%4Le:-nan(09A_Zaz):1:4:-nan: +-%*4Le:-nan(09A_Zaz):0:4: +-%4Le:-nan():1:4:-nan: +-%*4Le:-nan():0:4: +-%4Le:nan():0:-1: +-%*4Le:nan():0:-1: +-%4Le:nan(09A_Zaz):0:-1: +-%*4Le:nan(09A_Zaz):0:-1: ++# BZ30647 %4Le:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Le:-nan(09A_Zaz):0:4: ++# BZ30647 %4Le:-nan():1:4:-nan: ++# BZ30647 %*4Le:-nan():0:4: ++# BZ30647 %4Le:nan():0:-1: ++# BZ30647 %*4Le:nan():0:-1: ++# BZ30647 %4Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Le:nan(09A_Zaz):0:-1: + %4Le:0e0:1:3:0x0: + %*4Le:0e0:0:3: + %4Le:0e+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4Le:1.18973149535723176508575932662800702e+4932:0:4: + %4Le:infinity:0:-1: + %*4Le:infinity:0:-1: +-%4Le:+nan():1:4:nan: +-%*4Le:+nan():0:4: +-%4Le:+nan(09A_Zaz):1:4:nan: +-%*4Le:+nan(09A_Zaz):0:4: ++# BZ30647 %4Le:+nan():1:4:nan: ++# BZ30647 %*4Le:+nan():0:4: ++# BZ30647 %4Le:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Le:+nan(09A_Zaz):0:4: + %4Le:+0e0:1:4:0x0: + %*4Le:+0e0:0:4: + # BZ12701 %4Le:+0e+0:0:-1: +@@ -326,14 +326,14 @@ + %*40Le:-0e+0:0:5: + %40Le:-0e0:1:4:-0x0: + %*40Le:-0e0:0:4: +-%40Le:-nan(09A_Zaz):1:13:-nan: +-%*40Le:-nan(09A_Zaz):0:13: +-%40Le:-nan():1:6:-nan: +-%*40Le:-nan():0:6: +-%40Le:nan():1:5:nan: +-%*40Le:nan():0:5: +-%40Le:nan(09A_Zaz):1:12:nan: +-%*40Le:nan(09A_Zaz):0:12: ++# BZ30647 %40Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*40Le:-nan(09A_Zaz):0:13: ++# BZ30647 %40Le:-nan():1:6:-nan: ++# BZ30647 %*40Le:-nan():0:6: ++# BZ30647 %40Le:nan():1:5:nan: ++# BZ30647 %*40Le:nan():0:5: ++# BZ30647 %40Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*40Le:nan(09A_Zaz):0:12: + %40Le:0e0:1:3:0x0: + %*40Le:0e0:0:3: + %40Le:0e+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40Le:1.18973149535723176508575932662800702e+4932:0:40: + %40Le:infinity:1:8:inf: + %*40Le:infinity:0:8: +-%40Le:+nan():1:6:nan: +-%*40Le:+nan():0:6: +-%40Le:+nan(09A_Zaz):1:13:nan: +-%*40Le:+nan(09A_Zaz):0:13: ++# BZ30647 %40Le:+nan():1:6:nan: ++# BZ30647 %*40Le:+nan():0:6: ++# BZ30647 %40Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*40Le:+nan(09A_Zaz):0:13: + %40Le:+0e0:1:4:0x0: + %*40Le:+0e0:0:4: + %40Le:+0e+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48Le:-0e+0:0:5: + %48Le:-0e0:1:4:-0x0: + %*48Le:-0e0:0:4: +-%48Le:-nan(09A_Zaz):1:13:-nan: +-%*48Le:-nan(09A_Zaz):0:13: +-%48Le:-nan():1:6:-nan: +-%*48Le:-nan():0:6: +-%48Le:nan():1:5:nan: +-%*48Le:nan():0:5: +-%48Le:nan(09A_Zaz):1:12:nan: +-%*48Le:nan(09A_Zaz):0:12: ++# BZ30647 %48Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*48Le:-nan(09A_Zaz):0:13: ++# BZ30647 %48Le:-nan():1:6:-nan: ++# BZ30647 %*48Le:-nan():0:6: ++# BZ30647 %48Le:nan():1:5:nan: ++# BZ30647 %*48Le:nan():0:5: ++# BZ30647 %48Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*48Le:nan(09A_Zaz):0:12: + %48Le:0e0:1:3:0x0: + %*48Le:0e0:0:3: + %48Le:0e+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48Le:1.18973149535723176508575932662800702e+4932:0:43: + %48Le:infinity:1:8:inf: + %*48Le:infinity:0:8: +-%48Le:+nan():1:6:nan: +-%*48Le:+nan():0:6: +-%48Le:+nan(09A_Zaz):1:13:nan: +-%*48Le:+nan(09A_Zaz):0:13: ++# BZ30647 %48Le:+nan():1:6:nan: ++# BZ30647 %*48Le:+nan():0:6: ++# BZ30647 %48Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48Le:+nan(09A_Zaz):0:13: + %48Le:+0e0:1:4:0x0: + %*48Le:+0e0:0:4: + %48Le:+0e+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3Le: -0e+0:0:-1: + # BZ12701 %3Le: -0e0:0:-1: + # BZ12701 %*3Le: -0e0:0:-1: +-%3Le: -nan(09A_Zaz):0:-1: +-%*3Le: -nan(09A_Zaz):0:-1: +-%3Le: -nan():0:-1: +-%*3Le: -nan():0:-1: +-%3Le: nan():1:4:nan: +-%*3Le: nan():0:4: +-%3Le: nan(09A_Zaz):1:4:nan: +-%*3Le: nan(09A_Zaz):0:4: ++# BZ30647 %3Le: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le: -nan(09A_Zaz):0:-1: ++# BZ30647 %3Le: -nan():0:-1: ++# BZ30647 %*3Le: -nan():0:-1: ++# BZ30647 %3Le: nan():1:4:nan: ++# BZ30647 %*3Le: nan():0:4: ++# BZ30647 %3Le: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3Le: nan(09A_Zaz):0:4: + %3Le: 0e0:1:4:0x0: + %*3Le: 0e0:0:4: + # BZ12701 %3Le: 0e+0:0:-1: +@@ -474,10 +474,10 @@ + %*3Le: 1.18973149535723176508575932662800702e+4932:0:4: + %3Le: infinity:1:4:inf: + %*3Le: infinity:0:4: +-%3Le: +nan():0:-1: +-%*3Le: +nan():0:-1: +-%3Le: +nan(09A_Zaz):0:-1: +-%*3Le: +nan(09A_Zaz):0:-1: ++# BZ30647 %3Le: +nan():0:-1: ++# BZ30647 %*3Le: +nan():0:-1: ++# BZ30647 %3Le: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le: +nan(09A_Zaz):0:-1: + # BZ12701 %3Le: +0e0:0:-1: + # BZ12701 %*3Le: +0e0:0:-1: + # BZ12701 %3Le: +0e+0:0:-1: +@@ -512,14 +512,14 @@ + %*48Le: -0e+0:0:6: + %48Le: -0e0:1:5:-0x0: + %*48Le: -0e0:0:5: +-%48Le: -nan(09A_Zaz):1:14:-nan: +-%*48Le: -nan(09A_Zaz):0:14: +-%48Le: -nan():1:7:-nan: +-%*48Le: -nan():0:7: +-%48Le: nan():1:6:nan: +-%*48Le: nan():0:6: +-%48Le: nan(09A_Zaz):1:13:nan: +-%*48Le: nan(09A_Zaz):0:13: ++# BZ30647 %48Le: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*48Le: -nan(09A_Zaz):0:14: ++# BZ30647 %48Le: -nan():1:7:-nan: ++# BZ30647 %*48Le: -nan():0:7: ++# BZ30647 %48Le: nan():1:6:nan: ++# BZ30647 %*48Le: nan():0:6: ++# BZ30647 %48Le: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48Le: nan(09A_Zaz):0:13: + %48Le: 0e0:1:4:0x0: + %*48Le: 0e0:0:4: + %48Le: 0e+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48Le: 1.18973149535723176508575932662800702e+4932:0:44: + %48Le: infinity:1:9:inf: + %*48Le: infinity:0:9: +-%48Le: +nan():1:7:nan: +-%*48Le: +nan():0:7: +-%48Le: +nan(09A_Zaz):1:14:nan: +-%*48Le: +nan(09A_Zaz):0:14: ++# BZ30647 %48Le: +nan():1:7:nan: ++# BZ30647 %*48Le: +nan():0:7: ++# BZ30647 %48Le: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*48Le: +nan(09A_Zaz):0:14: + %48Le: +0e0:1:5:0x0: + %*48Le: +0e0:0:5: + %48Le: +0e+0:1:6:0x0: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ee.input +index 8992c73c91384735..9d3882fddff4503b 100644 +--- a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ee.input ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ee.input +@@ -16,14 +16,14 @@ + %*LE:-0E+0:0:5: + %LE:-0E0:1:4:-0x0: + %*LE:-0E0:0:4: +-%LE:-NAN(09A_Zaz):1:13:-nan: +-%*LE:-NAN(09A_Zaz):0:13: +-%LE:-NAN():1:6:-nan: +-%*LE:-NAN():0:6: +-%LE:NAN():1:5:nan: +-%*LE:NAN():0:5: +-%LE:NAN(09A_Zaz):1:12:nan: +-%*LE:NAN(09A_Zaz):0:12: ++# BZ30647 %LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %LE:-NAN():1:6:-nan: ++# BZ30647 %*LE:-NAN():0:6: ++# BZ30647 %LE:NAN():1:5:nan: ++# BZ30647 %*LE:NAN():0:5: ++# BZ30647 %LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LE:NAN(09A_Zaz):0:12: + %LE:0E0:1:3:0x0: + %*LE:0E0:0:3: + %LE:0E+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*LE:1.18973149535723176508575932662800702E+4932:0:43: + %LE:INFINITY:1:8:inf: + %*LE:INFINITY:0:8: +-%LE:+NAN():1:6:nan: +-%*LE:+NAN():0:6: +-%LE:+NAN(09A_Zaz):1:13:nan: +-%*LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %LE:+NAN():1:6:nan: ++# BZ30647 %*LE:+NAN():0:6: ++# BZ30647 %LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LE:+NAN(09A_Zaz):0:13: + %LE:+0E0:1:4:0x0: + %*LE:+0E0:0:4: + %LE:+0E+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1LE:-0E+0:0:-1: + %1LE:-0E0:0:-1: + %*1LE:-0E0:0:-1: +-%1LE:-NAN(09A_Zaz):0:-1: +-%*1LE:-NAN(09A_Zaz):0:-1: +-%1LE:-NAN():0:-1: +-%*1LE:-NAN():0:-1: +-%1LE:NAN():0:-1: +-%*1LE:NAN():0:-1: +-%1LE:NAN(09A_Zaz):0:-1: +-%*1LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:-NAN():0:-1: ++# BZ30647 %*1LE:-NAN():0:-1: ++# BZ30647 %1LE:NAN():0:-1: ++# BZ30647 %*1LE:NAN():0:-1: ++# BZ30647 %1LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:NAN(09A_Zaz):0:-1: + %1LE:0E0:1:1:0x0: + %*1LE:0E0:0:1: + %1LE:0E+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LE:1.18973149535723176508575932662800702E+4932:0:1: + %1LE:INFINITY:0:-1: + %*1LE:INFINITY:0:-1: +-%1LE:+NAN():0:-1: +-%*1LE:+NAN():0:-1: +-%1LE:+NAN(09A_Zaz):0:-1: +-%*1LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:+NAN():0:-1: ++# BZ30647 %*1LE:+NAN():0:-1: ++# BZ30647 %1LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:+NAN(09A_Zaz):0:-1: + %1LE:+0E0:0:-1: + %*1LE:+0E0:0:-1: + %1LE:+0E+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LE:-0E+0:0:2: + %2LE:-0E0:1:2:-0x0: + %*2LE:-0E0:0:2: +-%2LE:-NAN(09A_Zaz):0:-1: +-%*2LE:-NAN(09A_Zaz):0:-1: +-%2LE:-NAN():0:-1: +-%*2LE:-NAN():0:-1: +-%2LE:NAN():0:-1: +-%*2LE:NAN():0:-1: +-%2LE:NAN(09A_Zaz):0:-1: +-%*2LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:-NAN():0:-1: ++# BZ30647 %*2LE:-NAN():0:-1: ++# BZ30647 %2LE:NAN():0:-1: ++# BZ30647 %*2LE:NAN():0:-1: ++# BZ30647 %2LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:NAN(09A_Zaz):0:-1: + # BZ12701 %2LE:0E0:0:-1: + # BZ12701 %*2LE:0E0:0:-1: + # BZ12701 %2LE:0E+0:0:-1: +@@ -164,10 +164,10 @@ + %*2LE:1.18973149535723176508575932662800702E+4932:0:2: + %2LE:INFINITY:0:-1: + %*2LE:INFINITY:0:-1: +-%2LE:+NAN():0:-1: +-%*2LE:+NAN():0:-1: +-%2LE:+NAN(09A_Zaz):0:-1: +-%*2LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:+NAN():0:-1: ++# BZ30647 %*2LE:+NAN():0:-1: ++# BZ30647 %2LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:+NAN(09A_Zaz):0:-1: + %2LE:+0E0:1:2:0x0: + %*2LE:+0E0:0:2: + %2LE:+0E+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LE:-0E+0:0:-1: + # BZ12701 %3LE:-0E0:0:-1: + # BZ12701 %*3LE:-0E0:0:-1: +-%3LE:-NAN(09A_Zaz):0:-1: +-%*3LE:-NAN(09A_Zaz):0:-1: +-%3LE:-NAN():0:-1: +-%*3LE:-NAN():0:-1: +-%3LE:NAN():1:3:nan: +-%*3LE:NAN():0:3: +-%3LE:NAN(09A_Zaz):1:3:nan: +-%*3LE:NAN(09A_Zaz):0:3: ++# BZ30647 %3LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE:-NAN():0:-1: ++# BZ30647 %*3LE:-NAN():0:-1: ++# BZ30647 %3LE:NAN():1:3:nan: ++# BZ30647 %*3LE:NAN():0:3: ++# BZ30647 %3LE:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LE:NAN(09A_Zaz):0:3: + %3LE:0E0:1:3:0x0: + %*3LE:0E0:0:3: + # BZ12701 %3LE:0E+0:0:-1: +@@ -226,10 +226,10 @@ + %*3LE:1.18973149535723176508575932662800702E+4932:0:3: + %3LE:INFINITY:1:3:inf: + %*3LE:INFINITY:0:3: +-%3LE:+NAN():0:-1: +-%*3LE:+NAN():0:-1: +-%3LE:+NAN(09A_Zaz):0:-1: +-%*3LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE:+NAN():0:-1: ++# BZ30647 %*3LE:+NAN():0:-1: ++# BZ30647 %3LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LE:+0E0:0:-1: + # BZ12701 %*3LE:+0E0:0:-1: + # BZ12701 %3LE:+0E+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4LE:-0E+0:0:-1: + %4LE:-0E0:1:4:-0x0: + %*4LE:-0E0:0:4: +-%4LE:-NAN(09A_Zaz):1:4:-nan: +-%*4LE:-NAN(09A_Zaz):0:4: +-%4LE:-NAN():1:4:-nan: +-%*4LE:-NAN():0:4: +-%4LE:NAN():0:-1: +-%*4LE:NAN():0:-1: +-%4LE:NAN(09A_Zaz):0:-1: +-%*4LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LE:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LE:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LE:-NAN():1:4:-nan: ++# BZ30647 %*4LE:-NAN():0:4: ++# BZ30647 %4LE:NAN():0:-1: ++# BZ30647 %*4LE:NAN():0:-1: ++# BZ30647 %4LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LE:NAN(09A_Zaz):0:-1: + %4LE:0E0:1:3:0x0: + %*4LE:0E0:0:3: + %4LE:0E+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4LE:1.18973149535723176508575932662800702E+4932:0:4: + %4LE:INFINITY:0:-1: + %*4LE:INFINITY:0:-1: +-%4LE:+NAN():1:4:nan: +-%*4LE:+NAN():0:4: +-%4LE:+NAN(09A_Zaz):1:4:nan: +-%*4LE:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LE:+NAN():1:4:nan: ++# BZ30647 %*4LE:+NAN():0:4: ++# BZ30647 %4LE:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LE:+NAN(09A_Zaz):0:4: + %4LE:+0E0:1:4:0x0: + %*4LE:+0E0:0:4: + # BZ12701 %4LE:+0E+0:0:-1: +@@ -326,14 +326,14 @@ + %*40LE:-0E+0:0:5: + %40LE:-0E0:1:4:-0x0: + %*40LE:-0E0:0:4: +-%40LE:-NAN(09A_Zaz):1:13:-nan: +-%*40LE:-NAN(09A_Zaz):0:13: +-%40LE:-NAN():1:6:-nan: +-%*40LE:-NAN():0:6: +-%40LE:NAN():1:5:nan: +-%*40LE:NAN():0:5: +-%40LE:NAN(09A_Zaz):1:12:nan: +-%*40LE:NAN(09A_Zaz):0:12: ++# BZ30647 %40LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*40LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %40LE:-NAN():1:6:-nan: ++# BZ30647 %*40LE:-NAN():0:6: ++# BZ30647 %40LE:NAN():1:5:nan: ++# BZ30647 %*40LE:NAN():0:5: ++# BZ30647 %40LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*40LE:NAN(09A_Zaz):0:12: + %40LE:0E0:1:3:0x0: + %*40LE:0E0:0:3: + %40LE:0E+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40LE:1.18973149535723176508575932662800702E+4932:0:40: + %40LE:INFINITY:1:8:inf: + %*40LE:INFINITY:0:8: +-%40LE:+NAN():1:6:nan: +-%*40LE:+NAN():0:6: +-%40LE:+NAN(09A_Zaz):1:13:nan: +-%*40LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %40LE:+NAN():1:6:nan: ++# BZ30647 %*40LE:+NAN():0:6: ++# BZ30647 %40LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*40LE:+NAN(09A_Zaz):0:13: + %40LE:+0E0:1:4:0x0: + %*40LE:+0E0:0:4: + %40LE:+0E+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48LE:-0E+0:0:5: + %48LE:-0E0:1:4:-0x0: + %*48LE:-0E0:0:4: +-%48LE:-NAN(09A_Zaz):1:13:-nan: +-%*48LE:-NAN(09A_Zaz):0:13: +-%48LE:-NAN():1:6:-nan: +-%*48LE:-NAN():0:6: +-%48LE:NAN():1:5:nan: +-%*48LE:NAN():0:5: +-%48LE:NAN(09A_Zaz):1:12:nan: +-%*48LE:NAN(09A_Zaz):0:12: ++# BZ30647 %48LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*48LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %48LE:-NAN():1:6:-nan: ++# BZ30647 %*48LE:-NAN():0:6: ++# BZ30647 %48LE:NAN():1:5:nan: ++# BZ30647 %*48LE:NAN():0:5: ++# BZ30647 %48LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*48LE:NAN(09A_Zaz):0:12: + %48LE:0E0:1:3:0x0: + %*48LE:0E0:0:3: + %48LE:0E+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48LE:1.18973149535723176508575932662800702E+4932:0:43: + %48LE:INFINITY:1:8:inf: + %*48LE:INFINITY:0:8: +-%48LE:+NAN():1:6:nan: +-%*48LE:+NAN():0:6: +-%48LE:+NAN(09A_Zaz):1:13:nan: +-%*48LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %48LE:+NAN():1:6:nan: ++# BZ30647 %*48LE:+NAN():0:6: ++# BZ30647 %48LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48LE:+NAN(09A_Zaz):0:13: + %48LE:+0E0:1:4:0x0: + %*48LE:+0E0:0:4: + %48LE:+0E+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3LE: -0E+0:0:-1: + # BZ12701 %3LE: -0E0:0:-1: + # BZ12701 %*3LE: -0E0:0:-1: +-%3LE: -NAN(09A_Zaz):0:-1: +-%*3LE: -NAN(09A_Zaz):0:-1: +-%3LE: -NAN():0:-1: +-%*3LE: -NAN():0:-1: +-%3LE: NAN():1:4:nan: +-%*3LE: NAN():0:4: +-%3LE: NAN(09A_Zaz):1:4:nan: +-%*3LE: NAN(09A_Zaz):0:4: ++# BZ30647 %3LE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE: -NAN():0:-1: ++# BZ30647 %*3LE: -NAN():0:-1: ++# BZ30647 %3LE: NAN():1:4:nan: ++# BZ30647 %*3LE: NAN():0:4: ++# BZ30647 %3LE: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3LE: NAN(09A_Zaz):0:4: + %3LE: 0E0:1:4:0x0: + %*3LE: 0E0:0:4: + # BZ12701 %3LE: 0E+0:0:-1: +@@ -474,10 +474,10 @@ + %*3LE: 1.18973149535723176508575932662800702E+4932:0:4: + %3LE: INFINITY:1:4:inf: + %*3LE: INFINITY:0:4: +-%3LE: +NAN():0:-1: +-%*3LE: +NAN():0:-1: +-%3LE: +NAN(09A_Zaz):0:-1: +-%*3LE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE: +NAN():0:-1: ++# BZ30647 %*3LE: +NAN():0:-1: ++# BZ30647 %3LE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE: +NAN(09A_Zaz):0:-1: + # BZ12701 %3LE: +0E0:0:-1: + # BZ12701 %*3LE: +0E0:0:-1: + # BZ12701 %3LE: +0E+0:0:-1: +@@ -512,14 +512,14 @@ + %*48LE: -0E+0:0:6: + %48LE: -0E0:1:5:-0x0: + %*48LE: -0E0:0:5: +-%48LE: -NAN(09A_Zaz):1:14:-nan: +-%*48LE: -NAN(09A_Zaz):0:14: +-%48LE: -NAN():1:7:-nan: +-%*48LE: -NAN():0:7: +-%48LE: NAN():1:6:nan: +-%*48LE: NAN():0:6: +-%48LE: NAN(09A_Zaz):1:13:nan: +-%*48LE: NAN(09A_Zaz):0:13: ++# BZ30647 %48LE: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*48LE: -NAN(09A_Zaz):0:14: ++# BZ30647 %48LE: -NAN():1:7:-nan: ++# BZ30647 %*48LE: -NAN():0:7: ++# BZ30647 %48LE: NAN():1:6:nan: ++# BZ30647 %*48LE: NAN():0:6: ++# BZ30647 %48LE: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48LE: NAN(09A_Zaz):0:13: + %48LE: 0E0:1:4:0x0: + %*48LE: 0E0:0:4: + %48LE: 0E+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48LE: 1.18973149535723176508575932662800702E+4932:0:44: + %48LE: INFINITY:1:9:inf: + %*48LE: INFINITY:0:9: +-%48LE: +NAN():1:7:nan: +-%*48LE: +NAN():0:7: +-%48LE: +NAN(09A_Zaz):1:14:nan: +-%*48LE: +NAN(09A_Zaz):0:14: ++# BZ30647 %48LE: +NAN():1:7:nan: ++# BZ30647 %*48LE: +NAN():0:7: ++# BZ30647 %48LE: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*48LE: +NAN(09A_Zaz):0:14: + %48LE: +0E0:1:5:0x0: + %*48LE: +0E0:0:5: + %48LE: +0E+0:1:6:0x0: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-f.input +index 955ef173eb417670..23666ef5731ec708 100644 +--- a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-f.input ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-f.input +@@ -16,14 +16,14 @@ + %*Lf:-0.0:0:4: + %Lf:-0:1:2:-0x0: + %*Lf:-0:0:2: +-%Lf:-nan(09A_Zaz):1:13:-nan: +-%*Lf:-nan(09A_Zaz):0:13: +-%Lf:-nan():1:6:-nan: +-%*Lf:-nan():0:6: +-%Lf:nan():1:5:nan: +-%*Lf:nan():0:5: +-%Lf:nan(09A_Zaz):1:12:nan: +-%*Lf:nan(09A_Zaz):0:12: ++# BZ30647 %Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %Lf:-nan():1:6:-nan: ++# BZ30647 %*Lf:-nan():0:6: ++# BZ30647 %Lf:nan():1:5:nan: ++# BZ30647 %*Lf:nan():0:5: ++# BZ30647 %Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Lf:nan(09A_Zaz):0:12: + %Lf:0:1:1:0x0: + %*Lf:0:0:1: + %Lf:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936: + %Lf:infinity:1:8:inf: + %*Lf:infinity:0:8: +-%Lf:+nan():1:6:nan: +-%*Lf:+nan():0:6: +-%Lf:+nan(09A_Zaz):1:13:nan: +-%*Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %Lf:+nan():1:6:nan: ++# BZ30647 %*Lf:+nan():0:6: ++# BZ30647 %Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Lf:+nan(09A_Zaz):0:13: + %Lf:+0:1:2:0x0: + %*Lf:+0:0:2: + %Lf:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1Lf:-0.0:0:-1: + %1Lf:-0:0:-1: + %*1Lf:-0:0:-1: +-%1Lf:-nan(09A_Zaz):0:-1: +-%*1Lf:-nan(09A_Zaz):0:-1: +-%1Lf:-nan():0:-1: +-%*1Lf:-nan():0:-1: +-%1Lf:nan():0:-1: +-%*1Lf:nan():0:-1: +-%1Lf:nan(09A_Zaz):0:-1: +-%*1Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:-nan():0:-1: ++# BZ30647 %*1Lf:-nan():0:-1: ++# BZ30647 %1Lf:nan():0:-1: ++# BZ30647 %*1Lf:nan():0:-1: ++# BZ30647 %1Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:nan(09A_Zaz):0:-1: + %1Lf:0:1:1:0x0: + %*1Lf:0:0:1: + %1Lf:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:1: + %1Lf:infinity:0:-1: + %*1Lf:infinity:0:-1: +-%1Lf:+nan():0:-1: +-%*1Lf:+nan():0:-1: +-%1Lf:+nan(09A_Zaz):0:-1: +-%*1Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:+nan():0:-1: ++# BZ30647 %*1Lf:+nan():0:-1: ++# BZ30647 %1Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:+nan(09A_Zaz):0:-1: + %1Lf:+0:0:-1: + %*1Lf:+0:0:-1: + %1Lf:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2Lf:-0.0:0:2: + %2Lf:-0:1:2:-0x0: + %*2Lf:-0:0:2: +-%2Lf:-nan(09A_Zaz):0:-1: +-%*2Lf:-nan(09A_Zaz):0:-1: +-%2Lf:-nan():0:-1: +-%*2Lf:-nan():0:-1: +-%2Lf:nan():0:-1: +-%*2Lf:nan():0:-1: +-%2Lf:nan(09A_Zaz):0:-1: +-%*2Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:-nan():0:-1: ++# BZ30647 %*2Lf:-nan():0:-1: ++# BZ30647 %2Lf:nan():0:-1: ++# BZ30647 %*2Lf:nan():0:-1: ++# BZ30647 %2Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:nan(09A_Zaz):0:-1: + %2Lf:0:1:1:0x0: + %*2Lf:0:0:1: + %2Lf:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2: + %2Lf:infinity:0:-1: + %*2Lf:infinity:0:-1: +-%2Lf:+nan():0:-1: +-%*2Lf:+nan():0:-1: +-%2Lf:+nan(09A_Zaz):0:-1: +-%*2Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:+nan():0:-1: ++# BZ30647 %*2Lf:+nan():0:-1: ++# BZ30647 %2Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:+nan(09A_Zaz):0:-1: + %2Lf:+0:1:2:0x0: + %*2Lf:+0:0:2: + %2Lf:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3Lf:-0.0:0:3: + %3Lf:-0:1:2:-0x0: + %*3Lf:-0:0:2: +-%3Lf:-nan(09A_Zaz):0:-1: +-%*3Lf:-nan(09A_Zaz):0:-1: +-%3Lf:-nan():0:-1: +-%*3Lf:-nan():0:-1: +-%3Lf:nan():1:3:nan: +-%*3Lf:nan():0:3: +-%3Lf:nan(09A_Zaz):1:3:nan: +-%*3Lf:nan(09A_Zaz):0:3: ++# BZ30647 %3Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf:-nan():0:-1: ++# BZ30647 %*3Lf:-nan():0:-1: ++# BZ30647 %3Lf:nan():1:3:nan: ++# BZ30647 %*3Lf:nan():0:3: ++# BZ30647 %3Lf:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Lf:nan(09A_Zaz):0:3: + %3Lf:0:1:1:0x0: + %*3Lf:0:0:1: + %3Lf:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3: + %3Lf:infinity:1:3:inf: + %*3Lf:infinity:0:3: +-%3Lf:+nan():0:-1: +-%*3Lf:+nan():0:-1: +-%3Lf:+nan(09A_Zaz):0:-1: +-%*3Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf:+nan():0:-1: ++# BZ30647 %*3Lf:+nan():0:-1: ++# BZ30647 %3Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf:+nan(09A_Zaz):0:-1: + %3Lf:+0:1:2:0x0: + %*3Lf:+0:0:2: + %3Lf:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4935Lf:-0.0:0:4: + %4935Lf:-0:1:2:-0x0: + %*4935Lf:-0:0:2: +-%4935Lf:-nan(09A_Zaz):1:13:-nan: +-%*4935Lf:-nan(09A_Zaz):0:13: +-%4935Lf:-nan():1:6:-nan: +-%*4935Lf:-nan():0:6: +-%4935Lf:nan():1:5:nan: +-%*4935Lf:nan():0:5: +-%4935Lf:nan(09A_Zaz):1:12:nan: +-%*4935Lf:nan(09A_Zaz):0:12: ++# BZ30647 %4935Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*4935Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %4935Lf:-nan():1:6:-nan: ++# BZ30647 %*4935Lf:-nan():0:6: ++# BZ30647 %4935Lf:nan():1:5:nan: ++# BZ30647 %*4935Lf:nan():0:5: ++# BZ30647 %4935Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*4935Lf:nan(09A_Zaz):0:12: + %4935Lf:0:1:1:0x0: + %*4935Lf:0:0:1: + %4935Lf:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4935Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935: + %4935Lf:infinity:1:8:inf: + %*4935Lf:infinity:0:8: +-%4935Lf:+nan():1:6:nan: +-%*4935Lf:+nan():0:6: +-%4935Lf:+nan(09A_Zaz):1:13:nan: +-%*4935Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %4935Lf:+nan():1:6:nan: ++# BZ30647 %*4935Lf:+nan():0:6: ++# BZ30647 %4935Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*4935Lf:+nan(09A_Zaz):0:13: + %4935Lf:+0:1:2:0x0: + %*4935Lf:+0:0:2: + %4935Lf:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*5000Lf:-0.0:0:4: + %5000Lf:-0:1:2:-0x0: + %*5000Lf:-0:0:2: +-%5000Lf:-nan(09A_Zaz):1:13:-nan: +-%*5000Lf:-nan(09A_Zaz):0:13: +-%5000Lf:-nan():1:6:-nan: +-%*5000Lf:-nan():0:6: +-%5000Lf:nan():1:5:nan: +-%*5000Lf:nan():0:5: +-%5000Lf:nan(09A_Zaz):1:12:nan: +-%*5000Lf:nan(09A_Zaz):0:12: ++# BZ30647 %5000Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*5000Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %5000Lf:-nan():1:6:-nan: ++# BZ30647 %*5000Lf:-nan():0:6: ++# BZ30647 %5000Lf:nan():1:5:nan: ++# BZ30647 %*5000Lf:nan():0:5: ++# BZ30647 %5000Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*5000Lf:nan(09A_Zaz):0:12: + %5000Lf:0:1:1:0x0: + %*5000Lf:0:0:1: + %5000Lf:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*5000Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936: + %5000Lf:infinity:1:8:inf: + %*5000Lf:infinity:0:8: +-%5000Lf:+nan():1:6:nan: +-%*5000Lf:+nan():0:6: +-%5000Lf:+nan(09A_Zaz):1:13:nan: +-%*5000Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %5000Lf:+nan():1:6:nan: ++# BZ30647 %*5000Lf:+nan():0:6: ++# BZ30647 %5000Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*5000Lf:+nan(09A_Zaz):0:13: + %5000Lf:+0:1:2:0x0: + %*5000Lf:+0:0:2: + %5000Lf:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*3Lf: -0.0:0:4: + %3Lf: -0:1:3:-0x0: + %*3Lf: -0:0:3: +-%3Lf: -nan(09A_Zaz):0:-1: +-%*3Lf: -nan(09A_Zaz):0:-1: +-%3Lf: -nan():0:-1: +-%*3Lf: -nan():0:-1: +-%3Lf: nan():1:4:nan: +-%*3Lf: nan():0:4: +-%3Lf: nan(09A_Zaz):1:4:nan: +-%*3Lf: nan(09A_Zaz):0:4: ++# BZ30647 %3Lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf: -nan():0:-1: ++# BZ30647 %*3Lf: -nan():0:-1: ++# BZ30647 %3Lf: nan():1:4:nan: ++# BZ30647 %*3Lf: nan():0:4: ++# BZ30647 %3Lf: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3Lf: nan(09A_Zaz):0:4: + %3Lf: 0:1:2:0x0: + %*3Lf: 0:0:2: + %3Lf: 0.0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*3Lf: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4: + %3Lf: infinity:1:4:inf: + %*3Lf: infinity:0:4: +-%3Lf: +nan():0:-1: +-%*3Lf: +nan():0:-1: +-%3Lf: +nan(09A_Zaz):0:-1: +-%*3Lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf: +nan():0:-1: ++# BZ30647 %*3Lf: +nan():0:-1: ++# BZ30647 %3Lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf: +nan(09A_Zaz):0:-1: + %3Lf: +0:1:3:0x0: + %*3Lf: +0:0:3: + %3Lf: +0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*5000Lf: -0.0:0:5: + %5000Lf: -0:1:3:-0x0: + %*5000Lf: -0:0:3: +-%5000Lf: -nan(09A_Zaz):1:14:-nan: +-%*5000Lf: -nan(09A_Zaz):0:14: +-%5000Lf: -nan():1:7:-nan: +-%*5000Lf: -nan():0:7: +-%5000Lf: nan():1:6:nan: +-%*5000Lf: nan():0:6: +-%5000Lf: nan(09A_Zaz):1:13:nan: +-%*5000Lf: nan(09A_Zaz):0:13: ++# BZ30647 %5000Lf: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*5000Lf: -nan(09A_Zaz):0:14: ++# BZ30647 %5000Lf: -nan():1:7:-nan: ++# BZ30647 %*5000Lf: -nan():0:7: ++# BZ30647 %5000Lf: nan():1:6:nan: ++# BZ30647 %*5000Lf: nan():0:6: ++# BZ30647 %5000Lf: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*5000Lf: nan(09A_Zaz):0:13: + %5000Lf: 0:1:2:0x0: + %*5000Lf: 0:0:2: + %5000Lf: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*5000Lf: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: + %5000Lf: infinity:1:9:inf: + %*5000Lf: infinity:0:9: +-%5000Lf: +nan():1:7:nan: +-%*5000Lf: +nan():0:7: +-%5000Lf: +nan(09A_Zaz):1:14:nan: +-%*5000Lf: +nan(09A_Zaz):0:14: ++# BZ30647 %5000Lf: +nan():1:7:nan: ++# BZ30647 %*5000Lf: +nan():0:7: ++# BZ30647 %5000Lf: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*5000Lf: +nan(09A_Zaz):0:14: + %5000Lf: +0:1:3:0x0: + %*5000Lf: +0:0:3: + %5000Lf: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ff.input +index b3e73df5d359fca7..b88246dce4da083b 100644 +--- a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ff.input ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ff.input +@@ -16,14 +16,14 @@ + %*LF:-0.0:0:4: + %LF:-0:1:2:-0x0: + %*LF:-0:0:2: +-%LF:-NAN(09A_Zaz):1:13:-nan: +-%*LF:-NAN(09A_Zaz):0:13: +-%LF:-NAN():1:6:-nan: +-%*LF:-NAN():0:6: +-%LF:NAN():1:5:nan: +-%*LF:NAN():0:5: +-%LF:NAN(09A_Zaz):1:12:nan: +-%*LF:NAN(09A_Zaz):0:12: ++# BZ30647 %LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %LF:-NAN():1:6:-nan: ++# BZ30647 %*LF:-NAN():0:6: ++# BZ30647 %LF:NAN():1:5:nan: ++# BZ30647 %*LF:NAN():0:5: ++# BZ30647 %LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LF:NAN(09A_Zaz):0:12: + %LF:0:1:1:0x0: + %*LF:0:0:1: + %LF:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936: + %LF:INFINITY:1:8:inf: + %*LF:INFINITY:0:8: +-%LF:+NAN():1:6:nan: +-%*LF:+NAN():0:6: +-%LF:+NAN(09A_Zaz):1:13:nan: +-%*LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %LF:+NAN():1:6:nan: ++# BZ30647 %*LF:+NAN():0:6: ++# BZ30647 %LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LF:+NAN(09A_Zaz):0:13: + %LF:+0:1:2:0x0: + %*LF:+0:0:2: + %LF:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1LF:-0.0:0:-1: + %1LF:-0:0:-1: + %*1LF:-0:0:-1: +-%1LF:-NAN(09A_Zaz):0:-1: +-%*1LF:-NAN(09A_Zaz):0:-1: +-%1LF:-NAN():0:-1: +-%*1LF:-NAN():0:-1: +-%1LF:NAN():0:-1: +-%*1LF:NAN():0:-1: +-%1LF:NAN(09A_Zaz):0:-1: +-%*1LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:-NAN():0:-1: ++# BZ30647 %*1LF:-NAN():0:-1: ++# BZ30647 %1LF:NAN():0:-1: ++# BZ30647 %*1LF:NAN():0:-1: ++# BZ30647 %1LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:NAN(09A_Zaz):0:-1: + %1LF:0:1:1:0x0: + %*1LF:0:0:1: + %1LF:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:1: + %1LF:INFINITY:0:-1: + %*1LF:INFINITY:0:-1: +-%1LF:+NAN():0:-1: +-%*1LF:+NAN():0:-1: +-%1LF:+NAN(09A_Zaz):0:-1: +-%*1LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:+NAN():0:-1: ++# BZ30647 %*1LF:+NAN():0:-1: ++# BZ30647 %1LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:+NAN(09A_Zaz):0:-1: + %1LF:+0:0:-1: + %*1LF:+0:0:-1: + %1LF:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2LF:-0.0:0:2: + %2LF:-0:1:2:-0x0: + %*2LF:-0:0:2: +-%2LF:-NAN(09A_Zaz):0:-1: +-%*2LF:-NAN(09A_Zaz):0:-1: +-%2LF:-NAN():0:-1: +-%*2LF:-NAN():0:-1: +-%2LF:NAN():0:-1: +-%*2LF:NAN():0:-1: +-%2LF:NAN(09A_Zaz):0:-1: +-%*2LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:-NAN():0:-1: ++# BZ30647 %*2LF:-NAN():0:-1: ++# BZ30647 %2LF:NAN():0:-1: ++# BZ30647 %*2LF:NAN():0:-1: ++# BZ30647 %2LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:NAN(09A_Zaz):0:-1: + %2LF:0:1:1:0x0: + %*2LF:0:0:1: + %2LF:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2: + %2LF:INFINITY:0:-1: + %*2LF:INFINITY:0:-1: +-%2LF:+NAN():0:-1: +-%*2LF:+NAN():0:-1: +-%2LF:+NAN(09A_Zaz):0:-1: +-%*2LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:+NAN():0:-1: ++# BZ30647 %*2LF:+NAN():0:-1: ++# BZ30647 %2LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:+NAN(09A_Zaz):0:-1: + %2LF:+0:1:2:0x0: + %*2LF:+0:0:2: + %2LF:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3LF:-0.0:0:3: + %3LF:-0:1:2:-0x0: + %*3LF:-0:0:2: +-%3LF:-NAN(09A_Zaz):0:-1: +-%*3LF:-NAN(09A_Zaz):0:-1: +-%3LF:-NAN():0:-1: +-%*3LF:-NAN():0:-1: +-%3LF:NAN():1:3:nan: +-%*3LF:NAN():0:3: +-%3LF:NAN(09A_Zaz):1:3:nan: +-%*3LF:NAN(09A_Zaz):0:3: ++# BZ30647 %3LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF:-NAN():0:-1: ++# BZ30647 %*3LF:-NAN():0:-1: ++# BZ30647 %3LF:NAN():1:3:nan: ++# BZ30647 %*3LF:NAN():0:3: ++# BZ30647 %3LF:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LF:NAN(09A_Zaz):0:3: + %3LF:0:1:1:0x0: + %*3LF:0:0:1: + %3LF:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3: + %3LF:INFINITY:1:3:inf: + %*3LF:INFINITY:0:3: +-%3LF:+NAN():0:-1: +-%*3LF:+NAN():0:-1: +-%3LF:+NAN(09A_Zaz):0:-1: +-%*3LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF:+NAN():0:-1: ++# BZ30647 %*3LF:+NAN():0:-1: ++# BZ30647 %3LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF:+NAN(09A_Zaz):0:-1: + %3LF:+0:1:2:0x0: + %*3LF:+0:0:2: + %3LF:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4935LF:-0.0:0:4: + %4935LF:-0:1:2:-0x0: + %*4935LF:-0:0:2: +-%4935LF:-NAN(09A_Zaz):1:13:-nan: +-%*4935LF:-NAN(09A_Zaz):0:13: +-%4935LF:-NAN():1:6:-nan: +-%*4935LF:-NAN():0:6: +-%4935LF:NAN():1:5:nan: +-%*4935LF:NAN():0:5: +-%4935LF:NAN(09A_Zaz):1:12:nan: +-%*4935LF:NAN(09A_Zaz):0:12: ++# BZ30647 %4935LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*4935LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %4935LF:-NAN():1:6:-nan: ++# BZ30647 %*4935LF:-NAN():0:6: ++# BZ30647 %4935LF:NAN():1:5:nan: ++# BZ30647 %*4935LF:NAN():0:5: ++# BZ30647 %4935LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*4935LF:NAN(09A_Zaz):0:12: + %4935LF:0:1:1:0x0: + %*4935LF:0:0:1: + %4935LF:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4935LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935: + %4935LF:INFINITY:1:8:inf: + %*4935LF:INFINITY:0:8: +-%4935LF:+NAN():1:6:nan: +-%*4935LF:+NAN():0:6: +-%4935LF:+NAN(09A_Zaz):1:13:nan: +-%*4935LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %4935LF:+NAN():1:6:nan: ++# BZ30647 %*4935LF:+NAN():0:6: ++# BZ30647 %4935LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*4935LF:+NAN(09A_Zaz):0:13: + %4935LF:+0:1:2:0x0: + %*4935LF:+0:0:2: + %4935LF:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*5000LF:-0.0:0:4: + %5000LF:-0:1:2:-0x0: + %*5000LF:-0:0:2: +-%5000LF:-NAN(09A_Zaz):1:13:-nan: +-%*5000LF:-NAN(09A_Zaz):0:13: +-%5000LF:-NAN():1:6:-nan: +-%*5000LF:-NAN():0:6: +-%5000LF:NAN():1:5:nan: +-%*5000LF:NAN():0:5: +-%5000LF:NAN(09A_Zaz):1:12:nan: +-%*5000LF:NAN(09A_Zaz):0:12: ++# BZ30647 %5000LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*5000LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %5000LF:-NAN():1:6:-nan: ++# BZ30647 %*5000LF:-NAN():0:6: ++# BZ30647 %5000LF:NAN():1:5:nan: ++# BZ30647 %*5000LF:NAN():0:5: ++# BZ30647 %5000LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*5000LF:NAN(09A_Zaz):0:12: + %5000LF:0:1:1:0x0: + %*5000LF:0:0:1: + %5000LF:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*5000LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936: + %5000LF:INFINITY:1:8:inf: + %*5000LF:INFINITY:0:8: +-%5000LF:+NAN():1:6:nan: +-%*5000LF:+NAN():0:6: +-%5000LF:+NAN(09A_Zaz):1:13:nan: +-%*5000LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %5000LF:+NAN():1:6:nan: ++# BZ30647 %*5000LF:+NAN():0:6: ++# BZ30647 %5000LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*5000LF:+NAN(09A_Zaz):0:13: + %5000LF:+0:1:2:0x0: + %*5000LF:+0:0:2: + %5000LF:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*3LF: -0.0:0:4: + %3LF: -0:1:3:-0x0: + %*3LF: -0:0:3: +-%3LF: -NAN(09A_Zaz):0:-1: +-%*3LF: -NAN(09A_Zaz):0:-1: +-%3LF: -NAN():0:-1: +-%*3LF: -NAN():0:-1: +-%3LF: NAN():1:4:nan: +-%*3LF: NAN():0:4: +-%3LF: NAN(09A_Zaz):1:4:nan: +-%*3LF: NAN(09A_Zaz):0:4: ++# BZ30647 %3LF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF: -NAN():0:-1: ++# BZ30647 %*3LF: -NAN():0:-1: ++# BZ30647 %3LF: NAN():1:4:nan: ++# BZ30647 %*3LF: NAN():0:4: ++# BZ30647 %3LF: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3LF: NAN(09A_Zaz):0:4: + %3LF: 0:1:2:0x0: + %*3LF: 0:0:2: + %3LF: 0.0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*3LF: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4: + %3LF: INFINITY:1:4:inf: + %*3LF: INFINITY:0:4: +-%3LF: +NAN():0:-1: +-%*3LF: +NAN():0:-1: +-%3LF: +NAN(09A_Zaz):0:-1: +-%*3LF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF: +NAN():0:-1: ++# BZ30647 %*3LF: +NAN():0:-1: ++# BZ30647 %3LF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF: +NAN(09A_Zaz):0:-1: + %3LF: +0:1:3:0x0: + %*3LF: +0:0:3: + %3LF: +0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*5000LF: -0.0:0:5: + %5000LF: -0:1:3:-0x0: + %*5000LF: -0:0:3: +-%5000LF: -NAN(09A_Zaz):1:14:-nan: +-%*5000LF: -NAN(09A_Zaz):0:14: +-%5000LF: -NAN():1:7:-nan: +-%*5000LF: -NAN():0:7: +-%5000LF: NAN():1:6:nan: +-%*5000LF: NAN():0:6: +-%5000LF: NAN(09A_Zaz):1:13:nan: +-%*5000LF: NAN(09A_Zaz):0:13: ++# BZ30647 %5000LF: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*5000LF: -NAN(09A_Zaz):0:14: ++# BZ30647 %5000LF: -NAN():1:7:-nan: ++# BZ30647 %*5000LF: -NAN():0:7: ++# BZ30647 %5000LF: NAN():1:6:nan: ++# BZ30647 %*5000LF: NAN():0:6: ++# BZ30647 %5000LF: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*5000LF: NAN(09A_Zaz):0:13: + %5000LF: 0:1:2:0x0: + %*5000LF: 0:0:2: + %5000LF: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*5000LF: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: + %5000LF: INFINITY:1:9:inf: + %*5000LF: INFINITY:0:9: +-%5000LF: +NAN():1:7:nan: +-%*5000LF: +NAN():0:7: +-%5000LF: +NAN(09A_Zaz):1:14:nan: +-%*5000LF: +NAN(09A_Zaz):0:14: ++# BZ30647 %5000LF: +NAN():1:7:nan: ++# BZ30647 %*5000LF: +NAN():0:7: ++# BZ30647 %5000LF: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*5000LF: +NAN(09A_Zaz):0:14: + %5000LF: +0:1:3:0x0: + %*5000LF: +0:0:3: + %5000LF: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-g.input +index 64560b8b9900015b..2ab11b0bd393735c 100644 +--- a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-g.input ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-g.input +@@ -16,14 +16,14 @@ + %*Lg:-0x0p+0:0:7: + %Lg:-0x0p0:1:6:-0x0: + %*Lg:-0x0p0:0:6: +-%Lg:-nan(09A_Zaz):1:13:-nan: +-%*Lg:-nan(09A_Zaz):0:13: +-%Lg:-nan():1:6:-nan: +-%*Lg:-nan():0:6: +-%Lg:nan():1:5:nan: +-%*Lg:nan():0:5: +-%Lg:nan(09A_Zaz):1:12:nan: +-%*Lg:nan(09A_Zaz):0:12: ++# BZ30647 %Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %Lg:-nan():1:6:-nan: ++# BZ30647 %*Lg:-nan():0:6: ++# BZ30647 %Lg:nan():1:5:nan: ++# BZ30647 %*Lg:nan():0:5: ++# BZ30647 %Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Lg:nan(09A_Zaz):0:12: + %Lg:0x0p0:1:5:0x0: + %*Lg:0x0p0:0:5: + %Lg:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:39: + %Lg:infinity:1:8:inf: + %*Lg:infinity:0:8: +-%Lg:+nan():1:6:nan: +-%*Lg:+nan():0:6: +-%Lg:+nan(09A_Zaz):1:13:nan: +-%*Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %Lg:+nan():1:6:nan: ++# BZ30647 %*Lg:+nan():0:6: ++# BZ30647 %Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Lg:+nan(09A_Zaz):0:13: + %Lg:+0x0p0:1:6:0x0: + %*Lg:+0x0p0:0:6: + %Lg:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1Lg:-0x0p+0:0:-1: + %1Lg:-0x0p0:0:-1: + %*1Lg:-0x0p0:0:-1: +-%1Lg:-nan(09A_Zaz):0:-1: +-%*1Lg:-nan(09A_Zaz):0:-1: +-%1Lg:-nan():0:-1: +-%*1Lg:-nan():0:-1: +-%1Lg:nan():0:-1: +-%*1Lg:nan():0:-1: +-%1Lg:nan(09A_Zaz):0:-1: +-%*1Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:-nan():0:-1: ++# BZ30647 %*1Lg:-nan():0:-1: ++# BZ30647 %1Lg:nan():0:-1: ++# BZ30647 %*1Lg:nan():0:-1: ++# BZ30647 %1Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:nan(09A_Zaz):0:-1: + %1Lg:0x0p0:1:1:0x0: + %*1Lg:0x0p0:0:1: + %1Lg:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:1: + %1Lg:infinity:0:-1: + %*1Lg:infinity:0:-1: +-%1Lg:+nan():0:-1: +-%*1Lg:+nan():0:-1: +-%1Lg:+nan(09A_Zaz):0:-1: +-%*1Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:+nan():0:-1: ++# BZ30647 %*1Lg:+nan():0:-1: ++# BZ30647 %1Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:+nan(09A_Zaz):0:-1: + %1Lg:+0x0p0:0:-1: + %*1Lg:+0x0p0:0:-1: + %1Lg:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2Lg:-0x0p+0:0:2: + %2Lg:-0x0p0:1:2:-0x0: + %*2Lg:-0x0p0:0:2: +-%2Lg:-nan(09A_Zaz):0:-1: +-%*2Lg:-nan(09A_Zaz):0:-1: +-%2Lg:-nan():0:-1: +-%*2Lg:-nan():0:-1: +-%2Lg:nan():0:-1: +-%*2Lg:nan():0:-1: +-%2Lg:nan(09A_Zaz):0:-1: +-%*2Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:-nan():0:-1: ++# BZ30647 %*2Lg:-nan():0:-1: ++# BZ30647 %2Lg:nan():0:-1: ++# BZ30647 %*2Lg:nan():0:-1: ++# BZ30647 %2Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:nan(09A_Zaz):0:-1: + # BZ12701 %2Lg:0x0p0:0:-1: + # BZ12701 %*2Lg:0x0p0:0:-1: + # BZ12701 %2Lg:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:-1: + %2Lg:infinity:0:-1: + %*2Lg:infinity:0:-1: +-%2Lg:+nan():0:-1: +-%*2Lg:+nan():0:-1: +-%2Lg:+nan(09A_Zaz):0:-1: +-%*2Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:+nan():0:-1: ++# BZ30647 %*2Lg:+nan():0:-1: ++# BZ30647 %2Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:+nan(09A_Zaz):0:-1: + %2Lg:+0x0p0:1:2:0x0: + %*2Lg:+0x0p0:0:2: + %2Lg:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3Lg:-0x0p+0:0:-1: + # BZ12701 %3Lg:-0x0p0:0:-1: + # BZ12701 %*3Lg:-0x0p0:0:-1: +-%3Lg:-nan(09A_Zaz):0:-1: +-%*3Lg:-nan(09A_Zaz):0:-1: +-%3Lg:-nan():0:-1: +-%*3Lg:-nan():0:-1: +-%3Lg:nan():1:3:nan: +-%*3Lg:nan():0:3: +-%3Lg:nan(09A_Zaz):1:3:nan: +-%*3Lg:nan(09A_Zaz):0:3: ++# BZ30647 %3Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Lg:-nan():0:-1: ++# BZ30647 %*3Lg:-nan():0:-1: ++# BZ30647 %3Lg:nan():1:3:nan: ++# BZ30647 %*3Lg:nan():0:3: ++# BZ30647 %3Lg:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Lg:nan(09A_Zaz):0:3: + %3Lg:0x0p0:1:3:0x0: + %*3Lg:0x0p0:0:3: + %3Lg:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:3: + %3Lg:infinity:1:3:inf: + %*3Lg:infinity:0:3: +-%3Lg:+nan():0:-1: +-%*3Lg:+nan():0:-1: +-%3Lg:+nan(09A_Zaz):0:-1: +-%*3Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Lg:+nan():0:-1: ++# BZ30647 %*3Lg:+nan():0:-1: ++# BZ30647 %3Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lg:+nan(09A_Zaz):0:-1: + # BZ12701 %3Lg:+0x0p0:0:-1: + # BZ12701 %*3Lg:+0x0p0:0:-1: + # BZ12701 %3Lg:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4Lg:-0x0p+0:0:4: + %4Lg:-0x0p0:1:4:-0x0: + %*4Lg:-0x0p0:0:4: +-%4Lg:-nan(09A_Zaz):1:4:-nan: +-%*4Lg:-nan(09A_Zaz):0:4: +-%4Lg:-nan():1:4:-nan: +-%*4Lg:-nan():0:4: +-%4Lg:nan():0:-1: +-%*4Lg:nan():0:-1: +-%4Lg:nan(09A_Zaz):0:-1: +-%*4Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %4Lg:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Lg:-nan(09A_Zaz):0:4: ++# BZ30647 %4Lg:-nan():1:4:-nan: ++# BZ30647 %*4Lg:-nan():0:4: ++# BZ30647 %4Lg:nan():0:-1: ++# BZ30647 %*4Lg:nan():0:-1: ++# BZ30647 %4Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Lg:nan(09A_Zaz):0:-1: + # BZ12701 %4Lg:0x0p0:0:-1: + # BZ12701 %*4Lg:0x0p0:0:-1: + # BZ12701 %4Lg:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:4: + %4Lg:infinity:0:-1: + %*4Lg:infinity:0:-1: +-%4Lg:+nan():1:4:nan: +-%*4Lg:+nan():0:4: +-%4Lg:+nan(09A_Zaz):1:4:nan: +-%*4Lg:+nan(09A_Zaz):0:4: ++# BZ30647 %4Lg:+nan():1:4:nan: ++# BZ30647 %*4Lg:+nan():0:4: ++# BZ30647 %4Lg:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Lg:+nan(09A_Zaz):0:4: + %4Lg:+0x0p0:1:4:0x0: + %*4Lg:+0x0p0:0:4: + %4Lg:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5Lg:-0x0p+0:0:-1: + # BZ12701 %5Lg:-0x0p0:0:-1: + # BZ12701 %*5Lg:-0x0p0:0:-1: +-%5Lg:-nan(09A_Zaz):0:-1: +-%*5Lg:-nan(09A_Zaz):0:-1: +-%5Lg:-nan():0:-1: +-%*5Lg:-nan():0:-1: +-%5Lg:nan():1:5:nan: +-%*5Lg:nan():0:5: +-%5Lg:nan(09A_Zaz):0:-1: +-%*5Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:-nan():0:-1: ++# BZ30647 %*5Lg:-nan():0:-1: ++# BZ30647 %5Lg:nan():1:5:nan: ++# BZ30647 %*5Lg:nan():0:5: ++# BZ30647 %5Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:nan(09A_Zaz):0:-1: + %5Lg:0x0p0:1:5:0x0: + %*5Lg:0x0p0:0:5: + # BZ12701 %5Lg:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:5: + %5Lg:infinity:0:-1: + %*5Lg:infinity:0:-1: +-%5Lg:+nan():0:-1: +-%*5Lg:+nan():0:-1: +-%5Lg:+nan(09A_Zaz):0:-1: +-%*5Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:+nan():0:-1: ++# BZ30647 %*5Lg:+nan():0:-1: ++# BZ30647 %5Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:+nan(09A_Zaz):0:-1: + # BZ12701 %5Lg:+0x0p0:0:-1: + # BZ12701 %*5Lg:+0x0p0:0:-1: + # BZ12701 %5Lg:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6Lg:-0x0p+0:0:-1: + %6Lg:-0x0p0:1:6:-0x0: + %*6Lg:-0x0p0:0:6: +-%6Lg:-nan(09A_Zaz):0:-1: +-%*6Lg:-nan(09A_Zaz):0:-1: +-%6Lg:-nan():1:6:-nan: +-%*6Lg:-nan():0:6: +-%6Lg:nan():1:5:nan: +-%*6Lg:nan():0:5: +-%6Lg:nan(09A_Zaz):0:-1: +-%*6Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:-nan():1:6:-nan: ++# BZ30647 %*6Lg:-nan():0:6: ++# BZ30647 %6Lg:nan():1:5:nan: ++# BZ30647 %*6Lg:nan():0:5: ++# BZ30647 %6Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:nan(09A_Zaz):0:-1: + %6Lg:0x0p0:1:5:0x0: + %*6Lg:0x0p0:0:5: + %6Lg:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:6: + %6Lg:infinity:0:-1: + %*6Lg:infinity:0:-1: +-%6Lg:+nan():1:6:nan: +-%*6Lg:+nan():0:6: +-%6Lg:+nan(09A_Zaz):0:-1: +-%*6Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:+nan():1:6:nan: ++# BZ30647 %*6Lg:+nan():0:6: ++# BZ30647 %6Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:+nan(09A_Zaz):0:-1: + %6Lg:+0x0p0:1:6:0x0: + %*6Lg:+0x0p0:0:6: + # BZ12701 %6Lg:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*35Lg:-0x0p+0:0:7: + %35Lg:-0x0p0:1:6:-0x0: + %*35Lg:-0x0p0:0:6: +-%35Lg:-nan(09A_Zaz):1:13:-nan: +-%*35Lg:-nan(09A_Zaz):0:13: +-%35Lg:-nan():1:6:-nan: +-%*35Lg:-nan():0:6: +-%35Lg:nan():1:5:nan: +-%*35Lg:nan():0:5: +-%35Lg:nan(09A_Zaz):1:12:nan: +-%*35Lg:nan(09A_Zaz):0:12: ++# BZ30647 %35Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*35Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %35Lg:-nan():1:6:-nan: ++# BZ30647 %*35Lg:-nan():0:6: ++# BZ30647 %35Lg:nan():1:5:nan: ++# BZ30647 %*35Lg:nan():0:5: ++# BZ30647 %35Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*35Lg:nan(09A_Zaz):0:12: + %35Lg:0x0p0:1:5:0x0: + %*35Lg:0x0p0:0:5: + %35Lg:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*35Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:35: + %35Lg:infinity:1:8:inf: + %*35Lg:infinity:0:8: +-%35Lg:+nan():1:6:nan: +-%*35Lg:+nan():0:6: +-%35Lg:+nan(09A_Zaz):1:13:nan: +-%*35Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %35Lg:+nan():1:6:nan: ++# BZ30647 %*35Lg:+nan():0:6: ++# BZ30647 %35Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*35Lg:+nan(09A_Zaz):0:13: + %35Lg:+0x0p0:1:6:0x0: + %*35Lg:+0x0p0:0:6: + %35Lg:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*53Lg:-0x0p+0:0:7: + %53Lg:-0x0p0:1:6:-0x0: + %*53Lg:-0x0p0:0:6: +-%53Lg:-nan(09A_Zaz):1:13:-nan: +-%*53Lg:-nan(09A_Zaz):0:13: +-%53Lg:-nan():1:6:-nan: +-%*53Lg:-nan():0:6: +-%53Lg:nan():1:5:nan: +-%*53Lg:nan():0:5: +-%53Lg:nan(09A_Zaz):1:12:nan: +-%*53Lg:nan(09A_Zaz):0:12: ++# BZ30647 %53Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*53Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %53Lg:-nan():1:6:-nan: ++# BZ30647 %*53Lg:-nan():0:6: ++# BZ30647 %53Lg:nan():1:5:nan: ++# BZ30647 %*53Lg:nan():0:5: ++# BZ30647 %53Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*53Lg:nan(09A_Zaz):0:12: + %53Lg:0x0p0:1:5:0x0: + %*53Lg:0x0p0:0:5: + %53Lg:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*53Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:39: + %53Lg:infinity:1:8:inf: + %*53Lg:infinity:0:8: +-%53Lg:+nan():1:6:nan: +-%*53Lg:+nan():0:6: +-%53Lg:+nan(09A_Zaz):1:13:nan: +-%*53Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %53Lg:+nan():1:6:nan: ++# BZ30647 %*53Lg:+nan():0:6: ++# BZ30647 %53Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*53Lg:+nan(09A_Zaz):0:13: + %53Lg:+0x0p0:1:6:0x0: + %*53Lg:+0x0p0:0:6: + %53Lg:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5Lg: -0x0p+0:0:-1: + # BZ12701 %5Lg: -0x0p0:0:-1: + # BZ12701 %*5Lg: -0x0p0:0:-1: +-%5Lg: -nan(09A_Zaz):0:-1: +-%*5Lg: -nan(09A_Zaz):0:-1: +-%5Lg: -nan():0:-1: +-%*5Lg: -nan():0:-1: +-%5Lg: nan():1:6:nan: +-%*5Lg: nan():0:6: +-%5Lg: nan(09A_Zaz):0:-1: +-%*5Lg: nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: -nan():0:-1: ++# BZ30647 %*5Lg: -nan():0:-1: ++# BZ30647 %5Lg: nan():1:6:nan: ++# BZ30647 %*5Lg: nan():0:6: ++# BZ30647 %5Lg: nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: nan(09A_Zaz):0:-1: + %5Lg: 0x0p0:1:6:0x0: + %*5Lg: 0x0p0:0:6: + # BZ12701 %5Lg: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5Lg: 0xf.fffffffffffffffffffffffffff8p+16380:0:6: + %5Lg: infinity:0:-1: + %*5Lg: infinity:0:-1: +-%5Lg: +nan():0:-1: +-%*5Lg: +nan():0:-1: +-%5Lg: +nan(09A_Zaz):0:-1: +-%*5Lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: +nan():0:-1: ++# BZ30647 %*5Lg: +nan():0:-1: ++# BZ30647 %5Lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: +nan(09A_Zaz):0:-1: + # BZ12701 %5Lg: +0x0p0:0:-1: + # BZ12701 %*5Lg: +0x0p0:0:-1: + # BZ12701 %5Lg: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*53Lg: -0x0p+0:0:8: + %53Lg: -0x0p0:1:7:-0x0: + %*53Lg: -0x0p0:0:7: +-%53Lg: -nan(09A_Zaz):1:14:-nan: +-%*53Lg: -nan(09A_Zaz):0:14: +-%53Lg: -nan():1:7:-nan: +-%*53Lg: -nan():0:7: +-%53Lg: nan():1:6:nan: +-%*53Lg: nan():0:6: +-%53Lg: nan(09A_Zaz):1:13:nan: +-%*53Lg: nan(09A_Zaz):0:13: ++# BZ30647 %53Lg: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*53Lg: -nan(09A_Zaz):0:14: ++# BZ30647 %53Lg: -nan():1:7:-nan: ++# BZ30647 %*53Lg: -nan():0:7: ++# BZ30647 %53Lg: nan():1:6:nan: ++# BZ30647 %*53Lg: nan():0:6: ++# BZ30647 %53Lg: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*53Lg: nan(09A_Zaz):0:13: + %53Lg: 0x0p0:1:6:0x0: + %*53Lg: 0x0p0:0:6: + %53Lg: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*53Lg: 0xf.fffffffffffffffffffffffffff8p+16380:0:40: + %53Lg: infinity:1:9:inf: + %*53Lg: infinity:0:9: +-%53Lg: +nan():1:7:nan: +-%*53Lg: +nan():0:7: +-%53Lg: +nan(09A_Zaz):1:14:nan: +-%*53Lg: +nan(09A_Zaz):0:14: ++# BZ30647 %53Lg: +nan():1:7:nan: ++# BZ30647 %*53Lg: +nan():0:7: ++# BZ30647 %53Lg: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*53Lg: +nan(09A_Zaz):0:14: + %53Lg: +0x0p0:1:7:0x0: + %*53Lg: +0x0p0:0:7: + %53Lg: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-gg.input +index 7b370c54a727857a..e09c6a51c06d0bb0 100644 +--- a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-gg.input ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-gg.input +@@ -16,14 +16,14 @@ + %*LG:-0X0P+0:0:7: + %LG:-0X0P0:1:6:-0x0: + %*LG:-0X0P0:0:6: +-%LG:-NAN(09A_Zaz):1:13:-nan: +-%*LG:-NAN(09A_Zaz):0:13: +-%LG:-NAN():1:6:-nan: +-%*LG:-NAN():0:6: +-%LG:NAN():1:5:nan: +-%*LG:NAN():0:5: +-%LG:NAN(09A_Zaz):1:12:nan: +-%*LG:NAN(09A_Zaz):0:12: ++# BZ30647 %LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %LG:-NAN():1:6:-nan: ++# BZ30647 %*LG:-NAN():0:6: ++# BZ30647 %LG:NAN():1:5:nan: ++# BZ30647 %*LG:NAN():0:5: ++# BZ30647 %LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LG:NAN(09A_Zaz):0:12: + %LG:0X0P0:1:5:0x0: + %*LG:0X0P0:0:5: + %LG:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39: + %LG:INFINITY:1:8:inf: + %*LG:INFINITY:0:8: +-%LG:+NAN():1:6:nan: +-%*LG:+NAN():0:6: +-%LG:+NAN(09A_Zaz):1:13:nan: +-%*LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %LG:+NAN():1:6:nan: ++# BZ30647 %*LG:+NAN():0:6: ++# BZ30647 %LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LG:+NAN(09A_Zaz):0:13: + %LG:+0X0P0:1:6:0x0: + %*LG:+0X0P0:0:6: + %LG:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1LG:-0X0P+0:0:-1: + %1LG:-0X0P0:0:-1: + %*1LG:-0X0P0:0:-1: +-%1LG:-NAN(09A_Zaz):0:-1: +-%*1LG:-NAN(09A_Zaz):0:-1: +-%1LG:-NAN():0:-1: +-%*1LG:-NAN():0:-1: +-%1LG:NAN():0:-1: +-%*1LG:NAN():0:-1: +-%1LG:NAN(09A_Zaz):0:-1: +-%*1LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:-NAN():0:-1: ++# BZ30647 %*1LG:-NAN():0:-1: ++# BZ30647 %1LG:NAN():0:-1: ++# BZ30647 %*1LG:NAN():0:-1: ++# BZ30647 %1LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:NAN(09A_Zaz):0:-1: + %1LG:0X0P0:1:1:0x0: + %*1LG:0X0P0:0:1: + %1LG:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:1: + %1LG:INFINITY:0:-1: + %*1LG:INFINITY:0:-1: +-%1LG:+NAN():0:-1: +-%*1LG:+NAN():0:-1: +-%1LG:+NAN(09A_Zaz):0:-1: +-%*1LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:+NAN():0:-1: ++# BZ30647 %*1LG:+NAN():0:-1: ++# BZ30647 %1LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:+NAN(09A_Zaz):0:-1: + %1LG:+0X0P0:0:-1: + %*1LG:+0X0P0:0:-1: + %1LG:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LG:-0X0P+0:0:2: + %2LG:-0X0P0:1:2:-0x0: + %*2LG:-0X0P0:0:2: +-%2LG:-NAN(09A_Zaz):0:-1: +-%*2LG:-NAN(09A_Zaz):0:-1: +-%2LG:-NAN():0:-1: +-%*2LG:-NAN():0:-1: +-%2LG:NAN():0:-1: +-%*2LG:NAN():0:-1: +-%2LG:NAN(09A_Zaz):0:-1: +-%*2LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:-NAN():0:-1: ++# BZ30647 %*2LG:-NAN():0:-1: ++# BZ30647 %2LG:NAN():0:-1: ++# BZ30647 %*2LG:NAN():0:-1: ++# BZ30647 %2LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:NAN(09A_Zaz):0:-1: + # BZ12701 %2LG:0X0P0:0:-1: + # BZ12701 %*2LG:0X0P0:0:-1: + # BZ12701 %2LG:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: + %2LG:INFINITY:0:-1: + %*2LG:INFINITY:0:-1: +-%2LG:+NAN():0:-1: +-%*2LG:+NAN():0:-1: +-%2LG:+NAN(09A_Zaz):0:-1: +-%*2LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:+NAN():0:-1: ++# BZ30647 %*2LG:+NAN():0:-1: ++# BZ30647 %2LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:+NAN(09A_Zaz):0:-1: + %2LG:+0X0P0:1:2:0x0: + %*2LG:+0X0P0:0:2: + %2LG:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LG:-0X0P+0:0:-1: + # BZ12701 %3LG:-0X0P0:0:-1: + # BZ12701 %*3LG:-0X0P0:0:-1: +-%3LG:-NAN(09A_Zaz):0:-1: +-%*3LG:-NAN(09A_Zaz):0:-1: +-%3LG:-NAN():0:-1: +-%*3LG:-NAN():0:-1: +-%3LG:NAN():1:3:nan: +-%*3LG:NAN():0:3: +-%3LG:NAN(09A_Zaz):1:3:nan: +-%*3LG:NAN(09A_Zaz):0:3: ++# BZ30647 %3LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LG:-NAN():0:-1: ++# BZ30647 %*3LG:-NAN():0:-1: ++# BZ30647 %3LG:NAN():1:3:nan: ++# BZ30647 %*3LG:NAN():0:3: ++# BZ30647 %3LG:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LG:NAN(09A_Zaz):0:3: + %3LG:0X0P0:1:3:0x0: + %*3LG:0X0P0:0:3: + %3LG:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:3: + %3LG:INFINITY:1:3:inf: + %*3LG:INFINITY:0:3: +-%3LG:+NAN():0:-1: +-%*3LG:+NAN():0:-1: +-%3LG:+NAN(09A_Zaz):0:-1: +-%*3LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LG:+NAN():0:-1: ++# BZ30647 %*3LG:+NAN():0:-1: ++# BZ30647 %3LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LG:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LG:+0X0P0:0:-1: + # BZ12701 %*3LG:+0X0P0:0:-1: + # BZ12701 %3LG:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4LG:-0X0P+0:0:4: + %4LG:-0X0P0:1:4:-0x0: + %*4LG:-0X0P0:0:4: +-%4LG:-NAN(09A_Zaz):1:4:-nan: +-%*4LG:-NAN(09A_Zaz):0:4: +-%4LG:-NAN():1:4:-nan: +-%*4LG:-NAN():0:4: +-%4LG:NAN():0:-1: +-%*4LG:NAN():0:-1: +-%4LG:NAN(09A_Zaz):0:-1: +-%*4LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LG:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LG:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LG:-NAN():1:4:-nan: ++# BZ30647 %*4LG:-NAN():0:4: ++# BZ30647 %4LG:NAN():0:-1: ++# BZ30647 %*4LG:NAN():0:-1: ++# BZ30647 %4LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LG:NAN(09A_Zaz):0:-1: + # BZ12701 %4LG:0X0P0:0:-1: + # BZ12701 %*4LG:0X0P0:0:-1: + # BZ12701 %4LG:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4: + %4LG:INFINITY:0:-1: + %*4LG:INFINITY:0:-1: +-%4LG:+NAN():1:4:nan: +-%*4LG:+NAN():0:4: +-%4LG:+NAN(09A_Zaz):1:4:nan: +-%*4LG:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LG:+NAN():1:4:nan: ++# BZ30647 %*4LG:+NAN():0:4: ++# BZ30647 %4LG:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LG:+NAN(09A_Zaz):0:4: + %4LG:+0X0P0:1:4:0x0: + %*4LG:+0X0P0:0:4: + %4LG:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5LG:-0X0P+0:0:-1: + # BZ12701 %5LG:-0X0P0:0:-1: + # BZ12701 %*5LG:-0X0P0:0:-1: +-%5LG:-NAN(09A_Zaz):0:-1: +-%*5LG:-NAN(09A_Zaz):0:-1: +-%5LG:-NAN():0:-1: +-%*5LG:-NAN():0:-1: +-%5LG:NAN():1:5:nan: +-%*5LG:NAN():0:5: +-%5LG:NAN(09A_Zaz):0:-1: +-%*5LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:-NAN():0:-1: ++# BZ30647 %*5LG:-NAN():0:-1: ++# BZ30647 %5LG:NAN():1:5:nan: ++# BZ30647 %*5LG:NAN():0:5: ++# BZ30647 %5LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:NAN(09A_Zaz):0:-1: + %5LG:0X0P0:1:5:0x0: + %*5LG:0X0P0:0:5: + # BZ12701 %5LG:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5: + %5LG:INFINITY:0:-1: + %*5LG:INFINITY:0:-1: +-%5LG:+NAN():0:-1: +-%*5LG:+NAN():0:-1: +-%5LG:+NAN(09A_Zaz):0:-1: +-%*5LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:+NAN():0:-1: ++# BZ30647 %*5LG:+NAN():0:-1: ++# BZ30647 %5LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:+NAN(09A_Zaz):0:-1: + # BZ12701 %5LG:+0X0P0:0:-1: + # BZ12701 %*5LG:+0X0P0:0:-1: + # BZ12701 %5LG:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6LG:-0X0P+0:0:-1: + %6LG:-0X0P0:1:6:-0x0: + %*6LG:-0X0P0:0:6: +-%6LG:-NAN(09A_Zaz):0:-1: +-%*6LG:-NAN(09A_Zaz):0:-1: +-%6LG:-NAN():1:6:-nan: +-%*6LG:-NAN():0:6: +-%6LG:NAN():1:5:nan: +-%*6LG:NAN():0:5: +-%6LG:NAN(09A_Zaz):0:-1: +-%*6LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:-NAN():1:6:-nan: ++# BZ30647 %*6LG:-NAN():0:6: ++# BZ30647 %6LG:NAN():1:5:nan: ++# BZ30647 %*6LG:NAN():0:5: ++# BZ30647 %6LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:NAN(09A_Zaz):0:-1: + %6LG:0X0P0:1:5:0x0: + %*6LG:0X0P0:0:5: + %6LG:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: + %6LG:INFINITY:0:-1: + %*6LG:INFINITY:0:-1: +-%6LG:+NAN():1:6:nan: +-%*6LG:+NAN():0:6: +-%6LG:+NAN(09A_Zaz):0:-1: +-%*6LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:+NAN():1:6:nan: ++# BZ30647 %*6LG:+NAN():0:6: ++# BZ30647 %6LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:+NAN(09A_Zaz):0:-1: + %6LG:+0X0P0:1:6:0x0: + %*6LG:+0X0P0:0:6: + # BZ12701 %6LG:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*35LG:-0X0P+0:0:7: + %35LG:-0X0P0:1:6:-0x0: + %*35LG:-0X0P0:0:6: +-%35LG:-NAN(09A_Zaz):1:13:-nan: +-%*35LG:-NAN(09A_Zaz):0:13: +-%35LG:-NAN():1:6:-nan: +-%*35LG:-NAN():0:6: +-%35LG:NAN():1:5:nan: +-%*35LG:NAN():0:5: +-%35LG:NAN(09A_Zaz):1:12:nan: +-%*35LG:NAN(09A_Zaz):0:12: ++# BZ30647 %35LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*35LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %35LG:-NAN():1:6:-nan: ++# BZ30647 %*35LG:-NAN():0:6: ++# BZ30647 %35LG:NAN():1:5:nan: ++# BZ30647 %*35LG:NAN():0:5: ++# BZ30647 %35LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*35LG:NAN(09A_Zaz):0:12: + %35LG:0X0P0:1:5:0x0: + %*35LG:0X0P0:0:5: + %35LG:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*35LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:35: + %35LG:INFINITY:1:8:inf: + %*35LG:INFINITY:0:8: +-%35LG:+NAN():1:6:nan: +-%*35LG:+NAN():0:6: +-%35LG:+NAN(09A_Zaz):1:13:nan: +-%*35LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %35LG:+NAN():1:6:nan: ++# BZ30647 %*35LG:+NAN():0:6: ++# BZ30647 %35LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*35LG:+NAN(09A_Zaz):0:13: + %35LG:+0X0P0:1:6:0x0: + %*35LG:+0X0P0:0:6: + %35LG:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*53LG:-0X0P+0:0:7: + %53LG:-0X0P0:1:6:-0x0: + %*53LG:-0X0P0:0:6: +-%53LG:-NAN(09A_Zaz):1:13:-nan: +-%*53LG:-NAN(09A_Zaz):0:13: +-%53LG:-NAN():1:6:-nan: +-%*53LG:-NAN():0:6: +-%53LG:NAN():1:5:nan: +-%*53LG:NAN():0:5: +-%53LG:NAN(09A_Zaz):1:12:nan: +-%*53LG:NAN(09A_Zaz):0:12: ++# BZ30647 %53LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*53LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %53LG:-NAN():1:6:-nan: ++# BZ30647 %*53LG:-NAN():0:6: ++# BZ30647 %53LG:NAN():1:5:nan: ++# BZ30647 %*53LG:NAN():0:5: ++# BZ30647 %53LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*53LG:NAN(09A_Zaz):0:12: + %53LG:0X0P0:1:5:0x0: + %*53LG:0X0P0:0:5: + %53LG:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*53LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39: + %53LG:INFINITY:1:8:inf: + %*53LG:INFINITY:0:8: +-%53LG:+NAN():1:6:nan: +-%*53LG:+NAN():0:6: +-%53LG:+NAN(09A_Zaz):1:13:nan: +-%*53LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %53LG:+NAN():1:6:nan: ++# BZ30647 %*53LG:+NAN():0:6: ++# BZ30647 %53LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*53LG:+NAN(09A_Zaz):0:13: + %53LG:+0X0P0:1:6:0x0: + %*53LG:+0X0P0:0:6: + %53LG:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5LG: -0X0P+0:0:-1: + # BZ12701 %5LG: -0X0P0:0:-1: + # BZ12701 %*5LG: -0X0P0:0:-1: +-%5LG: -NAN(09A_Zaz):0:-1: +-%*5LG: -NAN(09A_Zaz):0:-1: +-%5LG: -NAN():0:-1: +-%*5LG: -NAN():0:-1: +-%5LG: NAN():1:6:nan: +-%*5LG: NAN():0:6: +-%5LG: NAN(09A_Zaz):0:-1: +-%*5LG: NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: -NAN():0:-1: ++# BZ30647 %*5LG: -NAN():0:-1: ++# BZ30647 %5LG: NAN():1:6:nan: ++# BZ30647 %*5LG: NAN():0:6: ++# BZ30647 %5LG: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: NAN(09A_Zaz):0:-1: + %5LG: 0X0P0:1:6:0x0: + %*5LG: 0X0P0:0:6: + # BZ12701 %5LG: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5LG: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: + %5LG: INFINITY:0:-1: + %*5LG: INFINITY:0:-1: +-%5LG: +NAN():0:-1: +-%*5LG: +NAN():0:-1: +-%5LG: +NAN(09A_Zaz):0:-1: +-%*5LG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: +NAN():0:-1: ++# BZ30647 %*5LG: +NAN():0:-1: ++# BZ30647 %5LG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: +NAN(09A_Zaz):0:-1: + # BZ12701 %5LG: +0X0P0:0:-1: + # BZ12701 %*5LG: +0X0P0:0:-1: + # BZ12701 %5LG: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*53LG: -0X0P+0:0:8: + %53LG: -0X0P0:1:7:-0x0: + %*53LG: -0X0P0:0:7: +-%53LG: -NAN(09A_Zaz):1:14:-nan: +-%*53LG: -NAN(09A_Zaz):0:14: +-%53LG: -NAN():1:7:-nan: +-%*53LG: -NAN():0:7: +-%53LG: NAN():1:6:nan: +-%*53LG: NAN():0:6: +-%53LG: NAN(09A_Zaz):1:13:nan: +-%*53LG: NAN(09A_Zaz):0:13: ++# BZ30647 %53LG: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*53LG: -NAN(09A_Zaz):0:14: ++# BZ30647 %53LG: -NAN():1:7:-nan: ++# BZ30647 %*53LG: -NAN():0:7: ++# BZ30647 %53LG: NAN():1:6:nan: ++# BZ30647 %*53LG: NAN():0:6: ++# BZ30647 %53LG: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*53LG: NAN(09A_Zaz):0:13: + %53LG: 0X0P0:1:6:0x0: + %*53LG: 0X0P0:0:6: + %53LG: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*53LG: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: + %53LG: INFINITY:1:9:inf: + %*53LG: INFINITY:0:9: +-%53LG: +NAN():1:7:nan: +-%*53LG: +NAN():0:7: +-%53LG: +NAN(09A_Zaz):1:14:nan: +-%*53LG: +NAN(09A_Zaz):0:14: ++# BZ30647 %53LG: +NAN():1:7:nan: ++# BZ30647 %*53LG: +NAN():0:7: ++# BZ30647 %53LG: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*53LG: +NAN(09A_Zaz):0:14: + %53LG: +0X0P0:1:7:0x0: + %*53LG: +0X0P0:0:7: + %53LG: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-a.input +index a7377d55575f2d75..b06b73ed4071a7f9 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-a.input ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-a.input +@@ -16,14 +16,14 @@ + %*La:-0x0p+0:0:7: + %La:-0x0p0:1:6:-0x0: + %*La:-0x0p0:0:6: +-%La:-nan(09A_Zaz):1:13:-nan: +-%*La:-nan(09A_Zaz):0:13: +-%La:-nan():1:6:-nan: +-%*La:-nan():0:6: +-%La:nan():1:5:nan: +-%*La:nan():0:5: +-%La:nan(09A_Zaz):1:12:nan: +-%*La:nan(09A_Zaz):0:12: ++# BZ30647 %La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*La:-nan(09A_Zaz):0:13: ++# BZ30647 %La:-nan():1:6:-nan: ++# BZ30647 %*La:-nan():0:6: ++# BZ30647 %La:nan():1:5:nan: ++# BZ30647 %*La:nan():0:5: ++# BZ30647 %La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*La:nan(09A_Zaz):0:12: + %La:0x0p0:1:5:0x0: + %*La:0x0p0:0:5: + %La:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*La:0xf.ffffffffffffbffffffffffffcp+1020:0:36: + %La:infinity:1:8:inf: + %*La:infinity:0:8: +-%La:+nan():1:6:nan: +-%*La:+nan():0:6: +-%La:+nan(09A_Zaz):1:13:nan: +-%*La:+nan(09A_Zaz):0:13: ++# BZ30647 %La:+nan():1:6:nan: ++# BZ30647 %*La:+nan():0:6: ++# BZ30647 %La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*La:+nan(09A_Zaz):0:13: + %La:+0x0p0:1:6:0x0: + %*La:+0x0p0:0:6: + %La:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1La:-0x0p+0:0:-1: + %1La:-0x0p0:0:-1: + %*1La:-0x0p0:0:-1: +-%1La:-nan(09A_Zaz):0:-1: +-%*1La:-nan(09A_Zaz):0:-1: +-%1La:-nan():0:-1: +-%*1La:-nan():0:-1: +-%1La:nan():0:-1: +-%*1La:nan():0:-1: +-%1La:nan(09A_Zaz):0:-1: +-%*1La:nan(09A_Zaz):0:-1: ++# BZ30647 %1La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:-nan(09A_Zaz):0:-1: ++# BZ30647 %1La:-nan():0:-1: ++# BZ30647 %*1La:-nan():0:-1: ++# BZ30647 %1La:nan():0:-1: ++# BZ30647 %*1La:nan():0:-1: ++# BZ30647 %1La:nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:nan(09A_Zaz):0:-1: + %1La:0x0p0:1:1:0x0: + %*1La:0x0p0:0:1: + %1La:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1La:0xf.ffffffffffffbffffffffffffcp+1020:0:1: + %1La:infinity:0:-1: + %*1La:infinity:0:-1: +-%1La:+nan():0:-1: +-%*1La:+nan():0:-1: +-%1La:+nan(09A_Zaz):0:-1: +-%*1La:+nan(09A_Zaz):0:-1: ++# BZ30647 %1La:+nan():0:-1: ++# BZ30647 %*1La:+nan():0:-1: ++# BZ30647 %1La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:+nan(09A_Zaz):0:-1: + %1La:+0x0p0:0:-1: + %*1La:+0x0p0:0:-1: + %1La:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2La:-0x0p+0:0:2: + %2La:-0x0p0:1:2:-0x0: + %*2La:-0x0p0:0:2: +-%2La:-nan(09A_Zaz):0:-1: +-%*2La:-nan(09A_Zaz):0:-1: +-%2La:-nan():0:-1: +-%*2La:-nan():0:-1: +-%2La:nan():0:-1: +-%*2La:nan():0:-1: +-%2La:nan(09A_Zaz):0:-1: +-%*2La:nan(09A_Zaz):0:-1: ++# BZ30647 %2La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:-nan(09A_Zaz):0:-1: ++# BZ30647 %2La:-nan():0:-1: ++# BZ30647 %*2La:-nan():0:-1: ++# BZ30647 %2La:nan():0:-1: ++# BZ30647 %*2La:nan():0:-1: ++# BZ30647 %2La:nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:nan(09A_Zaz):0:-1: + # BZ12701 %2La:0x0p0:0:-1: + # BZ12701 %*2La:0x0p0:0:-1: + # BZ12701 %2La:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2La:0xf.ffffffffffffbffffffffffffcp+1020:0:-1: + %2La:infinity:0:-1: + %*2La:infinity:0:-1: +-%2La:+nan():0:-1: +-%*2La:+nan():0:-1: +-%2La:+nan(09A_Zaz):0:-1: +-%*2La:+nan(09A_Zaz):0:-1: ++# BZ30647 %2La:+nan():0:-1: ++# BZ30647 %*2La:+nan():0:-1: ++# BZ30647 %2La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:+nan(09A_Zaz):0:-1: + %2La:+0x0p0:1:2:0x0: + %*2La:+0x0p0:0:2: + %2La:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3La:-0x0p+0:0:-1: + # BZ12701 %3La:-0x0p0:0:-1: + # BZ12701 %*3La:-0x0p0:0:-1: +-%3La:-nan(09A_Zaz):0:-1: +-%*3La:-nan(09A_Zaz):0:-1: +-%3La:-nan():0:-1: +-%*3La:-nan():0:-1: +-%3La:nan():1:3:nan: +-%*3La:nan():0:3: +-%3La:nan(09A_Zaz):1:3:nan: +-%*3La:nan(09A_Zaz):0:3: ++# BZ30647 %3La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3La:-nan(09A_Zaz):0:-1: ++# BZ30647 %3La:-nan():0:-1: ++# BZ30647 %*3La:-nan():0:-1: ++# BZ30647 %3La:nan():1:3:nan: ++# BZ30647 %*3La:nan():0:3: ++# BZ30647 %3La:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3La:nan(09A_Zaz):0:3: + %3La:0x0p0:1:3:0x0: + %*3La:0x0p0:0:3: + %3La:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3La:0xf.ffffffffffffbffffffffffffcp+1020:0:3: + %3La:infinity:1:3:inf: + %*3La:infinity:0:3: +-%3La:+nan():0:-1: +-%*3La:+nan():0:-1: +-%3La:+nan(09A_Zaz):0:-1: +-%*3La:+nan(09A_Zaz):0:-1: ++# BZ30647 %3La:+nan():0:-1: ++# BZ30647 %*3La:+nan():0:-1: ++# BZ30647 %3La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3La:+nan(09A_Zaz):0:-1: + # BZ12701 %3La:+0x0p0:0:-1: + # BZ12701 %*3La:+0x0p0:0:-1: + # BZ12701 %3La:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4La:-0x0p+0:0:4: + %4La:-0x0p0:1:4:-0x0: + %*4La:-0x0p0:0:4: +-%4La:-nan(09A_Zaz):1:4:-nan: +-%*4La:-nan(09A_Zaz):0:4: +-%4La:-nan():1:4:-nan: +-%*4La:-nan():0:4: +-%4La:nan():0:-1: +-%*4La:nan():0:-1: +-%4La:nan(09A_Zaz):0:-1: +-%*4La:nan(09A_Zaz):0:-1: ++# BZ30647 %4La:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4La:-nan(09A_Zaz):0:4: ++# BZ30647 %4La:-nan():1:4:-nan: ++# BZ30647 %*4La:-nan():0:4: ++# BZ30647 %4La:nan():0:-1: ++# BZ30647 %*4La:nan():0:-1: ++# BZ30647 %4La:nan(09A_Zaz):0:-1: ++# BZ30647 %*4La:nan(09A_Zaz):0:-1: + # BZ12701 %4La:0x0p0:0:-1: + # BZ12701 %*4La:0x0p0:0:-1: + # BZ12701 %4La:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4La:0xf.ffffffffffffbffffffffffffcp+1020:0:4: + %4La:infinity:0:-1: + %*4La:infinity:0:-1: +-%4La:+nan():1:4:nan: +-%*4La:+nan():0:4: +-%4La:+nan(09A_Zaz):1:4:nan: +-%*4La:+nan(09A_Zaz):0:4: ++# BZ30647 %4La:+nan():1:4:nan: ++# BZ30647 %*4La:+nan():0:4: ++# BZ30647 %4La:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4La:+nan(09A_Zaz):0:4: + %4La:+0x0p0:1:4:0x0: + %*4La:+0x0p0:0:4: + %4La:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5La:-0x0p+0:0:-1: + # BZ12701 %5La:-0x0p0:0:-1: + # BZ12701 %*5La:-0x0p0:0:-1: +-%5La:-nan(09A_Zaz):0:-1: +-%*5La:-nan(09A_Zaz):0:-1: +-%5La:-nan():0:-1: +-%*5La:-nan():0:-1: +-%5La:nan():1:5:nan: +-%*5La:nan():0:5: +-%5La:nan(09A_Zaz):0:-1: +-%*5La:nan(09A_Zaz):0:-1: ++# BZ30647 %5La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:-nan(09A_Zaz):0:-1: ++# BZ30647 %5La:-nan():0:-1: ++# BZ30647 %*5La:-nan():0:-1: ++# BZ30647 %5La:nan():1:5:nan: ++# BZ30647 %*5La:nan():0:5: ++# BZ30647 %5La:nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:nan(09A_Zaz):0:-1: + %5La:0x0p0:1:5:0x0: + %*5La:0x0p0:0:5: + # BZ12701 %5La:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5La:0xf.ffffffffffffbffffffffffffcp+1020:0:5: + %5La:infinity:0:-1: + %*5La:infinity:0:-1: +-%5La:+nan():0:-1: +-%*5La:+nan():0:-1: +-%5La:+nan(09A_Zaz):0:-1: +-%*5La:+nan(09A_Zaz):0:-1: ++# BZ30647 %5La:+nan():0:-1: ++# BZ30647 %*5La:+nan():0:-1: ++# BZ30647 %5La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:+nan(09A_Zaz):0:-1: + # BZ12701 %5La:+0x0p0:0:-1: + # BZ12701 %*5La:+0x0p0:0:-1: + # BZ12701 %5La:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6La:-0x0p+0:0:-1: + %6La:-0x0p0:1:6:-0x0: + %*6La:-0x0p0:0:6: +-%6La:-nan(09A_Zaz):0:-1: +-%*6La:-nan(09A_Zaz):0:-1: +-%6La:-nan():1:6:-nan: +-%*6La:-nan():0:6: +-%6La:nan():1:5:nan: +-%*6La:nan():0:5: +-%6La:nan(09A_Zaz):0:-1: +-%*6La:nan(09A_Zaz):0:-1: ++# BZ30647 %6La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:-nan(09A_Zaz):0:-1: ++# BZ30647 %6La:-nan():1:6:-nan: ++# BZ30647 %*6La:-nan():0:6: ++# BZ30647 %6La:nan():1:5:nan: ++# BZ30647 %*6La:nan():0:5: ++# BZ30647 %6La:nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:nan(09A_Zaz):0:-1: + %6La:0x0p0:1:5:0x0: + %*6La:0x0p0:0:5: + %6La:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6La:0xf.ffffffffffffbffffffffffffcp+1020:0:6: + %6La:infinity:0:-1: + %*6La:infinity:0:-1: +-%6La:+nan():1:6:nan: +-%*6La:+nan():0:6: +-%6La:+nan(09A_Zaz):0:-1: +-%*6La:+nan(09A_Zaz):0:-1: ++# BZ30647 %6La:+nan():1:6:nan: ++# BZ30647 %*6La:+nan():0:6: ++# BZ30647 %6La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:+nan(09A_Zaz):0:-1: + %6La:+0x0p0:1:6:0x0: + %*6La:+0x0p0:0:6: + # BZ12701 %6La:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*33La:-0x0p+0:0:7: + %33La:-0x0p0:1:6:-0x0: + %*33La:-0x0p0:0:6: +-%33La:-nan(09A_Zaz):1:13:-nan: +-%*33La:-nan(09A_Zaz):0:13: +-%33La:-nan():1:6:-nan: +-%*33La:-nan():0:6: +-%33La:nan():1:5:nan: +-%*33La:nan():0:5: +-%33La:nan(09A_Zaz):1:12:nan: +-%*33La:nan(09A_Zaz):0:12: ++# BZ30647 %33La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*33La:-nan(09A_Zaz):0:13: ++# BZ30647 %33La:-nan():1:6:-nan: ++# BZ30647 %*33La:-nan():0:6: ++# BZ30647 %33La:nan():1:5:nan: ++# BZ30647 %*33La:nan():0:5: ++# BZ30647 %33La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*33La:nan(09A_Zaz):0:12: + %33La:0x0p0:1:5:0x0: + %*33La:0x0p0:0:5: + %33La:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*33La:0xf.ffffffffffffbffffffffffffcp+1020:0:33: + %33La:infinity:1:8:inf: + %*33La:infinity:0:8: +-%33La:+nan():1:6:nan: +-%*33La:+nan():0:6: +-%33La:+nan(09A_Zaz):1:13:nan: +-%*33La:+nan(09A_Zaz):0:13: ++# BZ30647 %33La:+nan():1:6:nan: ++# BZ30647 %*33La:+nan():0:6: ++# BZ30647 %33La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*33La:+nan(09A_Zaz):0:13: + %33La:+0x0p0:1:6:0x0: + %*33La:+0x0p0:0:6: + %33La:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*50La:-0x0p+0:0:7: + %50La:-0x0p0:1:6:-0x0: + %*50La:-0x0p0:0:6: +-%50La:-nan(09A_Zaz):1:13:-nan: +-%*50La:-nan(09A_Zaz):0:13: +-%50La:-nan():1:6:-nan: +-%*50La:-nan():0:6: +-%50La:nan():1:5:nan: +-%*50La:nan():0:5: +-%50La:nan(09A_Zaz):1:12:nan: +-%*50La:nan(09A_Zaz):0:12: ++# BZ30647 %50La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*50La:-nan(09A_Zaz):0:13: ++# BZ30647 %50La:-nan():1:6:-nan: ++# BZ30647 %*50La:-nan():0:6: ++# BZ30647 %50La:nan():1:5:nan: ++# BZ30647 %*50La:nan():0:5: ++# BZ30647 %50La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*50La:nan(09A_Zaz):0:12: + %50La:0x0p0:1:5:0x0: + %*50La:0x0p0:0:5: + %50La:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*50La:0xf.ffffffffffffbffffffffffffcp+1020:0:36: + %50La:infinity:1:8:inf: + %*50La:infinity:0:8: +-%50La:+nan():1:6:nan: +-%*50La:+nan():0:6: +-%50La:+nan(09A_Zaz):1:13:nan: +-%*50La:+nan(09A_Zaz):0:13: ++# BZ30647 %50La:+nan():1:6:nan: ++# BZ30647 %*50La:+nan():0:6: ++# BZ30647 %50La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*50La:+nan(09A_Zaz):0:13: + %50La:+0x0p0:1:6:0x0: + %*50La:+0x0p0:0:6: + %50La:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5La: -0x0p+0:0:-1: + # BZ12701 %5La: -0x0p0:0:-1: + # BZ12701 %*5La: -0x0p0:0:-1: +-%5La: -nan(09A_Zaz):0:-1: +-%*5La: -nan(09A_Zaz):0:-1: +-%5La: -nan():0:-1: +-%*5La: -nan():0:-1: +-%5La: nan():1:6:nan: +-%*5La: nan():0:6: +-%5La: nan(09A_Zaz):0:-1: +-%*5La: nan(09A_Zaz):0:-1: ++# BZ30647 %5La: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: -nan(09A_Zaz):0:-1: ++# BZ30647 %5La: -nan():0:-1: ++# BZ30647 %*5La: -nan():0:-1: ++# BZ30647 %5La: nan():1:6:nan: ++# BZ30647 %*5La: nan():0:6: ++# BZ30647 %5La: nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: nan(09A_Zaz):0:-1: + %5La: 0x0p0:1:6:0x0: + %*5La: 0x0p0:0:6: + # BZ12701 %5La: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5La: 0xf.ffffffffffffbffffffffffffcp+1020:0:6: + %5La: infinity:0:-1: + %*5La: infinity:0:-1: +-%5La: +nan():0:-1: +-%*5La: +nan():0:-1: +-%5La: +nan(09A_Zaz):0:-1: +-%*5La: +nan(09A_Zaz):0:-1: ++# BZ30647 %5La: +nan():0:-1: ++# BZ30647 %*5La: +nan():0:-1: ++# BZ30647 %5La: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: +nan(09A_Zaz):0:-1: + # BZ12701 %5La: +0x0p0:0:-1: + # BZ12701 %*5La: +0x0p0:0:-1: + # BZ12701 %5La: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*50La: -0x0p+0:0:8: + %50La: -0x0p0:1:7:-0x0: + %*50La: -0x0p0:0:7: +-%50La: -nan(09A_Zaz):1:14:-nan: +-%*50La: -nan(09A_Zaz):0:14: +-%50La: -nan():1:7:-nan: +-%*50La: -nan():0:7: +-%50La: nan():1:6:nan: +-%*50La: nan():0:6: +-%50La: nan(09A_Zaz):1:13:nan: +-%*50La: nan(09A_Zaz):0:13: ++# BZ30647 %50La: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*50La: -nan(09A_Zaz):0:14: ++# BZ30647 %50La: -nan():1:7:-nan: ++# BZ30647 %*50La: -nan():0:7: ++# BZ30647 %50La: nan():1:6:nan: ++# BZ30647 %*50La: nan():0:6: ++# BZ30647 %50La: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*50La: nan(09A_Zaz):0:13: + %50La: 0x0p0:1:6:0x0: + %*50La: 0x0p0:0:6: + %50La: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*50La: 0xf.ffffffffffffbffffffffffffcp+1020:0:37: + %50La: infinity:1:9:inf: + %*50La: infinity:0:9: +-%50La: +nan():1:7:nan: +-%*50La: +nan():0:7: +-%50La: +nan(09A_Zaz):1:14:nan: +-%*50La: +nan(09A_Zaz):0:14: ++# BZ30647 %50La: +nan():1:7:nan: ++# BZ30647 %*50La: +nan():0:7: ++# BZ30647 %50La: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*50La: +nan(09A_Zaz):0:14: + %50La: +0x0p0:1:7:0x0: + %*50La: +0x0p0:0:7: + %50La: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-aa.input +index 1dc2c558ced97273..19ebaffa122fe5ea 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-aa.input ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-aa.input +@@ -16,14 +16,14 @@ + %*LA:-0X0P+0:0:7: + %LA:-0X0P0:1:6:-0x0: + %*LA:-0X0P0:0:6: +-%LA:-NAN(09A_Zaz):1:13:-nan: +-%*LA:-NAN(09A_Zaz):0:13: +-%LA:-NAN():1:6:-nan: +-%*LA:-NAN():0:6: +-%LA:NAN():1:5:nan: +-%*LA:NAN():0:5: +-%LA:NAN(09A_Zaz):1:12:nan: +-%*LA:NAN(09A_Zaz):0:12: ++# BZ30647 %LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %LA:-NAN():1:6:-nan: ++# BZ30647 %*LA:-NAN():0:6: ++# BZ30647 %LA:NAN():1:5:nan: ++# BZ30647 %*LA:NAN():0:5: ++# BZ30647 %LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LA:NAN(09A_Zaz):0:12: + %LA:0X0P0:1:5:0x0: + %*LA:0X0P0:0:5: + %LA:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36: + %LA:INFINITY:1:8:inf: + %*LA:INFINITY:0:8: +-%LA:+NAN():1:6:nan: +-%*LA:+NAN():0:6: +-%LA:+NAN(09A_Zaz):1:13:nan: +-%*LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %LA:+NAN():1:6:nan: ++# BZ30647 %*LA:+NAN():0:6: ++# BZ30647 %LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LA:+NAN(09A_Zaz):0:13: + %LA:+0X0P0:1:6:0x0: + %*LA:+0X0P0:0:6: + %LA:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1LA:-0X0P+0:0:-1: + %1LA:-0X0P0:0:-1: + %*1LA:-0X0P0:0:-1: +-%1LA:-NAN(09A_Zaz):0:-1: +-%*1LA:-NAN(09A_Zaz):0:-1: +-%1LA:-NAN():0:-1: +-%*1LA:-NAN():0:-1: +-%1LA:NAN():0:-1: +-%*1LA:NAN():0:-1: +-%1LA:NAN(09A_Zaz):0:-1: +-%*1LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:-NAN():0:-1: ++# BZ30647 %*1LA:-NAN():0:-1: ++# BZ30647 %1LA:NAN():0:-1: ++# BZ30647 %*1LA:NAN():0:-1: ++# BZ30647 %1LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:NAN(09A_Zaz):0:-1: + %1LA:0X0P0:1:1:0x0: + %*1LA:0X0P0:0:1: + %1LA:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:1: + %1LA:INFINITY:0:-1: + %*1LA:INFINITY:0:-1: +-%1LA:+NAN():0:-1: +-%*1LA:+NAN():0:-1: +-%1LA:+NAN(09A_Zaz):0:-1: +-%*1LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:+NAN():0:-1: ++# BZ30647 %*1LA:+NAN():0:-1: ++# BZ30647 %1LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:+NAN(09A_Zaz):0:-1: + %1LA:+0X0P0:0:-1: + %*1LA:+0X0P0:0:-1: + %1LA:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LA:-0X0P+0:0:2: + %2LA:-0X0P0:1:2:-0x0: + %*2LA:-0X0P0:0:2: +-%2LA:-NAN(09A_Zaz):0:-1: +-%*2LA:-NAN(09A_Zaz):0:-1: +-%2LA:-NAN():0:-1: +-%*2LA:-NAN():0:-1: +-%2LA:NAN():0:-1: +-%*2LA:NAN():0:-1: +-%2LA:NAN(09A_Zaz):0:-1: +-%*2LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:-NAN():0:-1: ++# BZ30647 %*2LA:-NAN():0:-1: ++# BZ30647 %2LA:NAN():0:-1: ++# BZ30647 %*2LA:NAN():0:-1: ++# BZ30647 %2LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:NAN(09A_Zaz):0:-1: + # BZ12701 %2LA:0X0P0:0:-1: + # BZ12701 %*2LA:0X0P0:0:-1: + # BZ12701 %2LA:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: + %2LA:INFINITY:0:-1: + %*2LA:INFINITY:0:-1: +-%2LA:+NAN():0:-1: +-%*2LA:+NAN():0:-1: +-%2LA:+NAN(09A_Zaz):0:-1: +-%*2LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:+NAN():0:-1: ++# BZ30647 %*2LA:+NAN():0:-1: ++# BZ30647 %2LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:+NAN(09A_Zaz):0:-1: + %2LA:+0X0P0:1:2:0x0: + %*2LA:+0X0P0:0:2: + %2LA:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LA:-0X0P+0:0:-1: + # BZ12701 %3LA:-0X0P0:0:-1: + # BZ12701 %*3LA:-0X0P0:0:-1: +-%3LA:-NAN(09A_Zaz):0:-1: +-%*3LA:-NAN(09A_Zaz):0:-1: +-%3LA:-NAN():0:-1: +-%*3LA:-NAN():0:-1: +-%3LA:NAN():1:3:nan: +-%*3LA:NAN():0:3: +-%3LA:NAN(09A_Zaz):1:3:nan: +-%*3LA:NAN(09A_Zaz):0:3: ++# BZ30647 %3LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LA:-NAN():0:-1: ++# BZ30647 %*3LA:-NAN():0:-1: ++# BZ30647 %3LA:NAN():1:3:nan: ++# BZ30647 %*3LA:NAN():0:3: ++# BZ30647 %3LA:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LA:NAN(09A_Zaz):0:3: + %3LA:0X0P0:1:3:0x0: + %*3LA:0X0P0:0:3: + %3LA:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:3: + %3LA:INFINITY:1:3:inf: + %*3LA:INFINITY:0:3: +-%3LA:+NAN():0:-1: +-%*3LA:+NAN():0:-1: +-%3LA:+NAN(09A_Zaz):0:-1: +-%*3LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LA:+NAN():0:-1: ++# BZ30647 %*3LA:+NAN():0:-1: ++# BZ30647 %3LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LA:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LA:+0X0P0:0:-1: + # BZ12701 %*3LA:+0X0P0:0:-1: + # BZ12701 %3LA:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4LA:-0X0P+0:0:4: + %4LA:-0X0P0:1:4:-0x0: + %*4LA:-0X0P0:0:4: +-%4LA:-NAN(09A_Zaz):1:4:-nan: +-%*4LA:-NAN(09A_Zaz):0:4: +-%4LA:-NAN():1:4:-nan: +-%*4LA:-NAN():0:4: +-%4LA:NAN():0:-1: +-%*4LA:NAN():0:-1: +-%4LA:NAN(09A_Zaz):0:-1: +-%*4LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LA:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LA:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LA:-NAN():1:4:-nan: ++# BZ30647 %*4LA:-NAN():0:4: ++# BZ30647 %4LA:NAN():0:-1: ++# BZ30647 %*4LA:NAN():0:-1: ++# BZ30647 %4LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LA:NAN(09A_Zaz):0:-1: + # BZ12701 %4LA:0X0P0:0:-1: + # BZ12701 %*4LA:0X0P0:0:-1: + # BZ12701 %4LA:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4: + %4LA:INFINITY:0:-1: + %*4LA:INFINITY:0:-1: +-%4LA:+NAN():1:4:nan: +-%*4LA:+NAN():0:4: +-%4LA:+NAN(09A_Zaz):1:4:nan: +-%*4LA:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LA:+NAN():1:4:nan: ++# BZ30647 %*4LA:+NAN():0:4: ++# BZ30647 %4LA:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LA:+NAN(09A_Zaz):0:4: + %4LA:+0X0P0:1:4:0x0: + %*4LA:+0X0P0:0:4: + %4LA:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5LA:-0X0P+0:0:-1: + # BZ12701 %5LA:-0X0P0:0:-1: + # BZ12701 %*5LA:-0X0P0:0:-1: +-%5LA:-NAN(09A_Zaz):0:-1: +-%*5LA:-NAN(09A_Zaz):0:-1: +-%5LA:-NAN():0:-1: +-%*5LA:-NAN():0:-1: +-%5LA:NAN():1:5:nan: +-%*5LA:NAN():0:5: +-%5LA:NAN(09A_Zaz):0:-1: +-%*5LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:-NAN():0:-1: ++# BZ30647 %*5LA:-NAN():0:-1: ++# BZ30647 %5LA:NAN():1:5:nan: ++# BZ30647 %*5LA:NAN():0:5: ++# BZ30647 %5LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:NAN(09A_Zaz):0:-1: + %5LA:0X0P0:1:5:0x0: + %*5LA:0X0P0:0:5: + # BZ12701 %5LA:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5: + %5LA:INFINITY:0:-1: + %*5LA:INFINITY:0:-1: +-%5LA:+NAN():0:-1: +-%*5LA:+NAN():0:-1: +-%5LA:+NAN(09A_Zaz):0:-1: +-%*5LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:+NAN():0:-1: ++# BZ30647 %*5LA:+NAN():0:-1: ++# BZ30647 %5LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:+NAN(09A_Zaz):0:-1: + # BZ12701 %5LA:+0X0P0:0:-1: + # BZ12701 %*5LA:+0X0P0:0:-1: + # BZ12701 %5LA:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6LA:-0X0P+0:0:-1: + %6LA:-0X0P0:1:6:-0x0: + %*6LA:-0X0P0:0:6: +-%6LA:-NAN(09A_Zaz):0:-1: +-%*6LA:-NAN(09A_Zaz):0:-1: +-%6LA:-NAN():1:6:-nan: +-%*6LA:-NAN():0:6: +-%6LA:NAN():1:5:nan: +-%*6LA:NAN():0:5: +-%6LA:NAN(09A_Zaz):0:-1: +-%*6LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:-NAN():1:6:-nan: ++# BZ30647 %*6LA:-NAN():0:6: ++# BZ30647 %6LA:NAN():1:5:nan: ++# BZ30647 %*6LA:NAN():0:5: ++# BZ30647 %6LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:NAN(09A_Zaz):0:-1: + %6LA:0X0P0:1:5:0x0: + %*6LA:0X0P0:0:5: + %6LA:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: + %6LA:INFINITY:0:-1: + %*6LA:INFINITY:0:-1: +-%6LA:+NAN():1:6:nan: +-%*6LA:+NAN():0:6: +-%6LA:+NAN(09A_Zaz):0:-1: +-%*6LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:+NAN():1:6:nan: ++# BZ30647 %*6LA:+NAN():0:6: ++# BZ30647 %6LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:+NAN(09A_Zaz):0:-1: + %6LA:+0X0P0:1:6:0x0: + %*6LA:+0X0P0:0:6: + # BZ12701 %6LA:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*33LA:-0X0P+0:0:7: + %33LA:-0X0P0:1:6:-0x0: + %*33LA:-0X0P0:0:6: +-%33LA:-NAN(09A_Zaz):1:13:-nan: +-%*33LA:-NAN(09A_Zaz):0:13: +-%33LA:-NAN():1:6:-nan: +-%*33LA:-NAN():0:6: +-%33LA:NAN():1:5:nan: +-%*33LA:NAN():0:5: +-%33LA:NAN(09A_Zaz):1:12:nan: +-%*33LA:NAN(09A_Zaz):0:12: ++# BZ30647 %33LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*33LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %33LA:-NAN():1:6:-nan: ++# BZ30647 %*33LA:-NAN():0:6: ++# BZ30647 %33LA:NAN():1:5:nan: ++# BZ30647 %*33LA:NAN():0:5: ++# BZ30647 %33LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*33LA:NAN(09A_Zaz):0:12: + %33LA:0X0P0:1:5:0x0: + %*33LA:0X0P0:0:5: + %33LA:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*33LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:33: + %33LA:INFINITY:1:8:inf: + %*33LA:INFINITY:0:8: +-%33LA:+NAN():1:6:nan: +-%*33LA:+NAN():0:6: +-%33LA:+NAN(09A_Zaz):1:13:nan: +-%*33LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %33LA:+NAN():1:6:nan: ++# BZ30647 %*33LA:+NAN():0:6: ++# BZ30647 %33LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*33LA:+NAN(09A_Zaz):0:13: + %33LA:+0X0P0:1:6:0x0: + %*33LA:+0X0P0:0:6: + %33LA:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*50LA:-0X0P+0:0:7: + %50LA:-0X0P0:1:6:-0x0: + %*50LA:-0X0P0:0:6: +-%50LA:-NAN(09A_Zaz):1:13:-nan: +-%*50LA:-NAN(09A_Zaz):0:13: +-%50LA:-NAN():1:6:-nan: +-%*50LA:-NAN():0:6: +-%50LA:NAN():1:5:nan: +-%*50LA:NAN():0:5: +-%50LA:NAN(09A_Zaz):1:12:nan: +-%*50LA:NAN(09A_Zaz):0:12: ++# BZ30647 %50LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*50LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %50LA:-NAN():1:6:-nan: ++# BZ30647 %*50LA:-NAN():0:6: ++# BZ30647 %50LA:NAN():1:5:nan: ++# BZ30647 %*50LA:NAN():0:5: ++# BZ30647 %50LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*50LA:NAN(09A_Zaz):0:12: + %50LA:0X0P0:1:5:0x0: + %*50LA:0X0P0:0:5: + %50LA:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*50LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36: + %50LA:INFINITY:1:8:inf: + %*50LA:INFINITY:0:8: +-%50LA:+NAN():1:6:nan: +-%*50LA:+NAN():0:6: +-%50LA:+NAN(09A_Zaz):1:13:nan: +-%*50LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %50LA:+NAN():1:6:nan: ++# BZ30647 %*50LA:+NAN():0:6: ++# BZ30647 %50LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*50LA:+NAN(09A_Zaz):0:13: + %50LA:+0X0P0:1:6:0x0: + %*50LA:+0X0P0:0:6: + %50LA:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5LA: -0X0P+0:0:-1: + # BZ12701 %5LA: -0X0P0:0:-1: + # BZ12701 %*5LA: -0X0P0:0:-1: +-%5LA: -NAN(09A_Zaz):0:-1: +-%*5LA: -NAN(09A_Zaz):0:-1: +-%5LA: -NAN():0:-1: +-%*5LA: -NAN():0:-1: +-%5LA: NAN():1:6:nan: +-%*5LA: NAN():0:6: +-%5LA: NAN(09A_Zaz):0:-1: +-%*5LA: NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: -NAN():0:-1: ++# BZ30647 %*5LA: -NAN():0:-1: ++# BZ30647 %5LA: NAN():1:6:nan: ++# BZ30647 %*5LA: NAN():0:6: ++# BZ30647 %5LA: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: NAN(09A_Zaz):0:-1: + %5LA: 0X0P0:1:6:0x0: + %*5LA: 0X0P0:0:6: + # BZ12701 %5LA: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5LA: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: + %5LA: INFINITY:0:-1: + %*5LA: INFINITY:0:-1: +-%5LA: +NAN():0:-1: +-%*5LA: +NAN():0:-1: +-%5LA: +NAN(09A_Zaz):0:-1: +-%*5LA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: +NAN():0:-1: ++# BZ30647 %*5LA: +NAN():0:-1: ++# BZ30647 %5LA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: +NAN(09A_Zaz):0:-1: + # BZ12701 %5LA: +0X0P0:0:-1: + # BZ12701 %*5LA: +0X0P0:0:-1: + # BZ12701 %5LA: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*50LA: -0X0P+0:0:8: + %50LA: -0X0P0:1:7:-0x0: + %*50LA: -0X0P0:0:7: +-%50LA: -NAN(09A_Zaz):1:14:-nan: +-%*50LA: -NAN(09A_Zaz):0:14: +-%50LA: -NAN():1:7:-nan: +-%*50LA: -NAN():0:7: +-%50LA: NAN():1:6:nan: +-%*50LA: NAN():0:6: +-%50LA: NAN(09A_Zaz):1:13:nan: +-%*50LA: NAN(09A_Zaz):0:13: ++# BZ30647 %50LA: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*50LA: -NAN(09A_Zaz):0:14: ++# BZ30647 %50LA: -NAN():1:7:-nan: ++# BZ30647 %*50LA: -NAN():0:7: ++# BZ30647 %50LA: NAN():1:6:nan: ++# BZ30647 %*50LA: NAN():0:6: ++# BZ30647 %50LA: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*50LA: NAN(09A_Zaz):0:13: + %50LA: 0X0P0:1:6:0x0: + %*50LA: 0X0P0:0:6: + %50LA: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*50LA: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: + %50LA: INFINITY:1:9:inf: + %*50LA: INFINITY:0:9: +-%50LA: +NAN():1:7:nan: +-%*50LA: +NAN():0:7: +-%50LA: +NAN(09A_Zaz):1:14:nan: +-%*50LA: +NAN(09A_Zaz):0:14: ++# BZ30647 %50LA: +NAN():1:7:nan: ++# BZ30647 %*50LA: +NAN():0:7: ++# BZ30647 %50LA: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*50LA: +NAN(09A_Zaz):0:14: + %50LA: +0X0P0:1:7:0x0: + %*50LA: +0X0P0:0:7: + %50LA: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-e.input +index f61b0d0fd382c113..7887d5fa62c09da5 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-e.input ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-e.input +@@ -16,14 +16,14 @@ + %*Le:-0e+0:0:5: + %Le:-0e0:1:4:-0x0: + %*Le:-0e0:0:4: +-%Le:-nan(09A_Zaz):1:13:-nan: +-%*Le:-nan(09A_Zaz):0:13: +-%Le:-nan():1:6:-nan: +-%*Le:-nan():0:6: +-%Le:nan():1:5:nan: +-%*Le:nan():0:5: +-%Le:nan(09A_Zaz):1:12:nan: +-%*Le:nan(09A_Zaz):0:12: ++# BZ30647 %Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Le:-nan(09A_Zaz):0:13: ++# BZ30647 %Le:-nan():1:6:-nan: ++# BZ30647 %*Le:-nan():0:6: ++# BZ30647 %Le:nan():1:5:nan: ++# BZ30647 %*Le:nan():0:5: ++# BZ30647 %Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Le:nan(09A_Zaz):0:12: + %Le:0e0:1:3:0x0: + %*Le:0e0:0:3: + %Le:0e+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*Le:1.79769313486231580793728971405301199e+308:0:42: + %Le:infinity:1:8:inf: + %*Le:infinity:0:8: +-%Le:+nan():1:6:nan: +-%*Le:+nan():0:6: +-%Le:+nan(09A_Zaz):1:13:nan: +-%*Le:+nan(09A_Zaz):0:13: ++# BZ30647 %Le:+nan():1:6:nan: ++# BZ30647 %*Le:+nan():0:6: ++# BZ30647 %Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Le:+nan(09A_Zaz):0:13: + %Le:+0e0:1:4:0x0: + %*Le:+0e0:0:4: + %Le:+0e+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1Le:-0e+0:0:-1: + %1Le:-0e0:0:-1: + %*1Le:-0e0:0:-1: +-%1Le:-nan(09A_Zaz):0:-1: +-%*1Le:-nan(09A_Zaz):0:-1: +-%1Le:-nan():0:-1: +-%*1Le:-nan():0:-1: +-%1Le:nan():0:-1: +-%*1Le:nan():0:-1: +-%1Le:nan(09A_Zaz):0:-1: +-%*1Le:nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:-nan():0:-1: ++# BZ30647 %*1Le:-nan():0:-1: ++# BZ30647 %1Le:nan():0:-1: ++# BZ30647 %*1Le:nan():0:-1: ++# BZ30647 %1Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:nan(09A_Zaz):0:-1: + %1Le:0e0:1:1:0x0: + %*1Le:0e0:0:1: + %1Le:0e+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Le:1.79769313486231580793728971405301199e+308:0:1: + %1Le:infinity:0:-1: + %*1Le:infinity:0:-1: +-%1Le:+nan():0:-1: +-%*1Le:+nan():0:-1: +-%1Le:+nan(09A_Zaz):0:-1: +-%*1Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:+nan():0:-1: ++# BZ30647 %*1Le:+nan():0:-1: ++# BZ30647 %1Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:+nan(09A_Zaz):0:-1: + %1Le:+0e0:0:-1: + %*1Le:+0e0:0:-1: + %1Le:+0e+0:0:-1: +@@ -140,14 +140,14 @@ + %*2Le:-0e+0:0:2: + %2Le:-0e0:1:2:-0x0: + %*2Le:-0e0:0:2: +-%2Le:-nan(09A_Zaz):0:-1: +-%*2Le:-nan(09A_Zaz):0:-1: +-%2Le:-nan():0:-1: +-%*2Le:-nan():0:-1: +-%2Le:nan():0:-1: +-%*2Le:nan():0:-1: +-%2Le:nan(09A_Zaz):0:-1: +-%*2Le:nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:-nan():0:-1: ++# BZ30647 %*2Le:-nan():0:-1: ++# BZ30647 %2Le:nan():0:-1: ++# BZ30647 %*2Le:nan():0:-1: ++# BZ30647 %2Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:nan(09A_Zaz):0:-1: + # BZ12701 %2Le:0e0:0:-1: + # BZ12701 %*2Le:0e0:0:-1: + # BZ12701 %2Le:0e+0:0:-1: +@@ -164,10 +164,10 @@ + %*2Le:1.79769313486231580793728971405301199e+308:0:2: + %2Le:infinity:0:-1: + %*2Le:infinity:0:-1: +-%2Le:+nan():0:-1: +-%*2Le:+nan():0:-1: +-%2Le:+nan(09A_Zaz):0:-1: +-%*2Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:+nan():0:-1: ++# BZ30647 %*2Le:+nan():0:-1: ++# BZ30647 %2Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:+nan(09A_Zaz):0:-1: + %2Le:+0e0:1:2:0x0: + %*2Le:+0e0:0:2: + %2Le:+0e+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3Le:-0e+0:0:-1: + # BZ12701 %3Le:-0e0:0:-1: + # BZ12701 %*3Le:-0e0:0:-1: +-%3Le:-nan(09A_Zaz):0:-1: +-%*3Le:-nan(09A_Zaz):0:-1: +-%3Le:-nan():0:-1: +-%*3Le:-nan():0:-1: +-%3Le:nan():1:3:nan: +-%*3Le:nan():0:3: +-%3Le:nan(09A_Zaz):1:3:nan: +-%*3Le:nan(09A_Zaz):0:3: ++# BZ30647 %3Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Le:-nan():0:-1: ++# BZ30647 %*3Le:-nan():0:-1: ++# BZ30647 %3Le:nan():1:3:nan: ++# BZ30647 %*3Le:nan():0:3: ++# BZ30647 %3Le:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Le:nan(09A_Zaz):0:3: + %3Le:0e0:1:3:0x0: + %*3Le:0e0:0:3: + # BZ12701 %3Le:0e+0:0:-1: +@@ -226,10 +226,10 @@ + %*3Le:1.79769313486231580793728971405301199e+308:0:3: + %3Le:infinity:1:3:inf: + %*3Le:infinity:0:3: +-%3Le:+nan():0:-1: +-%*3Le:+nan():0:-1: +-%3Le:+nan(09A_Zaz):0:-1: +-%*3Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Le:+nan():0:-1: ++# BZ30647 %*3Le:+nan():0:-1: ++# BZ30647 %3Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le:+nan(09A_Zaz):0:-1: + # BZ12701 %3Le:+0e0:0:-1: + # BZ12701 %*3Le:+0e0:0:-1: + # BZ12701 %3Le:+0e+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4Le:-0e+0:0:-1: + %4Le:-0e0:1:4:-0x0: + %*4Le:-0e0:0:4: +-%4Le:-nan(09A_Zaz):1:4:-nan: +-%*4Le:-nan(09A_Zaz):0:4: +-%4Le:-nan():1:4:-nan: +-%*4Le:-nan():0:4: +-%4Le:nan():0:-1: +-%*4Le:nan():0:-1: +-%4Le:nan(09A_Zaz):0:-1: +-%*4Le:nan(09A_Zaz):0:-1: ++# BZ30647 %4Le:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Le:-nan(09A_Zaz):0:4: ++# BZ30647 %4Le:-nan():1:4:-nan: ++# BZ30647 %*4Le:-nan():0:4: ++# BZ30647 %4Le:nan():0:-1: ++# BZ30647 %*4Le:nan():0:-1: ++# BZ30647 %4Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Le:nan(09A_Zaz):0:-1: + %4Le:0e0:1:3:0x0: + %*4Le:0e0:0:3: + %4Le:0e+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4Le:1.79769313486231580793728971405301199e+308:0:4: + %4Le:infinity:0:-1: + %*4Le:infinity:0:-1: +-%4Le:+nan():1:4:nan: +-%*4Le:+nan():0:4: +-%4Le:+nan(09A_Zaz):1:4:nan: +-%*4Le:+nan(09A_Zaz):0:4: ++# BZ30647 %4Le:+nan():1:4:nan: ++# BZ30647 %*4Le:+nan():0:4: ++# BZ30647 %4Le:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Le:+nan(09A_Zaz):0:4: + %4Le:+0e0:1:4:0x0: + %*4Le:+0e0:0:4: + # BZ12701 %4Le:+0e+0:0:-1: +@@ -326,14 +326,14 @@ + %*40Le:-0e+0:0:5: + %40Le:-0e0:1:4:-0x0: + %*40Le:-0e0:0:4: +-%40Le:-nan(09A_Zaz):1:13:-nan: +-%*40Le:-nan(09A_Zaz):0:13: +-%40Le:-nan():1:6:-nan: +-%*40Le:-nan():0:6: +-%40Le:nan():1:5:nan: +-%*40Le:nan():0:5: +-%40Le:nan(09A_Zaz):1:12:nan: +-%*40Le:nan(09A_Zaz):0:12: ++# BZ30647 %40Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*40Le:-nan(09A_Zaz):0:13: ++# BZ30647 %40Le:-nan():1:6:-nan: ++# BZ30647 %*40Le:-nan():0:6: ++# BZ30647 %40Le:nan():1:5:nan: ++# BZ30647 %*40Le:nan():0:5: ++# BZ30647 %40Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*40Le:nan(09A_Zaz):0:12: + %40Le:0e0:1:3:0x0: + %*40Le:0e0:0:3: + %40Le:0e+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40Le:1.79769313486231580793728971405301199e+308:0:40: + %40Le:infinity:1:8:inf: + %*40Le:infinity:0:8: +-%40Le:+nan():1:6:nan: +-%*40Le:+nan():0:6: +-%40Le:+nan(09A_Zaz):1:13:nan: +-%*40Le:+nan(09A_Zaz):0:13: ++# BZ30647 %40Le:+nan():1:6:nan: ++# BZ30647 %*40Le:+nan():0:6: ++# BZ30647 %40Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*40Le:+nan(09A_Zaz):0:13: + %40Le:+0e0:1:4:0x0: + %*40Le:+0e0:0:4: + %40Le:+0e+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48Le:-0e+0:0:5: + %48Le:-0e0:1:4:-0x0: + %*48Le:-0e0:0:4: +-%48Le:-nan(09A_Zaz):1:13:-nan: +-%*48Le:-nan(09A_Zaz):0:13: +-%48Le:-nan():1:6:-nan: +-%*48Le:-nan():0:6: +-%48Le:nan():1:5:nan: +-%*48Le:nan():0:5: +-%48Le:nan(09A_Zaz):1:12:nan: +-%*48Le:nan(09A_Zaz):0:12: ++# BZ30647 %48Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*48Le:-nan(09A_Zaz):0:13: ++# BZ30647 %48Le:-nan():1:6:-nan: ++# BZ30647 %*48Le:-nan():0:6: ++# BZ30647 %48Le:nan():1:5:nan: ++# BZ30647 %*48Le:nan():0:5: ++# BZ30647 %48Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*48Le:nan(09A_Zaz):0:12: + %48Le:0e0:1:3:0x0: + %*48Le:0e0:0:3: + %48Le:0e+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48Le:1.79769313486231580793728971405301199e+308:0:42: + %48Le:infinity:1:8:inf: + %*48Le:infinity:0:8: +-%48Le:+nan():1:6:nan: +-%*48Le:+nan():0:6: +-%48Le:+nan(09A_Zaz):1:13:nan: +-%*48Le:+nan(09A_Zaz):0:13: ++# BZ30647 %48Le:+nan():1:6:nan: ++# BZ30647 %*48Le:+nan():0:6: ++# BZ30647 %48Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48Le:+nan(09A_Zaz):0:13: + %48Le:+0e0:1:4:0x0: + %*48Le:+0e0:0:4: + %48Le:+0e+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3Le: -0e+0:0:-1: + # BZ12701 %3Le: -0e0:0:-1: + # BZ12701 %*3Le: -0e0:0:-1: +-%3Le: -nan(09A_Zaz):0:-1: +-%*3Le: -nan(09A_Zaz):0:-1: +-%3Le: -nan():0:-1: +-%*3Le: -nan():0:-1: +-%3Le: nan():1:4:nan: +-%*3Le: nan():0:4: +-%3Le: nan(09A_Zaz):1:4:nan: +-%*3Le: nan(09A_Zaz):0:4: ++# BZ30647 %3Le: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le: -nan(09A_Zaz):0:-1: ++# BZ30647 %3Le: -nan():0:-1: ++# BZ30647 %*3Le: -nan():0:-1: ++# BZ30647 %3Le: nan():1:4:nan: ++# BZ30647 %*3Le: nan():0:4: ++# BZ30647 %3Le: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3Le: nan(09A_Zaz):0:4: + %3Le: 0e0:1:4:0x0: + %*3Le: 0e0:0:4: + # BZ12701 %3Le: 0e+0:0:-1: +@@ -474,10 +474,10 @@ + %*3Le: 1.79769313486231580793728971405301199e+308:0:4: + %3Le: infinity:1:4:inf: + %*3Le: infinity:0:4: +-%3Le: +nan():0:-1: +-%*3Le: +nan():0:-1: +-%3Le: +nan(09A_Zaz):0:-1: +-%*3Le: +nan(09A_Zaz):0:-1: ++# BZ30647 %3Le: +nan():0:-1: ++# BZ30647 %*3Le: +nan():0:-1: ++# BZ30647 %3Le: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le: +nan(09A_Zaz):0:-1: + # BZ12701 %3Le: +0e0:0:-1: + # BZ12701 %*3Le: +0e0:0:-1: + # BZ12701 %3Le: +0e+0:0:-1: +@@ -512,14 +512,14 @@ + %*48Le: -0e+0:0:6: + %48Le: -0e0:1:5:-0x0: + %*48Le: -0e0:0:5: +-%48Le: -nan(09A_Zaz):1:14:-nan: +-%*48Le: -nan(09A_Zaz):0:14: +-%48Le: -nan():1:7:-nan: +-%*48Le: -nan():0:7: +-%48Le: nan():1:6:nan: +-%*48Le: nan():0:6: +-%48Le: nan(09A_Zaz):1:13:nan: +-%*48Le: nan(09A_Zaz):0:13: ++# BZ30647 %48Le: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*48Le: -nan(09A_Zaz):0:14: ++# BZ30647 %48Le: -nan():1:7:-nan: ++# BZ30647 %*48Le: -nan():0:7: ++# BZ30647 %48Le: nan():1:6:nan: ++# BZ30647 %*48Le: nan():0:6: ++# BZ30647 %48Le: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48Le: nan(09A_Zaz):0:13: + %48Le: 0e0:1:4:0x0: + %*48Le: 0e0:0:4: + %48Le: 0e+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48Le: 1.79769313486231580793728971405301199e+308:0:43: + %48Le: infinity:1:9:inf: + %*48Le: infinity:0:9: +-%48Le: +nan():1:7:nan: +-%*48Le: +nan():0:7: +-%48Le: +nan(09A_Zaz):1:14:nan: +-%*48Le: +nan(09A_Zaz):0:14: ++# BZ30647 %48Le: +nan():1:7:nan: ++# BZ30647 %*48Le: +nan():0:7: ++# BZ30647 %48Le: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*48Le: +nan(09A_Zaz):0:14: + %48Le: +0e0:1:5:0x0: + %*48Le: +0e0:0:5: + %48Le: +0e+0:1:6:0x0: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ee.input +index 3a543bc5366ba403..3d698c783f6644f9 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ee.input ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ee.input +@@ -16,14 +16,14 @@ + %*LE:-0E+0:0:5: + %LE:-0E0:1:4:-0x0: + %*LE:-0E0:0:4: +-%LE:-NAN(09A_Zaz):1:13:-nan: +-%*LE:-NAN(09A_Zaz):0:13: +-%LE:-NAN():1:6:-nan: +-%*LE:-NAN():0:6: +-%LE:NAN():1:5:nan: +-%*LE:NAN():0:5: +-%LE:NAN(09A_Zaz):1:12:nan: +-%*LE:NAN(09A_Zaz):0:12: ++# BZ30647 %LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %LE:-NAN():1:6:-nan: ++# BZ30647 %*LE:-NAN():0:6: ++# BZ30647 %LE:NAN():1:5:nan: ++# BZ30647 %*LE:NAN():0:5: ++# BZ30647 %LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LE:NAN(09A_Zaz):0:12: + %LE:0E0:1:3:0x0: + %*LE:0E0:0:3: + %LE:0E+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*LE:1.79769313486231580793728971405301199E+308:0:42: + %LE:INFINITY:1:8:inf: + %*LE:INFINITY:0:8: +-%LE:+NAN():1:6:nan: +-%*LE:+NAN():0:6: +-%LE:+NAN(09A_Zaz):1:13:nan: +-%*LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %LE:+NAN():1:6:nan: ++# BZ30647 %*LE:+NAN():0:6: ++# BZ30647 %LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LE:+NAN(09A_Zaz):0:13: + %LE:+0E0:1:4:0x0: + %*LE:+0E0:0:4: + %LE:+0E+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1LE:-0E+0:0:-1: + %1LE:-0E0:0:-1: + %*1LE:-0E0:0:-1: +-%1LE:-NAN(09A_Zaz):0:-1: +-%*1LE:-NAN(09A_Zaz):0:-1: +-%1LE:-NAN():0:-1: +-%*1LE:-NAN():0:-1: +-%1LE:NAN():0:-1: +-%*1LE:NAN():0:-1: +-%1LE:NAN(09A_Zaz):0:-1: +-%*1LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:-NAN():0:-1: ++# BZ30647 %*1LE:-NAN():0:-1: ++# BZ30647 %1LE:NAN():0:-1: ++# BZ30647 %*1LE:NAN():0:-1: ++# BZ30647 %1LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:NAN(09A_Zaz):0:-1: + %1LE:0E0:1:1:0x0: + %*1LE:0E0:0:1: + %1LE:0E+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LE:1.79769313486231580793728971405301199E+308:0:1: + %1LE:INFINITY:0:-1: + %*1LE:INFINITY:0:-1: +-%1LE:+NAN():0:-1: +-%*1LE:+NAN():0:-1: +-%1LE:+NAN(09A_Zaz):0:-1: +-%*1LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:+NAN():0:-1: ++# BZ30647 %*1LE:+NAN():0:-1: ++# BZ30647 %1LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:+NAN(09A_Zaz):0:-1: + %1LE:+0E0:0:-1: + %*1LE:+0E0:0:-1: + %1LE:+0E+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LE:-0E+0:0:2: + %2LE:-0E0:1:2:-0x0: + %*2LE:-0E0:0:2: +-%2LE:-NAN(09A_Zaz):0:-1: +-%*2LE:-NAN(09A_Zaz):0:-1: +-%2LE:-NAN():0:-1: +-%*2LE:-NAN():0:-1: +-%2LE:NAN():0:-1: +-%*2LE:NAN():0:-1: +-%2LE:NAN(09A_Zaz):0:-1: +-%*2LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:-NAN():0:-1: ++# BZ30647 %*2LE:-NAN():0:-1: ++# BZ30647 %2LE:NAN():0:-1: ++# BZ30647 %*2LE:NAN():0:-1: ++# BZ30647 %2LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:NAN(09A_Zaz):0:-1: + # BZ12701 %2LE:0E0:0:-1: + # BZ12701 %*2LE:0E0:0:-1: + # BZ12701 %2LE:0E+0:0:-1: +@@ -164,10 +164,10 @@ + %*2LE:1.79769313486231580793728971405301199E+308:0:2: + %2LE:INFINITY:0:-1: + %*2LE:INFINITY:0:-1: +-%2LE:+NAN():0:-1: +-%*2LE:+NAN():0:-1: +-%2LE:+NAN(09A_Zaz):0:-1: +-%*2LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:+NAN():0:-1: ++# BZ30647 %*2LE:+NAN():0:-1: ++# BZ30647 %2LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:+NAN(09A_Zaz):0:-1: + %2LE:+0E0:1:2:0x0: + %*2LE:+0E0:0:2: + %2LE:+0E+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LE:-0E+0:0:-1: + # BZ12701 %3LE:-0E0:0:-1: + # BZ12701 %*3LE:-0E0:0:-1: +-%3LE:-NAN(09A_Zaz):0:-1: +-%*3LE:-NAN(09A_Zaz):0:-1: +-%3LE:-NAN():0:-1: +-%*3LE:-NAN():0:-1: +-%3LE:NAN():1:3:nan: +-%*3LE:NAN():0:3: +-%3LE:NAN(09A_Zaz):1:3:nan: +-%*3LE:NAN(09A_Zaz):0:3: ++# BZ30647 %3LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE:-NAN():0:-1: ++# BZ30647 %*3LE:-NAN():0:-1: ++# BZ30647 %3LE:NAN():1:3:nan: ++# BZ30647 %*3LE:NAN():0:3: ++# BZ30647 %3LE:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LE:NAN(09A_Zaz):0:3: + %3LE:0E0:1:3:0x0: + %*3LE:0E0:0:3: + # BZ12701 %3LE:0E+0:0:-1: +@@ -226,10 +226,10 @@ + %*3LE:1.79769313486231580793728971405301199E+308:0:3: + %3LE:INFINITY:1:3:inf: + %*3LE:INFINITY:0:3: +-%3LE:+NAN():0:-1: +-%*3LE:+NAN():0:-1: +-%3LE:+NAN(09A_Zaz):0:-1: +-%*3LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE:+NAN():0:-1: ++# BZ30647 %*3LE:+NAN():0:-1: ++# BZ30647 %3LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LE:+0E0:0:-1: + # BZ12701 %*3LE:+0E0:0:-1: + # BZ12701 %3LE:+0E+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4LE:-0E+0:0:-1: + %4LE:-0E0:1:4:-0x0: + %*4LE:-0E0:0:4: +-%4LE:-NAN(09A_Zaz):1:4:-nan: +-%*4LE:-NAN(09A_Zaz):0:4: +-%4LE:-NAN():1:4:-nan: +-%*4LE:-NAN():0:4: +-%4LE:NAN():0:-1: +-%*4LE:NAN():0:-1: +-%4LE:NAN(09A_Zaz):0:-1: +-%*4LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LE:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LE:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LE:-NAN():1:4:-nan: ++# BZ30647 %*4LE:-NAN():0:4: ++# BZ30647 %4LE:NAN():0:-1: ++# BZ30647 %*4LE:NAN():0:-1: ++# BZ30647 %4LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LE:NAN(09A_Zaz):0:-1: + %4LE:0E0:1:3:0x0: + %*4LE:0E0:0:3: + %4LE:0E+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4LE:1.79769313486231580793728971405301199E+308:0:4: + %4LE:INFINITY:0:-1: + %*4LE:INFINITY:0:-1: +-%4LE:+NAN():1:4:nan: +-%*4LE:+NAN():0:4: +-%4LE:+NAN(09A_Zaz):1:4:nan: +-%*4LE:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LE:+NAN():1:4:nan: ++# BZ30647 %*4LE:+NAN():0:4: ++# BZ30647 %4LE:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LE:+NAN(09A_Zaz):0:4: + %4LE:+0E0:1:4:0x0: + %*4LE:+0E0:0:4: + # BZ12701 %4LE:+0E+0:0:-1: +@@ -326,14 +326,14 @@ + %*40LE:-0E+0:0:5: + %40LE:-0E0:1:4:-0x0: + %*40LE:-0E0:0:4: +-%40LE:-NAN(09A_Zaz):1:13:-nan: +-%*40LE:-NAN(09A_Zaz):0:13: +-%40LE:-NAN():1:6:-nan: +-%*40LE:-NAN():0:6: +-%40LE:NAN():1:5:nan: +-%*40LE:NAN():0:5: +-%40LE:NAN(09A_Zaz):1:12:nan: +-%*40LE:NAN(09A_Zaz):0:12: ++# BZ30647 %40LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*40LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %40LE:-NAN():1:6:-nan: ++# BZ30647 %*40LE:-NAN():0:6: ++# BZ30647 %40LE:NAN():1:5:nan: ++# BZ30647 %*40LE:NAN():0:5: ++# BZ30647 %40LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*40LE:NAN(09A_Zaz):0:12: + %40LE:0E0:1:3:0x0: + %*40LE:0E0:0:3: + %40LE:0E+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40LE:1.79769313486231580793728971405301199E+308:0:40: + %40LE:INFINITY:1:8:inf: + %*40LE:INFINITY:0:8: +-%40LE:+NAN():1:6:nan: +-%*40LE:+NAN():0:6: +-%40LE:+NAN(09A_Zaz):1:13:nan: +-%*40LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %40LE:+NAN():1:6:nan: ++# BZ30647 %*40LE:+NAN():0:6: ++# BZ30647 %40LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*40LE:+NAN(09A_Zaz):0:13: + %40LE:+0E0:1:4:0x0: + %*40LE:+0E0:0:4: + %40LE:+0E+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48LE:-0E+0:0:5: + %48LE:-0E0:1:4:-0x0: + %*48LE:-0E0:0:4: +-%48LE:-NAN(09A_Zaz):1:13:-nan: +-%*48LE:-NAN(09A_Zaz):0:13: +-%48LE:-NAN():1:6:-nan: +-%*48LE:-NAN():0:6: +-%48LE:NAN():1:5:nan: +-%*48LE:NAN():0:5: +-%48LE:NAN(09A_Zaz):1:12:nan: +-%*48LE:NAN(09A_Zaz):0:12: ++# BZ30647 %48LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*48LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %48LE:-NAN():1:6:-nan: ++# BZ30647 %*48LE:-NAN():0:6: ++# BZ30647 %48LE:NAN():1:5:nan: ++# BZ30647 %*48LE:NAN():0:5: ++# BZ30647 %48LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*48LE:NAN(09A_Zaz):0:12: + %48LE:0E0:1:3:0x0: + %*48LE:0E0:0:3: + %48LE:0E+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48LE:1.79769313486231580793728971405301199E+308:0:42: + %48LE:INFINITY:1:8:inf: + %*48LE:INFINITY:0:8: +-%48LE:+NAN():1:6:nan: +-%*48LE:+NAN():0:6: +-%48LE:+NAN(09A_Zaz):1:13:nan: +-%*48LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %48LE:+NAN():1:6:nan: ++# BZ30647 %*48LE:+NAN():0:6: ++# BZ30647 %48LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48LE:+NAN(09A_Zaz):0:13: + %48LE:+0E0:1:4:0x0: + %*48LE:+0E0:0:4: + %48LE:+0E+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3LE: -0E+0:0:-1: + # BZ12701 %3LE: -0E0:0:-1: + # BZ12701 %*3LE: -0E0:0:-1: +-%3LE: -NAN(09A_Zaz):0:-1: +-%*3LE: -NAN(09A_Zaz):0:-1: +-%3LE: -NAN():0:-1: +-%*3LE: -NAN():0:-1: +-%3LE: NAN():1:4:nan: +-%*3LE: NAN():0:4: +-%3LE: NAN(09A_Zaz):1:4:nan: +-%*3LE: NAN(09A_Zaz):0:4: ++# BZ30647 %3LE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE: -NAN():0:-1: ++# BZ30647 %*3LE: -NAN():0:-1: ++# BZ30647 %3LE: NAN():1:4:nan: ++# BZ30647 %*3LE: NAN():0:4: ++# BZ30647 %3LE: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3LE: NAN(09A_Zaz):0:4: + %3LE: 0E0:1:4:0x0: + %*3LE: 0E0:0:4: + # BZ12701 %3LE: 0E+0:0:-1: +@@ -474,10 +474,10 @@ + %*3LE: 1.79769313486231580793728971405301199E+308:0:4: + %3LE: INFINITY:1:4:inf: + %*3LE: INFINITY:0:4: +-%3LE: +NAN():0:-1: +-%*3LE: +NAN():0:-1: +-%3LE: +NAN(09A_Zaz):0:-1: +-%*3LE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE: +NAN():0:-1: ++# BZ30647 %*3LE: +NAN():0:-1: ++# BZ30647 %3LE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE: +NAN(09A_Zaz):0:-1: + # BZ12701 %3LE: +0E0:0:-1: + # BZ12701 %*3LE: +0E0:0:-1: + # BZ12701 %3LE: +0E+0:0:-1: +@@ -512,14 +512,14 @@ + %*48LE: -0E+0:0:6: + %48LE: -0E0:1:5:-0x0: + %*48LE: -0E0:0:5: +-%48LE: -NAN(09A_Zaz):1:14:-nan: +-%*48LE: -NAN(09A_Zaz):0:14: +-%48LE: -NAN():1:7:-nan: +-%*48LE: -NAN():0:7: +-%48LE: NAN():1:6:nan: +-%*48LE: NAN():0:6: +-%48LE: NAN(09A_Zaz):1:13:nan: +-%*48LE: NAN(09A_Zaz):0:13: ++# BZ30647 %48LE: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*48LE: -NAN(09A_Zaz):0:14: ++# BZ30647 %48LE: -NAN():1:7:-nan: ++# BZ30647 %*48LE: -NAN():0:7: ++# BZ30647 %48LE: NAN():1:6:nan: ++# BZ30647 %*48LE: NAN():0:6: ++# BZ30647 %48LE: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48LE: NAN(09A_Zaz):0:13: + %48LE: 0E0:1:4:0x0: + %*48LE: 0E0:0:4: + %48LE: 0E+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48LE: 1.79769313486231580793728971405301199E+308:0:43: + %48LE: INFINITY:1:9:inf: + %*48LE: INFINITY:0:9: +-%48LE: +NAN():1:7:nan: +-%*48LE: +NAN():0:7: +-%48LE: +NAN(09A_Zaz):1:14:nan: +-%*48LE: +NAN(09A_Zaz):0:14: ++# BZ30647 %48LE: +NAN():1:7:nan: ++# BZ30647 %*48LE: +NAN():0:7: ++# BZ30647 %48LE: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*48LE: +NAN(09A_Zaz):0:14: + %48LE: +0E0:1:5:0x0: + %*48LE: +0E0:0:5: + %48LE: +0E+0:1:6:0x0: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-f.input +index 9d4fd75fd0250a93..20b74f0d141a50b8 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-f.input ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-f.input +@@ -16,14 +16,14 @@ + %*Lf:-0.0:0:4: + %Lf:-0:1:2:-0x0: + %*Lf:-0:0:2: +-%Lf:-nan(09A_Zaz):1:13:-nan: +-%*Lf:-nan(09A_Zaz):0:13: +-%Lf:-nan():1:6:-nan: +-%*Lf:-nan():0:6: +-%Lf:nan():1:5:nan: +-%*Lf:nan():0:5: +-%Lf:nan(09A_Zaz):1:12:nan: +-%*Lf:nan(09A_Zaz):0:12: ++# BZ30647 %Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %Lf:-nan():1:6:-nan: ++# BZ30647 %*Lf:-nan():0:6: ++# BZ30647 %Lf:nan():1:5:nan: ++# BZ30647 %*Lf:nan():0:5: ++# BZ30647 %Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Lf:nan(09A_Zaz):0:12: + %Lf:0:1:1:0x0: + %*Lf:0:0:1: + %Lf:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312: + %Lf:infinity:1:8:inf: + %*Lf:infinity:0:8: +-%Lf:+nan():1:6:nan: +-%*Lf:+nan():0:6: +-%Lf:+nan(09A_Zaz):1:13:nan: +-%*Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %Lf:+nan():1:6:nan: ++# BZ30647 %*Lf:+nan():0:6: ++# BZ30647 %Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Lf:+nan(09A_Zaz):0:13: + %Lf:+0:1:2:0x0: + %*Lf:+0:0:2: + %Lf:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1Lf:-0.0:0:-1: + %1Lf:-0:0:-1: + %*1Lf:-0:0:-1: +-%1Lf:-nan(09A_Zaz):0:-1: +-%*1Lf:-nan(09A_Zaz):0:-1: +-%1Lf:-nan():0:-1: +-%*1Lf:-nan():0:-1: +-%1Lf:nan():0:-1: +-%*1Lf:nan():0:-1: +-%1Lf:nan(09A_Zaz):0:-1: +-%*1Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:-nan():0:-1: ++# BZ30647 %*1Lf:-nan():0:-1: ++# BZ30647 %1Lf:nan():0:-1: ++# BZ30647 %*1Lf:nan():0:-1: ++# BZ30647 %1Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:nan(09A_Zaz):0:-1: + %1Lf:0:1:1:0x0: + %*1Lf:0:0:1: + %1Lf:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:1: + %1Lf:infinity:0:-1: + %*1Lf:infinity:0:-1: +-%1Lf:+nan():0:-1: +-%*1Lf:+nan():0:-1: +-%1Lf:+nan(09A_Zaz):0:-1: +-%*1Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:+nan():0:-1: ++# BZ30647 %*1Lf:+nan():0:-1: ++# BZ30647 %1Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:+nan(09A_Zaz):0:-1: + %1Lf:+0:0:-1: + %*1Lf:+0:0:-1: + %1Lf:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2Lf:-0.0:0:2: + %2Lf:-0:1:2:-0x0: + %*2Lf:-0:0:2: +-%2Lf:-nan(09A_Zaz):0:-1: +-%*2Lf:-nan(09A_Zaz):0:-1: +-%2Lf:-nan():0:-1: +-%*2Lf:-nan():0:-1: +-%2Lf:nan():0:-1: +-%*2Lf:nan():0:-1: +-%2Lf:nan(09A_Zaz):0:-1: +-%*2Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:-nan():0:-1: ++# BZ30647 %*2Lf:-nan():0:-1: ++# BZ30647 %2Lf:nan():0:-1: ++# BZ30647 %*2Lf:nan():0:-1: ++# BZ30647 %2Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:nan(09A_Zaz):0:-1: + %2Lf:0:1:1:0x0: + %*2Lf:0:0:1: + %2Lf:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2: + %2Lf:infinity:0:-1: + %*2Lf:infinity:0:-1: +-%2Lf:+nan():0:-1: +-%*2Lf:+nan():0:-1: +-%2Lf:+nan(09A_Zaz):0:-1: +-%*2Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:+nan():0:-1: ++# BZ30647 %*2Lf:+nan():0:-1: ++# BZ30647 %2Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:+nan(09A_Zaz):0:-1: + %2Lf:+0:1:2:0x0: + %*2Lf:+0:0:2: + %2Lf:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3Lf:-0.0:0:3: + %3Lf:-0:1:2:-0x0: + %*3Lf:-0:0:2: +-%3Lf:-nan(09A_Zaz):0:-1: +-%*3Lf:-nan(09A_Zaz):0:-1: +-%3Lf:-nan():0:-1: +-%*3Lf:-nan():0:-1: +-%3Lf:nan():1:3:nan: +-%*3Lf:nan():0:3: +-%3Lf:nan(09A_Zaz):1:3:nan: +-%*3Lf:nan(09A_Zaz):0:3: ++# BZ30647 %3Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf:-nan():0:-1: ++# BZ30647 %*3Lf:-nan():0:-1: ++# BZ30647 %3Lf:nan():1:3:nan: ++# BZ30647 %*3Lf:nan():0:3: ++# BZ30647 %3Lf:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Lf:nan(09A_Zaz):0:3: + %3Lf:0:1:1:0x0: + %*3Lf:0:0:1: + %3Lf:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3: + %3Lf:infinity:1:3:inf: + %*3Lf:infinity:0:3: +-%3Lf:+nan():0:-1: +-%*3Lf:+nan():0:-1: +-%3Lf:+nan(09A_Zaz):0:-1: +-%*3Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf:+nan():0:-1: ++# BZ30647 %*3Lf:+nan():0:-1: ++# BZ30647 %3Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf:+nan(09A_Zaz):0:-1: + %3Lf:+0:1:2:0x0: + %*3Lf:+0:0:2: + %3Lf:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*295Lf:-0.0:0:4: + %295Lf:-0:1:2:-0x0: + %*295Lf:-0:0:2: +-%295Lf:-nan(09A_Zaz):1:13:-nan: +-%*295Lf:-nan(09A_Zaz):0:13: +-%295Lf:-nan():1:6:-nan: +-%*295Lf:-nan():0:6: +-%295Lf:nan():1:5:nan: +-%*295Lf:nan():0:5: +-%295Lf:nan(09A_Zaz):1:12:nan: +-%*295Lf:nan(09A_Zaz):0:12: ++# BZ30647 %295Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*295Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %295Lf:-nan():1:6:-nan: ++# BZ30647 %*295Lf:-nan():0:6: ++# BZ30647 %295Lf:nan():1:5:nan: ++# BZ30647 %*295Lf:nan():0:5: ++# BZ30647 %295Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*295Lf:nan(09A_Zaz):0:12: + %295Lf:0:1:1:0x0: + %*295Lf:0:0:1: + %295Lf:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*295Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295: + %295Lf:infinity:1:8:inf: + %*295Lf:infinity:0:8: +-%295Lf:+nan():1:6:nan: +-%*295Lf:+nan():0:6: +-%295Lf:+nan(09A_Zaz):1:13:nan: +-%*295Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %295Lf:+nan():1:6:nan: ++# BZ30647 %*295Lf:+nan():0:6: ++# BZ30647 %295Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*295Lf:+nan(09A_Zaz):0:13: + %295Lf:+0:1:2:0x0: + %*295Lf:+0:0:2: + %295Lf:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*340Lf:-0.0:0:4: + %340Lf:-0:1:2:-0x0: + %*340Lf:-0:0:2: +-%340Lf:-nan(09A_Zaz):1:13:-nan: +-%*340Lf:-nan(09A_Zaz):0:13: +-%340Lf:-nan():1:6:-nan: +-%*340Lf:-nan():0:6: +-%340Lf:nan():1:5:nan: +-%*340Lf:nan():0:5: +-%340Lf:nan(09A_Zaz):1:12:nan: +-%*340Lf:nan(09A_Zaz):0:12: ++# BZ30647 %340Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*340Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %340Lf:-nan():1:6:-nan: ++# BZ30647 %*340Lf:-nan():0:6: ++# BZ30647 %340Lf:nan():1:5:nan: ++# BZ30647 %*340Lf:nan():0:5: ++# BZ30647 %340Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*340Lf:nan(09A_Zaz):0:12: + %340Lf:0:1:1:0x0: + %*340Lf:0:0:1: + %340Lf:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*340Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312: + %340Lf:infinity:1:8:inf: + %*340Lf:infinity:0:8: +-%340Lf:+nan():1:6:nan: +-%*340Lf:+nan():0:6: +-%340Lf:+nan(09A_Zaz):1:13:nan: +-%*340Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %340Lf:+nan():1:6:nan: ++# BZ30647 %*340Lf:+nan():0:6: ++# BZ30647 %340Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*340Lf:+nan(09A_Zaz):0:13: + %340Lf:+0:1:2:0x0: + %*340Lf:+0:0:2: + %340Lf:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*3Lf: -0.0:0:4: + %3Lf: -0:1:3:-0x0: + %*3Lf: -0:0:3: +-%3Lf: -nan(09A_Zaz):0:-1: +-%*3Lf: -nan(09A_Zaz):0:-1: +-%3Lf: -nan():0:-1: +-%*3Lf: -nan():0:-1: +-%3Lf: nan():1:4:nan: +-%*3Lf: nan():0:4: +-%3Lf: nan(09A_Zaz):1:4:nan: +-%*3Lf: nan(09A_Zaz):0:4: ++# BZ30647 %3Lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf: -nan():0:-1: ++# BZ30647 %*3Lf: -nan():0:-1: ++# BZ30647 %3Lf: nan():1:4:nan: ++# BZ30647 %*3Lf: nan():0:4: ++# BZ30647 %3Lf: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3Lf: nan(09A_Zaz):0:4: + %3Lf: 0:1:2:0x0: + %*3Lf: 0:0:2: + %3Lf: 0.0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*3Lf: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4: + %3Lf: infinity:1:4:inf: + %*3Lf: infinity:0:4: +-%3Lf: +nan():0:-1: +-%*3Lf: +nan():0:-1: +-%3Lf: +nan(09A_Zaz):0:-1: +-%*3Lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf: +nan():0:-1: ++# BZ30647 %*3Lf: +nan():0:-1: ++# BZ30647 %3Lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf: +nan(09A_Zaz):0:-1: + %3Lf: +0:1:3:0x0: + %*3Lf: +0:0:3: + %3Lf: +0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*340Lf: -0.0:0:5: + %340Lf: -0:1:3:-0x0: + %*340Lf: -0:0:3: +-%340Lf: -nan(09A_Zaz):1:14:-nan: +-%*340Lf: -nan(09A_Zaz):0:14: +-%340Lf: -nan():1:7:-nan: +-%*340Lf: -nan():0:7: +-%340Lf: nan():1:6:nan: +-%*340Lf: nan():0:6: +-%340Lf: nan(09A_Zaz):1:13:nan: +-%*340Lf: nan(09A_Zaz):0:13: ++# BZ30647 %340Lf: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*340Lf: -nan(09A_Zaz):0:14: ++# BZ30647 %340Lf: -nan():1:7:-nan: ++# BZ30647 %*340Lf: -nan():0:7: ++# BZ30647 %340Lf: nan():1:6:nan: ++# BZ30647 %*340Lf: nan():0:6: ++# BZ30647 %340Lf: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*340Lf: nan(09A_Zaz):0:13: + %340Lf: 0:1:2:0x0: + %*340Lf: 0:0:2: + %340Lf: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*340Lf: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: + %340Lf: infinity:1:9:inf: + %*340Lf: infinity:0:9: +-%340Lf: +nan():1:7:nan: +-%*340Lf: +nan():0:7: +-%340Lf: +nan(09A_Zaz):1:14:nan: +-%*340Lf: +nan(09A_Zaz):0:14: ++# BZ30647 %340Lf: +nan():1:7:nan: ++# BZ30647 %*340Lf: +nan():0:7: ++# BZ30647 %340Lf: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*340Lf: +nan(09A_Zaz):0:14: + %340Lf: +0:1:3:0x0: + %*340Lf: +0:0:3: + %340Lf: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ff.input +index bb7098a00dd383b3..8f77dc99160188b8 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ff.input ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ff.input +@@ -16,14 +16,14 @@ + %*LF:-0.0:0:4: + %LF:-0:1:2:-0x0: + %*LF:-0:0:2: +-%LF:-NAN(09A_Zaz):1:13:-nan: +-%*LF:-NAN(09A_Zaz):0:13: +-%LF:-NAN():1:6:-nan: +-%*LF:-NAN():0:6: +-%LF:NAN():1:5:nan: +-%*LF:NAN():0:5: +-%LF:NAN(09A_Zaz):1:12:nan: +-%*LF:NAN(09A_Zaz):0:12: ++# BZ30647 %LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %LF:-NAN():1:6:-nan: ++# BZ30647 %*LF:-NAN():0:6: ++# BZ30647 %LF:NAN():1:5:nan: ++# BZ30647 %*LF:NAN():0:5: ++# BZ30647 %LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LF:NAN(09A_Zaz):0:12: + %LF:0:1:1:0x0: + %*LF:0:0:1: + %LF:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312: + %LF:INFINITY:1:8:inf: + %*LF:INFINITY:0:8: +-%LF:+NAN():1:6:nan: +-%*LF:+NAN():0:6: +-%LF:+NAN(09A_Zaz):1:13:nan: +-%*LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %LF:+NAN():1:6:nan: ++# BZ30647 %*LF:+NAN():0:6: ++# BZ30647 %LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LF:+NAN(09A_Zaz):0:13: + %LF:+0:1:2:0x0: + %*LF:+0:0:2: + %LF:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1LF:-0.0:0:-1: + %1LF:-0:0:-1: + %*1LF:-0:0:-1: +-%1LF:-NAN(09A_Zaz):0:-1: +-%*1LF:-NAN(09A_Zaz):0:-1: +-%1LF:-NAN():0:-1: +-%*1LF:-NAN():0:-1: +-%1LF:NAN():0:-1: +-%*1LF:NAN():0:-1: +-%1LF:NAN(09A_Zaz):0:-1: +-%*1LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:-NAN():0:-1: ++# BZ30647 %*1LF:-NAN():0:-1: ++# BZ30647 %1LF:NAN():0:-1: ++# BZ30647 %*1LF:NAN():0:-1: ++# BZ30647 %1LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:NAN(09A_Zaz):0:-1: + %1LF:0:1:1:0x0: + %*1LF:0:0:1: + %1LF:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:1: + %1LF:INFINITY:0:-1: + %*1LF:INFINITY:0:-1: +-%1LF:+NAN():0:-1: +-%*1LF:+NAN():0:-1: +-%1LF:+NAN(09A_Zaz):0:-1: +-%*1LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:+NAN():0:-1: ++# BZ30647 %*1LF:+NAN():0:-1: ++# BZ30647 %1LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:+NAN(09A_Zaz):0:-1: + %1LF:+0:0:-1: + %*1LF:+0:0:-1: + %1LF:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2LF:-0.0:0:2: + %2LF:-0:1:2:-0x0: + %*2LF:-0:0:2: +-%2LF:-NAN(09A_Zaz):0:-1: +-%*2LF:-NAN(09A_Zaz):0:-1: +-%2LF:-NAN():0:-1: +-%*2LF:-NAN():0:-1: +-%2LF:NAN():0:-1: +-%*2LF:NAN():0:-1: +-%2LF:NAN(09A_Zaz):0:-1: +-%*2LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:-NAN():0:-1: ++# BZ30647 %*2LF:-NAN():0:-1: ++# BZ30647 %2LF:NAN():0:-1: ++# BZ30647 %*2LF:NAN():0:-1: ++# BZ30647 %2LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:NAN(09A_Zaz):0:-1: + %2LF:0:1:1:0x0: + %*2LF:0:0:1: + %2LF:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2: + %2LF:INFINITY:0:-1: + %*2LF:INFINITY:0:-1: +-%2LF:+NAN():0:-1: +-%*2LF:+NAN():0:-1: +-%2LF:+NAN(09A_Zaz):0:-1: +-%*2LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:+NAN():0:-1: ++# BZ30647 %*2LF:+NAN():0:-1: ++# BZ30647 %2LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:+NAN(09A_Zaz):0:-1: + %2LF:+0:1:2:0x0: + %*2LF:+0:0:2: + %2LF:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3LF:-0.0:0:3: + %3LF:-0:1:2:-0x0: + %*3LF:-0:0:2: +-%3LF:-NAN(09A_Zaz):0:-1: +-%*3LF:-NAN(09A_Zaz):0:-1: +-%3LF:-NAN():0:-1: +-%*3LF:-NAN():0:-1: +-%3LF:NAN():1:3:nan: +-%*3LF:NAN():0:3: +-%3LF:NAN(09A_Zaz):1:3:nan: +-%*3LF:NAN(09A_Zaz):0:3: ++# BZ30647 %3LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF:-NAN():0:-1: ++# BZ30647 %*3LF:-NAN():0:-1: ++# BZ30647 %3LF:NAN():1:3:nan: ++# BZ30647 %*3LF:NAN():0:3: ++# BZ30647 %3LF:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LF:NAN(09A_Zaz):0:3: + %3LF:0:1:1:0x0: + %*3LF:0:0:1: + %3LF:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3: + %3LF:INFINITY:1:3:inf: + %*3LF:INFINITY:0:3: +-%3LF:+NAN():0:-1: +-%*3LF:+NAN():0:-1: +-%3LF:+NAN(09A_Zaz):0:-1: +-%*3LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF:+NAN():0:-1: ++# BZ30647 %*3LF:+NAN():0:-1: ++# BZ30647 %3LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF:+NAN(09A_Zaz):0:-1: + %3LF:+0:1:2:0x0: + %*3LF:+0:0:2: + %3LF:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*295LF:-0.0:0:4: + %295LF:-0:1:2:-0x0: + %*295LF:-0:0:2: +-%295LF:-NAN(09A_Zaz):1:13:-nan: +-%*295LF:-NAN(09A_Zaz):0:13: +-%295LF:-NAN():1:6:-nan: +-%*295LF:-NAN():0:6: +-%295LF:NAN():1:5:nan: +-%*295LF:NAN():0:5: +-%295LF:NAN(09A_Zaz):1:12:nan: +-%*295LF:NAN(09A_Zaz):0:12: ++# BZ30647 %295LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*295LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %295LF:-NAN():1:6:-nan: ++# BZ30647 %*295LF:-NAN():0:6: ++# BZ30647 %295LF:NAN():1:5:nan: ++# BZ30647 %*295LF:NAN():0:5: ++# BZ30647 %295LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*295LF:NAN(09A_Zaz):0:12: + %295LF:0:1:1:0x0: + %*295LF:0:0:1: + %295LF:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*295LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295: + %295LF:INFINITY:1:8:inf: + %*295LF:INFINITY:0:8: +-%295LF:+NAN():1:6:nan: +-%*295LF:+NAN():0:6: +-%295LF:+NAN(09A_Zaz):1:13:nan: +-%*295LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %295LF:+NAN():1:6:nan: ++# BZ30647 %*295LF:+NAN():0:6: ++# BZ30647 %295LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*295LF:+NAN(09A_Zaz):0:13: + %295LF:+0:1:2:0x0: + %*295LF:+0:0:2: + %295LF:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*340LF:-0.0:0:4: + %340LF:-0:1:2:-0x0: + %*340LF:-0:0:2: +-%340LF:-NAN(09A_Zaz):1:13:-nan: +-%*340LF:-NAN(09A_Zaz):0:13: +-%340LF:-NAN():1:6:-nan: +-%*340LF:-NAN():0:6: +-%340LF:NAN():1:5:nan: +-%*340LF:NAN():0:5: +-%340LF:NAN(09A_Zaz):1:12:nan: +-%*340LF:NAN(09A_Zaz):0:12: ++# BZ30647 %340LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*340LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %340LF:-NAN():1:6:-nan: ++# BZ30647 %*340LF:-NAN():0:6: ++# BZ30647 %340LF:NAN():1:5:nan: ++# BZ30647 %*340LF:NAN():0:5: ++# BZ30647 %340LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*340LF:NAN(09A_Zaz):0:12: + %340LF:0:1:1:0x0: + %*340LF:0:0:1: + %340LF:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*340LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312: + %340LF:INFINITY:1:8:inf: + %*340LF:INFINITY:0:8: +-%340LF:+NAN():1:6:nan: +-%*340LF:+NAN():0:6: +-%340LF:+NAN(09A_Zaz):1:13:nan: +-%*340LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %340LF:+NAN():1:6:nan: ++# BZ30647 %*340LF:+NAN():0:6: ++# BZ30647 %340LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*340LF:+NAN(09A_Zaz):0:13: + %340LF:+0:1:2:0x0: + %*340LF:+0:0:2: + %340LF:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*3LF: -0.0:0:4: + %3LF: -0:1:3:-0x0: + %*3LF: -0:0:3: +-%3LF: -NAN(09A_Zaz):0:-1: +-%*3LF: -NAN(09A_Zaz):0:-1: +-%3LF: -NAN():0:-1: +-%*3LF: -NAN():0:-1: +-%3LF: NAN():1:4:nan: +-%*3LF: NAN():0:4: +-%3LF: NAN(09A_Zaz):1:4:nan: +-%*3LF: NAN(09A_Zaz):0:4: ++# BZ30647 %3LF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF: -NAN():0:-1: ++# BZ30647 %*3LF: -NAN():0:-1: ++# BZ30647 %3LF: NAN():1:4:nan: ++# BZ30647 %*3LF: NAN():0:4: ++# BZ30647 %3LF: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3LF: NAN(09A_Zaz):0:4: + %3LF: 0:1:2:0x0: + %*3LF: 0:0:2: + %3LF: 0.0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*3LF: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4: + %3LF: INFINITY:1:4:inf: + %*3LF: INFINITY:0:4: +-%3LF: +NAN():0:-1: +-%*3LF: +NAN():0:-1: +-%3LF: +NAN(09A_Zaz):0:-1: +-%*3LF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF: +NAN():0:-1: ++# BZ30647 %*3LF: +NAN():0:-1: ++# BZ30647 %3LF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF: +NAN(09A_Zaz):0:-1: + %3LF: +0:1:3:0x0: + %*3LF: +0:0:3: + %3LF: +0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*340LF: -0.0:0:5: + %340LF: -0:1:3:-0x0: + %*340LF: -0:0:3: +-%340LF: -NAN(09A_Zaz):1:14:-nan: +-%*340LF: -NAN(09A_Zaz):0:14: +-%340LF: -NAN():1:7:-nan: +-%*340LF: -NAN():0:7: +-%340LF: NAN():1:6:nan: +-%*340LF: NAN():0:6: +-%340LF: NAN(09A_Zaz):1:13:nan: +-%*340LF: NAN(09A_Zaz):0:13: ++# BZ30647 %340LF: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*340LF: -NAN(09A_Zaz):0:14: ++# BZ30647 %340LF: -NAN():1:7:-nan: ++# BZ30647 %*340LF: -NAN():0:7: ++# BZ30647 %340LF: NAN():1:6:nan: ++# BZ30647 %*340LF: NAN():0:6: ++# BZ30647 %340LF: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*340LF: NAN(09A_Zaz):0:13: + %340LF: 0:1:2:0x0: + %*340LF: 0:0:2: + %340LF: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*340LF: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: + %340LF: INFINITY:1:9:inf: + %*340LF: INFINITY:0:9: +-%340LF: +NAN():1:7:nan: +-%*340LF: +NAN():0:7: +-%340LF: +NAN(09A_Zaz):1:14:nan: +-%*340LF: +NAN(09A_Zaz):0:14: ++# BZ30647 %340LF: +NAN():1:7:nan: ++# BZ30647 %*340LF: +NAN():0:7: ++# BZ30647 %340LF: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*340LF: +NAN(09A_Zaz):0:14: + %340LF: +0:1:3:0x0: + %*340LF: +0:0:3: + %340LF: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-g.input +index c500aa8d012c5c89..3ef57c2c9b7db8cd 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-g.input ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-g.input +@@ -16,14 +16,14 @@ + %*Lg:-0x0p+0:0:7: + %Lg:-0x0p0:1:6:-0x0: + %*Lg:-0x0p0:0:6: +-%Lg:-nan(09A_Zaz):1:13:-nan: +-%*Lg:-nan(09A_Zaz):0:13: +-%Lg:-nan():1:6:-nan: +-%*Lg:-nan():0:6: +-%Lg:nan():1:5:nan: +-%*Lg:nan():0:5: +-%Lg:nan(09A_Zaz):1:12:nan: +-%*Lg:nan(09A_Zaz):0:12: ++# BZ30647 %Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %Lg:-nan():1:6:-nan: ++# BZ30647 %*Lg:-nan():0:6: ++# BZ30647 %Lg:nan():1:5:nan: ++# BZ30647 %*Lg:nan():0:5: ++# BZ30647 %Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Lg:nan(09A_Zaz):0:12: + %Lg:0x0p0:1:5:0x0: + %*Lg:0x0p0:0:5: + %Lg:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:36: + %Lg:infinity:1:8:inf: + %*Lg:infinity:0:8: +-%Lg:+nan():1:6:nan: +-%*Lg:+nan():0:6: +-%Lg:+nan(09A_Zaz):1:13:nan: +-%*Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %Lg:+nan():1:6:nan: ++# BZ30647 %*Lg:+nan():0:6: ++# BZ30647 %Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Lg:+nan(09A_Zaz):0:13: + %Lg:+0x0p0:1:6:0x0: + %*Lg:+0x0p0:0:6: + %Lg:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1Lg:-0x0p+0:0:-1: + %1Lg:-0x0p0:0:-1: + %*1Lg:-0x0p0:0:-1: +-%1Lg:-nan(09A_Zaz):0:-1: +-%*1Lg:-nan(09A_Zaz):0:-1: +-%1Lg:-nan():0:-1: +-%*1Lg:-nan():0:-1: +-%1Lg:nan():0:-1: +-%*1Lg:nan():0:-1: +-%1Lg:nan(09A_Zaz):0:-1: +-%*1Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:-nan():0:-1: ++# BZ30647 %*1Lg:-nan():0:-1: ++# BZ30647 %1Lg:nan():0:-1: ++# BZ30647 %*1Lg:nan():0:-1: ++# BZ30647 %1Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:nan(09A_Zaz):0:-1: + %1Lg:0x0p0:1:1:0x0: + %*1Lg:0x0p0:0:1: + %1Lg:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:1: + %1Lg:infinity:0:-1: + %*1Lg:infinity:0:-1: +-%1Lg:+nan():0:-1: +-%*1Lg:+nan():0:-1: +-%1Lg:+nan(09A_Zaz):0:-1: +-%*1Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:+nan():0:-1: ++# BZ30647 %*1Lg:+nan():0:-1: ++# BZ30647 %1Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:+nan(09A_Zaz):0:-1: + %1Lg:+0x0p0:0:-1: + %*1Lg:+0x0p0:0:-1: + %1Lg:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2Lg:-0x0p+0:0:2: + %2Lg:-0x0p0:1:2:-0x0: + %*2Lg:-0x0p0:0:2: +-%2Lg:-nan(09A_Zaz):0:-1: +-%*2Lg:-nan(09A_Zaz):0:-1: +-%2Lg:-nan():0:-1: +-%*2Lg:-nan():0:-1: +-%2Lg:nan():0:-1: +-%*2Lg:nan():0:-1: +-%2Lg:nan(09A_Zaz):0:-1: +-%*2Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:-nan():0:-1: ++# BZ30647 %*2Lg:-nan():0:-1: ++# BZ30647 %2Lg:nan():0:-1: ++# BZ30647 %*2Lg:nan():0:-1: ++# BZ30647 %2Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:nan(09A_Zaz):0:-1: + # BZ12701 %2Lg:0x0p0:0:-1: + # BZ12701 %*2Lg:0x0p0:0:-1: + # BZ12701 %2Lg:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:-1: + %2Lg:infinity:0:-1: + %*2Lg:infinity:0:-1: +-%2Lg:+nan():0:-1: +-%*2Lg:+nan():0:-1: +-%2Lg:+nan(09A_Zaz):0:-1: +-%*2Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:+nan():0:-1: ++# BZ30647 %*2Lg:+nan():0:-1: ++# BZ30647 %2Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:+nan(09A_Zaz):0:-1: + %2Lg:+0x0p0:1:2:0x0: + %*2Lg:+0x0p0:0:2: + %2Lg:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3Lg:-0x0p+0:0:-1: + # BZ12701 %3Lg:-0x0p0:0:-1: + # BZ12701 %*3Lg:-0x0p0:0:-1: +-%3Lg:-nan(09A_Zaz):0:-1: +-%*3Lg:-nan(09A_Zaz):0:-1: +-%3Lg:-nan():0:-1: +-%*3Lg:-nan():0:-1: +-%3Lg:nan():1:3:nan: +-%*3Lg:nan():0:3: +-%3Lg:nan(09A_Zaz):1:3:nan: +-%*3Lg:nan(09A_Zaz):0:3: ++# BZ30647 %3Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Lg:-nan():0:-1: ++# BZ30647 %*3Lg:-nan():0:-1: ++# BZ30647 %3Lg:nan():1:3:nan: ++# BZ30647 %*3Lg:nan():0:3: ++# BZ30647 %3Lg:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Lg:nan(09A_Zaz):0:3: + %3Lg:0x0p0:1:3:0x0: + %*3Lg:0x0p0:0:3: + %3Lg:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:3: + %3Lg:infinity:1:3:inf: + %*3Lg:infinity:0:3: +-%3Lg:+nan():0:-1: +-%*3Lg:+nan():0:-1: +-%3Lg:+nan(09A_Zaz):0:-1: +-%*3Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Lg:+nan():0:-1: ++# BZ30647 %*3Lg:+nan():0:-1: ++# BZ30647 %3Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lg:+nan(09A_Zaz):0:-1: + # BZ12701 %3Lg:+0x0p0:0:-1: + # BZ12701 %*3Lg:+0x0p0:0:-1: + # BZ12701 %3Lg:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4Lg:-0x0p+0:0:4: + %4Lg:-0x0p0:1:4:-0x0: + %*4Lg:-0x0p0:0:4: +-%4Lg:-nan(09A_Zaz):1:4:-nan: +-%*4Lg:-nan(09A_Zaz):0:4: +-%4Lg:-nan():1:4:-nan: +-%*4Lg:-nan():0:4: +-%4Lg:nan():0:-1: +-%*4Lg:nan():0:-1: +-%4Lg:nan(09A_Zaz):0:-1: +-%*4Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %4Lg:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Lg:-nan(09A_Zaz):0:4: ++# BZ30647 %4Lg:-nan():1:4:-nan: ++# BZ30647 %*4Lg:-nan():0:4: ++# BZ30647 %4Lg:nan():0:-1: ++# BZ30647 %*4Lg:nan():0:-1: ++# BZ30647 %4Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Lg:nan(09A_Zaz):0:-1: + # BZ12701 %4Lg:0x0p0:0:-1: + # BZ12701 %*4Lg:0x0p0:0:-1: + # BZ12701 %4Lg:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:4: + %4Lg:infinity:0:-1: + %*4Lg:infinity:0:-1: +-%4Lg:+nan():1:4:nan: +-%*4Lg:+nan():0:4: +-%4Lg:+nan(09A_Zaz):1:4:nan: +-%*4Lg:+nan(09A_Zaz):0:4: ++# BZ30647 %4Lg:+nan():1:4:nan: ++# BZ30647 %*4Lg:+nan():0:4: ++# BZ30647 %4Lg:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Lg:+nan(09A_Zaz):0:4: + %4Lg:+0x0p0:1:4:0x0: + %*4Lg:+0x0p0:0:4: + %4Lg:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5Lg:-0x0p+0:0:-1: + # BZ12701 %5Lg:-0x0p0:0:-1: + # BZ12701 %*5Lg:-0x0p0:0:-1: +-%5Lg:-nan(09A_Zaz):0:-1: +-%*5Lg:-nan(09A_Zaz):0:-1: +-%5Lg:-nan():0:-1: +-%*5Lg:-nan():0:-1: +-%5Lg:nan():1:5:nan: +-%*5Lg:nan():0:5: +-%5Lg:nan(09A_Zaz):0:-1: +-%*5Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:-nan():0:-1: ++# BZ30647 %*5Lg:-nan():0:-1: ++# BZ30647 %5Lg:nan():1:5:nan: ++# BZ30647 %*5Lg:nan():0:5: ++# BZ30647 %5Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:nan(09A_Zaz):0:-1: + %5Lg:0x0p0:1:5:0x0: + %*5Lg:0x0p0:0:5: + # BZ12701 %5Lg:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:5: + %5Lg:infinity:0:-1: + %*5Lg:infinity:0:-1: +-%5Lg:+nan():0:-1: +-%*5Lg:+nan():0:-1: +-%5Lg:+nan(09A_Zaz):0:-1: +-%*5Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:+nan():0:-1: ++# BZ30647 %*5Lg:+nan():0:-1: ++# BZ30647 %5Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:+nan(09A_Zaz):0:-1: + # BZ12701 %5Lg:+0x0p0:0:-1: + # BZ12701 %*5Lg:+0x0p0:0:-1: + # BZ12701 %5Lg:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6Lg:-0x0p+0:0:-1: + %6Lg:-0x0p0:1:6:-0x0: + %*6Lg:-0x0p0:0:6: +-%6Lg:-nan(09A_Zaz):0:-1: +-%*6Lg:-nan(09A_Zaz):0:-1: +-%6Lg:-nan():1:6:-nan: +-%*6Lg:-nan():0:6: +-%6Lg:nan():1:5:nan: +-%*6Lg:nan():0:5: +-%6Lg:nan(09A_Zaz):0:-1: +-%*6Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:-nan():1:6:-nan: ++# BZ30647 %*6Lg:-nan():0:6: ++# BZ30647 %6Lg:nan():1:5:nan: ++# BZ30647 %*6Lg:nan():0:5: ++# BZ30647 %6Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:nan(09A_Zaz):0:-1: + %6Lg:0x0p0:1:5:0x0: + %*6Lg:0x0p0:0:5: + %6Lg:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:6: + %6Lg:infinity:0:-1: + %*6Lg:infinity:0:-1: +-%6Lg:+nan():1:6:nan: +-%*6Lg:+nan():0:6: +-%6Lg:+nan(09A_Zaz):0:-1: +-%*6Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:+nan():1:6:nan: ++# BZ30647 %*6Lg:+nan():0:6: ++# BZ30647 %6Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:+nan(09A_Zaz):0:-1: + %6Lg:+0x0p0:1:6:0x0: + %*6Lg:+0x0p0:0:6: + # BZ12701 %6Lg:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*33Lg:-0x0p+0:0:7: + %33Lg:-0x0p0:1:6:-0x0: + %*33Lg:-0x0p0:0:6: +-%33Lg:-nan(09A_Zaz):1:13:-nan: +-%*33Lg:-nan(09A_Zaz):0:13: +-%33Lg:-nan():1:6:-nan: +-%*33Lg:-nan():0:6: +-%33Lg:nan():1:5:nan: +-%*33Lg:nan():0:5: +-%33Lg:nan(09A_Zaz):1:12:nan: +-%*33Lg:nan(09A_Zaz):0:12: ++# BZ30647 %33Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*33Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %33Lg:-nan():1:6:-nan: ++# BZ30647 %*33Lg:-nan():0:6: ++# BZ30647 %33Lg:nan():1:5:nan: ++# BZ30647 %*33Lg:nan():0:5: ++# BZ30647 %33Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*33Lg:nan(09A_Zaz):0:12: + %33Lg:0x0p0:1:5:0x0: + %*33Lg:0x0p0:0:5: + %33Lg:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*33Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:33: + %33Lg:infinity:1:8:inf: + %*33Lg:infinity:0:8: +-%33Lg:+nan():1:6:nan: +-%*33Lg:+nan():0:6: +-%33Lg:+nan(09A_Zaz):1:13:nan: +-%*33Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %33Lg:+nan():1:6:nan: ++# BZ30647 %*33Lg:+nan():0:6: ++# BZ30647 %33Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*33Lg:+nan(09A_Zaz):0:13: + %33Lg:+0x0p0:1:6:0x0: + %*33Lg:+0x0p0:0:6: + %33Lg:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*50Lg:-0x0p+0:0:7: + %50Lg:-0x0p0:1:6:-0x0: + %*50Lg:-0x0p0:0:6: +-%50Lg:-nan(09A_Zaz):1:13:-nan: +-%*50Lg:-nan(09A_Zaz):0:13: +-%50Lg:-nan():1:6:-nan: +-%*50Lg:-nan():0:6: +-%50Lg:nan():1:5:nan: +-%*50Lg:nan():0:5: +-%50Lg:nan(09A_Zaz):1:12:nan: +-%*50Lg:nan(09A_Zaz):0:12: ++# BZ30647 %50Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*50Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %50Lg:-nan():1:6:-nan: ++# BZ30647 %*50Lg:-nan():0:6: ++# BZ30647 %50Lg:nan():1:5:nan: ++# BZ30647 %*50Lg:nan():0:5: ++# BZ30647 %50Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*50Lg:nan(09A_Zaz):0:12: + %50Lg:0x0p0:1:5:0x0: + %*50Lg:0x0p0:0:5: + %50Lg:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*50Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:36: + %50Lg:infinity:1:8:inf: + %*50Lg:infinity:0:8: +-%50Lg:+nan():1:6:nan: +-%*50Lg:+nan():0:6: +-%50Lg:+nan(09A_Zaz):1:13:nan: +-%*50Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %50Lg:+nan():1:6:nan: ++# BZ30647 %*50Lg:+nan():0:6: ++# BZ30647 %50Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*50Lg:+nan(09A_Zaz):0:13: + %50Lg:+0x0p0:1:6:0x0: + %*50Lg:+0x0p0:0:6: + %50Lg:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5Lg: -0x0p+0:0:-1: + # BZ12701 %5Lg: -0x0p0:0:-1: + # BZ12701 %*5Lg: -0x0p0:0:-1: +-%5Lg: -nan(09A_Zaz):0:-1: +-%*5Lg: -nan(09A_Zaz):0:-1: +-%5Lg: -nan():0:-1: +-%*5Lg: -nan():0:-1: +-%5Lg: nan():1:6:nan: +-%*5Lg: nan():0:6: +-%5Lg: nan(09A_Zaz):0:-1: +-%*5Lg: nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: -nan():0:-1: ++# BZ30647 %*5Lg: -nan():0:-1: ++# BZ30647 %5Lg: nan():1:6:nan: ++# BZ30647 %*5Lg: nan():0:6: ++# BZ30647 %5Lg: nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: nan(09A_Zaz):0:-1: + %5Lg: 0x0p0:1:6:0x0: + %*5Lg: 0x0p0:0:6: + # BZ12701 %5Lg: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5Lg: 0xf.ffffffffffffbffffffffffffcp+1020:0:6: + %5Lg: infinity:0:-1: + %*5Lg: infinity:0:-1: +-%5Lg: +nan():0:-1: +-%*5Lg: +nan():0:-1: +-%5Lg: +nan(09A_Zaz):0:-1: +-%*5Lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: +nan():0:-1: ++# BZ30647 %*5Lg: +nan():0:-1: ++# BZ30647 %5Lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: +nan(09A_Zaz):0:-1: + # BZ12701 %5Lg: +0x0p0:0:-1: + # BZ12701 %*5Lg: +0x0p0:0:-1: + # BZ12701 %5Lg: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*50Lg: -0x0p+0:0:8: + %50Lg: -0x0p0:1:7:-0x0: + %*50Lg: -0x0p0:0:7: +-%50Lg: -nan(09A_Zaz):1:14:-nan: +-%*50Lg: -nan(09A_Zaz):0:14: +-%50Lg: -nan():1:7:-nan: +-%*50Lg: -nan():0:7: +-%50Lg: nan():1:6:nan: +-%*50Lg: nan():0:6: +-%50Lg: nan(09A_Zaz):1:13:nan: +-%*50Lg: nan(09A_Zaz):0:13: ++# BZ30647 %50Lg: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*50Lg: -nan(09A_Zaz):0:14: ++# BZ30647 %50Lg: -nan():1:7:-nan: ++# BZ30647 %*50Lg: -nan():0:7: ++# BZ30647 %50Lg: nan():1:6:nan: ++# BZ30647 %*50Lg: nan():0:6: ++# BZ30647 %50Lg: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*50Lg: nan(09A_Zaz):0:13: + %50Lg: 0x0p0:1:6:0x0: + %*50Lg: 0x0p0:0:6: + %50Lg: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*50Lg: 0xf.ffffffffffffbffffffffffffcp+1020:0:37: + %50Lg: infinity:1:9:inf: + %*50Lg: infinity:0:9: +-%50Lg: +nan():1:7:nan: +-%*50Lg: +nan():0:7: +-%50Lg: +nan(09A_Zaz):1:14:nan: +-%*50Lg: +nan(09A_Zaz):0:14: ++# BZ30647 %50Lg: +nan():1:7:nan: ++# BZ30647 %*50Lg: +nan():0:7: ++# BZ30647 %50Lg: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*50Lg: +nan(09A_Zaz):0:14: + %50Lg: +0x0p0:1:7:0x0: + %*50Lg: +0x0p0:0:7: + %50Lg: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-gg.input +index 00e8a241e240fa13..ba2387a98dc705ed 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-gg.input ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-gg.input +@@ -16,14 +16,14 @@ + %*LG:-0X0P+0:0:7: + %LG:-0X0P0:1:6:-0x0: + %*LG:-0X0P0:0:6: +-%LG:-NAN(09A_Zaz):1:13:-nan: +-%*LG:-NAN(09A_Zaz):0:13: +-%LG:-NAN():1:6:-nan: +-%*LG:-NAN():0:6: +-%LG:NAN():1:5:nan: +-%*LG:NAN():0:5: +-%LG:NAN(09A_Zaz):1:12:nan: +-%*LG:NAN(09A_Zaz):0:12: ++# BZ30647 %LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %LG:-NAN():1:6:-nan: ++# BZ30647 %*LG:-NAN():0:6: ++# BZ30647 %LG:NAN():1:5:nan: ++# BZ30647 %*LG:NAN():0:5: ++# BZ30647 %LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LG:NAN(09A_Zaz):0:12: + %LG:0X0P0:1:5:0x0: + %*LG:0X0P0:0:5: + %LG:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36: + %LG:INFINITY:1:8:inf: + %*LG:INFINITY:0:8: +-%LG:+NAN():1:6:nan: +-%*LG:+NAN():0:6: +-%LG:+NAN(09A_Zaz):1:13:nan: +-%*LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %LG:+NAN():1:6:nan: ++# BZ30647 %*LG:+NAN():0:6: ++# BZ30647 %LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LG:+NAN(09A_Zaz):0:13: + %LG:+0X0P0:1:6:0x0: + %*LG:+0X0P0:0:6: + %LG:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1LG:-0X0P+0:0:-1: + %1LG:-0X0P0:0:-1: + %*1LG:-0X0P0:0:-1: +-%1LG:-NAN(09A_Zaz):0:-1: +-%*1LG:-NAN(09A_Zaz):0:-1: +-%1LG:-NAN():0:-1: +-%*1LG:-NAN():0:-1: +-%1LG:NAN():0:-1: +-%*1LG:NAN():0:-1: +-%1LG:NAN(09A_Zaz):0:-1: +-%*1LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:-NAN():0:-1: ++# BZ30647 %*1LG:-NAN():0:-1: ++# BZ30647 %1LG:NAN():0:-1: ++# BZ30647 %*1LG:NAN():0:-1: ++# BZ30647 %1LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:NAN(09A_Zaz):0:-1: + %1LG:0X0P0:1:1:0x0: + %*1LG:0X0P0:0:1: + %1LG:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:1: + %1LG:INFINITY:0:-1: + %*1LG:INFINITY:0:-1: +-%1LG:+NAN():0:-1: +-%*1LG:+NAN():0:-1: +-%1LG:+NAN(09A_Zaz):0:-1: +-%*1LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:+NAN():0:-1: ++# BZ30647 %*1LG:+NAN():0:-1: ++# BZ30647 %1LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:+NAN(09A_Zaz):0:-1: + %1LG:+0X0P0:0:-1: + %*1LG:+0X0P0:0:-1: + %1LG:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LG:-0X0P+0:0:2: + %2LG:-0X0P0:1:2:-0x0: + %*2LG:-0X0P0:0:2: +-%2LG:-NAN(09A_Zaz):0:-1: +-%*2LG:-NAN(09A_Zaz):0:-1: +-%2LG:-NAN():0:-1: +-%*2LG:-NAN():0:-1: +-%2LG:NAN():0:-1: +-%*2LG:NAN():0:-1: +-%2LG:NAN(09A_Zaz):0:-1: +-%*2LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:-NAN():0:-1: ++# BZ30647 %*2LG:-NAN():0:-1: ++# BZ30647 %2LG:NAN():0:-1: ++# BZ30647 %*2LG:NAN():0:-1: ++# BZ30647 %2LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:NAN(09A_Zaz):0:-1: + # BZ12701 %2LG:0X0P0:0:-1: + # BZ12701 %*2LG:0X0P0:0:-1: + # BZ12701 %2LG:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: + %2LG:INFINITY:0:-1: + %*2LG:INFINITY:0:-1: +-%2LG:+NAN():0:-1: +-%*2LG:+NAN():0:-1: +-%2LG:+NAN(09A_Zaz):0:-1: +-%*2LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:+NAN():0:-1: ++# BZ30647 %*2LG:+NAN():0:-1: ++# BZ30647 %2LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:+NAN(09A_Zaz):0:-1: + %2LG:+0X0P0:1:2:0x0: + %*2LG:+0X0P0:0:2: + %2LG:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LG:-0X0P+0:0:-1: + # BZ12701 %3LG:-0X0P0:0:-1: + # BZ12701 %*3LG:-0X0P0:0:-1: +-%3LG:-NAN(09A_Zaz):0:-1: +-%*3LG:-NAN(09A_Zaz):0:-1: +-%3LG:-NAN():0:-1: +-%*3LG:-NAN():0:-1: +-%3LG:NAN():1:3:nan: +-%*3LG:NAN():0:3: +-%3LG:NAN(09A_Zaz):1:3:nan: +-%*3LG:NAN(09A_Zaz):0:3: ++# BZ30647 %3LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LG:-NAN():0:-1: ++# BZ30647 %*3LG:-NAN():0:-1: ++# BZ30647 %3LG:NAN():1:3:nan: ++# BZ30647 %*3LG:NAN():0:3: ++# BZ30647 %3LG:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LG:NAN(09A_Zaz):0:3: + %3LG:0X0P0:1:3:0x0: + %*3LG:0X0P0:0:3: + %3LG:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:3: + %3LG:INFINITY:1:3:inf: + %*3LG:INFINITY:0:3: +-%3LG:+NAN():0:-1: +-%*3LG:+NAN():0:-1: +-%3LG:+NAN(09A_Zaz):0:-1: +-%*3LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LG:+NAN():0:-1: ++# BZ30647 %*3LG:+NAN():0:-1: ++# BZ30647 %3LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LG:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LG:+0X0P0:0:-1: + # BZ12701 %*3LG:+0X0P0:0:-1: + # BZ12701 %3LG:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4LG:-0X0P+0:0:4: + %4LG:-0X0P0:1:4:-0x0: + %*4LG:-0X0P0:0:4: +-%4LG:-NAN(09A_Zaz):1:4:-nan: +-%*4LG:-NAN(09A_Zaz):0:4: +-%4LG:-NAN():1:4:-nan: +-%*4LG:-NAN():0:4: +-%4LG:NAN():0:-1: +-%*4LG:NAN():0:-1: +-%4LG:NAN(09A_Zaz):0:-1: +-%*4LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LG:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LG:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LG:-NAN():1:4:-nan: ++# BZ30647 %*4LG:-NAN():0:4: ++# BZ30647 %4LG:NAN():0:-1: ++# BZ30647 %*4LG:NAN():0:-1: ++# BZ30647 %4LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LG:NAN(09A_Zaz):0:-1: + # BZ12701 %4LG:0X0P0:0:-1: + # BZ12701 %*4LG:0X0P0:0:-1: + # BZ12701 %4LG:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4: + %4LG:INFINITY:0:-1: + %*4LG:INFINITY:0:-1: +-%4LG:+NAN():1:4:nan: +-%*4LG:+NAN():0:4: +-%4LG:+NAN(09A_Zaz):1:4:nan: +-%*4LG:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LG:+NAN():1:4:nan: ++# BZ30647 %*4LG:+NAN():0:4: ++# BZ30647 %4LG:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LG:+NAN(09A_Zaz):0:4: + %4LG:+0X0P0:1:4:0x0: + %*4LG:+0X0P0:0:4: + %4LG:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5LG:-0X0P+0:0:-1: + # BZ12701 %5LG:-0X0P0:0:-1: + # BZ12701 %*5LG:-0X0P0:0:-1: +-%5LG:-NAN(09A_Zaz):0:-1: +-%*5LG:-NAN(09A_Zaz):0:-1: +-%5LG:-NAN():0:-1: +-%*5LG:-NAN():0:-1: +-%5LG:NAN():1:5:nan: +-%*5LG:NAN():0:5: +-%5LG:NAN(09A_Zaz):0:-1: +-%*5LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:-NAN():0:-1: ++# BZ30647 %*5LG:-NAN():0:-1: ++# BZ30647 %5LG:NAN():1:5:nan: ++# BZ30647 %*5LG:NAN():0:5: ++# BZ30647 %5LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:NAN(09A_Zaz):0:-1: + %5LG:0X0P0:1:5:0x0: + %*5LG:0X0P0:0:5: + # BZ12701 %5LG:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5: + %5LG:INFINITY:0:-1: + %*5LG:INFINITY:0:-1: +-%5LG:+NAN():0:-1: +-%*5LG:+NAN():0:-1: +-%5LG:+NAN(09A_Zaz):0:-1: +-%*5LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:+NAN():0:-1: ++# BZ30647 %*5LG:+NAN():0:-1: ++# BZ30647 %5LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:+NAN(09A_Zaz):0:-1: + # BZ12701 %5LG:+0X0P0:0:-1: + # BZ12701 %*5LG:+0X0P0:0:-1: + # BZ12701 %5LG:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6LG:-0X0P+0:0:-1: + %6LG:-0X0P0:1:6:-0x0: + %*6LG:-0X0P0:0:6: +-%6LG:-NAN(09A_Zaz):0:-1: +-%*6LG:-NAN(09A_Zaz):0:-1: +-%6LG:-NAN():1:6:-nan: +-%*6LG:-NAN():0:6: +-%6LG:NAN():1:5:nan: +-%*6LG:NAN():0:5: +-%6LG:NAN(09A_Zaz):0:-1: +-%*6LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:-NAN():1:6:-nan: ++# BZ30647 %*6LG:-NAN():0:6: ++# BZ30647 %6LG:NAN():1:5:nan: ++# BZ30647 %*6LG:NAN():0:5: ++# BZ30647 %6LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:NAN(09A_Zaz):0:-1: + %6LG:0X0P0:1:5:0x0: + %*6LG:0X0P0:0:5: + %6LG:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: + %6LG:INFINITY:0:-1: + %*6LG:INFINITY:0:-1: +-%6LG:+NAN():1:6:nan: +-%*6LG:+NAN():0:6: +-%6LG:+NAN(09A_Zaz):0:-1: +-%*6LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:+NAN():1:6:nan: ++# BZ30647 %*6LG:+NAN():0:6: ++# BZ30647 %6LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:+NAN(09A_Zaz):0:-1: + %6LG:+0X0P0:1:6:0x0: + %*6LG:+0X0P0:0:6: + # BZ12701 %6LG:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*33LG:-0X0P+0:0:7: + %33LG:-0X0P0:1:6:-0x0: + %*33LG:-0X0P0:0:6: +-%33LG:-NAN(09A_Zaz):1:13:-nan: +-%*33LG:-NAN(09A_Zaz):0:13: +-%33LG:-NAN():1:6:-nan: +-%*33LG:-NAN():0:6: +-%33LG:NAN():1:5:nan: +-%*33LG:NAN():0:5: +-%33LG:NAN(09A_Zaz):1:12:nan: +-%*33LG:NAN(09A_Zaz):0:12: ++# BZ30647 %33LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*33LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %33LG:-NAN():1:6:-nan: ++# BZ30647 %*33LG:-NAN():0:6: ++# BZ30647 %33LG:NAN():1:5:nan: ++# BZ30647 %*33LG:NAN():0:5: ++# BZ30647 %33LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*33LG:NAN(09A_Zaz):0:12: + %33LG:0X0P0:1:5:0x0: + %*33LG:0X0P0:0:5: + %33LG:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*33LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:33: + %33LG:INFINITY:1:8:inf: + %*33LG:INFINITY:0:8: +-%33LG:+NAN():1:6:nan: +-%*33LG:+NAN():0:6: +-%33LG:+NAN(09A_Zaz):1:13:nan: +-%*33LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %33LG:+NAN():1:6:nan: ++# BZ30647 %*33LG:+NAN():0:6: ++# BZ30647 %33LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*33LG:+NAN(09A_Zaz):0:13: + %33LG:+0X0P0:1:6:0x0: + %*33LG:+0X0P0:0:6: + %33LG:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*50LG:-0X0P+0:0:7: + %50LG:-0X0P0:1:6:-0x0: + %*50LG:-0X0P0:0:6: +-%50LG:-NAN(09A_Zaz):1:13:-nan: +-%*50LG:-NAN(09A_Zaz):0:13: +-%50LG:-NAN():1:6:-nan: +-%*50LG:-NAN():0:6: +-%50LG:NAN():1:5:nan: +-%*50LG:NAN():0:5: +-%50LG:NAN(09A_Zaz):1:12:nan: +-%*50LG:NAN(09A_Zaz):0:12: ++# BZ30647 %50LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*50LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %50LG:-NAN():1:6:-nan: ++# BZ30647 %*50LG:-NAN():0:6: ++# BZ30647 %50LG:NAN():1:5:nan: ++# BZ30647 %*50LG:NAN():0:5: ++# BZ30647 %50LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*50LG:NAN(09A_Zaz):0:12: + %50LG:0X0P0:1:5:0x0: + %*50LG:0X0P0:0:5: + %50LG:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*50LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36: + %50LG:INFINITY:1:8:inf: + %*50LG:INFINITY:0:8: +-%50LG:+NAN():1:6:nan: +-%*50LG:+NAN():0:6: +-%50LG:+NAN(09A_Zaz):1:13:nan: +-%*50LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %50LG:+NAN():1:6:nan: ++# BZ30647 %*50LG:+NAN():0:6: ++# BZ30647 %50LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*50LG:+NAN(09A_Zaz):0:13: + %50LG:+0X0P0:1:6:0x0: + %*50LG:+0X0P0:0:6: + %50LG:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5LG: -0X0P+0:0:-1: + # BZ12701 %5LG: -0X0P0:0:-1: + # BZ12701 %*5LG: -0X0P0:0:-1: +-%5LG: -NAN(09A_Zaz):0:-1: +-%*5LG: -NAN(09A_Zaz):0:-1: +-%5LG: -NAN():0:-1: +-%*5LG: -NAN():0:-1: +-%5LG: NAN():1:6:nan: +-%*5LG: NAN():0:6: +-%5LG: NAN(09A_Zaz):0:-1: +-%*5LG: NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: -NAN():0:-1: ++# BZ30647 %*5LG: -NAN():0:-1: ++# BZ30647 %5LG: NAN():1:6:nan: ++# BZ30647 %*5LG: NAN():0:6: ++# BZ30647 %5LG: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: NAN(09A_Zaz):0:-1: + %5LG: 0X0P0:1:6:0x0: + %*5LG: 0X0P0:0:6: + # BZ12701 %5LG: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5LG: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: + %5LG: INFINITY:0:-1: + %*5LG: INFINITY:0:-1: +-%5LG: +NAN():0:-1: +-%*5LG: +NAN():0:-1: +-%5LG: +NAN(09A_Zaz):0:-1: +-%*5LG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: +NAN():0:-1: ++# BZ30647 %*5LG: +NAN():0:-1: ++# BZ30647 %5LG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: +NAN(09A_Zaz):0:-1: + # BZ12701 %5LG: +0X0P0:0:-1: + # BZ12701 %*5LG: +0X0P0:0:-1: + # BZ12701 %5LG: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*50LG: -0X0P+0:0:8: + %50LG: -0X0P0:1:7:-0x0: + %*50LG: -0X0P0:0:7: +-%50LG: -NAN(09A_Zaz):1:14:-nan: +-%*50LG: -NAN(09A_Zaz):0:14: +-%50LG: -NAN():1:7:-nan: +-%*50LG: -NAN():0:7: +-%50LG: NAN():1:6:nan: +-%*50LG: NAN():0:6: +-%50LG: NAN(09A_Zaz):1:13:nan: +-%*50LG: NAN(09A_Zaz):0:13: ++# BZ30647 %50LG: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*50LG: -NAN(09A_Zaz):0:14: ++# BZ30647 %50LG: -NAN():1:7:-nan: ++# BZ30647 %*50LG: -NAN():0:7: ++# BZ30647 %50LG: NAN():1:6:nan: ++# BZ30647 %*50LG: NAN():0:6: ++# BZ30647 %50LG: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*50LG: NAN(09A_Zaz):0:13: + %50LG: 0X0P0:1:6:0x0: + %*50LG: 0X0P0:0:6: + %50LG: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*50LG: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: + %50LG: INFINITY:1:9:inf: + %*50LG: INFINITY:0:9: +-%50LG: +NAN():1:7:nan: +-%*50LG: +NAN():0:7: +-%50LG: +NAN(09A_Zaz):1:14:nan: +-%*50LG: +NAN(09A_Zaz):0:14: ++# BZ30647 %50LG: +NAN():1:7:nan: ++# BZ30647 %*50LG: +NAN():0:7: ++# BZ30647 %50LG: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*50LG: +NAN(09A_Zaz):0:14: + %50LG: +0X0P0:1:7:0x0: + %*50LG: +0X0P0:0:7: + %50LG: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-a.input +index 0ed781ea87fb4b4a..58e0803be5d08f44 100644 +--- a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-a.input ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-a.input +@@ -16,14 +16,14 @@ + %*La:-0x0p+0:0:7: + %La:-0x0p0:1:6:-0x0: + %*La:-0x0p0:0:6: +-%La:-nan(09A_Zaz):1:13:-nan: +-%*La:-nan(09A_Zaz):0:13: +-%La:-nan():1:6:-nan: +-%*La:-nan():0:6: +-%La:nan():1:5:nan: +-%*La:nan():0:5: +-%La:nan(09A_Zaz):1:12:nan: +-%*La:nan(09A_Zaz):0:12: ++# BZ30647 %La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*La:-nan(09A_Zaz):0:13: ++# BZ30647 %La:-nan():1:6:-nan: ++# BZ30647 %*La:-nan():0:6: ++# BZ30647 %La:nan():1:5:nan: ++# BZ30647 %*La:nan():0:5: ++# BZ30647 %La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*La:nan(09A_Zaz):0:12: + %La:0x0p0:1:5:0x0: + %*La:0x0p0:0:5: + %La:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*La:0xf.fffffffffffffffp+16380:0:26: + %La:infinity:1:8:inf: + %*La:infinity:0:8: +-%La:+nan():1:6:nan: +-%*La:+nan():0:6: +-%La:+nan(09A_Zaz):1:13:nan: +-%*La:+nan(09A_Zaz):0:13: ++# BZ30647 %La:+nan():1:6:nan: ++# BZ30647 %*La:+nan():0:6: ++# BZ30647 %La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*La:+nan(09A_Zaz):0:13: + %La:+0x0p0:1:6:0x0: + %*La:+0x0p0:0:6: + %La:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1La:-0x0p+0:0:-1: + %1La:-0x0p0:0:-1: + %*1La:-0x0p0:0:-1: +-%1La:-nan(09A_Zaz):0:-1: +-%*1La:-nan(09A_Zaz):0:-1: +-%1La:-nan():0:-1: +-%*1La:-nan():0:-1: +-%1La:nan():0:-1: +-%*1La:nan():0:-1: +-%1La:nan(09A_Zaz):0:-1: +-%*1La:nan(09A_Zaz):0:-1: ++# BZ30647 %1La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:-nan(09A_Zaz):0:-1: ++# BZ30647 %1La:-nan():0:-1: ++# BZ30647 %*1La:-nan():0:-1: ++# BZ30647 %1La:nan():0:-1: ++# BZ30647 %*1La:nan():0:-1: ++# BZ30647 %1La:nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:nan(09A_Zaz):0:-1: + %1La:0x0p0:1:1:0x0: + %*1La:0x0p0:0:1: + %1La:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1La:0xf.fffffffffffffffp+16380:0:1: + %1La:infinity:0:-1: + %*1La:infinity:0:-1: +-%1La:+nan():0:-1: +-%*1La:+nan():0:-1: +-%1La:+nan(09A_Zaz):0:-1: +-%*1La:+nan(09A_Zaz):0:-1: ++# BZ30647 %1La:+nan():0:-1: ++# BZ30647 %*1La:+nan():0:-1: ++# BZ30647 %1La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:+nan(09A_Zaz):0:-1: + %1La:+0x0p0:0:-1: + %*1La:+0x0p0:0:-1: + %1La:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2La:-0x0p+0:0:2: + %2La:-0x0p0:1:2:-0x0: + %*2La:-0x0p0:0:2: +-%2La:-nan(09A_Zaz):0:-1: +-%*2La:-nan(09A_Zaz):0:-1: +-%2La:-nan():0:-1: +-%*2La:-nan():0:-1: +-%2La:nan():0:-1: +-%*2La:nan():0:-1: +-%2La:nan(09A_Zaz):0:-1: +-%*2La:nan(09A_Zaz):0:-1: ++# BZ30647 %2La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:-nan(09A_Zaz):0:-1: ++# BZ30647 %2La:-nan():0:-1: ++# BZ30647 %*2La:-nan():0:-1: ++# BZ30647 %2La:nan():0:-1: ++# BZ30647 %*2La:nan():0:-1: ++# BZ30647 %2La:nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:nan(09A_Zaz):0:-1: + # BZ12701 %2La:0x0p0:0:-1: + # BZ12701 %*2La:0x0p0:0:-1: + # BZ12701 %2La:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2La:0xf.fffffffffffffffp+16380:0:-1: + %2La:infinity:0:-1: + %*2La:infinity:0:-1: +-%2La:+nan():0:-1: +-%*2La:+nan():0:-1: +-%2La:+nan(09A_Zaz):0:-1: +-%*2La:+nan(09A_Zaz):0:-1: ++# BZ30647 %2La:+nan():0:-1: ++# BZ30647 %*2La:+nan():0:-1: ++# BZ30647 %2La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:+nan(09A_Zaz):0:-1: + %2La:+0x0p0:1:2:0x0: + %*2La:+0x0p0:0:2: + %2La:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3La:-0x0p+0:0:-1: + # BZ12701 %3La:-0x0p0:0:-1: + # BZ12701 %*3La:-0x0p0:0:-1: +-%3La:-nan(09A_Zaz):0:-1: +-%*3La:-nan(09A_Zaz):0:-1: +-%3La:-nan():0:-1: +-%*3La:-nan():0:-1: +-%3La:nan():1:3:nan: +-%*3La:nan():0:3: +-%3La:nan(09A_Zaz):1:3:nan: +-%*3La:nan(09A_Zaz):0:3: ++# BZ30647 %3La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3La:-nan(09A_Zaz):0:-1: ++# BZ30647 %3La:-nan():0:-1: ++# BZ30647 %*3La:-nan():0:-1: ++# BZ30647 %3La:nan():1:3:nan: ++# BZ30647 %*3La:nan():0:3: ++# BZ30647 %3La:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3La:nan(09A_Zaz):0:3: + %3La:0x0p0:1:3:0x0: + %*3La:0x0p0:0:3: + %3La:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3La:0xf.fffffffffffffffp+16380:0:3: + %3La:infinity:1:3:inf: + %*3La:infinity:0:3: +-%3La:+nan():0:-1: +-%*3La:+nan():0:-1: +-%3La:+nan(09A_Zaz):0:-1: +-%*3La:+nan(09A_Zaz):0:-1: ++# BZ30647 %3La:+nan():0:-1: ++# BZ30647 %*3La:+nan():0:-1: ++# BZ30647 %3La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3La:+nan(09A_Zaz):0:-1: + # BZ12701 %3La:+0x0p0:0:-1: + # BZ12701 %*3La:+0x0p0:0:-1: + # BZ12701 %3La:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4La:-0x0p+0:0:4: + %4La:-0x0p0:1:4:-0x0: + %*4La:-0x0p0:0:4: +-%4La:-nan(09A_Zaz):1:4:-nan: +-%*4La:-nan(09A_Zaz):0:4: +-%4La:-nan():1:4:-nan: +-%*4La:-nan():0:4: +-%4La:nan():0:-1: +-%*4La:nan():0:-1: +-%4La:nan(09A_Zaz):0:-1: +-%*4La:nan(09A_Zaz):0:-1: ++# BZ30647 %4La:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4La:-nan(09A_Zaz):0:4: ++# BZ30647 %4La:-nan():1:4:-nan: ++# BZ30647 %*4La:-nan():0:4: ++# BZ30647 %4La:nan():0:-1: ++# BZ30647 %*4La:nan():0:-1: ++# BZ30647 %4La:nan(09A_Zaz):0:-1: ++# BZ30647 %*4La:nan(09A_Zaz):0:-1: + # BZ12701 %4La:0x0p0:0:-1: + # BZ12701 %*4La:0x0p0:0:-1: + # BZ12701 %4La:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4La:0xf.fffffffffffffffp+16380:0:4: + %4La:infinity:0:-1: + %*4La:infinity:0:-1: +-%4La:+nan():1:4:nan: +-%*4La:+nan():0:4: +-%4La:+nan(09A_Zaz):1:4:nan: +-%*4La:+nan(09A_Zaz):0:4: ++# BZ30647 %4La:+nan():1:4:nan: ++# BZ30647 %*4La:+nan():0:4: ++# BZ30647 %4La:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4La:+nan(09A_Zaz):0:4: + %4La:+0x0p0:1:4:0x0: + %*4La:+0x0p0:0:4: + %4La:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5La:-0x0p+0:0:-1: + # BZ12701 %5La:-0x0p0:0:-1: + # BZ12701 %*5La:-0x0p0:0:-1: +-%5La:-nan(09A_Zaz):0:-1: +-%*5La:-nan(09A_Zaz):0:-1: +-%5La:-nan():0:-1: +-%*5La:-nan():0:-1: +-%5La:nan():1:5:nan: +-%*5La:nan():0:5: +-%5La:nan(09A_Zaz):0:-1: +-%*5La:nan(09A_Zaz):0:-1: ++# BZ30647 %5La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:-nan(09A_Zaz):0:-1: ++# BZ30647 %5La:-nan():0:-1: ++# BZ30647 %*5La:-nan():0:-1: ++# BZ30647 %5La:nan():1:5:nan: ++# BZ30647 %*5La:nan():0:5: ++# BZ30647 %5La:nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:nan(09A_Zaz):0:-1: + %5La:0x0p0:1:5:0x0: + %*5La:0x0p0:0:5: + # BZ12701 %5La:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5La:0xf.fffffffffffffffp+16380:0:5: + %5La:infinity:0:-1: + %*5La:infinity:0:-1: +-%5La:+nan():0:-1: +-%*5La:+nan():0:-1: +-%5La:+nan(09A_Zaz):0:-1: +-%*5La:+nan(09A_Zaz):0:-1: ++# BZ30647 %5La:+nan():0:-1: ++# BZ30647 %*5La:+nan():0:-1: ++# BZ30647 %5La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:+nan(09A_Zaz):0:-1: + # BZ12701 %5La:+0x0p0:0:-1: + # BZ12701 %*5La:+0x0p0:0:-1: + # BZ12701 %5La:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6La:-0x0p+0:0:-1: + %6La:-0x0p0:1:6:-0x0: + %*6La:-0x0p0:0:6: +-%6La:-nan(09A_Zaz):0:-1: +-%*6La:-nan(09A_Zaz):0:-1: +-%6La:-nan():1:6:-nan: +-%*6La:-nan():0:6: +-%6La:nan():1:5:nan: +-%*6La:nan():0:5: +-%6La:nan(09A_Zaz):0:-1: +-%*6La:nan(09A_Zaz):0:-1: ++# BZ30647 %6La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:-nan(09A_Zaz):0:-1: ++# BZ30647 %6La:-nan():1:6:-nan: ++# BZ30647 %*6La:-nan():0:6: ++# BZ30647 %6La:nan():1:5:nan: ++# BZ30647 %*6La:nan():0:5: ++# BZ30647 %6La:nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:nan(09A_Zaz):0:-1: + %6La:0x0p0:1:5:0x0: + %*6La:0x0p0:0:5: + %6La:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6La:0xf.fffffffffffffffp+16380:0:6: + %6La:infinity:0:-1: + %*6La:infinity:0:-1: +-%6La:+nan():1:6:nan: +-%*6La:+nan():0:6: +-%6La:+nan(09A_Zaz):0:-1: +-%*6La:+nan(09A_Zaz):0:-1: ++# BZ30647 %6La:+nan():1:6:nan: ++# BZ30647 %*6La:+nan():0:6: ++# BZ30647 %6La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:+nan(09A_Zaz):0:-1: + %6La:+0x0p0:1:6:0x0: + %*6La:+0x0p0:0:6: + # BZ12701 %6La:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*22La:-0x0p+0:0:7: + %22La:-0x0p0:1:6:-0x0: + %*22La:-0x0p0:0:6: +-%22La:-nan(09A_Zaz):1:13:-nan: +-%*22La:-nan(09A_Zaz):0:13: +-%22La:-nan():1:6:-nan: +-%*22La:-nan():0:6: +-%22La:nan():1:5:nan: +-%*22La:nan():0:5: +-%22La:nan(09A_Zaz):1:12:nan: +-%*22La:nan(09A_Zaz):0:12: ++# BZ30647 %22La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*22La:-nan(09A_Zaz):0:13: ++# BZ30647 %22La:-nan():1:6:-nan: ++# BZ30647 %*22La:-nan():0:6: ++# BZ30647 %22La:nan():1:5:nan: ++# BZ30647 %*22La:nan():0:5: ++# BZ30647 %22La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*22La:nan(09A_Zaz):0:12: + %22La:0x0p0:1:5:0x0: + %*22La:0x0p0:0:5: + %22La:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*22La:0xf.fffffffffffffffp+16380:0:22: + %22La:infinity:1:8:inf: + %*22La:infinity:0:8: +-%22La:+nan():1:6:nan: +-%*22La:+nan():0:6: +-%22La:+nan(09A_Zaz):1:13:nan: +-%*22La:+nan(09A_Zaz):0:13: ++# BZ30647 %22La:+nan():1:6:nan: ++# BZ30647 %*22La:+nan():0:6: ++# BZ30647 %22La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*22La:+nan(09A_Zaz):0:13: + %22La:+0x0p0:1:6:0x0: + %*22La:+0x0p0:0:6: + %22La:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*37La:-0x0p+0:0:7: + %37La:-0x0p0:1:6:-0x0: + %*37La:-0x0p0:0:6: +-%37La:-nan(09A_Zaz):1:13:-nan: +-%*37La:-nan(09A_Zaz):0:13: +-%37La:-nan():1:6:-nan: +-%*37La:-nan():0:6: +-%37La:nan():1:5:nan: +-%*37La:nan():0:5: +-%37La:nan(09A_Zaz):1:12:nan: +-%*37La:nan(09A_Zaz):0:12: ++# BZ30647 %37La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*37La:-nan(09A_Zaz):0:13: ++# BZ30647 %37La:-nan():1:6:-nan: ++# BZ30647 %*37La:-nan():0:6: ++# BZ30647 %37La:nan():1:5:nan: ++# BZ30647 %*37La:nan():0:5: ++# BZ30647 %37La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*37La:nan(09A_Zaz):0:12: + %37La:0x0p0:1:5:0x0: + %*37La:0x0p0:0:5: + %37La:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*37La:0xf.fffffffffffffffp+16380:0:26: + %37La:infinity:1:8:inf: + %*37La:infinity:0:8: +-%37La:+nan():1:6:nan: +-%*37La:+nan():0:6: +-%37La:+nan(09A_Zaz):1:13:nan: +-%*37La:+nan(09A_Zaz):0:13: ++# BZ30647 %37La:+nan():1:6:nan: ++# BZ30647 %*37La:+nan():0:6: ++# BZ30647 %37La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*37La:+nan(09A_Zaz):0:13: + %37La:+0x0p0:1:6:0x0: + %*37La:+0x0p0:0:6: + %37La:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5La: -0x0p+0:0:-1: + # BZ12701 %5La: -0x0p0:0:-1: + # BZ12701 %*5La: -0x0p0:0:-1: +-%5La: -nan(09A_Zaz):0:-1: +-%*5La: -nan(09A_Zaz):0:-1: +-%5La: -nan():0:-1: +-%*5La: -nan():0:-1: +-%5La: nan():1:6:nan: +-%*5La: nan():0:6: +-%5La: nan(09A_Zaz):0:-1: +-%*5La: nan(09A_Zaz):0:-1: ++# BZ30647 %5La: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: -nan(09A_Zaz):0:-1: ++# BZ30647 %5La: -nan():0:-1: ++# BZ30647 %*5La: -nan():0:-1: ++# BZ30647 %5La: nan():1:6:nan: ++# BZ30647 %*5La: nan():0:6: ++# BZ30647 %5La: nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: nan(09A_Zaz):0:-1: + %5La: 0x0p0:1:6:0x0: + %*5La: 0x0p0:0:6: + # BZ12701 %5La: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5La: 0xf.fffffffffffffffp+16380:0:6: + %5La: infinity:0:-1: + %*5La: infinity:0:-1: +-%5La: +nan():0:-1: +-%*5La: +nan():0:-1: +-%5La: +nan(09A_Zaz):0:-1: +-%*5La: +nan(09A_Zaz):0:-1: ++# BZ30647 %5La: +nan():0:-1: ++# BZ30647 %*5La: +nan():0:-1: ++# BZ30647 %5La: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: +nan(09A_Zaz):0:-1: + # BZ12701 %5La: +0x0p0:0:-1: + # BZ12701 %*5La: +0x0p0:0:-1: + # BZ12701 %5La: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*37La: -0x0p+0:0:8: + %37La: -0x0p0:1:7:-0x0: + %*37La: -0x0p0:0:7: +-%37La: -nan(09A_Zaz):1:14:-nan: +-%*37La: -nan(09A_Zaz):0:14: +-%37La: -nan():1:7:-nan: +-%*37La: -nan():0:7: +-%37La: nan():1:6:nan: +-%*37La: nan():0:6: +-%37La: nan(09A_Zaz):1:13:nan: +-%*37La: nan(09A_Zaz):0:13: ++# BZ30647 %37La: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*37La: -nan(09A_Zaz):0:14: ++# BZ30647 %37La: -nan():1:7:-nan: ++# BZ30647 %*37La: -nan():0:7: ++# BZ30647 %37La: nan():1:6:nan: ++# BZ30647 %*37La: nan():0:6: ++# BZ30647 %37La: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*37La: nan(09A_Zaz):0:13: + %37La: 0x0p0:1:6:0x0: + %*37La: 0x0p0:0:6: + %37La: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*37La: 0xf.fffffffffffffffp+16380:0:27: + %37La: infinity:1:9:inf: + %*37La: infinity:0:9: +-%37La: +nan():1:7:nan: +-%*37La: +nan():0:7: +-%37La: +nan(09A_Zaz):1:14:nan: +-%*37La: +nan(09A_Zaz):0:14: ++# BZ30647 %37La: +nan():1:7:nan: ++# BZ30647 %*37La: +nan():0:7: ++# BZ30647 %37La: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*37La: +nan(09A_Zaz):0:14: + %37La: +0x0p0:1:7:0x0: + %*37La: +0x0p0:0:7: + %37La: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-aa.input +index 231fc78d225363d5..ef7d64bcbe286b51 100644 +--- a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-aa.input ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-aa.input +@@ -16,14 +16,14 @@ + %*LA:-0X0P+0:0:7: + %LA:-0X0P0:1:6:-0x0: + %*LA:-0X0P0:0:6: +-%LA:-NAN(09A_Zaz):1:13:-nan: +-%*LA:-NAN(09A_Zaz):0:13: +-%LA:-NAN():1:6:-nan: +-%*LA:-NAN():0:6: +-%LA:NAN():1:5:nan: +-%*LA:NAN():0:5: +-%LA:NAN(09A_Zaz):1:12:nan: +-%*LA:NAN(09A_Zaz):0:12: ++# BZ30647 %LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %LA:-NAN():1:6:-nan: ++# BZ30647 %*LA:-NAN():0:6: ++# BZ30647 %LA:NAN():1:5:nan: ++# BZ30647 %*LA:NAN():0:5: ++# BZ30647 %LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LA:NAN(09A_Zaz):0:12: + %LA:0X0P0:1:5:0x0: + %*LA:0X0P0:0:5: + %LA:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*LA:0XF.FFFFFFFFFFFFFFFP+16380:0:26: + %LA:INFINITY:1:8:inf: + %*LA:INFINITY:0:8: +-%LA:+NAN():1:6:nan: +-%*LA:+NAN():0:6: +-%LA:+NAN(09A_Zaz):1:13:nan: +-%*LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %LA:+NAN():1:6:nan: ++# BZ30647 %*LA:+NAN():0:6: ++# BZ30647 %LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LA:+NAN(09A_Zaz):0:13: + %LA:+0X0P0:1:6:0x0: + %*LA:+0X0P0:0:6: + %LA:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1LA:-0X0P+0:0:-1: + %1LA:-0X0P0:0:-1: + %*1LA:-0X0P0:0:-1: +-%1LA:-NAN(09A_Zaz):0:-1: +-%*1LA:-NAN(09A_Zaz):0:-1: +-%1LA:-NAN():0:-1: +-%*1LA:-NAN():0:-1: +-%1LA:NAN():0:-1: +-%*1LA:NAN():0:-1: +-%1LA:NAN(09A_Zaz):0:-1: +-%*1LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:-NAN():0:-1: ++# BZ30647 %*1LA:-NAN():0:-1: ++# BZ30647 %1LA:NAN():0:-1: ++# BZ30647 %*1LA:NAN():0:-1: ++# BZ30647 %1LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:NAN(09A_Zaz):0:-1: + %1LA:0X0P0:1:1:0x0: + %*1LA:0X0P0:0:1: + %1LA:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LA:0XF.FFFFFFFFFFFFFFFP+16380:0:1: + %1LA:INFINITY:0:-1: + %*1LA:INFINITY:0:-1: +-%1LA:+NAN():0:-1: +-%*1LA:+NAN():0:-1: +-%1LA:+NAN(09A_Zaz):0:-1: +-%*1LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:+NAN():0:-1: ++# BZ30647 %*1LA:+NAN():0:-1: ++# BZ30647 %1LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:+NAN(09A_Zaz):0:-1: + %1LA:+0X0P0:0:-1: + %*1LA:+0X0P0:0:-1: + %1LA:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LA:-0X0P+0:0:2: + %2LA:-0X0P0:1:2:-0x0: + %*2LA:-0X0P0:0:2: +-%2LA:-NAN(09A_Zaz):0:-1: +-%*2LA:-NAN(09A_Zaz):0:-1: +-%2LA:-NAN():0:-1: +-%*2LA:-NAN():0:-1: +-%2LA:NAN():0:-1: +-%*2LA:NAN():0:-1: +-%2LA:NAN(09A_Zaz):0:-1: +-%*2LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:-NAN():0:-1: ++# BZ30647 %*2LA:-NAN():0:-1: ++# BZ30647 %2LA:NAN():0:-1: ++# BZ30647 %*2LA:NAN():0:-1: ++# BZ30647 %2LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:NAN(09A_Zaz):0:-1: + # BZ12701 %2LA:0X0P0:0:-1: + # BZ12701 %*2LA:0X0P0:0:-1: + # BZ12701 %2LA:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2LA:0XF.FFFFFFFFFFFFFFFP+16380:0:-1: + %2LA:INFINITY:0:-1: + %*2LA:INFINITY:0:-1: +-%2LA:+NAN():0:-1: +-%*2LA:+NAN():0:-1: +-%2LA:+NAN(09A_Zaz):0:-1: +-%*2LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:+NAN():0:-1: ++# BZ30647 %*2LA:+NAN():0:-1: ++# BZ30647 %2LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:+NAN(09A_Zaz):0:-1: + %2LA:+0X0P0:1:2:0x0: + %*2LA:+0X0P0:0:2: + %2LA:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LA:-0X0P+0:0:-1: + # BZ12701 %3LA:-0X0P0:0:-1: + # BZ12701 %*3LA:-0X0P0:0:-1: +-%3LA:-NAN(09A_Zaz):0:-1: +-%*3LA:-NAN(09A_Zaz):0:-1: +-%3LA:-NAN():0:-1: +-%*3LA:-NAN():0:-1: +-%3LA:NAN():1:3:nan: +-%*3LA:NAN():0:3: +-%3LA:NAN(09A_Zaz):1:3:nan: +-%*3LA:NAN(09A_Zaz):0:3: ++# BZ30647 %3LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LA:-NAN():0:-1: ++# BZ30647 %*3LA:-NAN():0:-1: ++# BZ30647 %3LA:NAN():1:3:nan: ++# BZ30647 %*3LA:NAN():0:3: ++# BZ30647 %3LA:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LA:NAN(09A_Zaz):0:3: + %3LA:0X0P0:1:3:0x0: + %*3LA:0X0P0:0:3: + %3LA:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LA:0XF.FFFFFFFFFFFFFFFP+16380:0:3: + %3LA:INFINITY:1:3:inf: + %*3LA:INFINITY:0:3: +-%3LA:+NAN():0:-1: +-%*3LA:+NAN():0:-1: +-%3LA:+NAN(09A_Zaz):0:-1: +-%*3LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LA:+NAN():0:-1: ++# BZ30647 %*3LA:+NAN():0:-1: ++# BZ30647 %3LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LA:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LA:+0X0P0:0:-1: + # BZ12701 %*3LA:+0X0P0:0:-1: + # BZ12701 %3LA:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4LA:-0X0P+0:0:4: + %4LA:-0X0P0:1:4:-0x0: + %*4LA:-0X0P0:0:4: +-%4LA:-NAN(09A_Zaz):1:4:-nan: +-%*4LA:-NAN(09A_Zaz):0:4: +-%4LA:-NAN():1:4:-nan: +-%*4LA:-NAN():0:4: +-%4LA:NAN():0:-1: +-%*4LA:NAN():0:-1: +-%4LA:NAN(09A_Zaz):0:-1: +-%*4LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LA:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LA:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LA:-NAN():1:4:-nan: ++# BZ30647 %*4LA:-NAN():0:4: ++# BZ30647 %4LA:NAN():0:-1: ++# BZ30647 %*4LA:NAN():0:-1: ++# BZ30647 %4LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LA:NAN(09A_Zaz):0:-1: + # BZ12701 %4LA:0X0P0:0:-1: + # BZ12701 %*4LA:0X0P0:0:-1: + # BZ12701 %4LA:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4LA:0XF.FFFFFFFFFFFFFFFP+16380:0:4: + %4LA:INFINITY:0:-1: + %*4LA:INFINITY:0:-1: +-%4LA:+NAN():1:4:nan: +-%*4LA:+NAN():0:4: +-%4LA:+NAN(09A_Zaz):1:4:nan: +-%*4LA:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LA:+NAN():1:4:nan: ++# BZ30647 %*4LA:+NAN():0:4: ++# BZ30647 %4LA:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LA:+NAN(09A_Zaz):0:4: + %4LA:+0X0P0:1:4:0x0: + %*4LA:+0X0P0:0:4: + %4LA:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5LA:-0X0P+0:0:-1: + # BZ12701 %5LA:-0X0P0:0:-1: + # BZ12701 %*5LA:-0X0P0:0:-1: +-%5LA:-NAN(09A_Zaz):0:-1: +-%*5LA:-NAN(09A_Zaz):0:-1: +-%5LA:-NAN():0:-1: +-%*5LA:-NAN():0:-1: +-%5LA:NAN():1:5:nan: +-%*5LA:NAN():0:5: +-%5LA:NAN(09A_Zaz):0:-1: +-%*5LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:-NAN():0:-1: ++# BZ30647 %*5LA:-NAN():0:-1: ++# BZ30647 %5LA:NAN():1:5:nan: ++# BZ30647 %*5LA:NAN():0:5: ++# BZ30647 %5LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:NAN(09A_Zaz):0:-1: + %5LA:0X0P0:1:5:0x0: + %*5LA:0X0P0:0:5: + # BZ12701 %5LA:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5LA:0XF.FFFFFFFFFFFFFFFP+16380:0:5: + %5LA:INFINITY:0:-1: + %*5LA:INFINITY:0:-1: +-%5LA:+NAN():0:-1: +-%*5LA:+NAN():0:-1: +-%5LA:+NAN(09A_Zaz):0:-1: +-%*5LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:+NAN():0:-1: ++# BZ30647 %*5LA:+NAN():0:-1: ++# BZ30647 %5LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:+NAN(09A_Zaz):0:-1: + # BZ12701 %5LA:+0X0P0:0:-1: + # BZ12701 %*5LA:+0X0P0:0:-1: + # BZ12701 %5LA:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6LA:-0X0P+0:0:-1: + %6LA:-0X0P0:1:6:-0x0: + %*6LA:-0X0P0:0:6: +-%6LA:-NAN(09A_Zaz):0:-1: +-%*6LA:-NAN(09A_Zaz):0:-1: +-%6LA:-NAN():1:6:-nan: +-%*6LA:-NAN():0:6: +-%6LA:NAN():1:5:nan: +-%*6LA:NAN():0:5: +-%6LA:NAN(09A_Zaz):0:-1: +-%*6LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:-NAN():1:6:-nan: ++# BZ30647 %*6LA:-NAN():0:6: ++# BZ30647 %6LA:NAN():1:5:nan: ++# BZ30647 %*6LA:NAN():0:5: ++# BZ30647 %6LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:NAN(09A_Zaz):0:-1: + %6LA:0X0P0:1:5:0x0: + %*6LA:0X0P0:0:5: + %6LA:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6LA:0XF.FFFFFFFFFFFFFFFP+16380:0:6: + %6LA:INFINITY:0:-1: + %*6LA:INFINITY:0:-1: +-%6LA:+NAN():1:6:nan: +-%*6LA:+NAN():0:6: +-%6LA:+NAN(09A_Zaz):0:-1: +-%*6LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:+NAN():1:6:nan: ++# BZ30647 %*6LA:+NAN():0:6: ++# BZ30647 %6LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:+NAN(09A_Zaz):0:-1: + %6LA:+0X0P0:1:6:0x0: + %*6LA:+0X0P0:0:6: + # BZ12701 %6LA:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*22LA:-0X0P+0:0:7: + %22LA:-0X0P0:1:6:-0x0: + %*22LA:-0X0P0:0:6: +-%22LA:-NAN(09A_Zaz):1:13:-nan: +-%*22LA:-NAN(09A_Zaz):0:13: +-%22LA:-NAN():1:6:-nan: +-%*22LA:-NAN():0:6: +-%22LA:NAN():1:5:nan: +-%*22LA:NAN():0:5: +-%22LA:NAN(09A_Zaz):1:12:nan: +-%*22LA:NAN(09A_Zaz):0:12: ++# BZ30647 %22LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*22LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %22LA:-NAN():1:6:-nan: ++# BZ30647 %*22LA:-NAN():0:6: ++# BZ30647 %22LA:NAN():1:5:nan: ++# BZ30647 %*22LA:NAN():0:5: ++# BZ30647 %22LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*22LA:NAN(09A_Zaz):0:12: + %22LA:0X0P0:1:5:0x0: + %*22LA:0X0P0:0:5: + %22LA:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*22LA:0XF.FFFFFFFFFFFFFFFP+16380:0:22: + %22LA:INFINITY:1:8:inf: + %*22LA:INFINITY:0:8: +-%22LA:+NAN():1:6:nan: +-%*22LA:+NAN():0:6: +-%22LA:+NAN(09A_Zaz):1:13:nan: +-%*22LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %22LA:+NAN():1:6:nan: ++# BZ30647 %*22LA:+NAN():0:6: ++# BZ30647 %22LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*22LA:+NAN(09A_Zaz):0:13: + %22LA:+0X0P0:1:6:0x0: + %*22LA:+0X0P0:0:6: + %22LA:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*37LA:-0X0P+0:0:7: + %37LA:-0X0P0:1:6:-0x0: + %*37LA:-0X0P0:0:6: +-%37LA:-NAN(09A_Zaz):1:13:-nan: +-%*37LA:-NAN(09A_Zaz):0:13: +-%37LA:-NAN():1:6:-nan: +-%*37LA:-NAN():0:6: +-%37LA:NAN():1:5:nan: +-%*37LA:NAN():0:5: +-%37LA:NAN(09A_Zaz):1:12:nan: +-%*37LA:NAN(09A_Zaz):0:12: ++# BZ30647 %37LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*37LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %37LA:-NAN():1:6:-nan: ++# BZ30647 %*37LA:-NAN():0:6: ++# BZ30647 %37LA:NAN():1:5:nan: ++# BZ30647 %*37LA:NAN():0:5: ++# BZ30647 %37LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*37LA:NAN(09A_Zaz):0:12: + %37LA:0X0P0:1:5:0x0: + %*37LA:0X0P0:0:5: + %37LA:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*37LA:0XF.FFFFFFFFFFFFFFFP+16380:0:26: + %37LA:INFINITY:1:8:inf: + %*37LA:INFINITY:0:8: +-%37LA:+NAN():1:6:nan: +-%*37LA:+NAN():0:6: +-%37LA:+NAN(09A_Zaz):1:13:nan: +-%*37LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %37LA:+NAN():1:6:nan: ++# BZ30647 %*37LA:+NAN():0:6: ++# BZ30647 %37LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*37LA:+NAN(09A_Zaz):0:13: + %37LA:+0X0P0:1:6:0x0: + %*37LA:+0X0P0:0:6: + %37LA:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5LA: -0X0P+0:0:-1: + # BZ12701 %5LA: -0X0P0:0:-1: + # BZ12701 %*5LA: -0X0P0:0:-1: +-%5LA: -NAN(09A_Zaz):0:-1: +-%*5LA: -NAN(09A_Zaz):0:-1: +-%5LA: -NAN():0:-1: +-%*5LA: -NAN():0:-1: +-%5LA: NAN():1:6:nan: +-%*5LA: NAN():0:6: +-%5LA: NAN(09A_Zaz):0:-1: +-%*5LA: NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: -NAN():0:-1: ++# BZ30647 %*5LA: -NAN():0:-1: ++# BZ30647 %5LA: NAN():1:6:nan: ++# BZ30647 %*5LA: NAN():0:6: ++# BZ30647 %5LA: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: NAN(09A_Zaz):0:-1: + %5LA: 0X0P0:1:6:0x0: + %*5LA: 0X0P0:0:6: + # BZ12701 %5LA: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5LA: 0XF.FFFFFFFFFFFFFFFP+16380:0:6: + %5LA: INFINITY:0:-1: + %*5LA: INFINITY:0:-1: +-%5LA: +NAN():0:-1: +-%*5LA: +NAN():0:-1: +-%5LA: +NAN(09A_Zaz):0:-1: +-%*5LA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: +NAN():0:-1: ++# BZ30647 %*5LA: +NAN():0:-1: ++# BZ30647 %5LA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: +NAN(09A_Zaz):0:-1: + # BZ12701 %5LA: +0X0P0:0:-1: + # BZ12701 %*5LA: +0X0P0:0:-1: + # BZ12701 %5LA: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*37LA: -0X0P+0:0:8: + %37LA: -0X0P0:1:7:-0x0: + %*37LA: -0X0P0:0:7: +-%37LA: -NAN(09A_Zaz):1:14:-nan: +-%*37LA: -NAN(09A_Zaz):0:14: +-%37LA: -NAN():1:7:-nan: +-%*37LA: -NAN():0:7: +-%37LA: NAN():1:6:nan: +-%*37LA: NAN():0:6: +-%37LA: NAN(09A_Zaz):1:13:nan: +-%*37LA: NAN(09A_Zaz):0:13: ++# BZ30647 %37LA: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*37LA: -NAN(09A_Zaz):0:14: ++# BZ30647 %37LA: -NAN():1:7:-nan: ++# BZ30647 %*37LA: -NAN():0:7: ++# BZ30647 %37LA: NAN():1:6:nan: ++# BZ30647 %*37LA: NAN():0:6: ++# BZ30647 %37LA: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*37LA: NAN(09A_Zaz):0:13: + %37LA: 0X0P0:1:6:0x0: + %*37LA: 0X0P0:0:6: + %37LA: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*37LA: 0XF.FFFFFFFFFFFFFFFP+16380:0:27: + %37LA: INFINITY:1:9:inf: + %*37LA: INFINITY:0:9: +-%37LA: +NAN():1:7:nan: +-%*37LA: +NAN():0:7: +-%37LA: +NAN(09A_Zaz):1:14:nan: +-%*37LA: +NAN(09A_Zaz):0:14: ++# BZ30647 %37LA: +NAN():1:7:nan: ++# BZ30647 %*37LA: +NAN():0:7: ++# BZ30647 %37LA: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*37LA: +NAN(09A_Zaz):0:14: + %37LA: +0X0P0:1:7:0x0: + %*37LA: +0X0P0:0:7: + %37LA: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-e.input +index 61a9c901c205f897..b1d07a1393654580 100644 +--- a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-e.input ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-e.input +@@ -16,14 +16,14 @@ + %*Le:-0e+0:0:5: + %Le:-0e0:1:4:-0x0: + %*Le:-0e0:0:4: +-%Le:-nan(09A_Zaz):1:13:-nan: +-%*Le:-nan(09A_Zaz):0:13: +-%Le:-nan():1:6:-nan: +-%*Le:-nan():0:6: +-%Le:nan():1:5:nan: +-%*Le:nan():0:5: +-%Le:nan(09A_Zaz):1:12:nan: +-%*Le:nan(09A_Zaz):0:12: ++# BZ30647 %Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Le:-nan(09A_Zaz):0:13: ++# BZ30647 %Le:-nan():1:6:-nan: ++# BZ30647 %*Le:-nan():0:6: ++# BZ30647 %Le:nan():1:5:nan: ++# BZ30647 %*Le:nan():0:5: ++# BZ30647 %Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Le:nan(09A_Zaz):0:12: + %Le:0e0:1:3:0x0: + %*Le:0e0:0:3: + %Le:0e+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*Le:1.18973149535723176502126385303097021e+4932:0:43: + %Le:infinity:1:8:inf: + %*Le:infinity:0:8: +-%Le:+nan():1:6:nan: +-%*Le:+nan():0:6: +-%Le:+nan(09A_Zaz):1:13:nan: +-%*Le:+nan(09A_Zaz):0:13: ++# BZ30647 %Le:+nan():1:6:nan: ++# BZ30647 %*Le:+nan():0:6: ++# BZ30647 %Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Le:+nan(09A_Zaz):0:13: + %Le:+0e0:1:4:0x0: + %*Le:+0e0:0:4: + %Le:+0e+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1Le:-0e+0:0:-1: + %1Le:-0e0:0:-1: + %*1Le:-0e0:0:-1: +-%1Le:-nan(09A_Zaz):0:-1: +-%*1Le:-nan(09A_Zaz):0:-1: +-%1Le:-nan():0:-1: +-%*1Le:-nan():0:-1: +-%1Le:nan():0:-1: +-%*1Le:nan():0:-1: +-%1Le:nan(09A_Zaz):0:-1: +-%*1Le:nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:-nan():0:-1: ++# BZ30647 %*1Le:-nan():0:-1: ++# BZ30647 %1Le:nan():0:-1: ++# BZ30647 %*1Le:nan():0:-1: ++# BZ30647 %1Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:nan(09A_Zaz):0:-1: + %1Le:0e0:1:1:0x0: + %*1Le:0e0:0:1: + %1Le:0e+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Le:1.18973149535723176502126385303097021e+4932:0:1: + %1Le:infinity:0:-1: + %*1Le:infinity:0:-1: +-%1Le:+nan():0:-1: +-%*1Le:+nan():0:-1: +-%1Le:+nan(09A_Zaz):0:-1: +-%*1Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:+nan():0:-1: ++# BZ30647 %*1Le:+nan():0:-1: ++# BZ30647 %1Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:+nan(09A_Zaz):0:-1: + %1Le:+0e0:0:-1: + %*1Le:+0e0:0:-1: + %1Le:+0e+0:0:-1: +@@ -140,14 +140,14 @@ + %*2Le:-0e+0:0:2: + %2Le:-0e0:1:2:-0x0: + %*2Le:-0e0:0:2: +-%2Le:-nan(09A_Zaz):0:-1: +-%*2Le:-nan(09A_Zaz):0:-1: +-%2Le:-nan():0:-1: +-%*2Le:-nan():0:-1: +-%2Le:nan():0:-1: +-%*2Le:nan():0:-1: +-%2Le:nan(09A_Zaz):0:-1: +-%*2Le:nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:-nan():0:-1: ++# BZ30647 %*2Le:-nan():0:-1: ++# BZ30647 %2Le:nan():0:-1: ++# BZ30647 %*2Le:nan():0:-1: ++# BZ30647 %2Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:nan(09A_Zaz):0:-1: + # BZ12701 %2Le:0e0:0:-1: + # BZ12701 %*2Le:0e0:0:-1: + # BZ12701 %2Le:0e+0:0:-1: +@@ -164,10 +164,10 @@ + %*2Le:1.18973149535723176502126385303097021e+4932:0:2: + %2Le:infinity:0:-1: + %*2Le:infinity:0:-1: +-%2Le:+nan():0:-1: +-%*2Le:+nan():0:-1: +-%2Le:+nan(09A_Zaz):0:-1: +-%*2Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:+nan():0:-1: ++# BZ30647 %*2Le:+nan():0:-1: ++# BZ30647 %2Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:+nan(09A_Zaz):0:-1: + %2Le:+0e0:1:2:0x0: + %*2Le:+0e0:0:2: + %2Le:+0e+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3Le:-0e+0:0:-1: + # BZ12701 %3Le:-0e0:0:-1: + # BZ12701 %*3Le:-0e0:0:-1: +-%3Le:-nan(09A_Zaz):0:-1: +-%*3Le:-nan(09A_Zaz):0:-1: +-%3Le:-nan():0:-1: +-%*3Le:-nan():0:-1: +-%3Le:nan():1:3:nan: +-%*3Le:nan():0:3: +-%3Le:nan(09A_Zaz):1:3:nan: +-%*3Le:nan(09A_Zaz):0:3: ++# BZ30647 %3Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Le:-nan():0:-1: ++# BZ30647 %*3Le:-nan():0:-1: ++# BZ30647 %3Le:nan():1:3:nan: ++# BZ30647 %*3Le:nan():0:3: ++# BZ30647 %3Le:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Le:nan(09A_Zaz):0:3: + %3Le:0e0:1:3:0x0: + %*3Le:0e0:0:3: + # BZ12701 %3Le:0e+0:0:-1: +@@ -226,10 +226,10 @@ + %*3Le:1.18973149535723176502126385303097021e+4932:0:3: + %3Le:infinity:1:3:inf: + %*3Le:infinity:0:3: +-%3Le:+nan():0:-1: +-%*3Le:+nan():0:-1: +-%3Le:+nan(09A_Zaz):0:-1: +-%*3Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Le:+nan():0:-1: ++# BZ30647 %*3Le:+nan():0:-1: ++# BZ30647 %3Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le:+nan(09A_Zaz):0:-1: + # BZ12701 %3Le:+0e0:0:-1: + # BZ12701 %*3Le:+0e0:0:-1: + # BZ12701 %3Le:+0e+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4Le:-0e+0:0:-1: + %4Le:-0e0:1:4:-0x0: + %*4Le:-0e0:0:4: +-%4Le:-nan(09A_Zaz):1:4:-nan: +-%*4Le:-nan(09A_Zaz):0:4: +-%4Le:-nan():1:4:-nan: +-%*4Le:-nan():0:4: +-%4Le:nan():0:-1: +-%*4Le:nan():0:-1: +-%4Le:nan(09A_Zaz):0:-1: +-%*4Le:nan(09A_Zaz):0:-1: ++# BZ30647 %4Le:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Le:-nan(09A_Zaz):0:4: ++# BZ30647 %4Le:-nan():1:4:-nan: ++# BZ30647 %*4Le:-nan():0:4: ++# BZ30647 %4Le:nan():0:-1: ++# BZ30647 %*4Le:nan():0:-1: ++# BZ30647 %4Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Le:nan(09A_Zaz):0:-1: + %4Le:0e0:1:3:0x0: + %*4Le:0e0:0:3: + %4Le:0e+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4Le:1.18973149535723176502126385303097021e+4932:0:4: + %4Le:infinity:0:-1: + %*4Le:infinity:0:-1: +-%4Le:+nan():1:4:nan: +-%*4Le:+nan():0:4: +-%4Le:+nan(09A_Zaz):1:4:nan: +-%*4Le:+nan(09A_Zaz):0:4: ++# BZ30647 %4Le:+nan():1:4:nan: ++# BZ30647 %*4Le:+nan():0:4: ++# BZ30647 %4Le:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Le:+nan(09A_Zaz):0:4: + %4Le:+0e0:1:4:0x0: + %*4Le:+0e0:0:4: + # BZ12701 %4Le:+0e+0:0:-1: +@@ -326,14 +326,14 @@ + %*40Le:-0e+0:0:5: + %40Le:-0e0:1:4:-0x0: + %*40Le:-0e0:0:4: +-%40Le:-nan(09A_Zaz):1:13:-nan: +-%*40Le:-nan(09A_Zaz):0:13: +-%40Le:-nan():1:6:-nan: +-%*40Le:-nan():0:6: +-%40Le:nan():1:5:nan: +-%*40Le:nan():0:5: +-%40Le:nan(09A_Zaz):1:12:nan: +-%*40Le:nan(09A_Zaz):0:12: ++# BZ30647 %40Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*40Le:-nan(09A_Zaz):0:13: ++# BZ30647 %40Le:-nan():1:6:-nan: ++# BZ30647 %*40Le:-nan():0:6: ++# BZ30647 %40Le:nan():1:5:nan: ++# BZ30647 %*40Le:nan():0:5: ++# BZ30647 %40Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*40Le:nan(09A_Zaz):0:12: + %40Le:0e0:1:3:0x0: + %*40Le:0e0:0:3: + %40Le:0e+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40Le:1.18973149535723176502126385303097021e+4932:0:40: + %40Le:infinity:1:8:inf: + %*40Le:infinity:0:8: +-%40Le:+nan():1:6:nan: +-%*40Le:+nan():0:6: +-%40Le:+nan(09A_Zaz):1:13:nan: +-%*40Le:+nan(09A_Zaz):0:13: ++# BZ30647 %40Le:+nan():1:6:nan: ++# BZ30647 %*40Le:+nan():0:6: ++# BZ30647 %40Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*40Le:+nan(09A_Zaz):0:13: + %40Le:+0e0:1:4:0x0: + %*40Le:+0e0:0:4: + %40Le:+0e+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48Le:-0e+0:0:5: + %48Le:-0e0:1:4:-0x0: + %*48Le:-0e0:0:4: +-%48Le:-nan(09A_Zaz):1:13:-nan: +-%*48Le:-nan(09A_Zaz):0:13: +-%48Le:-nan():1:6:-nan: +-%*48Le:-nan():0:6: +-%48Le:nan():1:5:nan: +-%*48Le:nan():0:5: +-%48Le:nan(09A_Zaz):1:12:nan: +-%*48Le:nan(09A_Zaz):0:12: ++# BZ30647 %48Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*48Le:-nan(09A_Zaz):0:13: ++# BZ30647 %48Le:-nan():1:6:-nan: ++# BZ30647 %*48Le:-nan():0:6: ++# BZ30647 %48Le:nan():1:5:nan: ++# BZ30647 %*48Le:nan():0:5: ++# BZ30647 %48Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*48Le:nan(09A_Zaz):0:12: + %48Le:0e0:1:3:0x0: + %*48Le:0e0:0:3: + %48Le:0e+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48Le:1.18973149535723176502126385303097021e+4932:0:43: + %48Le:infinity:1:8:inf: + %*48Le:infinity:0:8: +-%48Le:+nan():1:6:nan: +-%*48Le:+nan():0:6: +-%48Le:+nan(09A_Zaz):1:13:nan: +-%*48Le:+nan(09A_Zaz):0:13: ++# BZ30647 %48Le:+nan():1:6:nan: ++# BZ30647 %*48Le:+nan():0:6: ++# BZ30647 %48Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48Le:+nan(09A_Zaz):0:13: + %48Le:+0e0:1:4:0x0: + %*48Le:+0e0:0:4: + %48Le:+0e+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3Le: -0e+0:0:-1: + # BZ12701 %3Le: -0e0:0:-1: + # BZ12701 %*3Le: -0e0:0:-1: +-%3Le: -nan(09A_Zaz):0:-1: +-%*3Le: -nan(09A_Zaz):0:-1: +-%3Le: -nan():0:-1: +-%*3Le: -nan():0:-1: +-%3Le: nan():1:4:nan: +-%*3Le: nan():0:4: +-%3Le: nan(09A_Zaz):1:4:nan: +-%*3Le: nan(09A_Zaz):0:4: ++# BZ30647 %3Le: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le: -nan(09A_Zaz):0:-1: ++# BZ30647 %3Le: -nan():0:-1: ++# BZ30647 %*3Le: -nan():0:-1: ++# BZ30647 %3Le: nan():1:4:nan: ++# BZ30647 %*3Le: nan():0:4: ++# BZ30647 %3Le: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3Le: nan(09A_Zaz):0:4: + %3Le: 0e0:1:4:0x0: + %*3Le: 0e0:0:4: + # BZ12701 %3Le: 0e+0:0:-1: +@@ -474,10 +474,10 @@ + %*3Le: 1.18973149535723176502126385303097021e+4932:0:4: + %3Le: infinity:1:4:inf: + %*3Le: infinity:0:4: +-%3Le: +nan():0:-1: +-%*3Le: +nan():0:-1: +-%3Le: +nan(09A_Zaz):0:-1: +-%*3Le: +nan(09A_Zaz):0:-1: ++# BZ30647 %3Le: +nan():0:-1: ++# BZ30647 %*3Le: +nan():0:-1: ++# BZ30647 %3Le: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le: +nan(09A_Zaz):0:-1: + # BZ12701 %3Le: +0e0:0:-1: + # BZ12701 %*3Le: +0e0:0:-1: + # BZ12701 %3Le: +0e+0:0:-1: +@@ -512,14 +512,14 @@ + %*48Le: -0e+0:0:6: + %48Le: -0e0:1:5:-0x0: + %*48Le: -0e0:0:5: +-%48Le: -nan(09A_Zaz):1:14:-nan: +-%*48Le: -nan(09A_Zaz):0:14: +-%48Le: -nan():1:7:-nan: +-%*48Le: -nan():0:7: +-%48Le: nan():1:6:nan: +-%*48Le: nan():0:6: +-%48Le: nan(09A_Zaz):1:13:nan: +-%*48Le: nan(09A_Zaz):0:13: ++# BZ30647 %48Le: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*48Le: -nan(09A_Zaz):0:14: ++# BZ30647 %48Le: -nan():1:7:-nan: ++# BZ30647 %*48Le: -nan():0:7: ++# BZ30647 %48Le: nan():1:6:nan: ++# BZ30647 %*48Le: nan():0:6: ++# BZ30647 %48Le: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48Le: nan(09A_Zaz):0:13: + %48Le: 0e0:1:4:0x0: + %*48Le: 0e0:0:4: + %48Le: 0e+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48Le: 1.18973149535723176502126385303097021e+4932:0:44: + %48Le: infinity:1:9:inf: + %*48Le: infinity:0:9: +-%48Le: +nan():1:7:nan: +-%*48Le: +nan():0:7: +-%48Le: +nan(09A_Zaz):1:14:nan: +-%*48Le: +nan(09A_Zaz):0:14: ++# BZ30647 %48Le: +nan():1:7:nan: ++# BZ30647 %*48Le: +nan():0:7: ++# BZ30647 %48Le: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*48Le: +nan(09A_Zaz):0:14: + %48Le: +0e0:1:5:0x0: + %*48Le: +0e0:0:5: + %48Le: +0e+0:1:6:0x0: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ee.input +index 2362eab7e1e3702b..66796466c65eb61c 100644 +--- a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ee.input ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ee.input +@@ -16,14 +16,14 @@ + %*LE:-0E+0:0:5: + %LE:-0E0:1:4:-0x0: + %*LE:-0E0:0:4: +-%LE:-NAN(09A_Zaz):1:13:-nan: +-%*LE:-NAN(09A_Zaz):0:13: +-%LE:-NAN():1:6:-nan: +-%*LE:-NAN():0:6: +-%LE:NAN():1:5:nan: +-%*LE:NAN():0:5: +-%LE:NAN(09A_Zaz):1:12:nan: +-%*LE:NAN(09A_Zaz):0:12: ++# BZ30647 %LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %LE:-NAN():1:6:-nan: ++# BZ30647 %*LE:-NAN():0:6: ++# BZ30647 %LE:NAN():1:5:nan: ++# BZ30647 %*LE:NAN():0:5: ++# BZ30647 %LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LE:NAN(09A_Zaz):0:12: + %LE:0E0:1:3:0x0: + %*LE:0E0:0:3: + %LE:0E+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*LE:1.18973149535723176502126385303097021E+4932:0:43: + %LE:INFINITY:1:8:inf: + %*LE:INFINITY:0:8: +-%LE:+NAN():1:6:nan: +-%*LE:+NAN():0:6: +-%LE:+NAN(09A_Zaz):1:13:nan: +-%*LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %LE:+NAN():1:6:nan: ++# BZ30647 %*LE:+NAN():0:6: ++# BZ30647 %LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LE:+NAN(09A_Zaz):0:13: + %LE:+0E0:1:4:0x0: + %*LE:+0E0:0:4: + %LE:+0E+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1LE:-0E+0:0:-1: + %1LE:-0E0:0:-1: + %*1LE:-0E0:0:-1: +-%1LE:-NAN(09A_Zaz):0:-1: +-%*1LE:-NAN(09A_Zaz):0:-1: +-%1LE:-NAN():0:-1: +-%*1LE:-NAN():0:-1: +-%1LE:NAN():0:-1: +-%*1LE:NAN():0:-1: +-%1LE:NAN(09A_Zaz):0:-1: +-%*1LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:-NAN():0:-1: ++# BZ30647 %*1LE:-NAN():0:-1: ++# BZ30647 %1LE:NAN():0:-1: ++# BZ30647 %*1LE:NAN():0:-1: ++# BZ30647 %1LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:NAN(09A_Zaz):0:-1: + %1LE:0E0:1:1:0x0: + %*1LE:0E0:0:1: + %1LE:0E+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LE:1.18973149535723176502126385303097021E+4932:0:1: + %1LE:INFINITY:0:-1: + %*1LE:INFINITY:0:-1: +-%1LE:+NAN():0:-1: +-%*1LE:+NAN():0:-1: +-%1LE:+NAN(09A_Zaz):0:-1: +-%*1LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:+NAN():0:-1: ++# BZ30647 %*1LE:+NAN():0:-1: ++# BZ30647 %1LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:+NAN(09A_Zaz):0:-1: + %1LE:+0E0:0:-1: + %*1LE:+0E0:0:-1: + %1LE:+0E+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LE:-0E+0:0:2: + %2LE:-0E0:1:2:-0x0: + %*2LE:-0E0:0:2: +-%2LE:-NAN(09A_Zaz):0:-1: +-%*2LE:-NAN(09A_Zaz):0:-1: +-%2LE:-NAN():0:-1: +-%*2LE:-NAN():0:-1: +-%2LE:NAN():0:-1: +-%*2LE:NAN():0:-1: +-%2LE:NAN(09A_Zaz):0:-1: +-%*2LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:-NAN():0:-1: ++# BZ30647 %*2LE:-NAN():0:-1: ++# BZ30647 %2LE:NAN():0:-1: ++# BZ30647 %*2LE:NAN():0:-1: ++# BZ30647 %2LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:NAN(09A_Zaz):0:-1: + # BZ12701 %2LE:0E0:0:-1: + # BZ12701 %*2LE:0E0:0:-1: + # BZ12701 %2LE:0E+0:0:-1: +@@ -164,10 +164,10 @@ + %*2LE:1.18973149535723176502126385303097021E+4932:0:2: + %2LE:INFINITY:0:-1: + %*2LE:INFINITY:0:-1: +-%2LE:+NAN():0:-1: +-%*2LE:+NAN():0:-1: +-%2LE:+NAN(09A_Zaz):0:-1: +-%*2LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:+NAN():0:-1: ++# BZ30647 %*2LE:+NAN():0:-1: ++# BZ30647 %2LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:+NAN(09A_Zaz):0:-1: + %2LE:+0E0:1:2:0x0: + %*2LE:+0E0:0:2: + %2LE:+0E+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LE:-0E+0:0:-1: + # BZ12701 %3LE:-0E0:0:-1: + # BZ12701 %*3LE:-0E0:0:-1: +-%3LE:-NAN(09A_Zaz):0:-1: +-%*3LE:-NAN(09A_Zaz):0:-1: +-%3LE:-NAN():0:-1: +-%*3LE:-NAN():0:-1: +-%3LE:NAN():1:3:nan: +-%*3LE:NAN():0:3: +-%3LE:NAN(09A_Zaz):1:3:nan: +-%*3LE:NAN(09A_Zaz):0:3: ++# BZ30647 %3LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE:-NAN():0:-1: ++# BZ30647 %*3LE:-NAN():0:-1: ++# BZ30647 %3LE:NAN():1:3:nan: ++# BZ30647 %*3LE:NAN():0:3: ++# BZ30647 %3LE:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LE:NAN(09A_Zaz):0:3: + %3LE:0E0:1:3:0x0: + %*3LE:0E0:0:3: + # BZ12701 %3LE:0E+0:0:-1: +@@ -226,10 +226,10 @@ + %*3LE:1.18973149535723176502126385303097021E+4932:0:3: + %3LE:INFINITY:1:3:inf: + %*3LE:INFINITY:0:3: +-%3LE:+NAN():0:-1: +-%*3LE:+NAN():0:-1: +-%3LE:+NAN(09A_Zaz):0:-1: +-%*3LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE:+NAN():0:-1: ++# BZ30647 %*3LE:+NAN():0:-1: ++# BZ30647 %3LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LE:+0E0:0:-1: + # BZ12701 %*3LE:+0E0:0:-1: + # BZ12701 %3LE:+0E+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4LE:-0E+0:0:-1: + %4LE:-0E0:1:4:-0x0: + %*4LE:-0E0:0:4: +-%4LE:-NAN(09A_Zaz):1:4:-nan: +-%*4LE:-NAN(09A_Zaz):0:4: +-%4LE:-NAN():1:4:-nan: +-%*4LE:-NAN():0:4: +-%4LE:NAN():0:-1: +-%*4LE:NAN():0:-1: +-%4LE:NAN(09A_Zaz):0:-1: +-%*4LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LE:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LE:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LE:-NAN():1:4:-nan: ++# BZ30647 %*4LE:-NAN():0:4: ++# BZ30647 %4LE:NAN():0:-1: ++# BZ30647 %*4LE:NAN():0:-1: ++# BZ30647 %4LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LE:NAN(09A_Zaz):0:-1: + %4LE:0E0:1:3:0x0: + %*4LE:0E0:0:3: + %4LE:0E+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4LE:1.18973149535723176502126385303097021E+4932:0:4: + %4LE:INFINITY:0:-1: + %*4LE:INFINITY:0:-1: +-%4LE:+NAN():1:4:nan: +-%*4LE:+NAN():0:4: +-%4LE:+NAN(09A_Zaz):1:4:nan: +-%*4LE:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LE:+NAN():1:4:nan: ++# BZ30647 %*4LE:+NAN():0:4: ++# BZ30647 %4LE:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LE:+NAN(09A_Zaz):0:4: + %4LE:+0E0:1:4:0x0: + %*4LE:+0E0:0:4: + # BZ12701 %4LE:+0E+0:0:-1: +@@ -326,14 +326,14 @@ + %*40LE:-0E+0:0:5: + %40LE:-0E0:1:4:-0x0: + %*40LE:-0E0:0:4: +-%40LE:-NAN(09A_Zaz):1:13:-nan: +-%*40LE:-NAN(09A_Zaz):0:13: +-%40LE:-NAN():1:6:-nan: +-%*40LE:-NAN():0:6: +-%40LE:NAN():1:5:nan: +-%*40LE:NAN():0:5: +-%40LE:NAN(09A_Zaz):1:12:nan: +-%*40LE:NAN(09A_Zaz):0:12: ++# BZ30647 %40LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*40LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %40LE:-NAN():1:6:-nan: ++# BZ30647 %*40LE:-NAN():0:6: ++# BZ30647 %40LE:NAN():1:5:nan: ++# BZ30647 %*40LE:NAN():0:5: ++# BZ30647 %40LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*40LE:NAN(09A_Zaz):0:12: + %40LE:0E0:1:3:0x0: + %*40LE:0E0:0:3: + %40LE:0E+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40LE:1.18973149535723176502126385303097021E+4932:0:40: + %40LE:INFINITY:1:8:inf: + %*40LE:INFINITY:0:8: +-%40LE:+NAN():1:6:nan: +-%*40LE:+NAN():0:6: +-%40LE:+NAN(09A_Zaz):1:13:nan: +-%*40LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %40LE:+NAN():1:6:nan: ++# BZ30647 %*40LE:+NAN():0:6: ++# BZ30647 %40LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*40LE:+NAN(09A_Zaz):0:13: + %40LE:+0E0:1:4:0x0: + %*40LE:+0E0:0:4: + %40LE:+0E+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48LE:-0E+0:0:5: + %48LE:-0E0:1:4:-0x0: + %*48LE:-0E0:0:4: +-%48LE:-NAN(09A_Zaz):1:13:-nan: +-%*48LE:-NAN(09A_Zaz):0:13: +-%48LE:-NAN():1:6:-nan: +-%*48LE:-NAN():0:6: +-%48LE:NAN():1:5:nan: +-%*48LE:NAN():0:5: +-%48LE:NAN(09A_Zaz):1:12:nan: +-%*48LE:NAN(09A_Zaz):0:12: ++# BZ30647 %48LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*48LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %48LE:-NAN():1:6:-nan: ++# BZ30647 %*48LE:-NAN():0:6: ++# BZ30647 %48LE:NAN():1:5:nan: ++# BZ30647 %*48LE:NAN():0:5: ++# BZ30647 %48LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*48LE:NAN(09A_Zaz):0:12: + %48LE:0E0:1:3:0x0: + %*48LE:0E0:0:3: + %48LE:0E+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48LE:1.18973149535723176502126385303097021E+4932:0:43: + %48LE:INFINITY:1:8:inf: + %*48LE:INFINITY:0:8: +-%48LE:+NAN():1:6:nan: +-%*48LE:+NAN():0:6: +-%48LE:+NAN(09A_Zaz):1:13:nan: +-%*48LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %48LE:+NAN():1:6:nan: ++# BZ30647 %*48LE:+NAN():0:6: ++# BZ30647 %48LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48LE:+NAN(09A_Zaz):0:13: + %48LE:+0E0:1:4:0x0: + %*48LE:+0E0:0:4: + %48LE:+0E+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3LE: -0E+0:0:-1: + # BZ12701 %3LE: -0E0:0:-1: + # BZ12701 %*3LE: -0E0:0:-1: +-%3LE: -NAN(09A_Zaz):0:-1: +-%*3LE: -NAN(09A_Zaz):0:-1: +-%3LE: -NAN():0:-1: +-%*3LE: -NAN():0:-1: +-%3LE: NAN():1:4:nan: +-%*3LE: NAN():0:4: +-%3LE: NAN(09A_Zaz):1:4:nan: +-%*3LE: NAN(09A_Zaz):0:4: ++# BZ30647 %3LE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE: -NAN():0:-1: ++# BZ30647 %*3LE: -NAN():0:-1: ++# BZ30647 %3LE: NAN():1:4:nan: ++# BZ30647 %*3LE: NAN():0:4: ++# BZ30647 %3LE: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3LE: NAN(09A_Zaz):0:4: + %3LE: 0E0:1:4:0x0: + %*3LE: 0E0:0:4: + # BZ12701 %3LE: 0E+0:0:-1: +@@ -474,10 +474,10 @@ + %*3LE: 1.18973149535723176502126385303097021E+4932:0:4: + %3LE: INFINITY:1:4:inf: + %*3LE: INFINITY:0:4: +-%3LE: +NAN():0:-1: +-%*3LE: +NAN():0:-1: +-%3LE: +NAN(09A_Zaz):0:-1: +-%*3LE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE: +NAN():0:-1: ++# BZ30647 %*3LE: +NAN():0:-1: ++# BZ30647 %3LE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE: +NAN(09A_Zaz):0:-1: + # BZ12701 %3LE: +0E0:0:-1: + # BZ12701 %*3LE: +0E0:0:-1: + # BZ12701 %3LE: +0E+0:0:-1: +@@ -512,14 +512,14 @@ + %*48LE: -0E+0:0:6: + %48LE: -0E0:1:5:-0x0: + %*48LE: -0E0:0:5: +-%48LE: -NAN(09A_Zaz):1:14:-nan: +-%*48LE: -NAN(09A_Zaz):0:14: +-%48LE: -NAN():1:7:-nan: +-%*48LE: -NAN():0:7: +-%48LE: NAN():1:6:nan: +-%*48LE: NAN():0:6: +-%48LE: NAN(09A_Zaz):1:13:nan: +-%*48LE: NAN(09A_Zaz):0:13: ++# BZ30647 %48LE: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*48LE: -NAN(09A_Zaz):0:14: ++# BZ30647 %48LE: -NAN():1:7:-nan: ++# BZ30647 %*48LE: -NAN():0:7: ++# BZ30647 %48LE: NAN():1:6:nan: ++# BZ30647 %*48LE: NAN():0:6: ++# BZ30647 %48LE: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48LE: NAN(09A_Zaz):0:13: + %48LE: 0E0:1:4:0x0: + %*48LE: 0E0:0:4: + %48LE: 0E+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48LE: 1.18973149535723176502126385303097021E+4932:0:44: + %48LE: INFINITY:1:9:inf: + %*48LE: INFINITY:0:9: +-%48LE: +NAN():1:7:nan: +-%*48LE: +NAN():0:7: +-%48LE: +NAN(09A_Zaz):1:14:nan: +-%*48LE: +NAN(09A_Zaz):0:14: ++# BZ30647 %48LE: +NAN():1:7:nan: ++# BZ30647 %*48LE: +NAN():0:7: ++# BZ30647 %48LE: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*48LE: +NAN(09A_Zaz):0:14: + %48LE: +0E0:1:5:0x0: + %*48LE: +0E0:0:5: + %48LE: +0E+0:1:6:0x0: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-f.input +index 7c06a3260a0496ba..7e1ec61a445c6a5b 100644 +--- a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-f.input ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-f.input +@@ -16,14 +16,14 @@ + %*Lf:-0.0:0:4: + %Lf:-0:1:2:-0x0: + %*Lf:-0:0:2: +-%Lf:-nan(09A_Zaz):1:13:-nan: +-%*Lf:-nan(09A_Zaz):0:13: +-%Lf:-nan():1:6:-nan: +-%*Lf:-nan():0:6: +-%Lf:nan():1:5:nan: +-%*Lf:nan():0:5: +-%Lf:nan(09A_Zaz):1:12:nan: +-%*Lf:nan(09A_Zaz):0:12: ++# BZ30647 %Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %Lf:-nan():1:6:-nan: ++# BZ30647 %*Lf:-nan():0:6: ++# BZ30647 %Lf:nan():1:5:nan: ++# BZ30647 %*Lf:nan():0:5: ++# BZ30647 %Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Lf:nan(09A_Zaz):0:12: + %Lf:0:1:1:0x0: + %*Lf:0:0:1: + %Lf:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936: + %Lf:infinity:1:8:inf: + %*Lf:infinity:0:8: +-%Lf:+nan():1:6:nan: +-%*Lf:+nan():0:6: +-%Lf:+nan(09A_Zaz):1:13:nan: +-%*Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %Lf:+nan():1:6:nan: ++# BZ30647 %*Lf:+nan():0:6: ++# BZ30647 %Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Lf:+nan(09A_Zaz):0:13: + %Lf:+0:1:2:0x0: + %*Lf:+0:0:2: + %Lf:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1Lf:-0.0:0:-1: + %1Lf:-0:0:-1: + %*1Lf:-0:0:-1: +-%1Lf:-nan(09A_Zaz):0:-1: +-%*1Lf:-nan(09A_Zaz):0:-1: +-%1Lf:-nan():0:-1: +-%*1Lf:-nan():0:-1: +-%1Lf:nan():0:-1: +-%*1Lf:nan():0:-1: +-%1Lf:nan(09A_Zaz):0:-1: +-%*1Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:-nan():0:-1: ++# BZ30647 %*1Lf:-nan():0:-1: ++# BZ30647 %1Lf:nan():0:-1: ++# BZ30647 %*1Lf:nan():0:-1: ++# BZ30647 %1Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:nan(09A_Zaz):0:-1: + %1Lf:0:1:1:0x0: + %*1Lf:0:0:1: + %1Lf:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:1: + %1Lf:infinity:0:-1: + %*1Lf:infinity:0:-1: +-%1Lf:+nan():0:-1: +-%*1Lf:+nan():0:-1: +-%1Lf:+nan(09A_Zaz):0:-1: +-%*1Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:+nan():0:-1: ++# BZ30647 %*1Lf:+nan():0:-1: ++# BZ30647 %1Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:+nan(09A_Zaz):0:-1: + %1Lf:+0:0:-1: + %*1Lf:+0:0:-1: + %1Lf:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2Lf:-0.0:0:2: + %2Lf:-0:1:2:-0x0: + %*2Lf:-0:0:2: +-%2Lf:-nan(09A_Zaz):0:-1: +-%*2Lf:-nan(09A_Zaz):0:-1: +-%2Lf:-nan():0:-1: +-%*2Lf:-nan():0:-1: +-%2Lf:nan():0:-1: +-%*2Lf:nan():0:-1: +-%2Lf:nan(09A_Zaz):0:-1: +-%*2Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:-nan():0:-1: ++# BZ30647 %*2Lf:-nan():0:-1: ++# BZ30647 %2Lf:nan():0:-1: ++# BZ30647 %*2Lf:nan():0:-1: ++# BZ30647 %2Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:nan(09A_Zaz):0:-1: + %2Lf:0:1:1:0x0: + %*2Lf:0:0:1: + %2Lf:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2: + %2Lf:infinity:0:-1: + %*2Lf:infinity:0:-1: +-%2Lf:+nan():0:-1: +-%*2Lf:+nan():0:-1: +-%2Lf:+nan(09A_Zaz):0:-1: +-%*2Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:+nan():0:-1: ++# BZ30647 %*2Lf:+nan():0:-1: ++# BZ30647 %2Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:+nan(09A_Zaz):0:-1: + %2Lf:+0:1:2:0x0: + %*2Lf:+0:0:2: + %2Lf:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3Lf:-0.0:0:3: + %3Lf:-0:1:2:-0x0: + %*3Lf:-0:0:2: +-%3Lf:-nan(09A_Zaz):0:-1: +-%*3Lf:-nan(09A_Zaz):0:-1: +-%3Lf:-nan():0:-1: +-%*3Lf:-nan():0:-1: +-%3Lf:nan():1:3:nan: +-%*3Lf:nan():0:3: +-%3Lf:nan(09A_Zaz):1:3:nan: +-%*3Lf:nan(09A_Zaz):0:3: ++# BZ30647 %3Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf:-nan():0:-1: ++# BZ30647 %*3Lf:-nan():0:-1: ++# BZ30647 %3Lf:nan():1:3:nan: ++# BZ30647 %*3Lf:nan():0:3: ++# BZ30647 %3Lf:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Lf:nan(09A_Zaz):0:3: + %3Lf:0:1:1:0x0: + %*3Lf:0:0:1: + %3Lf:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3: + %3Lf:infinity:1:3:inf: + %*3Lf:infinity:0:3: +-%3Lf:+nan():0:-1: +-%*3Lf:+nan():0:-1: +-%3Lf:+nan(09A_Zaz):0:-1: +-%*3Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf:+nan():0:-1: ++# BZ30647 %*3Lf:+nan():0:-1: ++# BZ30647 %3Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf:+nan(09A_Zaz):0:-1: + %3Lf:+0:1:2:0x0: + %*3Lf:+0:0:2: + %3Lf:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4935Lf:-0.0:0:4: + %4935Lf:-0:1:2:-0x0: + %*4935Lf:-0:0:2: +-%4935Lf:-nan(09A_Zaz):1:13:-nan: +-%*4935Lf:-nan(09A_Zaz):0:13: +-%4935Lf:-nan():1:6:-nan: +-%*4935Lf:-nan():0:6: +-%4935Lf:nan():1:5:nan: +-%*4935Lf:nan():0:5: +-%4935Lf:nan(09A_Zaz):1:12:nan: +-%*4935Lf:nan(09A_Zaz):0:12: ++# BZ30647 %4935Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*4935Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %4935Lf:-nan():1:6:-nan: ++# BZ30647 %*4935Lf:-nan():0:6: ++# BZ30647 %4935Lf:nan():1:5:nan: ++# BZ30647 %*4935Lf:nan():0:5: ++# BZ30647 %4935Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*4935Lf:nan(09A_Zaz):0:12: + %4935Lf:0:1:1:0x0: + %*4935Lf:0:0:1: + %4935Lf:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4935Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935: + %4935Lf:infinity:1:8:inf: + %*4935Lf:infinity:0:8: +-%4935Lf:+nan():1:6:nan: +-%*4935Lf:+nan():0:6: +-%4935Lf:+nan(09A_Zaz):1:13:nan: +-%*4935Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %4935Lf:+nan():1:6:nan: ++# BZ30647 %*4935Lf:+nan():0:6: ++# BZ30647 %4935Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*4935Lf:+nan(09A_Zaz):0:13: + %4935Lf:+0:1:2:0x0: + %*4935Lf:+0:0:2: + %4935Lf:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*5000Lf:-0.0:0:4: + %5000Lf:-0:1:2:-0x0: + %*5000Lf:-0:0:2: +-%5000Lf:-nan(09A_Zaz):1:13:-nan: +-%*5000Lf:-nan(09A_Zaz):0:13: +-%5000Lf:-nan():1:6:-nan: +-%*5000Lf:-nan():0:6: +-%5000Lf:nan():1:5:nan: +-%*5000Lf:nan():0:5: +-%5000Lf:nan(09A_Zaz):1:12:nan: +-%*5000Lf:nan(09A_Zaz):0:12: ++# BZ30647 %5000Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*5000Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %5000Lf:-nan():1:6:-nan: ++# BZ30647 %*5000Lf:-nan():0:6: ++# BZ30647 %5000Lf:nan():1:5:nan: ++# BZ30647 %*5000Lf:nan():0:5: ++# BZ30647 %5000Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*5000Lf:nan(09A_Zaz):0:12: + %5000Lf:0:1:1:0x0: + %*5000Lf:0:0:1: + %5000Lf:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*5000Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936: + %5000Lf:infinity:1:8:inf: + %*5000Lf:infinity:0:8: +-%5000Lf:+nan():1:6:nan: +-%*5000Lf:+nan():0:6: +-%5000Lf:+nan(09A_Zaz):1:13:nan: +-%*5000Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %5000Lf:+nan():1:6:nan: ++# BZ30647 %*5000Lf:+nan():0:6: ++# BZ30647 %5000Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*5000Lf:+nan(09A_Zaz):0:13: + %5000Lf:+0:1:2:0x0: + %*5000Lf:+0:0:2: + %5000Lf:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*3Lf: -0.0:0:4: + %3Lf: -0:1:3:-0x0: + %*3Lf: -0:0:3: +-%3Lf: -nan(09A_Zaz):0:-1: +-%*3Lf: -nan(09A_Zaz):0:-1: +-%3Lf: -nan():0:-1: +-%*3Lf: -nan():0:-1: +-%3Lf: nan():1:4:nan: +-%*3Lf: nan():0:4: +-%3Lf: nan(09A_Zaz):1:4:nan: +-%*3Lf: nan(09A_Zaz):0:4: ++# BZ30647 %3Lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf: -nan():0:-1: ++# BZ30647 %*3Lf: -nan():0:-1: ++# BZ30647 %3Lf: nan():1:4:nan: ++# BZ30647 %*3Lf: nan():0:4: ++# BZ30647 %3Lf: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3Lf: nan(09A_Zaz):0:4: + %3Lf: 0:1:2:0x0: + %*3Lf: 0:0:2: + %3Lf: 0.0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*3Lf: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4: + %3Lf: infinity:1:4:inf: + %*3Lf: infinity:0:4: +-%3Lf: +nan():0:-1: +-%*3Lf: +nan():0:-1: +-%3Lf: +nan(09A_Zaz):0:-1: +-%*3Lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf: +nan():0:-1: ++# BZ30647 %*3Lf: +nan():0:-1: ++# BZ30647 %3Lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf: +nan(09A_Zaz):0:-1: + %3Lf: +0:1:3:0x0: + %*3Lf: +0:0:3: + %3Lf: +0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*5000Lf: -0.0:0:5: + %5000Lf: -0:1:3:-0x0: + %*5000Lf: -0:0:3: +-%5000Lf: -nan(09A_Zaz):1:14:-nan: +-%*5000Lf: -nan(09A_Zaz):0:14: +-%5000Lf: -nan():1:7:-nan: +-%*5000Lf: -nan():0:7: +-%5000Lf: nan():1:6:nan: +-%*5000Lf: nan():0:6: +-%5000Lf: nan(09A_Zaz):1:13:nan: +-%*5000Lf: nan(09A_Zaz):0:13: ++# BZ30647 %5000Lf: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*5000Lf: -nan(09A_Zaz):0:14: ++# BZ30647 %5000Lf: -nan():1:7:-nan: ++# BZ30647 %*5000Lf: -nan():0:7: ++# BZ30647 %5000Lf: nan():1:6:nan: ++# BZ30647 %*5000Lf: nan():0:6: ++# BZ30647 %5000Lf: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*5000Lf: nan(09A_Zaz):0:13: + %5000Lf: 0:1:2:0x0: + %*5000Lf: 0:0:2: + %5000Lf: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*5000Lf: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: + %5000Lf: infinity:1:9:inf: + %*5000Lf: infinity:0:9: +-%5000Lf: +nan():1:7:nan: +-%*5000Lf: +nan():0:7: +-%5000Lf: +nan(09A_Zaz):1:14:nan: +-%*5000Lf: +nan(09A_Zaz):0:14: ++# BZ30647 %5000Lf: +nan():1:7:nan: ++# BZ30647 %*5000Lf: +nan():0:7: ++# BZ30647 %5000Lf: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*5000Lf: +nan(09A_Zaz):0:14: + %5000Lf: +0:1:3:0x0: + %*5000Lf: +0:0:3: + %5000Lf: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ff.input +index 1612fc41c412479e..fbbad837897269c1 100644 +--- a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ff.input ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ff.input +@@ -16,14 +16,14 @@ + %*LF:-0.0:0:4: + %LF:-0:1:2:-0x0: + %*LF:-0:0:2: +-%LF:-NAN(09A_Zaz):1:13:-nan: +-%*LF:-NAN(09A_Zaz):0:13: +-%LF:-NAN():1:6:-nan: +-%*LF:-NAN():0:6: +-%LF:NAN():1:5:nan: +-%*LF:NAN():0:5: +-%LF:NAN(09A_Zaz):1:12:nan: +-%*LF:NAN(09A_Zaz):0:12: ++# BZ30647 %LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %LF:-NAN():1:6:-nan: ++# BZ30647 %*LF:-NAN():0:6: ++# BZ30647 %LF:NAN():1:5:nan: ++# BZ30647 %*LF:NAN():0:5: ++# BZ30647 %LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LF:NAN(09A_Zaz):0:12: + %LF:0:1:1:0x0: + %*LF:0:0:1: + %LF:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936: + %LF:INFINITY:1:8:inf: + %*LF:INFINITY:0:8: +-%LF:+NAN():1:6:nan: +-%*LF:+NAN():0:6: +-%LF:+NAN(09A_Zaz):1:13:nan: +-%*LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %LF:+NAN():1:6:nan: ++# BZ30647 %*LF:+NAN():0:6: ++# BZ30647 %LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LF:+NAN(09A_Zaz):0:13: + %LF:+0:1:2:0x0: + %*LF:+0:0:2: + %LF:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1LF:-0.0:0:-1: + %1LF:-0:0:-1: + %*1LF:-0:0:-1: +-%1LF:-NAN(09A_Zaz):0:-1: +-%*1LF:-NAN(09A_Zaz):0:-1: +-%1LF:-NAN():0:-1: +-%*1LF:-NAN():0:-1: +-%1LF:NAN():0:-1: +-%*1LF:NAN():0:-1: +-%1LF:NAN(09A_Zaz):0:-1: +-%*1LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:-NAN():0:-1: ++# BZ30647 %*1LF:-NAN():0:-1: ++# BZ30647 %1LF:NAN():0:-1: ++# BZ30647 %*1LF:NAN():0:-1: ++# BZ30647 %1LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:NAN(09A_Zaz):0:-1: + %1LF:0:1:1:0x0: + %*1LF:0:0:1: + %1LF:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:1: + %1LF:INFINITY:0:-1: + %*1LF:INFINITY:0:-1: +-%1LF:+NAN():0:-1: +-%*1LF:+NAN():0:-1: +-%1LF:+NAN(09A_Zaz):0:-1: +-%*1LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:+NAN():0:-1: ++# BZ30647 %*1LF:+NAN():0:-1: ++# BZ30647 %1LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:+NAN(09A_Zaz):0:-1: + %1LF:+0:0:-1: + %*1LF:+0:0:-1: + %1LF:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2LF:-0.0:0:2: + %2LF:-0:1:2:-0x0: + %*2LF:-0:0:2: +-%2LF:-NAN(09A_Zaz):0:-1: +-%*2LF:-NAN(09A_Zaz):0:-1: +-%2LF:-NAN():0:-1: +-%*2LF:-NAN():0:-1: +-%2LF:NAN():0:-1: +-%*2LF:NAN():0:-1: +-%2LF:NAN(09A_Zaz):0:-1: +-%*2LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:-NAN():0:-1: ++# BZ30647 %*2LF:-NAN():0:-1: ++# BZ30647 %2LF:NAN():0:-1: ++# BZ30647 %*2LF:NAN():0:-1: ++# BZ30647 %2LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:NAN(09A_Zaz):0:-1: + %2LF:0:1:1:0x0: + %*2LF:0:0:1: + %2LF:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2: + %2LF:INFINITY:0:-1: + %*2LF:INFINITY:0:-1: +-%2LF:+NAN():0:-1: +-%*2LF:+NAN():0:-1: +-%2LF:+NAN(09A_Zaz):0:-1: +-%*2LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:+NAN():0:-1: ++# BZ30647 %*2LF:+NAN():0:-1: ++# BZ30647 %2LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:+NAN(09A_Zaz):0:-1: + %2LF:+0:1:2:0x0: + %*2LF:+0:0:2: + %2LF:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3LF:-0.0:0:3: + %3LF:-0:1:2:-0x0: + %*3LF:-0:0:2: +-%3LF:-NAN(09A_Zaz):0:-1: +-%*3LF:-NAN(09A_Zaz):0:-1: +-%3LF:-NAN():0:-1: +-%*3LF:-NAN():0:-1: +-%3LF:NAN():1:3:nan: +-%*3LF:NAN():0:3: +-%3LF:NAN(09A_Zaz):1:3:nan: +-%*3LF:NAN(09A_Zaz):0:3: ++# BZ30647 %3LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF:-NAN():0:-1: ++# BZ30647 %*3LF:-NAN():0:-1: ++# BZ30647 %3LF:NAN():1:3:nan: ++# BZ30647 %*3LF:NAN():0:3: ++# BZ30647 %3LF:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LF:NAN(09A_Zaz):0:3: + %3LF:0:1:1:0x0: + %*3LF:0:0:1: + %3LF:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3: + %3LF:INFINITY:1:3:inf: + %*3LF:INFINITY:0:3: +-%3LF:+NAN():0:-1: +-%*3LF:+NAN():0:-1: +-%3LF:+NAN(09A_Zaz):0:-1: +-%*3LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF:+NAN():0:-1: ++# BZ30647 %*3LF:+NAN():0:-1: ++# BZ30647 %3LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF:+NAN(09A_Zaz):0:-1: + %3LF:+0:1:2:0x0: + %*3LF:+0:0:2: + %3LF:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4935LF:-0.0:0:4: + %4935LF:-0:1:2:-0x0: + %*4935LF:-0:0:2: +-%4935LF:-NAN(09A_Zaz):1:13:-nan: +-%*4935LF:-NAN(09A_Zaz):0:13: +-%4935LF:-NAN():1:6:-nan: +-%*4935LF:-NAN():0:6: +-%4935LF:NAN():1:5:nan: +-%*4935LF:NAN():0:5: +-%4935LF:NAN(09A_Zaz):1:12:nan: +-%*4935LF:NAN(09A_Zaz):0:12: ++# BZ30647 %4935LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*4935LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %4935LF:-NAN():1:6:-nan: ++# BZ30647 %*4935LF:-NAN():0:6: ++# BZ30647 %4935LF:NAN():1:5:nan: ++# BZ30647 %*4935LF:NAN():0:5: ++# BZ30647 %4935LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*4935LF:NAN(09A_Zaz):0:12: + %4935LF:0:1:1:0x0: + %*4935LF:0:0:1: + %4935LF:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4935LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935: + %4935LF:INFINITY:1:8:inf: + %*4935LF:INFINITY:0:8: +-%4935LF:+NAN():1:6:nan: +-%*4935LF:+NAN():0:6: +-%4935LF:+NAN(09A_Zaz):1:13:nan: +-%*4935LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %4935LF:+NAN():1:6:nan: ++# BZ30647 %*4935LF:+NAN():0:6: ++# BZ30647 %4935LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*4935LF:+NAN(09A_Zaz):0:13: + %4935LF:+0:1:2:0x0: + %*4935LF:+0:0:2: + %4935LF:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*5000LF:-0.0:0:4: + %5000LF:-0:1:2:-0x0: + %*5000LF:-0:0:2: +-%5000LF:-NAN(09A_Zaz):1:13:-nan: +-%*5000LF:-NAN(09A_Zaz):0:13: +-%5000LF:-NAN():1:6:-nan: +-%*5000LF:-NAN():0:6: +-%5000LF:NAN():1:5:nan: +-%*5000LF:NAN():0:5: +-%5000LF:NAN(09A_Zaz):1:12:nan: +-%*5000LF:NAN(09A_Zaz):0:12: ++# BZ30647 %5000LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*5000LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %5000LF:-NAN():1:6:-nan: ++# BZ30647 %*5000LF:-NAN():0:6: ++# BZ30647 %5000LF:NAN():1:5:nan: ++# BZ30647 %*5000LF:NAN():0:5: ++# BZ30647 %5000LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*5000LF:NAN(09A_Zaz):0:12: + %5000LF:0:1:1:0x0: + %*5000LF:0:0:1: + %5000LF:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*5000LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936: + %5000LF:INFINITY:1:8:inf: + %*5000LF:INFINITY:0:8: +-%5000LF:+NAN():1:6:nan: +-%*5000LF:+NAN():0:6: +-%5000LF:+NAN(09A_Zaz):1:13:nan: +-%*5000LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %5000LF:+NAN():1:6:nan: ++# BZ30647 %*5000LF:+NAN():0:6: ++# BZ30647 %5000LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*5000LF:+NAN(09A_Zaz):0:13: + %5000LF:+0:1:2:0x0: + %*5000LF:+0:0:2: + %5000LF:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*3LF: -0.0:0:4: + %3LF: -0:1:3:-0x0: + %*3LF: -0:0:3: +-%3LF: -NAN(09A_Zaz):0:-1: +-%*3LF: -NAN(09A_Zaz):0:-1: +-%3LF: -NAN():0:-1: +-%*3LF: -NAN():0:-1: +-%3LF: NAN():1:4:nan: +-%*3LF: NAN():0:4: +-%3LF: NAN(09A_Zaz):1:4:nan: +-%*3LF: NAN(09A_Zaz):0:4: ++# BZ30647 %3LF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF: -NAN():0:-1: ++# BZ30647 %*3LF: -NAN():0:-1: ++# BZ30647 %3LF: NAN():1:4:nan: ++# BZ30647 %*3LF: NAN():0:4: ++# BZ30647 %3LF: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3LF: NAN(09A_Zaz):0:4: + %3LF: 0:1:2:0x0: + %*3LF: 0:0:2: + %3LF: 0.0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*3LF: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4: + %3LF: INFINITY:1:4:inf: + %*3LF: INFINITY:0:4: +-%3LF: +NAN():0:-1: +-%*3LF: +NAN():0:-1: +-%3LF: +NAN(09A_Zaz):0:-1: +-%*3LF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF: +NAN():0:-1: ++# BZ30647 %*3LF: +NAN():0:-1: ++# BZ30647 %3LF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF: +NAN(09A_Zaz):0:-1: + %3LF: +0:1:3:0x0: + %*3LF: +0:0:3: + %3LF: +0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*5000LF: -0.0:0:5: + %5000LF: -0:1:3:-0x0: + %*5000LF: -0:0:3: +-%5000LF: -NAN(09A_Zaz):1:14:-nan: +-%*5000LF: -NAN(09A_Zaz):0:14: +-%5000LF: -NAN():1:7:-nan: +-%*5000LF: -NAN():0:7: +-%5000LF: NAN():1:6:nan: +-%*5000LF: NAN():0:6: +-%5000LF: NAN(09A_Zaz):1:13:nan: +-%*5000LF: NAN(09A_Zaz):0:13: ++# BZ30647 %5000LF: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*5000LF: -NAN(09A_Zaz):0:14: ++# BZ30647 %5000LF: -NAN():1:7:-nan: ++# BZ30647 %*5000LF: -NAN():0:7: ++# BZ30647 %5000LF: NAN():1:6:nan: ++# BZ30647 %*5000LF: NAN():0:6: ++# BZ30647 %5000LF: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*5000LF: NAN(09A_Zaz):0:13: + %5000LF: 0:1:2:0x0: + %*5000LF: 0:0:2: + %5000LF: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*5000LF: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: + %5000LF: INFINITY:1:9:inf: + %*5000LF: INFINITY:0:9: +-%5000LF: +NAN():1:7:nan: +-%*5000LF: +NAN():0:7: +-%5000LF: +NAN(09A_Zaz):1:14:nan: +-%*5000LF: +NAN(09A_Zaz):0:14: ++# BZ30647 %5000LF: +NAN():1:7:nan: ++# BZ30647 %*5000LF: +NAN():0:7: ++# BZ30647 %5000LF: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*5000LF: +NAN(09A_Zaz):0:14: + %5000LF: +0:1:3:0x0: + %*5000LF: +0:0:3: + %5000LF: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-g.input +index af43cfe2cde3b19a..ff15feec046d76da 100644 +--- a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-g.input ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-g.input +@@ -16,14 +16,14 @@ + %*Lg:-0x0p+0:0:7: + %Lg:-0x0p0:1:6:-0x0: + %*Lg:-0x0p0:0:6: +-%Lg:-nan(09A_Zaz):1:13:-nan: +-%*Lg:-nan(09A_Zaz):0:13: +-%Lg:-nan():1:6:-nan: +-%*Lg:-nan():0:6: +-%Lg:nan():1:5:nan: +-%*Lg:nan():0:5: +-%Lg:nan(09A_Zaz):1:12:nan: +-%*Lg:nan(09A_Zaz):0:12: ++# BZ30647 %Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %Lg:-nan():1:6:-nan: ++# BZ30647 %*Lg:-nan():0:6: ++# BZ30647 %Lg:nan():1:5:nan: ++# BZ30647 %*Lg:nan():0:5: ++# BZ30647 %Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Lg:nan(09A_Zaz):0:12: + %Lg:0x0p0:1:5:0x0: + %*Lg:0x0p0:0:5: + %Lg:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*Lg:0xf.fffffffffffffffp+16380:0:26: + %Lg:infinity:1:8:inf: + %*Lg:infinity:0:8: +-%Lg:+nan():1:6:nan: +-%*Lg:+nan():0:6: +-%Lg:+nan(09A_Zaz):1:13:nan: +-%*Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %Lg:+nan():1:6:nan: ++# BZ30647 %*Lg:+nan():0:6: ++# BZ30647 %Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Lg:+nan(09A_Zaz):0:13: + %Lg:+0x0p0:1:6:0x0: + %*Lg:+0x0p0:0:6: + %Lg:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1Lg:-0x0p+0:0:-1: + %1Lg:-0x0p0:0:-1: + %*1Lg:-0x0p0:0:-1: +-%1Lg:-nan(09A_Zaz):0:-1: +-%*1Lg:-nan(09A_Zaz):0:-1: +-%1Lg:-nan():0:-1: +-%*1Lg:-nan():0:-1: +-%1Lg:nan():0:-1: +-%*1Lg:nan():0:-1: +-%1Lg:nan(09A_Zaz):0:-1: +-%*1Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:-nan():0:-1: ++# BZ30647 %*1Lg:-nan():0:-1: ++# BZ30647 %1Lg:nan():0:-1: ++# BZ30647 %*1Lg:nan():0:-1: ++# BZ30647 %1Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:nan(09A_Zaz):0:-1: + %1Lg:0x0p0:1:1:0x0: + %*1Lg:0x0p0:0:1: + %1Lg:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Lg:0xf.fffffffffffffffp+16380:0:1: + %1Lg:infinity:0:-1: + %*1Lg:infinity:0:-1: +-%1Lg:+nan():0:-1: +-%*1Lg:+nan():0:-1: +-%1Lg:+nan(09A_Zaz):0:-1: +-%*1Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:+nan():0:-1: ++# BZ30647 %*1Lg:+nan():0:-1: ++# BZ30647 %1Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:+nan(09A_Zaz):0:-1: + %1Lg:+0x0p0:0:-1: + %*1Lg:+0x0p0:0:-1: + %1Lg:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2Lg:-0x0p+0:0:2: + %2Lg:-0x0p0:1:2:-0x0: + %*2Lg:-0x0p0:0:2: +-%2Lg:-nan(09A_Zaz):0:-1: +-%*2Lg:-nan(09A_Zaz):0:-1: +-%2Lg:-nan():0:-1: +-%*2Lg:-nan():0:-1: +-%2Lg:nan():0:-1: +-%*2Lg:nan():0:-1: +-%2Lg:nan(09A_Zaz):0:-1: +-%*2Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:-nan():0:-1: ++# BZ30647 %*2Lg:-nan():0:-1: ++# BZ30647 %2Lg:nan():0:-1: ++# BZ30647 %*2Lg:nan():0:-1: ++# BZ30647 %2Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:nan(09A_Zaz):0:-1: + # BZ12701 %2Lg:0x0p0:0:-1: + # BZ12701 %*2Lg:0x0p0:0:-1: + # BZ12701 %2Lg:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2Lg:0xf.fffffffffffffffp+16380:0:-1: + %2Lg:infinity:0:-1: + %*2Lg:infinity:0:-1: +-%2Lg:+nan():0:-1: +-%*2Lg:+nan():0:-1: +-%2Lg:+nan(09A_Zaz):0:-1: +-%*2Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:+nan():0:-1: ++# BZ30647 %*2Lg:+nan():0:-1: ++# BZ30647 %2Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:+nan(09A_Zaz):0:-1: + %2Lg:+0x0p0:1:2:0x0: + %*2Lg:+0x0p0:0:2: + %2Lg:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3Lg:-0x0p+0:0:-1: + # BZ12701 %3Lg:-0x0p0:0:-1: + # BZ12701 %*3Lg:-0x0p0:0:-1: +-%3Lg:-nan(09A_Zaz):0:-1: +-%*3Lg:-nan(09A_Zaz):0:-1: +-%3Lg:-nan():0:-1: +-%*3Lg:-nan():0:-1: +-%3Lg:nan():1:3:nan: +-%*3Lg:nan():0:3: +-%3Lg:nan(09A_Zaz):1:3:nan: +-%*3Lg:nan(09A_Zaz):0:3: ++# BZ30647 %3Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Lg:-nan():0:-1: ++# BZ30647 %*3Lg:-nan():0:-1: ++# BZ30647 %3Lg:nan():1:3:nan: ++# BZ30647 %*3Lg:nan():0:3: ++# BZ30647 %3Lg:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Lg:nan(09A_Zaz):0:3: + %3Lg:0x0p0:1:3:0x0: + %*3Lg:0x0p0:0:3: + %3Lg:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3Lg:0xf.fffffffffffffffp+16380:0:3: + %3Lg:infinity:1:3:inf: + %*3Lg:infinity:0:3: +-%3Lg:+nan():0:-1: +-%*3Lg:+nan():0:-1: +-%3Lg:+nan(09A_Zaz):0:-1: +-%*3Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Lg:+nan():0:-1: ++# BZ30647 %*3Lg:+nan():0:-1: ++# BZ30647 %3Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lg:+nan(09A_Zaz):0:-1: + # BZ12701 %3Lg:+0x0p0:0:-1: + # BZ12701 %*3Lg:+0x0p0:0:-1: + # BZ12701 %3Lg:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4Lg:-0x0p+0:0:4: + %4Lg:-0x0p0:1:4:-0x0: + %*4Lg:-0x0p0:0:4: +-%4Lg:-nan(09A_Zaz):1:4:-nan: +-%*4Lg:-nan(09A_Zaz):0:4: +-%4Lg:-nan():1:4:-nan: +-%*4Lg:-nan():0:4: +-%4Lg:nan():0:-1: +-%*4Lg:nan():0:-1: +-%4Lg:nan(09A_Zaz):0:-1: +-%*4Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %4Lg:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Lg:-nan(09A_Zaz):0:4: ++# BZ30647 %4Lg:-nan():1:4:-nan: ++# BZ30647 %*4Lg:-nan():0:4: ++# BZ30647 %4Lg:nan():0:-1: ++# BZ30647 %*4Lg:nan():0:-1: ++# BZ30647 %4Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Lg:nan(09A_Zaz):0:-1: + # BZ12701 %4Lg:0x0p0:0:-1: + # BZ12701 %*4Lg:0x0p0:0:-1: + # BZ12701 %4Lg:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4Lg:0xf.fffffffffffffffp+16380:0:4: + %4Lg:infinity:0:-1: + %*4Lg:infinity:0:-1: +-%4Lg:+nan():1:4:nan: +-%*4Lg:+nan():0:4: +-%4Lg:+nan(09A_Zaz):1:4:nan: +-%*4Lg:+nan(09A_Zaz):0:4: ++# BZ30647 %4Lg:+nan():1:4:nan: ++# BZ30647 %*4Lg:+nan():0:4: ++# BZ30647 %4Lg:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Lg:+nan(09A_Zaz):0:4: + %4Lg:+0x0p0:1:4:0x0: + %*4Lg:+0x0p0:0:4: + %4Lg:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5Lg:-0x0p+0:0:-1: + # BZ12701 %5Lg:-0x0p0:0:-1: + # BZ12701 %*5Lg:-0x0p0:0:-1: +-%5Lg:-nan(09A_Zaz):0:-1: +-%*5Lg:-nan(09A_Zaz):0:-1: +-%5Lg:-nan():0:-1: +-%*5Lg:-nan():0:-1: +-%5Lg:nan():1:5:nan: +-%*5Lg:nan():0:5: +-%5Lg:nan(09A_Zaz):0:-1: +-%*5Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:-nan():0:-1: ++# BZ30647 %*5Lg:-nan():0:-1: ++# BZ30647 %5Lg:nan():1:5:nan: ++# BZ30647 %*5Lg:nan():0:5: ++# BZ30647 %5Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:nan(09A_Zaz):0:-1: + %5Lg:0x0p0:1:5:0x0: + %*5Lg:0x0p0:0:5: + # BZ12701 %5Lg:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5Lg:0xf.fffffffffffffffp+16380:0:5: + %5Lg:infinity:0:-1: + %*5Lg:infinity:0:-1: +-%5Lg:+nan():0:-1: +-%*5Lg:+nan():0:-1: +-%5Lg:+nan(09A_Zaz):0:-1: +-%*5Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:+nan():0:-1: ++# BZ30647 %*5Lg:+nan():0:-1: ++# BZ30647 %5Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:+nan(09A_Zaz):0:-1: + # BZ12701 %5Lg:+0x0p0:0:-1: + # BZ12701 %*5Lg:+0x0p0:0:-1: + # BZ12701 %5Lg:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6Lg:-0x0p+0:0:-1: + %6Lg:-0x0p0:1:6:-0x0: + %*6Lg:-0x0p0:0:6: +-%6Lg:-nan(09A_Zaz):0:-1: +-%*6Lg:-nan(09A_Zaz):0:-1: +-%6Lg:-nan():1:6:-nan: +-%*6Lg:-nan():0:6: +-%6Lg:nan():1:5:nan: +-%*6Lg:nan():0:5: +-%6Lg:nan(09A_Zaz):0:-1: +-%*6Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:-nan():1:6:-nan: ++# BZ30647 %*6Lg:-nan():0:6: ++# BZ30647 %6Lg:nan():1:5:nan: ++# BZ30647 %*6Lg:nan():0:5: ++# BZ30647 %6Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:nan(09A_Zaz):0:-1: + %6Lg:0x0p0:1:5:0x0: + %*6Lg:0x0p0:0:5: + %6Lg:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6Lg:0xf.fffffffffffffffp+16380:0:6: + %6Lg:infinity:0:-1: + %*6Lg:infinity:0:-1: +-%6Lg:+nan():1:6:nan: +-%*6Lg:+nan():0:6: +-%6Lg:+nan(09A_Zaz):0:-1: +-%*6Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:+nan():1:6:nan: ++# BZ30647 %*6Lg:+nan():0:6: ++# BZ30647 %6Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:+nan(09A_Zaz):0:-1: + %6Lg:+0x0p0:1:6:0x0: + %*6Lg:+0x0p0:0:6: + # BZ12701 %6Lg:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*22Lg:-0x0p+0:0:7: + %22Lg:-0x0p0:1:6:-0x0: + %*22Lg:-0x0p0:0:6: +-%22Lg:-nan(09A_Zaz):1:13:-nan: +-%*22Lg:-nan(09A_Zaz):0:13: +-%22Lg:-nan():1:6:-nan: +-%*22Lg:-nan():0:6: +-%22Lg:nan():1:5:nan: +-%*22Lg:nan():0:5: +-%22Lg:nan(09A_Zaz):1:12:nan: +-%*22Lg:nan(09A_Zaz):0:12: ++# BZ30647 %22Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*22Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %22Lg:-nan():1:6:-nan: ++# BZ30647 %*22Lg:-nan():0:6: ++# BZ30647 %22Lg:nan():1:5:nan: ++# BZ30647 %*22Lg:nan():0:5: ++# BZ30647 %22Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*22Lg:nan(09A_Zaz):0:12: + %22Lg:0x0p0:1:5:0x0: + %*22Lg:0x0p0:0:5: + %22Lg:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*22Lg:0xf.fffffffffffffffp+16380:0:22: + %22Lg:infinity:1:8:inf: + %*22Lg:infinity:0:8: +-%22Lg:+nan():1:6:nan: +-%*22Lg:+nan():0:6: +-%22Lg:+nan(09A_Zaz):1:13:nan: +-%*22Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %22Lg:+nan():1:6:nan: ++# BZ30647 %*22Lg:+nan():0:6: ++# BZ30647 %22Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*22Lg:+nan(09A_Zaz):0:13: + %22Lg:+0x0p0:1:6:0x0: + %*22Lg:+0x0p0:0:6: + %22Lg:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*37Lg:-0x0p+0:0:7: + %37Lg:-0x0p0:1:6:-0x0: + %*37Lg:-0x0p0:0:6: +-%37Lg:-nan(09A_Zaz):1:13:-nan: +-%*37Lg:-nan(09A_Zaz):0:13: +-%37Lg:-nan():1:6:-nan: +-%*37Lg:-nan():0:6: +-%37Lg:nan():1:5:nan: +-%*37Lg:nan():0:5: +-%37Lg:nan(09A_Zaz):1:12:nan: +-%*37Lg:nan(09A_Zaz):0:12: ++# BZ30647 %37Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*37Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %37Lg:-nan():1:6:-nan: ++# BZ30647 %*37Lg:-nan():0:6: ++# BZ30647 %37Lg:nan():1:5:nan: ++# BZ30647 %*37Lg:nan():0:5: ++# BZ30647 %37Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*37Lg:nan(09A_Zaz):0:12: + %37Lg:0x0p0:1:5:0x0: + %*37Lg:0x0p0:0:5: + %37Lg:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*37Lg:0xf.fffffffffffffffp+16380:0:26: + %37Lg:infinity:1:8:inf: + %*37Lg:infinity:0:8: +-%37Lg:+nan():1:6:nan: +-%*37Lg:+nan():0:6: +-%37Lg:+nan(09A_Zaz):1:13:nan: +-%*37Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %37Lg:+nan():1:6:nan: ++# BZ30647 %*37Lg:+nan():0:6: ++# BZ30647 %37Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*37Lg:+nan(09A_Zaz):0:13: + %37Lg:+0x0p0:1:6:0x0: + %*37Lg:+0x0p0:0:6: + %37Lg:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5Lg: -0x0p+0:0:-1: + # BZ12701 %5Lg: -0x0p0:0:-1: + # BZ12701 %*5Lg: -0x0p0:0:-1: +-%5Lg: -nan(09A_Zaz):0:-1: +-%*5Lg: -nan(09A_Zaz):0:-1: +-%5Lg: -nan():0:-1: +-%*5Lg: -nan():0:-1: +-%5Lg: nan():1:6:nan: +-%*5Lg: nan():0:6: +-%5Lg: nan(09A_Zaz):0:-1: +-%*5Lg: nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: -nan():0:-1: ++# BZ30647 %*5Lg: -nan():0:-1: ++# BZ30647 %5Lg: nan():1:6:nan: ++# BZ30647 %*5Lg: nan():0:6: ++# BZ30647 %5Lg: nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: nan(09A_Zaz):0:-1: + %5Lg: 0x0p0:1:6:0x0: + %*5Lg: 0x0p0:0:6: + # BZ12701 %5Lg: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5Lg: 0xf.fffffffffffffffp+16380:0:6: + %5Lg: infinity:0:-1: + %*5Lg: infinity:0:-1: +-%5Lg: +nan():0:-1: +-%*5Lg: +nan():0:-1: +-%5Lg: +nan(09A_Zaz):0:-1: +-%*5Lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: +nan():0:-1: ++# BZ30647 %*5Lg: +nan():0:-1: ++# BZ30647 %5Lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: +nan(09A_Zaz):0:-1: + # BZ12701 %5Lg: +0x0p0:0:-1: + # BZ12701 %*5Lg: +0x0p0:0:-1: + # BZ12701 %5Lg: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*37Lg: -0x0p+0:0:8: + %37Lg: -0x0p0:1:7:-0x0: + %*37Lg: -0x0p0:0:7: +-%37Lg: -nan(09A_Zaz):1:14:-nan: +-%*37Lg: -nan(09A_Zaz):0:14: +-%37Lg: -nan():1:7:-nan: +-%*37Lg: -nan():0:7: +-%37Lg: nan():1:6:nan: +-%*37Lg: nan():0:6: +-%37Lg: nan(09A_Zaz):1:13:nan: +-%*37Lg: nan(09A_Zaz):0:13: ++# BZ30647 %37Lg: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*37Lg: -nan(09A_Zaz):0:14: ++# BZ30647 %37Lg: -nan():1:7:-nan: ++# BZ30647 %*37Lg: -nan():0:7: ++# BZ30647 %37Lg: nan():1:6:nan: ++# BZ30647 %*37Lg: nan():0:6: ++# BZ30647 %37Lg: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*37Lg: nan(09A_Zaz):0:13: + %37Lg: 0x0p0:1:6:0x0: + %*37Lg: 0x0p0:0:6: + %37Lg: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*37Lg: 0xf.fffffffffffffffp+16380:0:27: + %37Lg: infinity:1:9:inf: + %*37Lg: infinity:0:9: +-%37Lg: +nan():1:7:nan: +-%*37Lg: +nan():0:7: +-%37Lg: +nan(09A_Zaz):1:14:nan: +-%*37Lg: +nan(09A_Zaz):0:14: ++# BZ30647 %37Lg: +nan():1:7:nan: ++# BZ30647 %*37Lg: +nan():0:7: ++# BZ30647 %37Lg: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*37Lg: +nan(09A_Zaz):0:14: + %37Lg: +0x0p0:1:7:0x0: + %*37Lg: +0x0p0:0:7: + %37Lg: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-gg.input +index a274698774017b4b..2d9ee63d7fe7dc9f 100644 +--- a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-gg.input ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-gg.input +@@ -16,14 +16,14 @@ + %*LG:-0X0P+0:0:7: + %LG:-0X0P0:1:6:-0x0: + %*LG:-0X0P0:0:6: +-%LG:-NAN(09A_Zaz):1:13:-nan: +-%*LG:-NAN(09A_Zaz):0:13: +-%LG:-NAN():1:6:-nan: +-%*LG:-NAN():0:6: +-%LG:NAN():1:5:nan: +-%*LG:NAN():0:5: +-%LG:NAN(09A_Zaz):1:12:nan: +-%*LG:NAN(09A_Zaz):0:12: ++# BZ30647 %LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %LG:-NAN():1:6:-nan: ++# BZ30647 %*LG:-NAN():0:6: ++# BZ30647 %LG:NAN():1:5:nan: ++# BZ30647 %*LG:NAN():0:5: ++# BZ30647 %LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LG:NAN(09A_Zaz):0:12: + %LG:0X0P0:1:5:0x0: + %*LG:0X0P0:0:5: + %LG:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*LG:0XF.FFFFFFFFFFFFFFFP+16380:0:26: + %LG:INFINITY:1:8:inf: + %*LG:INFINITY:0:8: +-%LG:+NAN():1:6:nan: +-%*LG:+NAN():0:6: +-%LG:+NAN(09A_Zaz):1:13:nan: +-%*LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %LG:+NAN():1:6:nan: ++# BZ30647 %*LG:+NAN():0:6: ++# BZ30647 %LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LG:+NAN(09A_Zaz):0:13: + %LG:+0X0P0:1:6:0x0: + %*LG:+0X0P0:0:6: + %LG:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1LG:-0X0P+0:0:-1: + %1LG:-0X0P0:0:-1: + %*1LG:-0X0P0:0:-1: +-%1LG:-NAN(09A_Zaz):0:-1: +-%*1LG:-NAN(09A_Zaz):0:-1: +-%1LG:-NAN():0:-1: +-%*1LG:-NAN():0:-1: +-%1LG:NAN():0:-1: +-%*1LG:NAN():0:-1: +-%1LG:NAN(09A_Zaz):0:-1: +-%*1LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:-NAN():0:-1: ++# BZ30647 %*1LG:-NAN():0:-1: ++# BZ30647 %1LG:NAN():0:-1: ++# BZ30647 %*1LG:NAN():0:-1: ++# BZ30647 %1LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:NAN(09A_Zaz):0:-1: + %1LG:0X0P0:1:1:0x0: + %*1LG:0X0P0:0:1: + %1LG:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LG:0XF.FFFFFFFFFFFFFFFP+16380:0:1: + %1LG:INFINITY:0:-1: + %*1LG:INFINITY:0:-1: +-%1LG:+NAN():0:-1: +-%*1LG:+NAN():0:-1: +-%1LG:+NAN(09A_Zaz):0:-1: +-%*1LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:+NAN():0:-1: ++# BZ30647 %*1LG:+NAN():0:-1: ++# BZ30647 %1LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:+NAN(09A_Zaz):0:-1: + %1LG:+0X0P0:0:-1: + %*1LG:+0X0P0:0:-1: + %1LG:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LG:-0X0P+0:0:2: + %2LG:-0X0P0:1:2:-0x0: + %*2LG:-0X0P0:0:2: +-%2LG:-NAN(09A_Zaz):0:-1: +-%*2LG:-NAN(09A_Zaz):0:-1: +-%2LG:-NAN():0:-1: +-%*2LG:-NAN():0:-1: +-%2LG:NAN():0:-1: +-%*2LG:NAN():0:-1: +-%2LG:NAN(09A_Zaz):0:-1: +-%*2LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:-NAN():0:-1: ++# BZ30647 %*2LG:-NAN():0:-1: ++# BZ30647 %2LG:NAN():0:-1: ++# BZ30647 %*2LG:NAN():0:-1: ++# BZ30647 %2LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:NAN(09A_Zaz):0:-1: + # BZ12701 %2LG:0X0P0:0:-1: + # BZ12701 %*2LG:0X0P0:0:-1: + # BZ12701 %2LG:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2LG:0XF.FFFFFFFFFFFFFFFP+16380:0:-1: + %2LG:INFINITY:0:-1: + %*2LG:INFINITY:0:-1: +-%2LG:+NAN():0:-1: +-%*2LG:+NAN():0:-1: +-%2LG:+NAN(09A_Zaz):0:-1: +-%*2LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:+NAN():0:-1: ++# BZ30647 %*2LG:+NAN():0:-1: ++# BZ30647 %2LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:+NAN(09A_Zaz):0:-1: + %2LG:+0X0P0:1:2:0x0: + %*2LG:+0X0P0:0:2: + %2LG:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LG:-0X0P+0:0:-1: + # BZ12701 %3LG:-0X0P0:0:-1: + # BZ12701 %*3LG:-0X0P0:0:-1: +-%3LG:-NAN(09A_Zaz):0:-1: +-%*3LG:-NAN(09A_Zaz):0:-1: +-%3LG:-NAN():0:-1: +-%*3LG:-NAN():0:-1: +-%3LG:NAN():1:3:nan: +-%*3LG:NAN():0:3: +-%3LG:NAN(09A_Zaz):1:3:nan: +-%*3LG:NAN(09A_Zaz):0:3: ++# BZ30647 %3LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LG:-NAN():0:-1: ++# BZ30647 %*3LG:-NAN():0:-1: ++# BZ30647 %3LG:NAN():1:3:nan: ++# BZ30647 %*3LG:NAN():0:3: ++# BZ30647 %3LG:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LG:NAN(09A_Zaz):0:3: + %3LG:0X0P0:1:3:0x0: + %*3LG:0X0P0:0:3: + %3LG:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LG:0XF.FFFFFFFFFFFFFFFP+16380:0:3: + %3LG:INFINITY:1:3:inf: + %*3LG:INFINITY:0:3: +-%3LG:+NAN():0:-1: +-%*3LG:+NAN():0:-1: +-%3LG:+NAN(09A_Zaz):0:-1: +-%*3LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LG:+NAN():0:-1: ++# BZ30647 %*3LG:+NAN():0:-1: ++# BZ30647 %3LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LG:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LG:+0X0P0:0:-1: + # BZ12701 %*3LG:+0X0P0:0:-1: + # BZ12701 %3LG:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4LG:-0X0P+0:0:4: + %4LG:-0X0P0:1:4:-0x0: + %*4LG:-0X0P0:0:4: +-%4LG:-NAN(09A_Zaz):1:4:-nan: +-%*4LG:-NAN(09A_Zaz):0:4: +-%4LG:-NAN():1:4:-nan: +-%*4LG:-NAN():0:4: +-%4LG:NAN():0:-1: +-%*4LG:NAN():0:-1: +-%4LG:NAN(09A_Zaz):0:-1: +-%*4LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LG:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LG:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LG:-NAN():1:4:-nan: ++# BZ30647 %*4LG:-NAN():0:4: ++# BZ30647 %4LG:NAN():0:-1: ++# BZ30647 %*4LG:NAN():0:-1: ++# BZ30647 %4LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LG:NAN(09A_Zaz):0:-1: + # BZ12701 %4LG:0X0P0:0:-1: + # BZ12701 %*4LG:0X0P0:0:-1: + # BZ12701 %4LG:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4LG:0XF.FFFFFFFFFFFFFFFP+16380:0:4: + %4LG:INFINITY:0:-1: + %*4LG:INFINITY:0:-1: +-%4LG:+NAN():1:4:nan: +-%*4LG:+NAN():0:4: +-%4LG:+NAN(09A_Zaz):1:4:nan: +-%*4LG:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LG:+NAN():1:4:nan: ++# BZ30647 %*4LG:+NAN():0:4: ++# BZ30647 %4LG:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LG:+NAN(09A_Zaz):0:4: + %4LG:+0X0P0:1:4:0x0: + %*4LG:+0X0P0:0:4: + %4LG:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5LG:-0X0P+0:0:-1: + # BZ12701 %5LG:-0X0P0:0:-1: + # BZ12701 %*5LG:-0X0P0:0:-1: +-%5LG:-NAN(09A_Zaz):0:-1: +-%*5LG:-NAN(09A_Zaz):0:-1: +-%5LG:-NAN():0:-1: +-%*5LG:-NAN():0:-1: +-%5LG:NAN():1:5:nan: +-%*5LG:NAN():0:5: +-%5LG:NAN(09A_Zaz):0:-1: +-%*5LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:-NAN():0:-1: ++# BZ30647 %*5LG:-NAN():0:-1: ++# BZ30647 %5LG:NAN():1:5:nan: ++# BZ30647 %*5LG:NAN():0:5: ++# BZ30647 %5LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:NAN(09A_Zaz):0:-1: + %5LG:0X0P0:1:5:0x0: + %*5LG:0X0P0:0:5: + # BZ12701 %5LG:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5LG:0XF.FFFFFFFFFFFFFFFP+16380:0:5: + %5LG:INFINITY:0:-1: + %*5LG:INFINITY:0:-1: +-%5LG:+NAN():0:-1: +-%*5LG:+NAN():0:-1: +-%5LG:+NAN(09A_Zaz):0:-1: +-%*5LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:+NAN():0:-1: ++# BZ30647 %*5LG:+NAN():0:-1: ++# BZ30647 %5LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:+NAN(09A_Zaz):0:-1: + # BZ12701 %5LG:+0X0P0:0:-1: + # BZ12701 %*5LG:+0X0P0:0:-1: + # BZ12701 %5LG:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6LG:-0X0P+0:0:-1: + %6LG:-0X0P0:1:6:-0x0: + %*6LG:-0X0P0:0:6: +-%6LG:-NAN(09A_Zaz):0:-1: +-%*6LG:-NAN(09A_Zaz):0:-1: +-%6LG:-NAN():1:6:-nan: +-%*6LG:-NAN():0:6: +-%6LG:NAN():1:5:nan: +-%*6LG:NAN():0:5: +-%6LG:NAN(09A_Zaz):0:-1: +-%*6LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:-NAN():1:6:-nan: ++# BZ30647 %*6LG:-NAN():0:6: ++# BZ30647 %6LG:NAN():1:5:nan: ++# BZ30647 %*6LG:NAN():0:5: ++# BZ30647 %6LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:NAN(09A_Zaz):0:-1: + %6LG:0X0P0:1:5:0x0: + %*6LG:0X0P0:0:5: + %6LG:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6LG:0XF.FFFFFFFFFFFFFFFP+16380:0:6: + %6LG:INFINITY:0:-1: + %*6LG:INFINITY:0:-1: +-%6LG:+NAN():1:6:nan: +-%*6LG:+NAN():0:6: +-%6LG:+NAN(09A_Zaz):0:-1: +-%*6LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:+NAN():1:6:nan: ++# BZ30647 %*6LG:+NAN():0:6: ++# BZ30647 %6LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:+NAN(09A_Zaz):0:-1: + %6LG:+0X0P0:1:6:0x0: + %*6LG:+0X0P0:0:6: + # BZ12701 %6LG:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*22LG:-0X0P+0:0:7: + %22LG:-0X0P0:1:6:-0x0: + %*22LG:-0X0P0:0:6: +-%22LG:-NAN(09A_Zaz):1:13:-nan: +-%*22LG:-NAN(09A_Zaz):0:13: +-%22LG:-NAN():1:6:-nan: +-%*22LG:-NAN():0:6: +-%22LG:NAN():1:5:nan: +-%*22LG:NAN():0:5: +-%22LG:NAN(09A_Zaz):1:12:nan: +-%*22LG:NAN(09A_Zaz):0:12: ++# BZ30647 %22LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*22LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %22LG:-NAN():1:6:-nan: ++# BZ30647 %*22LG:-NAN():0:6: ++# BZ30647 %22LG:NAN():1:5:nan: ++# BZ30647 %*22LG:NAN():0:5: ++# BZ30647 %22LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*22LG:NAN(09A_Zaz):0:12: + %22LG:0X0P0:1:5:0x0: + %*22LG:0X0P0:0:5: + %22LG:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*22LG:0XF.FFFFFFFFFFFFFFFP+16380:0:22: + %22LG:INFINITY:1:8:inf: + %*22LG:INFINITY:0:8: +-%22LG:+NAN():1:6:nan: +-%*22LG:+NAN():0:6: +-%22LG:+NAN(09A_Zaz):1:13:nan: +-%*22LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %22LG:+NAN():1:6:nan: ++# BZ30647 %*22LG:+NAN():0:6: ++# BZ30647 %22LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*22LG:+NAN(09A_Zaz):0:13: + %22LG:+0X0P0:1:6:0x0: + %*22LG:+0X0P0:0:6: + %22LG:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*37LG:-0X0P+0:0:7: + %37LG:-0X0P0:1:6:-0x0: + %*37LG:-0X0P0:0:6: +-%37LG:-NAN(09A_Zaz):1:13:-nan: +-%*37LG:-NAN(09A_Zaz):0:13: +-%37LG:-NAN():1:6:-nan: +-%*37LG:-NAN():0:6: +-%37LG:NAN():1:5:nan: +-%*37LG:NAN():0:5: +-%37LG:NAN(09A_Zaz):1:12:nan: +-%*37LG:NAN(09A_Zaz):0:12: ++# BZ30647 %37LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*37LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %37LG:-NAN():1:6:-nan: ++# BZ30647 %*37LG:-NAN():0:6: ++# BZ30647 %37LG:NAN():1:5:nan: ++# BZ30647 %*37LG:NAN():0:5: ++# BZ30647 %37LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*37LG:NAN(09A_Zaz):0:12: + %37LG:0X0P0:1:5:0x0: + %*37LG:0X0P0:0:5: + %37LG:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*37LG:0XF.FFFFFFFFFFFFFFFP+16380:0:26: + %37LG:INFINITY:1:8:inf: + %*37LG:INFINITY:0:8: +-%37LG:+NAN():1:6:nan: +-%*37LG:+NAN():0:6: +-%37LG:+NAN(09A_Zaz):1:13:nan: +-%*37LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %37LG:+NAN():1:6:nan: ++# BZ30647 %*37LG:+NAN():0:6: ++# BZ30647 %37LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*37LG:+NAN(09A_Zaz):0:13: + %37LG:+0X0P0:1:6:0x0: + %*37LG:+0X0P0:0:6: + %37LG:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5LG: -0X0P+0:0:-1: + # BZ12701 %5LG: -0X0P0:0:-1: + # BZ12701 %*5LG: -0X0P0:0:-1: +-%5LG: -NAN(09A_Zaz):0:-1: +-%*5LG: -NAN(09A_Zaz):0:-1: +-%5LG: -NAN():0:-1: +-%*5LG: -NAN():0:-1: +-%5LG: NAN():1:6:nan: +-%*5LG: NAN():0:6: +-%5LG: NAN(09A_Zaz):0:-1: +-%*5LG: NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: -NAN():0:-1: ++# BZ30647 %*5LG: -NAN():0:-1: ++# BZ30647 %5LG: NAN():1:6:nan: ++# BZ30647 %*5LG: NAN():0:6: ++# BZ30647 %5LG: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: NAN(09A_Zaz):0:-1: + %5LG: 0X0P0:1:6:0x0: + %*5LG: 0X0P0:0:6: + # BZ12701 %5LG: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5LG: 0XF.FFFFFFFFFFFFFFFP+16380:0:6: + %5LG: INFINITY:0:-1: + %*5LG: INFINITY:0:-1: +-%5LG: +NAN():0:-1: +-%*5LG: +NAN():0:-1: +-%5LG: +NAN(09A_Zaz):0:-1: +-%*5LG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: +NAN():0:-1: ++# BZ30647 %*5LG: +NAN():0:-1: ++# BZ30647 %5LG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: +NAN(09A_Zaz):0:-1: + # BZ12701 %5LG: +0X0P0:0:-1: + # BZ12701 %*5LG: +0X0P0:0:-1: + # BZ12701 %5LG: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*37LG: -0X0P+0:0:8: + %37LG: -0X0P0:1:7:-0x0: + %*37LG: -0X0P0:0:7: +-%37LG: -NAN(09A_Zaz):1:14:-nan: +-%*37LG: -NAN(09A_Zaz):0:14: +-%37LG: -NAN():1:7:-nan: +-%*37LG: -NAN():0:7: +-%37LG: NAN():1:6:nan: +-%*37LG: NAN():0:6: +-%37LG: NAN(09A_Zaz):1:13:nan: +-%*37LG: NAN(09A_Zaz):0:13: ++# BZ30647 %37LG: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*37LG: -NAN(09A_Zaz):0:14: ++# BZ30647 %37LG: -NAN():1:7:-nan: ++# BZ30647 %*37LG: -NAN():0:7: ++# BZ30647 %37LG: NAN():1:6:nan: ++# BZ30647 %*37LG: NAN():0:6: ++# BZ30647 %37LG: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*37LG: NAN(09A_Zaz):0:13: + %37LG: 0X0P0:1:6:0x0: + %*37LG: 0X0P0:0:6: + %37LG: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*37LG: 0XF.FFFFFFFFFFFFFFFP+16380:0:27: + %37LG: INFINITY:1:9:inf: + %*37LG: INFINITY:0:9: +-%37LG: +NAN():1:7:nan: +-%*37LG: +NAN():0:7: +-%37LG: +NAN(09A_Zaz):1:14:nan: +-%*37LG: +NAN(09A_Zaz):0:14: ++# BZ30647 %37LG: +NAN():1:7:nan: ++# BZ30647 %*37LG: +NAN():0:7: ++# BZ30647 %37LG: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*37LG: +NAN(09A_Zaz):0:14: + %37LG: +0X0P0:1:7:0x0: + %*37LG: +0X0P0:0:7: + %37LG: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input +index 42a1ffa84a834f8d..9f3ad94d450a75f7 100644 +--- a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input +@@ -16,14 +16,14 @@ + %*La:-0x0p+0:0:7: + %La:-0x0p0:1:6:-0x0: + %*La:-0x0p0:0:6: +-%La:-nan(09A_Zaz):1:13:-nan: +-%*La:-nan(09A_Zaz):0:13: +-%La:-nan():1:6:-nan: +-%*La:-nan():0:6: +-%La:nan():1:5:nan: +-%*La:nan():0:5: +-%La:nan(09A_Zaz):1:12:nan: +-%*La:nan(09A_Zaz):0:12: ++# BZ30647 %La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*La:-nan(09A_Zaz):0:13: ++# BZ30647 %La:-nan():1:6:-nan: ++# BZ30647 %*La:-nan():0:6: ++# BZ30647 %La:nan():1:5:nan: ++# BZ30647 %*La:nan():0:5: ++# BZ30647 %La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*La:nan(09A_Zaz):0:12: + %La:0x0p0:1:5:0x0: + %*La:0x0p0:0:5: + %La:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*La:0xf.ffffffffffff8p+1020:0:23: + %La:infinity:1:8:inf: + %*La:infinity:0:8: +-%La:+nan():1:6:nan: +-%*La:+nan():0:6: +-%La:+nan(09A_Zaz):1:13:nan: +-%*La:+nan(09A_Zaz):0:13: ++# BZ30647 %La:+nan():1:6:nan: ++# BZ30647 %*La:+nan():0:6: ++# BZ30647 %La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*La:+nan(09A_Zaz):0:13: + %La:+0x0p0:1:6:0x0: + %*La:+0x0p0:0:6: + %La:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1La:-0x0p+0:0:-1: + %1La:-0x0p0:0:-1: + %*1La:-0x0p0:0:-1: +-%1La:-nan(09A_Zaz):0:-1: +-%*1La:-nan(09A_Zaz):0:-1: +-%1La:-nan():0:-1: +-%*1La:-nan():0:-1: +-%1La:nan():0:-1: +-%*1La:nan():0:-1: +-%1La:nan(09A_Zaz):0:-1: +-%*1La:nan(09A_Zaz):0:-1: ++# BZ30647 %1La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:-nan(09A_Zaz):0:-1: ++# BZ30647 %1La:-nan():0:-1: ++# BZ30647 %*1La:-nan():0:-1: ++# BZ30647 %1La:nan():0:-1: ++# BZ30647 %*1La:nan():0:-1: ++# BZ30647 %1La:nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:nan(09A_Zaz):0:-1: + %1La:0x0p0:1:1:0x0: + %*1La:0x0p0:0:1: + %1La:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1La:0xf.ffffffffffff8p+1020:0:1: + %1La:infinity:0:-1: + %*1La:infinity:0:-1: +-%1La:+nan():0:-1: +-%*1La:+nan():0:-1: +-%1La:+nan(09A_Zaz):0:-1: +-%*1La:+nan(09A_Zaz):0:-1: ++# BZ30647 %1La:+nan():0:-1: ++# BZ30647 %*1La:+nan():0:-1: ++# BZ30647 %1La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:+nan(09A_Zaz):0:-1: + %1La:+0x0p0:0:-1: + %*1La:+0x0p0:0:-1: + %1La:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2La:-0x0p+0:0:2: + %2La:-0x0p0:1:2:-0x0: + %*2La:-0x0p0:0:2: +-%2La:-nan(09A_Zaz):0:-1: +-%*2La:-nan(09A_Zaz):0:-1: +-%2La:-nan():0:-1: +-%*2La:-nan():0:-1: +-%2La:nan():0:-1: +-%*2La:nan():0:-1: +-%2La:nan(09A_Zaz):0:-1: +-%*2La:nan(09A_Zaz):0:-1: ++# BZ30647 %2La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:-nan(09A_Zaz):0:-1: ++# BZ30647 %2La:-nan():0:-1: ++# BZ30647 %*2La:-nan():0:-1: ++# BZ30647 %2La:nan():0:-1: ++# BZ30647 %*2La:nan():0:-1: ++# BZ30647 %2La:nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:nan(09A_Zaz):0:-1: + # BZ12701 %2La:0x0p0:0:-1: + # BZ12701 %*2La:0x0p0:0:-1: + # BZ12701 %2La:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2La:0xf.ffffffffffff8p+1020:0:-1: + %2La:infinity:0:-1: + %*2La:infinity:0:-1: +-%2La:+nan():0:-1: +-%*2La:+nan():0:-1: +-%2La:+nan(09A_Zaz):0:-1: +-%*2La:+nan(09A_Zaz):0:-1: ++# BZ30647 %2La:+nan():0:-1: ++# BZ30647 %*2La:+nan():0:-1: ++# BZ30647 %2La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:+nan(09A_Zaz):0:-1: + %2La:+0x0p0:1:2:0x0: + %*2La:+0x0p0:0:2: + %2La:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3La:-0x0p+0:0:-1: + # BZ12701 %3La:-0x0p0:0:-1: + # BZ12701 %*3La:-0x0p0:0:-1: +-%3La:-nan(09A_Zaz):0:-1: +-%*3La:-nan(09A_Zaz):0:-1: +-%3La:-nan():0:-1: +-%*3La:-nan():0:-1: +-%3La:nan():1:3:nan: +-%*3La:nan():0:3: +-%3La:nan(09A_Zaz):1:3:nan: +-%*3La:nan(09A_Zaz):0:3: ++# BZ30647 %3La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3La:-nan(09A_Zaz):0:-1: ++# BZ30647 %3La:-nan():0:-1: ++# BZ30647 %*3La:-nan():0:-1: ++# BZ30647 %3La:nan():1:3:nan: ++# BZ30647 %*3La:nan():0:3: ++# BZ30647 %3La:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3La:nan(09A_Zaz):0:3: + %3La:0x0p0:1:3:0x0: + %*3La:0x0p0:0:3: + %3La:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3La:0xf.ffffffffffff8p+1020:0:3: + %3La:infinity:1:3:inf: + %*3La:infinity:0:3: +-%3La:+nan():0:-1: +-%*3La:+nan():0:-1: +-%3La:+nan(09A_Zaz):0:-1: +-%*3La:+nan(09A_Zaz):0:-1: ++# BZ30647 %3La:+nan():0:-1: ++# BZ30647 %*3La:+nan():0:-1: ++# BZ30647 %3La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3La:+nan(09A_Zaz):0:-1: + # BZ12701 %3La:+0x0p0:0:-1: + # BZ12701 %*3La:+0x0p0:0:-1: + # BZ12701 %3La:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4La:-0x0p+0:0:4: + %4La:-0x0p0:1:4:-0x0: + %*4La:-0x0p0:0:4: +-%4La:-nan(09A_Zaz):1:4:-nan: +-%*4La:-nan(09A_Zaz):0:4: +-%4La:-nan():1:4:-nan: +-%*4La:-nan():0:4: +-%4La:nan():0:-1: +-%*4La:nan():0:-1: +-%4La:nan(09A_Zaz):0:-1: +-%*4La:nan(09A_Zaz):0:-1: ++# BZ30647 %4La:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4La:-nan(09A_Zaz):0:4: ++# BZ30647 %4La:-nan():1:4:-nan: ++# BZ30647 %*4La:-nan():0:4: ++# BZ30647 %4La:nan():0:-1: ++# BZ30647 %*4La:nan():0:-1: ++# BZ30647 %4La:nan(09A_Zaz):0:-1: ++# BZ30647 %*4La:nan(09A_Zaz):0:-1: + # BZ12701 %4La:0x0p0:0:-1: + # BZ12701 %*4La:0x0p0:0:-1: + # BZ12701 %4La:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4La:0xf.ffffffffffff8p+1020:0:4: + %4La:infinity:0:-1: + %*4La:infinity:0:-1: +-%4La:+nan():1:4:nan: +-%*4La:+nan():0:4: +-%4La:+nan(09A_Zaz):1:4:nan: +-%*4La:+nan(09A_Zaz):0:4: ++# BZ30647 %4La:+nan():1:4:nan: ++# BZ30647 %*4La:+nan():0:4: ++# BZ30647 %4La:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4La:+nan(09A_Zaz):0:4: + %4La:+0x0p0:1:4:0x0: + %*4La:+0x0p0:0:4: + %4La:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5La:-0x0p+0:0:-1: + # BZ12701 %5La:-0x0p0:0:-1: + # BZ12701 %*5La:-0x0p0:0:-1: +-%5La:-nan(09A_Zaz):0:-1: +-%*5La:-nan(09A_Zaz):0:-1: +-%5La:-nan():0:-1: +-%*5La:-nan():0:-1: +-%5La:nan():1:5:nan: +-%*5La:nan():0:5: +-%5La:nan(09A_Zaz):0:-1: +-%*5La:nan(09A_Zaz):0:-1: ++# BZ30647 %5La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:-nan(09A_Zaz):0:-1: ++# BZ30647 %5La:-nan():0:-1: ++# BZ30647 %*5La:-nan():0:-1: ++# BZ30647 %5La:nan():1:5:nan: ++# BZ30647 %*5La:nan():0:5: ++# BZ30647 %5La:nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:nan(09A_Zaz):0:-1: + %5La:0x0p0:1:5:0x0: + %*5La:0x0p0:0:5: + # BZ12701 %5La:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5La:0xf.ffffffffffff8p+1020:0:5: + %5La:infinity:0:-1: + %*5La:infinity:0:-1: +-%5La:+nan():0:-1: +-%*5La:+nan():0:-1: +-%5La:+nan(09A_Zaz):0:-1: +-%*5La:+nan(09A_Zaz):0:-1: ++# BZ30647 %5La:+nan():0:-1: ++# BZ30647 %*5La:+nan():0:-1: ++# BZ30647 %5La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:+nan(09A_Zaz):0:-1: + # BZ12701 %5La:+0x0p0:0:-1: + # BZ12701 %*5La:+0x0p0:0:-1: + # BZ12701 %5La:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6La:-0x0p+0:0:-1: + %6La:-0x0p0:1:6:-0x0: + %*6La:-0x0p0:0:6: +-%6La:-nan(09A_Zaz):0:-1: +-%*6La:-nan(09A_Zaz):0:-1: +-%6La:-nan():1:6:-nan: +-%*6La:-nan():0:6: +-%6La:nan():1:5:nan: +-%*6La:nan():0:5: +-%6La:nan(09A_Zaz):0:-1: +-%*6La:nan(09A_Zaz):0:-1: ++# BZ30647 %6La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:-nan(09A_Zaz):0:-1: ++# BZ30647 %6La:-nan():1:6:-nan: ++# BZ30647 %*6La:-nan():0:6: ++# BZ30647 %6La:nan():1:5:nan: ++# BZ30647 %*6La:nan():0:5: ++# BZ30647 %6La:nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:nan(09A_Zaz):0:-1: + %6La:0x0p0:1:5:0x0: + %*6La:0x0p0:0:5: + %6La:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6La:0xf.ffffffffffff8p+1020:0:6: + %6La:infinity:0:-1: + %*6La:infinity:0:-1: +-%6La:+nan():1:6:nan: +-%*6La:+nan():0:6: +-%6La:+nan(09A_Zaz):0:-1: +-%*6La:+nan(09A_Zaz):0:-1: ++# BZ30647 %6La:+nan():1:6:nan: ++# BZ30647 %*6La:+nan():0:6: ++# BZ30647 %6La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:+nan(09A_Zaz):0:-1: + %6La:+0x0p0:1:6:0x0: + %*6La:+0x0p0:0:6: + # BZ12701 %6La:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*20La:-0x0p+0:0:7: + %20La:-0x0p0:1:6:-0x0: + %*20La:-0x0p0:0:6: +-%20La:-nan(09A_Zaz):1:13:-nan: +-%*20La:-nan(09A_Zaz):0:13: +-%20La:-nan():1:6:-nan: +-%*20La:-nan():0:6: +-%20La:nan():1:5:nan: +-%*20La:nan():0:5: +-%20La:nan(09A_Zaz):1:12:nan: +-%*20La:nan(09A_Zaz):0:12: ++# BZ30647 %20La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*20La:-nan(09A_Zaz):0:13: ++# BZ30647 %20La:-nan():1:6:-nan: ++# BZ30647 %*20La:-nan():0:6: ++# BZ30647 %20La:nan():1:5:nan: ++# BZ30647 %*20La:nan():0:5: ++# BZ30647 %20La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*20La:nan(09A_Zaz):0:12: + %20La:0x0p0:1:5:0x0: + %*20La:0x0p0:0:5: + %20La:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*20La:0xf.ffffffffffff8p+1020:0:20: + %20La:infinity:1:8:inf: + %*20La:infinity:0:8: +-%20La:+nan():1:6:nan: +-%*20La:+nan():0:6: +-%20La:+nan(09A_Zaz):1:13:nan: +-%*20La:+nan(09A_Zaz):0:13: ++# BZ30647 %20La:+nan():1:6:nan: ++# BZ30647 %*20La:+nan():0:6: ++# BZ30647 %20La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*20La:+nan(09A_Zaz):0:13: + %20La:+0x0p0:1:6:0x0: + %*20La:+0x0p0:0:6: + %20La:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*32La:-0x0p+0:0:7: + %32La:-0x0p0:1:6:-0x0: + %*32La:-0x0p0:0:6: +-%32La:-nan(09A_Zaz):1:13:-nan: +-%*32La:-nan(09A_Zaz):0:13: +-%32La:-nan():1:6:-nan: +-%*32La:-nan():0:6: +-%32La:nan():1:5:nan: +-%*32La:nan():0:5: +-%32La:nan(09A_Zaz):1:12:nan: +-%*32La:nan(09A_Zaz):0:12: ++# BZ30647 %32La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*32La:-nan(09A_Zaz):0:13: ++# BZ30647 %32La:-nan():1:6:-nan: ++# BZ30647 %*32La:-nan():0:6: ++# BZ30647 %32La:nan():1:5:nan: ++# BZ30647 %*32La:nan():0:5: ++# BZ30647 %32La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*32La:nan(09A_Zaz):0:12: + %32La:0x0p0:1:5:0x0: + %*32La:0x0p0:0:5: + %32La:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*32La:0xf.ffffffffffff8p+1020:0:23: + %32La:infinity:1:8:inf: + %*32La:infinity:0:8: +-%32La:+nan():1:6:nan: +-%*32La:+nan():0:6: +-%32La:+nan(09A_Zaz):1:13:nan: +-%*32La:+nan(09A_Zaz):0:13: ++# BZ30647 %32La:+nan():1:6:nan: ++# BZ30647 %*32La:+nan():0:6: ++# BZ30647 %32La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*32La:+nan(09A_Zaz):0:13: + %32La:+0x0p0:1:6:0x0: + %*32La:+0x0p0:0:6: + %32La:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5La: -0x0p+0:0:-1: + # BZ12701 %5La: -0x0p0:0:-1: + # BZ12701 %*5La: -0x0p0:0:-1: +-%5La: -nan(09A_Zaz):0:-1: +-%*5La: -nan(09A_Zaz):0:-1: +-%5La: -nan():0:-1: +-%*5La: -nan():0:-1: +-%5La: nan():1:6:nan: +-%*5La: nan():0:6: +-%5La: nan(09A_Zaz):0:-1: +-%*5La: nan(09A_Zaz):0:-1: ++# BZ30647 %5La: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: -nan(09A_Zaz):0:-1: ++# BZ30647 %5La: -nan():0:-1: ++# BZ30647 %*5La: -nan():0:-1: ++# BZ30647 %5La: nan():1:6:nan: ++# BZ30647 %*5La: nan():0:6: ++# BZ30647 %5La: nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: nan(09A_Zaz):0:-1: + %5La: 0x0p0:1:6:0x0: + %*5La: 0x0p0:0:6: + # BZ12701 %5La: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5La: 0xf.ffffffffffff8p+1020:0:6: + %5La: infinity:0:-1: + %*5La: infinity:0:-1: +-%5La: +nan():0:-1: +-%*5La: +nan():0:-1: +-%5La: +nan(09A_Zaz):0:-1: +-%*5La: +nan(09A_Zaz):0:-1: ++# BZ30647 %5La: +nan():0:-1: ++# BZ30647 %*5La: +nan():0:-1: ++# BZ30647 %5La: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: +nan(09A_Zaz):0:-1: + # BZ12701 %5La: +0x0p0:0:-1: + # BZ12701 %*5La: +0x0p0:0:-1: + # BZ12701 %5La: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*32La: -0x0p+0:0:8: + %32La: -0x0p0:1:7:-0x0: + %*32La: -0x0p0:0:7: +-%32La: -nan(09A_Zaz):1:14:-nan: +-%*32La: -nan(09A_Zaz):0:14: +-%32La: -nan():1:7:-nan: +-%*32La: -nan():0:7: +-%32La: nan():1:6:nan: +-%*32La: nan():0:6: +-%32La: nan(09A_Zaz):1:13:nan: +-%*32La: nan(09A_Zaz):0:13: ++# BZ30647 %32La: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*32La: -nan(09A_Zaz):0:14: ++# BZ30647 %32La: -nan():1:7:-nan: ++# BZ30647 %*32La: -nan():0:7: ++# BZ30647 %32La: nan():1:6:nan: ++# BZ30647 %*32La: nan():0:6: ++# BZ30647 %32La: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*32La: nan(09A_Zaz):0:13: + %32La: 0x0p0:1:6:0x0: + %*32La: 0x0p0:0:6: + %32La: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*32La: 0xf.ffffffffffff8p+1020:0:24: + %32La: infinity:1:9:inf: + %*32La: infinity:0:9: +-%32La: +nan():1:7:nan: +-%*32La: +nan():0:7: +-%32La: +nan(09A_Zaz):1:14:nan: +-%*32La: +nan(09A_Zaz):0:14: ++# BZ30647 %32La: +nan():1:7:nan: ++# BZ30647 %*32La: +nan():0:7: ++# BZ30647 %32La: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*32La: +nan(09A_Zaz):0:14: + %32La: +0x0p0:1:7:0x0: + %*32La: +0x0p0:0:7: + %32La: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input +index 8a0e6005e3a86bc8..ea14b489e06234b3 100644 +--- a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input +@@ -16,14 +16,14 @@ + %*LA:-0X0P+0:0:7: + %LA:-0X0P0:1:6:-0x0: + %*LA:-0X0P0:0:6: +-%LA:-NAN(09A_Zaz):1:13:-nan: +-%*LA:-NAN(09A_Zaz):0:13: +-%LA:-NAN():1:6:-nan: +-%*LA:-NAN():0:6: +-%LA:NAN():1:5:nan: +-%*LA:NAN():0:5: +-%LA:NAN(09A_Zaz):1:12:nan: +-%*LA:NAN(09A_Zaz):0:12: ++# BZ30647 %LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %LA:-NAN():1:6:-nan: ++# BZ30647 %*LA:-NAN():0:6: ++# BZ30647 %LA:NAN():1:5:nan: ++# BZ30647 %*LA:NAN():0:5: ++# BZ30647 %LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LA:NAN(09A_Zaz):0:12: + %LA:0X0P0:1:5:0x0: + %*LA:0X0P0:0:5: + %LA:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*LA:0XF.FFFFFFFFFFFF8P+1020:0:23: + %LA:INFINITY:1:8:inf: + %*LA:INFINITY:0:8: +-%LA:+NAN():1:6:nan: +-%*LA:+NAN():0:6: +-%LA:+NAN(09A_Zaz):1:13:nan: +-%*LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %LA:+NAN():1:6:nan: ++# BZ30647 %*LA:+NAN():0:6: ++# BZ30647 %LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LA:+NAN(09A_Zaz):0:13: + %LA:+0X0P0:1:6:0x0: + %*LA:+0X0P0:0:6: + %LA:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1LA:-0X0P+0:0:-1: + %1LA:-0X0P0:0:-1: + %*1LA:-0X0P0:0:-1: +-%1LA:-NAN(09A_Zaz):0:-1: +-%*1LA:-NAN(09A_Zaz):0:-1: +-%1LA:-NAN():0:-1: +-%*1LA:-NAN():0:-1: +-%1LA:NAN():0:-1: +-%*1LA:NAN():0:-1: +-%1LA:NAN(09A_Zaz):0:-1: +-%*1LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:-NAN():0:-1: ++# BZ30647 %*1LA:-NAN():0:-1: ++# BZ30647 %1LA:NAN():0:-1: ++# BZ30647 %*1LA:NAN():0:-1: ++# BZ30647 %1LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:NAN(09A_Zaz):0:-1: + %1LA:0X0P0:1:1:0x0: + %*1LA:0X0P0:0:1: + %1LA:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LA:0XF.FFFFFFFFFFFF8P+1020:0:1: + %1LA:INFINITY:0:-1: + %*1LA:INFINITY:0:-1: +-%1LA:+NAN():0:-1: +-%*1LA:+NAN():0:-1: +-%1LA:+NAN(09A_Zaz):0:-1: +-%*1LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:+NAN():0:-1: ++# BZ30647 %*1LA:+NAN():0:-1: ++# BZ30647 %1LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:+NAN(09A_Zaz):0:-1: + %1LA:+0X0P0:0:-1: + %*1LA:+0X0P0:0:-1: + %1LA:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LA:-0X0P+0:0:2: + %2LA:-0X0P0:1:2:-0x0: + %*2LA:-0X0P0:0:2: +-%2LA:-NAN(09A_Zaz):0:-1: +-%*2LA:-NAN(09A_Zaz):0:-1: +-%2LA:-NAN():0:-1: +-%*2LA:-NAN():0:-1: +-%2LA:NAN():0:-1: +-%*2LA:NAN():0:-1: +-%2LA:NAN(09A_Zaz):0:-1: +-%*2LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:-NAN():0:-1: ++# BZ30647 %*2LA:-NAN():0:-1: ++# BZ30647 %2LA:NAN():0:-1: ++# BZ30647 %*2LA:NAN():0:-1: ++# BZ30647 %2LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:NAN(09A_Zaz):0:-1: + # BZ12701 %2LA:0X0P0:0:-1: + # BZ12701 %*2LA:0X0P0:0:-1: + # BZ12701 %2LA:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2LA:0XF.FFFFFFFFFFFF8P+1020:0:-1: + %2LA:INFINITY:0:-1: + %*2LA:INFINITY:0:-1: +-%2LA:+NAN():0:-1: +-%*2LA:+NAN():0:-1: +-%2LA:+NAN(09A_Zaz):0:-1: +-%*2LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:+NAN():0:-1: ++# BZ30647 %*2LA:+NAN():0:-1: ++# BZ30647 %2LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:+NAN(09A_Zaz):0:-1: + %2LA:+0X0P0:1:2:0x0: + %*2LA:+0X0P0:0:2: + %2LA:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LA:-0X0P+0:0:-1: + # BZ12701 %3LA:-0X0P0:0:-1: + # BZ12701 %*3LA:-0X0P0:0:-1: +-%3LA:-NAN(09A_Zaz):0:-1: +-%*3LA:-NAN(09A_Zaz):0:-1: +-%3LA:-NAN():0:-1: +-%*3LA:-NAN():0:-1: +-%3LA:NAN():1:3:nan: +-%*3LA:NAN():0:3: +-%3LA:NAN(09A_Zaz):1:3:nan: +-%*3LA:NAN(09A_Zaz):0:3: ++# BZ30647 %3LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LA:-NAN():0:-1: ++# BZ30647 %*3LA:-NAN():0:-1: ++# BZ30647 %3LA:NAN():1:3:nan: ++# BZ30647 %*3LA:NAN():0:3: ++# BZ30647 %3LA:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LA:NAN(09A_Zaz):0:3: + %3LA:0X0P0:1:3:0x0: + %*3LA:0X0P0:0:3: + %3LA:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LA:0XF.FFFFFFFFFFFF8P+1020:0:3: + %3LA:INFINITY:1:3:inf: + %*3LA:INFINITY:0:3: +-%3LA:+NAN():0:-1: +-%*3LA:+NAN():0:-1: +-%3LA:+NAN(09A_Zaz):0:-1: +-%*3LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LA:+NAN():0:-1: ++# BZ30647 %*3LA:+NAN():0:-1: ++# BZ30647 %3LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LA:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LA:+0X0P0:0:-1: + # BZ12701 %*3LA:+0X0P0:0:-1: + # BZ12701 %3LA:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4LA:-0X0P+0:0:4: + %4LA:-0X0P0:1:4:-0x0: + %*4LA:-0X0P0:0:4: +-%4LA:-NAN(09A_Zaz):1:4:-nan: +-%*4LA:-NAN(09A_Zaz):0:4: +-%4LA:-NAN():1:4:-nan: +-%*4LA:-NAN():0:4: +-%4LA:NAN():0:-1: +-%*4LA:NAN():0:-1: +-%4LA:NAN(09A_Zaz):0:-1: +-%*4LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LA:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LA:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LA:-NAN():1:4:-nan: ++# BZ30647 %*4LA:-NAN():0:4: ++# BZ30647 %4LA:NAN():0:-1: ++# BZ30647 %*4LA:NAN():0:-1: ++# BZ30647 %4LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LA:NAN(09A_Zaz):0:-1: + # BZ12701 %4LA:0X0P0:0:-1: + # BZ12701 %*4LA:0X0P0:0:-1: + # BZ12701 %4LA:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4LA:0XF.FFFFFFFFFFFF8P+1020:0:4: + %4LA:INFINITY:0:-1: + %*4LA:INFINITY:0:-1: +-%4LA:+NAN():1:4:nan: +-%*4LA:+NAN():0:4: +-%4LA:+NAN(09A_Zaz):1:4:nan: +-%*4LA:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LA:+NAN():1:4:nan: ++# BZ30647 %*4LA:+NAN():0:4: ++# BZ30647 %4LA:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LA:+NAN(09A_Zaz):0:4: + %4LA:+0X0P0:1:4:0x0: + %*4LA:+0X0P0:0:4: + %4LA:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5LA:-0X0P+0:0:-1: + # BZ12701 %5LA:-0X0P0:0:-1: + # BZ12701 %*5LA:-0X0P0:0:-1: +-%5LA:-NAN(09A_Zaz):0:-1: +-%*5LA:-NAN(09A_Zaz):0:-1: +-%5LA:-NAN():0:-1: +-%*5LA:-NAN():0:-1: +-%5LA:NAN():1:5:nan: +-%*5LA:NAN():0:5: +-%5LA:NAN(09A_Zaz):0:-1: +-%*5LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:-NAN():0:-1: ++# BZ30647 %*5LA:-NAN():0:-1: ++# BZ30647 %5LA:NAN():1:5:nan: ++# BZ30647 %*5LA:NAN():0:5: ++# BZ30647 %5LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:NAN(09A_Zaz):0:-1: + %5LA:0X0P0:1:5:0x0: + %*5LA:0X0P0:0:5: + # BZ12701 %5LA:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5LA:0XF.FFFFFFFFFFFF8P+1020:0:5: + %5LA:INFINITY:0:-1: + %*5LA:INFINITY:0:-1: +-%5LA:+NAN():0:-1: +-%*5LA:+NAN():0:-1: +-%5LA:+NAN(09A_Zaz):0:-1: +-%*5LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:+NAN():0:-1: ++# BZ30647 %*5LA:+NAN():0:-1: ++# BZ30647 %5LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:+NAN(09A_Zaz):0:-1: + # BZ12701 %5LA:+0X0P0:0:-1: + # BZ12701 %*5LA:+0X0P0:0:-1: + # BZ12701 %5LA:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6LA:-0X0P+0:0:-1: + %6LA:-0X0P0:1:6:-0x0: + %*6LA:-0X0P0:0:6: +-%6LA:-NAN(09A_Zaz):0:-1: +-%*6LA:-NAN(09A_Zaz):0:-1: +-%6LA:-NAN():1:6:-nan: +-%*6LA:-NAN():0:6: +-%6LA:NAN():1:5:nan: +-%*6LA:NAN():0:5: +-%6LA:NAN(09A_Zaz):0:-1: +-%*6LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:-NAN():1:6:-nan: ++# BZ30647 %*6LA:-NAN():0:6: ++# BZ30647 %6LA:NAN():1:5:nan: ++# BZ30647 %*6LA:NAN():0:5: ++# BZ30647 %6LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:NAN(09A_Zaz):0:-1: + %6LA:0X0P0:1:5:0x0: + %*6LA:0X0P0:0:5: + %6LA:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6LA:0XF.FFFFFFFFFFFF8P+1020:0:6: + %6LA:INFINITY:0:-1: + %*6LA:INFINITY:0:-1: +-%6LA:+NAN():1:6:nan: +-%*6LA:+NAN():0:6: +-%6LA:+NAN(09A_Zaz):0:-1: +-%*6LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:+NAN():1:6:nan: ++# BZ30647 %*6LA:+NAN():0:6: ++# BZ30647 %6LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:+NAN(09A_Zaz):0:-1: + %6LA:+0X0P0:1:6:0x0: + %*6LA:+0X0P0:0:6: + # BZ12701 %6LA:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*20LA:-0X0P+0:0:7: + %20LA:-0X0P0:1:6:-0x0: + %*20LA:-0X0P0:0:6: +-%20LA:-NAN(09A_Zaz):1:13:-nan: +-%*20LA:-NAN(09A_Zaz):0:13: +-%20LA:-NAN():1:6:-nan: +-%*20LA:-NAN():0:6: +-%20LA:NAN():1:5:nan: +-%*20LA:NAN():0:5: +-%20LA:NAN(09A_Zaz):1:12:nan: +-%*20LA:NAN(09A_Zaz):0:12: ++# BZ30647 %20LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*20LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %20LA:-NAN():1:6:-nan: ++# BZ30647 %*20LA:-NAN():0:6: ++# BZ30647 %20LA:NAN():1:5:nan: ++# BZ30647 %*20LA:NAN():0:5: ++# BZ30647 %20LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*20LA:NAN(09A_Zaz):0:12: + %20LA:0X0P0:1:5:0x0: + %*20LA:0X0P0:0:5: + %20LA:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*20LA:0XF.FFFFFFFFFFFF8P+1020:0:20: + %20LA:INFINITY:1:8:inf: + %*20LA:INFINITY:0:8: +-%20LA:+NAN():1:6:nan: +-%*20LA:+NAN():0:6: +-%20LA:+NAN(09A_Zaz):1:13:nan: +-%*20LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %20LA:+NAN():1:6:nan: ++# BZ30647 %*20LA:+NAN():0:6: ++# BZ30647 %20LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*20LA:+NAN(09A_Zaz):0:13: + %20LA:+0X0P0:1:6:0x0: + %*20LA:+0X0P0:0:6: + %20LA:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*32LA:-0X0P+0:0:7: + %32LA:-0X0P0:1:6:-0x0: + %*32LA:-0X0P0:0:6: +-%32LA:-NAN(09A_Zaz):1:13:-nan: +-%*32LA:-NAN(09A_Zaz):0:13: +-%32LA:-NAN():1:6:-nan: +-%*32LA:-NAN():0:6: +-%32LA:NAN():1:5:nan: +-%*32LA:NAN():0:5: +-%32LA:NAN(09A_Zaz):1:12:nan: +-%*32LA:NAN(09A_Zaz):0:12: ++# BZ30647 %32LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*32LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %32LA:-NAN():1:6:-nan: ++# BZ30647 %*32LA:-NAN():0:6: ++# BZ30647 %32LA:NAN():1:5:nan: ++# BZ30647 %*32LA:NAN():0:5: ++# BZ30647 %32LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*32LA:NAN(09A_Zaz):0:12: + %32LA:0X0P0:1:5:0x0: + %*32LA:0X0P0:0:5: + %32LA:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*32LA:0XF.FFFFFFFFFFFF8P+1020:0:23: + %32LA:INFINITY:1:8:inf: + %*32LA:INFINITY:0:8: +-%32LA:+NAN():1:6:nan: +-%*32LA:+NAN():0:6: +-%32LA:+NAN(09A_Zaz):1:13:nan: +-%*32LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %32LA:+NAN():1:6:nan: ++# BZ30647 %*32LA:+NAN():0:6: ++# BZ30647 %32LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*32LA:+NAN(09A_Zaz):0:13: + %32LA:+0X0P0:1:6:0x0: + %*32LA:+0X0P0:0:6: + %32LA:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5LA: -0X0P+0:0:-1: + # BZ12701 %5LA: -0X0P0:0:-1: + # BZ12701 %*5LA: -0X0P0:0:-1: +-%5LA: -NAN(09A_Zaz):0:-1: +-%*5LA: -NAN(09A_Zaz):0:-1: +-%5LA: -NAN():0:-1: +-%*5LA: -NAN():0:-1: +-%5LA: NAN():1:6:nan: +-%*5LA: NAN():0:6: +-%5LA: NAN(09A_Zaz):0:-1: +-%*5LA: NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: -NAN():0:-1: ++# BZ30647 %*5LA: -NAN():0:-1: ++# BZ30647 %5LA: NAN():1:6:nan: ++# BZ30647 %*5LA: NAN():0:6: ++# BZ30647 %5LA: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: NAN(09A_Zaz):0:-1: + %5LA: 0X0P0:1:6:0x0: + %*5LA: 0X0P0:0:6: + # BZ12701 %5LA: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5LA: 0XF.FFFFFFFFFFFF8P+1020:0:6: + %5LA: INFINITY:0:-1: + %*5LA: INFINITY:0:-1: +-%5LA: +NAN():0:-1: +-%*5LA: +NAN():0:-1: +-%5LA: +NAN(09A_Zaz):0:-1: +-%*5LA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: +NAN():0:-1: ++# BZ30647 %*5LA: +NAN():0:-1: ++# BZ30647 %5LA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: +NAN(09A_Zaz):0:-1: + # BZ12701 %5LA: +0X0P0:0:-1: + # BZ12701 %*5LA: +0X0P0:0:-1: + # BZ12701 %5LA: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*32LA: -0X0P+0:0:8: + %32LA: -0X0P0:1:7:-0x0: + %*32LA: -0X0P0:0:7: +-%32LA: -NAN(09A_Zaz):1:14:-nan: +-%*32LA: -NAN(09A_Zaz):0:14: +-%32LA: -NAN():1:7:-nan: +-%*32LA: -NAN():0:7: +-%32LA: NAN():1:6:nan: +-%*32LA: NAN():0:6: +-%32LA: NAN(09A_Zaz):1:13:nan: +-%*32LA: NAN(09A_Zaz):0:13: ++# BZ30647 %32LA: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*32LA: -NAN(09A_Zaz):0:14: ++# BZ30647 %32LA: -NAN():1:7:-nan: ++# BZ30647 %*32LA: -NAN():0:7: ++# BZ30647 %32LA: NAN():1:6:nan: ++# BZ30647 %*32LA: NAN():0:6: ++# BZ30647 %32LA: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*32LA: NAN(09A_Zaz):0:13: + %32LA: 0X0P0:1:6:0x0: + %*32LA: 0X0P0:0:6: + %32LA: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*32LA: 0XF.FFFFFFFFFFFF8P+1020:0:24: + %32LA: INFINITY:1:9:inf: + %*32LA: INFINITY:0:9: +-%32LA: +NAN():1:7:nan: +-%*32LA: +NAN():0:7: +-%32LA: +NAN(09A_Zaz):1:14:nan: +-%*32LA: +NAN(09A_Zaz):0:14: ++# BZ30647 %32LA: +NAN():1:7:nan: ++# BZ30647 %*32LA: +NAN():0:7: ++# BZ30647 %32LA: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*32LA: +NAN(09A_Zaz):0:14: + %32LA: +0X0P0:1:7:0x0: + %*32LA: +0X0P0:0:7: + %32LA: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input +index c510f086919bd135..c998652b556bc7ac 100644 +--- a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input +@@ -16,14 +16,14 @@ + %*Le:-0e+0:0:5: + %Le:-0e0:1:4:-0x0: + %*Le:-0e0:0:4: +-%Le:-nan(09A_Zaz):1:13:-nan: +-%*Le:-nan(09A_Zaz):0:13: +-%Le:-nan():1:6:-nan: +-%*Le:-nan():0:6: +-%Le:nan():1:5:nan: +-%*Le:nan():0:5: +-%Le:nan(09A_Zaz):1:12:nan: +-%*Le:nan(09A_Zaz):0:12: ++# BZ30647 %Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Le:-nan(09A_Zaz):0:13: ++# BZ30647 %Le:-nan():1:6:-nan: ++# BZ30647 %*Le:-nan():0:6: ++# BZ30647 %Le:nan():1:5:nan: ++# BZ30647 %*Le:nan():0:5: ++# BZ30647 %Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Le:nan(09A_Zaz):0:12: + %Le:0e0:1:3:0x0: + %*Le:0e0:0:3: + %Le:0e+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*Le:1.79769313486231570814527423731704357e+308:0:42: + %Le:infinity:1:8:inf: + %*Le:infinity:0:8: +-%Le:+nan():1:6:nan: +-%*Le:+nan():0:6: +-%Le:+nan(09A_Zaz):1:13:nan: +-%*Le:+nan(09A_Zaz):0:13: ++# BZ30647 %Le:+nan():1:6:nan: ++# BZ30647 %*Le:+nan():0:6: ++# BZ30647 %Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Le:+nan(09A_Zaz):0:13: + %Le:+0e0:1:4:0x0: + %*Le:+0e0:0:4: + %Le:+0e+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1Le:-0e+0:0:-1: + %1Le:-0e0:0:-1: + %*1Le:-0e0:0:-1: +-%1Le:-nan(09A_Zaz):0:-1: +-%*1Le:-nan(09A_Zaz):0:-1: +-%1Le:-nan():0:-1: +-%*1Le:-nan():0:-1: +-%1Le:nan():0:-1: +-%*1Le:nan():0:-1: +-%1Le:nan(09A_Zaz):0:-1: +-%*1Le:nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:-nan():0:-1: ++# BZ30647 %*1Le:-nan():0:-1: ++# BZ30647 %1Le:nan():0:-1: ++# BZ30647 %*1Le:nan():0:-1: ++# BZ30647 %1Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:nan(09A_Zaz):0:-1: + %1Le:0e0:1:1:0x0: + %*1Le:0e0:0:1: + %1Le:0e+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Le:1.79769313486231570814527423731704357e+308:0:1: + %1Le:infinity:0:-1: + %*1Le:infinity:0:-1: +-%1Le:+nan():0:-1: +-%*1Le:+nan():0:-1: +-%1Le:+nan(09A_Zaz):0:-1: +-%*1Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:+nan():0:-1: ++# BZ30647 %*1Le:+nan():0:-1: ++# BZ30647 %1Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:+nan(09A_Zaz):0:-1: + %1Le:+0e0:0:-1: + %*1Le:+0e0:0:-1: + %1Le:+0e+0:0:-1: +@@ -140,14 +140,14 @@ + %*2Le:-0e+0:0:2: + %2Le:-0e0:1:2:-0x0: + %*2Le:-0e0:0:2: +-%2Le:-nan(09A_Zaz):0:-1: +-%*2Le:-nan(09A_Zaz):0:-1: +-%2Le:-nan():0:-1: +-%*2Le:-nan():0:-1: +-%2Le:nan():0:-1: +-%*2Le:nan():0:-1: +-%2Le:nan(09A_Zaz):0:-1: +-%*2Le:nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:-nan():0:-1: ++# BZ30647 %*2Le:-nan():0:-1: ++# BZ30647 %2Le:nan():0:-1: ++# BZ30647 %*2Le:nan():0:-1: ++# BZ30647 %2Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:nan(09A_Zaz):0:-1: + # BZ12701 %2Le:0e0:0:-1: + # BZ12701 %*2Le:0e0:0:-1: + # BZ12701 %2Le:0e+0:0:-1: +@@ -164,10 +164,10 @@ + %*2Le:1.79769313486231570814527423731704357e+308:0:2: + %2Le:infinity:0:-1: + %*2Le:infinity:0:-1: +-%2Le:+nan():0:-1: +-%*2Le:+nan():0:-1: +-%2Le:+nan(09A_Zaz):0:-1: +-%*2Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:+nan():0:-1: ++# BZ30647 %*2Le:+nan():0:-1: ++# BZ30647 %2Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:+nan(09A_Zaz):0:-1: + %2Le:+0e0:1:2:0x0: + %*2Le:+0e0:0:2: + %2Le:+0e+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3Le:-0e+0:0:-1: + # BZ12701 %3Le:-0e0:0:-1: + # BZ12701 %*3Le:-0e0:0:-1: +-%3Le:-nan(09A_Zaz):0:-1: +-%*3Le:-nan(09A_Zaz):0:-1: +-%3Le:-nan():0:-1: +-%*3Le:-nan():0:-1: +-%3Le:nan():1:3:nan: +-%*3Le:nan():0:3: +-%3Le:nan(09A_Zaz):1:3:nan: +-%*3Le:nan(09A_Zaz):0:3: ++# BZ30647 %3Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Le:-nan():0:-1: ++# BZ30647 %*3Le:-nan():0:-1: ++# BZ30647 %3Le:nan():1:3:nan: ++# BZ30647 %*3Le:nan():0:3: ++# BZ30647 %3Le:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Le:nan(09A_Zaz):0:3: + %3Le:0e0:1:3:0x0: + %*3Le:0e0:0:3: + # BZ12701 %3Le:0e+0:0:-1: +@@ -226,10 +226,10 @@ + %*3Le:1.79769313486231570814527423731704357e+308:0:3: + %3Le:infinity:1:3:inf: + %*3Le:infinity:0:3: +-%3Le:+nan():0:-1: +-%*3Le:+nan():0:-1: +-%3Le:+nan(09A_Zaz):0:-1: +-%*3Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Le:+nan():0:-1: ++# BZ30647 %*3Le:+nan():0:-1: ++# BZ30647 %3Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le:+nan(09A_Zaz):0:-1: + # BZ12701 %3Le:+0e0:0:-1: + # BZ12701 %*3Le:+0e0:0:-1: + # BZ12701 %3Le:+0e+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4Le:-0e+0:0:-1: + %4Le:-0e0:1:4:-0x0: + %*4Le:-0e0:0:4: +-%4Le:-nan(09A_Zaz):1:4:-nan: +-%*4Le:-nan(09A_Zaz):0:4: +-%4Le:-nan():1:4:-nan: +-%*4Le:-nan():0:4: +-%4Le:nan():0:-1: +-%*4Le:nan():0:-1: +-%4Le:nan(09A_Zaz):0:-1: +-%*4Le:nan(09A_Zaz):0:-1: ++# BZ30647 %4Le:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Le:-nan(09A_Zaz):0:4: ++# BZ30647 %4Le:-nan():1:4:-nan: ++# BZ30647 %*4Le:-nan():0:4: ++# BZ30647 %4Le:nan():0:-1: ++# BZ30647 %*4Le:nan():0:-1: ++# BZ30647 %4Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Le:nan(09A_Zaz):0:-1: + %4Le:0e0:1:3:0x0: + %*4Le:0e0:0:3: + %4Le:0e+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4Le:1.79769313486231570814527423731704357e+308:0:4: + %4Le:infinity:0:-1: + %*4Le:infinity:0:-1: +-%4Le:+nan():1:4:nan: +-%*4Le:+nan():0:4: +-%4Le:+nan(09A_Zaz):1:4:nan: +-%*4Le:+nan(09A_Zaz):0:4: ++# BZ30647 %4Le:+nan():1:4:nan: ++# BZ30647 %*4Le:+nan():0:4: ++# BZ30647 %4Le:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Le:+nan(09A_Zaz):0:4: + %4Le:+0e0:1:4:0x0: + %*4Le:+0e0:0:4: + # BZ12701 %4Le:+0e+0:0:-1: +@@ -326,14 +326,14 @@ + %*40Le:-0e+0:0:5: + %40Le:-0e0:1:4:-0x0: + %*40Le:-0e0:0:4: +-%40Le:-nan(09A_Zaz):1:13:-nan: +-%*40Le:-nan(09A_Zaz):0:13: +-%40Le:-nan():1:6:-nan: +-%*40Le:-nan():0:6: +-%40Le:nan():1:5:nan: +-%*40Le:nan():0:5: +-%40Le:nan(09A_Zaz):1:12:nan: +-%*40Le:nan(09A_Zaz):0:12: ++# BZ30647 %40Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*40Le:-nan(09A_Zaz):0:13: ++# BZ30647 %40Le:-nan():1:6:-nan: ++# BZ30647 %*40Le:-nan():0:6: ++# BZ30647 %40Le:nan():1:5:nan: ++# BZ30647 %*40Le:nan():0:5: ++# BZ30647 %40Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*40Le:nan(09A_Zaz):0:12: + %40Le:0e0:1:3:0x0: + %*40Le:0e0:0:3: + %40Le:0e+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40Le:1.79769313486231570814527423731704357e+308:0:40: + %40Le:infinity:1:8:inf: + %*40Le:infinity:0:8: +-%40Le:+nan():1:6:nan: +-%*40Le:+nan():0:6: +-%40Le:+nan(09A_Zaz):1:13:nan: +-%*40Le:+nan(09A_Zaz):0:13: ++# BZ30647 %40Le:+nan():1:6:nan: ++# BZ30647 %*40Le:+nan():0:6: ++# BZ30647 %40Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*40Le:+nan(09A_Zaz):0:13: + %40Le:+0e0:1:4:0x0: + %*40Le:+0e0:0:4: + %40Le:+0e+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48Le:-0e+0:0:5: + %48Le:-0e0:1:4:-0x0: + %*48Le:-0e0:0:4: +-%48Le:-nan(09A_Zaz):1:13:-nan: +-%*48Le:-nan(09A_Zaz):0:13: +-%48Le:-nan():1:6:-nan: +-%*48Le:-nan():0:6: +-%48Le:nan():1:5:nan: +-%*48Le:nan():0:5: +-%48Le:nan(09A_Zaz):1:12:nan: +-%*48Le:nan(09A_Zaz):0:12: ++# BZ30647 %48Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*48Le:-nan(09A_Zaz):0:13: ++# BZ30647 %48Le:-nan():1:6:-nan: ++# BZ30647 %*48Le:-nan():0:6: ++# BZ30647 %48Le:nan():1:5:nan: ++# BZ30647 %*48Le:nan():0:5: ++# BZ30647 %48Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*48Le:nan(09A_Zaz):0:12: + %48Le:0e0:1:3:0x0: + %*48Le:0e0:0:3: + %48Le:0e+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48Le:1.79769313486231570814527423731704357e+308:0:42: + %48Le:infinity:1:8:inf: + %*48Le:infinity:0:8: +-%48Le:+nan():1:6:nan: +-%*48Le:+nan():0:6: +-%48Le:+nan(09A_Zaz):1:13:nan: +-%*48Le:+nan(09A_Zaz):0:13: ++# BZ30647 %48Le:+nan():1:6:nan: ++# BZ30647 %*48Le:+nan():0:6: ++# BZ30647 %48Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48Le:+nan(09A_Zaz):0:13: + %48Le:+0e0:1:4:0x0: + %*48Le:+0e0:0:4: + %48Le:+0e+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3Le: -0e+0:0:-1: + # BZ12701 %3Le: -0e0:0:-1: + # BZ12701 %*3Le: -0e0:0:-1: +-%3Le: -nan(09A_Zaz):0:-1: +-%*3Le: -nan(09A_Zaz):0:-1: +-%3Le: -nan():0:-1: +-%*3Le: -nan():0:-1: +-%3Le: nan():1:4:nan: +-%*3Le: nan():0:4: +-%3Le: nan(09A_Zaz):1:4:nan: +-%*3Le: nan(09A_Zaz):0:4: ++# BZ30647 %3Le: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le: -nan(09A_Zaz):0:-1: ++# BZ30647 %3Le: -nan():0:-1: ++# BZ30647 %*3Le: -nan():0:-1: ++# BZ30647 %3Le: nan():1:4:nan: ++# BZ30647 %*3Le: nan():0:4: ++# BZ30647 %3Le: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3Le: nan(09A_Zaz):0:4: + %3Le: 0e0:1:4:0x0: + %*3Le: 0e0:0:4: + # BZ12701 %3Le: 0e+0:0:-1: +@@ -474,10 +474,10 @@ + %*3Le: 1.79769313486231570814527423731704357e+308:0:4: + %3Le: infinity:1:4:inf: + %*3Le: infinity:0:4: +-%3Le: +nan():0:-1: +-%*3Le: +nan():0:-1: +-%3Le: +nan(09A_Zaz):0:-1: +-%*3Le: +nan(09A_Zaz):0:-1: ++# BZ30647 %3Le: +nan():0:-1: ++# BZ30647 %*3Le: +nan():0:-1: ++# BZ30647 %3Le: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le: +nan(09A_Zaz):0:-1: + # BZ12701 %3Le: +0e0:0:-1: + # BZ12701 %*3Le: +0e0:0:-1: + # BZ12701 %3Le: +0e+0:0:-1: +@@ -512,14 +512,14 @@ + %*48Le: -0e+0:0:6: + %48Le: -0e0:1:5:-0x0: + %*48Le: -0e0:0:5: +-%48Le: -nan(09A_Zaz):1:14:-nan: +-%*48Le: -nan(09A_Zaz):0:14: +-%48Le: -nan():1:7:-nan: +-%*48Le: -nan():0:7: +-%48Le: nan():1:6:nan: +-%*48Le: nan():0:6: +-%48Le: nan(09A_Zaz):1:13:nan: +-%*48Le: nan(09A_Zaz):0:13: ++# BZ30647 %48Le: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*48Le: -nan(09A_Zaz):0:14: ++# BZ30647 %48Le: -nan():1:7:-nan: ++# BZ30647 %*48Le: -nan():0:7: ++# BZ30647 %48Le: nan():1:6:nan: ++# BZ30647 %*48Le: nan():0:6: ++# BZ30647 %48Le: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48Le: nan(09A_Zaz):0:13: + %48Le: 0e0:1:4:0x0: + %*48Le: 0e0:0:4: + %48Le: 0e+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48Le: 1.79769313486231570814527423731704357e+308:0:43: + %48Le: infinity:1:9:inf: + %*48Le: infinity:0:9: +-%48Le: +nan():1:7:nan: +-%*48Le: +nan():0:7: +-%48Le: +nan(09A_Zaz):1:14:nan: +-%*48Le: +nan(09A_Zaz):0:14: ++# BZ30647 %48Le: +nan():1:7:nan: ++# BZ30647 %*48Le: +nan():0:7: ++# BZ30647 %48Le: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*48Le: +nan(09A_Zaz):0:14: + %48Le: +0e0:1:5:0x0: + %*48Le: +0e0:0:5: + %48Le: +0e+0:1:6:0x0: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input +index 6fb575513e9e3379..9678dad05cf8e06a 100644 +--- a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input +@@ -16,14 +16,14 @@ + %*LE:-0E+0:0:5: + %LE:-0E0:1:4:-0x0: + %*LE:-0E0:0:4: +-%LE:-NAN(09A_Zaz):1:13:-nan: +-%*LE:-NAN(09A_Zaz):0:13: +-%LE:-NAN():1:6:-nan: +-%*LE:-NAN():0:6: +-%LE:NAN():1:5:nan: +-%*LE:NAN():0:5: +-%LE:NAN(09A_Zaz):1:12:nan: +-%*LE:NAN(09A_Zaz):0:12: ++# BZ30647 %LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %LE:-NAN():1:6:-nan: ++# BZ30647 %*LE:-NAN():0:6: ++# BZ30647 %LE:NAN():1:5:nan: ++# BZ30647 %*LE:NAN():0:5: ++# BZ30647 %LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LE:NAN(09A_Zaz):0:12: + %LE:0E0:1:3:0x0: + %*LE:0E0:0:3: + %LE:0E+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*LE:1.79769313486231570814527423731704357E+308:0:42: + %LE:INFINITY:1:8:inf: + %*LE:INFINITY:0:8: +-%LE:+NAN():1:6:nan: +-%*LE:+NAN():0:6: +-%LE:+NAN(09A_Zaz):1:13:nan: +-%*LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %LE:+NAN():1:6:nan: ++# BZ30647 %*LE:+NAN():0:6: ++# BZ30647 %LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LE:+NAN(09A_Zaz):0:13: + %LE:+0E0:1:4:0x0: + %*LE:+0E0:0:4: + %LE:+0E+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1LE:-0E+0:0:-1: + %1LE:-0E0:0:-1: + %*1LE:-0E0:0:-1: +-%1LE:-NAN(09A_Zaz):0:-1: +-%*1LE:-NAN(09A_Zaz):0:-1: +-%1LE:-NAN():0:-1: +-%*1LE:-NAN():0:-1: +-%1LE:NAN():0:-1: +-%*1LE:NAN():0:-1: +-%1LE:NAN(09A_Zaz):0:-1: +-%*1LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:-NAN():0:-1: ++# BZ30647 %*1LE:-NAN():0:-1: ++# BZ30647 %1LE:NAN():0:-1: ++# BZ30647 %*1LE:NAN():0:-1: ++# BZ30647 %1LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:NAN(09A_Zaz):0:-1: + %1LE:0E0:1:1:0x0: + %*1LE:0E0:0:1: + %1LE:0E+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LE:1.79769313486231570814527423731704357E+308:0:1: + %1LE:INFINITY:0:-1: + %*1LE:INFINITY:0:-1: +-%1LE:+NAN():0:-1: +-%*1LE:+NAN():0:-1: +-%1LE:+NAN(09A_Zaz):0:-1: +-%*1LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:+NAN():0:-1: ++# BZ30647 %*1LE:+NAN():0:-1: ++# BZ30647 %1LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:+NAN(09A_Zaz):0:-1: + %1LE:+0E0:0:-1: + %*1LE:+0E0:0:-1: + %1LE:+0E+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LE:-0E+0:0:2: + %2LE:-0E0:1:2:-0x0: + %*2LE:-0E0:0:2: +-%2LE:-NAN(09A_Zaz):0:-1: +-%*2LE:-NAN(09A_Zaz):0:-1: +-%2LE:-NAN():0:-1: +-%*2LE:-NAN():0:-1: +-%2LE:NAN():0:-1: +-%*2LE:NAN():0:-1: +-%2LE:NAN(09A_Zaz):0:-1: +-%*2LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:-NAN():0:-1: ++# BZ30647 %*2LE:-NAN():0:-1: ++# BZ30647 %2LE:NAN():0:-1: ++# BZ30647 %*2LE:NAN():0:-1: ++# BZ30647 %2LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:NAN(09A_Zaz):0:-1: + # BZ12701 %2LE:0E0:0:-1: + # BZ12701 %*2LE:0E0:0:-1: + # BZ12701 %2LE:0E+0:0:-1: +@@ -164,10 +164,10 @@ + %*2LE:1.79769313486231570814527423731704357E+308:0:2: + %2LE:INFINITY:0:-1: + %*2LE:INFINITY:0:-1: +-%2LE:+NAN():0:-1: +-%*2LE:+NAN():0:-1: +-%2LE:+NAN(09A_Zaz):0:-1: +-%*2LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:+NAN():0:-1: ++# BZ30647 %*2LE:+NAN():0:-1: ++# BZ30647 %2LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:+NAN(09A_Zaz):0:-1: + %2LE:+0E0:1:2:0x0: + %*2LE:+0E0:0:2: + %2LE:+0E+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LE:-0E+0:0:-1: + # BZ12701 %3LE:-0E0:0:-1: + # BZ12701 %*3LE:-0E0:0:-1: +-%3LE:-NAN(09A_Zaz):0:-1: +-%*3LE:-NAN(09A_Zaz):0:-1: +-%3LE:-NAN():0:-1: +-%*3LE:-NAN():0:-1: +-%3LE:NAN():1:3:nan: +-%*3LE:NAN():0:3: +-%3LE:NAN(09A_Zaz):1:3:nan: +-%*3LE:NAN(09A_Zaz):0:3: ++# BZ30647 %3LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE:-NAN():0:-1: ++# BZ30647 %*3LE:-NAN():0:-1: ++# BZ30647 %3LE:NAN():1:3:nan: ++# BZ30647 %*3LE:NAN():0:3: ++# BZ30647 %3LE:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LE:NAN(09A_Zaz):0:3: + %3LE:0E0:1:3:0x0: + %*3LE:0E0:0:3: + # BZ12701 %3LE:0E+0:0:-1: +@@ -226,10 +226,10 @@ + %*3LE:1.79769313486231570814527423731704357E+308:0:3: + %3LE:INFINITY:1:3:inf: + %*3LE:INFINITY:0:3: +-%3LE:+NAN():0:-1: +-%*3LE:+NAN():0:-1: +-%3LE:+NAN(09A_Zaz):0:-1: +-%*3LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE:+NAN():0:-1: ++# BZ30647 %*3LE:+NAN():0:-1: ++# BZ30647 %3LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LE:+0E0:0:-1: + # BZ12701 %*3LE:+0E0:0:-1: + # BZ12701 %3LE:+0E+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4LE:-0E+0:0:-1: + %4LE:-0E0:1:4:-0x0: + %*4LE:-0E0:0:4: +-%4LE:-NAN(09A_Zaz):1:4:-nan: +-%*4LE:-NAN(09A_Zaz):0:4: +-%4LE:-NAN():1:4:-nan: +-%*4LE:-NAN():0:4: +-%4LE:NAN():0:-1: +-%*4LE:NAN():0:-1: +-%4LE:NAN(09A_Zaz):0:-1: +-%*4LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LE:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LE:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LE:-NAN():1:4:-nan: ++# BZ30647 %*4LE:-NAN():0:4: ++# BZ30647 %4LE:NAN():0:-1: ++# BZ30647 %*4LE:NAN():0:-1: ++# BZ30647 %4LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LE:NAN(09A_Zaz):0:-1: + %4LE:0E0:1:3:0x0: + %*4LE:0E0:0:3: + %4LE:0E+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4LE:1.79769313486231570814527423731704357E+308:0:4: + %4LE:INFINITY:0:-1: + %*4LE:INFINITY:0:-1: +-%4LE:+NAN():1:4:nan: +-%*4LE:+NAN():0:4: +-%4LE:+NAN(09A_Zaz):1:4:nan: +-%*4LE:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LE:+NAN():1:4:nan: ++# BZ30647 %*4LE:+NAN():0:4: ++# BZ30647 %4LE:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LE:+NAN(09A_Zaz):0:4: + %4LE:+0E0:1:4:0x0: + %*4LE:+0E0:0:4: + # BZ12701 %4LE:+0E+0:0:-1: +@@ -326,14 +326,14 @@ + %*40LE:-0E+0:0:5: + %40LE:-0E0:1:4:-0x0: + %*40LE:-0E0:0:4: +-%40LE:-NAN(09A_Zaz):1:13:-nan: +-%*40LE:-NAN(09A_Zaz):0:13: +-%40LE:-NAN():1:6:-nan: +-%*40LE:-NAN():0:6: +-%40LE:NAN():1:5:nan: +-%*40LE:NAN():0:5: +-%40LE:NAN(09A_Zaz):1:12:nan: +-%*40LE:NAN(09A_Zaz):0:12: ++# BZ30647 %40LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*40LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %40LE:-NAN():1:6:-nan: ++# BZ30647 %*40LE:-NAN():0:6: ++# BZ30647 %40LE:NAN():1:5:nan: ++# BZ30647 %*40LE:NAN():0:5: ++# BZ30647 %40LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*40LE:NAN(09A_Zaz):0:12: + %40LE:0E0:1:3:0x0: + %*40LE:0E0:0:3: + %40LE:0E+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40LE:1.79769313486231570814527423731704357E+308:0:40: + %40LE:INFINITY:1:8:inf: + %*40LE:INFINITY:0:8: +-%40LE:+NAN():1:6:nan: +-%*40LE:+NAN():0:6: +-%40LE:+NAN(09A_Zaz):1:13:nan: +-%*40LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %40LE:+NAN():1:6:nan: ++# BZ30647 %*40LE:+NAN():0:6: ++# BZ30647 %40LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*40LE:+NAN(09A_Zaz):0:13: + %40LE:+0E0:1:4:0x0: + %*40LE:+0E0:0:4: + %40LE:+0E+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48LE:-0E+0:0:5: + %48LE:-0E0:1:4:-0x0: + %*48LE:-0E0:0:4: +-%48LE:-NAN(09A_Zaz):1:13:-nan: +-%*48LE:-NAN(09A_Zaz):0:13: +-%48LE:-NAN():1:6:-nan: +-%*48LE:-NAN():0:6: +-%48LE:NAN():1:5:nan: +-%*48LE:NAN():0:5: +-%48LE:NAN(09A_Zaz):1:12:nan: +-%*48LE:NAN(09A_Zaz):0:12: ++# BZ30647 %48LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*48LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %48LE:-NAN():1:6:-nan: ++# BZ30647 %*48LE:-NAN():0:6: ++# BZ30647 %48LE:NAN():1:5:nan: ++# BZ30647 %*48LE:NAN():0:5: ++# BZ30647 %48LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*48LE:NAN(09A_Zaz):0:12: + %48LE:0E0:1:3:0x0: + %*48LE:0E0:0:3: + %48LE:0E+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48LE:1.79769313486231570814527423731704357E+308:0:42: + %48LE:INFINITY:1:8:inf: + %*48LE:INFINITY:0:8: +-%48LE:+NAN():1:6:nan: +-%*48LE:+NAN():0:6: +-%48LE:+NAN(09A_Zaz):1:13:nan: +-%*48LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %48LE:+NAN():1:6:nan: ++# BZ30647 %*48LE:+NAN():0:6: ++# BZ30647 %48LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48LE:+NAN(09A_Zaz):0:13: + %48LE:+0E0:1:4:0x0: + %*48LE:+0E0:0:4: + %48LE:+0E+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3LE: -0E+0:0:-1: + # BZ12701 %3LE: -0E0:0:-1: + # BZ12701 %*3LE: -0E0:0:-1: +-%3LE: -NAN(09A_Zaz):0:-1: +-%*3LE: -NAN(09A_Zaz):0:-1: +-%3LE: -NAN():0:-1: +-%*3LE: -NAN():0:-1: +-%3LE: NAN():1:4:nan: +-%*3LE: NAN():0:4: +-%3LE: NAN(09A_Zaz):1:4:nan: +-%*3LE: NAN(09A_Zaz):0:4: ++# BZ30647 %3LE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE: -NAN():0:-1: ++# BZ30647 %*3LE: -NAN():0:-1: ++# BZ30647 %3LE: NAN():1:4:nan: ++# BZ30647 %*3LE: NAN():0:4: ++# BZ30647 %3LE: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3LE: NAN(09A_Zaz):0:4: + %3LE: 0E0:1:4:0x0: + %*3LE: 0E0:0:4: + # BZ12701 %3LE: 0E+0:0:-1: +@@ -474,10 +474,10 @@ + %*3LE: 1.79769313486231570814527423731704357E+308:0:4: + %3LE: INFINITY:1:4:inf: + %*3LE: INFINITY:0:4: +-%3LE: +NAN():0:-1: +-%*3LE: +NAN():0:-1: +-%3LE: +NAN(09A_Zaz):0:-1: +-%*3LE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE: +NAN():0:-1: ++# BZ30647 %*3LE: +NAN():0:-1: ++# BZ30647 %3LE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE: +NAN(09A_Zaz):0:-1: + # BZ12701 %3LE: +0E0:0:-1: + # BZ12701 %*3LE: +0E0:0:-1: + # BZ12701 %3LE: +0E+0:0:-1: +@@ -512,14 +512,14 @@ + %*48LE: -0E+0:0:6: + %48LE: -0E0:1:5:-0x0: + %*48LE: -0E0:0:5: +-%48LE: -NAN(09A_Zaz):1:14:-nan: +-%*48LE: -NAN(09A_Zaz):0:14: +-%48LE: -NAN():1:7:-nan: +-%*48LE: -NAN():0:7: +-%48LE: NAN():1:6:nan: +-%*48LE: NAN():0:6: +-%48LE: NAN(09A_Zaz):1:13:nan: +-%*48LE: NAN(09A_Zaz):0:13: ++# BZ30647 %48LE: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*48LE: -NAN(09A_Zaz):0:14: ++# BZ30647 %48LE: -NAN():1:7:-nan: ++# BZ30647 %*48LE: -NAN():0:7: ++# BZ30647 %48LE: NAN():1:6:nan: ++# BZ30647 %*48LE: NAN():0:6: ++# BZ30647 %48LE: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48LE: NAN(09A_Zaz):0:13: + %48LE: 0E0:1:4:0x0: + %*48LE: 0E0:0:4: + %48LE: 0E+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48LE: 1.79769313486231570814527423731704357E+308:0:43: + %48LE: INFINITY:1:9:inf: + %*48LE: INFINITY:0:9: +-%48LE: +NAN():1:7:nan: +-%*48LE: +NAN():0:7: +-%48LE: +NAN(09A_Zaz):1:14:nan: +-%*48LE: +NAN(09A_Zaz):0:14: ++# BZ30647 %48LE: +NAN():1:7:nan: ++# BZ30647 %*48LE: +NAN():0:7: ++# BZ30647 %48LE: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*48LE: +NAN(09A_Zaz):0:14: + %48LE: +0E0:1:5:0x0: + %*48LE: +0E0:0:5: + %48LE: +0E+0:1:6:0x0: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input +index a506658d25fff3a5..f4039ae8c981f5ec 100644 +--- a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input +@@ -16,14 +16,14 @@ + %*Lf:-0.0:0:4: + %Lf:-0:1:2:-0x0: + %*Lf:-0:0:2: +-%Lf:-nan(09A_Zaz):1:13:-nan: +-%*Lf:-nan(09A_Zaz):0:13: +-%Lf:-nan():1:6:-nan: +-%*Lf:-nan():0:6: +-%Lf:nan():1:5:nan: +-%*Lf:nan():0:5: +-%Lf:nan(09A_Zaz):1:12:nan: +-%*Lf:nan(09A_Zaz):0:12: ++# BZ30647 %Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %Lf:-nan():1:6:-nan: ++# BZ30647 %*Lf:-nan():0:6: ++# BZ30647 %Lf:nan():1:5:nan: ++# BZ30647 %*Lf:nan():0:5: ++# BZ30647 %Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Lf:nan(09A_Zaz):0:12: + %Lf:0:1:1:0x0: + %*Lf:0:0:1: + %Lf:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: + %Lf:infinity:1:8:inf: + %*Lf:infinity:0:8: +-%Lf:+nan():1:6:nan: +-%*Lf:+nan():0:6: +-%Lf:+nan(09A_Zaz):1:13:nan: +-%*Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %Lf:+nan():1:6:nan: ++# BZ30647 %*Lf:+nan():0:6: ++# BZ30647 %Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Lf:+nan(09A_Zaz):0:13: + %Lf:+0:1:2:0x0: + %*Lf:+0:0:2: + %Lf:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1Lf:-0.0:0:-1: + %1Lf:-0:0:-1: + %*1Lf:-0:0:-1: +-%1Lf:-nan(09A_Zaz):0:-1: +-%*1Lf:-nan(09A_Zaz):0:-1: +-%1Lf:-nan():0:-1: +-%*1Lf:-nan():0:-1: +-%1Lf:nan():0:-1: +-%*1Lf:nan():0:-1: +-%1Lf:nan(09A_Zaz):0:-1: +-%*1Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:-nan():0:-1: ++# BZ30647 %*1Lf:-nan():0:-1: ++# BZ30647 %1Lf:nan():0:-1: ++# BZ30647 %*1Lf:nan():0:-1: ++# BZ30647 %1Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:nan(09A_Zaz):0:-1: + %1Lf:0:1:1:0x0: + %*1Lf:0:0:1: + %1Lf:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1: + %1Lf:infinity:0:-1: + %*1Lf:infinity:0:-1: +-%1Lf:+nan():0:-1: +-%*1Lf:+nan():0:-1: +-%1Lf:+nan(09A_Zaz):0:-1: +-%*1Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:+nan():0:-1: ++# BZ30647 %*1Lf:+nan():0:-1: ++# BZ30647 %1Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:+nan(09A_Zaz):0:-1: + %1Lf:+0:0:-1: + %*1Lf:+0:0:-1: + %1Lf:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2Lf:-0.0:0:2: + %2Lf:-0:1:2:-0x0: + %*2Lf:-0:0:2: +-%2Lf:-nan(09A_Zaz):0:-1: +-%*2Lf:-nan(09A_Zaz):0:-1: +-%2Lf:-nan():0:-1: +-%*2Lf:-nan():0:-1: +-%2Lf:nan():0:-1: +-%*2Lf:nan():0:-1: +-%2Lf:nan(09A_Zaz):0:-1: +-%*2Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:-nan():0:-1: ++# BZ30647 %*2Lf:-nan():0:-1: ++# BZ30647 %2Lf:nan():0:-1: ++# BZ30647 %*2Lf:nan():0:-1: ++# BZ30647 %2Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:nan(09A_Zaz):0:-1: + %2Lf:0:1:1:0x0: + %*2Lf:0:0:1: + %2Lf:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: + %2Lf:infinity:0:-1: + %*2Lf:infinity:0:-1: +-%2Lf:+nan():0:-1: +-%*2Lf:+nan():0:-1: +-%2Lf:+nan(09A_Zaz):0:-1: +-%*2Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:+nan():0:-1: ++# BZ30647 %*2Lf:+nan():0:-1: ++# BZ30647 %2Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:+nan(09A_Zaz):0:-1: + %2Lf:+0:1:2:0x0: + %*2Lf:+0:0:2: + %2Lf:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3Lf:-0.0:0:3: + %3Lf:-0:1:2:-0x0: + %*3Lf:-0:0:2: +-%3Lf:-nan(09A_Zaz):0:-1: +-%*3Lf:-nan(09A_Zaz):0:-1: +-%3Lf:-nan():0:-1: +-%*3Lf:-nan():0:-1: +-%3Lf:nan():1:3:nan: +-%*3Lf:nan():0:3: +-%3Lf:nan(09A_Zaz):1:3:nan: +-%*3Lf:nan(09A_Zaz):0:3: ++# BZ30647 %3Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf:-nan():0:-1: ++# BZ30647 %*3Lf:-nan():0:-1: ++# BZ30647 %3Lf:nan():1:3:nan: ++# BZ30647 %*3Lf:nan():0:3: ++# BZ30647 %3Lf:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Lf:nan(09A_Zaz):0:3: + %3Lf:0:1:1:0x0: + %*3Lf:0:0:1: + %3Lf:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: + %3Lf:infinity:1:3:inf: + %*3Lf:infinity:0:3: +-%3Lf:+nan():0:-1: +-%*3Lf:+nan():0:-1: +-%3Lf:+nan(09A_Zaz):0:-1: +-%*3Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf:+nan():0:-1: ++# BZ30647 %*3Lf:+nan():0:-1: ++# BZ30647 %3Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf:+nan(09A_Zaz):0:-1: + %3Lf:+0:1:2:0x0: + %*3Lf:+0:0:2: + %3Lf:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4Lf:-0.0:0:4: + %4Lf:-0:1:2:-0x0: + %*4Lf:-0:0:2: +-%4Lf:-nan(09A_Zaz):1:4:-nan: +-%*4Lf:-nan(09A_Zaz):0:4: +-%4Lf:-nan():1:4:-nan: +-%*4Lf:-nan():0:4: +-%4Lf:nan():0:-1: +-%*4Lf:nan():0:-1: +-%4Lf:nan(09A_Zaz):0:-1: +-%*4Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %4Lf:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Lf:-nan(09A_Zaz):0:4: ++# BZ30647 %4Lf:-nan():1:4:-nan: ++# BZ30647 %*4Lf:-nan():0:4: ++# BZ30647 %4Lf:nan():0:-1: ++# BZ30647 %*4Lf:nan():0:-1: ++# BZ30647 %4Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Lf:nan(09A_Zaz):0:-1: + %4Lf:0:1:1:0x0: + %*4Lf:0:0:1: + %4Lf:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: + %4Lf:infinity:0:-1: + %*4Lf:infinity:0:-1: +-%4Lf:+nan():1:4:nan: +-%*4Lf:+nan():0:4: +-%4Lf:+nan(09A_Zaz):1:4:nan: +-%*4Lf:+nan(09A_Zaz):0:4: ++# BZ30647 %4Lf:+nan():1:4:nan: ++# BZ30647 %*4Lf:+nan():0:4: ++# BZ30647 %4Lf:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Lf:+nan(09A_Zaz):0:4: + %4Lf:+0:1:2:0x0: + %*4Lf:+0:0:2: + %4Lf:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*311Lf:-0.0:0:4: + %311Lf:-0:1:2:-0x0: + %*311Lf:-0:0:2: +-%311Lf:-nan(09A_Zaz):1:13:-nan: +-%*311Lf:-nan(09A_Zaz):0:13: +-%311Lf:-nan():1:6:-nan: +-%*311Lf:-nan():0:6: +-%311Lf:nan():1:5:nan: +-%*311Lf:nan():0:5: +-%311Lf:nan(09A_Zaz):1:12:nan: +-%*311Lf:nan(09A_Zaz):0:12: ++# BZ30647 %311Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*311Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %311Lf:-nan():1:6:-nan: ++# BZ30647 %*311Lf:-nan():0:6: ++# BZ30647 %311Lf:nan():1:5:nan: ++# BZ30647 %*311Lf:nan():0:5: ++# BZ30647 %311Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*311Lf:nan(09A_Zaz):0:12: + %311Lf:0:1:1:0x0: + %*311Lf:0:0:1: + %311Lf:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*311Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: + %311Lf:infinity:1:8:inf: + %*311Lf:infinity:0:8: +-%311Lf:+nan():1:6:nan: +-%*311Lf:+nan():0:6: +-%311Lf:+nan(09A_Zaz):1:13:nan: +-%*311Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %311Lf:+nan():1:6:nan: ++# BZ30647 %*311Lf:+nan():0:6: ++# BZ30647 %311Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*311Lf:+nan(09A_Zaz):0:13: + %311Lf:+0:1:2:0x0: + %*311Lf:+0:0:2: + %311Lf:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*350Lf:-0.0:0:4: + %350Lf:-0:1:2:-0x0: + %*350Lf:-0:0:2: +-%350Lf:-nan(09A_Zaz):1:13:-nan: +-%*350Lf:-nan(09A_Zaz):0:13: +-%350Lf:-nan():1:6:-nan: +-%*350Lf:-nan():0:6: +-%350Lf:nan():1:5:nan: +-%*350Lf:nan():0:5: +-%350Lf:nan(09A_Zaz):1:12:nan: +-%*350Lf:nan(09A_Zaz):0:12: ++# BZ30647 %350Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*350Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %350Lf:-nan():1:6:-nan: ++# BZ30647 %*350Lf:-nan():0:6: ++# BZ30647 %350Lf:nan():1:5:nan: ++# BZ30647 %*350Lf:nan():0:5: ++# BZ30647 %350Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*350Lf:nan(09A_Zaz):0:12: + %350Lf:0:1:1:0x0: + %*350Lf:0:0:1: + %350Lf:0.0:1:3:0x0: +@@ -412,10 +412,10 @@ + %*350Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: + %350Lf:infinity:1:8:inf: + %*350Lf:infinity:0:8: +-%350Lf:+nan():1:6:nan: +-%*350Lf:+nan():0:6: +-%350Lf:+nan(09A_Zaz):1:13:nan: +-%*350Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %350Lf:+nan():1:6:nan: ++# BZ30647 %*350Lf:+nan():0:6: ++# BZ30647 %350Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*350Lf:+nan(09A_Zaz):0:13: + %350Lf:+0:1:2:0x0: + %*350Lf:+0:0:2: + %350Lf:+0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*3Lf: -0.0:0:4: + %3Lf: -0:1:3:-0x0: + %*3Lf: -0:0:3: +-%3Lf: -nan(09A_Zaz):0:-1: +-%*3Lf: -nan(09A_Zaz):0:-1: +-%3Lf: -nan():0:-1: +-%*3Lf: -nan():0:-1: +-%3Lf: nan():1:4:nan: +-%*3Lf: nan():0:4: +-%3Lf: nan(09A_Zaz):1:4:nan: +-%*3Lf: nan(09A_Zaz):0:4: ++# BZ30647 %3Lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf: -nan():0:-1: ++# BZ30647 %*3Lf: -nan():0:-1: ++# BZ30647 %3Lf: nan():1:4:nan: ++# BZ30647 %*3Lf: nan():0:4: ++# BZ30647 %3Lf: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3Lf: nan(09A_Zaz):0:4: + %3Lf: 0:1:2:0x0: + %*3Lf: 0:0:2: + %3Lf: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*3Lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: + %3Lf: infinity:1:4:inf: + %*3Lf: infinity:0:4: +-%3Lf: +nan():0:-1: +-%*3Lf: +nan():0:-1: +-%3Lf: +nan(09A_Zaz):0:-1: +-%*3Lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf: +nan():0:-1: ++# BZ30647 %*3Lf: +nan():0:-1: ++# BZ30647 %3Lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf: +nan(09A_Zaz):0:-1: + %3Lf: +0:1:3:0x0: + %*3Lf: +0:0:3: + %3Lf: +0.0:1:4:0x0: +@@ -512,14 +512,14 @@ + %*350Lf: -0.0:0:5: + %350Lf: -0:1:3:-0x0: + %*350Lf: -0:0:3: +-%350Lf: -nan(09A_Zaz):1:14:-nan: +-%*350Lf: -nan(09A_Zaz):0:14: +-%350Lf: -nan():1:7:-nan: +-%*350Lf: -nan():0:7: +-%350Lf: nan():1:6:nan: +-%*350Lf: nan():0:6: +-%350Lf: nan(09A_Zaz):1:13:nan: +-%*350Lf: nan(09A_Zaz):0:13: ++# BZ30647 %350Lf: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*350Lf: -nan(09A_Zaz):0:14: ++# BZ30647 %350Lf: -nan():1:7:-nan: ++# BZ30647 %*350Lf: -nan():0:7: ++# BZ30647 %350Lf: nan():1:6:nan: ++# BZ30647 %*350Lf: nan():0:6: ++# BZ30647 %350Lf: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*350Lf: nan(09A_Zaz):0:13: + %350Lf: 0:1:2:0x0: + %*350Lf: 0:0:2: + %350Lf: 0.0:1:4:0x0: +@@ -536,10 +536,10 @@ + %*350Lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: + %350Lf: infinity:1:9:inf: + %*350Lf: infinity:0:9: +-%350Lf: +nan():1:7:nan: +-%*350Lf: +nan():0:7: +-%350Lf: +nan(09A_Zaz):1:14:nan: +-%*350Lf: +nan(09A_Zaz):0:14: ++# BZ30647 %350Lf: +nan():1:7:nan: ++# BZ30647 %*350Lf: +nan():0:7: ++# BZ30647 %350Lf: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*350Lf: +nan(09A_Zaz):0:14: + %350Lf: +0:1:3:0x0: + %*350Lf: +0:0:3: + %350Lf: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input +index 03dedfca801bf8ca..835e208472efaab6 100644 +--- a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input +@@ -16,14 +16,14 @@ + %*LF:-0.0:0:4: + %LF:-0:1:2:-0x0: + %*LF:-0:0:2: +-%LF:-NAN(09A_Zaz):1:13:-nan: +-%*LF:-NAN(09A_Zaz):0:13: +-%LF:-NAN():1:6:-nan: +-%*LF:-NAN():0:6: +-%LF:NAN():1:5:nan: +-%*LF:NAN():0:5: +-%LF:NAN(09A_Zaz):1:12:nan: +-%*LF:NAN(09A_Zaz):0:12: ++# BZ30647 %LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %LF:-NAN():1:6:-nan: ++# BZ30647 %*LF:-NAN():0:6: ++# BZ30647 %LF:NAN():1:5:nan: ++# BZ30647 %*LF:NAN():0:5: ++# BZ30647 %LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LF:NAN(09A_Zaz):0:12: + %LF:0:1:1:0x0: + %*LF:0:0:1: + %LF:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: + %LF:INFINITY:1:8:inf: + %*LF:INFINITY:0:8: +-%LF:+NAN():1:6:nan: +-%*LF:+NAN():0:6: +-%LF:+NAN(09A_Zaz):1:13:nan: +-%*LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %LF:+NAN():1:6:nan: ++# BZ30647 %*LF:+NAN():0:6: ++# BZ30647 %LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LF:+NAN(09A_Zaz):0:13: + %LF:+0:1:2:0x0: + %*LF:+0:0:2: + %LF:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1LF:-0.0:0:-1: + %1LF:-0:0:-1: + %*1LF:-0:0:-1: +-%1LF:-NAN(09A_Zaz):0:-1: +-%*1LF:-NAN(09A_Zaz):0:-1: +-%1LF:-NAN():0:-1: +-%*1LF:-NAN():0:-1: +-%1LF:NAN():0:-1: +-%*1LF:NAN():0:-1: +-%1LF:NAN(09A_Zaz):0:-1: +-%*1LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:-NAN():0:-1: ++# BZ30647 %*1LF:-NAN():0:-1: ++# BZ30647 %1LF:NAN():0:-1: ++# BZ30647 %*1LF:NAN():0:-1: ++# BZ30647 %1LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:NAN(09A_Zaz):0:-1: + %1LF:0:1:1:0x0: + %*1LF:0:0:1: + %1LF:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1: + %1LF:INFINITY:0:-1: + %*1LF:INFINITY:0:-1: +-%1LF:+NAN():0:-1: +-%*1LF:+NAN():0:-1: +-%1LF:+NAN(09A_Zaz):0:-1: +-%*1LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:+NAN():0:-1: ++# BZ30647 %*1LF:+NAN():0:-1: ++# BZ30647 %1LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:+NAN(09A_Zaz):0:-1: + %1LF:+0:0:-1: + %*1LF:+0:0:-1: + %1LF:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2LF:-0.0:0:2: + %2LF:-0:1:2:-0x0: + %*2LF:-0:0:2: +-%2LF:-NAN(09A_Zaz):0:-1: +-%*2LF:-NAN(09A_Zaz):0:-1: +-%2LF:-NAN():0:-1: +-%*2LF:-NAN():0:-1: +-%2LF:NAN():0:-1: +-%*2LF:NAN():0:-1: +-%2LF:NAN(09A_Zaz):0:-1: +-%*2LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:-NAN():0:-1: ++# BZ30647 %*2LF:-NAN():0:-1: ++# BZ30647 %2LF:NAN():0:-1: ++# BZ30647 %*2LF:NAN():0:-1: ++# BZ30647 %2LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:NAN(09A_Zaz):0:-1: + %2LF:0:1:1:0x0: + %*2LF:0:0:1: + %2LF:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: + %2LF:INFINITY:0:-1: + %*2LF:INFINITY:0:-1: +-%2LF:+NAN():0:-1: +-%*2LF:+NAN():0:-1: +-%2LF:+NAN(09A_Zaz):0:-1: +-%*2LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:+NAN():0:-1: ++# BZ30647 %*2LF:+NAN():0:-1: ++# BZ30647 %2LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:+NAN(09A_Zaz):0:-1: + %2LF:+0:1:2:0x0: + %*2LF:+0:0:2: + %2LF:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3LF:-0.0:0:3: + %3LF:-0:1:2:-0x0: + %*3LF:-0:0:2: +-%3LF:-NAN(09A_Zaz):0:-1: +-%*3LF:-NAN(09A_Zaz):0:-1: +-%3LF:-NAN():0:-1: +-%*3LF:-NAN():0:-1: +-%3LF:NAN():1:3:nan: +-%*3LF:NAN():0:3: +-%3LF:NAN(09A_Zaz):1:3:nan: +-%*3LF:NAN(09A_Zaz):0:3: ++# BZ30647 %3LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF:-NAN():0:-1: ++# BZ30647 %*3LF:-NAN():0:-1: ++# BZ30647 %3LF:NAN():1:3:nan: ++# BZ30647 %*3LF:NAN():0:3: ++# BZ30647 %3LF:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LF:NAN(09A_Zaz):0:3: + %3LF:0:1:1:0x0: + %*3LF:0:0:1: + %3LF:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: + %3LF:INFINITY:1:3:inf: + %*3LF:INFINITY:0:3: +-%3LF:+NAN():0:-1: +-%*3LF:+NAN():0:-1: +-%3LF:+NAN(09A_Zaz):0:-1: +-%*3LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF:+NAN():0:-1: ++# BZ30647 %*3LF:+NAN():0:-1: ++# BZ30647 %3LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF:+NAN(09A_Zaz):0:-1: + %3LF:+0:1:2:0x0: + %*3LF:+0:0:2: + %3LF:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4LF:-0.0:0:4: + %4LF:-0:1:2:-0x0: + %*4LF:-0:0:2: +-%4LF:-NAN(09A_Zaz):1:4:-nan: +-%*4LF:-NAN(09A_Zaz):0:4: +-%4LF:-NAN():1:4:-nan: +-%*4LF:-NAN():0:4: +-%4LF:NAN():0:-1: +-%*4LF:NAN():0:-1: +-%4LF:NAN(09A_Zaz):0:-1: +-%*4LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LF:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LF:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LF:-NAN():1:4:-nan: ++# BZ30647 %*4LF:-NAN():0:4: ++# BZ30647 %4LF:NAN():0:-1: ++# BZ30647 %*4LF:NAN():0:-1: ++# BZ30647 %4LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LF:NAN(09A_Zaz):0:-1: + %4LF:0:1:1:0x0: + %*4LF:0:0:1: + %4LF:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: + %4LF:INFINITY:0:-1: + %*4LF:INFINITY:0:-1: +-%4LF:+NAN():1:4:nan: +-%*4LF:+NAN():0:4: +-%4LF:+NAN(09A_Zaz):1:4:nan: +-%*4LF:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LF:+NAN():1:4:nan: ++# BZ30647 %*4LF:+NAN():0:4: ++# BZ30647 %4LF:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LF:+NAN(09A_Zaz):0:4: + %4LF:+0:1:2:0x0: + %*4LF:+0:0:2: + %4LF:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*311LF:-0.0:0:4: + %311LF:-0:1:2:-0x0: + %*311LF:-0:0:2: +-%311LF:-NAN(09A_Zaz):1:13:-nan: +-%*311LF:-NAN(09A_Zaz):0:13: +-%311LF:-NAN():1:6:-nan: +-%*311LF:-NAN():0:6: +-%311LF:NAN():1:5:nan: +-%*311LF:NAN():0:5: +-%311LF:NAN(09A_Zaz):1:12:nan: +-%*311LF:NAN(09A_Zaz):0:12: ++# BZ30647 %311LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*311LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %311LF:-NAN():1:6:-nan: ++# BZ30647 %*311LF:-NAN():0:6: ++# BZ30647 %311LF:NAN():1:5:nan: ++# BZ30647 %*311LF:NAN():0:5: ++# BZ30647 %311LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*311LF:NAN(09A_Zaz):0:12: + %311LF:0:1:1:0x0: + %*311LF:0:0:1: + %311LF:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*311LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: + %311LF:INFINITY:1:8:inf: + %*311LF:INFINITY:0:8: +-%311LF:+NAN():1:6:nan: +-%*311LF:+NAN():0:6: +-%311LF:+NAN(09A_Zaz):1:13:nan: +-%*311LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %311LF:+NAN():1:6:nan: ++# BZ30647 %*311LF:+NAN():0:6: ++# BZ30647 %311LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*311LF:+NAN(09A_Zaz):0:13: + %311LF:+0:1:2:0x0: + %*311LF:+0:0:2: + %311LF:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*350LF:-0.0:0:4: + %350LF:-0:1:2:-0x0: + %*350LF:-0:0:2: +-%350LF:-NAN(09A_Zaz):1:13:-nan: +-%*350LF:-NAN(09A_Zaz):0:13: +-%350LF:-NAN():1:6:-nan: +-%*350LF:-NAN():0:6: +-%350LF:NAN():1:5:nan: +-%*350LF:NAN():0:5: +-%350LF:NAN(09A_Zaz):1:12:nan: +-%*350LF:NAN(09A_Zaz):0:12: ++# BZ30647 %350LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*350LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %350LF:-NAN():1:6:-nan: ++# BZ30647 %*350LF:-NAN():0:6: ++# BZ30647 %350LF:NAN():1:5:nan: ++# BZ30647 %*350LF:NAN():0:5: ++# BZ30647 %350LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*350LF:NAN(09A_Zaz):0:12: + %350LF:0:1:1:0x0: + %*350LF:0:0:1: + %350LF:0.0:1:3:0x0: +@@ -412,10 +412,10 @@ + %*350LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: + %350LF:INFINITY:1:8:inf: + %*350LF:INFINITY:0:8: +-%350LF:+NAN():1:6:nan: +-%*350LF:+NAN():0:6: +-%350LF:+NAN(09A_Zaz):1:13:nan: +-%*350LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %350LF:+NAN():1:6:nan: ++# BZ30647 %*350LF:+NAN():0:6: ++# BZ30647 %350LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*350LF:+NAN(09A_Zaz):0:13: + %350LF:+0:1:2:0x0: + %*350LF:+0:0:2: + %350LF:+0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*3LF: -0.0:0:4: + %3LF: -0:1:3:-0x0: + %*3LF: -0:0:3: +-%3LF: -NAN(09A_Zaz):0:-1: +-%*3LF: -NAN(09A_Zaz):0:-1: +-%3LF: -NAN():0:-1: +-%*3LF: -NAN():0:-1: +-%3LF: NAN():1:4:nan: +-%*3LF: NAN():0:4: +-%3LF: NAN(09A_Zaz):1:4:nan: +-%*3LF: NAN(09A_Zaz):0:4: ++# BZ30647 %3LF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF: -NAN():0:-1: ++# BZ30647 %*3LF: -NAN():0:-1: ++# BZ30647 %3LF: NAN():1:4:nan: ++# BZ30647 %*3LF: NAN():0:4: ++# BZ30647 %3LF: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3LF: NAN(09A_Zaz):0:4: + %3LF: 0:1:2:0x0: + %*3LF: 0:0:2: + %3LF: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*3LF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: + %3LF: INFINITY:1:4:inf: + %*3LF: INFINITY:0:4: +-%3LF: +NAN():0:-1: +-%*3LF: +NAN():0:-1: +-%3LF: +NAN(09A_Zaz):0:-1: +-%*3LF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF: +NAN():0:-1: ++# BZ30647 %*3LF: +NAN():0:-1: ++# BZ30647 %3LF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF: +NAN(09A_Zaz):0:-1: + %3LF: +0:1:3:0x0: + %*3LF: +0:0:3: + %3LF: +0.0:1:4:0x0: +@@ -512,14 +512,14 @@ + %*350LF: -0.0:0:5: + %350LF: -0:1:3:-0x0: + %*350LF: -0:0:3: +-%350LF: -NAN(09A_Zaz):1:14:-nan: +-%*350LF: -NAN(09A_Zaz):0:14: +-%350LF: -NAN():1:7:-nan: +-%*350LF: -NAN():0:7: +-%350LF: NAN():1:6:nan: +-%*350LF: NAN():0:6: +-%350LF: NAN(09A_Zaz):1:13:nan: +-%*350LF: NAN(09A_Zaz):0:13: ++# BZ30647 %350LF: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*350LF: -NAN(09A_Zaz):0:14: ++# BZ30647 %350LF: -NAN():1:7:-nan: ++# BZ30647 %*350LF: -NAN():0:7: ++# BZ30647 %350LF: NAN():1:6:nan: ++# BZ30647 %*350LF: NAN():0:6: ++# BZ30647 %350LF: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*350LF: NAN(09A_Zaz):0:13: + %350LF: 0:1:2:0x0: + %*350LF: 0:0:2: + %350LF: 0.0:1:4:0x0: +@@ -536,10 +536,10 @@ + %*350LF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: + %350LF: INFINITY:1:9:inf: + %*350LF: INFINITY:0:9: +-%350LF: +NAN():1:7:nan: +-%*350LF: +NAN():0:7: +-%350LF: +NAN(09A_Zaz):1:14:nan: +-%*350LF: +NAN(09A_Zaz):0:14: ++# BZ30647 %350LF: +NAN():1:7:nan: ++# BZ30647 %*350LF: +NAN():0:7: ++# BZ30647 %350LF: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*350LF: +NAN(09A_Zaz):0:14: + %350LF: +0:1:3:0x0: + %*350LF: +0:0:3: + %350LF: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input +index ed8aac9247f36c61..f710ecbfd743aacf 100644 +--- a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input +@@ -16,14 +16,14 @@ + %*Lg:-0x0p+0:0:7: + %Lg:-0x0p0:1:6:-0x0: + %*Lg:-0x0p0:0:6: +-%Lg:-nan(09A_Zaz):1:13:-nan: +-%*Lg:-nan(09A_Zaz):0:13: +-%Lg:-nan():1:6:-nan: +-%*Lg:-nan():0:6: +-%Lg:nan():1:5:nan: +-%*Lg:nan():0:5: +-%Lg:nan(09A_Zaz):1:12:nan: +-%*Lg:nan(09A_Zaz):0:12: ++# BZ30647 %Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %Lg:-nan():1:6:-nan: ++# BZ30647 %*Lg:-nan():0:6: ++# BZ30647 %Lg:nan():1:5:nan: ++# BZ30647 %*Lg:nan():0:5: ++# BZ30647 %Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Lg:nan(09A_Zaz):0:12: + %Lg:0x0p0:1:5:0x0: + %*Lg:0x0p0:0:5: + %Lg:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*Lg:0xf.ffffffffffff8p+1020:0:23: + %Lg:infinity:1:8:inf: + %*Lg:infinity:0:8: +-%Lg:+nan():1:6:nan: +-%*Lg:+nan():0:6: +-%Lg:+nan(09A_Zaz):1:13:nan: +-%*Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %Lg:+nan():1:6:nan: ++# BZ30647 %*Lg:+nan():0:6: ++# BZ30647 %Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Lg:+nan(09A_Zaz):0:13: + %Lg:+0x0p0:1:6:0x0: + %*Lg:+0x0p0:0:6: + %Lg:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1Lg:-0x0p+0:0:-1: + %1Lg:-0x0p0:0:-1: + %*1Lg:-0x0p0:0:-1: +-%1Lg:-nan(09A_Zaz):0:-1: +-%*1Lg:-nan(09A_Zaz):0:-1: +-%1Lg:-nan():0:-1: +-%*1Lg:-nan():0:-1: +-%1Lg:nan():0:-1: +-%*1Lg:nan():0:-1: +-%1Lg:nan(09A_Zaz):0:-1: +-%*1Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:-nan():0:-1: ++# BZ30647 %*1Lg:-nan():0:-1: ++# BZ30647 %1Lg:nan():0:-1: ++# BZ30647 %*1Lg:nan():0:-1: ++# BZ30647 %1Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:nan(09A_Zaz):0:-1: + %1Lg:0x0p0:1:1:0x0: + %*1Lg:0x0p0:0:1: + %1Lg:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Lg:0xf.ffffffffffff8p+1020:0:1: + %1Lg:infinity:0:-1: + %*1Lg:infinity:0:-1: +-%1Lg:+nan():0:-1: +-%*1Lg:+nan():0:-1: +-%1Lg:+nan(09A_Zaz):0:-1: +-%*1Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:+nan():0:-1: ++# BZ30647 %*1Lg:+nan():0:-1: ++# BZ30647 %1Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:+nan(09A_Zaz):0:-1: + %1Lg:+0x0p0:0:-1: + %*1Lg:+0x0p0:0:-1: + %1Lg:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2Lg:-0x0p+0:0:2: + %2Lg:-0x0p0:1:2:-0x0: + %*2Lg:-0x0p0:0:2: +-%2Lg:-nan(09A_Zaz):0:-1: +-%*2Lg:-nan(09A_Zaz):0:-1: +-%2Lg:-nan():0:-1: +-%*2Lg:-nan():0:-1: +-%2Lg:nan():0:-1: +-%*2Lg:nan():0:-1: +-%2Lg:nan(09A_Zaz):0:-1: +-%*2Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:-nan():0:-1: ++# BZ30647 %*2Lg:-nan():0:-1: ++# BZ30647 %2Lg:nan():0:-1: ++# BZ30647 %*2Lg:nan():0:-1: ++# BZ30647 %2Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:nan(09A_Zaz):0:-1: + # BZ12701 %2Lg:0x0p0:0:-1: + # BZ12701 %*2Lg:0x0p0:0:-1: + # BZ12701 %2Lg:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2Lg:0xf.ffffffffffff8p+1020:0:-1: + %2Lg:infinity:0:-1: + %*2Lg:infinity:0:-1: +-%2Lg:+nan():0:-1: +-%*2Lg:+nan():0:-1: +-%2Lg:+nan(09A_Zaz):0:-1: +-%*2Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:+nan():0:-1: ++# BZ30647 %*2Lg:+nan():0:-1: ++# BZ30647 %2Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:+nan(09A_Zaz):0:-1: + %2Lg:+0x0p0:1:2:0x0: + %*2Lg:+0x0p0:0:2: + %2Lg:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3Lg:-0x0p+0:0:-1: + # BZ12701 %3Lg:-0x0p0:0:-1: + # BZ12701 %*3Lg:-0x0p0:0:-1: +-%3Lg:-nan(09A_Zaz):0:-1: +-%*3Lg:-nan(09A_Zaz):0:-1: +-%3Lg:-nan():0:-1: +-%*3Lg:-nan():0:-1: +-%3Lg:nan():1:3:nan: +-%*3Lg:nan():0:3: +-%3Lg:nan(09A_Zaz):1:3:nan: +-%*3Lg:nan(09A_Zaz):0:3: ++# BZ30647 %3Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Lg:-nan():0:-1: ++# BZ30647 %*3Lg:-nan():0:-1: ++# BZ30647 %3Lg:nan():1:3:nan: ++# BZ30647 %*3Lg:nan():0:3: ++# BZ30647 %3Lg:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Lg:nan(09A_Zaz):0:3: + %3Lg:0x0p0:1:3:0x0: + %*3Lg:0x0p0:0:3: + %3Lg:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3Lg:0xf.ffffffffffff8p+1020:0:3: + %3Lg:infinity:1:3:inf: + %*3Lg:infinity:0:3: +-%3Lg:+nan():0:-1: +-%*3Lg:+nan():0:-1: +-%3Lg:+nan(09A_Zaz):0:-1: +-%*3Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Lg:+nan():0:-1: ++# BZ30647 %*3Lg:+nan():0:-1: ++# BZ30647 %3Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lg:+nan(09A_Zaz):0:-1: + # BZ12701 %3Lg:+0x0p0:0:-1: + # BZ12701 %*3Lg:+0x0p0:0:-1: + # BZ12701 %3Lg:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4Lg:-0x0p+0:0:4: + %4Lg:-0x0p0:1:4:-0x0: + %*4Lg:-0x0p0:0:4: +-%4Lg:-nan(09A_Zaz):1:4:-nan: +-%*4Lg:-nan(09A_Zaz):0:4: +-%4Lg:-nan():1:4:-nan: +-%*4Lg:-nan():0:4: +-%4Lg:nan():0:-1: +-%*4Lg:nan():0:-1: +-%4Lg:nan(09A_Zaz):0:-1: +-%*4Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %4Lg:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Lg:-nan(09A_Zaz):0:4: ++# BZ30647 %4Lg:-nan():1:4:-nan: ++# BZ30647 %*4Lg:-nan():0:4: ++# BZ30647 %4Lg:nan():0:-1: ++# BZ30647 %*4Lg:nan():0:-1: ++# BZ30647 %4Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Lg:nan(09A_Zaz):0:-1: + # BZ12701 %4Lg:0x0p0:0:-1: + # BZ12701 %*4Lg:0x0p0:0:-1: + # BZ12701 %4Lg:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4Lg:0xf.ffffffffffff8p+1020:0:4: + %4Lg:infinity:0:-1: + %*4Lg:infinity:0:-1: +-%4Lg:+nan():1:4:nan: +-%*4Lg:+nan():0:4: +-%4Lg:+nan(09A_Zaz):1:4:nan: +-%*4Lg:+nan(09A_Zaz):0:4: ++# BZ30647 %4Lg:+nan():1:4:nan: ++# BZ30647 %*4Lg:+nan():0:4: ++# BZ30647 %4Lg:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Lg:+nan(09A_Zaz):0:4: + %4Lg:+0x0p0:1:4:0x0: + %*4Lg:+0x0p0:0:4: + %4Lg:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5Lg:-0x0p+0:0:-1: + # BZ12701 %5Lg:-0x0p0:0:-1: + # BZ12701 %*5Lg:-0x0p0:0:-1: +-%5Lg:-nan(09A_Zaz):0:-1: +-%*5Lg:-nan(09A_Zaz):0:-1: +-%5Lg:-nan():0:-1: +-%*5Lg:-nan():0:-1: +-%5Lg:nan():1:5:nan: +-%*5Lg:nan():0:5: +-%5Lg:nan(09A_Zaz):0:-1: +-%*5Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:-nan():0:-1: ++# BZ30647 %*5Lg:-nan():0:-1: ++# BZ30647 %5Lg:nan():1:5:nan: ++# BZ30647 %*5Lg:nan():0:5: ++# BZ30647 %5Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:nan(09A_Zaz):0:-1: + %5Lg:0x0p0:1:5:0x0: + %*5Lg:0x0p0:0:5: + # BZ12701 %5Lg:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5Lg:0xf.ffffffffffff8p+1020:0:5: + %5Lg:infinity:0:-1: + %*5Lg:infinity:0:-1: +-%5Lg:+nan():0:-1: +-%*5Lg:+nan():0:-1: +-%5Lg:+nan(09A_Zaz):0:-1: +-%*5Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:+nan():0:-1: ++# BZ30647 %*5Lg:+nan():0:-1: ++# BZ30647 %5Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:+nan(09A_Zaz):0:-1: + # BZ12701 %5Lg:+0x0p0:0:-1: + # BZ12701 %*5Lg:+0x0p0:0:-1: + # BZ12701 %5Lg:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6Lg:-0x0p+0:0:-1: + %6Lg:-0x0p0:1:6:-0x0: + %*6Lg:-0x0p0:0:6: +-%6Lg:-nan(09A_Zaz):0:-1: +-%*6Lg:-nan(09A_Zaz):0:-1: +-%6Lg:-nan():1:6:-nan: +-%*6Lg:-nan():0:6: +-%6Lg:nan():1:5:nan: +-%*6Lg:nan():0:5: +-%6Lg:nan(09A_Zaz):0:-1: +-%*6Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:-nan():1:6:-nan: ++# BZ30647 %*6Lg:-nan():0:6: ++# BZ30647 %6Lg:nan():1:5:nan: ++# BZ30647 %*6Lg:nan():0:5: ++# BZ30647 %6Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:nan(09A_Zaz):0:-1: + %6Lg:0x0p0:1:5:0x0: + %*6Lg:0x0p0:0:5: + %6Lg:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6Lg:0xf.ffffffffffff8p+1020:0:6: + %6Lg:infinity:0:-1: + %*6Lg:infinity:0:-1: +-%6Lg:+nan():1:6:nan: +-%*6Lg:+nan():0:6: +-%6Lg:+nan(09A_Zaz):0:-1: +-%*6Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:+nan():1:6:nan: ++# BZ30647 %*6Lg:+nan():0:6: ++# BZ30647 %6Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:+nan(09A_Zaz):0:-1: + %6Lg:+0x0p0:1:6:0x0: + %*6Lg:+0x0p0:0:6: + # BZ12701 %6Lg:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*20Lg:-0x0p+0:0:7: + %20Lg:-0x0p0:1:6:-0x0: + %*20Lg:-0x0p0:0:6: +-%20Lg:-nan(09A_Zaz):1:13:-nan: +-%*20Lg:-nan(09A_Zaz):0:13: +-%20Lg:-nan():1:6:-nan: +-%*20Lg:-nan():0:6: +-%20Lg:nan():1:5:nan: +-%*20Lg:nan():0:5: +-%20Lg:nan(09A_Zaz):1:12:nan: +-%*20Lg:nan(09A_Zaz):0:12: ++# BZ30647 %20Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*20Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %20Lg:-nan():1:6:-nan: ++# BZ30647 %*20Lg:-nan():0:6: ++# BZ30647 %20Lg:nan():1:5:nan: ++# BZ30647 %*20Lg:nan():0:5: ++# BZ30647 %20Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*20Lg:nan(09A_Zaz):0:12: + %20Lg:0x0p0:1:5:0x0: + %*20Lg:0x0p0:0:5: + %20Lg:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*20Lg:0xf.ffffffffffff8p+1020:0:20: + %20Lg:infinity:1:8:inf: + %*20Lg:infinity:0:8: +-%20Lg:+nan():1:6:nan: +-%*20Lg:+nan():0:6: +-%20Lg:+nan(09A_Zaz):1:13:nan: +-%*20Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %20Lg:+nan():1:6:nan: ++# BZ30647 %*20Lg:+nan():0:6: ++# BZ30647 %20Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*20Lg:+nan(09A_Zaz):0:13: + %20Lg:+0x0p0:1:6:0x0: + %*20Lg:+0x0p0:0:6: + %20Lg:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*32Lg:-0x0p+0:0:7: + %32Lg:-0x0p0:1:6:-0x0: + %*32Lg:-0x0p0:0:6: +-%32Lg:-nan(09A_Zaz):1:13:-nan: +-%*32Lg:-nan(09A_Zaz):0:13: +-%32Lg:-nan():1:6:-nan: +-%*32Lg:-nan():0:6: +-%32Lg:nan():1:5:nan: +-%*32Lg:nan():0:5: +-%32Lg:nan(09A_Zaz):1:12:nan: +-%*32Lg:nan(09A_Zaz):0:12: ++# BZ30647 %32Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*32Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %32Lg:-nan():1:6:-nan: ++# BZ30647 %*32Lg:-nan():0:6: ++# BZ30647 %32Lg:nan():1:5:nan: ++# BZ30647 %*32Lg:nan():0:5: ++# BZ30647 %32Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*32Lg:nan(09A_Zaz):0:12: + %32Lg:0x0p0:1:5:0x0: + %*32Lg:0x0p0:0:5: + %32Lg:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*32Lg:0xf.ffffffffffff8p+1020:0:23: + %32Lg:infinity:1:8:inf: + %*32Lg:infinity:0:8: +-%32Lg:+nan():1:6:nan: +-%*32Lg:+nan():0:6: +-%32Lg:+nan(09A_Zaz):1:13:nan: +-%*32Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %32Lg:+nan():1:6:nan: ++# BZ30647 %*32Lg:+nan():0:6: ++# BZ30647 %32Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*32Lg:+nan(09A_Zaz):0:13: + %32Lg:+0x0p0:1:6:0x0: + %*32Lg:+0x0p0:0:6: + %32Lg:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5Lg: -0x0p+0:0:-1: + # BZ12701 %5Lg: -0x0p0:0:-1: + # BZ12701 %*5Lg: -0x0p0:0:-1: +-%5Lg: -nan(09A_Zaz):0:-1: +-%*5Lg: -nan(09A_Zaz):0:-1: +-%5Lg: -nan():0:-1: +-%*5Lg: -nan():0:-1: +-%5Lg: nan():1:6:nan: +-%*5Lg: nan():0:6: +-%5Lg: nan(09A_Zaz):0:-1: +-%*5Lg: nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: -nan():0:-1: ++# BZ30647 %*5Lg: -nan():0:-1: ++# BZ30647 %5Lg: nan():1:6:nan: ++# BZ30647 %*5Lg: nan():0:6: ++# BZ30647 %5Lg: nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: nan(09A_Zaz):0:-1: + %5Lg: 0x0p0:1:6:0x0: + %*5Lg: 0x0p0:0:6: + # BZ12701 %5Lg: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5Lg: 0xf.ffffffffffff8p+1020:0:6: + %5Lg: infinity:0:-1: + %*5Lg: infinity:0:-1: +-%5Lg: +nan():0:-1: +-%*5Lg: +nan():0:-1: +-%5Lg: +nan(09A_Zaz):0:-1: +-%*5Lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: +nan():0:-1: ++# BZ30647 %*5Lg: +nan():0:-1: ++# BZ30647 %5Lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: +nan(09A_Zaz):0:-1: + # BZ12701 %5Lg: +0x0p0:0:-1: + # BZ12701 %*5Lg: +0x0p0:0:-1: + # BZ12701 %5Lg: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*32Lg: -0x0p+0:0:8: + %32Lg: -0x0p0:1:7:-0x0: + %*32Lg: -0x0p0:0:7: +-%32Lg: -nan(09A_Zaz):1:14:-nan: +-%*32Lg: -nan(09A_Zaz):0:14: +-%32Lg: -nan():1:7:-nan: +-%*32Lg: -nan():0:7: +-%32Lg: nan():1:6:nan: +-%*32Lg: nan():0:6: +-%32Lg: nan(09A_Zaz):1:13:nan: +-%*32Lg: nan(09A_Zaz):0:13: ++# BZ30647 %32Lg: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*32Lg: -nan(09A_Zaz):0:14: ++# BZ30647 %32Lg: -nan():1:7:-nan: ++# BZ30647 %*32Lg: -nan():0:7: ++# BZ30647 %32Lg: nan():1:6:nan: ++# BZ30647 %*32Lg: nan():0:6: ++# BZ30647 %32Lg: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*32Lg: nan(09A_Zaz):0:13: + %32Lg: 0x0p0:1:6:0x0: + %*32Lg: 0x0p0:0:6: + %32Lg: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*32Lg: 0xf.ffffffffffff8p+1020:0:24: + %32Lg: infinity:1:9:inf: + %*32Lg: infinity:0:9: +-%32Lg: +nan():1:7:nan: +-%*32Lg: +nan():0:7: +-%32Lg: +nan(09A_Zaz):1:14:nan: +-%*32Lg: +nan(09A_Zaz):0:14: ++# BZ30647 %32Lg: +nan():1:7:nan: ++# BZ30647 %*32Lg: +nan():0:7: ++# BZ30647 %32Lg: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*32Lg: +nan(09A_Zaz):0:14: + %32Lg: +0x0p0:1:7:0x0: + %*32Lg: +0x0p0:0:7: + %32Lg: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input +index 08684574e561f1c1..764a8e5643d6b47b 100644 +--- a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input +@@ -16,14 +16,14 @@ + %*LG:-0X0P+0:0:7: + %LG:-0X0P0:1:6:-0x0: + %*LG:-0X0P0:0:6: +-%LG:-NAN(09A_Zaz):1:13:-nan: +-%*LG:-NAN(09A_Zaz):0:13: +-%LG:-NAN():1:6:-nan: +-%*LG:-NAN():0:6: +-%LG:NAN():1:5:nan: +-%*LG:NAN():0:5: +-%LG:NAN(09A_Zaz):1:12:nan: +-%*LG:NAN(09A_Zaz):0:12: ++# BZ30647 %LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %LG:-NAN():1:6:-nan: ++# BZ30647 %*LG:-NAN():0:6: ++# BZ30647 %LG:NAN():1:5:nan: ++# BZ30647 %*LG:NAN():0:5: ++# BZ30647 %LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LG:NAN(09A_Zaz):0:12: + %LG:0X0P0:1:5:0x0: + %*LG:0X0P0:0:5: + %LG:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*LG:0XF.FFFFFFFFFFFF8P+1020:0:23: + %LG:INFINITY:1:8:inf: + %*LG:INFINITY:0:8: +-%LG:+NAN():1:6:nan: +-%*LG:+NAN():0:6: +-%LG:+NAN(09A_Zaz):1:13:nan: +-%*LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %LG:+NAN():1:6:nan: ++# BZ30647 %*LG:+NAN():0:6: ++# BZ30647 %LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LG:+NAN(09A_Zaz):0:13: + %LG:+0X0P0:1:6:0x0: + %*LG:+0X0P0:0:6: + %LG:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1LG:-0X0P+0:0:-1: + %1LG:-0X0P0:0:-1: + %*1LG:-0X0P0:0:-1: +-%1LG:-NAN(09A_Zaz):0:-1: +-%*1LG:-NAN(09A_Zaz):0:-1: +-%1LG:-NAN():0:-1: +-%*1LG:-NAN():0:-1: +-%1LG:NAN():0:-1: +-%*1LG:NAN():0:-1: +-%1LG:NAN(09A_Zaz):0:-1: +-%*1LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:-NAN():0:-1: ++# BZ30647 %*1LG:-NAN():0:-1: ++# BZ30647 %1LG:NAN():0:-1: ++# BZ30647 %*1LG:NAN():0:-1: ++# BZ30647 %1LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:NAN(09A_Zaz):0:-1: + %1LG:0X0P0:1:1:0x0: + %*1LG:0X0P0:0:1: + %1LG:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LG:0XF.FFFFFFFFFFFF8P+1020:0:1: + %1LG:INFINITY:0:-1: + %*1LG:INFINITY:0:-1: +-%1LG:+NAN():0:-1: +-%*1LG:+NAN():0:-1: +-%1LG:+NAN(09A_Zaz):0:-1: +-%*1LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:+NAN():0:-1: ++# BZ30647 %*1LG:+NAN():0:-1: ++# BZ30647 %1LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:+NAN(09A_Zaz):0:-1: + %1LG:+0X0P0:0:-1: + %*1LG:+0X0P0:0:-1: + %1LG:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LG:-0X0P+0:0:2: + %2LG:-0X0P0:1:2:-0x0: + %*2LG:-0X0P0:0:2: +-%2LG:-NAN(09A_Zaz):0:-1: +-%*2LG:-NAN(09A_Zaz):0:-1: +-%2LG:-NAN():0:-1: +-%*2LG:-NAN():0:-1: +-%2LG:NAN():0:-1: +-%*2LG:NAN():0:-1: +-%2LG:NAN(09A_Zaz):0:-1: +-%*2LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:-NAN():0:-1: ++# BZ30647 %*2LG:-NAN():0:-1: ++# BZ30647 %2LG:NAN():0:-1: ++# BZ30647 %*2LG:NAN():0:-1: ++# BZ30647 %2LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:NAN(09A_Zaz):0:-1: + # BZ12701 %2LG:0X0P0:0:-1: + # BZ12701 %*2LG:0X0P0:0:-1: + # BZ12701 %2LG:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2LG:0XF.FFFFFFFFFFFF8P+1020:0:-1: + %2LG:INFINITY:0:-1: + %*2LG:INFINITY:0:-1: +-%2LG:+NAN():0:-1: +-%*2LG:+NAN():0:-1: +-%2LG:+NAN(09A_Zaz):0:-1: +-%*2LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:+NAN():0:-1: ++# BZ30647 %*2LG:+NAN():0:-1: ++# BZ30647 %2LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:+NAN(09A_Zaz):0:-1: + %2LG:+0X0P0:1:2:0x0: + %*2LG:+0X0P0:0:2: + %2LG:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LG:-0X0P+0:0:-1: + # BZ12701 %3LG:-0X0P0:0:-1: + # BZ12701 %*3LG:-0X0P0:0:-1: +-%3LG:-NAN(09A_Zaz):0:-1: +-%*3LG:-NAN(09A_Zaz):0:-1: +-%3LG:-NAN():0:-1: +-%*3LG:-NAN():0:-1: +-%3LG:NAN():1:3:nan: +-%*3LG:NAN():0:3: +-%3LG:NAN(09A_Zaz):1:3:nan: +-%*3LG:NAN(09A_Zaz):0:3: ++# BZ30647 %3LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LG:-NAN():0:-1: ++# BZ30647 %*3LG:-NAN():0:-1: ++# BZ30647 %3LG:NAN():1:3:nan: ++# BZ30647 %*3LG:NAN():0:3: ++# BZ30647 %3LG:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LG:NAN(09A_Zaz):0:3: + %3LG:0X0P0:1:3:0x0: + %*3LG:0X0P0:0:3: + %3LG:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LG:0XF.FFFFFFFFFFFF8P+1020:0:3: + %3LG:INFINITY:1:3:inf: + %*3LG:INFINITY:0:3: +-%3LG:+NAN():0:-1: +-%*3LG:+NAN():0:-1: +-%3LG:+NAN(09A_Zaz):0:-1: +-%*3LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LG:+NAN():0:-1: ++# BZ30647 %*3LG:+NAN():0:-1: ++# BZ30647 %3LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LG:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LG:+0X0P0:0:-1: + # BZ12701 %*3LG:+0X0P0:0:-1: + # BZ12701 %3LG:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4LG:-0X0P+0:0:4: + %4LG:-0X0P0:1:4:-0x0: + %*4LG:-0X0P0:0:4: +-%4LG:-NAN(09A_Zaz):1:4:-nan: +-%*4LG:-NAN(09A_Zaz):0:4: +-%4LG:-NAN():1:4:-nan: +-%*4LG:-NAN():0:4: +-%4LG:NAN():0:-1: +-%*4LG:NAN():0:-1: +-%4LG:NAN(09A_Zaz):0:-1: +-%*4LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LG:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LG:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LG:-NAN():1:4:-nan: ++# BZ30647 %*4LG:-NAN():0:4: ++# BZ30647 %4LG:NAN():0:-1: ++# BZ30647 %*4LG:NAN():0:-1: ++# BZ30647 %4LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LG:NAN(09A_Zaz):0:-1: + # BZ12701 %4LG:0X0P0:0:-1: + # BZ12701 %*4LG:0X0P0:0:-1: + # BZ12701 %4LG:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4LG:0XF.FFFFFFFFFFFF8P+1020:0:4: + %4LG:INFINITY:0:-1: + %*4LG:INFINITY:0:-1: +-%4LG:+NAN():1:4:nan: +-%*4LG:+NAN():0:4: +-%4LG:+NAN(09A_Zaz):1:4:nan: +-%*4LG:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LG:+NAN():1:4:nan: ++# BZ30647 %*4LG:+NAN():0:4: ++# BZ30647 %4LG:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LG:+NAN(09A_Zaz):0:4: + %4LG:+0X0P0:1:4:0x0: + %*4LG:+0X0P0:0:4: + %4LG:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5LG:-0X0P+0:0:-1: + # BZ12701 %5LG:-0X0P0:0:-1: + # BZ12701 %*5LG:-0X0P0:0:-1: +-%5LG:-NAN(09A_Zaz):0:-1: +-%*5LG:-NAN(09A_Zaz):0:-1: +-%5LG:-NAN():0:-1: +-%*5LG:-NAN():0:-1: +-%5LG:NAN():1:5:nan: +-%*5LG:NAN():0:5: +-%5LG:NAN(09A_Zaz):0:-1: +-%*5LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:-NAN():0:-1: ++# BZ30647 %*5LG:-NAN():0:-1: ++# BZ30647 %5LG:NAN():1:5:nan: ++# BZ30647 %*5LG:NAN():0:5: ++# BZ30647 %5LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:NAN(09A_Zaz):0:-1: + %5LG:0X0P0:1:5:0x0: + %*5LG:0X0P0:0:5: + # BZ12701 %5LG:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5LG:0XF.FFFFFFFFFFFF8P+1020:0:5: + %5LG:INFINITY:0:-1: + %*5LG:INFINITY:0:-1: +-%5LG:+NAN():0:-1: +-%*5LG:+NAN():0:-1: +-%5LG:+NAN(09A_Zaz):0:-1: +-%*5LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:+NAN():0:-1: ++# BZ30647 %*5LG:+NAN():0:-1: ++# BZ30647 %5LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:+NAN(09A_Zaz):0:-1: + # BZ12701 %5LG:+0X0P0:0:-1: + # BZ12701 %*5LG:+0X0P0:0:-1: + # BZ12701 %5LG:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6LG:-0X0P+0:0:-1: + %6LG:-0X0P0:1:6:-0x0: + %*6LG:-0X0P0:0:6: +-%6LG:-NAN(09A_Zaz):0:-1: +-%*6LG:-NAN(09A_Zaz):0:-1: +-%6LG:-NAN():1:6:-nan: +-%*6LG:-NAN():0:6: +-%6LG:NAN():1:5:nan: +-%*6LG:NAN():0:5: +-%6LG:NAN(09A_Zaz):0:-1: +-%*6LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:-NAN():1:6:-nan: ++# BZ30647 %*6LG:-NAN():0:6: ++# BZ30647 %6LG:NAN():1:5:nan: ++# BZ30647 %*6LG:NAN():0:5: ++# BZ30647 %6LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:NAN(09A_Zaz):0:-1: + %6LG:0X0P0:1:5:0x0: + %*6LG:0X0P0:0:5: + %6LG:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6LG:0XF.FFFFFFFFFFFF8P+1020:0:6: + %6LG:INFINITY:0:-1: + %*6LG:INFINITY:0:-1: +-%6LG:+NAN():1:6:nan: +-%*6LG:+NAN():0:6: +-%6LG:+NAN(09A_Zaz):0:-1: +-%*6LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:+NAN():1:6:nan: ++# BZ30647 %*6LG:+NAN():0:6: ++# BZ30647 %6LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:+NAN(09A_Zaz):0:-1: + %6LG:+0X0P0:1:6:0x0: + %*6LG:+0X0P0:0:6: + # BZ12701 %6LG:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*20LG:-0X0P+0:0:7: + %20LG:-0X0P0:1:6:-0x0: + %*20LG:-0X0P0:0:6: +-%20LG:-NAN(09A_Zaz):1:13:-nan: +-%*20LG:-NAN(09A_Zaz):0:13: +-%20LG:-NAN():1:6:-nan: +-%*20LG:-NAN():0:6: +-%20LG:NAN():1:5:nan: +-%*20LG:NAN():0:5: +-%20LG:NAN(09A_Zaz):1:12:nan: +-%*20LG:NAN(09A_Zaz):0:12: ++# BZ30647 %20LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*20LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %20LG:-NAN():1:6:-nan: ++# BZ30647 %*20LG:-NAN():0:6: ++# BZ30647 %20LG:NAN():1:5:nan: ++# BZ30647 %*20LG:NAN():0:5: ++# BZ30647 %20LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*20LG:NAN(09A_Zaz):0:12: + %20LG:0X0P0:1:5:0x0: + %*20LG:0X0P0:0:5: + %20LG:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*20LG:0XF.FFFFFFFFFFFF8P+1020:0:20: + %20LG:INFINITY:1:8:inf: + %*20LG:INFINITY:0:8: +-%20LG:+NAN():1:6:nan: +-%*20LG:+NAN():0:6: +-%20LG:+NAN(09A_Zaz):1:13:nan: +-%*20LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %20LG:+NAN():1:6:nan: ++# BZ30647 %*20LG:+NAN():0:6: ++# BZ30647 %20LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*20LG:+NAN(09A_Zaz):0:13: + %20LG:+0X0P0:1:6:0x0: + %*20LG:+0X0P0:0:6: + %20LG:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*32LG:-0X0P+0:0:7: + %32LG:-0X0P0:1:6:-0x0: + %*32LG:-0X0P0:0:6: +-%32LG:-NAN(09A_Zaz):1:13:-nan: +-%*32LG:-NAN(09A_Zaz):0:13: +-%32LG:-NAN():1:6:-nan: +-%*32LG:-NAN():0:6: +-%32LG:NAN():1:5:nan: +-%*32LG:NAN():0:5: +-%32LG:NAN(09A_Zaz):1:12:nan: +-%*32LG:NAN(09A_Zaz):0:12: ++# BZ30647 %32LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*32LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %32LG:-NAN():1:6:-nan: ++# BZ30647 %*32LG:-NAN():0:6: ++# BZ30647 %32LG:NAN():1:5:nan: ++# BZ30647 %*32LG:NAN():0:5: ++# BZ30647 %32LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*32LG:NAN(09A_Zaz):0:12: + %32LG:0X0P0:1:5:0x0: + %*32LG:0X0P0:0:5: + %32LG:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*32LG:0XF.FFFFFFFFFFFF8P+1020:0:23: + %32LG:INFINITY:1:8:inf: + %*32LG:INFINITY:0:8: +-%32LG:+NAN():1:6:nan: +-%*32LG:+NAN():0:6: +-%32LG:+NAN(09A_Zaz):1:13:nan: +-%*32LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %32LG:+NAN():1:6:nan: ++# BZ30647 %*32LG:+NAN():0:6: ++# BZ30647 %32LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*32LG:+NAN(09A_Zaz):0:13: + %32LG:+0X0P0:1:6:0x0: + %*32LG:+0X0P0:0:6: + %32LG:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5LG: -0X0P+0:0:-1: + # BZ12701 %5LG: -0X0P0:0:-1: + # BZ12701 %*5LG: -0X0P0:0:-1: +-%5LG: -NAN(09A_Zaz):0:-1: +-%*5LG: -NAN(09A_Zaz):0:-1: +-%5LG: -NAN():0:-1: +-%*5LG: -NAN():0:-1: +-%5LG: NAN():1:6:nan: +-%*5LG: NAN():0:6: +-%5LG: NAN(09A_Zaz):0:-1: +-%*5LG: NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: -NAN():0:-1: ++# BZ30647 %*5LG: -NAN():0:-1: ++# BZ30647 %5LG: NAN():1:6:nan: ++# BZ30647 %*5LG: NAN():0:6: ++# BZ30647 %5LG: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: NAN(09A_Zaz):0:-1: + %5LG: 0X0P0:1:6:0x0: + %*5LG: 0X0P0:0:6: + # BZ12701 %5LG: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5LG: 0XF.FFFFFFFFFFFF8P+1020:0:6: + %5LG: INFINITY:0:-1: + %*5LG: INFINITY:0:-1: +-%5LG: +NAN():0:-1: +-%*5LG: +NAN():0:-1: +-%5LG: +NAN(09A_Zaz):0:-1: +-%*5LG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: +NAN():0:-1: ++# BZ30647 %*5LG: +NAN():0:-1: ++# BZ30647 %5LG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: +NAN(09A_Zaz):0:-1: + # BZ12701 %5LG: +0X0P0:0:-1: + # BZ12701 %*5LG: +0X0P0:0:-1: + # BZ12701 %5LG: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*32LG: -0X0P+0:0:8: + %32LG: -0X0P0:1:7:-0x0: + %*32LG: -0X0P0:0:7: +-%32LG: -NAN(09A_Zaz):1:14:-nan: +-%*32LG: -NAN(09A_Zaz):0:14: +-%32LG: -NAN():1:7:-nan: +-%*32LG: -NAN():0:7: +-%32LG: NAN():1:6:nan: +-%*32LG: NAN():0:6: +-%32LG: NAN(09A_Zaz):1:13:nan: +-%*32LG: NAN(09A_Zaz):0:13: ++# BZ30647 %32LG: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*32LG: -NAN(09A_Zaz):0:14: ++# BZ30647 %32LG: -NAN():1:7:-nan: ++# BZ30647 %*32LG: -NAN():0:7: ++# BZ30647 %32LG: NAN():1:6:nan: ++# BZ30647 %*32LG: NAN():0:6: ++# BZ30647 %32LG: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*32LG: NAN(09A_Zaz):0:13: + %32LG: 0X0P0:1:6:0x0: + %*32LG: 0X0P0:0:6: + %32LG: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*32LG: 0XF.FFFFFFFFFFFF8P+1020:0:24: + %32LG: INFINITY:1:9:inf: + %*32LG: INFINITY:0:9: +-%32LG: +NAN():1:7:nan: +-%*32LG: +NAN():0:7: +-%32LG: +NAN(09A_Zaz):1:14:nan: +-%*32LG: +NAN(09A_Zaz):0:14: ++# BZ30647 %32LG: +NAN():1:7:nan: ++# BZ30647 %*32LG: +NAN():0:7: ++# BZ30647 %32LG: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*32LG: +NAN(09A_Zaz):0:14: + %32LG: +0X0P0:1:7:0x0: + %*32LG: +0X0P0:0:7: + %32LG: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-int-i.input b/sysdeps/wordsize-32/tst-scanf-format-int-i.input +index 212295beedba6bd7..f103439424353cb5 100644 +--- a/sysdeps/wordsize-32/tst-scanf-format-int-i.input ++++ b/sysdeps/wordsize-32/tst-scanf-format-int-i.input +@@ -8,10 +8,6 @@ + %*i:-0x800004D2:0:11: + %i:-020000002322:1:13:-2147483648: + %*i:-020000002322:0:13: +-%i:-0B10000000000000000000010011010010:1:35:-2147483648: +-%*i:-0B10000000000000000000010011010010:0:35: +-%i:-0b10000000000000000000010011010010:1:35:-2147483648: +-%*i:-0b10000000000000000000010011010010:0:35: + %i:-2147483649:1:11:-2147483648: + %*i:-2147483649:0:11: + %i:-0X80000001:1:11:-2147483648: +@@ -20,10 +16,6 @@ + %*i:-0x80000001:0:11: + %i:-020000000001:1:13:-2147483648: + %*i:-020000000001:0:13: +-%i:-0B10000000000000000000000000000001:1:35:-2147483648: +-%*i:-0B10000000000000000000000000000001:0:35: +-%i:-0b10000000000000000000000000000001:1:35:-2147483648: +-%*i:-0b10000000000000000000000000000001:0:35: + %i:-2147483648:1:11:-2147483648: + %*i:-2147483648:0:11: + %i:-0X80000000:1:11:-2147483648: +@@ -32,10 +24,6 @@ + %*i:-0x80000000:0:11: + %i:-020000000000:1:13:-2147483648: + %*i:-020000000000:0:13: +-%i:-0B10000000000000000000000000000000:1:35:-2147483648: +-%*i:-0B10000000000000000000000000000000:0:35: +-%i:-0b10000000000000000000000000000000:1:35:-2147483648: +-%*i:-0b10000000000000000000000000000000:0:35: + %i:-123:1:4:-123: + %*i:-123:0:4: + %i:-0X7b:1:5:-123: +@@ -44,10 +32,6 @@ + %*i:-0x7B:0:5: + %i:-0173:1:5:-123: + %*i:-0173:0:5: +-%i:-0B1111011:1:10:-123: +-%*i:-0B1111011:0:10: +-%i:-0b1111011:1:10:-123: +-%*i:-0b1111011:0:10: + %i:-1:1:2:-1: + %*i:-1:0:2: + %i:-0X1:1:4:-1: +@@ -56,10 +40,6 @@ + %*i:-0x1:0:4: + %i:-01:1:3:-1: + %*i:-01:0:3: +-%i:-0B1:1:4:-1: +-%*i:-0B1:0:4: +-%i:-0b1:1:4:-1: +-%*i:-0b1:0:4: + %i:-0:1:2:0: + %*i:-0:0:2: + %i:-0X0:1:4:0: +@@ -68,10 +48,6 @@ + %*i:-0x0:0:4: + %i:-00:1:3:0: + %*i:-00:0:3: +-%i:-0B0:1:4:0: +-%*i:-0B0:0:4: +-%i:-0b0:1:4:0: +-%*i:-0b0:0:4: + %i:0:1:1:0: + %*i:0:0:1: + %i:0X0:1:3:0: +@@ -80,10 +56,6 @@ + %*i:0x0:0:3: + %i:00:1:2:0: + %*i:00:0:2: +-%i:0B0:1:3:0: +-%*i:0B0:0:3: +-%i:0b0:1:3:0: +-%*i:0b0:0:3: + %i:1:1:1:1: + %*i:1:0:1: + %i:0X1:1:3:1: +@@ -92,10 +64,6 @@ + %*i:0x1:0:3: + %i:01:1:2:1: + %*i:01:0:2: +-%i:0B1:1:3:1: +-%*i:0B1:0:3: +-%i:0b1:1:3:1: +-%*i:0b1:0:3: + %i:42:1:2:42: + %*i:42:0:2: + %i:0X2a:1:4:42: +@@ -104,10 +72,6 @@ + %*i:0x2A:0:4: + %i:052:1:3:42: + %*i:052:0:3: +-%i:0B101010:1:8:42: +-%*i:0B101010:0:8: +-%i:0b101010:1:8:42: +-%*i:0b101010:0:8: + %i:2147483647:1:10:2147483647: + %*i:2147483647:0:10: + %i:0X7fffffff:1:10:2147483647: +@@ -116,10 +80,6 @@ + %*i:0x7FFFFFFF:0:10: + %i:017777777777:1:12:2147483647: + %*i:017777777777:0:12: +-%i:0B1111111111111111111111111111111:1:33:2147483647: +-%*i:0B1111111111111111111111111111111:0:33: +-%i:0b1111111111111111111111111111111:1:33:2147483647: +-%*i:0b1111111111111111111111111111111:0:33: + %i:2147483648:1:10:2147483647: + %*i:2147483648:0:10: + %i:0X80000000:1:10:2147483647: +@@ -128,10 +88,6 @@ + %*i:0x80000000:0:10: + %i:020000000000:1:12:2147483647: + %*i:020000000000:0:12: +-%i:0B10000000000000000000000000000000:1:34:2147483647: +-%*i:0B10000000000000000000000000000000:0:34: +-%i:0b10000000000000000000000000000000:1:34:2147483647: +-%*i:0b10000000000000000000000000000000:0:34: + %i:2147487889:1:10:2147483647: + %*i:2147487889:0:10: + %i:0X80001091:1:10:2147483647: +@@ -140,10 +96,6 @@ + %*i:0x80001091:0:10: + %i:020000010221:1:12:2147483647: + %*i:020000010221:0:12: +-%i:0B10000000000000000001000010010001:1:34:2147483647: +-%*i:0B10000000000000000001000010010001:0:34: +-%i:0b10000000000000000001000010010001:1:34:2147483647: +-%*i:0b10000000000000000001000010010001:0:34: + %i:+0:1:2:0: + %*i:+0:0:2: + %i:+0X0:1:4:0: +@@ -152,10 +104,6 @@ + %*i:+0x0:0:4: + %i:+00:1:3:0: + %*i:+00:0:3: +-%i:+0B0:1:4:0: +-%*i:+0B0:0:4: +-%i:+0b0:1:4:0: +-%*i:+0b0:0:4: + %i:+1:1:2:1: + %*i:+1:0:2: + %i:+0X1:1:4:1: +@@ -164,10 +112,6 @@ + %*i:+0x1:0:4: + %i:+01:1:3:1: + %*i:+01:0:3: +-%i:+0B1:1:4:1: +-%*i:+0B1:0:4: +-%i:+0b1:1:4:1: +-%*i:+0b1:0:4: + %i:+42:1:3:42: + %*i:+42:0:3: + %i:+0X2a:1:5:42: +@@ -176,10 +120,6 @@ + %*i:+0x2A:0:5: + %i:+052:1:4:42: + %*i:+052:0:4: +-%i:+0B101010:1:9:42: +-%*i:+0B101010:0:9: +-%i:+0b101010:1:9:42: +-%*i:+0b101010:0:9: + %i:+2147483647:1:11:2147483647: + %*i:+2147483647:0:11: + %i:+0X7fffffff:1:11:2147483647: +@@ -188,10 +128,6 @@ + %*i:+0x7FFFFFFF:0:11: + %i:+017777777777:1:13:2147483647: + %*i:+017777777777:0:13: +-%i:+0B1111111111111111111111111111111:1:34:2147483647: +-%*i:+0B1111111111111111111111111111111:0:34: +-%i:+0b1111111111111111111111111111111:1:34:2147483647: +-%*i:+0b1111111111111111111111111111111:0:34: + %i:+2147483648:1:11:2147483647: + %*i:+2147483648:0:11: + %i:+0X80000000:1:11:2147483647: +@@ -200,10 +136,6 @@ + %*i:+0x80000000:0:11: + %i:+020000000000:1:13:2147483647: + %*i:+020000000000:0:13: +-%i:+0B10000000000000000000000000000000:1:35:2147483647: +-%*i:+0B10000000000000000000000000000000:0:35: +-%i:+0b10000000000000000000000000000000:1:35:2147483647: +-%*i:+0b10000000000000000000000000000000:0:35: + %i:+2147487889:1:11:2147483647: + %*i:+2147487889:0:11: + %i:+0X80001091:1:11:2147483647: +@@ -212,10 +144,6 @@ + %*i:+0x80001091:0:11: + %i:+020000010221:1:13:2147483647: + %*i:+020000010221:0:13: +-%i:+0B10000000000000000001000010010001:1:35:2147483647: +-%*i:+0B10000000000000000001000010010001:0:35: +-%i:+0b10000000000000000001000010010001:1:35:2147483647: +-%*i:+0b10000000000000000001000010010001:0:35: + %1i::0:-1: + %*1i::0:-1: + %1i:-2147484882:0:-1: +@@ -226,10 +154,6 @@ + %*1i:-0x800004D2:0:-1: + %1i:-020000002322:0:-1: + %*1i:-020000002322:0:-1: +-%1i:-0B10000000000000000000010011010010:0:-1: +-%*1i:-0B10000000000000000000010011010010:0:-1: +-%1i:-0b10000000000000000000010011010010:0:-1: +-%*1i:-0b10000000000000000000010011010010:0:-1: + %1i:-2147483649:0:-1: + %*1i:-2147483649:0:-1: + %1i:-0X80000001:0:-1: +@@ -238,10 +162,6 @@ + %*1i:-0x80000001:0:-1: + %1i:-020000000001:0:-1: + %*1i:-020000000001:0:-1: +-%1i:-0B10000000000000000000000000000001:0:-1: +-%*1i:-0B10000000000000000000000000000001:0:-1: +-%1i:-0b10000000000000000000000000000001:0:-1: +-%*1i:-0b10000000000000000000000000000001:0:-1: + %1i:-2147483648:0:-1: + %*1i:-2147483648:0:-1: + %1i:-0X80000000:0:-1: +@@ -250,10 +170,6 @@ + %*1i:-0x80000000:0:-1: + %1i:-020000000000:0:-1: + %*1i:-020000000000:0:-1: +-%1i:-0B10000000000000000000000000000000:0:-1: +-%*1i:-0B10000000000000000000000000000000:0:-1: +-%1i:-0b10000000000000000000000000000000:0:-1: +-%*1i:-0b10000000000000000000000000000000:0:-1: + %1i:-123:0:-1: + %*1i:-123:0:-1: + %1i:-0X7b:0:-1: +@@ -262,10 +178,6 @@ + %*1i:-0x7B:0:-1: + %1i:-0173:0:-1: + %*1i:-0173:0:-1: +-%1i:-0B1111011:0:-1: +-%*1i:-0B1111011:0:-1: +-%1i:-0b1111011:0:-1: +-%*1i:-0b1111011:0:-1: + %1i:-1:0:-1: + %*1i:-1:0:-1: + %1i:-0X1:0:-1: +@@ -274,10 +186,6 @@ + %*1i:-0x1:0:-1: + %1i:-01:0:-1: + %*1i:-01:0:-1: +-%1i:-0B1:0:-1: +-%*1i:-0B1:0:-1: +-%1i:-0b1:0:-1: +-%*1i:-0b1:0:-1: + %1i:-0:0:-1: + %*1i:-0:0:-1: + %1i:-0X0:0:-1: +@@ -286,10 +194,6 @@ + %*1i:-0x0:0:-1: + %1i:-00:0:-1: + %*1i:-00:0:-1: +-%1i:-0B0:0:-1: +-%*1i:-0B0:0:-1: +-%1i:-0b0:0:-1: +-%*1i:-0b0:0:-1: + %1i:0:1:1:0: + %*1i:0:0:1: + %1i:0X0:1:1:0: +@@ -298,10 +202,6 @@ + %*1i:0x0:0:1: + %1i:00:1:1:0: + %*1i:00:0:1: +-%1i:0B0:1:1:0: +-%*1i:0B0:0:1: +-%1i:0b0:1:1:0: +-%*1i:0b0:0:1: + %1i:1:1:1:1: + %*1i:1:0:1: + %1i:0X1:1:1:0: +@@ -310,10 +210,6 @@ + %*1i:0x1:0:1: + %1i:01:1:1:0: + %*1i:01:0:1: +-%1i:0B1:1:1:0: +-%*1i:0B1:0:1: +-%1i:0b1:1:1:0: +-%*1i:0b1:0:1: + %1i:42:1:1:4: + %*1i:42:0:1: + %1i:0X2a:1:1:0: +@@ -322,10 +218,6 @@ + %*1i:0x2A:0:1: + %1i:052:1:1:0: + %*1i:052:0:1: +-%1i:0B101010:1:1:0: +-%*1i:0B101010:0:1: +-%1i:0b101010:1:1:0: +-%*1i:0b101010:0:1: + %1i:2147483647:1:1:2: + %*1i:2147483647:0:1: + %1i:0X7fffffff:1:1:0: +@@ -334,10 +226,6 @@ + %*1i:0x7FFFFFFF:0:1: + %1i:017777777777:1:1:0: + %*1i:017777777777:0:1: +-%1i:0B1111111111111111111111111111111:1:1:0: +-%*1i:0B1111111111111111111111111111111:0:1: +-%1i:0b1111111111111111111111111111111:1:1:0: +-%*1i:0b1111111111111111111111111111111:0:1: + %1i:2147483648:1:1:2: + %*1i:2147483648:0:1: + %1i:0X80000000:1:1:0: +@@ -346,10 +234,6 @@ + %*1i:0x80000000:0:1: + %1i:020000000000:1:1:0: + %*1i:020000000000:0:1: +-%1i:0B10000000000000000000000000000000:1:1:0: +-%*1i:0B10000000000000000000000000000000:0:1: +-%1i:0b10000000000000000000000000000000:1:1:0: +-%*1i:0b10000000000000000000000000000000:0:1: + %1i:2147487889:1:1:2: + %*1i:2147487889:0:1: + %1i:0X80001091:1:1:0: +@@ -358,10 +242,6 @@ + %*1i:0x80001091:0:1: + %1i:020000010221:1:1:0: + %*1i:020000010221:0:1: +-%1i:0B10000000000000000001000010010001:1:1:0: +-%*1i:0B10000000000000000001000010010001:0:1: +-%1i:0b10000000000000000001000010010001:1:1:0: +-%*1i:0b10000000000000000001000010010001:0:1: + %1i:+0:0:-1: + %*1i:+0:0:-1: + %1i:+0X0:0:-1: +@@ -370,10 +250,6 @@ + %*1i:+0x0:0:-1: + %1i:+00:0:-1: + %*1i:+00:0:-1: +-%1i:+0B0:0:-1: +-%*1i:+0B0:0:-1: +-%1i:+0b0:0:-1: +-%*1i:+0b0:0:-1: + %1i:+1:0:-1: + %*1i:+1:0:-1: + %1i:+0X1:0:-1: +@@ -382,10 +258,6 @@ + %*1i:+0x1:0:-1: + %1i:+01:0:-1: + %*1i:+01:0:-1: +-%1i:+0B1:0:-1: +-%*1i:+0B1:0:-1: +-%1i:+0b1:0:-1: +-%*1i:+0b1:0:-1: + %1i:+42:0:-1: + %*1i:+42:0:-1: + %1i:+0X2a:0:-1: +@@ -394,10 +266,6 @@ + %*1i:+0x2A:0:-1: + %1i:+052:0:-1: + %*1i:+052:0:-1: +-%1i:+0B101010:0:-1: +-%*1i:+0B101010:0:-1: +-%1i:+0b101010:0:-1: +-%*1i:+0b101010:0:-1: + %1i:+2147483647:0:-1: + %*1i:+2147483647:0:-1: + %1i:+0X7fffffff:0:-1: +@@ -406,10 +274,6 @@ + %*1i:+0x7FFFFFFF:0:-1: + %1i:+017777777777:0:-1: + %*1i:+017777777777:0:-1: +-%1i:+0B1111111111111111111111111111111:0:-1: +-%*1i:+0B1111111111111111111111111111111:0:-1: +-%1i:+0b1111111111111111111111111111111:0:-1: +-%*1i:+0b1111111111111111111111111111111:0:-1: + %1i:+2147483648:0:-1: + %*1i:+2147483648:0:-1: + %1i:+0X80000000:0:-1: +@@ -418,10 +282,6 @@ + %*1i:+0x80000000:0:-1: + %1i:+020000000000:0:-1: + %*1i:+020000000000:0:-1: +-%1i:+0B10000000000000000000000000000000:0:-1: +-%*1i:+0B10000000000000000000000000000000:0:-1: +-%1i:+0b10000000000000000000000000000000:0:-1: +-%*1i:+0b10000000000000000000000000000000:0:-1: + %1i:+2147487889:0:-1: + %*1i:+2147487889:0:-1: + %1i:+0X80001091:0:-1: +@@ -430,10 +290,6 @@ + %*1i:+0x80001091:0:-1: + %1i:+020000010221:0:-1: + %*1i:+020000010221:0:-1: +-%1i:+0B10000000000000000001000010010001:0:-1: +-%*1i:+0B10000000000000000001000010010001:0:-1: +-%1i:+0b10000000000000000001000010010001:0:-1: +-%*1i:+0b10000000000000000001000010010001:0:-1: + %2i::0:-1: + %*2i::0:-1: + %2i:-2147484882:1:2:-2: +@@ -444,10 +300,6 @@ + %*2i:-0x800004D2:0:2: + %2i:-020000002322:1:2:0: + %*2i:-020000002322:0:2: +-%2i:-0B10000000000000000000010011010010:1:2:0: +-%*2i:-0B10000000000000000000010011010010:0:2: +-%2i:-0b10000000000000000000010011010010:1:2:0: +-%*2i:-0b10000000000000000000010011010010:0:2: + %2i:-2147483649:1:2:-2: + %*2i:-2147483649:0:2: + %2i:-0X80000001:1:2:0: +@@ -456,10 +308,6 @@ + %*2i:-0x80000001:0:2: + %2i:-020000000001:1:2:0: + %*2i:-020000000001:0:2: +-%2i:-0B10000000000000000000000000000001:1:2:0: +-%*2i:-0B10000000000000000000000000000001:0:2: +-%2i:-0b10000000000000000000000000000001:1:2:0: +-%*2i:-0b10000000000000000000000000000001:0:2: + %2i:-2147483648:1:2:-2: + %*2i:-2147483648:0:2: + %2i:-0X80000000:1:2:0: +@@ -468,10 +316,6 @@ + %*2i:-0x80000000:0:2: + %2i:-020000000000:1:2:0: + %*2i:-020000000000:0:2: +-%2i:-0B10000000000000000000000000000000:1:2:0: +-%*2i:-0B10000000000000000000000000000000:0:2: +-%2i:-0b10000000000000000000000000000000:1:2:0: +-%*2i:-0b10000000000000000000000000000000:0:2: + %2i:-123:1:2:-1: + %*2i:-123:0:2: + %2i:-0X7b:1:2:0: +@@ -480,10 +324,6 @@ + %*2i:-0x7B:0:2: + %2i:-0173:1:2:0: + %*2i:-0173:0:2: +-%2i:-0B1111011:1:2:0: +-%*2i:-0B1111011:0:2: +-%2i:-0b1111011:1:2:0: +-%*2i:-0b1111011:0:2: + %2i:-1:1:2:-1: + %*2i:-1:0:2: + %2i:-0X1:1:2:0: +@@ -492,10 +332,6 @@ + %*2i:-0x1:0:2: + %2i:-01:1:2:0: + %*2i:-01:0:2: +-%2i:-0B1:1:2:0: +-%*2i:-0B1:0:2: +-%2i:-0b1:1:2:0: +-%*2i:-0b1:0:2: + %2i:-0:1:2:0: + %*2i:-0:0:2: + %2i:-0X0:1:2:0: +@@ -504,10 +340,6 @@ + %*2i:-0x0:0:2: + %2i:-00:1:2:0: + %*2i:-00:0:2: +-%2i:-0B0:1:2:0: +-%*2i:-0B0:0:2: +-%2i:-0b0:1:2:0: +-%*2i:-0b0:0:2: + %2i:0:1:1:0: + %*2i:0:0:1: + # BZ12701 %2i:0X0:0:-1: +@@ -516,10 +348,6 @@ + # BZ12701 %*2i:0x0:0:-1: + %2i:00:1:2:0: + %*2i:00:0:2: +-# BZ12701 %2i:0B0:0:-1: +-# BZ12701 %*2i:0B0:0:-1: +-# BZ12701 %2i:0b0:0:-1: +-# BZ12701 %*2i:0b0:0:-1: + %2i:1:1:1:1: + %*2i:1:0:1: + # BZ12701 %2i:0X1:0:-1: +@@ -528,10 +356,6 @@ + # BZ12701 %*2i:0x1:0:-1: + %2i:01:1:2:1: + %*2i:01:0:2: +-# BZ12701 %2i:0B1:0:-1: +-# BZ12701 %*2i:0B1:0:-1: +-# BZ12701 %2i:0b1:0:-1: +-# BZ12701 %*2i:0b1:0:-1: + %2i:42:1:2:42: + %*2i:42:0:2: + # BZ12701 %2i:0X2a:0:-1: +@@ -540,10 +364,6 @@ + # BZ12701 %*2i:0x2A:0:-1: + %2i:052:1:2:5: + %*2i:052:0:2: +-# BZ12701 %2i:0B101010:0:-1: +-# BZ12701 %*2i:0B101010:0:-1: +-# BZ12701 %2i:0b101010:0:-1: +-# BZ12701 %*2i:0b101010:0:-1: + %2i:2147483647:1:2:21: + %*2i:2147483647:0:2: + # BZ12701 %2i:0X7fffffff:0:-1: +@@ -552,10 +372,6 @@ + # BZ12701 %*2i:0x7FFFFFFF:0:-1: + %2i:017777777777:1:2:1: + %*2i:017777777777:0:2: +-# BZ12701 %2i:0B1111111111111111111111111111111:0:-1: +-# BZ12701 %*2i:0B1111111111111111111111111111111:0:-1: +-# BZ12701 %2i:0b1111111111111111111111111111111:0:-1: +-# BZ12701 %*2i:0b1111111111111111111111111111111:0:-1: + %2i:2147483648:1:2:21: + %*2i:2147483648:0:2: + # BZ12701 %2i:0X80000000:0:-1: +@@ -564,10 +380,6 @@ + # BZ12701 %*2i:0x80000000:0:-1: + %2i:020000000000:1:2:2: + %*2i:020000000000:0:2: +-# BZ12701 %2i:0B10000000000000000000000000000000:0:-1: +-# BZ12701 %*2i:0B10000000000000000000000000000000:0:-1: +-# BZ12701 %2i:0b10000000000000000000000000000000:0:-1: +-# BZ12701 %*2i:0b10000000000000000000000000000000:0:-1: + %2i:2147487889:1:2:21: + %*2i:2147487889:0:2: + # BZ12701 %2i:0X80001091:0:-1: +@@ -576,10 +388,6 @@ + # BZ12701 %*2i:0x80001091:0:-1: + %2i:020000010221:1:2:2: + %*2i:020000010221:0:2: +-# BZ12701 %2i:0B10000000000000000001000010010001:0:-1: +-# BZ12701 %*2i:0B10000000000000000001000010010001:0:-1: +-# BZ12701 %2i:0b10000000000000000001000010010001:0:-1: +-# BZ12701 %*2i:0b10000000000000000001000010010001:0:-1: + %2i:+0:1:2:0: + %*2i:+0:0:2: + %2i:+0X0:1:2:0: +@@ -588,10 +396,6 @@ + %*2i:+0x0:0:2: + %2i:+00:1:2:0: + %*2i:+00:0:2: +-%2i:+0B0:1:2:0: +-%*2i:+0B0:0:2: +-%2i:+0b0:1:2:0: +-%*2i:+0b0:0:2: + %2i:+1:1:2:1: + %*2i:+1:0:2: + %2i:+0X1:1:2:0: +@@ -600,10 +404,6 @@ + %*2i:+0x1:0:2: + %2i:+01:1:2:0: + %*2i:+01:0:2: +-%2i:+0B1:1:2:0: +-%*2i:+0B1:0:2: +-%2i:+0b1:1:2:0: +-%*2i:+0b1:0:2: + %2i:+42:1:2:4: + %*2i:+42:0:2: + %2i:+0X2a:1:2:0: +@@ -612,10 +412,6 @@ + %*2i:+0x2A:0:2: + %2i:+052:1:2:0: + %*2i:+052:0:2: +-%2i:+0B101010:1:2:0: +-%*2i:+0B101010:0:2: +-%2i:+0b101010:1:2:0: +-%*2i:+0b101010:0:2: + %2i:+2147483647:1:2:2: + %*2i:+2147483647:0:2: + %2i:+0X7fffffff:1:2:0: +@@ -624,10 +420,6 @@ + %*2i:+0x7FFFFFFF:0:2: + %2i:+017777777777:1:2:0: + %*2i:+017777777777:0:2: +-%2i:+0B1111111111111111111111111111111:1:2:0: +-%*2i:+0B1111111111111111111111111111111:0:2: +-%2i:+0b1111111111111111111111111111111:1:2:0: +-%*2i:+0b1111111111111111111111111111111:0:2: + %2i:+2147483648:1:2:2: + %*2i:+2147483648:0:2: + %2i:+0X80000000:1:2:0: +@@ -636,10 +428,6 @@ + %*2i:+0x80000000:0:2: + %2i:+020000000000:1:2:0: + %*2i:+020000000000:0:2: +-%2i:+0B10000000000000000000000000000000:1:2:0: +-%*2i:+0B10000000000000000000000000000000:0:2: +-%2i:+0b10000000000000000000000000000000:1:2:0: +-%*2i:+0b10000000000000000000000000000000:0:2: + %2i:+2147487889:1:2:2: + %*2i:+2147487889:0:2: + %2i:+0X80001091:1:2:0: +@@ -648,10 +436,6 @@ + %*2i:+0x80001091:0:2: + %2i:+020000010221:1:2:0: + %*2i:+020000010221:0:2: +-%2i:+0B10000000000000000001000010010001:1:2:0: +-%*2i:+0B10000000000000000001000010010001:0:2: +-%2i:+0b10000000000000000001000010010001:1:2:0: +-%*2i:+0b10000000000000000001000010010001:0:2: + %8i::0:-1: + %*8i::0:-1: + %8i:-2147484882:1:8:-2147484: +@@ -662,10 +446,6 @@ + %*8i:-0x800004D2:0:8: + %8i:-020000002322:1:8:-65536: + %*8i:-020000002322:0:8: +-%8i:-0B10000000000000000000010011010010:1:8:-16: +-%*8i:-0B10000000000000000000010011010010:0:8: +-%8i:-0b10000000000000000000010011010010:1:8:-16: +-%*8i:-0b10000000000000000000010011010010:0:8: + %8i:-2147483649:1:8:-2147483: + %*8i:-2147483649:0:8: + %8i:-0X80000001:1:8:-524288: +@@ -674,10 +454,6 @@ + %*8i:-0x80000001:0:8: + %8i:-020000000001:1:8:-65536: + %*8i:-020000000001:0:8: +-%8i:-0B10000000000000000000000000000001:1:8:-16: +-%*8i:-0B10000000000000000000000000000001:0:8: +-%8i:-0b10000000000000000000000000000001:1:8:-16: +-%*8i:-0b10000000000000000000000000000001:0:8: + %8i:-2147483648:1:8:-2147483: + %*8i:-2147483648:0:8: + %8i:-0X80000000:1:8:-524288: +@@ -686,10 +462,6 @@ + %*8i:-0x80000000:0:8: + %8i:-020000000000:1:8:-65536: + %*8i:-020000000000:0:8: +-%8i:-0B10000000000000000000000000000000:1:8:-16: +-%*8i:-0B10000000000000000000000000000000:0:8: +-%8i:-0b10000000000000000000000000000000:1:8:-16: +-%*8i:-0b10000000000000000000000000000000:0:8: + %8i:-123:1:4:-123: + %*8i:-123:0:4: + %8i:-0X7b:1:5:-123: +@@ -698,10 +470,6 @@ + %*8i:-0x7B:0:5: + %8i:-0173:1:5:-123: + %*8i:-0173:0:5: +-%8i:-0B1111011:1:8:-30: +-%*8i:-0B1111011:0:8: +-%8i:-0b1111011:1:8:-30: +-%*8i:-0b1111011:0:8: + %8i:-1:1:2:-1: + %*8i:-1:0:2: + %8i:-0X1:1:4:-1: +@@ -710,10 +478,6 @@ + %*8i:-0x1:0:4: + %8i:-01:1:3:-1: + %*8i:-01:0:3: +-%8i:-0B1:1:4:-1: +-%*8i:-0B1:0:4: +-%8i:-0b1:1:4:-1: +-%*8i:-0b1:0:4: + %8i:-0:1:2:0: + %*8i:-0:0:2: + %8i:-0X0:1:4:0: +@@ -722,10 +486,6 @@ + %*8i:-0x0:0:4: + %8i:-00:1:3:0: + %*8i:-00:0:3: +-%8i:-0B0:1:4:0: +-%*8i:-0B0:0:4: +-%8i:-0b0:1:4:0: +-%*8i:-0b0:0:4: + %8i:0:1:1:0: + %*8i:0:0:1: + %8i:0X0:1:3:0: +@@ -734,10 +494,6 @@ + %*8i:0x0:0:3: + %8i:00:1:2:0: + %*8i:00:0:2: +-%8i:0B0:1:3:0: +-%*8i:0B0:0:3: +-%8i:0b0:1:3:0: +-%*8i:0b0:0:3: + %8i:1:1:1:1: + %*8i:1:0:1: + %8i:0X1:1:3:1: +@@ -746,10 +502,6 @@ + %*8i:0x1:0:3: + %8i:01:1:2:1: + %*8i:01:0:2: +-%8i:0B1:1:3:1: +-%*8i:0B1:0:3: +-%8i:0b1:1:3:1: +-%*8i:0b1:0:3: + %8i:42:1:2:42: + %*8i:42:0:2: + %8i:0X2a:1:4:42: +@@ -758,10 +510,6 @@ + %*8i:0x2A:0:4: + %8i:052:1:3:42: + %*8i:052:0:3: +-%8i:0B101010:1:8:42: +-%*8i:0B101010:0:8: +-%8i:0b101010:1:8:42: +-%*8i:0b101010:0:8: + %8i:2147483647:1:8:21474836: + %*8i:2147483647:0:8: + %8i:0X7fffffff:1:8:8388607: +@@ -770,10 +518,6 @@ + %*8i:0x7FFFFFFF:0:8: + %8i:017777777777:1:8:524287: + %*8i:017777777777:0:8: +-%8i:0B1111111111111111111111111111111:1:8:63: +-%*8i:0B1111111111111111111111111111111:0:8: +-%8i:0b1111111111111111111111111111111:1:8:63: +-%*8i:0b1111111111111111111111111111111:0:8: + %8i:2147483648:1:8:21474836: + %*8i:2147483648:0:8: + %8i:0X80000000:1:8:8388608: +@@ -782,10 +526,6 @@ + %*8i:0x80000000:0:8: + %8i:020000000000:1:8:524288: + %*8i:020000000000:0:8: +-%8i:0B10000000000000000000000000000000:1:8:32: +-%*8i:0B10000000000000000000000000000000:0:8: +-%8i:0b10000000000000000000000000000000:1:8:32: +-%*8i:0b10000000000000000000000000000000:0:8: + %8i:2147487889:1:8:21474878: + %*8i:2147487889:0:8: + %8i:0X80001091:1:8:8388624: +@@ -794,10 +534,6 @@ + %*8i:0x80001091:0:8: + %8i:020000010221:1:8:524289: + %*8i:020000010221:0:8: +-%8i:0B10000000000000000001000010010001:1:8:32: +-%*8i:0B10000000000000000001000010010001:0:8: +-%8i:0b10000000000000000001000010010001:1:8:32: +-%*8i:0b10000000000000000001000010010001:0:8: + %8i:+0:1:2:0: + %*8i:+0:0:2: + %8i:+0X0:1:4:0: +@@ -806,10 +542,6 @@ + %*8i:+0x0:0:4: + %8i:+00:1:3:0: + %*8i:+00:0:3: +-%8i:+0B0:1:4:0: +-%*8i:+0B0:0:4: +-%8i:+0b0:1:4:0: +-%*8i:+0b0:0:4: + %8i:+1:1:2:1: + %*8i:+1:0:2: + %8i:+0X1:1:4:1: +@@ -818,10 +550,6 @@ + %*8i:+0x1:0:4: + %8i:+01:1:3:1: + %*8i:+01:0:3: +-%8i:+0B1:1:4:1: +-%*8i:+0B1:0:4: +-%8i:+0b1:1:4:1: +-%*8i:+0b1:0:4: + %8i:+42:1:3:42: + %*8i:+42:0:3: + %8i:+0X2a:1:5:42: +@@ -830,10 +558,6 @@ + %*8i:+0x2A:0:5: + %8i:+052:1:4:42: + %*8i:+052:0:4: +-%8i:+0B101010:1:8:21: +-%*8i:+0B101010:0:8: +-%8i:+0b101010:1:8:21: +-%*8i:+0b101010:0:8: + %8i:+2147483647:1:8:2147483: + %*8i:+2147483647:0:8: + %8i:+0X7fffffff:1:8:524287: +@@ -842,10 +566,6 @@ + %*8i:+0x7FFFFFFF:0:8: + %8i:+017777777777:1:8:65535: + %*8i:+017777777777:0:8: +-%8i:+0B1111111111111111111111111111111:1:8:31: +-%*8i:+0B1111111111111111111111111111111:0:8: +-%8i:+0b1111111111111111111111111111111:1:8:31: +-%*8i:+0b1111111111111111111111111111111:0:8: + %8i:+2147483648:1:8:2147483: + %*8i:+2147483648:0:8: + %8i:+0X80000000:1:8:524288: +@@ -854,10 +574,6 @@ + %*8i:+0x80000000:0:8: + %8i:+020000000000:1:8:65536: + %*8i:+020000000000:0:8: +-%8i:+0B10000000000000000000000000000000:1:8:16: +-%*8i:+0B10000000000000000000000000000000:0:8: +-%8i:+0b10000000000000000000000000000000:1:8:16: +-%*8i:+0b10000000000000000000000000000000:0:8: + %8i:+2147487889:1:8:2147487: + %*8i:+2147487889:0:8: + %8i:+0X80001091:1:8:524289: +@@ -866,10 +582,6 @@ + %*8i:+0x80001091:0:8: + %8i:+020000010221:1:8:65536: + %*8i:+020000010221:0:8: +-%8i:+0B10000000000000000001000010010001:1:8:16: +-%*8i:+0B10000000000000000001000010010001:0:8: +-%8i:+0b10000000000000000001000010010001:1:8:16: +-%*8i:+0b10000000000000000001000010010001:0:8: + %15i::0:-1: + %*15i::0:-1: + %15i:-2147484882:1:11:-2147483648: +@@ -880,10 +592,6 @@ + %*15i:-0x800004D2:0:11: + %15i:-020000002322:1:13:-2147483648: + %*15i:-020000002322:0:13: +-%15i:-0B10000000000000000000010011010010:1:15:-2048: +-%*15i:-0B10000000000000000000010011010010:0:15: +-%15i:-0b10000000000000000000010011010010:1:15:-2048: +-%*15i:-0b10000000000000000000010011010010:0:15: + %15i:-2147483649:1:11:-2147483648: + %*15i:-2147483649:0:11: + %15i:-0X80000001:1:11:-2147483648: +@@ -892,10 +600,6 @@ + %*15i:-0x80000001:0:11: + %15i:-020000000001:1:13:-2147483648: + %*15i:-020000000001:0:13: +-%15i:-0B10000000000000000000000000000001:1:15:-2048: +-%*15i:-0B10000000000000000000000000000001:0:15: +-%15i:-0b10000000000000000000000000000001:1:15:-2048: +-%*15i:-0b10000000000000000000000000000001:0:15: + %15i:-2147483648:1:11:-2147483648: + %*15i:-2147483648:0:11: + %15i:-0X80000000:1:11:-2147483648: +@@ -904,10 +608,6 @@ + %*15i:-0x80000000:0:11: + %15i:-020000000000:1:13:-2147483648: + %*15i:-020000000000:0:13: +-%15i:-0B10000000000000000000000000000000:1:15:-2048: +-%*15i:-0B10000000000000000000000000000000:0:15: +-%15i:-0b10000000000000000000000000000000:1:15:-2048: +-%*15i:-0b10000000000000000000000000000000:0:15: + %15i:-123:1:4:-123: + %*15i:-123:0:4: + %15i:-0X7b:1:5:-123: +@@ -916,10 +616,6 @@ + %*15i:-0x7B:0:5: + %15i:-0173:1:5:-123: + %*15i:-0173:0:5: +-%15i:-0B1111011:1:10:-123: +-%*15i:-0B1111011:0:10: +-%15i:-0b1111011:1:10:-123: +-%*15i:-0b1111011:0:10: + %15i:-1:1:2:-1: + %*15i:-1:0:2: + %15i:-0X1:1:4:-1: +@@ -928,10 +624,6 @@ + %*15i:-0x1:0:4: + %15i:-01:1:3:-1: + %*15i:-01:0:3: +-%15i:-0B1:1:4:-1: +-%*15i:-0B1:0:4: +-%15i:-0b1:1:4:-1: +-%*15i:-0b1:0:4: + %15i:-0:1:2:0: + %*15i:-0:0:2: + %15i:-0X0:1:4:0: +@@ -940,10 +632,6 @@ + %*15i:-0x0:0:4: + %15i:-00:1:3:0: + %*15i:-00:0:3: +-%15i:-0B0:1:4:0: +-%*15i:-0B0:0:4: +-%15i:-0b0:1:4:0: +-%*15i:-0b0:0:4: + %15i:0:1:1:0: + %*15i:0:0:1: + %15i:0X0:1:3:0: +@@ -952,10 +640,6 @@ + %*15i:0x0:0:3: + %15i:00:1:2:0: + %*15i:00:0:2: +-%15i:0B0:1:3:0: +-%*15i:0B0:0:3: +-%15i:0b0:1:3:0: +-%*15i:0b0:0:3: + %15i:1:1:1:1: + %*15i:1:0:1: + %15i:0X1:1:3:1: +@@ -964,10 +648,6 @@ + %*15i:0x1:0:3: + %15i:01:1:2:1: + %*15i:01:0:2: +-%15i:0B1:1:3:1: +-%*15i:0B1:0:3: +-%15i:0b1:1:3:1: +-%*15i:0b1:0:3: + %15i:42:1:2:42: + %*15i:42:0:2: + %15i:0X2a:1:4:42: +@@ -976,10 +656,6 @@ + %*15i:0x2A:0:4: + %15i:052:1:3:42: + %*15i:052:0:3: +-%15i:0B101010:1:8:42: +-%*15i:0B101010:0:8: +-%15i:0b101010:1:8:42: +-%*15i:0b101010:0:8: + %15i:2147483647:1:10:2147483647: + %*15i:2147483647:0:10: + %15i:0X7fffffff:1:10:2147483647: +@@ -988,10 +664,6 @@ + %*15i:0x7FFFFFFF:0:10: + %15i:017777777777:1:12:2147483647: + %*15i:017777777777:0:12: +-%15i:0B1111111111111111111111111111111:1:15:8191: +-%*15i:0B1111111111111111111111111111111:0:15: +-%15i:0b1111111111111111111111111111111:1:15:8191: +-%*15i:0b1111111111111111111111111111111:0:15: + %15i:2147483648:1:10:2147483647: + %*15i:2147483648:0:10: + %15i:0X80000000:1:10:2147483647: +@@ -1000,10 +672,6 @@ + %*15i:0x80000000:0:10: + %15i:020000000000:1:12:2147483647: + %*15i:020000000000:0:12: +-%15i:0B10000000000000000000000000000000:1:15:4096: +-%*15i:0B10000000000000000000000000000000:0:15: +-%15i:0b10000000000000000000000000000000:1:15:4096: +-%*15i:0b10000000000000000000000000000000:0:15: + %15i:2147487889:1:10:2147483647: + %*15i:2147487889:0:10: + %15i:0X80001091:1:10:2147483647: +@@ -1012,10 +680,6 @@ + %*15i:0x80001091:0:10: + %15i:020000010221:1:12:2147483647: + %*15i:020000010221:0:12: +-%15i:0B10000000000000000001000010010001:1:15:4096: +-%*15i:0B10000000000000000001000010010001:0:15: +-%15i:0b10000000000000000001000010010001:1:15:4096: +-%*15i:0b10000000000000000001000010010001:0:15: + %15i:+0:1:2:0: + %*15i:+0:0:2: + %15i:+0X0:1:4:0: +@@ -1024,10 +688,6 @@ + %*15i:+0x0:0:4: + %15i:+00:1:3:0: + %*15i:+00:0:3: +-%15i:+0B0:1:4:0: +-%*15i:+0B0:0:4: +-%15i:+0b0:1:4:0: +-%*15i:+0b0:0:4: + %15i:+1:1:2:1: + %*15i:+1:0:2: + %15i:+0X1:1:4:1: +@@ -1036,10 +696,6 @@ + %*15i:+0x1:0:4: + %15i:+01:1:3:1: + %*15i:+01:0:3: +-%15i:+0B1:1:4:1: +-%*15i:+0B1:0:4: +-%15i:+0b1:1:4:1: +-%*15i:+0b1:0:4: + %15i:+42:1:3:42: + %*15i:+42:0:3: + %15i:+0X2a:1:5:42: +@@ -1048,10 +704,6 @@ + %*15i:+0x2A:0:5: + %15i:+052:1:4:42: + %*15i:+052:0:4: +-%15i:+0B101010:1:9:42: +-%*15i:+0B101010:0:9: +-%15i:+0b101010:1:9:42: +-%*15i:+0b101010:0:9: + %15i:+2147483647:1:11:2147483647: + %*15i:+2147483647:0:11: + %15i:+0X7fffffff:1:11:2147483647: +@@ -1060,10 +712,6 @@ + %*15i:+0x7FFFFFFF:0:11: + %15i:+017777777777:1:13:2147483647: + %*15i:+017777777777:0:13: +-%15i:+0B1111111111111111111111111111111:1:15:4095: +-%*15i:+0B1111111111111111111111111111111:0:15: +-%15i:+0b1111111111111111111111111111111:1:15:4095: +-%*15i:+0b1111111111111111111111111111111:0:15: + %15i:+2147483648:1:11:2147483647: + %*15i:+2147483648:0:11: + %15i:+0X80000000:1:11:2147483647: +@@ -1072,10 +720,6 @@ + %*15i:+0x80000000:0:11: + %15i:+020000000000:1:13:2147483647: + %*15i:+020000000000:0:13: +-%15i:+0B10000000000000000000000000000000:1:15:2048: +-%*15i:+0B10000000000000000000000000000000:0:15: +-%15i:+0b10000000000000000000000000000000:1:15:2048: +-%*15i:+0b10000000000000000000000000000000:0:15: + %15i:+2147487889:1:11:2147483647: + %*15i:+2147487889:0:11: + %15i:+0X80001091:1:11:2147483647: +@@ -1084,10 +728,6 @@ + %*15i:+0x80001091:0:11: + %15i:+020000010221:1:13:2147483647: + %*15i:+020000010221:0:13: +-%15i:+0B10000000000000000001000010010001:1:15:2048: +-%*15i:+0B10000000000000000001000010010001:0:15: +-%15i:+0b10000000000000000001000010010001:1:15:2048: +-%*15i:+0b10000000000000000001000010010001:0:15: + %2i: :0:-1: + %*2i: :0:-1: + %2i: -2147484882:1:3:-2: +@@ -1098,10 +738,6 @@ + %*2i: -0x800004D2:0:3: + %2i: -020000002322:1:3:0: + %*2i: -020000002322:0:3: +-%2i: -0B10000000000000000000010011010010:1:3:0: +-%*2i: -0B10000000000000000000010011010010:0:3: +-%2i: -0b10000000000000000000010011010010:1:3:0: +-%*2i: -0b10000000000000000000010011010010:0:3: + %2i: -2147483649:1:3:-2: + %*2i: -2147483649:0:3: + %2i: -0X80000001:1:3:0: +@@ -1110,10 +746,6 @@ + %*2i: -0x80000001:0:3: + %2i: -020000000001:1:3:0: + %*2i: -020000000001:0:3: +-%2i: -0B10000000000000000000000000000001:1:3:0: +-%*2i: -0B10000000000000000000000000000001:0:3: +-%2i: -0b10000000000000000000000000000001:1:3:0: +-%*2i: -0b10000000000000000000000000000001:0:3: + %2i: -2147483648:1:3:-2: + %*2i: -2147483648:0:3: + %2i: -0X80000000:1:3:0: +@@ -1122,10 +754,6 @@ + %*2i: -0x80000000:0:3: + %2i: -020000000000:1:3:0: + %*2i: -020000000000:0:3: +-%2i: -0B10000000000000000000000000000000:1:3:0: +-%*2i: -0B10000000000000000000000000000000:0:3: +-%2i: -0b10000000000000000000000000000000:1:3:0: +-%*2i: -0b10000000000000000000000000000000:0:3: + %2i: -123:1:3:-1: + %*2i: -123:0:3: + %2i: -0X7b:1:3:0: +@@ -1134,10 +762,6 @@ + %*2i: -0x7B:0:3: + %2i: -0173:1:3:0: + %*2i: -0173:0:3: +-%2i: -0B1111011:1:3:0: +-%*2i: -0B1111011:0:3: +-%2i: -0b1111011:1:3:0: +-%*2i: -0b1111011:0:3: + %2i: -1:1:3:-1: + %*2i: -1:0:3: + %2i: -0X1:1:3:0: +@@ -1146,10 +770,6 @@ + %*2i: -0x1:0:3: + %2i: -01:1:3:0: + %*2i: -01:0:3: +-%2i: -0B1:1:3:0: +-%*2i: -0B1:0:3: +-%2i: -0b1:1:3:0: +-%*2i: -0b1:0:3: + %2i: -0:1:3:0: + %*2i: -0:0:3: + %2i: -0X0:1:3:0: +@@ -1158,10 +778,6 @@ + %*2i: -0x0:0:3: + %2i: -00:1:3:0: + %*2i: -00:0:3: +-%2i: -0B0:1:3:0: +-%*2i: -0B0:0:3: +-%2i: -0b0:1:3:0: +-%*2i: -0b0:0:3: + %2i: 0:1:2:0: + %*2i: 0:0:2: + # BZ12701 %2i: 0X0:0:-1: +@@ -1170,10 +786,6 @@ + # BZ12701 %*2i: 0x0:0:-1: + %2i: 00:1:3:0: + %*2i: 00:0:3: +-# BZ12701 %2i: 0B0:0:-1: +-# BZ12701 %*2i: 0B0:0:-1: +-# BZ12701 %2i: 0b0:0:-1: +-# BZ12701 %*2i: 0b0:0:-1: + %2i: 1:1:2:1: + %*2i: 1:0:2: + # BZ12701 %2i: 0X1:0:-1: +@@ -1182,10 +794,6 @@ + # BZ12701 %*2i: 0x1:0:-1: + %2i: 01:1:3:1: + %*2i: 01:0:3: +-# BZ12701 %2i: 0B1:0:-1: +-# BZ12701 %*2i: 0B1:0:-1: +-# BZ12701 %2i: 0b1:0:-1: +-# BZ12701 %*2i: 0b1:0:-1: + %2i: 42:1:3:42: + %*2i: 42:0:3: + # BZ12701 %2i: 0X2a:0:-1: +@@ -1194,10 +802,6 @@ + # BZ12701 %*2i: 0x2A:0:-1: + %2i: 052:1:3:5: + %*2i: 052:0:3: +-# BZ12701 %2i: 0B101010:0:-1: +-# BZ12701 %*2i: 0B101010:0:-1: +-# BZ12701 %2i: 0b101010:0:-1: +-# BZ12701 %*2i: 0b101010:0:-1: + %2i: 2147483647:1:3:21: + %*2i: 2147483647:0:3: + # BZ12701 %2i: 0X7fffffff:0:-1: +@@ -1206,10 +810,6 @@ + # BZ12701 %*2i: 0x7FFFFFFF:0:-1: + %2i: 017777777777:1:3:1: + %*2i: 017777777777:0:3: +-# BZ12701 %2i: 0B1111111111111111111111111111111:0:-1: +-# BZ12701 %*2i: 0B1111111111111111111111111111111:0:-1: +-# BZ12701 %2i: 0b1111111111111111111111111111111:0:-1: +-# BZ12701 %*2i: 0b1111111111111111111111111111111:0:-1: + %2i: 2147483648:1:3:21: + %*2i: 2147483648:0:3: + # BZ12701 %2i: 0X80000000:0:-1: +@@ -1218,10 +818,6 @@ + # BZ12701 %*2i: 0x80000000:0:-1: + %2i: 020000000000:1:3:2: + %*2i: 020000000000:0:3: +-# BZ12701 %2i: 0B10000000000000000000000000000000:0:-1: +-# BZ12701 %*2i: 0B10000000000000000000000000000000:0:-1: +-# BZ12701 %2i: 0b10000000000000000000000000000000:0:-1: +-# BZ12701 %*2i: 0b10000000000000000000000000000000:0:-1: + %2i: 2147487889:1:3:21: + %*2i: 2147487889:0:3: + # BZ12701 %2i: 0X80001091:0:-1: +@@ -1230,10 +826,6 @@ + # BZ12701 %*2i: 0x80001091:0:-1: + %2i: 020000010221:1:3:2: + %*2i: 020000010221:0:3: +-# BZ12701 %2i: 0B10000000000000000001000010010001:0:-1: +-# BZ12701 %*2i: 0B10000000000000000001000010010001:0:-1: +-# BZ12701 %2i: 0b10000000000000000001000010010001:0:-1: +-# BZ12701 %*2i: 0b10000000000000000001000010010001:0:-1: + %2i: +0:1:3:0: + %*2i: +0:0:3: + %2i: +0X0:1:3:0: +@@ -1242,10 +834,6 @@ + %*2i: +0x0:0:3: + %2i: +00:1:3:0: + %*2i: +00:0:3: +-%2i: +0B0:1:3:0: +-%*2i: +0B0:0:3: +-%2i: +0b0:1:3:0: +-%*2i: +0b0:0:3: + %2i: +1:1:3:1: + %*2i: +1:0:3: + %2i: +0X1:1:3:0: +@@ -1254,10 +842,6 @@ + %*2i: +0x1:0:3: + %2i: +01:1:3:0: + %*2i: +01:0:3: +-%2i: +0B1:1:3:0: +-%*2i: +0B1:0:3: +-%2i: +0b1:1:3:0: +-%*2i: +0b1:0:3: + %2i: +42:1:3:4: + %*2i: +42:0:3: + %2i: +0X2a:1:3:0: +@@ -1266,10 +850,6 @@ + %*2i: +0x2A:0:3: + %2i: +052:1:3:0: + %*2i: +052:0:3: +-%2i: +0B101010:1:3:0: +-%*2i: +0B101010:0:3: +-%2i: +0b101010:1:3:0: +-%*2i: +0b101010:0:3: + %2i: +2147483647:1:3:2: + %*2i: +2147483647:0:3: + %2i: +0X7fffffff:1:3:0: +@@ -1278,10 +858,6 @@ + %*2i: +0x7FFFFFFF:0:3: + %2i: +017777777777:1:3:0: + %*2i: +017777777777:0:3: +-%2i: +0B1111111111111111111111111111111:1:3:0: +-%*2i: +0B1111111111111111111111111111111:0:3: +-%2i: +0b1111111111111111111111111111111:1:3:0: +-%*2i: +0b1111111111111111111111111111111:0:3: + %2i: +2147483648:1:3:2: + %*2i: +2147483648:0:3: + %2i: +0X80000000:1:3:0: +@@ -1290,10 +866,6 @@ + %*2i: +0x80000000:0:3: + %2i: +020000000000:1:3:0: + %*2i: +020000000000:0:3: +-%2i: +0B10000000000000000000000000000000:1:3:0: +-%*2i: +0B10000000000000000000000000000000:0:3: +-%2i: +0b10000000000000000000000000000000:1:3:0: +-%*2i: +0b10000000000000000000000000000000:0:3: + %2i: +2147487889:1:3:2: + %*2i: +2147487889:0:3: + %2i: +0X80001091:1:3:0: +@@ -1302,10 +874,6 @@ + %*2i: +0x80001091:0:3: + %2i: +020000010221:1:3:0: + %*2i: +020000010221:0:3: +-%2i: +0B10000000000000000001000010010001:1:3:0: +-%*2i: +0B10000000000000000001000010010001:0:3: +-%2i: +0b10000000000000000001000010010001:1:3:0: +-%*2i: +0b10000000000000000001000010010001:0:3: + %15i: :0:-1: + %*15i: :0:-1: + %15i: -2147484882:1:12:-2147483648: +@@ -1316,10 +884,6 @@ + %*15i: -0x800004D2:0:12: + %15i: -020000002322:1:14:-2147483648: + %*15i: -020000002322:0:14: +-%15i: -0B10000000000000000000010011010010:1:16:-2048: +-%*15i: -0B10000000000000000000010011010010:0:16: +-%15i: -0b10000000000000000000010011010010:1:16:-2048: +-%*15i: -0b10000000000000000000010011010010:0:16: + %15i: -2147483649:1:12:-2147483648: + %*15i: -2147483649:0:12: + %15i: -0X80000001:1:12:-2147483648: +@@ -1328,10 +892,6 @@ + %*15i: -0x80000001:0:12: + %15i: -020000000001:1:14:-2147483648: + %*15i: -020000000001:0:14: +-%15i: -0B10000000000000000000000000000001:1:16:-2048: +-%*15i: -0B10000000000000000000000000000001:0:16: +-%15i: -0b10000000000000000000000000000001:1:16:-2048: +-%*15i: -0b10000000000000000000000000000001:0:16: + %15i: -2147483648:1:12:-2147483648: + %*15i: -2147483648:0:12: + %15i: -0X80000000:1:12:-2147483648: +@@ -1340,10 +900,6 @@ + %*15i: -0x80000000:0:12: + %15i: -020000000000:1:14:-2147483648: + %*15i: -020000000000:0:14: +-%15i: -0B10000000000000000000000000000000:1:16:-2048: +-%*15i: -0B10000000000000000000000000000000:0:16: +-%15i: -0b10000000000000000000000000000000:1:16:-2048: +-%*15i: -0b10000000000000000000000000000000:0:16: + %15i: -123:1:5:-123: + %*15i: -123:0:5: + %15i: -0X7b:1:6:-123: +@@ -1352,10 +908,6 @@ + %*15i: -0x7B:0:6: + %15i: -0173:1:6:-123: + %*15i: -0173:0:6: +-%15i: -0B1111011:1:11:-123: +-%*15i: -0B1111011:0:11: +-%15i: -0b1111011:1:11:-123: +-%*15i: -0b1111011:0:11: + %15i: -1:1:3:-1: + %*15i: -1:0:3: + %15i: -0X1:1:5:-1: +@@ -1364,10 +916,6 @@ + %*15i: -0x1:0:5: + %15i: -01:1:4:-1: + %*15i: -01:0:4: +-%15i: -0B1:1:5:-1: +-%*15i: -0B1:0:5: +-%15i: -0b1:1:5:-1: +-%*15i: -0b1:0:5: + %15i: -0:1:3:0: + %*15i: -0:0:3: + %15i: -0X0:1:5:0: +@@ -1376,10 +924,6 @@ + %*15i: -0x0:0:5: + %15i: -00:1:4:0: + %*15i: -00:0:4: +-%15i: -0B0:1:5:0: +-%*15i: -0B0:0:5: +-%15i: -0b0:1:5:0: +-%*15i: -0b0:0:5: + %15i: 0:1:2:0: + %*15i: 0:0:2: + %15i: 0X0:1:4:0: +@@ -1388,10 +932,6 @@ + %*15i: 0x0:0:4: + %15i: 00:1:3:0: + %*15i: 00:0:3: +-%15i: 0B0:1:4:0: +-%*15i: 0B0:0:4: +-%15i: 0b0:1:4:0: +-%*15i: 0b0:0:4: + %15i: 1:1:2:1: + %*15i: 1:0:2: + %15i: 0X1:1:4:1: +@@ -1400,10 +940,6 @@ + %*15i: 0x1:0:4: + %15i: 01:1:3:1: + %*15i: 01:0:3: +-%15i: 0B1:1:4:1: +-%*15i: 0B1:0:4: +-%15i: 0b1:1:4:1: +-%*15i: 0b1:0:4: + %15i: 42:1:3:42: + %*15i: 42:0:3: + %15i: 0X2a:1:5:42: +@@ -1412,10 +948,6 @@ + %*15i: 0x2A:0:5: + %15i: 052:1:4:42: + %*15i: 052:0:4: +-%15i: 0B101010:1:9:42: +-%*15i: 0B101010:0:9: +-%15i: 0b101010:1:9:42: +-%*15i: 0b101010:0:9: + %15i: 2147483647:1:11:2147483647: + %*15i: 2147483647:0:11: + %15i: 0X7fffffff:1:11:2147483647: +@@ -1424,10 +956,6 @@ + %*15i: 0x7FFFFFFF:0:11: + %15i: 017777777777:1:13:2147483647: + %*15i: 017777777777:0:13: +-%15i: 0B1111111111111111111111111111111:1:16:8191: +-%*15i: 0B1111111111111111111111111111111:0:16: +-%15i: 0b1111111111111111111111111111111:1:16:8191: +-%*15i: 0b1111111111111111111111111111111:0:16: + %15i: 2147483648:1:11:2147483647: + %*15i: 2147483648:0:11: + %15i: 0X80000000:1:11:2147483647: +@@ -1436,10 +964,6 @@ + %*15i: 0x80000000:0:11: + %15i: 020000000000:1:13:2147483647: + %*15i: 020000000000:0:13: +-%15i: 0B10000000000000000000000000000000:1:16:4096: +-%*15i: 0B10000000000000000000000000000000:0:16: +-%15i: 0b10000000000000000000000000000000:1:16:4096: +-%*15i: 0b10000000000000000000000000000000:0:16: + %15i: 2147487889:1:11:2147483647: + %*15i: 2147487889:0:11: + %15i: 0X80001091:1:11:2147483647: +@@ -1448,10 +972,6 @@ + %*15i: 0x80001091:0:11: + %15i: 020000010221:1:13:2147483647: + %*15i: 020000010221:0:13: +-%15i: 0B10000000000000000001000010010001:1:16:4096: +-%*15i: 0B10000000000000000001000010010001:0:16: +-%15i: 0b10000000000000000001000010010001:1:16:4096: +-%*15i: 0b10000000000000000001000010010001:0:16: + %15i: +0:1:3:0: + %*15i: +0:0:3: + %15i: +0X0:1:5:0: +@@ -1460,10 +980,6 @@ + %*15i: +0x0:0:5: + %15i: +00:1:4:0: + %*15i: +00:0:4: +-%15i: +0B0:1:5:0: +-%*15i: +0B0:0:5: +-%15i: +0b0:1:5:0: +-%*15i: +0b0:0:5: + %15i: +1:1:3:1: + %*15i: +1:0:3: + %15i: +0X1:1:5:1: +@@ -1472,10 +988,6 @@ + %*15i: +0x1:0:5: + %15i: +01:1:4:1: + %*15i: +01:0:4: +-%15i: +0B1:1:5:1: +-%*15i: +0B1:0:5: +-%15i: +0b1:1:5:1: +-%*15i: +0b1:0:5: + %15i: +42:1:4:42: + %*15i: +42:0:4: + %15i: +0X2a:1:6:42: +@@ -1484,10 +996,6 @@ + %*15i: +0x2A:0:6: + %15i: +052:1:5:42: + %*15i: +052:0:5: +-%15i: +0B101010:1:10:42: +-%*15i: +0B101010:0:10: +-%15i: +0b101010:1:10:42: +-%*15i: +0b101010:0:10: + %15i: +2147483647:1:12:2147483647: + %*15i: +2147483647:0:12: + %15i: +0X7fffffff:1:12:2147483647: +@@ -1496,10 +1004,6 @@ + %*15i: +0x7FFFFFFF:0:12: + %15i: +017777777777:1:14:2147483647: + %*15i: +017777777777:0:14: +-%15i: +0B1111111111111111111111111111111:1:16:4095: +-%*15i: +0B1111111111111111111111111111111:0:16: +-%15i: +0b1111111111111111111111111111111:1:16:4095: +-%*15i: +0b1111111111111111111111111111111:0:16: + %15i: +2147483648:1:12:2147483647: + %*15i: +2147483648:0:12: + %15i: +0X80000000:1:12:2147483647: +@@ -1508,10 +1012,6 @@ + %*15i: +0x80000000:0:12: + %15i: +020000000000:1:14:2147483647: + %*15i: +020000000000:0:14: +-%15i: +0B10000000000000000000000000000000:1:16:2048: +-%*15i: +0B10000000000000000000000000000000:0:16: +-%15i: +0b10000000000000000000000000000000:1:16:2048: +-%*15i: +0b10000000000000000000000000000000:0:16: + %15i: +2147487889:1:12:2147483647: + %*15i: +2147487889:0:12: + %15i: +0X80001091:1:12:2147483647: +@@ -1520,7 +1020,3 @@ + %*15i: +0x80001091:0:12: + %15i: +020000010221:1:14:2147483647: + %*15i: +020000010221:0:14: +-%15i: +0B10000000000000000001000010010001:1:16:2048: +-%*15i: +0B10000000000000000001000010010001:0:16: +-%15i: +0b10000000000000000001000010010001:1:16:2048: +-%*15i: +0b10000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-long-i.input b/sysdeps/wordsize-32/tst-scanf-format-long-i.input +index 37db25158a611d87..ad6221a6bbf600b7 100644 +--- a/sysdeps/wordsize-32/tst-scanf-format-long-i.input ++++ b/sysdeps/wordsize-32/tst-scanf-format-long-i.input +@@ -8,10 +8,6 @@ + %*li:-0x800004D2:0:11: + %li:-020000002322:1:13:-2147483648: + %*li:-020000002322:0:13: +-%li:-0B10000000000000000000010011010010:1:35:-2147483648: +-%*li:-0B10000000000000000000010011010010:0:35: +-%li:-0b10000000000000000000010011010010:1:35:-2147483648: +-%*li:-0b10000000000000000000010011010010:0:35: + %li:-2147483649:1:11:-2147483648: + %*li:-2147483649:0:11: + %li:-0X80000001:1:11:-2147483648: +@@ -20,10 +16,6 @@ + %*li:-0x80000001:0:11: + %li:-020000000001:1:13:-2147483648: + %*li:-020000000001:0:13: +-%li:-0B10000000000000000000000000000001:1:35:-2147483648: +-%*li:-0B10000000000000000000000000000001:0:35: +-%li:-0b10000000000000000000000000000001:1:35:-2147483648: +-%*li:-0b10000000000000000000000000000001:0:35: + %li:-2147483648:1:11:-2147483648: + %*li:-2147483648:0:11: + %li:-0X80000000:1:11:-2147483648: +@@ -32,10 +24,6 @@ + %*li:-0x80000000:0:11: + %li:-020000000000:1:13:-2147483648: + %*li:-020000000000:0:13: +-%li:-0B10000000000000000000000000000000:1:35:-2147483648: +-%*li:-0B10000000000000000000000000000000:0:35: +-%li:-0b10000000000000000000000000000000:1:35:-2147483648: +-%*li:-0b10000000000000000000000000000000:0:35: + %li:-123:1:4:-123: + %*li:-123:0:4: + %li:-0X7b:1:5:-123: +@@ -44,10 +32,6 @@ + %*li:-0x7B:0:5: + %li:-0173:1:5:-123: + %*li:-0173:0:5: +-%li:-0B1111011:1:10:-123: +-%*li:-0B1111011:0:10: +-%li:-0b1111011:1:10:-123: +-%*li:-0b1111011:0:10: + %li:-1:1:2:-1: + %*li:-1:0:2: + %li:-0X1:1:4:-1: +@@ -56,10 +40,6 @@ + %*li:-0x1:0:4: + %li:-01:1:3:-1: + %*li:-01:0:3: +-%li:-0B1:1:4:-1: +-%*li:-0B1:0:4: +-%li:-0b1:1:4:-1: +-%*li:-0b1:0:4: + %li:-0:1:2:0: + %*li:-0:0:2: + %li:-0X0:1:4:0: +@@ -68,10 +48,6 @@ + %*li:-0x0:0:4: + %li:-00:1:3:0: + %*li:-00:0:3: +-%li:-0B0:1:4:0: +-%*li:-0B0:0:4: +-%li:-0b0:1:4:0: +-%*li:-0b0:0:4: + %li:0:1:1:0: + %*li:0:0:1: + %li:0X0:1:3:0: +@@ -80,10 +56,6 @@ + %*li:0x0:0:3: + %li:00:1:2:0: + %*li:00:0:2: +-%li:0B0:1:3:0: +-%*li:0B0:0:3: +-%li:0b0:1:3:0: +-%*li:0b0:0:3: + %li:1:1:1:1: + %*li:1:0:1: + %li:0X1:1:3:1: +@@ -92,10 +64,6 @@ + %*li:0x1:0:3: + %li:01:1:2:1: + %*li:01:0:2: +-%li:0B1:1:3:1: +-%*li:0B1:0:3: +-%li:0b1:1:3:1: +-%*li:0b1:0:3: + %li:42:1:2:42: + %*li:42:0:2: + %li:0X2a:1:4:42: +@@ -104,10 +72,6 @@ + %*li:0x2A:0:4: + %li:052:1:3:42: + %*li:052:0:3: +-%li:0B101010:1:8:42: +-%*li:0B101010:0:8: +-%li:0b101010:1:8:42: +-%*li:0b101010:0:8: + %li:2147483647:1:10:2147483647: + %*li:2147483647:0:10: + %li:0X7fffffff:1:10:2147483647: +@@ -116,10 +80,6 @@ + %*li:0x7FFFFFFF:0:10: + %li:017777777777:1:12:2147483647: + %*li:017777777777:0:12: +-%li:0B1111111111111111111111111111111:1:33:2147483647: +-%*li:0B1111111111111111111111111111111:0:33: +-%li:0b1111111111111111111111111111111:1:33:2147483647: +-%*li:0b1111111111111111111111111111111:0:33: + %li:2147483648:1:10:2147483647: + %*li:2147483648:0:10: + %li:0X80000000:1:10:2147483647: +@@ -128,10 +88,6 @@ + %*li:0x80000000:0:10: + %li:020000000000:1:12:2147483647: + %*li:020000000000:0:12: +-%li:0B10000000000000000000000000000000:1:34:2147483647: +-%*li:0B10000000000000000000000000000000:0:34: +-%li:0b10000000000000000000000000000000:1:34:2147483647: +-%*li:0b10000000000000000000000000000000:0:34: + %li:2147487889:1:10:2147483647: + %*li:2147487889:0:10: + %li:0X80001091:1:10:2147483647: +@@ -140,10 +96,6 @@ + %*li:0x80001091:0:10: + %li:020000010221:1:12:2147483647: + %*li:020000010221:0:12: +-%li:0B10000000000000000001000010010001:1:34:2147483647: +-%*li:0B10000000000000000001000010010001:0:34: +-%li:0b10000000000000000001000010010001:1:34:2147483647: +-%*li:0b10000000000000000001000010010001:0:34: + %li:+0:1:2:0: + %*li:+0:0:2: + %li:+0X0:1:4:0: +@@ -152,10 +104,6 @@ + %*li:+0x0:0:4: + %li:+00:1:3:0: + %*li:+00:0:3: +-%li:+0B0:1:4:0: +-%*li:+0B0:0:4: +-%li:+0b0:1:4:0: +-%*li:+0b0:0:4: + %li:+1:1:2:1: + %*li:+1:0:2: + %li:+0X1:1:4:1: +@@ -164,10 +112,6 @@ + %*li:+0x1:0:4: + %li:+01:1:3:1: + %*li:+01:0:3: +-%li:+0B1:1:4:1: +-%*li:+0B1:0:4: +-%li:+0b1:1:4:1: +-%*li:+0b1:0:4: + %li:+42:1:3:42: + %*li:+42:0:3: + %li:+0X2a:1:5:42: +@@ -176,10 +120,6 @@ + %*li:+0x2A:0:5: + %li:+052:1:4:42: + %*li:+052:0:4: +-%li:+0B101010:1:9:42: +-%*li:+0B101010:0:9: +-%li:+0b101010:1:9:42: +-%*li:+0b101010:0:9: + %li:+2147483647:1:11:2147483647: + %*li:+2147483647:0:11: + %li:+0X7fffffff:1:11:2147483647: +@@ -188,10 +128,6 @@ + %*li:+0x7FFFFFFF:0:11: + %li:+017777777777:1:13:2147483647: + %*li:+017777777777:0:13: +-%li:+0B1111111111111111111111111111111:1:34:2147483647: +-%*li:+0B1111111111111111111111111111111:0:34: +-%li:+0b1111111111111111111111111111111:1:34:2147483647: +-%*li:+0b1111111111111111111111111111111:0:34: + %li:+2147483648:1:11:2147483647: + %*li:+2147483648:0:11: + %li:+0X80000000:1:11:2147483647: +@@ -200,10 +136,6 @@ + %*li:+0x80000000:0:11: + %li:+020000000000:1:13:2147483647: + %*li:+020000000000:0:13: +-%li:+0B10000000000000000000000000000000:1:35:2147483647: +-%*li:+0B10000000000000000000000000000000:0:35: +-%li:+0b10000000000000000000000000000000:1:35:2147483647: +-%*li:+0b10000000000000000000000000000000:0:35: + %li:+2147487889:1:11:2147483647: + %*li:+2147487889:0:11: + %li:+0X80001091:1:11:2147483647: +@@ -212,10 +144,6 @@ + %*li:+0x80001091:0:11: + %li:+020000010221:1:13:2147483647: + %*li:+020000010221:0:13: +-%li:+0B10000000000000000001000010010001:1:35:2147483647: +-%*li:+0B10000000000000000001000010010001:0:35: +-%li:+0b10000000000000000001000010010001:1:35:2147483647: +-%*li:+0b10000000000000000001000010010001:0:35: + %1li::0:-1: + %*1li::0:-1: + %1li:-2147484882:0:-1: +@@ -226,10 +154,6 @@ + %*1li:-0x800004D2:0:-1: + %1li:-020000002322:0:-1: + %*1li:-020000002322:0:-1: +-%1li:-0B10000000000000000000010011010010:0:-1: +-%*1li:-0B10000000000000000000010011010010:0:-1: +-%1li:-0b10000000000000000000010011010010:0:-1: +-%*1li:-0b10000000000000000000010011010010:0:-1: + %1li:-2147483649:0:-1: + %*1li:-2147483649:0:-1: + %1li:-0X80000001:0:-1: +@@ -238,10 +162,6 @@ + %*1li:-0x80000001:0:-1: + %1li:-020000000001:0:-1: + %*1li:-020000000001:0:-1: +-%1li:-0B10000000000000000000000000000001:0:-1: +-%*1li:-0B10000000000000000000000000000001:0:-1: +-%1li:-0b10000000000000000000000000000001:0:-1: +-%*1li:-0b10000000000000000000000000000001:0:-1: + %1li:-2147483648:0:-1: + %*1li:-2147483648:0:-1: + %1li:-0X80000000:0:-1: +@@ -250,10 +170,6 @@ + %*1li:-0x80000000:0:-1: + %1li:-020000000000:0:-1: + %*1li:-020000000000:0:-1: +-%1li:-0B10000000000000000000000000000000:0:-1: +-%*1li:-0B10000000000000000000000000000000:0:-1: +-%1li:-0b10000000000000000000000000000000:0:-1: +-%*1li:-0b10000000000000000000000000000000:0:-1: + %1li:-123:0:-1: + %*1li:-123:0:-1: + %1li:-0X7b:0:-1: +@@ -262,10 +178,6 @@ + %*1li:-0x7B:0:-1: + %1li:-0173:0:-1: + %*1li:-0173:0:-1: +-%1li:-0B1111011:0:-1: +-%*1li:-0B1111011:0:-1: +-%1li:-0b1111011:0:-1: +-%*1li:-0b1111011:0:-1: + %1li:-1:0:-1: + %*1li:-1:0:-1: + %1li:-0X1:0:-1: +@@ -274,10 +186,6 @@ + %*1li:-0x1:0:-1: + %1li:-01:0:-1: + %*1li:-01:0:-1: +-%1li:-0B1:0:-1: +-%*1li:-0B1:0:-1: +-%1li:-0b1:0:-1: +-%*1li:-0b1:0:-1: + %1li:-0:0:-1: + %*1li:-0:0:-1: + %1li:-0X0:0:-1: +@@ -286,10 +194,6 @@ + %*1li:-0x0:0:-1: + %1li:-00:0:-1: + %*1li:-00:0:-1: +-%1li:-0B0:0:-1: +-%*1li:-0B0:0:-1: +-%1li:-0b0:0:-1: +-%*1li:-0b0:0:-1: + %1li:0:1:1:0: + %*1li:0:0:1: + %1li:0X0:1:1:0: +@@ -298,10 +202,6 @@ + %*1li:0x0:0:1: + %1li:00:1:1:0: + %*1li:00:0:1: +-%1li:0B0:1:1:0: +-%*1li:0B0:0:1: +-%1li:0b0:1:1:0: +-%*1li:0b0:0:1: + %1li:1:1:1:1: + %*1li:1:0:1: + %1li:0X1:1:1:0: +@@ -310,10 +210,6 @@ + %*1li:0x1:0:1: + %1li:01:1:1:0: + %*1li:01:0:1: +-%1li:0B1:1:1:0: +-%*1li:0B1:0:1: +-%1li:0b1:1:1:0: +-%*1li:0b1:0:1: + %1li:42:1:1:4: + %*1li:42:0:1: + %1li:0X2a:1:1:0: +@@ -322,10 +218,6 @@ + %*1li:0x2A:0:1: + %1li:052:1:1:0: + %*1li:052:0:1: +-%1li:0B101010:1:1:0: +-%*1li:0B101010:0:1: +-%1li:0b101010:1:1:0: +-%*1li:0b101010:0:1: + %1li:2147483647:1:1:2: + %*1li:2147483647:0:1: + %1li:0X7fffffff:1:1:0: +@@ -334,10 +226,6 @@ + %*1li:0x7FFFFFFF:0:1: + %1li:017777777777:1:1:0: + %*1li:017777777777:0:1: +-%1li:0B1111111111111111111111111111111:1:1:0: +-%*1li:0B1111111111111111111111111111111:0:1: +-%1li:0b1111111111111111111111111111111:1:1:0: +-%*1li:0b1111111111111111111111111111111:0:1: + %1li:2147483648:1:1:2: + %*1li:2147483648:0:1: + %1li:0X80000000:1:1:0: +@@ -346,10 +234,6 @@ + %*1li:0x80000000:0:1: + %1li:020000000000:1:1:0: + %*1li:020000000000:0:1: +-%1li:0B10000000000000000000000000000000:1:1:0: +-%*1li:0B10000000000000000000000000000000:0:1: +-%1li:0b10000000000000000000000000000000:1:1:0: +-%*1li:0b10000000000000000000000000000000:0:1: + %1li:2147487889:1:1:2: + %*1li:2147487889:0:1: + %1li:0X80001091:1:1:0: +@@ -358,10 +242,6 @@ + %*1li:0x80001091:0:1: + %1li:020000010221:1:1:0: + %*1li:020000010221:0:1: +-%1li:0B10000000000000000001000010010001:1:1:0: +-%*1li:0B10000000000000000001000010010001:0:1: +-%1li:0b10000000000000000001000010010001:1:1:0: +-%*1li:0b10000000000000000001000010010001:0:1: + %1li:+0:0:-1: + %*1li:+0:0:-1: + %1li:+0X0:0:-1: +@@ -370,10 +250,6 @@ + %*1li:+0x0:0:-1: + %1li:+00:0:-1: + %*1li:+00:0:-1: +-%1li:+0B0:0:-1: +-%*1li:+0B0:0:-1: +-%1li:+0b0:0:-1: +-%*1li:+0b0:0:-1: + %1li:+1:0:-1: + %*1li:+1:0:-1: + %1li:+0X1:0:-1: +@@ -382,10 +258,6 @@ + %*1li:+0x1:0:-1: + %1li:+01:0:-1: + %*1li:+01:0:-1: +-%1li:+0B1:0:-1: +-%*1li:+0B1:0:-1: +-%1li:+0b1:0:-1: +-%*1li:+0b1:0:-1: + %1li:+42:0:-1: + %*1li:+42:0:-1: + %1li:+0X2a:0:-1: +@@ -394,10 +266,6 @@ + %*1li:+0x2A:0:-1: + %1li:+052:0:-1: + %*1li:+052:0:-1: +-%1li:+0B101010:0:-1: +-%*1li:+0B101010:0:-1: +-%1li:+0b101010:0:-1: +-%*1li:+0b101010:0:-1: + %1li:+2147483647:0:-1: + %*1li:+2147483647:0:-1: + %1li:+0X7fffffff:0:-1: +@@ -406,10 +274,6 @@ + %*1li:+0x7FFFFFFF:0:-1: + %1li:+017777777777:0:-1: + %*1li:+017777777777:0:-1: +-%1li:+0B1111111111111111111111111111111:0:-1: +-%*1li:+0B1111111111111111111111111111111:0:-1: +-%1li:+0b1111111111111111111111111111111:0:-1: +-%*1li:+0b1111111111111111111111111111111:0:-1: + %1li:+2147483648:0:-1: + %*1li:+2147483648:0:-1: + %1li:+0X80000000:0:-1: +@@ -418,10 +282,6 @@ + %*1li:+0x80000000:0:-1: + %1li:+020000000000:0:-1: + %*1li:+020000000000:0:-1: +-%1li:+0B10000000000000000000000000000000:0:-1: +-%*1li:+0B10000000000000000000000000000000:0:-1: +-%1li:+0b10000000000000000000000000000000:0:-1: +-%*1li:+0b10000000000000000000000000000000:0:-1: + %1li:+2147487889:0:-1: + %*1li:+2147487889:0:-1: + %1li:+0X80001091:0:-1: +@@ -430,10 +290,6 @@ + %*1li:+0x80001091:0:-1: + %1li:+020000010221:0:-1: + %*1li:+020000010221:0:-1: +-%1li:+0B10000000000000000001000010010001:0:-1: +-%*1li:+0B10000000000000000001000010010001:0:-1: +-%1li:+0b10000000000000000001000010010001:0:-1: +-%*1li:+0b10000000000000000001000010010001:0:-1: + %2li::0:-1: + %*2li::0:-1: + %2li:-2147484882:1:2:-2: +@@ -444,10 +300,6 @@ + %*2li:-0x800004D2:0:2: + %2li:-020000002322:1:2:0: + %*2li:-020000002322:0:2: +-%2li:-0B10000000000000000000010011010010:1:2:0: +-%*2li:-0B10000000000000000000010011010010:0:2: +-%2li:-0b10000000000000000000010011010010:1:2:0: +-%*2li:-0b10000000000000000000010011010010:0:2: + %2li:-2147483649:1:2:-2: + %*2li:-2147483649:0:2: + %2li:-0X80000001:1:2:0: +@@ -456,10 +308,6 @@ + %*2li:-0x80000001:0:2: + %2li:-020000000001:1:2:0: + %*2li:-020000000001:0:2: +-%2li:-0B10000000000000000000000000000001:1:2:0: +-%*2li:-0B10000000000000000000000000000001:0:2: +-%2li:-0b10000000000000000000000000000001:1:2:0: +-%*2li:-0b10000000000000000000000000000001:0:2: + %2li:-2147483648:1:2:-2: + %*2li:-2147483648:0:2: + %2li:-0X80000000:1:2:0: +@@ -468,10 +316,6 @@ + %*2li:-0x80000000:0:2: + %2li:-020000000000:1:2:0: + %*2li:-020000000000:0:2: +-%2li:-0B10000000000000000000000000000000:1:2:0: +-%*2li:-0B10000000000000000000000000000000:0:2: +-%2li:-0b10000000000000000000000000000000:1:2:0: +-%*2li:-0b10000000000000000000000000000000:0:2: + %2li:-123:1:2:-1: + %*2li:-123:0:2: + %2li:-0X7b:1:2:0: +@@ -480,10 +324,6 @@ + %*2li:-0x7B:0:2: + %2li:-0173:1:2:0: + %*2li:-0173:0:2: +-%2li:-0B1111011:1:2:0: +-%*2li:-0B1111011:0:2: +-%2li:-0b1111011:1:2:0: +-%*2li:-0b1111011:0:2: + %2li:-1:1:2:-1: + %*2li:-1:0:2: + %2li:-0X1:1:2:0: +@@ -492,10 +332,6 @@ + %*2li:-0x1:0:2: + %2li:-01:1:2:0: + %*2li:-01:0:2: +-%2li:-0B1:1:2:0: +-%*2li:-0B1:0:2: +-%2li:-0b1:1:2:0: +-%*2li:-0b1:0:2: + %2li:-0:1:2:0: + %*2li:-0:0:2: + %2li:-0X0:1:2:0: +@@ -504,10 +340,6 @@ + %*2li:-0x0:0:2: + %2li:-00:1:2:0: + %*2li:-00:0:2: +-%2li:-0B0:1:2:0: +-%*2li:-0B0:0:2: +-%2li:-0b0:1:2:0: +-%*2li:-0b0:0:2: + %2li:0:1:1:0: + %*2li:0:0:1: + # BZ12701 %2li:0X0:0:-1: +@@ -516,10 +348,6 @@ + # BZ12701 %*2li:0x0:0:-1: + %2li:00:1:2:0: + %*2li:00:0:2: +-# BZ12701 %2li:0B0:0:-1: +-# BZ12701 %*2li:0B0:0:-1: +-# BZ12701 %2li:0b0:0:-1: +-# BZ12701 %*2li:0b0:0:-1: + %2li:1:1:1:1: + %*2li:1:0:1: + # BZ12701 %2li:0X1:0:-1: +@@ -528,10 +356,6 @@ + # BZ12701 %*2li:0x1:0:-1: + %2li:01:1:2:1: + %*2li:01:0:2: +-# BZ12701 %2li:0B1:0:-1: +-# BZ12701 %*2li:0B1:0:-1: +-# BZ12701 %2li:0b1:0:-1: +-# BZ12701 %*2li:0b1:0:-1: + %2li:42:1:2:42: + %*2li:42:0:2: + # BZ12701 %2li:0X2a:0:-1: +@@ -540,10 +364,6 @@ + # BZ12701 %*2li:0x2A:0:-1: + %2li:052:1:2:5: + %*2li:052:0:2: +-# BZ12701 %2li:0B101010:0:-1: +-# BZ12701 %*2li:0B101010:0:-1: +-# BZ12701 %2li:0b101010:0:-1: +-# BZ12701 %*2li:0b101010:0:-1: + %2li:2147483647:1:2:21: + %*2li:2147483647:0:2: + # BZ12701 %2li:0X7fffffff:0:-1: +@@ -552,10 +372,6 @@ + # BZ12701 %*2li:0x7FFFFFFF:0:-1: + %2li:017777777777:1:2:1: + %*2li:017777777777:0:2: +-# BZ12701 %2li:0B1111111111111111111111111111111:0:-1: +-# BZ12701 %*2li:0B1111111111111111111111111111111:0:-1: +-# BZ12701 %2li:0b1111111111111111111111111111111:0:-1: +-# BZ12701 %*2li:0b1111111111111111111111111111111:0:-1: + %2li:2147483648:1:2:21: + %*2li:2147483648:0:2: + # BZ12701 %2li:0X80000000:0:-1: +@@ -564,10 +380,6 @@ + # BZ12701 %*2li:0x80000000:0:-1: + %2li:020000000000:1:2:2: + %*2li:020000000000:0:2: +-# BZ12701 %2li:0B10000000000000000000000000000000:0:-1: +-# BZ12701 %*2li:0B10000000000000000000000000000000:0:-1: +-# BZ12701 %2li:0b10000000000000000000000000000000:0:-1: +-# BZ12701 %*2li:0b10000000000000000000000000000000:0:-1: + %2li:2147487889:1:2:21: + %*2li:2147487889:0:2: + # BZ12701 %2li:0X80001091:0:-1: +@@ -576,10 +388,6 @@ + # BZ12701 %*2li:0x80001091:0:-1: + %2li:020000010221:1:2:2: + %*2li:020000010221:0:2: +-# BZ12701 %2li:0B10000000000000000001000010010001:0:-1: +-# BZ12701 %*2li:0B10000000000000000001000010010001:0:-1: +-# BZ12701 %2li:0b10000000000000000001000010010001:0:-1: +-# BZ12701 %*2li:0b10000000000000000001000010010001:0:-1: + %2li:+0:1:2:0: + %*2li:+0:0:2: + %2li:+0X0:1:2:0: +@@ -588,10 +396,6 @@ + %*2li:+0x0:0:2: + %2li:+00:1:2:0: + %*2li:+00:0:2: +-%2li:+0B0:1:2:0: +-%*2li:+0B0:0:2: +-%2li:+0b0:1:2:0: +-%*2li:+0b0:0:2: + %2li:+1:1:2:1: + %*2li:+1:0:2: + %2li:+0X1:1:2:0: +@@ -600,10 +404,6 @@ + %*2li:+0x1:0:2: + %2li:+01:1:2:0: + %*2li:+01:0:2: +-%2li:+0B1:1:2:0: +-%*2li:+0B1:0:2: +-%2li:+0b1:1:2:0: +-%*2li:+0b1:0:2: + %2li:+42:1:2:4: + %*2li:+42:0:2: + %2li:+0X2a:1:2:0: +@@ -612,10 +412,6 @@ + %*2li:+0x2A:0:2: + %2li:+052:1:2:0: + %*2li:+052:0:2: +-%2li:+0B101010:1:2:0: +-%*2li:+0B101010:0:2: +-%2li:+0b101010:1:2:0: +-%*2li:+0b101010:0:2: + %2li:+2147483647:1:2:2: + %*2li:+2147483647:0:2: + %2li:+0X7fffffff:1:2:0: +@@ -624,10 +420,6 @@ + %*2li:+0x7FFFFFFF:0:2: + %2li:+017777777777:1:2:0: + %*2li:+017777777777:0:2: +-%2li:+0B1111111111111111111111111111111:1:2:0: +-%*2li:+0B1111111111111111111111111111111:0:2: +-%2li:+0b1111111111111111111111111111111:1:2:0: +-%*2li:+0b1111111111111111111111111111111:0:2: + %2li:+2147483648:1:2:2: + %*2li:+2147483648:0:2: + %2li:+0X80000000:1:2:0: +@@ -636,10 +428,6 @@ + %*2li:+0x80000000:0:2: + %2li:+020000000000:1:2:0: + %*2li:+020000000000:0:2: +-%2li:+0B10000000000000000000000000000000:1:2:0: +-%*2li:+0B10000000000000000000000000000000:0:2: +-%2li:+0b10000000000000000000000000000000:1:2:0: +-%*2li:+0b10000000000000000000000000000000:0:2: + %2li:+2147487889:1:2:2: + %*2li:+2147487889:0:2: + %2li:+0X80001091:1:2:0: +@@ -648,10 +436,6 @@ + %*2li:+0x80001091:0:2: + %2li:+020000010221:1:2:0: + %*2li:+020000010221:0:2: +-%2li:+0B10000000000000000001000010010001:1:2:0: +-%*2li:+0B10000000000000000001000010010001:0:2: +-%2li:+0b10000000000000000001000010010001:1:2:0: +-%*2li:+0b10000000000000000001000010010001:0:2: + %8li::0:-1: + %*8li::0:-1: + %8li:-2147484882:1:8:-2147484: +@@ -662,10 +446,6 @@ + %*8li:-0x800004D2:0:8: + %8li:-020000002322:1:8:-65536: + %*8li:-020000002322:0:8: +-%8li:-0B10000000000000000000010011010010:1:8:-16: +-%*8li:-0B10000000000000000000010011010010:0:8: +-%8li:-0b10000000000000000000010011010010:1:8:-16: +-%*8li:-0b10000000000000000000010011010010:0:8: + %8li:-2147483649:1:8:-2147483: + %*8li:-2147483649:0:8: + %8li:-0X80000001:1:8:-524288: +@@ -674,10 +454,6 @@ + %*8li:-0x80000001:0:8: + %8li:-020000000001:1:8:-65536: + %*8li:-020000000001:0:8: +-%8li:-0B10000000000000000000000000000001:1:8:-16: +-%*8li:-0B10000000000000000000000000000001:0:8: +-%8li:-0b10000000000000000000000000000001:1:8:-16: +-%*8li:-0b10000000000000000000000000000001:0:8: + %8li:-2147483648:1:8:-2147483: + %*8li:-2147483648:0:8: + %8li:-0X80000000:1:8:-524288: +@@ -686,10 +462,6 @@ + %*8li:-0x80000000:0:8: + %8li:-020000000000:1:8:-65536: + %*8li:-020000000000:0:8: +-%8li:-0B10000000000000000000000000000000:1:8:-16: +-%*8li:-0B10000000000000000000000000000000:0:8: +-%8li:-0b10000000000000000000000000000000:1:8:-16: +-%*8li:-0b10000000000000000000000000000000:0:8: + %8li:-123:1:4:-123: + %*8li:-123:0:4: + %8li:-0X7b:1:5:-123: +@@ -698,10 +470,6 @@ + %*8li:-0x7B:0:5: + %8li:-0173:1:5:-123: + %*8li:-0173:0:5: +-%8li:-0B1111011:1:8:-30: +-%*8li:-0B1111011:0:8: +-%8li:-0b1111011:1:8:-30: +-%*8li:-0b1111011:0:8: + %8li:-1:1:2:-1: + %*8li:-1:0:2: + %8li:-0X1:1:4:-1: +@@ -710,10 +478,6 @@ + %*8li:-0x1:0:4: + %8li:-01:1:3:-1: + %*8li:-01:0:3: +-%8li:-0B1:1:4:-1: +-%*8li:-0B1:0:4: +-%8li:-0b1:1:4:-1: +-%*8li:-0b1:0:4: + %8li:-0:1:2:0: + %*8li:-0:0:2: + %8li:-0X0:1:4:0: +@@ -722,10 +486,6 @@ + %*8li:-0x0:0:4: + %8li:-00:1:3:0: + %*8li:-00:0:3: +-%8li:-0B0:1:4:0: +-%*8li:-0B0:0:4: +-%8li:-0b0:1:4:0: +-%*8li:-0b0:0:4: + %8li:0:1:1:0: + %*8li:0:0:1: + %8li:0X0:1:3:0: +@@ -734,10 +494,6 @@ + %*8li:0x0:0:3: + %8li:00:1:2:0: + %*8li:00:0:2: +-%8li:0B0:1:3:0: +-%*8li:0B0:0:3: +-%8li:0b0:1:3:0: +-%*8li:0b0:0:3: + %8li:1:1:1:1: + %*8li:1:0:1: + %8li:0X1:1:3:1: +@@ -746,10 +502,6 @@ + %*8li:0x1:0:3: + %8li:01:1:2:1: + %*8li:01:0:2: +-%8li:0B1:1:3:1: +-%*8li:0B1:0:3: +-%8li:0b1:1:3:1: +-%*8li:0b1:0:3: + %8li:42:1:2:42: + %*8li:42:0:2: + %8li:0X2a:1:4:42: +@@ -758,10 +510,6 @@ + %*8li:0x2A:0:4: + %8li:052:1:3:42: + %*8li:052:0:3: +-%8li:0B101010:1:8:42: +-%*8li:0B101010:0:8: +-%8li:0b101010:1:8:42: +-%*8li:0b101010:0:8: + %8li:2147483647:1:8:21474836: + %*8li:2147483647:0:8: + %8li:0X7fffffff:1:8:8388607: +@@ -770,10 +518,6 @@ + %*8li:0x7FFFFFFF:0:8: + %8li:017777777777:1:8:524287: + %*8li:017777777777:0:8: +-%8li:0B1111111111111111111111111111111:1:8:63: +-%*8li:0B1111111111111111111111111111111:0:8: +-%8li:0b1111111111111111111111111111111:1:8:63: +-%*8li:0b1111111111111111111111111111111:0:8: + %8li:2147483648:1:8:21474836: + %*8li:2147483648:0:8: + %8li:0X80000000:1:8:8388608: +@@ -782,10 +526,6 @@ + %*8li:0x80000000:0:8: + %8li:020000000000:1:8:524288: + %*8li:020000000000:0:8: +-%8li:0B10000000000000000000000000000000:1:8:32: +-%*8li:0B10000000000000000000000000000000:0:8: +-%8li:0b10000000000000000000000000000000:1:8:32: +-%*8li:0b10000000000000000000000000000000:0:8: + %8li:2147487889:1:8:21474878: + %*8li:2147487889:0:8: + %8li:0X80001091:1:8:8388624: +@@ -794,10 +534,6 @@ + %*8li:0x80001091:0:8: + %8li:020000010221:1:8:524289: + %*8li:020000010221:0:8: +-%8li:0B10000000000000000001000010010001:1:8:32: +-%*8li:0B10000000000000000001000010010001:0:8: +-%8li:0b10000000000000000001000010010001:1:8:32: +-%*8li:0b10000000000000000001000010010001:0:8: + %8li:+0:1:2:0: + %*8li:+0:0:2: + %8li:+0X0:1:4:0: +@@ -806,10 +542,6 @@ + %*8li:+0x0:0:4: + %8li:+00:1:3:0: + %*8li:+00:0:3: +-%8li:+0B0:1:4:0: +-%*8li:+0B0:0:4: +-%8li:+0b0:1:4:0: +-%*8li:+0b0:0:4: + %8li:+1:1:2:1: + %*8li:+1:0:2: + %8li:+0X1:1:4:1: +@@ -818,10 +550,6 @@ + %*8li:+0x1:0:4: + %8li:+01:1:3:1: + %*8li:+01:0:3: +-%8li:+0B1:1:4:1: +-%*8li:+0B1:0:4: +-%8li:+0b1:1:4:1: +-%*8li:+0b1:0:4: + %8li:+42:1:3:42: + %*8li:+42:0:3: + %8li:+0X2a:1:5:42: +@@ -830,10 +558,6 @@ + %*8li:+0x2A:0:5: + %8li:+052:1:4:42: + %*8li:+052:0:4: +-%8li:+0B101010:1:8:21: +-%*8li:+0B101010:0:8: +-%8li:+0b101010:1:8:21: +-%*8li:+0b101010:0:8: + %8li:+2147483647:1:8:2147483: + %*8li:+2147483647:0:8: + %8li:+0X7fffffff:1:8:524287: +@@ -842,10 +566,6 @@ + %*8li:+0x7FFFFFFF:0:8: + %8li:+017777777777:1:8:65535: + %*8li:+017777777777:0:8: +-%8li:+0B1111111111111111111111111111111:1:8:31: +-%*8li:+0B1111111111111111111111111111111:0:8: +-%8li:+0b1111111111111111111111111111111:1:8:31: +-%*8li:+0b1111111111111111111111111111111:0:8: + %8li:+2147483648:1:8:2147483: + %*8li:+2147483648:0:8: + %8li:+0X80000000:1:8:524288: +@@ -854,10 +574,6 @@ + %*8li:+0x80000000:0:8: + %8li:+020000000000:1:8:65536: + %*8li:+020000000000:0:8: +-%8li:+0B10000000000000000000000000000000:1:8:16: +-%*8li:+0B10000000000000000000000000000000:0:8: +-%8li:+0b10000000000000000000000000000000:1:8:16: +-%*8li:+0b10000000000000000000000000000000:0:8: + %8li:+2147487889:1:8:2147487: + %*8li:+2147487889:0:8: + %8li:+0X80001091:1:8:524289: +@@ -866,10 +582,6 @@ + %*8li:+0x80001091:0:8: + %8li:+020000010221:1:8:65536: + %*8li:+020000010221:0:8: +-%8li:+0B10000000000000000001000010010001:1:8:16: +-%*8li:+0B10000000000000000001000010010001:0:8: +-%8li:+0b10000000000000000001000010010001:1:8:16: +-%*8li:+0b10000000000000000001000010010001:0:8: + %15li::0:-1: + %*15li::0:-1: + %15li:-2147484882:1:11:-2147483648: +@@ -880,10 +592,6 @@ + %*15li:-0x800004D2:0:11: + %15li:-020000002322:1:13:-2147483648: + %*15li:-020000002322:0:13: +-%15li:-0B10000000000000000000010011010010:1:15:-2048: +-%*15li:-0B10000000000000000000010011010010:0:15: +-%15li:-0b10000000000000000000010011010010:1:15:-2048: +-%*15li:-0b10000000000000000000010011010010:0:15: + %15li:-2147483649:1:11:-2147483648: + %*15li:-2147483649:0:11: + %15li:-0X80000001:1:11:-2147483648: +@@ -892,10 +600,6 @@ + %*15li:-0x80000001:0:11: + %15li:-020000000001:1:13:-2147483648: + %*15li:-020000000001:0:13: +-%15li:-0B10000000000000000000000000000001:1:15:-2048: +-%*15li:-0B10000000000000000000000000000001:0:15: +-%15li:-0b10000000000000000000000000000001:1:15:-2048: +-%*15li:-0b10000000000000000000000000000001:0:15: + %15li:-2147483648:1:11:-2147483648: + %*15li:-2147483648:0:11: + %15li:-0X80000000:1:11:-2147483648: +@@ -904,10 +608,6 @@ + %*15li:-0x80000000:0:11: + %15li:-020000000000:1:13:-2147483648: + %*15li:-020000000000:0:13: +-%15li:-0B10000000000000000000000000000000:1:15:-2048: +-%*15li:-0B10000000000000000000000000000000:0:15: +-%15li:-0b10000000000000000000000000000000:1:15:-2048: +-%*15li:-0b10000000000000000000000000000000:0:15: + %15li:-123:1:4:-123: + %*15li:-123:0:4: + %15li:-0X7b:1:5:-123: +@@ -916,10 +616,6 @@ + %*15li:-0x7B:0:5: + %15li:-0173:1:5:-123: + %*15li:-0173:0:5: +-%15li:-0B1111011:1:10:-123: +-%*15li:-0B1111011:0:10: +-%15li:-0b1111011:1:10:-123: +-%*15li:-0b1111011:0:10: + %15li:-1:1:2:-1: + %*15li:-1:0:2: + %15li:-0X1:1:4:-1: +@@ -928,10 +624,6 @@ + %*15li:-0x1:0:4: + %15li:-01:1:3:-1: + %*15li:-01:0:3: +-%15li:-0B1:1:4:-1: +-%*15li:-0B1:0:4: +-%15li:-0b1:1:4:-1: +-%*15li:-0b1:0:4: + %15li:-0:1:2:0: + %*15li:-0:0:2: + %15li:-0X0:1:4:0: +@@ -940,10 +632,6 @@ + %*15li:-0x0:0:4: + %15li:-00:1:3:0: + %*15li:-00:0:3: +-%15li:-0B0:1:4:0: +-%*15li:-0B0:0:4: +-%15li:-0b0:1:4:0: +-%*15li:-0b0:0:4: + %15li:0:1:1:0: + %*15li:0:0:1: + %15li:0X0:1:3:0: +@@ -952,10 +640,6 @@ + %*15li:0x0:0:3: + %15li:00:1:2:0: + %*15li:00:0:2: +-%15li:0B0:1:3:0: +-%*15li:0B0:0:3: +-%15li:0b0:1:3:0: +-%*15li:0b0:0:3: + %15li:1:1:1:1: + %*15li:1:0:1: + %15li:0X1:1:3:1: +@@ -964,10 +648,6 @@ + %*15li:0x1:0:3: + %15li:01:1:2:1: + %*15li:01:0:2: +-%15li:0B1:1:3:1: +-%*15li:0B1:0:3: +-%15li:0b1:1:3:1: +-%*15li:0b1:0:3: + %15li:42:1:2:42: + %*15li:42:0:2: + %15li:0X2a:1:4:42: +@@ -976,10 +656,6 @@ + %*15li:0x2A:0:4: + %15li:052:1:3:42: + %*15li:052:0:3: +-%15li:0B101010:1:8:42: +-%*15li:0B101010:0:8: +-%15li:0b101010:1:8:42: +-%*15li:0b101010:0:8: + %15li:2147483647:1:10:2147483647: + %*15li:2147483647:0:10: + %15li:0X7fffffff:1:10:2147483647: +@@ -988,10 +664,6 @@ + %*15li:0x7FFFFFFF:0:10: + %15li:017777777777:1:12:2147483647: + %*15li:017777777777:0:12: +-%15li:0B1111111111111111111111111111111:1:15:8191: +-%*15li:0B1111111111111111111111111111111:0:15: +-%15li:0b1111111111111111111111111111111:1:15:8191: +-%*15li:0b1111111111111111111111111111111:0:15: + %15li:2147483648:1:10:2147483647: + %*15li:2147483648:0:10: + %15li:0X80000000:1:10:2147483647: +@@ -1000,10 +672,6 @@ + %*15li:0x80000000:0:10: + %15li:020000000000:1:12:2147483647: + %*15li:020000000000:0:12: +-%15li:0B10000000000000000000000000000000:1:15:4096: +-%*15li:0B10000000000000000000000000000000:0:15: +-%15li:0b10000000000000000000000000000000:1:15:4096: +-%*15li:0b10000000000000000000000000000000:0:15: + %15li:2147487889:1:10:2147483647: + %*15li:2147487889:0:10: + %15li:0X80001091:1:10:2147483647: +@@ -1012,10 +680,6 @@ + %*15li:0x80001091:0:10: + %15li:020000010221:1:12:2147483647: + %*15li:020000010221:0:12: +-%15li:0B10000000000000000001000010010001:1:15:4096: +-%*15li:0B10000000000000000001000010010001:0:15: +-%15li:0b10000000000000000001000010010001:1:15:4096: +-%*15li:0b10000000000000000001000010010001:0:15: + %15li:+0:1:2:0: + %*15li:+0:0:2: + %15li:+0X0:1:4:0: +@@ -1024,10 +688,6 @@ + %*15li:+0x0:0:4: + %15li:+00:1:3:0: + %*15li:+00:0:3: +-%15li:+0B0:1:4:0: +-%*15li:+0B0:0:4: +-%15li:+0b0:1:4:0: +-%*15li:+0b0:0:4: + %15li:+1:1:2:1: + %*15li:+1:0:2: + %15li:+0X1:1:4:1: +@@ -1036,10 +696,6 @@ + %*15li:+0x1:0:4: + %15li:+01:1:3:1: + %*15li:+01:0:3: +-%15li:+0B1:1:4:1: +-%*15li:+0B1:0:4: +-%15li:+0b1:1:4:1: +-%*15li:+0b1:0:4: + %15li:+42:1:3:42: + %*15li:+42:0:3: + %15li:+0X2a:1:5:42: +@@ -1048,10 +704,6 @@ + %*15li:+0x2A:0:5: + %15li:+052:1:4:42: + %*15li:+052:0:4: +-%15li:+0B101010:1:9:42: +-%*15li:+0B101010:0:9: +-%15li:+0b101010:1:9:42: +-%*15li:+0b101010:0:9: + %15li:+2147483647:1:11:2147483647: + %*15li:+2147483647:0:11: + %15li:+0X7fffffff:1:11:2147483647: +@@ -1060,10 +712,6 @@ + %*15li:+0x7FFFFFFF:0:11: + %15li:+017777777777:1:13:2147483647: + %*15li:+017777777777:0:13: +-%15li:+0B1111111111111111111111111111111:1:15:4095: +-%*15li:+0B1111111111111111111111111111111:0:15: +-%15li:+0b1111111111111111111111111111111:1:15:4095: +-%*15li:+0b1111111111111111111111111111111:0:15: + %15li:+2147483648:1:11:2147483647: + %*15li:+2147483648:0:11: + %15li:+0X80000000:1:11:2147483647: +@@ -1072,10 +720,6 @@ + %*15li:+0x80000000:0:11: + %15li:+020000000000:1:13:2147483647: + %*15li:+020000000000:0:13: +-%15li:+0B10000000000000000000000000000000:1:15:2048: +-%*15li:+0B10000000000000000000000000000000:0:15: +-%15li:+0b10000000000000000000000000000000:1:15:2048: +-%*15li:+0b10000000000000000000000000000000:0:15: + %15li:+2147487889:1:11:2147483647: + %*15li:+2147487889:0:11: + %15li:+0X80001091:1:11:2147483647: +@@ -1084,10 +728,6 @@ + %*15li:+0x80001091:0:11: + %15li:+020000010221:1:13:2147483647: + %*15li:+020000010221:0:13: +-%15li:+0B10000000000000000001000010010001:1:15:2048: +-%*15li:+0B10000000000000000001000010010001:0:15: +-%15li:+0b10000000000000000001000010010001:1:15:2048: +-%*15li:+0b10000000000000000001000010010001:0:15: + %2li: :0:-1: + %*2li: :0:-1: + %2li: -2147484882:1:3:-2: +@@ -1098,10 +738,6 @@ + %*2li: -0x800004D2:0:3: + %2li: -020000002322:1:3:0: + %*2li: -020000002322:0:3: +-%2li: -0B10000000000000000000010011010010:1:3:0: +-%*2li: -0B10000000000000000000010011010010:0:3: +-%2li: -0b10000000000000000000010011010010:1:3:0: +-%*2li: -0b10000000000000000000010011010010:0:3: + %2li: -2147483649:1:3:-2: + %*2li: -2147483649:0:3: + %2li: -0X80000001:1:3:0: +@@ -1110,10 +746,6 @@ + %*2li: -0x80000001:0:3: + %2li: -020000000001:1:3:0: + %*2li: -020000000001:0:3: +-%2li: -0B10000000000000000000000000000001:1:3:0: +-%*2li: -0B10000000000000000000000000000001:0:3: +-%2li: -0b10000000000000000000000000000001:1:3:0: +-%*2li: -0b10000000000000000000000000000001:0:3: + %2li: -2147483648:1:3:-2: + %*2li: -2147483648:0:3: + %2li: -0X80000000:1:3:0: +@@ -1122,10 +754,6 @@ + %*2li: -0x80000000:0:3: + %2li: -020000000000:1:3:0: + %*2li: -020000000000:0:3: +-%2li: -0B10000000000000000000000000000000:1:3:0: +-%*2li: -0B10000000000000000000000000000000:0:3: +-%2li: -0b10000000000000000000000000000000:1:3:0: +-%*2li: -0b10000000000000000000000000000000:0:3: + %2li: -123:1:3:-1: + %*2li: -123:0:3: + %2li: -0X7b:1:3:0: +@@ -1134,10 +762,6 @@ + %*2li: -0x7B:0:3: + %2li: -0173:1:3:0: + %*2li: -0173:0:3: +-%2li: -0B1111011:1:3:0: +-%*2li: -0B1111011:0:3: +-%2li: -0b1111011:1:3:0: +-%*2li: -0b1111011:0:3: + %2li: -1:1:3:-1: + %*2li: -1:0:3: + %2li: -0X1:1:3:0: +@@ -1146,10 +770,6 @@ + %*2li: -0x1:0:3: + %2li: -01:1:3:0: + %*2li: -01:0:3: +-%2li: -0B1:1:3:0: +-%*2li: -0B1:0:3: +-%2li: -0b1:1:3:0: +-%*2li: -0b1:0:3: + %2li: -0:1:3:0: + %*2li: -0:0:3: + %2li: -0X0:1:3:0: +@@ -1158,10 +778,6 @@ + %*2li: -0x0:0:3: + %2li: -00:1:3:0: + %*2li: -00:0:3: +-%2li: -0B0:1:3:0: +-%*2li: -0B0:0:3: +-%2li: -0b0:1:3:0: +-%*2li: -0b0:0:3: + %2li: 0:1:2:0: + %*2li: 0:0:2: + # BZ12701 %2li: 0X0:0:-1: +@@ -1170,10 +786,6 @@ + # BZ12701 %*2li: 0x0:0:-1: + %2li: 00:1:3:0: + %*2li: 00:0:3: +-# BZ12701 %2li: 0B0:0:-1: +-# BZ12701 %*2li: 0B0:0:-1: +-# BZ12701 %2li: 0b0:0:-1: +-# BZ12701 %*2li: 0b0:0:-1: + %2li: 1:1:2:1: + %*2li: 1:0:2: + # BZ12701 %2li: 0X1:0:-1: +@@ -1182,10 +794,6 @@ + # BZ12701 %*2li: 0x1:0:-1: + %2li: 01:1:3:1: + %*2li: 01:0:3: +-# BZ12701 %2li: 0B1:0:-1: +-# BZ12701 %*2li: 0B1:0:-1: +-# BZ12701 %2li: 0b1:0:-1: +-# BZ12701 %*2li: 0b1:0:-1: + %2li: 42:1:3:42: + %*2li: 42:0:3: + # BZ12701 %2li: 0X2a:0:-1: +@@ -1194,10 +802,6 @@ + # BZ12701 %*2li: 0x2A:0:-1: + %2li: 052:1:3:5: + %*2li: 052:0:3: +-# BZ12701 %2li: 0B101010:0:-1: +-# BZ12701 %*2li: 0B101010:0:-1: +-# BZ12701 %2li: 0b101010:0:-1: +-# BZ12701 %*2li: 0b101010:0:-1: + %2li: 2147483647:1:3:21: + %*2li: 2147483647:0:3: + # BZ12701 %2li: 0X7fffffff:0:-1: +@@ -1206,10 +810,6 @@ + # BZ12701 %*2li: 0x7FFFFFFF:0:-1: + %2li: 017777777777:1:3:1: + %*2li: 017777777777:0:3: +-# BZ12701 %2li: 0B1111111111111111111111111111111:0:-1: +-# BZ12701 %*2li: 0B1111111111111111111111111111111:0:-1: +-# BZ12701 %2li: 0b1111111111111111111111111111111:0:-1: +-# BZ12701 %*2li: 0b1111111111111111111111111111111:0:-1: + %2li: 2147483648:1:3:21: + %*2li: 2147483648:0:3: + # BZ12701 %2li: 0X80000000:0:-1: +@@ -1218,10 +818,6 @@ + # BZ12701 %*2li: 0x80000000:0:-1: + %2li: 020000000000:1:3:2: + %*2li: 020000000000:0:3: +-# BZ12701 %2li: 0B10000000000000000000000000000000:0:-1: +-# BZ12701 %*2li: 0B10000000000000000000000000000000:0:-1: +-# BZ12701 %2li: 0b10000000000000000000000000000000:0:-1: +-# BZ12701 %*2li: 0b10000000000000000000000000000000:0:-1: + %2li: 2147487889:1:3:21: + %*2li: 2147487889:0:3: + # BZ12701 %2li: 0X80001091:0:-1: +@@ -1230,10 +826,6 @@ + # BZ12701 %*2li: 0x80001091:0:-1: + %2li: 020000010221:1:3:2: + %*2li: 020000010221:0:3: +-# BZ12701 %2li: 0B10000000000000000001000010010001:0:-1: +-# BZ12701 %*2li: 0B10000000000000000001000010010001:0:-1: +-# BZ12701 %2li: 0b10000000000000000001000010010001:0:-1: +-# BZ12701 %*2li: 0b10000000000000000001000010010001:0:-1: + %2li: +0:1:3:0: + %*2li: +0:0:3: + %2li: +0X0:1:3:0: +@@ -1242,10 +834,6 @@ + %*2li: +0x0:0:3: + %2li: +00:1:3:0: + %*2li: +00:0:3: +-%2li: +0B0:1:3:0: +-%*2li: +0B0:0:3: +-%2li: +0b0:1:3:0: +-%*2li: +0b0:0:3: + %2li: +1:1:3:1: + %*2li: +1:0:3: + %2li: +0X1:1:3:0: +@@ -1254,10 +842,6 @@ + %*2li: +0x1:0:3: + %2li: +01:1:3:0: + %*2li: +01:0:3: +-%2li: +0B1:1:3:0: +-%*2li: +0B1:0:3: +-%2li: +0b1:1:3:0: +-%*2li: +0b1:0:3: + %2li: +42:1:3:4: + %*2li: +42:0:3: + %2li: +0X2a:1:3:0: +@@ -1266,10 +850,6 @@ + %*2li: +0x2A:0:3: + %2li: +052:1:3:0: + %*2li: +052:0:3: +-%2li: +0B101010:1:3:0: +-%*2li: +0B101010:0:3: +-%2li: +0b101010:1:3:0: +-%*2li: +0b101010:0:3: + %2li: +2147483647:1:3:2: + %*2li: +2147483647:0:3: + %2li: +0X7fffffff:1:3:0: +@@ -1278,10 +858,6 @@ + %*2li: +0x7FFFFFFF:0:3: + %2li: +017777777777:1:3:0: + %*2li: +017777777777:0:3: +-%2li: +0B1111111111111111111111111111111:1:3:0: +-%*2li: +0B1111111111111111111111111111111:0:3: +-%2li: +0b1111111111111111111111111111111:1:3:0: +-%*2li: +0b1111111111111111111111111111111:0:3: + %2li: +2147483648:1:3:2: + %*2li: +2147483648:0:3: + %2li: +0X80000000:1:3:0: +@@ -1290,10 +866,6 @@ + %*2li: +0x80000000:0:3: + %2li: +020000000000:1:3:0: + %*2li: +020000000000:0:3: +-%2li: +0B10000000000000000000000000000000:1:3:0: +-%*2li: +0B10000000000000000000000000000000:0:3: +-%2li: +0b10000000000000000000000000000000:1:3:0: +-%*2li: +0b10000000000000000000000000000000:0:3: + %2li: +2147487889:1:3:2: + %*2li: +2147487889:0:3: + %2li: +0X80001091:1:3:0: +@@ -1302,10 +874,6 @@ + %*2li: +0x80001091:0:3: + %2li: +020000010221:1:3:0: + %*2li: +020000010221:0:3: +-%2li: +0B10000000000000000001000010010001:1:3:0: +-%*2li: +0B10000000000000000001000010010001:0:3: +-%2li: +0b10000000000000000001000010010001:1:3:0: +-%*2li: +0b10000000000000000001000010010001:0:3: + %15li: :0:-1: + %*15li: :0:-1: + %15li: -2147484882:1:12:-2147483648: +@@ -1316,10 +884,6 @@ + %*15li: -0x800004D2:0:12: + %15li: -020000002322:1:14:-2147483648: + %*15li: -020000002322:0:14: +-%15li: -0B10000000000000000000010011010010:1:16:-2048: +-%*15li: -0B10000000000000000000010011010010:0:16: +-%15li: -0b10000000000000000000010011010010:1:16:-2048: +-%*15li: -0b10000000000000000000010011010010:0:16: + %15li: -2147483649:1:12:-2147483648: + %*15li: -2147483649:0:12: + %15li: -0X80000001:1:12:-2147483648: +@@ -1328,10 +892,6 @@ + %*15li: -0x80000001:0:12: + %15li: -020000000001:1:14:-2147483648: + %*15li: -020000000001:0:14: +-%15li: -0B10000000000000000000000000000001:1:16:-2048: +-%*15li: -0B10000000000000000000000000000001:0:16: +-%15li: -0b10000000000000000000000000000001:1:16:-2048: +-%*15li: -0b10000000000000000000000000000001:0:16: + %15li: -2147483648:1:12:-2147483648: + %*15li: -2147483648:0:12: + %15li: -0X80000000:1:12:-2147483648: +@@ -1340,10 +900,6 @@ + %*15li: -0x80000000:0:12: + %15li: -020000000000:1:14:-2147483648: + %*15li: -020000000000:0:14: +-%15li: -0B10000000000000000000000000000000:1:16:-2048: +-%*15li: -0B10000000000000000000000000000000:0:16: +-%15li: -0b10000000000000000000000000000000:1:16:-2048: +-%*15li: -0b10000000000000000000000000000000:0:16: + %15li: -123:1:5:-123: + %*15li: -123:0:5: + %15li: -0X7b:1:6:-123: +@@ -1352,10 +908,6 @@ + %*15li: -0x7B:0:6: + %15li: -0173:1:6:-123: + %*15li: -0173:0:6: +-%15li: -0B1111011:1:11:-123: +-%*15li: -0B1111011:0:11: +-%15li: -0b1111011:1:11:-123: +-%*15li: -0b1111011:0:11: + %15li: -1:1:3:-1: + %*15li: -1:0:3: + %15li: -0X1:1:5:-1: +@@ -1364,10 +916,6 @@ + %*15li: -0x1:0:5: + %15li: -01:1:4:-1: + %*15li: -01:0:4: +-%15li: -0B1:1:5:-1: +-%*15li: -0B1:0:5: +-%15li: -0b1:1:5:-1: +-%*15li: -0b1:0:5: + %15li: -0:1:3:0: + %*15li: -0:0:3: + %15li: -0X0:1:5:0: +@@ -1376,10 +924,6 @@ + %*15li: -0x0:0:5: + %15li: -00:1:4:0: + %*15li: -00:0:4: +-%15li: -0B0:1:5:0: +-%*15li: -0B0:0:5: +-%15li: -0b0:1:5:0: +-%*15li: -0b0:0:5: + %15li: 0:1:2:0: + %*15li: 0:0:2: + %15li: 0X0:1:4:0: +@@ -1388,10 +932,6 @@ + %*15li: 0x0:0:4: + %15li: 00:1:3:0: + %*15li: 00:0:3: +-%15li: 0B0:1:4:0: +-%*15li: 0B0:0:4: +-%15li: 0b0:1:4:0: +-%*15li: 0b0:0:4: + %15li: 1:1:2:1: + %*15li: 1:0:2: + %15li: 0X1:1:4:1: +@@ -1400,10 +940,6 @@ + %*15li: 0x1:0:4: + %15li: 01:1:3:1: + %*15li: 01:0:3: +-%15li: 0B1:1:4:1: +-%*15li: 0B1:0:4: +-%15li: 0b1:1:4:1: +-%*15li: 0b1:0:4: + %15li: 42:1:3:42: + %*15li: 42:0:3: + %15li: 0X2a:1:5:42: +@@ -1412,10 +948,6 @@ + %*15li: 0x2A:0:5: + %15li: 052:1:4:42: + %*15li: 052:0:4: +-%15li: 0B101010:1:9:42: +-%*15li: 0B101010:0:9: +-%15li: 0b101010:1:9:42: +-%*15li: 0b101010:0:9: + %15li: 2147483647:1:11:2147483647: + %*15li: 2147483647:0:11: + %15li: 0X7fffffff:1:11:2147483647: +@@ -1424,10 +956,6 @@ + %*15li: 0x7FFFFFFF:0:11: + %15li: 017777777777:1:13:2147483647: + %*15li: 017777777777:0:13: +-%15li: 0B1111111111111111111111111111111:1:16:8191: +-%*15li: 0B1111111111111111111111111111111:0:16: +-%15li: 0b1111111111111111111111111111111:1:16:8191: +-%*15li: 0b1111111111111111111111111111111:0:16: + %15li: 2147483648:1:11:2147483647: + %*15li: 2147483648:0:11: + %15li: 0X80000000:1:11:2147483647: +@@ -1436,10 +964,6 @@ + %*15li: 0x80000000:0:11: + %15li: 020000000000:1:13:2147483647: + %*15li: 020000000000:0:13: +-%15li: 0B10000000000000000000000000000000:1:16:4096: +-%*15li: 0B10000000000000000000000000000000:0:16: +-%15li: 0b10000000000000000000000000000000:1:16:4096: +-%*15li: 0b10000000000000000000000000000000:0:16: + %15li: 2147487889:1:11:2147483647: + %*15li: 2147487889:0:11: + %15li: 0X80001091:1:11:2147483647: +@@ -1448,10 +972,6 @@ + %*15li: 0x80001091:0:11: + %15li: 020000010221:1:13:2147483647: + %*15li: 020000010221:0:13: +-%15li: 0B10000000000000000001000010010001:1:16:4096: +-%*15li: 0B10000000000000000001000010010001:0:16: +-%15li: 0b10000000000000000001000010010001:1:16:4096: +-%*15li: 0b10000000000000000001000010010001:0:16: + %15li: +0:1:3:0: + %*15li: +0:0:3: + %15li: +0X0:1:5:0: +@@ -1460,10 +980,6 @@ + %*15li: +0x0:0:5: + %15li: +00:1:4:0: + %*15li: +00:0:4: +-%15li: +0B0:1:5:0: +-%*15li: +0B0:0:5: +-%15li: +0b0:1:5:0: +-%*15li: +0b0:0:5: + %15li: +1:1:3:1: + %*15li: +1:0:3: + %15li: +0X1:1:5:1: +@@ -1472,10 +988,6 @@ + %*15li: +0x1:0:5: + %15li: +01:1:4:1: + %*15li: +01:0:4: +-%15li: +0B1:1:5:1: +-%*15li: +0B1:0:5: +-%15li: +0b1:1:5:1: +-%*15li: +0b1:0:5: + %15li: +42:1:4:42: + %*15li: +42:0:4: + %15li: +0X2a:1:6:42: +@@ -1484,10 +996,6 @@ + %*15li: +0x2A:0:6: + %15li: +052:1:5:42: + %*15li: +052:0:5: +-%15li: +0B101010:1:10:42: +-%*15li: +0B101010:0:10: +-%15li: +0b101010:1:10:42: +-%*15li: +0b101010:0:10: + %15li: +2147483647:1:12:2147483647: + %*15li: +2147483647:0:12: + %15li: +0X7fffffff:1:12:2147483647: +@@ -1496,10 +1004,6 @@ + %*15li: +0x7FFFFFFF:0:12: + %15li: +017777777777:1:14:2147483647: + %*15li: +017777777777:0:14: +-%15li: +0B1111111111111111111111111111111:1:16:4095: +-%*15li: +0B1111111111111111111111111111111:0:16: +-%15li: +0b1111111111111111111111111111111:1:16:4095: +-%*15li: +0b1111111111111111111111111111111:0:16: + %15li: +2147483648:1:12:2147483647: + %*15li: +2147483648:0:12: + %15li: +0X80000000:1:12:2147483647: +@@ -1508,10 +1012,6 @@ + %*15li: +0x80000000:0:12: + %15li: +020000000000:1:14:2147483647: + %*15li: +020000000000:0:14: +-%15li: +0B10000000000000000000000000000000:1:16:2048: +-%*15li: +0B10000000000000000000000000000000:0:16: +-%15li: +0b10000000000000000000000000000000:1:16:2048: +-%*15li: +0b10000000000000000000000000000000:0:16: + %15li: +2147487889:1:12:2147483647: + %*15li: +2147487889:0:12: + %15li: +0X80001091:1:12:2147483647: +@@ -1520,7 +1020,3 @@ + %*15li: +0x80001091:0:12: + %15li: +020000010221:1:14:2147483647: + %*15li: +020000010221:0:14: +-%15li: +0B10000000000000000001000010010001:1:16:2048: +-%*15li: +0B10000000000000000001000010010001:0:16: +-%15li: +0b10000000000000000001000010010001:1:16:2048: +-%*15li: +0b10000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-uint-b.input b/sysdeps/wordsize-32/tst-scanf-format-uint-b.input +deleted file mode 100644 +index 34aa451bfc732b2f..0000000000000000 +--- a/sysdeps/wordsize-32/tst-scanf-format-uint-b.input ++++ /dev/null +@@ -1,644 +0,0 @@ +-%b::0:-1: +-%*b::0:-1: +-%b:-1111011:1:8:4294967173: +-%*b:-1111011:0:8: +-%b:-0B1111011:1:10:4294967173: +-%*b:-0B1111011:0:10: +-%b:-0b1111011:1:10:4294967173: +-%*b:-0b1111011:0:10: +-%b:-1:1:2:4294967295: +-%*b:-1:0:2: +-%b:-0B1:1:4:4294967295: +-%*b:-0B1:0:4: +-%b:-0b1:1:4:4294967295: +-%*b:-0b1:0:4: +-%b:-0:1:2:0: +-%*b:-0:0:2: +-%b:-0B0:1:4:0: +-%*b:-0B0:0:4: +-%b:-0b0:1:4:0: +-%*b:-0b0:0:4: +-%b:0:1:1:0: +-%*b:0:0:1: +-%b:0B0:1:3:0: +-%*b:0B0:0:3: +-%b:0b0:1:3:0: +-%*b:0b0:0:3: +-%b:1:1:1:1: +-%*b:1:0:1: +-%b:0B1:1:3:1: +-%*b:0B1:0:3: +-%b:0b1:1:3:1: +-%*b:0b1:0:3: +-%b:101010:1:6:42: +-%*b:101010:0:6: +-%b:0B101010:1:8:42: +-%*b:0B101010:0:8: +-%b:0b101010:1:8:42: +-%*b:0b101010:0:8: +-%b:11111111111111111111111111111111:1:32:4294967295: +-%*b:11111111111111111111111111111111:0:32: +-%b:0B11111111111111111111111111111111:1:34:4294967295: +-%*b:0B11111111111111111111111111111111:0:34: +-%b:0b11111111111111111111111111111111:1:34:4294967295: +-%*b:0b11111111111111111111111111111111:0:34: +-%b:100000000000000000000000000000000:1:33:4294967295: +-%*b:100000000000000000000000000000000:0:33: +-%b:0B100000000000000000000000000000000:1:35:4294967295: +-%*b:0B100000000000000000000000000000000:0:35: +-%b:0b100000000000000000000000000000000:1:35:4294967295: +-%*b:0b100000000000000000000000000000000:0:35: +-%b:100000000000000000001000010010001:1:33:4294967295: +-%*b:100000000000000000001000010010001:0:33: +-%b:0B100000000000000000001000010010001:1:35:4294967295: +-%*b:0B100000000000000000001000010010001:0:35: +-%b:0b100000000000000000001000010010001:1:35:4294967295: +-%*b:0b100000000000000000001000010010001:0:35: +-%b:+0:1:2:0: +-%*b:+0:0:2: +-%b:+0B0:1:4:0: +-%*b:+0B0:0:4: +-%b:+0b0:1:4:0: +-%*b:+0b0:0:4: +-%b:+1:1:2:1: +-%*b:+1:0:2: +-%b:+0B1:1:4:1: +-%*b:+0B1:0:4: +-%b:+0b1:1:4:1: +-%*b:+0b1:0:4: +-%b:+101010:1:7:42: +-%*b:+101010:0:7: +-%b:+0B101010:1:9:42: +-%*b:+0B101010:0:9: +-%b:+0b101010:1:9:42: +-%*b:+0b101010:0:9: +-%b:+11111111111111111111111111111111:1:33:4294967295: +-%*b:+11111111111111111111111111111111:0:33: +-%b:+0B11111111111111111111111111111111:1:35:4294967295: +-%*b:+0B11111111111111111111111111111111:0:35: +-%b:+0b11111111111111111111111111111111:1:35:4294967295: +-%*b:+0b11111111111111111111111111111111:0:35: +-%b:+100000000000000000000000000000000:1:34:4294967295: +-%*b:+100000000000000000000000000000000:0:34: +-%b:+0B100000000000000000000000000000000:1:36:4294967295: +-%*b:+0B100000000000000000000000000000000:0:36: +-%b:+0b100000000000000000000000000000000:1:36:4294967295: +-%*b:+0b100000000000000000000000000000000:0:36: +-%b:+100000000000000000001000010010001:1:34:4294967295: +-%*b:+100000000000000000001000010010001:0:34: +-%b:+0B100000000000000000001000010010001:1:36:4294967295: +-%*b:+0B100000000000000000001000010010001:0:36: +-%b:+0b100000000000000000001000010010001:1:36:4294967295: +-%*b:+0b100000000000000000001000010010001:0:36: +-%1b::0:-1: +-%*1b::0:-1: +-%1b:-1111011:0:-1: +-%*1b:-1111011:0:-1: +-%1b:-0B1111011:0:-1: +-%*1b:-0B1111011:0:-1: +-%1b:-0b1111011:0:-1: +-%*1b:-0b1111011:0:-1: +-%1b:-1:0:-1: +-%*1b:-1:0:-1: +-%1b:-0B1:0:-1: +-%*1b:-0B1:0:-1: +-%1b:-0b1:0:-1: +-%*1b:-0b1:0:-1: +-%1b:-0:0:-1: +-%*1b:-0:0:-1: +-%1b:-0B0:0:-1: +-%*1b:-0B0:0:-1: +-%1b:-0b0:0:-1: +-%*1b:-0b0:0:-1: +-%1b:0:1:1:0: +-%*1b:0:0:1: +-%1b:0B0:1:1:0: +-%*1b:0B0:0:1: +-%1b:0b0:1:1:0: +-%*1b:0b0:0:1: +-%1b:1:1:1:1: +-%*1b:1:0:1: +-%1b:0B1:1:1:0: +-%*1b:0B1:0:1: +-%1b:0b1:1:1:0: +-%*1b:0b1:0:1: +-%1b:101010:1:1:1: +-%*1b:101010:0:1: +-%1b:0B101010:1:1:0: +-%*1b:0B101010:0:1: +-%1b:0b101010:1:1:0: +-%*1b:0b101010:0:1: +-%1b:11111111111111111111111111111111:1:1:1: +-%*1b:11111111111111111111111111111111:0:1: +-%1b:0B11111111111111111111111111111111:1:1:0: +-%*1b:0B11111111111111111111111111111111:0:1: +-%1b:0b11111111111111111111111111111111:1:1:0: +-%*1b:0b11111111111111111111111111111111:0:1: +-%1b:100000000000000000000000000000000:1:1:1: +-%*1b:100000000000000000000000000000000:0:1: +-%1b:0B100000000000000000000000000000000:1:1:0: +-%*1b:0B100000000000000000000000000000000:0:1: +-%1b:0b100000000000000000000000000000000:1:1:0: +-%*1b:0b100000000000000000000000000000000:0:1: +-%1b:100000000000000000001000010010001:1:1:1: +-%*1b:100000000000000000001000010010001:0:1: +-%1b:0B100000000000000000001000010010001:1:1:0: +-%*1b:0B100000000000000000001000010010001:0:1: +-%1b:0b100000000000000000001000010010001:1:1:0: +-%*1b:0b100000000000000000001000010010001:0:1: +-%1b:+0:0:-1: +-%*1b:+0:0:-1: +-%1b:+0B0:0:-1: +-%*1b:+0B0:0:-1: +-%1b:+0b0:0:-1: +-%*1b:+0b0:0:-1: +-%1b:+1:0:-1: +-%*1b:+1:0:-1: +-%1b:+0B1:0:-1: +-%*1b:+0B1:0:-1: +-%1b:+0b1:0:-1: +-%*1b:+0b1:0:-1: +-%1b:+101010:0:-1: +-%*1b:+101010:0:-1: +-%1b:+0B101010:0:-1: +-%*1b:+0B101010:0:-1: +-%1b:+0b101010:0:-1: +-%*1b:+0b101010:0:-1: +-%1b:+11111111111111111111111111111111:0:-1: +-%*1b:+11111111111111111111111111111111:0:-1: +-%1b:+0B11111111111111111111111111111111:0:-1: +-%*1b:+0B11111111111111111111111111111111:0:-1: +-%1b:+0b11111111111111111111111111111111:0:-1: +-%*1b:+0b11111111111111111111111111111111:0:-1: +-%1b:+100000000000000000000000000000000:0:-1: +-%*1b:+100000000000000000000000000000000:0:-1: +-%1b:+0B100000000000000000000000000000000:0:-1: +-%*1b:+0B100000000000000000000000000000000:0:-1: +-%1b:+0b100000000000000000000000000000000:0:-1: +-%*1b:+0b100000000000000000000000000000000:0:-1: +-%1b:+100000000000000000001000010010001:0:-1: +-%*1b:+100000000000000000001000010010001:0:-1: +-%1b:+0B100000000000000000001000010010001:0:-1: +-%*1b:+0B100000000000000000001000010010001:0:-1: +-%1b:+0b100000000000000000001000010010001:0:-1: +-%*1b:+0b100000000000000000001000010010001:0:-1: +-%2b::0:-1: +-%*2b::0:-1: +-%2b:-1111011:1:2:4294967295: +-%*2b:-1111011:0:2: +-%2b:-0B1111011:1:2:0: +-%*2b:-0B1111011:0:2: +-%2b:-0b1111011:1:2:0: +-%*2b:-0b1111011:0:2: +-%2b:-1:1:2:4294967295: +-%*2b:-1:0:2: +-%2b:-0B1:1:2:0: +-%*2b:-0B1:0:2: +-%2b:-0b1:1:2:0: +-%*2b:-0b1:0:2: +-%2b:-0:1:2:0: +-%*2b:-0:0:2: +-%2b:-0B0:1:2:0: +-%*2b:-0B0:0:2: +-%2b:-0b0:1:2:0: +-%*2b:-0b0:0:2: +-%2b:0:1:1:0: +-%*2b:0:0:1: +-# BZ12701 %2b:0B0:0:-1: +-# BZ12701 %*2b:0B0:0:-1: +-# BZ12701 %2b:0b0:0:-1: +-# BZ12701 %*2b:0b0:0:-1: +-%2b:1:1:1:1: +-%*2b:1:0:1: +-# BZ12701 %2b:0B1:0:-1: +-# BZ12701 %*2b:0B1:0:-1: +-# BZ12701 %2b:0b1:0:-1: +-# BZ12701 %*2b:0b1:0:-1: +-%2b:101010:1:2:2: +-%*2b:101010:0:2: +-# BZ12701 %2b:0B101010:0:-1: +-# BZ12701 %*2b:0B101010:0:-1: +-# BZ12701 %2b:0b101010:0:-1: +-# BZ12701 %*2b:0b101010:0:-1: +-%2b:11111111111111111111111111111111:1:2:3: +-%*2b:11111111111111111111111111111111:0:2: +-# BZ12701 %2b:0B11111111111111111111111111111111:0:-1: +-# BZ12701 %*2b:0B11111111111111111111111111111111:0:-1: +-# BZ12701 %2b:0b11111111111111111111111111111111:0:-1: +-# BZ12701 %*2b:0b11111111111111111111111111111111:0:-1: +-%2b:100000000000000000000000000000000:1:2:2: +-%*2b:100000000000000000000000000000000:0:2: +-# BZ12701 %2b:0B100000000000000000000000000000000:0:-1: +-# BZ12701 %*2b:0B100000000000000000000000000000000:0:-1: +-# BZ12701 %2b:0b100000000000000000000000000000000:0:-1: +-# BZ12701 %*2b:0b100000000000000000000000000000000:0:-1: +-%2b:100000000000000000001000010010001:1:2:2: +-%*2b:100000000000000000001000010010001:0:2: +-# BZ12701 %2b:0B100000000000000000001000010010001:0:-1: +-# BZ12701 %*2b:0B100000000000000000001000010010001:0:-1: +-# BZ12701 %2b:0b100000000000000000001000010010001:0:-1: +-# BZ12701 %*2b:0b100000000000000000001000010010001:0:-1: +-%2b:+0:1:2:0: +-%*2b:+0:0:2: +-%2b:+0B0:1:2:0: +-%*2b:+0B0:0:2: +-%2b:+0b0:1:2:0: +-%*2b:+0b0:0:2: +-%2b:+1:1:2:1: +-%*2b:+1:0:2: +-%2b:+0B1:1:2:0: +-%*2b:+0B1:0:2: +-%2b:+0b1:1:2:0: +-%*2b:+0b1:0:2: +-%2b:+101010:1:2:1: +-%*2b:+101010:0:2: +-%2b:+0B101010:1:2:0: +-%*2b:+0B101010:0:2: +-%2b:+0b101010:1:2:0: +-%*2b:+0b101010:0:2: +-%2b:+11111111111111111111111111111111:1:2:1: +-%*2b:+11111111111111111111111111111111:0:2: +-%2b:+0B11111111111111111111111111111111:1:2:0: +-%*2b:+0B11111111111111111111111111111111:0:2: +-%2b:+0b11111111111111111111111111111111:1:2:0: +-%*2b:+0b11111111111111111111111111111111:0:2: +-%2b:+100000000000000000000000000000000:1:2:1: +-%*2b:+100000000000000000000000000000000:0:2: +-%2b:+0B100000000000000000000000000000000:1:2:0: +-%*2b:+0B100000000000000000000000000000000:0:2: +-%2b:+0b100000000000000000000000000000000:1:2:0: +-%*2b:+0b100000000000000000000000000000000:0:2: +-%2b:+100000000000000000001000010010001:1:2:1: +-%*2b:+100000000000000000001000010010001:0:2: +-%2b:+0B100000000000000000001000010010001:1:2:0: +-%*2b:+0B100000000000000000001000010010001:0:2: +-%2b:+0b100000000000000000001000010010001:1:2:0: +-%*2b:+0b100000000000000000001000010010001:0:2: +-%8b::0:-1: +-%*8b::0:-1: +-%8b:-1111011:1:8:4294967173: +-%*8b:-1111011:0:8: +-%8b:-0B1111011:1:8:4294967266: +-%*8b:-0B1111011:0:8: +-%8b:-0b1111011:1:8:4294967266: +-%*8b:-0b1111011:0:8: +-%8b:-1:1:2:4294967295: +-%*8b:-1:0:2: +-%8b:-0B1:1:4:4294967295: +-%*8b:-0B1:0:4: +-%8b:-0b1:1:4:4294967295: +-%*8b:-0b1:0:4: +-%8b:-0:1:2:0: +-%*8b:-0:0:2: +-%8b:-0B0:1:4:0: +-%*8b:-0B0:0:4: +-%8b:-0b0:1:4:0: +-%*8b:-0b0:0:4: +-%8b:0:1:1:0: +-%*8b:0:0:1: +-%8b:0B0:1:3:0: +-%*8b:0B0:0:3: +-%8b:0b0:1:3:0: +-%*8b:0b0:0:3: +-%8b:1:1:1:1: +-%*8b:1:0:1: +-%8b:0B1:1:3:1: +-%*8b:0B1:0:3: +-%8b:0b1:1:3:1: +-%*8b:0b1:0:3: +-%8b:101010:1:6:42: +-%*8b:101010:0:6: +-%8b:0B101010:1:8:42: +-%*8b:0B101010:0:8: +-%8b:0b101010:1:8:42: +-%*8b:0b101010:0:8: +-%8b:11111111111111111111111111111111:1:8:255: +-%*8b:11111111111111111111111111111111:0:8: +-%8b:0B11111111111111111111111111111111:1:8:63: +-%*8b:0B11111111111111111111111111111111:0:8: +-%8b:0b11111111111111111111111111111111:1:8:63: +-%*8b:0b11111111111111111111111111111111:0:8: +-%8b:100000000000000000000000000000000:1:8:128: +-%*8b:100000000000000000000000000000000:0:8: +-%8b:0B100000000000000000000000000000000:1:8:32: +-%*8b:0B100000000000000000000000000000000:0:8: +-%8b:0b100000000000000000000000000000000:1:8:32: +-%*8b:0b100000000000000000000000000000000:0:8: +-%8b:100000000000000000001000010010001:1:8:128: +-%*8b:100000000000000000001000010010001:0:8: +-%8b:0B100000000000000000001000010010001:1:8:32: +-%*8b:0B100000000000000000001000010010001:0:8: +-%8b:0b100000000000000000001000010010001:1:8:32: +-%*8b:0b100000000000000000001000010010001:0:8: +-%8b:+0:1:2:0: +-%*8b:+0:0:2: +-%8b:+0B0:1:4:0: +-%*8b:+0B0:0:4: +-%8b:+0b0:1:4:0: +-%*8b:+0b0:0:4: +-%8b:+1:1:2:1: +-%*8b:+1:0:2: +-%8b:+0B1:1:4:1: +-%*8b:+0B1:0:4: +-%8b:+0b1:1:4:1: +-%*8b:+0b1:0:4: +-%8b:+101010:1:7:42: +-%*8b:+101010:0:7: +-%8b:+0B101010:1:8:21: +-%*8b:+0B101010:0:8: +-%8b:+0b101010:1:8:21: +-%*8b:+0b101010:0:8: +-%8b:+11111111111111111111111111111111:1:8:127: +-%*8b:+11111111111111111111111111111111:0:8: +-%8b:+0B11111111111111111111111111111111:1:8:31: +-%*8b:+0B11111111111111111111111111111111:0:8: +-%8b:+0b11111111111111111111111111111111:1:8:31: +-%*8b:+0b11111111111111111111111111111111:0:8: +-%8b:+100000000000000000000000000000000:1:8:64: +-%*8b:+100000000000000000000000000000000:0:8: +-%8b:+0B100000000000000000000000000000000:1:8:16: +-%*8b:+0B100000000000000000000000000000000:0:8: +-%8b:+0b100000000000000000000000000000000:1:8:16: +-%*8b:+0b100000000000000000000000000000000:0:8: +-%8b:+100000000000000000001000010010001:1:8:64: +-%*8b:+100000000000000000001000010010001:0:8: +-%8b:+0B100000000000000000001000010010001:1:8:16: +-%*8b:+0B100000000000000000001000010010001:0:8: +-%8b:+0b100000000000000000001000010010001:1:8:16: +-%*8b:+0b100000000000000000001000010010001:0:8: +-%15b::0:-1: +-%*15b::0:-1: +-%15b:-1111011:1:8:4294967173: +-%*15b:-1111011:0:8: +-%15b:-0B1111011:1:10:4294967173: +-%*15b:-0B1111011:0:10: +-%15b:-0b1111011:1:10:4294967173: +-%*15b:-0b1111011:0:10: +-%15b:-1:1:2:4294967295: +-%*15b:-1:0:2: +-%15b:-0B1:1:4:4294967295: +-%*15b:-0B1:0:4: +-%15b:-0b1:1:4:4294967295: +-%*15b:-0b1:0:4: +-%15b:-0:1:2:0: +-%*15b:-0:0:2: +-%15b:-0B0:1:4:0: +-%*15b:-0B0:0:4: +-%15b:-0b0:1:4:0: +-%*15b:-0b0:0:4: +-%15b:0:1:1:0: +-%*15b:0:0:1: +-%15b:0B0:1:3:0: +-%*15b:0B0:0:3: +-%15b:0b0:1:3:0: +-%*15b:0b0:0:3: +-%15b:1:1:1:1: +-%*15b:1:0:1: +-%15b:0B1:1:3:1: +-%*15b:0B1:0:3: +-%15b:0b1:1:3:1: +-%*15b:0b1:0:3: +-%15b:101010:1:6:42: +-%*15b:101010:0:6: +-%15b:0B101010:1:8:42: +-%*15b:0B101010:0:8: +-%15b:0b101010:1:8:42: +-%*15b:0b101010:0:8: +-%15b:11111111111111111111111111111111:1:15:32767: +-%*15b:11111111111111111111111111111111:0:15: +-%15b:0B11111111111111111111111111111111:1:15:8191: +-%*15b:0B11111111111111111111111111111111:0:15: +-%15b:0b11111111111111111111111111111111:1:15:8191: +-%*15b:0b11111111111111111111111111111111:0:15: +-%15b:100000000000000000000000000000000:1:15:16384: +-%*15b:100000000000000000000000000000000:0:15: +-%15b:0B100000000000000000000000000000000:1:15:4096: +-%*15b:0B100000000000000000000000000000000:0:15: +-%15b:0b100000000000000000000000000000000:1:15:4096: +-%*15b:0b100000000000000000000000000000000:0:15: +-%15b:100000000000000000001000010010001:1:15:16384: +-%*15b:100000000000000000001000010010001:0:15: +-%15b:0B100000000000000000001000010010001:1:15:4096: +-%*15b:0B100000000000000000001000010010001:0:15: +-%15b:0b100000000000000000001000010010001:1:15:4096: +-%*15b:0b100000000000000000001000010010001:0:15: +-%15b:+0:1:2:0: +-%*15b:+0:0:2: +-%15b:+0B0:1:4:0: +-%*15b:+0B0:0:4: +-%15b:+0b0:1:4:0: +-%*15b:+0b0:0:4: +-%15b:+1:1:2:1: +-%*15b:+1:0:2: +-%15b:+0B1:1:4:1: +-%*15b:+0B1:0:4: +-%15b:+0b1:1:4:1: +-%*15b:+0b1:0:4: +-%15b:+101010:1:7:42: +-%*15b:+101010:0:7: +-%15b:+0B101010:1:9:42: +-%*15b:+0B101010:0:9: +-%15b:+0b101010:1:9:42: +-%*15b:+0b101010:0:9: +-%15b:+11111111111111111111111111111111:1:15:16383: +-%*15b:+11111111111111111111111111111111:0:15: +-%15b:+0B11111111111111111111111111111111:1:15:4095: +-%*15b:+0B11111111111111111111111111111111:0:15: +-%15b:+0b11111111111111111111111111111111:1:15:4095: +-%*15b:+0b11111111111111111111111111111111:0:15: +-%15b:+100000000000000000000000000000000:1:15:8192: +-%*15b:+100000000000000000000000000000000:0:15: +-%15b:+0B100000000000000000000000000000000:1:15:2048: +-%*15b:+0B100000000000000000000000000000000:0:15: +-%15b:+0b100000000000000000000000000000000:1:15:2048: +-%*15b:+0b100000000000000000000000000000000:0:15: +-%15b:+100000000000000000001000010010001:1:15:8192: +-%*15b:+100000000000000000001000010010001:0:15: +-%15b:+0B100000000000000000001000010010001:1:15:2048: +-%*15b:+0B100000000000000000001000010010001:0:15: +-%15b:+0b100000000000000000001000010010001:1:15:2048: +-%*15b:+0b100000000000000000001000010010001:0:15: +-%2b: :0:-1: +-%*2b: :0:-1: +-%2b: -1111011:1:3:4294967295: +-%*2b: -1111011:0:3: +-%2b: -0B1111011:1:3:0: +-%*2b: -0B1111011:0:3: +-%2b: -0b1111011:1:3:0: +-%*2b: -0b1111011:0:3: +-%2b: -1:1:3:4294967295: +-%*2b: -1:0:3: +-%2b: -0B1:1:3:0: +-%*2b: -0B1:0:3: +-%2b: -0b1:1:3:0: +-%*2b: -0b1:0:3: +-%2b: -0:1:3:0: +-%*2b: -0:0:3: +-%2b: -0B0:1:3:0: +-%*2b: -0B0:0:3: +-%2b: -0b0:1:3:0: +-%*2b: -0b0:0:3: +-%2b: 0:1:2:0: +-%*2b: 0:0:2: +-# BZ12701 %2b: 0B0:0:-1: +-# BZ12701 %*2b: 0B0:0:-1: +-# BZ12701 %2b: 0b0:0:-1: +-# BZ12701 %*2b: 0b0:0:-1: +-%2b: 1:1:2:1: +-%*2b: 1:0:2: +-# BZ12701 %2b: 0B1:0:-1: +-# BZ12701 %*2b: 0B1:0:-1: +-# BZ12701 %2b: 0b1:0:-1: +-# BZ12701 %*2b: 0b1:0:-1: +-%2b: 101010:1:3:2: +-%*2b: 101010:0:3: +-# BZ12701 %2b: 0B101010:0:-1: +-# BZ12701 %*2b: 0B101010:0:-1: +-# BZ12701 %2b: 0b101010:0:-1: +-# BZ12701 %*2b: 0b101010:0:-1: +-%2b: 11111111111111111111111111111111:1:3:3: +-%*2b: 11111111111111111111111111111111:0:3: +-# BZ12701 %2b: 0B11111111111111111111111111111111:0:-1: +-# BZ12701 %*2b: 0B11111111111111111111111111111111:0:-1: +-# BZ12701 %2b: 0b11111111111111111111111111111111:0:-1: +-# BZ12701 %*2b: 0b11111111111111111111111111111111:0:-1: +-%2b: 100000000000000000000000000000000:1:3:2: +-%*2b: 100000000000000000000000000000000:0:3: +-# BZ12701 %2b: 0B100000000000000000000000000000000:0:-1: +-# BZ12701 %*2b: 0B100000000000000000000000000000000:0:-1: +-# BZ12701 %2b: 0b100000000000000000000000000000000:0:-1: +-# BZ12701 %*2b: 0b100000000000000000000000000000000:0:-1: +-%2b: 100000000000000000001000010010001:1:3:2: +-%*2b: 100000000000000000001000010010001:0:3: +-# BZ12701 %2b: 0B100000000000000000001000010010001:0:-1: +-# BZ12701 %*2b: 0B100000000000000000001000010010001:0:-1: +-# BZ12701 %2b: 0b100000000000000000001000010010001:0:-1: +-# BZ12701 %*2b: 0b100000000000000000001000010010001:0:-1: +-%2b: +0:1:3:0: +-%*2b: +0:0:3: +-%2b: +0B0:1:3:0: +-%*2b: +0B0:0:3: +-%2b: +0b0:1:3:0: +-%*2b: +0b0:0:3: +-%2b: +1:1:3:1: +-%*2b: +1:0:3: +-%2b: +0B1:1:3:0: +-%*2b: +0B1:0:3: +-%2b: +0b1:1:3:0: +-%*2b: +0b1:0:3: +-%2b: +101010:1:3:1: +-%*2b: +101010:0:3: +-%2b: +0B101010:1:3:0: +-%*2b: +0B101010:0:3: +-%2b: +0b101010:1:3:0: +-%*2b: +0b101010:0:3: +-%2b: +11111111111111111111111111111111:1:3:1: +-%*2b: +11111111111111111111111111111111:0:3: +-%2b: +0B11111111111111111111111111111111:1:3:0: +-%*2b: +0B11111111111111111111111111111111:0:3: +-%2b: +0b11111111111111111111111111111111:1:3:0: +-%*2b: +0b11111111111111111111111111111111:0:3: +-%2b: +100000000000000000000000000000000:1:3:1: +-%*2b: +100000000000000000000000000000000:0:3: +-%2b: +0B100000000000000000000000000000000:1:3:0: +-%*2b: +0B100000000000000000000000000000000:0:3: +-%2b: +0b100000000000000000000000000000000:1:3:0: +-%*2b: +0b100000000000000000000000000000000:0:3: +-%2b: +100000000000000000001000010010001:1:3:1: +-%*2b: +100000000000000000001000010010001:0:3: +-%2b: +0B100000000000000000001000010010001:1:3:0: +-%*2b: +0B100000000000000000001000010010001:0:3: +-%2b: +0b100000000000000000001000010010001:1:3:0: +-%*2b: +0b100000000000000000001000010010001:0:3: +-%15b: :0:-1: +-%*15b: :0:-1: +-%15b: -1111011:1:9:4294967173: +-%*15b: -1111011:0:9: +-%15b: -0B1111011:1:11:4294967173: +-%*15b: -0B1111011:0:11: +-%15b: -0b1111011:1:11:4294967173: +-%*15b: -0b1111011:0:11: +-%15b: -1:1:3:4294967295: +-%*15b: -1:0:3: +-%15b: -0B1:1:5:4294967295: +-%*15b: -0B1:0:5: +-%15b: -0b1:1:5:4294967295: +-%*15b: -0b1:0:5: +-%15b: -0:1:3:0: +-%*15b: -0:0:3: +-%15b: -0B0:1:5:0: +-%*15b: -0B0:0:5: +-%15b: -0b0:1:5:0: +-%*15b: -0b0:0:5: +-%15b: 0:1:2:0: +-%*15b: 0:0:2: +-%15b: 0B0:1:4:0: +-%*15b: 0B0:0:4: +-%15b: 0b0:1:4:0: +-%*15b: 0b0:0:4: +-%15b: 1:1:2:1: +-%*15b: 1:0:2: +-%15b: 0B1:1:4:1: +-%*15b: 0B1:0:4: +-%15b: 0b1:1:4:1: +-%*15b: 0b1:0:4: +-%15b: 101010:1:7:42: +-%*15b: 101010:0:7: +-%15b: 0B101010:1:9:42: +-%*15b: 0B101010:0:9: +-%15b: 0b101010:1:9:42: +-%*15b: 0b101010:0:9: +-%15b: 11111111111111111111111111111111:1:16:32767: +-%*15b: 11111111111111111111111111111111:0:16: +-%15b: 0B11111111111111111111111111111111:1:16:8191: +-%*15b: 0B11111111111111111111111111111111:0:16: +-%15b: 0b11111111111111111111111111111111:1:16:8191: +-%*15b: 0b11111111111111111111111111111111:0:16: +-%15b: 100000000000000000000000000000000:1:16:16384: +-%*15b: 100000000000000000000000000000000:0:16: +-%15b: 0B100000000000000000000000000000000:1:16:4096: +-%*15b: 0B100000000000000000000000000000000:0:16: +-%15b: 0b100000000000000000000000000000000:1:16:4096: +-%*15b: 0b100000000000000000000000000000000:0:16: +-%15b: 100000000000000000001000010010001:1:16:16384: +-%*15b: 100000000000000000001000010010001:0:16: +-%15b: 0B100000000000000000001000010010001:1:16:4096: +-%*15b: 0B100000000000000000001000010010001:0:16: +-%15b: 0b100000000000000000001000010010001:1:16:4096: +-%*15b: 0b100000000000000000001000010010001:0:16: +-%15b: +0:1:3:0: +-%*15b: +0:0:3: +-%15b: +0B0:1:5:0: +-%*15b: +0B0:0:5: +-%15b: +0b0:1:5:0: +-%*15b: +0b0:0:5: +-%15b: +1:1:3:1: +-%*15b: +1:0:3: +-%15b: +0B1:1:5:1: +-%*15b: +0B1:0:5: +-%15b: +0b1:1:5:1: +-%*15b: +0b1:0:5: +-%15b: +101010:1:8:42: +-%*15b: +101010:0:8: +-%15b: +0B101010:1:10:42: +-%*15b: +0B101010:0:10: +-%15b: +0b101010:1:10:42: +-%*15b: +0b101010:0:10: +-%15b: +11111111111111111111111111111111:1:16:16383: +-%*15b: +11111111111111111111111111111111:0:16: +-%15b: +0B11111111111111111111111111111111:1:16:4095: +-%*15b: +0B11111111111111111111111111111111:0:16: +-%15b: +0b11111111111111111111111111111111:1:16:4095: +-%*15b: +0b11111111111111111111111111111111:0:16: +-%15b: +100000000000000000000000000000000:1:16:8192: +-%*15b: +100000000000000000000000000000000:0:16: +-%15b: +0B100000000000000000000000000000000:1:16:2048: +-%*15b: +0B100000000000000000000000000000000:0:16: +-%15b: +0b100000000000000000000000000000000:1:16:2048: +-%*15b: +0b100000000000000000000000000000000:0:16: +-%15b: +100000000000000000001000010010001:1:16:8192: +-%*15b: +100000000000000000001000010010001:0:16: +-%15b: +0B100000000000000000001000010010001:1:16:2048: +-%*15b: +0B100000000000000000001000010010001:0:16: +-%15b: +0b100000000000000000001000010010001:1:16:2048: +-%*15b: +0b100000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-ulong-b.input b/sysdeps/wordsize-32/tst-scanf-format-ulong-b.input +deleted file mode 100644 +index 311ee862476f51d0..0000000000000000 +--- a/sysdeps/wordsize-32/tst-scanf-format-ulong-b.input ++++ /dev/null +@@ -1,644 +0,0 @@ +-%lb::0:-1: +-%*lb::0:-1: +-%lb:-1111011:1:8:4294967173: +-%*lb:-1111011:0:8: +-%lb:-0B1111011:1:10:4294967173: +-%*lb:-0B1111011:0:10: +-%lb:-0b1111011:1:10:4294967173: +-%*lb:-0b1111011:0:10: +-%lb:-1:1:2:4294967295: +-%*lb:-1:0:2: +-%lb:-0B1:1:4:4294967295: +-%*lb:-0B1:0:4: +-%lb:-0b1:1:4:4294967295: +-%*lb:-0b1:0:4: +-%lb:-0:1:2:0: +-%*lb:-0:0:2: +-%lb:-0B0:1:4:0: +-%*lb:-0B0:0:4: +-%lb:-0b0:1:4:0: +-%*lb:-0b0:0:4: +-%lb:0:1:1:0: +-%*lb:0:0:1: +-%lb:0B0:1:3:0: +-%*lb:0B0:0:3: +-%lb:0b0:1:3:0: +-%*lb:0b0:0:3: +-%lb:1:1:1:1: +-%*lb:1:0:1: +-%lb:0B1:1:3:1: +-%*lb:0B1:0:3: +-%lb:0b1:1:3:1: +-%*lb:0b1:0:3: +-%lb:101010:1:6:42: +-%*lb:101010:0:6: +-%lb:0B101010:1:8:42: +-%*lb:0B101010:0:8: +-%lb:0b101010:1:8:42: +-%*lb:0b101010:0:8: +-%lb:11111111111111111111111111111111:1:32:4294967295: +-%*lb:11111111111111111111111111111111:0:32: +-%lb:0B11111111111111111111111111111111:1:34:4294967295: +-%*lb:0B11111111111111111111111111111111:0:34: +-%lb:0b11111111111111111111111111111111:1:34:4294967295: +-%*lb:0b11111111111111111111111111111111:0:34: +-%lb:100000000000000000000000000000000:1:33:4294967295: +-%*lb:100000000000000000000000000000000:0:33: +-%lb:0B100000000000000000000000000000000:1:35:4294967295: +-%*lb:0B100000000000000000000000000000000:0:35: +-%lb:0b100000000000000000000000000000000:1:35:4294967295: +-%*lb:0b100000000000000000000000000000000:0:35: +-%lb:100000000000000000001000010010001:1:33:4294967295: +-%*lb:100000000000000000001000010010001:0:33: +-%lb:0B100000000000000000001000010010001:1:35:4294967295: +-%*lb:0B100000000000000000001000010010001:0:35: +-%lb:0b100000000000000000001000010010001:1:35:4294967295: +-%*lb:0b100000000000000000001000010010001:0:35: +-%lb:+0:1:2:0: +-%*lb:+0:0:2: +-%lb:+0B0:1:4:0: +-%*lb:+0B0:0:4: +-%lb:+0b0:1:4:0: +-%*lb:+0b0:0:4: +-%lb:+1:1:2:1: +-%*lb:+1:0:2: +-%lb:+0B1:1:4:1: +-%*lb:+0B1:0:4: +-%lb:+0b1:1:4:1: +-%*lb:+0b1:0:4: +-%lb:+101010:1:7:42: +-%*lb:+101010:0:7: +-%lb:+0B101010:1:9:42: +-%*lb:+0B101010:0:9: +-%lb:+0b101010:1:9:42: +-%*lb:+0b101010:0:9: +-%lb:+11111111111111111111111111111111:1:33:4294967295: +-%*lb:+11111111111111111111111111111111:0:33: +-%lb:+0B11111111111111111111111111111111:1:35:4294967295: +-%*lb:+0B11111111111111111111111111111111:0:35: +-%lb:+0b11111111111111111111111111111111:1:35:4294967295: +-%*lb:+0b11111111111111111111111111111111:0:35: +-%lb:+100000000000000000000000000000000:1:34:4294967295: +-%*lb:+100000000000000000000000000000000:0:34: +-%lb:+0B100000000000000000000000000000000:1:36:4294967295: +-%*lb:+0B100000000000000000000000000000000:0:36: +-%lb:+0b100000000000000000000000000000000:1:36:4294967295: +-%*lb:+0b100000000000000000000000000000000:0:36: +-%lb:+100000000000000000001000010010001:1:34:4294967295: +-%*lb:+100000000000000000001000010010001:0:34: +-%lb:+0B100000000000000000001000010010001:1:36:4294967295: +-%*lb:+0B100000000000000000001000010010001:0:36: +-%lb:+0b100000000000000000001000010010001:1:36:4294967295: +-%*lb:+0b100000000000000000001000010010001:0:36: +-%1lb::0:-1: +-%*1lb::0:-1: +-%1lb:-1111011:0:-1: +-%*1lb:-1111011:0:-1: +-%1lb:-0B1111011:0:-1: +-%*1lb:-0B1111011:0:-1: +-%1lb:-0b1111011:0:-1: +-%*1lb:-0b1111011:0:-1: +-%1lb:-1:0:-1: +-%*1lb:-1:0:-1: +-%1lb:-0B1:0:-1: +-%*1lb:-0B1:0:-1: +-%1lb:-0b1:0:-1: +-%*1lb:-0b1:0:-1: +-%1lb:-0:0:-1: +-%*1lb:-0:0:-1: +-%1lb:-0B0:0:-1: +-%*1lb:-0B0:0:-1: +-%1lb:-0b0:0:-1: +-%*1lb:-0b0:0:-1: +-%1lb:0:1:1:0: +-%*1lb:0:0:1: +-%1lb:0B0:1:1:0: +-%*1lb:0B0:0:1: +-%1lb:0b0:1:1:0: +-%*1lb:0b0:0:1: +-%1lb:1:1:1:1: +-%*1lb:1:0:1: +-%1lb:0B1:1:1:0: +-%*1lb:0B1:0:1: +-%1lb:0b1:1:1:0: +-%*1lb:0b1:0:1: +-%1lb:101010:1:1:1: +-%*1lb:101010:0:1: +-%1lb:0B101010:1:1:0: +-%*1lb:0B101010:0:1: +-%1lb:0b101010:1:1:0: +-%*1lb:0b101010:0:1: +-%1lb:11111111111111111111111111111111:1:1:1: +-%*1lb:11111111111111111111111111111111:0:1: +-%1lb:0B11111111111111111111111111111111:1:1:0: +-%*1lb:0B11111111111111111111111111111111:0:1: +-%1lb:0b11111111111111111111111111111111:1:1:0: +-%*1lb:0b11111111111111111111111111111111:0:1: +-%1lb:100000000000000000000000000000000:1:1:1: +-%*1lb:100000000000000000000000000000000:0:1: +-%1lb:0B100000000000000000000000000000000:1:1:0: +-%*1lb:0B100000000000000000000000000000000:0:1: +-%1lb:0b100000000000000000000000000000000:1:1:0: +-%*1lb:0b100000000000000000000000000000000:0:1: +-%1lb:100000000000000000001000010010001:1:1:1: +-%*1lb:100000000000000000001000010010001:0:1: +-%1lb:0B100000000000000000001000010010001:1:1:0: +-%*1lb:0B100000000000000000001000010010001:0:1: +-%1lb:0b100000000000000000001000010010001:1:1:0: +-%*1lb:0b100000000000000000001000010010001:0:1: +-%1lb:+0:0:-1: +-%*1lb:+0:0:-1: +-%1lb:+0B0:0:-1: +-%*1lb:+0B0:0:-1: +-%1lb:+0b0:0:-1: +-%*1lb:+0b0:0:-1: +-%1lb:+1:0:-1: +-%*1lb:+1:0:-1: +-%1lb:+0B1:0:-1: +-%*1lb:+0B1:0:-1: +-%1lb:+0b1:0:-1: +-%*1lb:+0b1:0:-1: +-%1lb:+101010:0:-1: +-%*1lb:+101010:0:-1: +-%1lb:+0B101010:0:-1: +-%*1lb:+0B101010:0:-1: +-%1lb:+0b101010:0:-1: +-%*1lb:+0b101010:0:-1: +-%1lb:+11111111111111111111111111111111:0:-1: +-%*1lb:+11111111111111111111111111111111:0:-1: +-%1lb:+0B11111111111111111111111111111111:0:-1: +-%*1lb:+0B11111111111111111111111111111111:0:-1: +-%1lb:+0b11111111111111111111111111111111:0:-1: +-%*1lb:+0b11111111111111111111111111111111:0:-1: +-%1lb:+100000000000000000000000000000000:0:-1: +-%*1lb:+100000000000000000000000000000000:0:-1: +-%1lb:+0B100000000000000000000000000000000:0:-1: +-%*1lb:+0B100000000000000000000000000000000:0:-1: +-%1lb:+0b100000000000000000000000000000000:0:-1: +-%*1lb:+0b100000000000000000000000000000000:0:-1: +-%1lb:+100000000000000000001000010010001:0:-1: +-%*1lb:+100000000000000000001000010010001:0:-1: +-%1lb:+0B100000000000000000001000010010001:0:-1: +-%*1lb:+0B100000000000000000001000010010001:0:-1: +-%1lb:+0b100000000000000000001000010010001:0:-1: +-%*1lb:+0b100000000000000000001000010010001:0:-1: +-%2lb::0:-1: +-%*2lb::0:-1: +-%2lb:-1111011:1:2:4294967295: +-%*2lb:-1111011:0:2: +-%2lb:-0B1111011:1:2:0: +-%*2lb:-0B1111011:0:2: +-%2lb:-0b1111011:1:2:0: +-%*2lb:-0b1111011:0:2: +-%2lb:-1:1:2:4294967295: +-%*2lb:-1:0:2: +-%2lb:-0B1:1:2:0: +-%*2lb:-0B1:0:2: +-%2lb:-0b1:1:2:0: +-%*2lb:-0b1:0:2: +-%2lb:-0:1:2:0: +-%*2lb:-0:0:2: +-%2lb:-0B0:1:2:0: +-%*2lb:-0B0:0:2: +-%2lb:-0b0:1:2:0: +-%*2lb:-0b0:0:2: +-%2lb:0:1:1:0: +-%*2lb:0:0:1: +-# BZ12701 %2lb:0B0:0:-1: +-# BZ12701 %*2lb:0B0:0:-1: +-# BZ12701 %2lb:0b0:0:-1: +-# BZ12701 %*2lb:0b0:0:-1: +-%2lb:1:1:1:1: +-%*2lb:1:0:1: +-# BZ12701 %2lb:0B1:0:-1: +-# BZ12701 %*2lb:0B1:0:-1: +-# BZ12701 %2lb:0b1:0:-1: +-# BZ12701 %*2lb:0b1:0:-1: +-%2lb:101010:1:2:2: +-%*2lb:101010:0:2: +-# BZ12701 %2lb:0B101010:0:-1: +-# BZ12701 %*2lb:0B101010:0:-1: +-# BZ12701 %2lb:0b101010:0:-1: +-# BZ12701 %*2lb:0b101010:0:-1: +-%2lb:11111111111111111111111111111111:1:2:3: +-%*2lb:11111111111111111111111111111111:0:2: +-# BZ12701 %2lb:0B11111111111111111111111111111111:0:-1: +-# BZ12701 %*2lb:0B11111111111111111111111111111111:0:-1: +-# BZ12701 %2lb:0b11111111111111111111111111111111:0:-1: +-# BZ12701 %*2lb:0b11111111111111111111111111111111:0:-1: +-%2lb:100000000000000000000000000000000:1:2:2: +-%*2lb:100000000000000000000000000000000:0:2: +-# BZ12701 %2lb:0B100000000000000000000000000000000:0:-1: +-# BZ12701 %*2lb:0B100000000000000000000000000000000:0:-1: +-# BZ12701 %2lb:0b100000000000000000000000000000000:0:-1: +-# BZ12701 %*2lb:0b100000000000000000000000000000000:0:-1: +-%2lb:100000000000000000001000010010001:1:2:2: +-%*2lb:100000000000000000001000010010001:0:2: +-# BZ12701 %2lb:0B100000000000000000001000010010001:0:-1: +-# BZ12701 %*2lb:0B100000000000000000001000010010001:0:-1: +-# BZ12701 %2lb:0b100000000000000000001000010010001:0:-1: +-# BZ12701 %*2lb:0b100000000000000000001000010010001:0:-1: +-%2lb:+0:1:2:0: +-%*2lb:+0:0:2: +-%2lb:+0B0:1:2:0: +-%*2lb:+0B0:0:2: +-%2lb:+0b0:1:2:0: +-%*2lb:+0b0:0:2: +-%2lb:+1:1:2:1: +-%*2lb:+1:0:2: +-%2lb:+0B1:1:2:0: +-%*2lb:+0B1:0:2: +-%2lb:+0b1:1:2:0: +-%*2lb:+0b1:0:2: +-%2lb:+101010:1:2:1: +-%*2lb:+101010:0:2: +-%2lb:+0B101010:1:2:0: +-%*2lb:+0B101010:0:2: +-%2lb:+0b101010:1:2:0: +-%*2lb:+0b101010:0:2: +-%2lb:+11111111111111111111111111111111:1:2:1: +-%*2lb:+11111111111111111111111111111111:0:2: +-%2lb:+0B11111111111111111111111111111111:1:2:0: +-%*2lb:+0B11111111111111111111111111111111:0:2: +-%2lb:+0b11111111111111111111111111111111:1:2:0: +-%*2lb:+0b11111111111111111111111111111111:0:2: +-%2lb:+100000000000000000000000000000000:1:2:1: +-%*2lb:+100000000000000000000000000000000:0:2: +-%2lb:+0B100000000000000000000000000000000:1:2:0: +-%*2lb:+0B100000000000000000000000000000000:0:2: +-%2lb:+0b100000000000000000000000000000000:1:2:0: +-%*2lb:+0b100000000000000000000000000000000:0:2: +-%2lb:+100000000000000000001000010010001:1:2:1: +-%*2lb:+100000000000000000001000010010001:0:2: +-%2lb:+0B100000000000000000001000010010001:1:2:0: +-%*2lb:+0B100000000000000000001000010010001:0:2: +-%2lb:+0b100000000000000000001000010010001:1:2:0: +-%*2lb:+0b100000000000000000001000010010001:0:2: +-%8lb::0:-1: +-%*8lb::0:-1: +-%8lb:-1111011:1:8:4294967173: +-%*8lb:-1111011:0:8: +-%8lb:-0B1111011:1:8:4294967266: +-%*8lb:-0B1111011:0:8: +-%8lb:-0b1111011:1:8:4294967266: +-%*8lb:-0b1111011:0:8: +-%8lb:-1:1:2:4294967295: +-%*8lb:-1:0:2: +-%8lb:-0B1:1:4:4294967295: +-%*8lb:-0B1:0:4: +-%8lb:-0b1:1:4:4294967295: +-%*8lb:-0b1:0:4: +-%8lb:-0:1:2:0: +-%*8lb:-0:0:2: +-%8lb:-0B0:1:4:0: +-%*8lb:-0B0:0:4: +-%8lb:-0b0:1:4:0: +-%*8lb:-0b0:0:4: +-%8lb:0:1:1:0: +-%*8lb:0:0:1: +-%8lb:0B0:1:3:0: +-%*8lb:0B0:0:3: +-%8lb:0b0:1:3:0: +-%*8lb:0b0:0:3: +-%8lb:1:1:1:1: +-%*8lb:1:0:1: +-%8lb:0B1:1:3:1: +-%*8lb:0B1:0:3: +-%8lb:0b1:1:3:1: +-%*8lb:0b1:0:3: +-%8lb:101010:1:6:42: +-%*8lb:101010:0:6: +-%8lb:0B101010:1:8:42: +-%*8lb:0B101010:0:8: +-%8lb:0b101010:1:8:42: +-%*8lb:0b101010:0:8: +-%8lb:11111111111111111111111111111111:1:8:255: +-%*8lb:11111111111111111111111111111111:0:8: +-%8lb:0B11111111111111111111111111111111:1:8:63: +-%*8lb:0B11111111111111111111111111111111:0:8: +-%8lb:0b11111111111111111111111111111111:1:8:63: +-%*8lb:0b11111111111111111111111111111111:0:8: +-%8lb:100000000000000000000000000000000:1:8:128: +-%*8lb:100000000000000000000000000000000:0:8: +-%8lb:0B100000000000000000000000000000000:1:8:32: +-%*8lb:0B100000000000000000000000000000000:0:8: +-%8lb:0b100000000000000000000000000000000:1:8:32: +-%*8lb:0b100000000000000000000000000000000:0:8: +-%8lb:100000000000000000001000010010001:1:8:128: +-%*8lb:100000000000000000001000010010001:0:8: +-%8lb:0B100000000000000000001000010010001:1:8:32: +-%*8lb:0B100000000000000000001000010010001:0:8: +-%8lb:0b100000000000000000001000010010001:1:8:32: +-%*8lb:0b100000000000000000001000010010001:0:8: +-%8lb:+0:1:2:0: +-%*8lb:+0:0:2: +-%8lb:+0B0:1:4:0: +-%*8lb:+0B0:0:4: +-%8lb:+0b0:1:4:0: +-%*8lb:+0b0:0:4: +-%8lb:+1:1:2:1: +-%*8lb:+1:0:2: +-%8lb:+0B1:1:4:1: +-%*8lb:+0B1:0:4: +-%8lb:+0b1:1:4:1: +-%*8lb:+0b1:0:4: +-%8lb:+101010:1:7:42: +-%*8lb:+101010:0:7: +-%8lb:+0B101010:1:8:21: +-%*8lb:+0B101010:0:8: +-%8lb:+0b101010:1:8:21: +-%*8lb:+0b101010:0:8: +-%8lb:+11111111111111111111111111111111:1:8:127: +-%*8lb:+11111111111111111111111111111111:0:8: +-%8lb:+0B11111111111111111111111111111111:1:8:31: +-%*8lb:+0B11111111111111111111111111111111:0:8: +-%8lb:+0b11111111111111111111111111111111:1:8:31: +-%*8lb:+0b11111111111111111111111111111111:0:8: +-%8lb:+100000000000000000000000000000000:1:8:64: +-%*8lb:+100000000000000000000000000000000:0:8: +-%8lb:+0B100000000000000000000000000000000:1:8:16: +-%*8lb:+0B100000000000000000000000000000000:0:8: +-%8lb:+0b100000000000000000000000000000000:1:8:16: +-%*8lb:+0b100000000000000000000000000000000:0:8: +-%8lb:+100000000000000000001000010010001:1:8:64: +-%*8lb:+100000000000000000001000010010001:0:8: +-%8lb:+0B100000000000000000001000010010001:1:8:16: +-%*8lb:+0B100000000000000000001000010010001:0:8: +-%8lb:+0b100000000000000000001000010010001:1:8:16: +-%*8lb:+0b100000000000000000001000010010001:0:8: +-%15lb::0:-1: +-%*15lb::0:-1: +-%15lb:-1111011:1:8:4294967173: +-%*15lb:-1111011:0:8: +-%15lb:-0B1111011:1:10:4294967173: +-%*15lb:-0B1111011:0:10: +-%15lb:-0b1111011:1:10:4294967173: +-%*15lb:-0b1111011:0:10: +-%15lb:-1:1:2:4294967295: +-%*15lb:-1:0:2: +-%15lb:-0B1:1:4:4294967295: +-%*15lb:-0B1:0:4: +-%15lb:-0b1:1:4:4294967295: +-%*15lb:-0b1:0:4: +-%15lb:-0:1:2:0: +-%*15lb:-0:0:2: +-%15lb:-0B0:1:4:0: +-%*15lb:-0B0:0:4: +-%15lb:-0b0:1:4:0: +-%*15lb:-0b0:0:4: +-%15lb:0:1:1:0: +-%*15lb:0:0:1: +-%15lb:0B0:1:3:0: +-%*15lb:0B0:0:3: +-%15lb:0b0:1:3:0: +-%*15lb:0b0:0:3: +-%15lb:1:1:1:1: +-%*15lb:1:0:1: +-%15lb:0B1:1:3:1: +-%*15lb:0B1:0:3: +-%15lb:0b1:1:3:1: +-%*15lb:0b1:0:3: +-%15lb:101010:1:6:42: +-%*15lb:101010:0:6: +-%15lb:0B101010:1:8:42: +-%*15lb:0B101010:0:8: +-%15lb:0b101010:1:8:42: +-%*15lb:0b101010:0:8: +-%15lb:11111111111111111111111111111111:1:15:32767: +-%*15lb:11111111111111111111111111111111:0:15: +-%15lb:0B11111111111111111111111111111111:1:15:8191: +-%*15lb:0B11111111111111111111111111111111:0:15: +-%15lb:0b11111111111111111111111111111111:1:15:8191: +-%*15lb:0b11111111111111111111111111111111:0:15: +-%15lb:100000000000000000000000000000000:1:15:16384: +-%*15lb:100000000000000000000000000000000:0:15: +-%15lb:0B100000000000000000000000000000000:1:15:4096: +-%*15lb:0B100000000000000000000000000000000:0:15: +-%15lb:0b100000000000000000000000000000000:1:15:4096: +-%*15lb:0b100000000000000000000000000000000:0:15: +-%15lb:100000000000000000001000010010001:1:15:16384: +-%*15lb:100000000000000000001000010010001:0:15: +-%15lb:0B100000000000000000001000010010001:1:15:4096: +-%*15lb:0B100000000000000000001000010010001:0:15: +-%15lb:0b100000000000000000001000010010001:1:15:4096: +-%*15lb:0b100000000000000000001000010010001:0:15: +-%15lb:+0:1:2:0: +-%*15lb:+0:0:2: +-%15lb:+0B0:1:4:0: +-%*15lb:+0B0:0:4: +-%15lb:+0b0:1:4:0: +-%*15lb:+0b0:0:4: +-%15lb:+1:1:2:1: +-%*15lb:+1:0:2: +-%15lb:+0B1:1:4:1: +-%*15lb:+0B1:0:4: +-%15lb:+0b1:1:4:1: +-%*15lb:+0b1:0:4: +-%15lb:+101010:1:7:42: +-%*15lb:+101010:0:7: +-%15lb:+0B101010:1:9:42: +-%*15lb:+0B101010:0:9: +-%15lb:+0b101010:1:9:42: +-%*15lb:+0b101010:0:9: +-%15lb:+11111111111111111111111111111111:1:15:16383: +-%*15lb:+11111111111111111111111111111111:0:15: +-%15lb:+0B11111111111111111111111111111111:1:15:4095: +-%*15lb:+0B11111111111111111111111111111111:0:15: +-%15lb:+0b11111111111111111111111111111111:1:15:4095: +-%*15lb:+0b11111111111111111111111111111111:0:15: +-%15lb:+100000000000000000000000000000000:1:15:8192: +-%*15lb:+100000000000000000000000000000000:0:15: +-%15lb:+0B100000000000000000000000000000000:1:15:2048: +-%*15lb:+0B100000000000000000000000000000000:0:15: +-%15lb:+0b100000000000000000000000000000000:1:15:2048: +-%*15lb:+0b100000000000000000000000000000000:0:15: +-%15lb:+100000000000000000001000010010001:1:15:8192: +-%*15lb:+100000000000000000001000010010001:0:15: +-%15lb:+0B100000000000000000001000010010001:1:15:2048: +-%*15lb:+0B100000000000000000001000010010001:0:15: +-%15lb:+0b100000000000000000001000010010001:1:15:2048: +-%*15lb:+0b100000000000000000001000010010001:0:15: +-%2lb: :0:-1: +-%*2lb: :0:-1: +-%2lb: -1111011:1:3:4294967295: +-%*2lb: -1111011:0:3: +-%2lb: -0B1111011:1:3:0: +-%*2lb: -0B1111011:0:3: +-%2lb: -0b1111011:1:3:0: +-%*2lb: -0b1111011:0:3: +-%2lb: -1:1:3:4294967295: +-%*2lb: -1:0:3: +-%2lb: -0B1:1:3:0: +-%*2lb: -0B1:0:3: +-%2lb: -0b1:1:3:0: +-%*2lb: -0b1:0:3: +-%2lb: -0:1:3:0: +-%*2lb: -0:0:3: +-%2lb: -0B0:1:3:0: +-%*2lb: -0B0:0:3: +-%2lb: -0b0:1:3:0: +-%*2lb: -0b0:0:3: +-%2lb: 0:1:2:0: +-%*2lb: 0:0:2: +-# BZ12701 %2lb: 0B0:0:-1: +-# BZ12701 %*2lb: 0B0:0:-1: +-# BZ12701 %2lb: 0b0:0:-1: +-# BZ12701 %*2lb: 0b0:0:-1: +-%2lb: 1:1:2:1: +-%*2lb: 1:0:2: +-# BZ12701 %2lb: 0B1:0:-1: +-# BZ12701 %*2lb: 0B1:0:-1: +-# BZ12701 %2lb: 0b1:0:-1: +-# BZ12701 %*2lb: 0b1:0:-1: +-%2lb: 101010:1:3:2: +-%*2lb: 101010:0:3: +-# BZ12701 %2lb: 0B101010:0:-1: +-# BZ12701 %*2lb: 0B101010:0:-1: +-# BZ12701 %2lb: 0b101010:0:-1: +-# BZ12701 %*2lb: 0b101010:0:-1: +-%2lb: 11111111111111111111111111111111:1:3:3: +-%*2lb: 11111111111111111111111111111111:0:3: +-# BZ12701 %2lb: 0B11111111111111111111111111111111:0:-1: +-# BZ12701 %*2lb: 0B11111111111111111111111111111111:0:-1: +-# BZ12701 %2lb: 0b11111111111111111111111111111111:0:-1: +-# BZ12701 %*2lb: 0b11111111111111111111111111111111:0:-1: +-%2lb: 100000000000000000000000000000000:1:3:2: +-%*2lb: 100000000000000000000000000000000:0:3: +-# BZ12701 %2lb: 0B100000000000000000000000000000000:0:-1: +-# BZ12701 %*2lb: 0B100000000000000000000000000000000:0:-1: +-# BZ12701 %2lb: 0b100000000000000000000000000000000:0:-1: +-# BZ12701 %*2lb: 0b100000000000000000000000000000000:0:-1: +-%2lb: 100000000000000000001000010010001:1:3:2: +-%*2lb: 100000000000000000001000010010001:0:3: +-# BZ12701 %2lb: 0B100000000000000000001000010010001:0:-1: +-# BZ12701 %*2lb: 0B100000000000000000001000010010001:0:-1: +-# BZ12701 %2lb: 0b100000000000000000001000010010001:0:-1: +-# BZ12701 %*2lb: 0b100000000000000000001000010010001:0:-1: +-%2lb: +0:1:3:0: +-%*2lb: +0:0:3: +-%2lb: +0B0:1:3:0: +-%*2lb: +0B0:0:3: +-%2lb: +0b0:1:3:0: +-%*2lb: +0b0:0:3: +-%2lb: +1:1:3:1: +-%*2lb: +1:0:3: +-%2lb: +0B1:1:3:0: +-%*2lb: +0B1:0:3: +-%2lb: +0b1:1:3:0: +-%*2lb: +0b1:0:3: +-%2lb: +101010:1:3:1: +-%*2lb: +101010:0:3: +-%2lb: +0B101010:1:3:0: +-%*2lb: +0B101010:0:3: +-%2lb: +0b101010:1:3:0: +-%*2lb: +0b101010:0:3: +-%2lb: +11111111111111111111111111111111:1:3:1: +-%*2lb: +11111111111111111111111111111111:0:3: +-%2lb: +0B11111111111111111111111111111111:1:3:0: +-%*2lb: +0B11111111111111111111111111111111:0:3: +-%2lb: +0b11111111111111111111111111111111:1:3:0: +-%*2lb: +0b11111111111111111111111111111111:0:3: +-%2lb: +100000000000000000000000000000000:1:3:1: +-%*2lb: +100000000000000000000000000000000:0:3: +-%2lb: +0B100000000000000000000000000000000:1:3:0: +-%*2lb: +0B100000000000000000000000000000000:0:3: +-%2lb: +0b100000000000000000000000000000000:1:3:0: +-%*2lb: +0b100000000000000000000000000000000:0:3: +-%2lb: +100000000000000000001000010010001:1:3:1: +-%*2lb: +100000000000000000001000010010001:0:3: +-%2lb: +0B100000000000000000001000010010001:1:3:0: +-%*2lb: +0B100000000000000000001000010010001:0:3: +-%2lb: +0b100000000000000000001000010010001:1:3:0: +-%*2lb: +0b100000000000000000001000010010001:0:3: +-%15lb: :0:-1: +-%*15lb: :0:-1: +-%15lb: -1111011:1:9:4294967173: +-%*15lb: -1111011:0:9: +-%15lb: -0B1111011:1:11:4294967173: +-%*15lb: -0B1111011:0:11: +-%15lb: -0b1111011:1:11:4294967173: +-%*15lb: -0b1111011:0:11: +-%15lb: -1:1:3:4294967295: +-%*15lb: -1:0:3: +-%15lb: -0B1:1:5:4294967295: +-%*15lb: -0B1:0:5: +-%15lb: -0b1:1:5:4294967295: +-%*15lb: -0b1:0:5: +-%15lb: -0:1:3:0: +-%*15lb: -0:0:3: +-%15lb: -0B0:1:5:0: +-%*15lb: -0B0:0:5: +-%15lb: -0b0:1:5:0: +-%*15lb: -0b0:0:5: +-%15lb: 0:1:2:0: +-%*15lb: 0:0:2: +-%15lb: 0B0:1:4:0: +-%*15lb: 0B0:0:4: +-%15lb: 0b0:1:4:0: +-%*15lb: 0b0:0:4: +-%15lb: 1:1:2:1: +-%*15lb: 1:0:2: +-%15lb: 0B1:1:4:1: +-%*15lb: 0B1:0:4: +-%15lb: 0b1:1:4:1: +-%*15lb: 0b1:0:4: +-%15lb: 101010:1:7:42: +-%*15lb: 101010:0:7: +-%15lb: 0B101010:1:9:42: +-%*15lb: 0B101010:0:9: +-%15lb: 0b101010:1:9:42: +-%*15lb: 0b101010:0:9: +-%15lb: 11111111111111111111111111111111:1:16:32767: +-%*15lb: 11111111111111111111111111111111:0:16: +-%15lb: 0B11111111111111111111111111111111:1:16:8191: +-%*15lb: 0B11111111111111111111111111111111:0:16: +-%15lb: 0b11111111111111111111111111111111:1:16:8191: +-%*15lb: 0b11111111111111111111111111111111:0:16: +-%15lb: 100000000000000000000000000000000:1:16:16384: +-%*15lb: 100000000000000000000000000000000:0:16: +-%15lb: 0B100000000000000000000000000000000:1:16:4096: +-%*15lb: 0B100000000000000000000000000000000:0:16: +-%15lb: 0b100000000000000000000000000000000:1:16:4096: +-%*15lb: 0b100000000000000000000000000000000:0:16: +-%15lb: 100000000000000000001000010010001:1:16:16384: +-%*15lb: 100000000000000000001000010010001:0:16: +-%15lb: 0B100000000000000000001000010010001:1:16:4096: +-%*15lb: 0B100000000000000000001000010010001:0:16: +-%15lb: 0b100000000000000000001000010010001:1:16:4096: +-%*15lb: 0b100000000000000000001000010010001:0:16: +-%15lb: +0:1:3:0: +-%*15lb: +0:0:3: +-%15lb: +0B0:1:5:0: +-%*15lb: +0B0:0:5: +-%15lb: +0b0:1:5:0: +-%*15lb: +0b0:0:5: +-%15lb: +1:1:3:1: +-%*15lb: +1:0:3: +-%15lb: +0B1:1:5:1: +-%*15lb: +0B1:0:5: +-%15lb: +0b1:1:5:1: +-%*15lb: +0b1:0:5: +-%15lb: +101010:1:8:42: +-%*15lb: +101010:0:8: +-%15lb: +0B101010:1:10:42: +-%*15lb: +0B101010:0:10: +-%15lb: +0b101010:1:10:42: +-%*15lb: +0b101010:0:10: +-%15lb: +11111111111111111111111111111111:1:16:16383: +-%*15lb: +11111111111111111111111111111111:0:16: +-%15lb: +0B11111111111111111111111111111111:1:16:4095: +-%*15lb: +0B11111111111111111111111111111111:0:16: +-%15lb: +0b11111111111111111111111111111111:1:16:4095: +-%*15lb: +0b11111111111111111111111111111111:0:16: +-%15lb: +100000000000000000000000000000000:1:16:8192: +-%*15lb: +100000000000000000000000000000000:0:16: +-%15lb: +0B100000000000000000000000000000000:1:16:2048: +-%*15lb: +0B100000000000000000000000000000000:0:16: +-%15lb: +0b100000000000000000000000000000000:1:16:2048: +-%*15lb: +0b100000000000000000000000000000000:0:16: +-%15lb: +100000000000000000001000010010001:1:16:8192: +-%*15lb: +100000000000000000001000010010001:0:16: +-%15lb: +0B100000000000000000001000010010001:1:16:2048: +-%*15lb: +0B100000000000000000001000010010001:0:16: +-%15lb: +0b100000000000000000001000010010001:1:16:2048: +-%*15lb: +0b100000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-int-i.input b/sysdeps/wordsize-64/tst-scanf-format-int-i.input +index 8450d1aefc55cddf..8357754da1ca14ef 100644 +--- a/sysdeps/wordsize-64/tst-scanf-format-int-i.input ++++ b/sysdeps/wordsize-64/tst-scanf-format-int-i.input +@@ -8,10 +8,6 @@ + %*i:-0x800004D2:0:11: + %i:-020000002322:1:13:2147482414: + %*i:-020000002322:0:13: +-%i:-0B10000000000000000000010011010010:1:35:2147482414: +-%*i:-0B10000000000000000000010011010010:0:35: +-%i:-0b10000000000000000000010011010010:1:35:2147482414: +-%*i:-0b10000000000000000000010011010010:0:35: + %i:-2147483649:1:11:2147483647: + %*i:-2147483649:0:11: + %i:-0X80000001:1:11:2147483647: +@@ -20,10 +16,6 @@ + %*i:-0x80000001:0:11: + %i:-020000000001:1:13:2147483647: + %*i:-020000000001:0:13: +-%i:-0B10000000000000000000000000000001:1:35:2147483647: +-%*i:-0B10000000000000000000000000000001:0:35: +-%i:-0b10000000000000000000000000000001:1:35:2147483647: +-%*i:-0b10000000000000000000000000000001:0:35: + %i:-2147483648:1:11:-2147483648: + %*i:-2147483648:0:11: + %i:-0X80000000:1:11:-2147483648: +@@ -32,10 +24,6 @@ + %*i:-0x80000000:0:11: + %i:-020000000000:1:13:-2147483648: + %*i:-020000000000:0:13: +-%i:-0B10000000000000000000000000000000:1:35:-2147483648: +-%*i:-0B10000000000000000000000000000000:0:35: +-%i:-0b10000000000000000000000000000000:1:35:-2147483648: +-%*i:-0b10000000000000000000000000000000:0:35: + %i:-123:1:4:-123: + %*i:-123:0:4: + %i:-0X7b:1:5:-123: +@@ -44,10 +32,6 @@ + %*i:-0x7B:0:5: + %i:-0173:1:5:-123: + %*i:-0173:0:5: +-%i:-0B1111011:1:10:-123: +-%*i:-0B1111011:0:10: +-%i:-0b1111011:1:10:-123: +-%*i:-0b1111011:0:10: + %i:-1:1:2:-1: + %*i:-1:0:2: + %i:-0X1:1:4:-1: +@@ -56,10 +40,6 @@ + %*i:-0x1:0:4: + %i:-01:1:3:-1: + %*i:-01:0:3: +-%i:-0B1:1:4:-1: +-%*i:-0B1:0:4: +-%i:-0b1:1:4:-1: +-%*i:-0b1:0:4: + %i:-0:1:2:0: + %*i:-0:0:2: + %i:-0X0:1:4:0: +@@ -68,10 +48,6 @@ + %*i:-0x0:0:4: + %i:-00:1:3:0: + %*i:-00:0:3: +-%i:-0B0:1:4:0: +-%*i:-0B0:0:4: +-%i:-0b0:1:4:0: +-%*i:-0b0:0:4: + %i:0:1:1:0: + %*i:0:0:1: + %i:0X0:1:3:0: +@@ -80,10 +56,6 @@ + %*i:0x0:0:3: + %i:00:1:2:0: + %*i:00:0:2: +-%i:0B0:1:3:0: +-%*i:0B0:0:3: +-%i:0b0:1:3:0: +-%*i:0b0:0:3: + %i:1:1:1:1: + %*i:1:0:1: + %i:0X1:1:3:1: +@@ -92,10 +64,6 @@ + %*i:0x1:0:3: + %i:01:1:2:1: + %*i:01:0:2: +-%i:0B1:1:3:1: +-%*i:0B1:0:3: +-%i:0b1:1:3:1: +-%*i:0b1:0:3: + %i:42:1:2:42: + %*i:42:0:2: + %i:0X2a:1:4:42: +@@ -104,10 +72,6 @@ + %*i:0x2A:0:4: + %i:052:1:3:42: + %*i:052:0:3: +-%i:0B101010:1:8:42: +-%*i:0B101010:0:8: +-%i:0b101010:1:8:42: +-%*i:0b101010:0:8: + %i:2147483647:1:10:2147483647: + %*i:2147483647:0:10: + %i:0X7fffffff:1:10:2147483647: +@@ -116,10 +80,6 @@ + %*i:0x7FFFFFFF:0:10: + %i:017777777777:1:12:2147483647: + %*i:017777777777:0:12: +-%i:0B1111111111111111111111111111111:1:33:2147483647: +-%*i:0B1111111111111111111111111111111:0:33: +-%i:0b1111111111111111111111111111111:1:33:2147483647: +-%*i:0b1111111111111111111111111111111:0:33: + %i:2147483648:1:10:-2147483648: + %*i:2147483648:0:10: + %i:0X80000000:1:10:-2147483648: +@@ -128,10 +88,6 @@ + %*i:0x80000000:0:10: + %i:020000000000:1:12:-2147483648: + %*i:020000000000:0:12: +-%i:0B10000000000000000000000000000000:1:34:-2147483648: +-%*i:0B10000000000000000000000000000000:0:34: +-%i:0b10000000000000000000000000000000:1:34:-2147483648: +-%*i:0b10000000000000000000000000000000:0:34: + %i:2147487889:1:10:-2147479407: + %*i:2147487889:0:10: + %i:0X80001091:1:10:-2147479407: +@@ -140,10 +96,6 @@ + %*i:0x80001091:0:10: + %i:020000010221:1:12:-2147479407: + %*i:020000010221:0:12: +-%i:0B10000000000000000001000010010001:1:34:-2147479407: +-%*i:0B10000000000000000001000010010001:0:34: +-%i:0b10000000000000000001000010010001:1:34:-2147479407: +-%*i:0b10000000000000000001000010010001:0:34: + %i:+0:1:2:0: + %*i:+0:0:2: + %i:+0X0:1:4:0: +@@ -152,10 +104,6 @@ + %*i:+0x0:0:4: + %i:+00:1:3:0: + %*i:+00:0:3: +-%i:+0B0:1:4:0: +-%*i:+0B0:0:4: +-%i:+0b0:1:4:0: +-%*i:+0b0:0:4: + %i:+1:1:2:1: + %*i:+1:0:2: + %i:+0X1:1:4:1: +@@ -164,10 +112,6 @@ + %*i:+0x1:0:4: + %i:+01:1:3:1: + %*i:+01:0:3: +-%i:+0B1:1:4:1: +-%*i:+0B1:0:4: +-%i:+0b1:1:4:1: +-%*i:+0b1:0:4: + %i:+42:1:3:42: + %*i:+42:0:3: + %i:+0X2a:1:5:42: +@@ -176,10 +120,6 @@ + %*i:+0x2A:0:5: + %i:+052:1:4:42: + %*i:+052:0:4: +-%i:+0B101010:1:9:42: +-%*i:+0B101010:0:9: +-%i:+0b101010:1:9:42: +-%*i:+0b101010:0:9: + %i:+2147483647:1:11:2147483647: + %*i:+2147483647:0:11: + %i:+0X7fffffff:1:11:2147483647: +@@ -188,10 +128,6 @@ + %*i:+0x7FFFFFFF:0:11: + %i:+017777777777:1:13:2147483647: + %*i:+017777777777:0:13: +-%i:+0B1111111111111111111111111111111:1:34:2147483647: +-%*i:+0B1111111111111111111111111111111:0:34: +-%i:+0b1111111111111111111111111111111:1:34:2147483647: +-%*i:+0b1111111111111111111111111111111:0:34: + %i:+2147483648:1:11:-2147483648: + %*i:+2147483648:0:11: + %i:+0X80000000:1:11:-2147483648: +@@ -200,10 +136,6 @@ + %*i:+0x80000000:0:11: + %i:+020000000000:1:13:-2147483648: + %*i:+020000000000:0:13: +-%i:+0B10000000000000000000000000000000:1:35:-2147483648: +-%*i:+0B10000000000000000000000000000000:0:35: +-%i:+0b10000000000000000000000000000000:1:35:-2147483648: +-%*i:+0b10000000000000000000000000000000:0:35: + %i:+2147487889:1:11:-2147479407: + %*i:+2147487889:0:11: + %i:+0X80001091:1:11:-2147479407: +@@ -212,10 +144,6 @@ + %*i:+0x80001091:0:11: + %i:+020000010221:1:13:-2147479407: + %*i:+020000010221:0:13: +-%i:+0B10000000000000000001000010010001:1:35:-2147479407: +-%*i:+0B10000000000000000001000010010001:0:35: +-%i:+0b10000000000000000001000010010001:1:35:-2147479407: +-%*i:+0b10000000000000000001000010010001:0:35: + %1i::0:-1: + %*1i::0:-1: + %1i:-2147484882:0:-1: +@@ -226,10 +154,6 @@ + %*1i:-0x800004D2:0:-1: + %1i:-020000002322:0:-1: + %*1i:-020000002322:0:-1: +-%1i:-0B10000000000000000000010011010010:0:-1: +-%*1i:-0B10000000000000000000010011010010:0:-1: +-%1i:-0b10000000000000000000010011010010:0:-1: +-%*1i:-0b10000000000000000000010011010010:0:-1: + %1i:-2147483649:0:-1: + %*1i:-2147483649:0:-1: + %1i:-0X80000001:0:-1: +@@ -238,10 +162,6 @@ + %*1i:-0x80000001:0:-1: + %1i:-020000000001:0:-1: + %*1i:-020000000001:0:-1: +-%1i:-0B10000000000000000000000000000001:0:-1: +-%*1i:-0B10000000000000000000000000000001:0:-1: +-%1i:-0b10000000000000000000000000000001:0:-1: +-%*1i:-0b10000000000000000000000000000001:0:-1: + %1i:-2147483648:0:-1: + %*1i:-2147483648:0:-1: + %1i:-0X80000000:0:-1: +@@ -250,10 +170,6 @@ + %*1i:-0x80000000:0:-1: + %1i:-020000000000:0:-1: + %*1i:-020000000000:0:-1: +-%1i:-0B10000000000000000000000000000000:0:-1: +-%*1i:-0B10000000000000000000000000000000:0:-1: +-%1i:-0b10000000000000000000000000000000:0:-1: +-%*1i:-0b10000000000000000000000000000000:0:-1: + %1i:-123:0:-1: + %*1i:-123:0:-1: + %1i:-0X7b:0:-1: +@@ -262,10 +178,6 @@ + %*1i:-0x7B:0:-1: + %1i:-0173:0:-1: + %*1i:-0173:0:-1: +-%1i:-0B1111011:0:-1: +-%*1i:-0B1111011:0:-1: +-%1i:-0b1111011:0:-1: +-%*1i:-0b1111011:0:-1: + %1i:-1:0:-1: + %*1i:-1:0:-1: + %1i:-0X1:0:-1: +@@ -274,10 +186,6 @@ + %*1i:-0x1:0:-1: + %1i:-01:0:-1: + %*1i:-01:0:-1: +-%1i:-0B1:0:-1: +-%*1i:-0B1:0:-1: +-%1i:-0b1:0:-1: +-%*1i:-0b1:0:-1: + %1i:-0:0:-1: + %*1i:-0:0:-1: + %1i:-0X0:0:-1: +@@ -286,10 +194,6 @@ + %*1i:-0x0:0:-1: + %1i:-00:0:-1: + %*1i:-00:0:-1: +-%1i:-0B0:0:-1: +-%*1i:-0B0:0:-1: +-%1i:-0b0:0:-1: +-%*1i:-0b0:0:-1: + %1i:0:1:1:0: + %*1i:0:0:1: + %1i:0X0:1:1:0: +@@ -298,10 +202,6 @@ + %*1i:0x0:0:1: + %1i:00:1:1:0: + %*1i:00:0:1: +-%1i:0B0:1:1:0: +-%*1i:0B0:0:1: +-%1i:0b0:1:1:0: +-%*1i:0b0:0:1: + %1i:1:1:1:1: + %*1i:1:0:1: + %1i:0X1:1:1:0: +@@ -310,10 +210,6 @@ + %*1i:0x1:0:1: + %1i:01:1:1:0: + %*1i:01:0:1: +-%1i:0B1:1:1:0: +-%*1i:0B1:0:1: +-%1i:0b1:1:1:0: +-%*1i:0b1:0:1: + %1i:42:1:1:4: + %*1i:42:0:1: + %1i:0X2a:1:1:0: +@@ -322,10 +218,6 @@ + %*1i:0x2A:0:1: + %1i:052:1:1:0: + %*1i:052:0:1: +-%1i:0B101010:1:1:0: +-%*1i:0B101010:0:1: +-%1i:0b101010:1:1:0: +-%*1i:0b101010:0:1: + %1i:2147483647:1:1:2: + %*1i:2147483647:0:1: + %1i:0X7fffffff:1:1:0: +@@ -334,10 +226,6 @@ + %*1i:0x7FFFFFFF:0:1: + %1i:017777777777:1:1:0: + %*1i:017777777777:0:1: +-%1i:0B1111111111111111111111111111111:1:1:0: +-%*1i:0B1111111111111111111111111111111:0:1: +-%1i:0b1111111111111111111111111111111:1:1:0: +-%*1i:0b1111111111111111111111111111111:0:1: + %1i:2147483648:1:1:2: + %*1i:2147483648:0:1: + %1i:0X80000000:1:1:0: +@@ -346,10 +234,6 @@ + %*1i:0x80000000:0:1: + %1i:020000000000:1:1:0: + %*1i:020000000000:0:1: +-%1i:0B10000000000000000000000000000000:1:1:0: +-%*1i:0B10000000000000000000000000000000:0:1: +-%1i:0b10000000000000000000000000000000:1:1:0: +-%*1i:0b10000000000000000000000000000000:0:1: + %1i:2147487889:1:1:2: + %*1i:2147487889:0:1: + %1i:0X80001091:1:1:0: +@@ -358,10 +242,6 @@ + %*1i:0x80001091:0:1: + %1i:020000010221:1:1:0: + %*1i:020000010221:0:1: +-%1i:0B10000000000000000001000010010001:1:1:0: +-%*1i:0B10000000000000000001000010010001:0:1: +-%1i:0b10000000000000000001000010010001:1:1:0: +-%*1i:0b10000000000000000001000010010001:0:1: + %1i:+0:0:-1: + %*1i:+0:0:-1: + %1i:+0X0:0:-1: +@@ -370,10 +250,6 @@ + %*1i:+0x0:0:-1: + %1i:+00:0:-1: + %*1i:+00:0:-1: +-%1i:+0B0:0:-1: +-%*1i:+0B0:0:-1: +-%1i:+0b0:0:-1: +-%*1i:+0b0:0:-1: + %1i:+1:0:-1: + %*1i:+1:0:-1: + %1i:+0X1:0:-1: +@@ -382,10 +258,6 @@ + %*1i:+0x1:0:-1: + %1i:+01:0:-1: + %*1i:+01:0:-1: +-%1i:+0B1:0:-1: +-%*1i:+0B1:0:-1: +-%1i:+0b1:0:-1: +-%*1i:+0b1:0:-1: + %1i:+42:0:-1: + %*1i:+42:0:-1: + %1i:+0X2a:0:-1: +@@ -394,10 +266,6 @@ + %*1i:+0x2A:0:-1: + %1i:+052:0:-1: + %*1i:+052:0:-1: +-%1i:+0B101010:0:-1: +-%*1i:+0B101010:0:-1: +-%1i:+0b101010:0:-1: +-%*1i:+0b101010:0:-1: + %1i:+2147483647:0:-1: + %*1i:+2147483647:0:-1: + %1i:+0X7fffffff:0:-1: +@@ -406,10 +274,6 @@ + %*1i:+0x7FFFFFFF:0:-1: + %1i:+017777777777:0:-1: + %*1i:+017777777777:0:-1: +-%1i:+0B1111111111111111111111111111111:0:-1: +-%*1i:+0B1111111111111111111111111111111:0:-1: +-%1i:+0b1111111111111111111111111111111:0:-1: +-%*1i:+0b1111111111111111111111111111111:0:-1: + %1i:+2147483648:0:-1: + %*1i:+2147483648:0:-1: + %1i:+0X80000000:0:-1: +@@ -418,10 +282,6 @@ + %*1i:+0x80000000:0:-1: + %1i:+020000000000:0:-1: + %*1i:+020000000000:0:-1: +-%1i:+0B10000000000000000000000000000000:0:-1: +-%*1i:+0B10000000000000000000000000000000:0:-1: +-%1i:+0b10000000000000000000000000000000:0:-1: +-%*1i:+0b10000000000000000000000000000000:0:-1: + %1i:+2147487889:0:-1: + %*1i:+2147487889:0:-1: + %1i:+0X80001091:0:-1: +@@ -430,10 +290,6 @@ + %*1i:+0x80001091:0:-1: + %1i:+020000010221:0:-1: + %*1i:+020000010221:0:-1: +-%1i:+0B10000000000000000001000010010001:0:-1: +-%*1i:+0B10000000000000000001000010010001:0:-1: +-%1i:+0b10000000000000000001000010010001:0:-1: +-%*1i:+0b10000000000000000001000010010001:0:-1: + %2i::0:-1: + %*2i::0:-1: + %2i:-2147484882:1:2:-2: +@@ -444,10 +300,6 @@ + %*2i:-0x800004D2:0:2: + %2i:-020000002322:1:2:0: + %*2i:-020000002322:0:2: +-%2i:-0B10000000000000000000010011010010:1:2:0: +-%*2i:-0B10000000000000000000010011010010:0:2: +-%2i:-0b10000000000000000000010011010010:1:2:0: +-%*2i:-0b10000000000000000000010011010010:0:2: + %2i:-2147483649:1:2:-2: + %*2i:-2147483649:0:2: + %2i:-0X80000001:1:2:0: +@@ -456,10 +308,6 @@ + %*2i:-0x80000001:0:2: + %2i:-020000000001:1:2:0: + %*2i:-020000000001:0:2: +-%2i:-0B10000000000000000000000000000001:1:2:0: +-%*2i:-0B10000000000000000000000000000001:0:2: +-%2i:-0b10000000000000000000000000000001:1:2:0: +-%*2i:-0b10000000000000000000000000000001:0:2: + %2i:-2147483648:1:2:-2: + %*2i:-2147483648:0:2: + %2i:-0X80000000:1:2:0: +@@ -468,10 +316,6 @@ + %*2i:-0x80000000:0:2: + %2i:-020000000000:1:2:0: + %*2i:-020000000000:0:2: +-%2i:-0B10000000000000000000000000000000:1:2:0: +-%*2i:-0B10000000000000000000000000000000:0:2: +-%2i:-0b10000000000000000000000000000000:1:2:0: +-%*2i:-0b10000000000000000000000000000000:0:2: + %2i:-123:1:2:-1: + %*2i:-123:0:2: + %2i:-0X7b:1:2:0: +@@ -480,10 +324,6 @@ + %*2i:-0x7B:0:2: + %2i:-0173:1:2:0: + %*2i:-0173:0:2: +-%2i:-0B1111011:1:2:0: +-%*2i:-0B1111011:0:2: +-%2i:-0b1111011:1:2:0: +-%*2i:-0b1111011:0:2: + %2i:-1:1:2:-1: + %*2i:-1:0:2: + %2i:-0X1:1:2:0: +@@ -492,10 +332,6 @@ + %*2i:-0x1:0:2: + %2i:-01:1:2:0: + %*2i:-01:0:2: +-%2i:-0B1:1:2:0: +-%*2i:-0B1:0:2: +-%2i:-0b1:1:2:0: +-%*2i:-0b1:0:2: + %2i:-0:1:2:0: + %*2i:-0:0:2: + %2i:-0X0:1:2:0: +@@ -504,10 +340,6 @@ + %*2i:-0x0:0:2: + %2i:-00:1:2:0: + %*2i:-00:0:2: +-%2i:-0B0:1:2:0: +-%*2i:-0B0:0:2: +-%2i:-0b0:1:2:0: +-%*2i:-0b0:0:2: + %2i:0:1:1:0: + %*2i:0:0:1: + # BZ12701 %2i:0X0:0:-1: +@@ -516,10 +348,6 @@ + # BZ12701 %*2i:0x0:0:-1: + %2i:00:1:2:0: + %*2i:00:0:2: +-# BZ12701 %2i:0B0:0:-1: +-# BZ12701 %*2i:0B0:0:-1: +-# BZ12701 %2i:0b0:0:-1: +-# BZ12701 %*2i:0b0:0:-1: + %2i:1:1:1:1: + %*2i:1:0:1: + # BZ12701 %2i:0X1:0:-1: +@@ -528,10 +356,6 @@ + # BZ12701 %*2i:0x1:0:-1: + %2i:01:1:2:1: + %*2i:01:0:2: +-# BZ12701 %2i:0B1:0:-1: +-# BZ12701 %*2i:0B1:0:-1: +-# BZ12701 %2i:0b1:0:-1: +-# BZ12701 %*2i:0b1:0:-1: + %2i:42:1:2:42: + %*2i:42:0:2: + # BZ12701 %2i:0X2a:0:-1: +@@ -540,10 +364,6 @@ + # BZ12701 %*2i:0x2A:0:-1: + %2i:052:1:2:5: + %*2i:052:0:2: +-# BZ12701 %2i:0B101010:0:-1: +-# BZ12701 %*2i:0B101010:0:-1: +-# BZ12701 %2i:0b101010:0:-1: +-# BZ12701 %*2i:0b101010:0:-1: + %2i:2147483647:1:2:21: + %*2i:2147483647:0:2: + # BZ12701 %2i:0X7fffffff:0:-1: +@@ -552,10 +372,6 @@ + # BZ12701 %*2i:0x7FFFFFFF:0:-1: + %2i:017777777777:1:2:1: + %*2i:017777777777:0:2: +-# BZ12701 %2i:0B1111111111111111111111111111111:0:-1: +-# BZ12701 %*2i:0B1111111111111111111111111111111:0:-1: +-# BZ12701 %2i:0b1111111111111111111111111111111:0:-1: +-# BZ12701 %*2i:0b1111111111111111111111111111111:0:-1: + %2i:2147483648:1:2:21: + %*2i:2147483648:0:2: + # BZ12701 %2i:0X80000000:0:-1: +@@ -564,10 +380,6 @@ + # BZ12701 %*2i:0x80000000:0:-1: + %2i:020000000000:1:2:2: + %*2i:020000000000:0:2: +-# BZ12701 %2i:0B10000000000000000000000000000000:0:-1: +-# BZ12701 %*2i:0B10000000000000000000000000000000:0:-1: +-# BZ12701 %2i:0b10000000000000000000000000000000:0:-1: +-# BZ12701 %*2i:0b10000000000000000000000000000000:0:-1: + %2i:2147487889:1:2:21: + %*2i:2147487889:0:2: + # BZ12701 %2i:0X80001091:0:-1: +@@ -576,10 +388,6 @@ + # BZ12701 %*2i:0x80001091:0:-1: + %2i:020000010221:1:2:2: + %*2i:020000010221:0:2: +-# BZ12701 %2i:0B10000000000000000001000010010001:0:-1: +-# BZ12701 %*2i:0B10000000000000000001000010010001:0:-1: +-# BZ12701 %2i:0b10000000000000000001000010010001:0:-1: +-# BZ12701 %*2i:0b10000000000000000001000010010001:0:-1: + %2i:+0:1:2:0: + %*2i:+0:0:2: + %2i:+0X0:1:2:0: +@@ -588,10 +396,6 @@ + %*2i:+0x0:0:2: + %2i:+00:1:2:0: + %*2i:+00:0:2: +-%2i:+0B0:1:2:0: +-%*2i:+0B0:0:2: +-%2i:+0b0:1:2:0: +-%*2i:+0b0:0:2: + %2i:+1:1:2:1: + %*2i:+1:0:2: + %2i:+0X1:1:2:0: +@@ -600,10 +404,6 @@ + %*2i:+0x1:0:2: + %2i:+01:1:2:0: + %*2i:+01:0:2: +-%2i:+0B1:1:2:0: +-%*2i:+0B1:0:2: +-%2i:+0b1:1:2:0: +-%*2i:+0b1:0:2: + %2i:+42:1:2:4: + %*2i:+42:0:2: + %2i:+0X2a:1:2:0: +@@ -612,10 +412,6 @@ + %*2i:+0x2A:0:2: + %2i:+052:1:2:0: + %*2i:+052:0:2: +-%2i:+0B101010:1:2:0: +-%*2i:+0B101010:0:2: +-%2i:+0b101010:1:2:0: +-%*2i:+0b101010:0:2: + %2i:+2147483647:1:2:2: + %*2i:+2147483647:0:2: + %2i:+0X7fffffff:1:2:0: +@@ -624,10 +420,6 @@ + %*2i:+0x7FFFFFFF:0:2: + %2i:+017777777777:1:2:0: + %*2i:+017777777777:0:2: +-%2i:+0B1111111111111111111111111111111:1:2:0: +-%*2i:+0B1111111111111111111111111111111:0:2: +-%2i:+0b1111111111111111111111111111111:1:2:0: +-%*2i:+0b1111111111111111111111111111111:0:2: + %2i:+2147483648:1:2:2: + %*2i:+2147483648:0:2: + %2i:+0X80000000:1:2:0: +@@ -636,10 +428,6 @@ + %*2i:+0x80000000:0:2: + %2i:+020000000000:1:2:0: + %*2i:+020000000000:0:2: +-%2i:+0B10000000000000000000000000000000:1:2:0: +-%*2i:+0B10000000000000000000000000000000:0:2: +-%2i:+0b10000000000000000000000000000000:1:2:0: +-%*2i:+0b10000000000000000000000000000000:0:2: + %2i:+2147487889:1:2:2: + %*2i:+2147487889:0:2: + %2i:+0X80001091:1:2:0: +@@ -648,10 +436,6 @@ + %*2i:+0x80001091:0:2: + %2i:+020000010221:1:2:0: + %*2i:+020000010221:0:2: +-%2i:+0B10000000000000000001000010010001:1:2:0: +-%*2i:+0B10000000000000000001000010010001:0:2: +-%2i:+0b10000000000000000001000010010001:1:2:0: +-%*2i:+0b10000000000000000001000010010001:0:2: + %8i::0:-1: + %*8i::0:-1: + %8i:-2147484882:1:8:-2147484: +@@ -662,10 +446,6 @@ + %*8i:-0x800004D2:0:8: + %8i:-020000002322:1:8:-65536: + %*8i:-020000002322:0:8: +-%8i:-0B10000000000000000000010011010010:1:8:-16: +-%*8i:-0B10000000000000000000010011010010:0:8: +-%8i:-0b10000000000000000000010011010010:1:8:-16: +-%*8i:-0b10000000000000000000010011010010:0:8: + %8i:-2147483649:1:8:-2147483: + %*8i:-2147483649:0:8: + %8i:-0X80000001:1:8:-524288: +@@ -674,10 +454,6 @@ + %*8i:-0x80000001:0:8: + %8i:-020000000001:1:8:-65536: + %*8i:-020000000001:0:8: +-%8i:-0B10000000000000000000000000000001:1:8:-16: +-%*8i:-0B10000000000000000000000000000001:0:8: +-%8i:-0b10000000000000000000000000000001:1:8:-16: +-%*8i:-0b10000000000000000000000000000001:0:8: + %8i:-2147483648:1:8:-2147483: + %*8i:-2147483648:0:8: + %8i:-0X80000000:1:8:-524288: +@@ -686,10 +462,6 @@ + %*8i:-0x80000000:0:8: + %8i:-020000000000:1:8:-65536: + %*8i:-020000000000:0:8: +-%8i:-0B10000000000000000000000000000000:1:8:-16: +-%*8i:-0B10000000000000000000000000000000:0:8: +-%8i:-0b10000000000000000000000000000000:1:8:-16: +-%*8i:-0b10000000000000000000000000000000:0:8: + %8i:-123:1:4:-123: + %*8i:-123:0:4: + %8i:-0X7b:1:5:-123: +@@ -698,10 +470,6 @@ + %*8i:-0x7B:0:5: + %8i:-0173:1:5:-123: + %*8i:-0173:0:5: +-%8i:-0B1111011:1:8:-30: +-%*8i:-0B1111011:0:8: +-%8i:-0b1111011:1:8:-30: +-%*8i:-0b1111011:0:8: + %8i:-1:1:2:-1: + %*8i:-1:0:2: + %8i:-0X1:1:4:-1: +@@ -710,10 +478,6 @@ + %*8i:-0x1:0:4: + %8i:-01:1:3:-1: + %*8i:-01:0:3: +-%8i:-0B1:1:4:-1: +-%*8i:-0B1:0:4: +-%8i:-0b1:1:4:-1: +-%*8i:-0b1:0:4: + %8i:-0:1:2:0: + %*8i:-0:0:2: + %8i:-0X0:1:4:0: +@@ -722,10 +486,6 @@ + %*8i:-0x0:0:4: + %8i:-00:1:3:0: + %*8i:-00:0:3: +-%8i:-0B0:1:4:0: +-%*8i:-0B0:0:4: +-%8i:-0b0:1:4:0: +-%*8i:-0b0:0:4: + %8i:0:1:1:0: + %*8i:0:0:1: + %8i:0X0:1:3:0: +@@ -734,10 +494,6 @@ + %*8i:0x0:0:3: + %8i:00:1:2:0: + %*8i:00:0:2: +-%8i:0B0:1:3:0: +-%*8i:0B0:0:3: +-%8i:0b0:1:3:0: +-%*8i:0b0:0:3: + %8i:1:1:1:1: + %*8i:1:0:1: + %8i:0X1:1:3:1: +@@ -746,10 +502,6 @@ + %*8i:0x1:0:3: + %8i:01:1:2:1: + %*8i:01:0:2: +-%8i:0B1:1:3:1: +-%*8i:0B1:0:3: +-%8i:0b1:1:3:1: +-%*8i:0b1:0:3: + %8i:42:1:2:42: + %*8i:42:0:2: + %8i:0X2a:1:4:42: +@@ -758,10 +510,6 @@ + %*8i:0x2A:0:4: + %8i:052:1:3:42: + %*8i:052:0:3: +-%8i:0B101010:1:8:42: +-%*8i:0B101010:0:8: +-%8i:0b101010:1:8:42: +-%*8i:0b101010:0:8: + %8i:2147483647:1:8:21474836: + %*8i:2147483647:0:8: + %8i:0X7fffffff:1:8:8388607: +@@ -770,10 +518,6 @@ + %*8i:0x7FFFFFFF:0:8: + %8i:017777777777:1:8:524287: + %*8i:017777777777:0:8: +-%8i:0B1111111111111111111111111111111:1:8:63: +-%*8i:0B1111111111111111111111111111111:0:8: +-%8i:0b1111111111111111111111111111111:1:8:63: +-%*8i:0b1111111111111111111111111111111:0:8: + %8i:2147483648:1:8:21474836: + %*8i:2147483648:0:8: + %8i:0X80000000:1:8:8388608: +@@ -782,10 +526,6 @@ + %*8i:0x80000000:0:8: + %8i:020000000000:1:8:524288: + %*8i:020000000000:0:8: +-%8i:0B10000000000000000000000000000000:1:8:32: +-%*8i:0B10000000000000000000000000000000:0:8: +-%8i:0b10000000000000000000000000000000:1:8:32: +-%*8i:0b10000000000000000000000000000000:0:8: + %8i:2147487889:1:8:21474878: + %*8i:2147487889:0:8: + %8i:0X80001091:1:8:8388624: +@@ -794,10 +534,6 @@ + %*8i:0x80001091:0:8: + %8i:020000010221:1:8:524289: + %*8i:020000010221:0:8: +-%8i:0B10000000000000000001000010010001:1:8:32: +-%*8i:0B10000000000000000001000010010001:0:8: +-%8i:0b10000000000000000001000010010001:1:8:32: +-%*8i:0b10000000000000000001000010010001:0:8: + %8i:+0:1:2:0: + %*8i:+0:0:2: + %8i:+0X0:1:4:0: +@@ -806,10 +542,6 @@ + %*8i:+0x0:0:4: + %8i:+00:1:3:0: + %*8i:+00:0:3: +-%8i:+0B0:1:4:0: +-%*8i:+0B0:0:4: +-%8i:+0b0:1:4:0: +-%*8i:+0b0:0:4: + %8i:+1:1:2:1: + %*8i:+1:0:2: + %8i:+0X1:1:4:1: +@@ -818,10 +550,6 @@ + %*8i:+0x1:0:4: + %8i:+01:1:3:1: + %*8i:+01:0:3: +-%8i:+0B1:1:4:1: +-%*8i:+0B1:0:4: +-%8i:+0b1:1:4:1: +-%*8i:+0b1:0:4: + %8i:+42:1:3:42: + %*8i:+42:0:3: + %8i:+0X2a:1:5:42: +@@ -830,10 +558,6 @@ + %*8i:+0x2A:0:5: + %8i:+052:1:4:42: + %*8i:+052:0:4: +-%8i:+0B101010:1:8:21: +-%*8i:+0B101010:0:8: +-%8i:+0b101010:1:8:21: +-%*8i:+0b101010:0:8: + %8i:+2147483647:1:8:2147483: + %*8i:+2147483647:0:8: + %8i:+0X7fffffff:1:8:524287: +@@ -842,10 +566,6 @@ + %*8i:+0x7FFFFFFF:0:8: + %8i:+017777777777:1:8:65535: + %*8i:+017777777777:0:8: +-%8i:+0B1111111111111111111111111111111:1:8:31: +-%*8i:+0B1111111111111111111111111111111:0:8: +-%8i:+0b1111111111111111111111111111111:1:8:31: +-%*8i:+0b1111111111111111111111111111111:0:8: + %8i:+2147483648:1:8:2147483: + %*8i:+2147483648:0:8: + %8i:+0X80000000:1:8:524288: +@@ -854,10 +574,6 @@ + %*8i:+0x80000000:0:8: + %8i:+020000000000:1:8:65536: + %*8i:+020000000000:0:8: +-%8i:+0B10000000000000000000000000000000:1:8:16: +-%*8i:+0B10000000000000000000000000000000:0:8: +-%8i:+0b10000000000000000000000000000000:1:8:16: +-%*8i:+0b10000000000000000000000000000000:0:8: + %8i:+2147487889:1:8:2147487: + %*8i:+2147487889:0:8: + %8i:+0X80001091:1:8:524289: +@@ -866,10 +582,6 @@ + %*8i:+0x80001091:0:8: + %8i:+020000010221:1:8:65536: + %*8i:+020000010221:0:8: +-%8i:+0B10000000000000000001000010010001:1:8:16: +-%*8i:+0B10000000000000000001000010010001:0:8: +-%8i:+0b10000000000000000001000010010001:1:8:16: +-%*8i:+0b10000000000000000001000010010001:0:8: + %15i::0:-1: + %*15i::0:-1: + %15i:-2147484882:1:11:2147482414: +@@ -880,10 +592,6 @@ + %*15i:-0x800004D2:0:11: + %15i:-020000002322:1:13:2147482414: + %*15i:-020000002322:0:13: +-%15i:-0B10000000000000000000010011010010:1:15:-2048: +-%*15i:-0B10000000000000000000010011010010:0:15: +-%15i:-0b10000000000000000000010011010010:1:15:-2048: +-%*15i:-0b10000000000000000000010011010010:0:15: + %15i:-2147483649:1:11:2147483647: + %*15i:-2147483649:0:11: + %15i:-0X80000001:1:11:2147483647: +@@ -892,10 +600,6 @@ + %*15i:-0x80000001:0:11: + %15i:-020000000001:1:13:2147483647: + %*15i:-020000000001:0:13: +-%15i:-0B10000000000000000000000000000001:1:15:-2048: +-%*15i:-0B10000000000000000000000000000001:0:15: +-%15i:-0b10000000000000000000000000000001:1:15:-2048: +-%*15i:-0b10000000000000000000000000000001:0:15: + %15i:-2147483648:1:11:-2147483648: + %*15i:-2147483648:0:11: + %15i:-0X80000000:1:11:-2147483648: +@@ -904,10 +608,6 @@ + %*15i:-0x80000000:0:11: + %15i:-020000000000:1:13:-2147483648: + %*15i:-020000000000:0:13: +-%15i:-0B10000000000000000000000000000000:1:15:-2048: +-%*15i:-0B10000000000000000000000000000000:0:15: +-%15i:-0b10000000000000000000000000000000:1:15:-2048: +-%*15i:-0b10000000000000000000000000000000:0:15: + %15i:-123:1:4:-123: + %*15i:-123:0:4: + %15i:-0X7b:1:5:-123: +@@ -916,10 +616,6 @@ + %*15i:-0x7B:0:5: + %15i:-0173:1:5:-123: + %*15i:-0173:0:5: +-%15i:-0B1111011:1:10:-123: +-%*15i:-0B1111011:0:10: +-%15i:-0b1111011:1:10:-123: +-%*15i:-0b1111011:0:10: + %15i:-1:1:2:-1: + %*15i:-1:0:2: + %15i:-0X1:1:4:-1: +@@ -928,10 +624,6 @@ + %*15i:-0x1:0:4: + %15i:-01:1:3:-1: + %*15i:-01:0:3: +-%15i:-0B1:1:4:-1: +-%*15i:-0B1:0:4: +-%15i:-0b1:1:4:-1: +-%*15i:-0b1:0:4: + %15i:-0:1:2:0: + %*15i:-0:0:2: + %15i:-0X0:1:4:0: +@@ -940,10 +632,6 @@ + %*15i:-0x0:0:4: + %15i:-00:1:3:0: + %*15i:-00:0:3: +-%15i:-0B0:1:4:0: +-%*15i:-0B0:0:4: +-%15i:-0b0:1:4:0: +-%*15i:-0b0:0:4: + %15i:0:1:1:0: + %*15i:0:0:1: + %15i:0X0:1:3:0: +@@ -952,10 +640,6 @@ + %*15i:0x0:0:3: + %15i:00:1:2:0: + %*15i:00:0:2: +-%15i:0B0:1:3:0: +-%*15i:0B0:0:3: +-%15i:0b0:1:3:0: +-%*15i:0b0:0:3: + %15i:1:1:1:1: + %*15i:1:0:1: + %15i:0X1:1:3:1: +@@ -964,10 +648,6 @@ + %*15i:0x1:0:3: + %15i:01:1:2:1: + %*15i:01:0:2: +-%15i:0B1:1:3:1: +-%*15i:0B1:0:3: +-%15i:0b1:1:3:1: +-%*15i:0b1:0:3: + %15i:42:1:2:42: + %*15i:42:0:2: + %15i:0X2a:1:4:42: +@@ -976,10 +656,6 @@ + %*15i:0x2A:0:4: + %15i:052:1:3:42: + %*15i:052:0:3: +-%15i:0B101010:1:8:42: +-%*15i:0B101010:0:8: +-%15i:0b101010:1:8:42: +-%*15i:0b101010:0:8: + %15i:2147483647:1:10:2147483647: + %*15i:2147483647:0:10: + %15i:0X7fffffff:1:10:2147483647: +@@ -988,10 +664,6 @@ + %*15i:0x7FFFFFFF:0:10: + %15i:017777777777:1:12:2147483647: + %*15i:017777777777:0:12: +-%15i:0B1111111111111111111111111111111:1:15:8191: +-%*15i:0B1111111111111111111111111111111:0:15: +-%15i:0b1111111111111111111111111111111:1:15:8191: +-%*15i:0b1111111111111111111111111111111:0:15: + %15i:2147483648:1:10:-2147483648: + %*15i:2147483648:0:10: + %15i:0X80000000:1:10:-2147483648: +@@ -1000,10 +672,6 @@ + %*15i:0x80000000:0:10: + %15i:020000000000:1:12:-2147483648: + %*15i:020000000000:0:12: +-%15i:0B10000000000000000000000000000000:1:15:4096: +-%*15i:0B10000000000000000000000000000000:0:15: +-%15i:0b10000000000000000000000000000000:1:15:4096: +-%*15i:0b10000000000000000000000000000000:0:15: + %15i:2147487889:1:10:-2147479407: + %*15i:2147487889:0:10: + %15i:0X80001091:1:10:-2147479407: +@@ -1012,10 +680,6 @@ + %*15i:0x80001091:0:10: + %15i:020000010221:1:12:-2147479407: + %*15i:020000010221:0:12: +-%15i:0B10000000000000000001000010010001:1:15:4096: +-%*15i:0B10000000000000000001000010010001:0:15: +-%15i:0b10000000000000000001000010010001:1:15:4096: +-%*15i:0b10000000000000000001000010010001:0:15: + %15i:+0:1:2:0: + %*15i:+0:0:2: + %15i:+0X0:1:4:0: +@@ -1024,10 +688,6 @@ + %*15i:+0x0:0:4: + %15i:+00:1:3:0: + %*15i:+00:0:3: +-%15i:+0B0:1:4:0: +-%*15i:+0B0:0:4: +-%15i:+0b0:1:4:0: +-%*15i:+0b0:0:4: + %15i:+1:1:2:1: + %*15i:+1:0:2: + %15i:+0X1:1:4:1: +@@ -1036,10 +696,6 @@ + %*15i:+0x1:0:4: + %15i:+01:1:3:1: + %*15i:+01:0:3: +-%15i:+0B1:1:4:1: +-%*15i:+0B1:0:4: +-%15i:+0b1:1:4:1: +-%*15i:+0b1:0:4: + %15i:+42:1:3:42: + %*15i:+42:0:3: + %15i:+0X2a:1:5:42: +@@ -1048,10 +704,6 @@ + %*15i:+0x2A:0:5: + %15i:+052:1:4:42: + %*15i:+052:0:4: +-%15i:+0B101010:1:9:42: +-%*15i:+0B101010:0:9: +-%15i:+0b101010:1:9:42: +-%*15i:+0b101010:0:9: + %15i:+2147483647:1:11:2147483647: + %*15i:+2147483647:0:11: + %15i:+0X7fffffff:1:11:2147483647: +@@ -1060,10 +712,6 @@ + %*15i:+0x7FFFFFFF:0:11: + %15i:+017777777777:1:13:2147483647: + %*15i:+017777777777:0:13: +-%15i:+0B1111111111111111111111111111111:1:15:4095: +-%*15i:+0B1111111111111111111111111111111:0:15: +-%15i:+0b1111111111111111111111111111111:1:15:4095: +-%*15i:+0b1111111111111111111111111111111:0:15: + %15i:+2147483648:1:11:-2147483648: + %*15i:+2147483648:0:11: + %15i:+0X80000000:1:11:-2147483648: +@@ -1072,10 +720,6 @@ + %*15i:+0x80000000:0:11: + %15i:+020000000000:1:13:-2147483648: + %*15i:+020000000000:0:13: +-%15i:+0B10000000000000000000000000000000:1:15:2048: +-%*15i:+0B10000000000000000000000000000000:0:15: +-%15i:+0b10000000000000000000000000000000:1:15:2048: +-%*15i:+0b10000000000000000000000000000000:0:15: + %15i:+2147487889:1:11:-2147479407: + %*15i:+2147487889:0:11: + %15i:+0X80001091:1:11:-2147479407: +@@ -1084,10 +728,6 @@ + %*15i:+0x80001091:0:11: + %15i:+020000010221:1:13:-2147479407: + %*15i:+020000010221:0:13: +-%15i:+0B10000000000000000001000010010001:1:15:2048: +-%*15i:+0B10000000000000000001000010010001:0:15: +-%15i:+0b10000000000000000001000010010001:1:15:2048: +-%*15i:+0b10000000000000000001000010010001:0:15: + %2i: :0:-1: + %*2i: :0:-1: + %2i: -2147484882:1:3:-2: +@@ -1098,10 +738,6 @@ + %*2i: -0x800004D2:0:3: + %2i: -020000002322:1:3:0: + %*2i: -020000002322:0:3: +-%2i: -0B10000000000000000000010011010010:1:3:0: +-%*2i: -0B10000000000000000000010011010010:0:3: +-%2i: -0b10000000000000000000010011010010:1:3:0: +-%*2i: -0b10000000000000000000010011010010:0:3: + %2i: -2147483649:1:3:-2: + %*2i: -2147483649:0:3: + %2i: -0X80000001:1:3:0: +@@ -1110,10 +746,6 @@ + %*2i: -0x80000001:0:3: + %2i: -020000000001:1:3:0: + %*2i: -020000000001:0:3: +-%2i: -0B10000000000000000000000000000001:1:3:0: +-%*2i: -0B10000000000000000000000000000001:0:3: +-%2i: -0b10000000000000000000000000000001:1:3:0: +-%*2i: -0b10000000000000000000000000000001:0:3: + %2i: -2147483648:1:3:-2: + %*2i: -2147483648:0:3: + %2i: -0X80000000:1:3:0: +@@ -1122,10 +754,6 @@ + %*2i: -0x80000000:0:3: + %2i: -020000000000:1:3:0: + %*2i: -020000000000:0:3: +-%2i: -0B10000000000000000000000000000000:1:3:0: +-%*2i: -0B10000000000000000000000000000000:0:3: +-%2i: -0b10000000000000000000000000000000:1:3:0: +-%*2i: -0b10000000000000000000000000000000:0:3: + %2i: -123:1:3:-1: + %*2i: -123:0:3: + %2i: -0X7b:1:3:0: +@@ -1134,10 +762,6 @@ + %*2i: -0x7B:0:3: + %2i: -0173:1:3:0: + %*2i: -0173:0:3: +-%2i: -0B1111011:1:3:0: +-%*2i: -0B1111011:0:3: +-%2i: -0b1111011:1:3:0: +-%*2i: -0b1111011:0:3: + %2i: -1:1:3:-1: + %*2i: -1:0:3: + %2i: -0X1:1:3:0: +@@ -1146,10 +770,6 @@ + %*2i: -0x1:0:3: + %2i: -01:1:3:0: + %*2i: -01:0:3: +-%2i: -0B1:1:3:0: +-%*2i: -0B1:0:3: +-%2i: -0b1:1:3:0: +-%*2i: -0b1:0:3: + %2i: -0:1:3:0: + %*2i: -0:0:3: + %2i: -0X0:1:3:0: +@@ -1158,10 +778,6 @@ + %*2i: -0x0:0:3: + %2i: -00:1:3:0: + %*2i: -00:0:3: +-%2i: -0B0:1:3:0: +-%*2i: -0B0:0:3: +-%2i: -0b0:1:3:0: +-%*2i: -0b0:0:3: + %2i: 0:1:2:0: + %*2i: 0:0:2: + # BZ12701 %2i: 0X0:0:-1: +@@ -1170,10 +786,6 @@ + # BZ12701 %*2i: 0x0:0:-1: + %2i: 00:1:3:0: + %*2i: 00:0:3: +-# BZ12701 %2i: 0B0:0:-1: +-# BZ12701 %*2i: 0B0:0:-1: +-# BZ12701 %2i: 0b0:0:-1: +-# BZ12701 %*2i: 0b0:0:-1: + %2i: 1:1:2:1: + %*2i: 1:0:2: + # BZ12701 %2i: 0X1:0:-1: +@@ -1182,10 +794,6 @@ + # BZ12701 %*2i: 0x1:0:-1: + %2i: 01:1:3:1: + %*2i: 01:0:3: +-# BZ12701 %2i: 0B1:0:-1: +-# BZ12701 %*2i: 0B1:0:-1: +-# BZ12701 %2i: 0b1:0:-1: +-# BZ12701 %*2i: 0b1:0:-1: + %2i: 42:1:3:42: + %*2i: 42:0:3: + # BZ12701 %2i: 0X2a:0:-1: +@@ -1194,10 +802,6 @@ + # BZ12701 %*2i: 0x2A:0:-1: + %2i: 052:1:3:5: + %*2i: 052:0:3: +-# BZ12701 %2i: 0B101010:0:-1: +-# BZ12701 %*2i: 0B101010:0:-1: +-# BZ12701 %2i: 0b101010:0:-1: +-# BZ12701 %*2i: 0b101010:0:-1: + %2i: 2147483647:1:3:21: + %*2i: 2147483647:0:3: + # BZ12701 %2i: 0X7fffffff:0:-1: +@@ -1206,10 +810,6 @@ + # BZ12701 %*2i: 0x7FFFFFFF:0:-1: + %2i: 017777777777:1:3:1: + %*2i: 017777777777:0:3: +-# BZ12701 %2i: 0B1111111111111111111111111111111:0:-1: +-# BZ12701 %*2i: 0B1111111111111111111111111111111:0:-1: +-# BZ12701 %2i: 0b1111111111111111111111111111111:0:-1: +-# BZ12701 %*2i: 0b1111111111111111111111111111111:0:-1: + %2i: 2147483648:1:3:21: + %*2i: 2147483648:0:3: + # BZ12701 %2i: 0X80000000:0:-1: +@@ -1218,10 +818,6 @@ + # BZ12701 %*2i: 0x80000000:0:-1: + %2i: 020000000000:1:3:2: + %*2i: 020000000000:0:3: +-# BZ12701 %2i: 0B10000000000000000000000000000000:0:-1: +-# BZ12701 %*2i: 0B10000000000000000000000000000000:0:-1: +-# BZ12701 %2i: 0b10000000000000000000000000000000:0:-1: +-# BZ12701 %*2i: 0b10000000000000000000000000000000:0:-1: + %2i: 2147487889:1:3:21: + %*2i: 2147487889:0:3: + # BZ12701 %2i: 0X80001091:0:-1: +@@ -1230,10 +826,6 @@ + # BZ12701 %*2i: 0x80001091:0:-1: + %2i: 020000010221:1:3:2: + %*2i: 020000010221:0:3: +-# BZ12701 %2i: 0B10000000000000000001000010010001:0:-1: +-# BZ12701 %*2i: 0B10000000000000000001000010010001:0:-1: +-# BZ12701 %2i: 0b10000000000000000001000010010001:0:-1: +-# BZ12701 %*2i: 0b10000000000000000001000010010001:0:-1: + %2i: +0:1:3:0: + %*2i: +0:0:3: + %2i: +0X0:1:3:0: +@@ -1242,10 +834,6 @@ + %*2i: +0x0:0:3: + %2i: +00:1:3:0: + %*2i: +00:0:3: +-%2i: +0B0:1:3:0: +-%*2i: +0B0:0:3: +-%2i: +0b0:1:3:0: +-%*2i: +0b0:0:3: + %2i: +1:1:3:1: + %*2i: +1:0:3: + %2i: +0X1:1:3:0: +@@ -1254,10 +842,6 @@ + %*2i: +0x1:0:3: + %2i: +01:1:3:0: + %*2i: +01:0:3: +-%2i: +0B1:1:3:0: +-%*2i: +0B1:0:3: +-%2i: +0b1:1:3:0: +-%*2i: +0b1:0:3: + %2i: +42:1:3:4: + %*2i: +42:0:3: + %2i: +0X2a:1:3:0: +@@ -1266,10 +850,6 @@ + %*2i: +0x2A:0:3: + %2i: +052:1:3:0: + %*2i: +052:0:3: +-%2i: +0B101010:1:3:0: +-%*2i: +0B101010:0:3: +-%2i: +0b101010:1:3:0: +-%*2i: +0b101010:0:3: + %2i: +2147483647:1:3:2: + %*2i: +2147483647:0:3: + %2i: +0X7fffffff:1:3:0: +@@ -1278,10 +858,6 @@ + %*2i: +0x7FFFFFFF:0:3: + %2i: +017777777777:1:3:0: + %*2i: +017777777777:0:3: +-%2i: +0B1111111111111111111111111111111:1:3:0: +-%*2i: +0B1111111111111111111111111111111:0:3: +-%2i: +0b1111111111111111111111111111111:1:3:0: +-%*2i: +0b1111111111111111111111111111111:0:3: + %2i: +2147483648:1:3:2: + %*2i: +2147483648:0:3: + %2i: +0X80000000:1:3:0: +@@ -1290,10 +866,6 @@ + %*2i: +0x80000000:0:3: + %2i: +020000000000:1:3:0: + %*2i: +020000000000:0:3: +-%2i: +0B10000000000000000000000000000000:1:3:0: +-%*2i: +0B10000000000000000000000000000000:0:3: +-%2i: +0b10000000000000000000000000000000:1:3:0: +-%*2i: +0b10000000000000000000000000000000:0:3: + %2i: +2147487889:1:3:2: + %*2i: +2147487889:0:3: + %2i: +0X80001091:1:3:0: +@@ -1302,10 +874,6 @@ + %*2i: +0x80001091:0:3: + %2i: +020000010221:1:3:0: + %*2i: +020000010221:0:3: +-%2i: +0B10000000000000000001000010010001:1:3:0: +-%*2i: +0B10000000000000000001000010010001:0:3: +-%2i: +0b10000000000000000001000010010001:1:3:0: +-%*2i: +0b10000000000000000001000010010001:0:3: + %15i: :0:-1: + %*15i: :0:-1: + %15i: -2147484882:1:12:2147482414: +@@ -1316,10 +884,6 @@ + %*15i: -0x800004D2:0:12: + %15i: -020000002322:1:14:2147482414: + %*15i: -020000002322:0:14: +-%15i: -0B10000000000000000000010011010010:1:16:-2048: +-%*15i: -0B10000000000000000000010011010010:0:16: +-%15i: -0b10000000000000000000010011010010:1:16:-2048: +-%*15i: -0b10000000000000000000010011010010:0:16: + %15i: -2147483649:1:12:2147483647: + %*15i: -2147483649:0:12: + %15i: -0X80000001:1:12:2147483647: +@@ -1328,10 +892,6 @@ + %*15i: -0x80000001:0:12: + %15i: -020000000001:1:14:2147483647: + %*15i: -020000000001:0:14: +-%15i: -0B10000000000000000000000000000001:1:16:-2048: +-%*15i: -0B10000000000000000000000000000001:0:16: +-%15i: -0b10000000000000000000000000000001:1:16:-2048: +-%*15i: -0b10000000000000000000000000000001:0:16: + %15i: -2147483648:1:12:-2147483648: + %*15i: -2147483648:0:12: + %15i: -0X80000000:1:12:-2147483648: +@@ -1340,10 +900,6 @@ + %*15i: -0x80000000:0:12: + %15i: -020000000000:1:14:-2147483648: + %*15i: -020000000000:0:14: +-%15i: -0B10000000000000000000000000000000:1:16:-2048: +-%*15i: -0B10000000000000000000000000000000:0:16: +-%15i: -0b10000000000000000000000000000000:1:16:-2048: +-%*15i: -0b10000000000000000000000000000000:0:16: + %15i: -123:1:5:-123: + %*15i: -123:0:5: + %15i: -0X7b:1:6:-123: +@@ -1352,10 +908,6 @@ + %*15i: -0x7B:0:6: + %15i: -0173:1:6:-123: + %*15i: -0173:0:6: +-%15i: -0B1111011:1:11:-123: +-%*15i: -0B1111011:0:11: +-%15i: -0b1111011:1:11:-123: +-%*15i: -0b1111011:0:11: + %15i: -1:1:3:-1: + %*15i: -1:0:3: + %15i: -0X1:1:5:-1: +@@ -1364,10 +916,6 @@ + %*15i: -0x1:0:5: + %15i: -01:1:4:-1: + %*15i: -01:0:4: +-%15i: -0B1:1:5:-1: +-%*15i: -0B1:0:5: +-%15i: -0b1:1:5:-1: +-%*15i: -0b1:0:5: + %15i: -0:1:3:0: + %*15i: -0:0:3: + %15i: -0X0:1:5:0: +@@ -1376,10 +924,6 @@ + %*15i: -0x0:0:5: + %15i: -00:1:4:0: + %*15i: -00:0:4: +-%15i: -0B0:1:5:0: +-%*15i: -0B0:0:5: +-%15i: -0b0:1:5:0: +-%*15i: -0b0:0:5: + %15i: 0:1:2:0: + %*15i: 0:0:2: + %15i: 0X0:1:4:0: +@@ -1388,10 +932,6 @@ + %*15i: 0x0:0:4: + %15i: 00:1:3:0: + %*15i: 00:0:3: +-%15i: 0B0:1:4:0: +-%*15i: 0B0:0:4: +-%15i: 0b0:1:4:0: +-%*15i: 0b0:0:4: + %15i: 1:1:2:1: + %*15i: 1:0:2: + %15i: 0X1:1:4:1: +@@ -1400,10 +940,6 @@ + %*15i: 0x1:0:4: + %15i: 01:1:3:1: + %*15i: 01:0:3: +-%15i: 0B1:1:4:1: +-%*15i: 0B1:0:4: +-%15i: 0b1:1:4:1: +-%*15i: 0b1:0:4: + %15i: 42:1:3:42: + %*15i: 42:0:3: + %15i: 0X2a:1:5:42: +@@ -1412,10 +948,6 @@ + %*15i: 0x2A:0:5: + %15i: 052:1:4:42: + %*15i: 052:0:4: +-%15i: 0B101010:1:9:42: +-%*15i: 0B101010:0:9: +-%15i: 0b101010:1:9:42: +-%*15i: 0b101010:0:9: + %15i: 2147483647:1:11:2147483647: + %*15i: 2147483647:0:11: + %15i: 0X7fffffff:1:11:2147483647: +@@ -1424,10 +956,6 @@ + %*15i: 0x7FFFFFFF:0:11: + %15i: 017777777777:1:13:2147483647: + %*15i: 017777777777:0:13: +-%15i: 0B1111111111111111111111111111111:1:16:8191: +-%*15i: 0B1111111111111111111111111111111:0:16: +-%15i: 0b1111111111111111111111111111111:1:16:8191: +-%*15i: 0b1111111111111111111111111111111:0:16: + %15i: 2147483648:1:11:-2147483648: + %*15i: 2147483648:0:11: + %15i: 0X80000000:1:11:-2147483648: +@@ -1436,10 +964,6 @@ + %*15i: 0x80000000:0:11: + %15i: 020000000000:1:13:-2147483648: + %*15i: 020000000000:0:13: +-%15i: 0B10000000000000000000000000000000:1:16:4096: +-%*15i: 0B10000000000000000000000000000000:0:16: +-%15i: 0b10000000000000000000000000000000:1:16:4096: +-%*15i: 0b10000000000000000000000000000000:0:16: + %15i: 2147487889:1:11:-2147479407: + %*15i: 2147487889:0:11: + %15i: 0X80001091:1:11:-2147479407: +@@ -1448,10 +972,6 @@ + %*15i: 0x80001091:0:11: + %15i: 020000010221:1:13:-2147479407: + %*15i: 020000010221:0:13: +-%15i: 0B10000000000000000001000010010001:1:16:4096: +-%*15i: 0B10000000000000000001000010010001:0:16: +-%15i: 0b10000000000000000001000010010001:1:16:4096: +-%*15i: 0b10000000000000000001000010010001:0:16: + %15i: +0:1:3:0: + %*15i: +0:0:3: + %15i: +0X0:1:5:0: +@@ -1460,10 +980,6 @@ + %*15i: +0x0:0:5: + %15i: +00:1:4:0: + %*15i: +00:0:4: +-%15i: +0B0:1:5:0: +-%*15i: +0B0:0:5: +-%15i: +0b0:1:5:0: +-%*15i: +0b0:0:5: + %15i: +1:1:3:1: + %*15i: +1:0:3: + %15i: +0X1:1:5:1: +@@ -1472,10 +988,6 @@ + %*15i: +0x1:0:5: + %15i: +01:1:4:1: + %*15i: +01:0:4: +-%15i: +0B1:1:5:1: +-%*15i: +0B1:0:5: +-%15i: +0b1:1:5:1: +-%*15i: +0b1:0:5: + %15i: +42:1:4:42: + %*15i: +42:0:4: + %15i: +0X2a:1:6:42: +@@ -1484,10 +996,6 @@ + %*15i: +0x2A:0:6: + %15i: +052:1:5:42: + %*15i: +052:0:5: +-%15i: +0B101010:1:10:42: +-%*15i: +0B101010:0:10: +-%15i: +0b101010:1:10:42: +-%*15i: +0b101010:0:10: + %15i: +2147483647:1:12:2147483647: + %*15i: +2147483647:0:12: + %15i: +0X7fffffff:1:12:2147483647: +@@ -1496,10 +1004,6 @@ + %*15i: +0x7FFFFFFF:0:12: + %15i: +017777777777:1:14:2147483647: + %*15i: +017777777777:0:14: +-%15i: +0B1111111111111111111111111111111:1:16:4095: +-%*15i: +0B1111111111111111111111111111111:0:16: +-%15i: +0b1111111111111111111111111111111:1:16:4095: +-%*15i: +0b1111111111111111111111111111111:0:16: + %15i: +2147483648:1:12:-2147483648: + %*15i: +2147483648:0:12: + %15i: +0X80000000:1:12:-2147483648: +@@ -1508,10 +1012,6 @@ + %*15i: +0x80000000:0:12: + %15i: +020000000000:1:14:-2147483648: + %*15i: +020000000000:0:14: +-%15i: +0B10000000000000000000000000000000:1:16:2048: +-%*15i: +0B10000000000000000000000000000000:0:16: +-%15i: +0b10000000000000000000000000000000:1:16:2048: +-%*15i: +0b10000000000000000000000000000000:0:16: + %15i: +2147487889:1:12:-2147479407: + %*15i: +2147487889:0:12: + %15i: +0X80001091:1:12:-2147479407: +@@ -1520,7 +1020,3 @@ + %*15i: +0x80001091:0:12: + %15i: +020000010221:1:14:-2147479407: + %*15i: +020000010221:0:14: +-%15i: +0B10000000000000000001000010010001:1:16:2048: +-%*15i: +0B10000000000000000001000010010001:0:16: +-%15i: +0b10000000000000000001000010010001:1:16:2048: +-%*15i: +0b10000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-long-i.input b/sysdeps/wordsize-64/tst-scanf-format-long-i.input +index 3066dab6bf1530f8..7164e9b9424655bc 100644 +--- a/sysdeps/wordsize-64/tst-scanf-format-long-i.input ++++ b/sysdeps/wordsize-64/tst-scanf-format-long-i.input +@@ -8,10 +8,6 @@ + %*li:-0x8000000000BC614E:0:19: + %li:-01000000000000057060516:1:24:-9223372036854775808: + %*li:-01000000000000057060516:0:24: +-%li:-0B1000000000000000000000000000000000000000101111000110000101001110:1:67:-9223372036854775808: +-%*li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:67: +-%li:-0b1000000000000000000000000000000000000000101111000110000101001110:1:67:-9223372036854775808: +-%*li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:67: + %li:-9223372036854775809:1:20:-9223372036854775808: + %*li:-9223372036854775809:0:20: + %li:-0X8000000000000001:1:19:-9223372036854775808: +@@ -20,10 +16,6 @@ + %*li:-0x8000000000000001:0:19: + %li:-01000000000000000000001:1:24:-9223372036854775808: + %*li:-01000000000000000000001:0:24: +-%li:-0B1000000000000000000000000000000000000000000000000000000000000001:1:67:-9223372036854775808: +-%*li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:67: +-%li:-0b1000000000000000000000000000000000000000000000000000000000000001:1:67:-9223372036854775808: +-%*li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:67: + %li:-9223372036854775808:1:20:-9223372036854775808: + %*li:-9223372036854775808:0:20: + %li:-0X8000000000000000:1:19:-9223372036854775808: +@@ -32,10 +24,6 @@ + %*li:-0x8000000000000000:0:19: + %li:-01000000000000000000000:1:24:-9223372036854775808: + %*li:-01000000000000000000000:0:24: +-%li:-0B1000000000000000000000000000000000000000000000000000000000000000:1:67:-9223372036854775808: +-%*li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:67: +-%li:-0b1000000000000000000000000000000000000000000000000000000000000000:1:67:-9223372036854775808: +-%*li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:67: + %li:-123:1:4:-123: + %*li:-123:0:4: + %li:-0X7b:1:5:-123: +@@ -44,10 +32,6 @@ + %*li:-0x7B:0:5: + %li:-0173:1:5:-123: + %*li:-0173:0:5: +-%li:-0B1111011:1:10:-123: +-%*li:-0B1111011:0:10: +-%li:-0b1111011:1:10:-123: +-%*li:-0b1111011:0:10: + %li:-1:1:2:-1: + %*li:-1:0:2: + %li:-0X1:1:4:-1: +@@ -56,10 +40,6 @@ + %*li:-0x1:0:4: + %li:-01:1:3:-1: + %*li:-01:0:3: +-%li:-0B1:1:4:-1: +-%*li:-0B1:0:4: +-%li:-0b1:1:4:-1: +-%*li:-0b1:0:4: + %li:-0:1:2:0: + %*li:-0:0:2: + %li:-0X0:1:4:0: +@@ -68,10 +48,6 @@ + %*li:-0x0:0:4: + %li:-00:1:3:0: + %*li:-00:0:3: +-%li:-0B0:1:4:0: +-%*li:-0B0:0:4: +-%li:-0b0:1:4:0: +-%*li:-0b0:0:4: + %li:0:1:1:0: + %*li:0:0:1: + %li:0X0:1:3:0: +@@ -80,10 +56,6 @@ + %*li:0x0:0:3: + %li:00:1:2:0: + %*li:00:0:2: +-%li:0B0:1:3:0: +-%*li:0B0:0:3: +-%li:0b0:1:3:0: +-%*li:0b0:0:3: + %li:1:1:1:1: + %*li:1:0:1: + %li:0X1:1:3:1: +@@ -92,10 +64,6 @@ + %*li:0x1:0:3: + %li:01:1:2:1: + %*li:01:0:2: +-%li:0B1:1:3:1: +-%*li:0B1:0:3: +-%li:0b1:1:3:1: +-%*li:0b1:0:3: + %li:42:1:2:42: + %*li:42:0:2: + %li:0X2a:1:4:42: +@@ -104,10 +72,6 @@ + %*li:0x2A:0:4: + %li:052:1:3:42: + %*li:052:0:3: +-%li:0B101010:1:8:42: +-%*li:0B101010:0:8: +-%li:0b101010:1:8:42: +-%*li:0b101010:0:8: + %li:9223372036854775807:1:19:9223372036854775807: + %*li:9223372036854775807:0:19: + %li:0X7fffffffffffffff:1:18:9223372036854775807: +@@ -116,10 +80,6 @@ + %*li:0x7FFFFFFFFFFFFFFF:0:18: + %li:0777777777777777777777:1:22:9223372036854775807: + %*li:0777777777777777777777:0:22: +-%li:0B111111111111111111111111111111111111111111111111111111111111111:1:65:9223372036854775807: +-%*li:0B111111111111111111111111111111111111111111111111111111111111111:0:65: +-%li:0b111111111111111111111111111111111111111111111111111111111111111:1:65:9223372036854775807: +-%*li:0b111111111111111111111111111111111111111111111111111111111111111:0:65: + %li:9223372036854775808:1:19:9223372036854775807: + %*li:9223372036854775808:0:19: + %li:0X8000000000000000:1:18:9223372036854775807: +@@ -128,10 +88,6 @@ + %*li:0x8000000000000000:0:18: + %li:01000000000000000000000:1:23:9223372036854775807: + %*li:01000000000000000000000:0:23: +-%li:0B1000000000000000000000000000000000000000000000000000000000000000:1:66:9223372036854775807: +-%*li:0B1000000000000000000000000000000000000000000000000000000000000000:0:66: +-%li:0b1000000000000000000000000000000000000000000000000000000000000000:1:66:9223372036854775807: +-%*li:0b1000000000000000000000000000000000000000000000000000000000000000:0:66: + %li:9223372036897200049:1:19:9223372036854775807: + %*li:9223372036897200049:0:19: + %li:0X80000000028757b1:1:18:9223372036854775807: +@@ -140,10 +96,6 @@ + %*li:0x80000000028757B1:0:18: + %li:01000000000000241653661:1:23:9223372036854775807: + %*li:01000000000000241653661:0:23: +-%li:0B1000000000000000000000000000000000000010100001110101011110110001:1:66:9223372036854775807: +-%*li:0B1000000000000000000000000000000000000010100001110101011110110001:0:66: +-%li:0b1000000000000000000000000000000000000010100001110101011110110001:1:66:9223372036854775807: +-%*li:0b1000000000000000000000000000000000000010100001110101011110110001:0:66: + %li:+0:1:2:0: + %*li:+0:0:2: + %li:+0X0:1:4:0: +@@ -152,10 +104,6 @@ + %*li:+0x0:0:4: + %li:+00:1:3:0: + %*li:+00:0:3: +-%li:+0B0:1:4:0: +-%*li:+0B0:0:4: +-%li:+0b0:1:4:0: +-%*li:+0b0:0:4: + %li:+1:1:2:1: + %*li:+1:0:2: + %li:+0X1:1:4:1: +@@ -164,10 +112,6 @@ + %*li:+0x1:0:4: + %li:+01:1:3:1: + %*li:+01:0:3: +-%li:+0B1:1:4:1: +-%*li:+0B1:0:4: +-%li:+0b1:1:4:1: +-%*li:+0b1:0:4: + %li:+42:1:3:42: + %*li:+42:0:3: + %li:+0X2a:1:5:42: +@@ -176,10 +120,6 @@ + %*li:+0x2A:0:5: + %li:+052:1:4:42: + %*li:+052:0:4: +-%li:+0B101010:1:9:42: +-%*li:+0B101010:0:9: +-%li:+0b101010:1:9:42: +-%*li:+0b101010:0:9: + %li:+9223372036854775807:1:20:9223372036854775807: + %*li:+9223372036854775807:0:20: + %li:+0X7fffffffffffffff:1:19:9223372036854775807: +@@ -188,10 +128,6 @@ + %*li:+0x7FFFFFFFFFFFFFFF:0:19: + %li:+0777777777777777777777:1:23:9223372036854775807: + %*li:+0777777777777777777777:0:23: +-%li:+0B111111111111111111111111111111111111111111111111111111111111111:1:66:9223372036854775807: +-%*li:+0B111111111111111111111111111111111111111111111111111111111111111:0:66: +-%li:+0b111111111111111111111111111111111111111111111111111111111111111:1:66:9223372036854775807: +-%*li:+0b111111111111111111111111111111111111111111111111111111111111111:0:66: + %li:+9223372036854775808:1:20:9223372036854775807: + %*li:+9223372036854775808:0:20: + %li:+0X8000000000000000:1:19:9223372036854775807: +@@ -200,10 +136,6 @@ + %*li:+0x8000000000000000:0:19: + %li:+01000000000000000000000:1:24:9223372036854775807: + %*li:+01000000000000000000000:0:24: +-%li:+0B1000000000000000000000000000000000000000000000000000000000000000:1:67:9223372036854775807: +-%*li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:67: +-%li:+0b1000000000000000000000000000000000000000000000000000000000000000:1:67:9223372036854775807: +-%*li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:67: + %li:+9223372036897200049:1:20:9223372036854775807: + %*li:+9223372036897200049:0:20: + %li:+0X80000000028757b1:1:19:9223372036854775807: +@@ -212,10 +144,6 @@ + %*li:+0x80000000028757B1:0:19: + %li:+01000000000000241653661:1:24:9223372036854775807: + %*li:+01000000000000241653661:0:24: +-%li:+0B1000000000000000000000000000000000000010100001110101011110110001:1:67:9223372036854775807: +-%*li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:67: +-%li:+0b1000000000000000000000000000000000000010100001110101011110110001:1:67:9223372036854775807: +-%*li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:67: + %1li::0:-1: + %*1li::0:-1: + %1li:-9223372036867121486:0:-1: +@@ -226,10 +154,6 @@ + %*1li:-0x8000000000BC614E:0:-1: + %1li:-01000000000000057060516:0:-1: + %*1li:-01000000000000057060516:0:-1: +-%1li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:-1: +-%*1li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:-1: +-%1li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:-1: +-%*1li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:-1: + %1li:-9223372036854775809:0:-1: + %*1li:-9223372036854775809:0:-1: + %1li:-0X8000000000000001:0:-1: +@@ -238,10 +162,6 @@ + %*1li:-0x8000000000000001:0:-1: + %1li:-01000000000000000000001:0:-1: + %*1li:-01000000000000000000001:0:-1: +-%1li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:-1: +-%*1li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:-1: +-%1li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:-1: +-%*1li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:-1: + %1li:-9223372036854775808:0:-1: + %*1li:-9223372036854775808:0:-1: + %1li:-0X8000000000000000:0:-1: +@@ -250,10 +170,6 @@ + %*1li:-0x8000000000000000:0:-1: + %1li:-01000000000000000000000:0:-1: + %*1li:-01000000000000000000000:0:-1: +-%1li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%1li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: + %1li:-123:0:-1: + %*1li:-123:0:-1: + %1li:-0X7b:0:-1: +@@ -262,10 +178,6 @@ + %*1li:-0x7B:0:-1: + %1li:-0173:0:-1: + %*1li:-0173:0:-1: +-%1li:-0B1111011:0:-1: +-%*1li:-0B1111011:0:-1: +-%1li:-0b1111011:0:-1: +-%*1li:-0b1111011:0:-1: + %1li:-1:0:-1: + %*1li:-1:0:-1: + %1li:-0X1:0:-1: +@@ -274,10 +186,6 @@ + %*1li:-0x1:0:-1: + %1li:-01:0:-1: + %*1li:-01:0:-1: +-%1li:-0B1:0:-1: +-%*1li:-0B1:0:-1: +-%1li:-0b1:0:-1: +-%*1li:-0b1:0:-1: + %1li:-0:0:-1: + %*1li:-0:0:-1: + %1li:-0X0:0:-1: +@@ -286,10 +194,6 @@ + %*1li:-0x0:0:-1: + %1li:-00:0:-1: + %*1li:-00:0:-1: +-%1li:-0B0:0:-1: +-%*1li:-0B0:0:-1: +-%1li:-0b0:0:-1: +-%*1li:-0b0:0:-1: + %1li:0:1:1:0: + %*1li:0:0:1: + %1li:0X0:1:1:0: +@@ -298,10 +202,6 @@ + %*1li:0x0:0:1: + %1li:00:1:1:0: + %*1li:00:0:1: +-%1li:0B0:1:1:0: +-%*1li:0B0:0:1: +-%1li:0b0:1:1:0: +-%*1li:0b0:0:1: + %1li:1:1:1:1: + %*1li:1:0:1: + %1li:0X1:1:1:0: +@@ -310,10 +210,6 @@ + %*1li:0x1:0:1: + %1li:01:1:1:0: + %*1li:01:0:1: +-%1li:0B1:1:1:0: +-%*1li:0B1:0:1: +-%1li:0b1:1:1:0: +-%*1li:0b1:0:1: + %1li:42:1:1:4: + %*1li:42:0:1: + %1li:0X2a:1:1:0: +@@ -322,10 +218,6 @@ + %*1li:0x2A:0:1: + %1li:052:1:1:0: + %*1li:052:0:1: +-%1li:0B101010:1:1:0: +-%*1li:0B101010:0:1: +-%1li:0b101010:1:1:0: +-%*1li:0b101010:0:1: + %1li:9223372036854775807:1:1:9: + %*1li:9223372036854775807:0:1: + %1li:0X7fffffffffffffff:1:1:0: +@@ -334,10 +226,6 @@ + %*1li:0x7FFFFFFFFFFFFFFF:0:1: + %1li:0777777777777777777777:1:1:0: + %*1li:0777777777777777777777:0:1: +-%1li:0B111111111111111111111111111111111111111111111111111111111111111:1:1:0: +-%*1li:0B111111111111111111111111111111111111111111111111111111111111111:0:1: +-%1li:0b111111111111111111111111111111111111111111111111111111111111111:1:1:0: +-%*1li:0b111111111111111111111111111111111111111111111111111111111111111:0:1: + %1li:9223372036854775808:1:1:9: + %*1li:9223372036854775808:0:1: + %1li:0X8000000000000000:1:1:0: +@@ -346,10 +234,6 @@ + %*1li:0x8000000000000000:0:1: + %1li:01000000000000000000000:1:1:0: + %*1li:01000000000000000000000:0:1: +-%1li:0B1000000000000000000000000000000000000000000000000000000000000000:1:1:0: +-%*1li:0B1000000000000000000000000000000000000000000000000000000000000000:0:1: +-%1li:0b1000000000000000000000000000000000000000000000000000000000000000:1:1:0: +-%*1li:0b1000000000000000000000000000000000000000000000000000000000000000:0:1: + %1li:9223372036897200049:1:1:9: + %*1li:9223372036897200049:0:1: + %1li:0X80000000028757b1:1:1:0: +@@ -358,10 +242,6 @@ + %*1li:0x80000000028757B1:0:1: + %1li:01000000000000241653661:1:1:0: + %*1li:01000000000000241653661:0:1: +-%1li:0B1000000000000000000000000000000000000010100001110101011110110001:1:1:0: +-%*1li:0B1000000000000000000000000000000000000010100001110101011110110001:0:1: +-%1li:0b1000000000000000000000000000000000000010100001110101011110110001:1:1:0: +-%*1li:0b1000000000000000000000000000000000000010100001110101011110110001:0:1: + %1li:+0:0:-1: + %*1li:+0:0:-1: + %1li:+0X0:0:-1: +@@ -370,10 +250,6 @@ + %*1li:+0x0:0:-1: + %1li:+00:0:-1: + %*1li:+00:0:-1: +-%1li:+0B0:0:-1: +-%*1li:+0B0:0:-1: +-%1li:+0b0:0:-1: +-%*1li:+0b0:0:-1: + %1li:+1:0:-1: + %*1li:+1:0:-1: + %1li:+0X1:0:-1: +@@ -382,10 +258,6 @@ + %*1li:+0x1:0:-1: + %1li:+01:0:-1: + %*1li:+01:0:-1: +-%1li:+0B1:0:-1: +-%*1li:+0B1:0:-1: +-%1li:+0b1:0:-1: +-%*1li:+0b1:0:-1: + %1li:+42:0:-1: + %*1li:+42:0:-1: + %1li:+0X2a:0:-1: +@@ -394,10 +266,6 @@ + %*1li:+0x2A:0:-1: + %1li:+052:0:-1: + %*1li:+052:0:-1: +-%1li:+0B101010:0:-1: +-%*1li:+0B101010:0:-1: +-%1li:+0b101010:0:-1: +-%*1li:+0b101010:0:-1: + %1li:+9223372036854775807:0:-1: + %*1li:+9223372036854775807:0:-1: + %1li:+0X7fffffffffffffff:0:-1: +@@ -406,10 +274,6 @@ + %*1li:+0x7FFFFFFFFFFFFFFF:0:-1: + %1li:+0777777777777777777777:0:-1: + %*1li:+0777777777777777777777:0:-1: +-%1li:+0B111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%*1li:+0B111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%1li:+0b111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%*1li:+0b111111111111111111111111111111111111111111111111111111111111111:0:-1: + %1li:+9223372036854775808:0:-1: + %*1li:+9223372036854775808:0:-1: + %1li:+0X8000000000000000:0:-1: +@@ -418,10 +282,6 @@ + %*1li:+0x8000000000000000:0:-1: + %1li:+01000000000000000000000:0:-1: + %*1li:+01000000000000000000000:0:-1: +-%1li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%1li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: + %1li:+9223372036897200049:0:-1: + %*1li:+9223372036897200049:0:-1: + %1li:+0X80000000028757b1:0:-1: +@@ -430,10 +290,6 @@ + %*1li:+0x80000000028757B1:0:-1: + %1li:+01000000000000241653661:0:-1: + %*1li:+01000000000000241653661:0:-1: +-%1li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%*1li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%1li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%*1li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: + %2li::0:-1: + %*2li::0:-1: + %2li:-9223372036867121486:1:2:-9: +@@ -444,10 +300,6 @@ + %*2li:-0x8000000000BC614E:0:2: + %2li:-01000000000000057060516:1:2:0: + %*2li:-01000000000000057060516:0:2: +-%2li:-0B1000000000000000000000000000000000000000101111000110000101001110:1:2:0: +-%*2li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:2: +-%2li:-0b1000000000000000000000000000000000000000101111000110000101001110:1:2:0: +-%*2li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:2: + %2li:-9223372036854775809:1:2:-9: + %*2li:-9223372036854775809:0:2: + %2li:-0X8000000000000001:1:2:0: +@@ -456,10 +308,6 @@ + %*2li:-0x8000000000000001:0:2: + %2li:-01000000000000000000001:1:2:0: + %*2li:-01000000000000000000001:0:2: +-%2li:-0B1000000000000000000000000000000000000000000000000000000000000001:1:2:0: +-%*2li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:2: +-%2li:-0b1000000000000000000000000000000000000000000000000000000000000001:1:2:0: +-%*2li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:2: + %2li:-9223372036854775808:1:2:-9: + %*2li:-9223372036854775808:0:2: + %2li:-0X8000000000000000:1:2:0: +@@ -468,10 +316,6 @@ + %*2li:-0x8000000000000000:0:2: + %2li:-01000000000000000000000:1:2:0: + %*2li:-01000000000000000000000:0:2: +-%2li:-0B1000000000000000000000000000000000000000000000000000000000000000:1:2:0: +-%*2li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:2: +-%2li:-0b1000000000000000000000000000000000000000000000000000000000000000:1:2:0: +-%*2li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:2: + %2li:-123:1:2:-1: + %*2li:-123:0:2: + %2li:-0X7b:1:2:0: +@@ -480,10 +324,6 @@ + %*2li:-0x7B:0:2: + %2li:-0173:1:2:0: + %*2li:-0173:0:2: +-%2li:-0B1111011:1:2:0: +-%*2li:-0B1111011:0:2: +-%2li:-0b1111011:1:2:0: +-%*2li:-0b1111011:0:2: + %2li:-1:1:2:-1: + %*2li:-1:0:2: + %2li:-0X1:1:2:0: +@@ -492,10 +332,6 @@ + %*2li:-0x1:0:2: + %2li:-01:1:2:0: + %*2li:-01:0:2: +-%2li:-0B1:1:2:0: +-%*2li:-0B1:0:2: +-%2li:-0b1:1:2:0: +-%*2li:-0b1:0:2: + %2li:-0:1:2:0: + %*2li:-0:0:2: + %2li:-0X0:1:2:0: +@@ -504,10 +340,6 @@ + %*2li:-0x0:0:2: + %2li:-00:1:2:0: + %*2li:-00:0:2: +-%2li:-0B0:1:2:0: +-%*2li:-0B0:0:2: +-%2li:-0b0:1:2:0: +-%*2li:-0b0:0:2: + %2li:0:1:1:0: + %*2li:0:0:1: + # BZ12701 %2li:0X0:0:-1: +@@ -516,10 +348,6 @@ + # BZ12701 %*2li:0x0:0:-1: + %2li:00:1:2:0: + %*2li:00:0:2: +-# BZ12701 %2li:0B0:0:-1: +-# BZ12701 %*2li:0B0:0:-1: +-# BZ12701 %2li:0b0:0:-1: +-# BZ12701 %*2li:0b0:0:-1: + %2li:1:1:1:1: + %*2li:1:0:1: + # BZ12701 %2li:0X1:0:-1: +@@ -528,10 +356,6 @@ + # BZ12701 %*2li:0x1:0:-1: + %2li:01:1:2:1: + %*2li:01:0:2: +-# BZ12701 %2li:0B1:0:-1: +-# BZ12701 %*2li:0B1:0:-1: +-# BZ12701 %2li:0b1:0:-1: +-# BZ12701 %*2li:0b1:0:-1: + %2li:42:1:2:42: + %*2li:42:0:2: + # BZ12701 %2li:0X2a:0:-1: +@@ -540,10 +364,6 @@ + # BZ12701 %*2li:0x2A:0:-1: + %2li:052:1:2:5: + %*2li:052:0:2: +-# BZ12701 %2li:0B101010:0:-1: +-# BZ12701 %*2li:0B101010:0:-1: +-# BZ12701 %2li:0b101010:0:-1: +-# BZ12701 %*2li:0b101010:0:-1: + %2li:9223372036854775807:1:2:92: + %*2li:9223372036854775807:0:2: + # BZ12701 %2li:0X7fffffffffffffff:0:-1: +@@ -552,10 +372,6 @@ + # BZ12701 %*2li:0x7FFFFFFFFFFFFFFF:0:-1: + %2li:0777777777777777777777:1:2:7: + %*2li:0777777777777777777777:0:2: +-# BZ12701 %2li:0B111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2li:0B111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %2li:0b111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2li:0b111111111111111111111111111111111111111111111111111111111111111:0:-1: + %2li:9223372036854775808:1:2:92: + %*2li:9223372036854775808:0:2: + # BZ12701 %2li:0X8000000000000000:0:-1: +@@ -564,10 +380,6 @@ + # BZ12701 %*2li:0x8000000000000000:0:-1: + %2li:01000000000000000000000:1:2:1: + %*2li:01000000000000000000000:0:2: +-# BZ12701 %2li:0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2li:0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %2li:0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2li:0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: + %2li:9223372036897200049:1:2:92: + %*2li:9223372036897200049:0:2: + # BZ12701 %2li:0X80000000028757b1:0:-1: +@@ -576,10 +388,6 @@ + # BZ12701 %*2li:0x80000000028757B1:0:-1: + %2li:01000000000000241653661:1:2:1: + %*2li:01000000000000241653661:0:2: +-# BZ12701 %2li:0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2li:0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %2li:0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2li:0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: + %2li:+0:1:2:0: + %*2li:+0:0:2: + %2li:+0X0:1:2:0: +@@ -588,10 +396,6 @@ + %*2li:+0x0:0:2: + %2li:+00:1:2:0: + %*2li:+00:0:2: +-%2li:+0B0:1:2:0: +-%*2li:+0B0:0:2: +-%2li:+0b0:1:2:0: +-%*2li:+0b0:0:2: + %2li:+1:1:2:1: + %*2li:+1:0:2: + %2li:+0X1:1:2:0: +@@ -600,10 +404,6 @@ + %*2li:+0x1:0:2: + %2li:+01:1:2:0: + %*2li:+01:0:2: +-%2li:+0B1:1:2:0: +-%*2li:+0B1:0:2: +-%2li:+0b1:1:2:0: +-%*2li:+0b1:0:2: + %2li:+42:1:2:4: + %*2li:+42:0:2: + %2li:+0X2a:1:2:0: +@@ -612,10 +412,6 @@ + %*2li:+0x2A:0:2: + %2li:+052:1:2:0: + %*2li:+052:0:2: +-%2li:+0B101010:1:2:0: +-%*2li:+0B101010:0:2: +-%2li:+0b101010:1:2:0: +-%*2li:+0b101010:0:2: + %2li:+9223372036854775807:1:2:9: + %*2li:+9223372036854775807:0:2: + %2li:+0X7fffffffffffffff:1:2:0: +@@ -624,10 +420,6 @@ + %*2li:+0x7FFFFFFFFFFFFFFF:0:2: + %2li:+0777777777777777777777:1:2:0: + %*2li:+0777777777777777777777:0:2: +-%2li:+0B111111111111111111111111111111111111111111111111111111111111111:1:2:0: +-%*2li:+0B111111111111111111111111111111111111111111111111111111111111111:0:2: +-%2li:+0b111111111111111111111111111111111111111111111111111111111111111:1:2:0: +-%*2li:+0b111111111111111111111111111111111111111111111111111111111111111:0:2: + %2li:+9223372036854775808:1:2:9: + %*2li:+9223372036854775808:0:2: + %2li:+0X8000000000000000:1:2:0: +@@ -636,10 +428,6 @@ + %*2li:+0x8000000000000000:0:2: + %2li:+01000000000000000000000:1:2:0: + %*2li:+01000000000000000000000:0:2: +-%2li:+0B1000000000000000000000000000000000000000000000000000000000000000:1:2:0: +-%*2li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:2: +-%2li:+0b1000000000000000000000000000000000000000000000000000000000000000:1:2:0: +-%*2li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:2: + %2li:+9223372036897200049:1:2:9: + %*2li:+9223372036897200049:0:2: + %2li:+0X80000000028757b1:1:2:0: +@@ -648,10 +436,6 @@ + %*2li:+0x80000000028757B1:0:2: + %2li:+01000000000000241653661:1:2:0: + %*2li:+01000000000000241653661:0:2: +-%2li:+0B1000000000000000000000000000000000000010100001110101011110110001:1:2:0: +-%*2li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:2: +-%2li:+0b1000000000000000000000000000000000000010100001110101011110110001:1:2:0: +-%*2li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:2: + %15li::0:-1: + %*15li::0:-1: + %15li:-9223372036867121486:1:15:-92233720368671: +@@ -662,10 +446,6 @@ + %*15li:-0x8000000000BC614E:0:15: + %15li:-01000000000000057060516:1:15:-68719476736: + %*15li:-01000000000000057060516:0:15: +-%15li:-0B1000000000000000000000000000000000000000101111000110000101001110:1:15:-2048: +-%*15li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:15: +-%15li:-0b1000000000000000000000000000000000000000101111000110000101001110:1:15:-2048: +-%*15li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:15: + %15li:-9223372036854775809:1:15:-92233720368547: + %*15li:-9223372036854775809:0:15: + %15li:-0X8000000000000001:1:15:-140737488355328: +@@ -674,10 +454,6 @@ + %*15li:-0x8000000000000001:0:15: + %15li:-01000000000000000000001:1:15:-68719476736: + %*15li:-01000000000000000000001:0:15: +-%15li:-0B1000000000000000000000000000000000000000000000000000000000000001:1:15:-2048: +-%*15li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:15: +-%15li:-0b1000000000000000000000000000000000000000000000000000000000000001:1:15:-2048: +-%*15li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:15: + %15li:-9223372036854775808:1:15:-92233720368547: + %*15li:-9223372036854775808:0:15: + %15li:-0X8000000000000000:1:15:-140737488355328: +@@ -686,10 +462,6 @@ + %*15li:-0x8000000000000000:0:15: + %15li:-01000000000000000000000:1:15:-68719476736: + %*15li:-01000000000000000000000:0:15: +-%15li:-0B1000000000000000000000000000000000000000000000000000000000000000:1:15:-2048: +-%*15li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15li:-0b1000000000000000000000000000000000000000000000000000000000000000:1:15:-2048: +-%*15li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:15: + %15li:-123:1:4:-123: + %*15li:-123:0:4: + %15li:-0X7b:1:5:-123: +@@ -698,10 +470,6 @@ + %*15li:-0x7B:0:5: + %15li:-0173:1:5:-123: + %*15li:-0173:0:5: +-%15li:-0B1111011:1:10:-123: +-%*15li:-0B1111011:0:10: +-%15li:-0b1111011:1:10:-123: +-%*15li:-0b1111011:0:10: + %15li:-1:1:2:-1: + %*15li:-1:0:2: + %15li:-0X1:1:4:-1: +@@ -710,10 +478,6 @@ + %*15li:-0x1:0:4: + %15li:-01:1:3:-1: + %*15li:-01:0:3: +-%15li:-0B1:1:4:-1: +-%*15li:-0B1:0:4: +-%15li:-0b1:1:4:-1: +-%*15li:-0b1:0:4: + %15li:-0:1:2:0: + %*15li:-0:0:2: + %15li:-0X0:1:4:0: +@@ -722,10 +486,6 @@ + %*15li:-0x0:0:4: + %15li:-00:1:3:0: + %*15li:-00:0:3: +-%15li:-0B0:1:4:0: +-%*15li:-0B0:0:4: +-%15li:-0b0:1:4:0: +-%*15li:-0b0:0:4: + %15li:0:1:1:0: + %*15li:0:0:1: + %15li:0X0:1:3:0: +@@ -734,10 +494,6 @@ + %*15li:0x0:0:3: + %15li:00:1:2:0: + %*15li:00:0:2: +-%15li:0B0:1:3:0: +-%*15li:0B0:0:3: +-%15li:0b0:1:3:0: +-%*15li:0b0:0:3: + %15li:1:1:1:1: + %*15li:1:0:1: + %15li:0X1:1:3:1: +@@ -746,10 +502,6 @@ + %*15li:0x1:0:3: + %15li:01:1:2:1: + %*15li:01:0:2: +-%15li:0B1:1:3:1: +-%*15li:0B1:0:3: +-%15li:0b1:1:3:1: +-%*15li:0b1:0:3: + %15li:42:1:2:42: + %*15li:42:0:2: + %15li:0X2a:1:4:42: +@@ -758,10 +510,6 @@ + %*15li:0x2A:0:4: + %15li:052:1:3:42: + %*15li:052:0:3: +-%15li:0B101010:1:8:42: +-%*15li:0B101010:0:8: +-%15li:0b101010:1:8:42: +-%*15li:0b101010:0:8: + %15li:9223372036854775807:1:15:922337203685477: + %*15li:9223372036854775807:0:15: + %15li:0X7fffffffffffffff:1:15:2251799813685247: +@@ -770,10 +518,6 @@ + %*15li:0x7FFFFFFFFFFFFFFF:0:15: + %15li:0777777777777777777777:1:15:4398046511103: + %*15li:0777777777777777777777:0:15: +-%15li:0B111111111111111111111111111111111111111111111111111111111111111:1:15:8191: +-%*15li:0B111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15li:0b111111111111111111111111111111111111111111111111111111111111111:1:15:8191: +-%*15li:0b111111111111111111111111111111111111111111111111111111111111111:0:15: + %15li:9223372036854775808:1:15:922337203685477: + %*15li:9223372036854775808:0:15: + %15li:0X8000000000000000:1:15:2251799813685248: +@@ -782,10 +526,6 @@ + %*15li:0x8000000000000000:0:15: + %15li:01000000000000000000000:1:15:549755813888: + %*15li:01000000000000000000000:0:15: +-%15li:0B1000000000000000000000000000000000000000000000000000000000000000:1:15:4096: +-%*15li:0B1000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15li:0b1000000000000000000000000000000000000000000000000000000000000000:1:15:4096: +-%*15li:0b1000000000000000000000000000000000000000000000000000000000000000:0:15: + %15li:9223372036897200049:1:15:922337203689720: + %*15li:9223372036897200049:0:15: + %15li:0X80000000028757b1:1:15:2251799813695605: +@@ -794,10 +534,6 @@ + %*15li:0x80000000028757B1:0:15: + %15li:01000000000000241653661:1:15:549755813890: + %*15li:01000000000000241653661:0:15: +-%15li:0B1000000000000000000000000000000000000010100001110101011110110001:1:15:4096: +-%*15li:0B1000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15li:0b1000000000000000000000000000000000000010100001110101011110110001:1:15:4096: +-%*15li:0b1000000000000000000000000000000000000010100001110101011110110001:0:15: + %15li:+0:1:2:0: + %*15li:+0:0:2: + %15li:+0X0:1:4:0: +@@ -806,10 +542,6 @@ + %*15li:+0x0:0:4: + %15li:+00:1:3:0: + %*15li:+00:0:3: +-%15li:+0B0:1:4:0: +-%*15li:+0B0:0:4: +-%15li:+0b0:1:4:0: +-%*15li:+0b0:0:4: + %15li:+1:1:2:1: + %*15li:+1:0:2: + %15li:+0X1:1:4:1: +@@ -818,10 +550,6 @@ + %*15li:+0x1:0:4: + %15li:+01:1:3:1: + %*15li:+01:0:3: +-%15li:+0B1:1:4:1: +-%*15li:+0B1:0:4: +-%15li:+0b1:1:4:1: +-%*15li:+0b1:0:4: + %15li:+42:1:3:42: + %*15li:+42:0:3: + %15li:+0X2a:1:5:42: +@@ -830,10 +558,6 @@ + %*15li:+0x2A:0:5: + %15li:+052:1:4:42: + %*15li:+052:0:4: +-%15li:+0B101010:1:9:42: +-%*15li:+0B101010:0:9: +-%15li:+0b101010:1:9:42: +-%*15li:+0b101010:0:9: + %15li:+9223372036854775807:1:15:92233720368547: + %*15li:+9223372036854775807:0:15: + %15li:+0X7fffffffffffffff:1:15:140737488355327: +@@ -842,10 +566,6 @@ + %*15li:+0x7FFFFFFFFFFFFFFF:0:15: + %15li:+0777777777777777777777:1:15:549755813887: + %*15li:+0777777777777777777777:0:15: +-%15li:+0B111111111111111111111111111111111111111111111111111111111111111:1:15:4095: +-%*15li:+0B111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15li:+0b111111111111111111111111111111111111111111111111111111111111111:1:15:4095: +-%*15li:+0b111111111111111111111111111111111111111111111111111111111111111:0:15: + %15li:+9223372036854775808:1:15:92233720368547: + %*15li:+9223372036854775808:0:15: + %15li:+0X8000000000000000:1:15:140737488355328: +@@ -854,10 +574,6 @@ + %*15li:+0x8000000000000000:0:15: + %15li:+01000000000000000000000:1:15:68719476736: + %*15li:+01000000000000000000000:0:15: +-%15li:+0B1000000000000000000000000000000000000000000000000000000000000000:1:15:2048: +-%*15li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15li:+0b1000000000000000000000000000000000000000000000000000000000000000:1:15:2048: +-%*15li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:15: + %15li:+9223372036897200049:1:15:92233720368972: + %*15li:+9223372036897200049:0:15: + %15li:+0X80000000028757b1:1:15:140737488355975: +@@ -866,10 +582,6 @@ + %*15li:+0x80000000028757B1:0:15: + %15li:+01000000000000241653661:1:15:68719476736: + %*15li:+01000000000000241653661:0:15: +-%15li:+0B1000000000000000000000000000000000000010100001110101011110110001:1:15:2048: +-%*15li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15li:+0b1000000000000000000000000000000000000010100001110101011110110001:1:15:2048: +-%*15li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:15: + %25li::0:-1: + %*25li::0:-1: + %25li:-9223372036867121486:1:20:-9223372036854775808: +@@ -880,10 +592,6 @@ + %*25li:-0x8000000000BC614E:0:19: + %25li:-01000000000000057060516:1:24:-9223372036854775808: + %*25li:-01000000000000057060516:0:24: +-%25li:-0B1000000000000000000000000000000000000000101111000110000101001110:1:25:-2097152: +-%*25li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:25: +-%25li:-0b1000000000000000000000000000000000000000101111000110000101001110:1:25:-2097152: +-%*25li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:25: + %25li:-9223372036854775809:1:20:-9223372036854775808: + %*25li:-9223372036854775809:0:20: + %25li:-0X8000000000000001:1:19:-9223372036854775808: +@@ -892,10 +600,6 @@ + %*25li:-0x8000000000000001:0:19: + %25li:-01000000000000000000001:1:24:-9223372036854775808: + %*25li:-01000000000000000000001:0:24: +-%25li:-0B1000000000000000000000000000000000000000000000000000000000000001:1:25:-2097152: +-%*25li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:25: +-%25li:-0b1000000000000000000000000000000000000000000000000000000000000001:1:25:-2097152: +-%*25li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:25: + %25li:-9223372036854775808:1:20:-9223372036854775808: + %*25li:-9223372036854775808:0:20: + %25li:-0X8000000000000000:1:19:-9223372036854775808: +@@ -904,10 +608,6 @@ + %*25li:-0x8000000000000000:0:19: + %25li:-01000000000000000000000:1:24:-9223372036854775808: + %*25li:-01000000000000000000000:0:24: +-%25li:-0B1000000000000000000000000000000000000000000000000000000000000000:1:25:-2097152: +-%*25li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25li:-0b1000000000000000000000000000000000000000000000000000000000000000:1:25:-2097152: +-%*25li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:25: + %25li:-123:1:4:-123: + %*25li:-123:0:4: + %25li:-0X7b:1:5:-123: +@@ -916,10 +616,6 @@ + %*25li:-0x7B:0:5: + %25li:-0173:1:5:-123: + %*25li:-0173:0:5: +-%25li:-0B1111011:1:10:-123: +-%*25li:-0B1111011:0:10: +-%25li:-0b1111011:1:10:-123: +-%*25li:-0b1111011:0:10: + %25li:-1:1:2:-1: + %*25li:-1:0:2: + %25li:-0X1:1:4:-1: +@@ -928,10 +624,6 @@ + %*25li:-0x1:0:4: + %25li:-01:1:3:-1: + %*25li:-01:0:3: +-%25li:-0B1:1:4:-1: +-%*25li:-0B1:0:4: +-%25li:-0b1:1:4:-1: +-%*25li:-0b1:0:4: + %25li:-0:1:2:0: + %*25li:-0:0:2: + %25li:-0X0:1:4:0: +@@ -940,10 +632,6 @@ + %*25li:-0x0:0:4: + %25li:-00:1:3:0: + %*25li:-00:0:3: +-%25li:-0B0:1:4:0: +-%*25li:-0B0:0:4: +-%25li:-0b0:1:4:0: +-%*25li:-0b0:0:4: + %25li:0:1:1:0: + %*25li:0:0:1: + %25li:0X0:1:3:0: +@@ -952,10 +640,6 @@ + %*25li:0x0:0:3: + %25li:00:1:2:0: + %*25li:00:0:2: +-%25li:0B0:1:3:0: +-%*25li:0B0:0:3: +-%25li:0b0:1:3:0: +-%*25li:0b0:0:3: + %25li:1:1:1:1: + %*25li:1:0:1: + %25li:0X1:1:3:1: +@@ -964,10 +648,6 @@ + %*25li:0x1:0:3: + %25li:01:1:2:1: + %*25li:01:0:2: +-%25li:0B1:1:3:1: +-%*25li:0B1:0:3: +-%25li:0b1:1:3:1: +-%*25li:0b1:0:3: + %25li:42:1:2:42: + %*25li:42:0:2: + %25li:0X2a:1:4:42: +@@ -976,10 +656,6 @@ + %*25li:0x2A:0:4: + %25li:052:1:3:42: + %*25li:052:0:3: +-%25li:0B101010:1:8:42: +-%*25li:0B101010:0:8: +-%25li:0b101010:1:8:42: +-%*25li:0b101010:0:8: + %25li:9223372036854775807:1:19:9223372036854775807: + %*25li:9223372036854775807:0:19: + %25li:0X7fffffffffffffff:1:18:9223372036854775807: +@@ -988,10 +664,6 @@ + %*25li:0x7FFFFFFFFFFFFFFF:0:18: + %25li:0777777777777777777777:1:22:9223372036854775807: + %*25li:0777777777777777777777:0:22: +-%25li:0B111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: +-%*25li:0B111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25li:0b111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: +-%*25li:0b111111111111111111111111111111111111111111111111111111111111111:0:25: + %25li:9223372036854775808:1:19:9223372036854775807: + %*25li:9223372036854775808:0:19: + %25li:0X8000000000000000:1:18:9223372036854775807: +@@ -1000,10 +672,6 @@ + %*25li:0x8000000000000000:0:18: + %25li:01000000000000000000000:1:23:9223372036854775807: + %*25li:01000000000000000000000:0:23: +-%25li:0B1000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: +-%*25li:0B1000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25li:0b1000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: +-%*25li:0b1000000000000000000000000000000000000000000000000000000000000000:0:25: + %25li:9223372036897200049:1:19:9223372036854775807: + %*25li:9223372036897200049:0:19: + %25li:0X80000000028757b1:1:18:9223372036854775807: +@@ -1012,10 +680,6 @@ + %*25li:0x80000000028757B1:0:18: + %25li:01000000000000241653661:1:23:9223372036854775807: + %*25li:01000000000000241653661:0:23: +-%25li:0B1000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: +-%*25li:0B1000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25li:0b1000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: +-%*25li:0b1000000000000000000000000000000000000010100001110101011110110001:0:25: + %25li:+0:1:2:0: + %*25li:+0:0:2: + %25li:+0X0:1:4:0: +@@ -1024,10 +688,6 @@ + %*25li:+0x0:0:4: + %25li:+00:1:3:0: + %*25li:+00:0:3: +-%25li:+0B0:1:4:0: +-%*25li:+0B0:0:4: +-%25li:+0b0:1:4:0: +-%*25li:+0b0:0:4: + %25li:+1:1:2:1: + %*25li:+1:0:2: + %25li:+0X1:1:4:1: +@@ -1036,10 +696,6 @@ + %*25li:+0x1:0:4: + %25li:+01:1:3:1: + %*25li:+01:0:3: +-%25li:+0B1:1:4:1: +-%*25li:+0B1:0:4: +-%25li:+0b1:1:4:1: +-%*25li:+0b1:0:4: + %25li:+42:1:3:42: + %*25li:+42:0:3: + %25li:+0X2a:1:5:42: +@@ -1048,10 +704,6 @@ + %*25li:+0x2A:0:5: + %25li:+052:1:4:42: + %*25li:+052:0:4: +-%25li:+0B101010:1:9:42: +-%*25li:+0B101010:0:9: +-%25li:+0b101010:1:9:42: +-%*25li:+0b101010:0:9: + %25li:+9223372036854775807:1:20:9223372036854775807: + %*25li:+9223372036854775807:0:20: + %25li:+0X7fffffffffffffff:1:19:9223372036854775807: +@@ -1060,10 +712,6 @@ + %*25li:+0x7FFFFFFFFFFFFFFF:0:19: + %25li:+0777777777777777777777:1:23:9223372036854775807: + %*25li:+0777777777777777777777:0:23: +-%25li:+0B111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: +-%*25li:+0B111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25li:+0b111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: +-%*25li:+0b111111111111111111111111111111111111111111111111111111111111111:0:25: + %25li:+9223372036854775808:1:20:9223372036854775807: + %*25li:+9223372036854775808:0:20: + %25li:+0X8000000000000000:1:19:9223372036854775807: +@@ -1072,10 +720,6 @@ + %*25li:+0x8000000000000000:0:19: + %25li:+01000000000000000000000:1:24:9223372036854775807: + %*25li:+01000000000000000000000:0:24: +-%25li:+0B1000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: +-%*25li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25li:+0b1000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: +-%*25li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:25: + %25li:+9223372036897200049:1:20:9223372036854775807: + %*25li:+9223372036897200049:0:20: + %25li:+0X80000000028757b1:1:19:9223372036854775807: +@@ -1084,10 +728,6 @@ + %*25li:+0x80000000028757B1:0:19: + %25li:+01000000000000241653661:1:24:9223372036854775807: + %*25li:+01000000000000241653661:0:24: +-%25li:+0B1000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: +-%*25li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25li:+0b1000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: +-%*25li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:25: + %2li: :0:-1: + %*2li: :0:-1: + %2li: -9223372036867121486:1:3:-9: +@@ -1098,10 +738,6 @@ + %*2li: -0x8000000000BC614E:0:3: + %2li: -01000000000000057060516:1:3:0: + %*2li: -01000000000000057060516:0:3: +-%2li: -0B1000000000000000000000000000000000000000101111000110000101001110:1:3:0: +-%*2li: -0B1000000000000000000000000000000000000000101111000110000101001110:0:3: +-%2li: -0b1000000000000000000000000000000000000000101111000110000101001110:1:3:0: +-%*2li: -0b1000000000000000000000000000000000000000101111000110000101001110:0:3: + %2li: -9223372036854775809:1:3:-9: + %*2li: -9223372036854775809:0:3: + %2li: -0X8000000000000001:1:3:0: +@@ -1110,10 +746,6 @@ + %*2li: -0x8000000000000001:0:3: + %2li: -01000000000000000000001:1:3:0: + %*2li: -01000000000000000000001:0:3: +-%2li: -0B1000000000000000000000000000000000000000000000000000000000000001:1:3:0: +-%*2li: -0B1000000000000000000000000000000000000000000000000000000000000001:0:3: +-%2li: -0b1000000000000000000000000000000000000000000000000000000000000001:1:3:0: +-%*2li: -0b1000000000000000000000000000000000000000000000000000000000000001:0:3: + %2li: -9223372036854775808:1:3:-9: + %*2li: -9223372036854775808:0:3: + %2li: -0X8000000000000000:1:3:0: +@@ -1122,10 +754,6 @@ + %*2li: -0x8000000000000000:0:3: + %2li: -01000000000000000000000:1:3:0: + %*2li: -01000000000000000000000:0:3: +-%2li: -0B1000000000000000000000000000000000000000000000000000000000000000:1:3:0: +-%*2li: -0B1000000000000000000000000000000000000000000000000000000000000000:0:3: +-%2li: -0b1000000000000000000000000000000000000000000000000000000000000000:1:3:0: +-%*2li: -0b1000000000000000000000000000000000000000000000000000000000000000:0:3: + %2li: -123:1:3:-1: + %*2li: -123:0:3: + %2li: -0X7b:1:3:0: +@@ -1134,10 +762,6 @@ + %*2li: -0x7B:0:3: + %2li: -0173:1:3:0: + %*2li: -0173:0:3: +-%2li: -0B1111011:1:3:0: +-%*2li: -0B1111011:0:3: +-%2li: -0b1111011:1:3:0: +-%*2li: -0b1111011:0:3: + %2li: -1:1:3:-1: + %*2li: -1:0:3: + %2li: -0X1:1:3:0: +@@ -1146,10 +770,6 @@ + %*2li: -0x1:0:3: + %2li: -01:1:3:0: + %*2li: -01:0:3: +-%2li: -0B1:1:3:0: +-%*2li: -0B1:0:3: +-%2li: -0b1:1:3:0: +-%*2li: -0b1:0:3: + %2li: -0:1:3:0: + %*2li: -0:0:3: + %2li: -0X0:1:3:0: +@@ -1158,10 +778,6 @@ + %*2li: -0x0:0:3: + %2li: -00:1:3:0: + %*2li: -00:0:3: +-%2li: -0B0:1:3:0: +-%*2li: -0B0:0:3: +-%2li: -0b0:1:3:0: +-%*2li: -0b0:0:3: + %2li: 0:1:2:0: + %*2li: 0:0:2: + # BZ12701 %2li: 0X0:0:-1: +@@ -1170,10 +786,6 @@ + # BZ12701 %*2li: 0x0:0:-1: + %2li: 00:1:3:0: + %*2li: 00:0:3: +-# BZ12701 %2li: 0B0:0:-1: +-# BZ12701 %*2li: 0B0:0:-1: +-# BZ12701 %2li: 0b0:0:-1: +-# BZ12701 %*2li: 0b0:0:-1: + %2li: 1:1:2:1: + %*2li: 1:0:2: + # BZ12701 %2li: 0X1:0:-1: +@@ -1182,10 +794,6 @@ + # BZ12701 %*2li: 0x1:0:-1: + %2li: 01:1:3:1: + %*2li: 01:0:3: +-# BZ12701 %2li: 0B1:0:-1: +-# BZ12701 %*2li: 0B1:0:-1: +-# BZ12701 %2li: 0b1:0:-1: +-# BZ12701 %*2li: 0b1:0:-1: + %2li: 42:1:3:42: + %*2li: 42:0:3: + # BZ12701 %2li: 0X2a:0:-1: +@@ -1194,10 +802,6 @@ + # BZ12701 %*2li: 0x2A:0:-1: + %2li: 052:1:3:5: + %*2li: 052:0:3: +-# BZ12701 %2li: 0B101010:0:-1: +-# BZ12701 %*2li: 0B101010:0:-1: +-# BZ12701 %2li: 0b101010:0:-1: +-# BZ12701 %*2li: 0b101010:0:-1: + %2li: 9223372036854775807:1:3:92: + %*2li: 9223372036854775807:0:3: + # BZ12701 %2li: 0X7fffffffffffffff:0:-1: +@@ -1206,10 +810,6 @@ + # BZ12701 %*2li: 0x7FFFFFFFFFFFFFFF:0:-1: + %2li: 0777777777777777777777:1:3:7: + %*2li: 0777777777777777777777:0:3: +-# BZ12701 %2li: 0B111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2li: 0B111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %2li: 0b111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2li: 0b111111111111111111111111111111111111111111111111111111111111111:0:-1: + %2li: 9223372036854775808:1:3:92: + %*2li: 9223372036854775808:0:3: + # BZ12701 %2li: 0X8000000000000000:0:-1: +@@ -1218,10 +818,6 @@ + # BZ12701 %*2li: 0x8000000000000000:0:-1: + %2li: 01000000000000000000000:1:3:1: + %*2li: 01000000000000000000000:0:3: +-# BZ12701 %2li: 0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2li: 0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %2li: 0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2li: 0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: + %2li: 9223372036897200049:1:3:92: + %*2li: 9223372036897200049:0:3: + # BZ12701 %2li: 0X80000000028757b1:0:-1: +@@ -1230,10 +826,6 @@ + # BZ12701 %*2li: 0x80000000028757B1:0:-1: + %2li: 01000000000000241653661:1:3:1: + %*2li: 01000000000000241653661:0:3: +-# BZ12701 %2li: 0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2li: 0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %2li: 0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2li: 0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: + %2li: +0:1:3:0: + %*2li: +0:0:3: + %2li: +0X0:1:3:0: +@@ -1242,10 +834,6 @@ + %*2li: +0x0:0:3: + %2li: +00:1:3:0: + %*2li: +00:0:3: +-%2li: +0B0:1:3:0: +-%*2li: +0B0:0:3: +-%2li: +0b0:1:3:0: +-%*2li: +0b0:0:3: + %2li: +1:1:3:1: + %*2li: +1:0:3: + %2li: +0X1:1:3:0: +@@ -1254,10 +842,6 @@ + %*2li: +0x1:0:3: + %2li: +01:1:3:0: + %*2li: +01:0:3: +-%2li: +0B1:1:3:0: +-%*2li: +0B1:0:3: +-%2li: +0b1:1:3:0: +-%*2li: +0b1:0:3: + %2li: +42:1:3:4: + %*2li: +42:0:3: + %2li: +0X2a:1:3:0: +@@ -1266,10 +850,6 @@ + %*2li: +0x2A:0:3: + %2li: +052:1:3:0: + %*2li: +052:0:3: +-%2li: +0B101010:1:3:0: +-%*2li: +0B101010:0:3: +-%2li: +0b101010:1:3:0: +-%*2li: +0b101010:0:3: + %2li: +9223372036854775807:1:3:9: + %*2li: +9223372036854775807:0:3: + %2li: +0X7fffffffffffffff:1:3:0: +@@ -1278,10 +858,6 @@ + %*2li: +0x7FFFFFFFFFFFFFFF:0:3: + %2li: +0777777777777777777777:1:3:0: + %*2li: +0777777777777777777777:0:3: +-%2li: +0B111111111111111111111111111111111111111111111111111111111111111:1:3:0: +-%*2li: +0B111111111111111111111111111111111111111111111111111111111111111:0:3: +-%2li: +0b111111111111111111111111111111111111111111111111111111111111111:1:3:0: +-%*2li: +0b111111111111111111111111111111111111111111111111111111111111111:0:3: + %2li: +9223372036854775808:1:3:9: + %*2li: +9223372036854775808:0:3: + %2li: +0X8000000000000000:1:3:0: +@@ -1290,10 +866,6 @@ + %*2li: +0x8000000000000000:0:3: + %2li: +01000000000000000000000:1:3:0: + %*2li: +01000000000000000000000:0:3: +-%2li: +0B1000000000000000000000000000000000000000000000000000000000000000:1:3:0: +-%*2li: +0B1000000000000000000000000000000000000000000000000000000000000000:0:3: +-%2li: +0b1000000000000000000000000000000000000000000000000000000000000000:1:3:0: +-%*2li: +0b1000000000000000000000000000000000000000000000000000000000000000:0:3: + %2li: +9223372036897200049:1:3:9: + %*2li: +9223372036897200049:0:3: + %2li: +0X80000000028757b1:1:3:0: +@@ -1302,10 +874,6 @@ + %*2li: +0x80000000028757B1:0:3: + %2li: +01000000000000241653661:1:3:0: + %*2li: +01000000000000241653661:0:3: +-%2li: +0B1000000000000000000000000000000000000010100001110101011110110001:1:3:0: +-%*2li: +0B1000000000000000000000000000000000000010100001110101011110110001:0:3: +-%2li: +0b1000000000000000000000000000000000000010100001110101011110110001:1:3:0: +-%*2li: +0b1000000000000000000000000000000000000010100001110101011110110001:0:3: + %25li: :0:-1: + %*25li: :0:-1: + %25li: -9223372036867121486:1:21:-9223372036854775808: +@@ -1316,10 +884,6 @@ + %*25li: -0x8000000000BC614E:0:20: + %25li: -01000000000000057060516:1:25:-9223372036854775808: + %*25li: -01000000000000057060516:0:25: +-%25li: -0B1000000000000000000000000000000000000000101111000110000101001110:1:26:-2097152: +-%*25li: -0B1000000000000000000000000000000000000000101111000110000101001110:0:26: +-%25li: -0b1000000000000000000000000000000000000000101111000110000101001110:1:26:-2097152: +-%*25li: -0b1000000000000000000000000000000000000000101111000110000101001110:0:26: + %25li: -9223372036854775809:1:21:-9223372036854775808: + %*25li: -9223372036854775809:0:21: + %25li: -0X8000000000000001:1:20:-9223372036854775808: +@@ -1328,10 +892,6 @@ + %*25li: -0x8000000000000001:0:20: + %25li: -01000000000000000000001:1:25:-9223372036854775808: + %*25li: -01000000000000000000001:0:25: +-%25li: -0B1000000000000000000000000000000000000000000000000000000000000001:1:26:-2097152: +-%*25li: -0B1000000000000000000000000000000000000000000000000000000000000001:0:26: +-%25li: -0b1000000000000000000000000000000000000000000000000000000000000001:1:26:-2097152: +-%*25li: -0b1000000000000000000000000000000000000000000000000000000000000001:0:26: + %25li: -9223372036854775808:1:21:-9223372036854775808: + %*25li: -9223372036854775808:0:21: + %25li: -0X8000000000000000:1:20:-9223372036854775808: +@@ -1340,10 +900,6 @@ + %*25li: -0x8000000000000000:0:20: + %25li: -01000000000000000000000:1:25:-9223372036854775808: + %*25li: -01000000000000000000000:0:25: +-%25li: -0B1000000000000000000000000000000000000000000000000000000000000000:1:26:-2097152: +-%*25li: -0B1000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25li: -0b1000000000000000000000000000000000000000000000000000000000000000:1:26:-2097152: +-%*25li: -0b1000000000000000000000000000000000000000000000000000000000000000:0:26: + %25li: -123:1:5:-123: + %*25li: -123:0:5: + %25li: -0X7b:1:6:-123: +@@ -1352,10 +908,6 @@ + %*25li: -0x7B:0:6: + %25li: -0173:1:6:-123: + %*25li: -0173:0:6: +-%25li: -0B1111011:1:11:-123: +-%*25li: -0B1111011:0:11: +-%25li: -0b1111011:1:11:-123: +-%*25li: -0b1111011:0:11: + %25li: -1:1:3:-1: + %*25li: -1:0:3: + %25li: -0X1:1:5:-1: +@@ -1364,10 +916,6 @@ + %*25li: -0x1:0:5: + %25li: -01:1:4:-1: + %*25li: -01:0:4: +-%25li: -0B1:1:5:-1: +-%*25li: -0B1:0:5: +-%25li: -0b1:1:5:-1: +-%*25li: -0b1:0:5: + %25li: -0:1:3:0: + %*25li: -0:0:3: + %25li: -0X0:1:5:0: +@@ -1376,10 +924,6 @@ + %*25li: -0x0:0:5: + %25li: -00:1:4:0: + %*25li: -00:0:4: +-%25li: -0B0:1:5:0: +-%*25li: -0B0:0:5: +-%25li: -0b0:1:5:0: +-%*25li: -0b0:0:5: + %25li: 0:1:2:0: + %*25li: 0:0:2: + %25li: 0X0:1:4:0: +@@ -1388,10 +932,6 @@ + %*25li: 0x0:0:4: + %25li: 00:1:3:0: + %*25li: 00:0:3: +-%25li: 0B0:1:4:0: +-%*25li: 0B0:0:4: +-%25li: 0b0:1:4:0: +-%*25li: 0b0:0:4: + %25li: 1:1:2:1: + %*25li: 1:0:2: + %25li: 0X1:1:4:1: +@@ -1400,10 +940,6 @@ + %*25li: 0x1:0:4: + %25li: 01:1:3:1: + %*25li: 01:0:3: +-%25li: 0B1:1:4:1: +-%*25li: 0B1:0:4: +-%25li: 0b1:1:4:1: +-%*25li: 0b1:0:4: + %25li: 42:1:3:42: + %*25li: 42:0:3: + %25li: 0X2a:1:5:42: +@@ -1412,10 +948,6 @@ + %*25li: 0x2A:0:5: + %25li: 052:1:4:42: + %*25li: 052:0:4: +-%25li: 0B101010:1:9:42: +-%*25li: 0B101010:0:9: +-%25li: 0b101010:1:9:42: +-%*25li: 0b101010:0:9: + %25li: 9223372036854775807:1:20:9223372036854775807: + %*25li: 9223372036854775807:0:20: + %25li: 0X7fffffffffffffff:1:19:9223372036854775807: +@@ -1424,10 +956,6 @@ + %*25li: 0x7FFFFFFFFFFFFFFF:0:19: + %25li: 0777777777777777777777:1:23:9223372036854775807: + %*25li: 0777777777777777777777:0:23: +-%25li: 0B111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: +-%*25li: 0B111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25li: 0b111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: +-%*25li: 0b111111111111111111111111111111111111111111111111111111111111111:0:26: + %25li: 9223372036854775808:1:20:9223372036854775807: + %*25li: 9223372036854775808:0:20: + %25li: 0X8000000000000000:1:19:9223372036854775807: +@@ -1436,10 +964,6 @@ + %*25li: 0x8000000000000000:0:19: + %25li: 01000000000000000000000:1:24:9223372036854775807: + %*25li: 01000000000000000000000:0:24: +-%25li: 0B1000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: +-%*25li: 0B1000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25li: 0b1000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: +-%*25li: 0b1000000000000000000000000000000000000000000000000000000000000000:0:26: + %25li: 9223372036897200049:1:20:9223372036854775807: + %*25li: 9223372036897200049:0:20: + %25li: 0X80000000028757b1:1:19:9223372036854775807: +@@ -1448,10 +972,6 @@ + %*25li: 0x80000000028757B1:0:19: + %25li: 01000000000000241653661:1:24:9223372036854775807: + %*25li: 01000000000000241653661:0:24: +-%25li: 0B1000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: +-%*25li: 0B1000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25li: 0b1000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: +-%*25li: 0b1000000000000000000000000000000000000010100001110101011110110001:0:26: + %25li: +0:1:3:0: + %*25li: +0:0:3: + %25li: +0X0:1:5:0: +@@ -1460,10 +980,6 @@ + %*25li: +0x0:0:5: + %25li: +00:1:4:0: + %*25li: +00:0:4: +-%25li: +0B0:1:5:0: +-%*25li: +0B0:0:5: +-%25li: +0b0:1:5:0: +-%*25li: +0b0:0:5: + %25li: +1:1:3:1: + %*25li: +1:0:3: + %25li: +0X1:1:5:1: +@@ -1472,10 +988,6 @@ + %*25li: +0x1:0:5: + %25li: +01:1:4:1: + %*25li: +01:0:4: +-%25li: +0B1:1:5:1: +-%*25li: +0B1:0:5: +-%25li: +0b1:1:5:1: +-%*25li: +0b1:0:5: + %25li: +42:1:4:42: + %*25li: +42:0:4: + %25li: +0X2a:1:6:42: +@@ -1484,10 +996,6 @@ + %*25li: +0x2A:0:6: + %25li: +052:1:5:42: + %*25li: +052:0:5: +-%25li: +0B101010:1:10:42: +-%*25li: +0B101010:0:10: +-%25li: +0b101010:1:10:42: +-%*25li: +0b101010:0:10: + %25li: +9223372036854775807:1:21:9223372036854775807: + %*25li: +9223372036854775807:0:21: + %25li: +0X7fffffffffffffff:1:20:9223372036854775807: +@@ -1496,10 +1004,6 @@ + %*25li: +0x7FFFFFFFFFFFFFFF:0:20: + %25li: +0777777777777777777777:1:24:9223372036854775807: + %*25li: +0777777777777777777777:0:24: +-%25li: +0B111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: +-%*25li: +0B111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25li: +0b111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: +-%*25li: +0b111111111111111111111111111111111111111111111111111111111111111:0:26: + %25li: +9223372036854775808:1:21:9223372036854775807: + %*25li: +9223372036854775808:0:21: + %25li: +0X8000000000000000:1:20:9223372036854775807: +@@ -1508,10 +1012,6 @@ + %*25li: +0x8000000000000000:0:20: + %25li: +01000000000000000000000:1:25:9223372036854775807: + %*25li: +01000000000000000000000:0:25: +-%25li: +0B1000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: +-%*25li: +0B1000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25li: +0b1000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: +-%*25li: +0b1000000000000000000000000000000000000000000000000000000000000000:0:26: + %25li: +9223372036897200049:1:21:9223372036854775807: + %*25li: +9223372036897200049:0:21: + %25li: +0X80000000028757b1:1:20:9223372036854775807: +@@ -1520,7 +1020,3 @@ + %*25li: +0x80000000028757B1:0:20: + %25li: +01000000000000241653661:1:25:9223372036854775807: + %*25li: +01000000000000241653661:0:25: +-%25li: +0B1000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: +-%*25li: +0B1000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25li: +0b1000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: +-%*25li: +0b1000000000000000000000000000000000000010100001110101011110110001:0:26: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-uint-b.input b/sysdeps/wordsize-64/tst-scanf-format-uint-b.input +deleted file mode 100644 +index 7915af7adcaa4d9f..0000000000000000 +--- a/sysdeps/wordsize-64/tst-scanf-format-uint-b.input ++++ /dev/null +@@ -1,644 +0,0 @@ +-%b::0:-1: +-%*b::0:-1: +-%b:-1111011:1:8:4294967173: +-%*b:-1111011:0:8: +-%b:-0B1111011:1:10:4294967173: +-%*b:-0B1111011:0:10: +-%b:-0b1111011:1:10:4294967173: +-%*b:-0b1111011:0:10: +-%b:-1:1:2:4294967295: +-%*b:-1:0:2: +-%b:-0B1:1:4:4294967295: +-%*b:-0B1:0:4: +-%b:-0b1:1:4:4294967295: +-%*b:-0b1:0:4: +-%b:-0:1:2:0: +-%*b:-0:0:2: +-%b:-0B0:1:4:0: +-%*b:-0B0:0:4: +-%b:-0b0:1:4:0: +-%*b:-0b0:0:4: +-%b:0:1:1:0: +-%*b:0:0:1: +-%b:0B0:1:3:0: +-%*b:0B0:0:3: +-%b:0b0:1:3:0: +-%*b:0b0:0:3: +-%b:1:1:1:1: +-%*b:1:0:1: +-%b:0B1:1:3:1: +-%*b:0B1:0:3: +-%b:0b1:1:3:1: +-%*b:0b1:0:3: +-%b:101010:1:6:42: +-%*b:101010:0:6: +-%b:0B101010:1:8:42: +-%*b:0B101010:0:8: +-%b:0b101010:1:8:42: +-%*b:0b101010:0:8: +-%b:11111111111111111111111111111111:1:32:4294967295: +-%*b:11111111111111111111111111111111:0:32: +-%b:0B11111111111111111111111111111111:1:34:4294967295: +-%*b:0B11111111111111111111111111111111:0:34: +-%b:0b11111111111111111111111111111111:1:34:4294967295: +-%*b:0b11111111111111111111111111111111:0:34: +-%b:100000000000000000000000000000000:1:33:0: +-%*b:100000000000000000000000000000000:0:33: +-%b:0B100000000000000000000000000000000:1:35:0: +-%*b:0B100000000000000000000000000000000:0:35: +-%b:0b100000000000000000000000000000000:1:35:0: +-%*b:0b100000000000000000000000000000000:0:35: +-%b:100000000000000000001000010010001:1:33:4241: +-%*b:100000000000000000001000010010001:0:33: +-%b:0B100000000000000000001000010010001:1:35:4241: +-%*b:0B100000000000000000001000010010001:0:35: +-%b:0b100000000000000000001000010010001:1:35:4241: +-%*b:0b100000000000000000001000010010001:0:35: +-%b:+0:1:2:0: +-%*b:+0:0:2: +-%b:+0B0:1:4:0: +-%*b:+0B0:0:4: +-%b:+0b0:1:4:0: +-%*b:+0b0:0:4: +-%b:+1:1:2:1: +-%*b:+1:0:2: +-%b:+0B1:1:4:1: +-%*b:+0B1:0:4: +-%b:+0b1:1:4:1: +-%*b:+0b1:0:4: +-%b:+101010:1:7:42: +-%*b:+101010:0:7: +-%b:+0B101010:1:9:42: +-%*b:+0B101010:0:9: +-%b:+0b101010:1:9:42: +-%*b:+0b101010:0:9: +-%b:+11111111111111111111111111111111:1:33:4294967295: +-%*b:+11111111111111111111111111111111:0:33: +-%b:+0B11111111111111111111111111111111:1:35:4294967295: +-%*b:+0B11111111111111111111111111111111:0:35: +-%b:+0b11111111111111111111111111111111:1:35:4294967295: +-%*b:+0b11111111111111111111111111111111:0:35: +-%b:+100000000000000000000000000000000:1:34:0: +-%*b:+100000000000000000000000000000000:0:34: +-%b:+0B100000000000000000000000000000000:1:36:0: +-%*b:+0B100000000000000000000000000000000:0:36: +-%b:+0b100000000000000000000000000000000:1:36:0: +-%*b:+0b100000000000000000000000000000000:0:36: +-%b:+100000000000000000001000010010001:1:34:4241: +-%*b:+100000000000000000001000010010001:0:34: +-%b:+0B100000000000000000001000010010001:1:36:4241: +-%*b:+0B100000000000000000001000010010001:0:36: +-%b:+0b100000000000000000001000010010001:1:36:4241: +-%*b:+0b100000000000000000001000010010001:0:36: +-%1b::0:-1: +-%*1b::0:-1: +-%1b:-1111011:0:-1: +-%*1b:-1111011:0:-1: +-%1b:-0B1111011:0:-1: +-%*1b:-0B1111011:0:-1: +-%1b:-0b1111011:0:-1: +-%*1b:-0b1111011:0:-1: +-%1b:-1:0:-1: +-%*1b:-1:0:-1: +-%1b:-0B1:0:-1: +-%*1b:-0B1:0:-1: +-%1b:-0b1:0:-1: +-%*1b:-0b1:0:-1: +-%1b:-0:0:-1: +-%*1b:-0:0:-1: +-%1b:-0B0:0:-1: +-%*1b:-0B0:0:-1: +-%1b:-0b0:0:-1: +-%*1b:-0b0:0:-1: +-%1b:0:1:1:0: +-%*1b:0:0:1: +-%1b:0B0:1:1:0: +-%*1b:0B0:0:1: +-%1b:0b0:1:1:0: +-%*1b:0b0:0:1: +-%1b:1:1:1:1: +-%*1b:1:0:1: +-%1b:0B1:1:1:0: +-%*1b:0B1:0:1: +-%1b:0b1:1:1:0: +-%*1b:0b1:0:1: +-%1b:101010:1:1:1: +-%*1b:101010:0:1: +-%1b:0B101010:1:1:0: +-%*1b:0B101010:0:1: +-%1b:0b101010:1:1:0: +-%*1b:0b101010:0:1: +-%1b:11111111111111111111111111111111:1:1:1: +-%*1b:11111111111111111111111111111111:0:1: +-%1b:0B11111111111111111111111111111111:1:1:0: +-%*1b:0B11111111111111111111111111111111:0:1: +-%1b:0b11111111111111111111111111111111:1:1:0: +-%*1b:0b11111111111111111111111111111111:0:1: +-%1b:100000000000000000000000000000000:1:1:1: +-%*1b:100000000000000000000000000000000:0:1: +-%1b:0B100000000000000000000000000000000:1:1:0: +-%*1b:0B100000000000000000000000000000000:0:1: +-%1b:0b100000000000000000000000000000000:1:1:0: +-%*1b:0b100000000000000000000000000000000:0:1: +-%1b:100000000000000000001000010010001:1:1:1: +-%*1b:100000000000000000001000010010001:0:1: +-%1b:0B100000000000000000001000010010001:1:1:0: +-%*1b:0B100000000000000000001000010010001:0:1: +-%1b:0b100000000000000000001000010010001:1:1:0: +-%*1b:0b100000000000000000001000010010001:0:1: +-%1b:+0:0:-1: +-%*1b:+0:0:-1: +-%1b:+0B0:0:-1: +-%*1b:+0B0:0:-1: +-%1b:+0b0:0:-1: +-%*1b:+0b0:0:-1: +-%1b:+1:0:-1: +-%*1b:+1:0:-1: +-%1b:+0B1:0:-1: +-%*1b:+0B1:0:-1: +-%1b:+0b1:0:-1: +-%*1b:+0b1:0:-1: +-%1b:+101010:0:-1: +-%*1b:+101010:0:-1: +-%1b:+0B101010:0:-1: +-%*1b:+0B101010:0:-1: +-%1b:+0b101010:0:-1: +-%*1b:+0b101010:0:-1: +-%1b:+11111111111111111111111111111111:0:-1: +-%*1b:+11111111111111111111111111111111:0:-1: +-%1b:+0B11111111111111111111111111111111:0:-1: +-%*1b:+0B11111111111111111111111111111111:0:-1: +-%1b:+0b11111111111111111111111111111111:0:-1: +-%*1b:+0b11111111111111111111111111111111:0:-1: +-%1b:+100000000000000000000000000000000:0:-1: +-%*1b:+100000000000000000000000000000000:0:-1: +-%1b:+0B100000000000000000000000000000000:0:-1: +-%*1b:+0B100000000000000000000000000000000:0:-1: +-%1b:+0b100000000000000000000000000000000:0:-1: +-%*1b:+0b100000000000000000000000000000000:0:-1: +-%1b:+100000000000000000001000010010001:0:-1: +-%*1b:+100000000000000000001000010010001:0:-1: +-%1b:+0B100000000000000000001000010010001:0:-1: +-%*1b:+0B100000000000000000001000010010001:0:-1: +-%1b:+0b100000000000000000001000010010001:0:-1: +-%*1b:+0b100000000000000000001000010010001:0:-1: +-%2b::0:-1: +-%*2b::0:-1: +-%2b:-1111011:1:2:4294967295: +-%*2b:-1111011:0:2: +-%2b:-0B1111011:1:2:0: +-%*2b:-0B1111011:0:2: +-%2b:-0b1111011:1:2:0: +-%*2b:-0b1111011:0:2: +-%2b:-1:1:2:4294967295: +-%*2b:-1:0:2: +-%2b:-0B1:1:2:0: +-%*2b:-0B1:0:2: +-%2b:-0b1:1:2:0: +-%*2b:-0b1:0:2: +-%2b:-0:1:2:0: +-%*2b:-0:0:2: +-%2b:-0B0:1:2:0: +-%*2b:-0B0:0:2: +-%2b:-0b0:1:2:0: +-%*2b:-0b0:0:2: +-%2b:0:1:1:0: +-%*2b:0:0:1: +-# BZ12701 %2b:0B0:0:-1: +-# BZ12701 %*2b:0B0:0:-1: +-# BZ12701 %2b:0b0:0:-1: +-# BZ12701 %*2b:0b0:0:-1: +-%2b:1:1:1:1: +-%*2b:1:0:1: +-# BZ12701 %2b:0B1:0:-1: +-# BZ12701 %*2b:0B1:0:-1: +-# BZ12701 %2b:0b1:0:-1: +-# BZ12701 %*2b:0b1:0:-1: +-%2b:101010:1:2:2: +-%*2b:101010:0:2: +-# BZ12701 %2b:0B101010:0:-1: +-# BZ12701 %*2b:0B101010:0:-1: +-# BZ12701 %2b:0b101010:0:-1: +-# BZ12701 %*2b:0b101010:0:-1: +-%2b:11111111111111111111111111111111:1:2:3: +-%*2b:11111111111111111111111111111111:0:2: +-# BZ12701 %2b:0B11111111111111111111111111111111:0:-1: +-# BZ12701 %*2b:0B11111111111111111111111111111111:0:-1: +-# BZ12701 %2b:0b11111111111111111111111111111111:0:-1: +-# BZ12701 %*2b:0b11111111111111111111111111111111:0:-1: +-%2b:100000000000000000000000000000000:1:2:2: +-%*2b:100000000000000000000000000000000:0:2: +-# BZ12701 %2b:0B100000000000000000000000000000000:0:-1: +-# BZ12701 %*2b:0B100000000000000000000000000000000:0:-1: +-# BZ12701 %2b:0b100000000000000000000000000000000:0:-1: +-# BZ12701 %*2b:0b100000000000000000000000000000000:0:-1: +-%2b:100000000000000000001000010010001:1:2:2: +-%*2b:100000000000000000001000010010001:0:2: +-# BZ12701 %2b:0B100000000000000000001000010010001:0:-1: +-# BZ12701 %*2b:0B100000000000000000001000010010001:0:-1: +-# BZ12701 %2b:0b100000000000000000001000010010001:0:-1: +-# BZ12701 %*2b:0b100000000000000000001000010010001:0:-1: +-%2b:+0:1:2:0: +-%*2b:+0:0:2: +-%2b:+0B0:1:2:0: +-%*2b:+0B0:0:2: +-%2b:+0b0:1:2:0: +-%*2b:+0b0:0:2: +-%2b:+1:1:2:1: +-%*2b:+1:0:2: +-%2b:+0B1:1:2:0: +-%*2b:+0B1:0:2: +-%2b:+0b1:1:2:0: +-%*2b:+0b1:0:2: +-%2b:+101010:1:2:1: +-%*2b:+101010:0:2: +-%2b:+0B101010:1:2:0: +-%*2b:+0B101010:0:2: +-%2b:+0b101010:1:2:0: +-%*2b:+0b101010:0:2: +-%2b:+11111111111111111111111111111111:1:2:1: +-%*2b:+11111111111111111111111111111111:0:2: +-%2b:+0B11111111111111111111111111111111:1:2:0: +-%*2b:+0B11111111111111111111111111111111:0:2: +-%2b:+0b11111111111111111111111111111111:1:2:0: +-%*2b:+0b11111111111111111111111111111111:0:2: +-%2b:+100000000000000000000000000000000:1:2:1: +-%*2b:+100000000000000000000000000000000:0:2: +-%2b:+0B100000000000000000000000000000000:1:2:0: +-%*2b:+0B100000000000000000000000000000000:0:2: +-%2b:+0b100000000000000000000000000000000:1:2:0: +-%*2b:+0b100000000000000000000000000000000:0:2: +-%2b:+100000000000000000001000010010001:1:2:1: +-%*2b:+100000000000000000001000010010001:0:2: +-%2b:+0B100000000000000000001000010010001:1:2:0: +-%*2b:+0B100000000000000000001000010010001:0:2: +-%2b:+0b100000000000000000001000010010001:1:2:0: +-%*2b:+0b100000000000000000001000010010001:0:2: +-%8b::0:-1: +-%*8b::0:-1: +-%8b:-1111011:1:8:4294967173: +-%*8b:-1111011:0:8: +-%8b:-0B1111011:1:8:4294967266: +-%*8b:-0B1111011:0:8: +-%8b:-0b1111011:1:8:4294967266: +-%*8b:-0b1111011:0:8: +-%8b:-1:1:2:4294967295: +-%*8b:-1:0:2: +-%8b:-0B1:1:4:4294967295: +-%*8b:-0B1:0:4: +-%8b:-0b1:1:4:4294967295: +-%*8b:-0b1:0:4: +-%8b:-0:1:2:0: +-%*8b:-0:0:2: +-%8b:-0B0:1:4:0: +-%*8b:-0B0:0:4: +-%8b:-0b0:1:4:0: +-%*8b:-0b0:0:4: +-%8b:0:1:1:0: +-%*8b:0:0:1: +-%8b:0B0:1:3:0: +-%*8b:0B0:0:3: +-%8b:0b0:1:3:0: +-%*8b:0b0:0:3: +-%8b:1:1:1:1: +-%*8b:1:0:1: +-%8b:0B1:1:3:1: +-%*8b:0B1:0:3: +-%8b:0b1:1:3:1: +-%*8b:0b1:0:3: +-%8b:101010:1:6:42: +-%*8b:101010:0:6: +-%8b:0B101010:1:8:42: +-%*8b:0B101010:0:8: +-%8b:0b101010:1:8:42: +-%*8b:0b101010:0:8: +-%8b:11111111111111111111111111111111:1:8:255: +-%*8b:11111111111111111111111111111111:0:8: +-%8b:0B11111111111111111111111111111111:1:8:63: +-%*8b:0B11111111111111111111111111111111:0:8: +-%8b:0b11111111111111111111111111111111:1:8:63: +-%*8b:0b11111111111111111111111111111111:0:8: +-%8b:100000000000000000000000000000000:1:8:128: +-%*8b:100000000000000000000000000000000:0:8: +-%8b:0B100000000000000000000000000000000:1:8:32: +-%*8b:0B100000000000000000000000000000000:0:8: +-%8b:0b100000000000000000000000000000000:1:8:32: +-%*8b:0b100000000000000000000000000000000:0:8: +-%8b:100000000000000000001000010010001:1:8:128: +-%*8b:100000000000000000001000010010001:0:8: +-%8b:0B100000000000000000001000010010001:1:8:32: +-%*8b:0B100000000000000000001000010010001:0:8: +-%8b:0b100000000000000000001000010010001:1:8:32: +-%*8b:0b100000000000000000001000010010001:0:8: +-%8b:+0:1:2:0: +-%*8b:+0:0:2: +-%8b:+0B0:1:4:0: +-%*8b:+0B0:0:4: +-%8b:+0b0:1:4:0: +-%*8b:+0b0:0:4: +-%8b:+1:1:2:1: +-%*8b:+1:0:2: +-%8b:+0B1:1:4:1: +-%*8b:+0B1:0:4: +-%8b:+0b1:1:4:1: +-%*8b:+0b1:0:4: +-%8b:+101010:1:7:42: +-%*8b:+101010:0:7: +-%8b:+0B101010:1:8:21: +-%*8b:+0B101010:0:8: +-%8b:+0b101010:1:8:21: +-%*8b:+0b101010:0:8: +-%8b:+11111111111111111111111111111111:1:8:127: +-%*8b:+11111111111111111111111111111111:0:8: +-%8b:+0B11111111111111111111111111111111:1:8:31: +-%*8b:+0B11111111111111111111111111111111:0:8: +-%8b:+0b11111111111111111111111111111111:1:8:31: +-%*8b:+0b11111111111111111111111111111111:0:8: +-%8b:+100000000000000000000000000000000:1:8:64: +-%*8b:+100000000000000000000000000000000:0:8: +-%8b:+0B100000000000000000000000000000000:1:8:16: +-%*8b:+0B100000000000000000000000000000000:0:8: +-%8b:+0b100000000000000000000000000000000:1:8:16: +-%*8b:+0b100000000000000000000000000000000:0:8: +-%8b:+100000000000000000001000010010001:1:8:64: +-%*8b:+100000000000000000001000010010001:0:8: +-%8b:+0B100000000000000000001000010010001:1:8:16: +-%*8b:+0B100000000000000000001000010010001:0:8: +-%8b:+0b100000000000000000001000010010001:1:8:16: +-%*8b:+0b100000000000000000001000010010001:0:8: +-%15b::0:-1: +-%*15b::0:-1: +-%15b:-1111011:1:8:4294967173: +-%*15b:-1111011:0:8: +-%15b:-0B1111011:1:10:4294967173: +-%*15b:-0B1111011:0:10: +-%15b:-0b1111011:1:10:4294967173: +-%*15b:-0b1111011:0:10: +-%15b:-1:1:2:4294967295: +-%*15b:-1:0:2: +-%15b:-0B1:1:4:4294967295: +-%*15b:-0B1:0:4: +-%15b:-0b1:1:4:4294967295: +-%*15b:-0b1:0:4: +-%15b:-0:1:2:0: +-%*15b:-0:0:2: +-%15b:-0B0:1:4:0: +-%*15b:-0B0:0:4: +-%15b:-0b0:1:4:0: +-%*15b:-0b0:0:4: +-%15b:0:1:1:0: +-%*15b:0:0:1: +-%15b:0B0:1:3:0: +-%*15b:0B0:0:3: +-%15b:0b0:1:3:0: +-%*15b:0b0:0:3: +-%15b:1:1:1:1: +-%*15b:1:0:1: +-%15b:0B1:1:3:1: +-%*15b:0B1:0:3: +-%15b:0b1:1:3:1: +-%*15b:0b1:0:3: +-%15b:101010:1:6:42: +-%*15b:101010:0:6: +-%15b:0B101010:1:8:42: +-%*15b:0B101010:0:8: +-%15b:0b101010:1:8:42: +-%*15b:0b101010:0:8: +-%15b:11111111111111111111111111111111:1:15:32767: +-%*15b:11111111111111111111111111111111:0:15: +-%15b:0B11111111111111111111111111111111:1:15:8191: +-%*15b:0B11111111111111111111111111111111:0:15: +-%15b:0b11111111111111111111111111111111:1:15:8191: +-%*15b:0b11111111111111111111111111111111:0:15: +-%15b:100000000000000000000000000000000:1:15:16384: +-%*15b:100000000000000000000000000000000:0:15: +-%15b:0B100000000000000000000000000000000:1:15:4096: +-%*15b:0B100000000000000000000000000000000:0:15: +-%15b:0b100000000000000000000000000000000:1:15:4096: +-%*15b:0b100000000000000000000000000000000:0:15: +-%15b:100000000000000000001000010010001:1:15:16384: +-%*15b:100000000000000000001000010010001:0:15: +-%15b:0B100000000000000000001000010010001:1:15:4096: +-%*15b:0B100000000000000000001000010010001:0:15: +-%15b:0b100000000000000000001000010010001:1:15:4096: +-%*15b:0b100000000000000000001000010010001:0:15: +-%15b:+0:1:2:0: +-%*15b:+0:0:2: +-%15b:+0B0:1:4:0: +-%*15b:+0B0:0:4: +-%15b:+0b0:1:4:0: +-%*15b:+0b0:0:4: +-%15b:+1:1:2:1: +-%*15b:+1:0:2: +-%15b:+0B1:1:4:1: +-%*15b:+0B1:0:4: +-%15b:+0b1:1:4:1: +-%*15b:+0b1:0:4: +-%15b:+101010:1:7:42: +-%*15b:+101010:0:7: +-%15b:+0B101010:1:9:42: +-%*15b:+0B101010:0:9: +-%15b:+0b101010:1:9:42: +-%*15b:+0b101010:0:9: +-%15b:+11111111111111111111111111111111:1:15:16383: +-%*15b:+11111111111111111111111111111111:0:15: +-%15b:+0B11111111111111111111111111111111:1:15:4095: +-%*15b:+0B11111111111111111111111111111111:0:15: +-%15b:+0b11111111111111111111111111111111:1:15:4095: +-%*15b:+0b11111111111111111111111111111111:0:15: +-%15b:+100000000000000000000000000000000:1:15:8192: +-%*15b:+100000000000000000000000000000000:0:15: +-%15b:+0B100000000000000000000000000000000:1:15:2048: +-%*15b:+0B100000000000000000000000000000000:0:15: +-%15b:+0b100000000000000000000000000000000:1:15:2048: +-%*15b:+0b100000000000000000000000000000000:0:15: +-%15b:+100000000000000000001000010010001:1:15:8192: +-%*15b:+100000000000000000001000010010001:0:15: +-%15b:+0B100000000000000000001000010010001:1:15:2048: +-%*15b:+0B100000000000000000001000010010001:0:15: +-%15b:+0b100000000000000000001000010010001:1:15:2048: +-%*15b:+0b100000000000000000001000010010001:0:15: +-%2b: :0:-1: +-%*2b: :0:-1: +-%2b: -1111011:1:3:4294967295: +-%*2b: -1111011:0:3: +-%2b: -0B1111011:1:3:0: +-%*2b: -0B1111011:0:3: +-%2b: -0b1111011:1:3:0: +-%*2b: -0b1111011:0:3: +-%2b: -1:1:3:4294967295: +-%*2b: -1:0:3: +-%2b: -0B1:1:3:0: +-%*2b: -0B1:0:3: +-%2b: -0b1:1:3:0: +-%*2b: -0b1:0:3: +-%2b: -0:1:3:0: +-%*2b: -0:0:3: +-%2b: -0B0:1:3:0: +-%*2b: -0B0:0:3: +-%2b: -0b0:1:3:0: +-%*2b: -0b0:0:3: +-%2b: 0:1:2:0: +-%*2b: 0:0:2: +-# BZ12701 %2b: 0B0:0:-1: +-# BZ12701 %*2b: 0B0:0:-1: +-# BZ12701 %2b: 0b0:0:-1: +-# BZ12701 %*2b: 0b0:0:-1: +-%2b: 1:1:2:1: +-%*2b: 1:0:2: +-# BZ12701 %2b: 0B1:0:-1: +-# BZ12701 %*2b: 0B1:0:-1: +-# BZ12701 %2b: 0b1:0:-1: +-# BZ12701 %*2b: 0b1:0:-1: +-%2b: 101010:1:3:2: +-%*2b: 101010:0:3: +-# BZ12701 %2b: 0B101010:0:-1: +-# BZ12701 %*2b: 0B101010:0:-1: +-# BZ12701 %2b: 0b101010:0:-1: +-# BZ12701 %*2b: 0b101010:0:-1: +-%2b: 11111111111111111111111111111111:1:3:3: +-%*2b: 11111111111111111111111111111111:0:3: +-# BZ12701 %2b: 0B11111111111111111111111111111111:0:-1: +-# BZ12701 %*2b: 0B11111111111111111111111111111111:0:-1: +-# BZ12701 %2b: 0b11111111111111111111111111111111:0:-1: +-# BZ12701 %*2b: 0b11111111111111111111111111111111:0:-1: +-%2b: 100000000000000000000000000000000:1:3:2: +-%*2b: 100000000000000000000000000000000:0:3: +-# BZ12701 %2b: 0B100000000000000000000000000000000:0:-1: +-# BZ12701 %*2b: 0B100000000000000000000000000000000:0:-1: +-# BZ12701 %2b: 0b100000000000000000000000000000000:0:-1: +-# BZ12701 %*2b: 0b100000000000000000000000000000000:0:-1: +-%2b: 100000000000000000001000010010001:1:3:2: +-%*2b: 100000000000000000001000010010001:0:3: +-# BZ12701 %2b: 0B100000000000000000001000010010001:0:-1: +-# BZ12701 %*2b: 0B100000000000000000001000010010001:0:-1: +-# BZ12701 %2b: 0b100000000000000000001000010010001:0:-1: +-# BZ12701 %*2b: 0b100000000000000000001000010010001:0:-1: +-%2b: +0:1:3:0: +-%*2b: +0:0:3: +-%2b: +0B0:1:3:0: +-%*2b: +0B0:0:3: +-%2b: +0b0:1:3:0: +-%*2b: +0b0:0:3: +-%2b: +1:1:3:1: +-%*2b: +1:0:3: +-%2b: +0B1:1:3:0: +-%*2b: +0B1:0:3: +-%2b: +0b1:1:3:0: +-%*2b: +0b1:0:3: +-%2b: +101010:1:3:1: +-%*2b: +101010:0:3: +-%2b: +0B101010:1:3:0: +-%*2b: +0B101010:0:3: +-%2b: +0b101010:1:3:0: +-%*2b: +0b101010:0:3: +-%2b: +11111111111111111111111111111111:1:3:1: +-%*2b: +11111111111111111111111111111111:0:3: +-%2b: +0B11111111111111111111111111111111:1:3:0: +-%*2b: +0B11111111111111111111111111111111:0:3: +-%2b: +0b11111111111111111111111111111111:1:3:0: +-%*2b: +0b11111111111111111111111111111111:0:3: +-%2b: +100000000000000000000000000000000:1:3:1: +-%*2b: +100000000000000000000000000000000:0:3: +-%2b: +0B100000000000000000000000000000000:1:3:0: +-%*2b: +0B100000000000000000000000000000000:0:3: +-%2b: +0b100000000000000000000000000000000:1:3:0: +-%*2b: +0b100000000000000000000000000000000:0:3: +-%2b: +100000000000000000001000010010001:1:3:1: +-%*2b: +100000000000000000001000010010001:0:3: +-%2b: +0B100000000000000000001000010010001:1:3:0: +-%*2b: +0B100000000000000000001000010010001:0:3: +-%2b: +0b100000000000000000001000010010001:1:3:0: +-%*2b: +0b100000000000000000001000010010001:0:3: +-%15b: :0:-1: +-%*15b: :0:-1: +-%15b: -1111011:1:9:4294967173: +-%*15b: -1111011:0:9: +-%15b: -0B1111011:1:11:4294967173: +-%*15b: -0B1111011:0:11: +-%15b: -0b1111011:1:11:4294967173: +-%*15b: -0b1111011:0:11: +-%15b: -1:1:3:4294967295: +-%*15b: -1:0:3: +-%15b: -0B1:1:5:4294967295: +-%*15b: -0B1:0:5: +-%15b: -0b1:1:5:4294967295: +-%*15b: -0b1:0:5: +-%15b: -0:1:3:0: +-%*15b: -0:0:3: +-%15b: -0B0:1:5:0: +-%*15b: -0B0:0:5: +-%15b: -0b0:1:5:0: +-%*15b: -0b0:0:5: +-%15b: 0:1:2:0: +-%*15b: 0:0:2: +-%15b: 0B0:1:4:0: +-%*15b: 0B0:0:4: +-%15b: 0b0:1:4:0: +-%*15b: 0b0:0:4: +-%15b: 1:1:2:1: +-%*15b: 1:0:2: +-%15b: 0B1:1:4:1: +-%*15b: 0B1:0:4: +-%15b: 0b1:1:4:1: +-%*15b: 0b1:0:4: +-%15b: 101010:1:7:42: +-%*15b: 101010:0:7: +-%15b: 0B101010:1:9:42: +-%*15b: 0B101010:0:9: +-%15b: 0b101010:1:9:42: +-%*15b: 0b101010:0:9: +-%15b: 11111111111111111111111111111111:1:16:32767: +-%*15b: 11111111111111111111111111111111:0:16: +-%15b: 0B11111111111111111111111111111111:1:16:8191: +-%*15b: 0B11111111111111111111111111111111:0:16: +-%15b: 0b11111111111111111111111111111111:1:16:8191: +-%*15b: 0b11111111111111111111111111111111:0:16: +-%15b: 100000000000000000000000000000000:1:16:16384: +-%*15b: 100000000000000000000000000000000:0:16: +-%15b: 0B100000000000000000000000000000000:1:16:4096: +-%*15b: 0B100000000000000000000000000000000:0:16: +-%15b: 0b100000000000000000000000000000000:1:16:4096: +-%*15b: 0b100000000000000000000000000000000:0:16: +-%15b: 100000000000000000001000010010001:1:16:16384: +-%*15b: 100000000000000000001000010010001:0:16: +-%15b: 0B100000000000000000001000010010001:1:16:4096: +-%*15b: 0B100000000000000000001000010010001:0:16: +-%15b: 0b100000000000000000001000010010001:1:16:4096: +-%*15b: 0b100000000000000000001000010010001:0:16: +-%15b: +0:1:3:0: +-%*15b: +0:0:3: +-%15b: +0B0:1:5:0: +-%*15b: +0B0:0:5: +-%15b: +0b0:1:5:0: +-%*15b: +0b0:0:5: +-%15b: +1:1:3:1: +-%*15b: +1:0:3: +-%15b: +0B1:1:5:1: +-%*15b: +0B1:0:5: +-%15b: +0b1:1:5:1: +-%*15b: +0b1:0:5: +-%15b: +101010:1:8:42: +-%*15b: +101010:0:8: +-%15b: +0B101010:1:10:42: +-%*15b: +0B101010:0:10: +-%15b: +0b101010:1:10:42: +-%*15b: +0b101010:0:10: +-%15b: +11111111111111111111111111111111:1:16:16383: +-%*15b: +11111111111111111111111111111111:0:16: +-%15b: +0B11111111111111111111111111111111:1:16:4095: +-%*15b: +0B11111111111111111111111111111111:0:16: +-%15b: +0b11111111111111111111111111111111:1:16:4095: +-%*15b: +0b11111111111111111111111111111111:0:16: +-%15b: +100000000000000000000000000000000:1:16:8192: +-%*15b: +100000000000000000000000000000000:0:16: +-%15b: +0B100000000000000000000000000000000:1:16:2048: +-%*15b: +0B100000000000000000000000000000000:0:16: +-%15b: +0b100000000000000000000000000000000:1:16:2048: +-%*15b: +0b100000000000000000000000000000000:0:16: +-%15b: +100000000000000000001000010010001:1:16:8192: +-%*15b: +100000000000000000001000010010001:0:16: +-%15b: +0B100000000000000000001000010010001:1:16:2048: +-%*15b: +0B100000000000000000001000010010001:0:16: +-%15b: +0b100000000000000000001000010010001:1:16:2048: +-%*15b: +0b100000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-ulong-b.input b/sysdeps/wordsize-64/tst-scanf-format-ulong-b.input +deleted file mode 100644 +index ceb176e387185ae3..0000000000000000 +--- a/sysdeps/wordsize-64/tst-scanf-format-ulong-b.input ++++ /dev/null +@@ -1,644 +0,0 @@ +-%lb::0:-1: +-%*lb::0:-1: +-%lb:-1111011:1:8:-123: +-%*lb:-1111011:0:8: +-%lb:-0B1111011:1:10:-123: +-%*lb:-0B1111011:0:10: +-%lb:-0b1111011:1:10:-123: +-%*lb:-0b1111011:0:10: +-%lb:-1:1:2:-1: +-%*lb:-1:0:2: +-%lb:-0B1:1:4:-1: +-%*lb:-0B1:0:4: +-%lb:-0b1:1:4:-1: +-%*lb:-0b1:0:4: +-%lb:-0:1:2:0: +-%*lb:-0:0:2: +-%lb:-0B0:1:4:0: +-%*lb:-0B0:0:4: +-%lb:-0b0:1:4:0: +-%*lb:-0b0:0:4: +-%lb:0:1:1:0: +-%*lb:0:0:1: +-%lb:0B0:1:3:0: +-%*lb:0B0:0:3: +-%lb:0b0:1:3:0: +-%*lb:0b0:0:3: +-%lb:1:1:1:1: +-%*lb:1:0:1: +-%lb:0B1:1:3:1: +-%*lb:0B1:0:3: +-%lb:0b1:1:3:1: +-%*lb:0b1:0:3: +-%lb:101010:1:6:42: +-%*lb:101010:0:6: +-%lb:0B101010:1:8:42: +-%*lb:0B101010:0:8: +-%lb:0b101010:1:8:42: +-%*lb:0b101010:0:8: +-%lb:1111111111111111111111111111111111111111111111111111111111111111:1:64:18446744073709551615: +-%*lb:1111111111111111111111111111111111111111111111111111111111111111:0:64: +-%lb:0B1111111111111111111111111111111111111111111111111111111111111111:1:66:18446744073709551615: +-%*lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:66: +-%lb:0b1111111111111111111111111111111111111111111111111111111111111111:1:66:18446744073709551615: +-%*lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:66: +-%lb:10000000000000000000000000000000000000000000000000000000000000000:1:65:18446744073709551615: +-%*lb:10000000000000000000000000000000000000000000000000000000000000000:0:65: +-%lb:0B10000000000000000000000000000000000000000000000000000000000000000:1:67:18446744073709551615: +-%*lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:67: +-%lb:0b10000000000000000000000000000000000000000000000000000000000000000:1:67:18446744073709551615: +-%*lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:67: +-%lb:10000000000000000000000000000000000000010100001110101011110110001:1:65:18446744073709551615: +-%*lb:10000000000000000000000000000000000000010100001110101011110110001:0:65: +-%lb:0B10000000000000000000000000000000000000010100001110101011110110001:1:67:18446744073709551615: +-%*lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:67: +-%lb:0b10000000000000000000000000000000000000010100001110101011110110001:1:67:18446744073709551615: +-%*lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:67: +-%lb:+0:1:2:0: +-%*lb:+0:0:2: +-%lb:+0B0:1:4:0: +-%*lb:+0B0:0:4: +-%lb:+0b0:1:4:0: +-%*lb:+0b0:0:4: +-%lb:+1:1:2:1: +-%*lb:+1:0:2: +-%lb:+0B1:1:4:1: +-%*lb:+0B1:0:4: +-%lb:+0b1:1:4:1: +-%*lb:+0b1:0:4: +-%lb:+101010:1:7:42: +-%*lb:+101010:0:7: +-%lb:+0B101010:1:9:42: +-%*lb:+0B101010:0:9: +-%lb:+0b101010:1:9:42: +-%*lb:+0b101010:0:9: +-%lb:+1111111111111111111111111111111111111111111111111111111111111111:1:65:18446744073709551615: +-%*lb:+1111111111111111111111111111111111111111111111111111111111111111:0:65: +-%lb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:67:18446744073709551615: +-%*lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:67: +-%lb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:67:18446744073709551615: +-%*lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:67: +-%lb:+10000000000000000000000000000000000000000000000000000000000000000:1:66:18446744073709551615: +-%*lb:+10000000000000000000000000000000000000000000000000000000000000000:0:66: +-%lb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:68:18446744073709551615: +-%*lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:68: +-%lb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:68:18446744073709551615: +-%*lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:68: +-%lb:+10000000000000000000000000000000000000010100001110101011110110001:1:66:18446744073709551615: +-%*lb:+10000000000000000000000000000000000000010100001110101011110110001:0:66: +-%lb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:68:18446744073709551615: +-%*lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:68: +-%lb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:68:18446744073709551615: +-%*lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:68: +-%1lb::0:-1: +-%*1lb::0:-1: +-%1lb:-1111011:0:-1: +-%*1lb:-1111011:0:-1: +-%1lb:-0B1111011:0:-1: +-%*1lb:-0B1111011:0:-1: +-%1lb:-0b1111011:0:-1: +-%*1lb:-0b1111011:0:-1: +-%1lb:-1:0:-1: +-%*1lb:-1:0:-1: +-%1lb:-0B1:0:-1: +-%*1lb:-0B1:0:-1: +-%1lb:-0b1:0:-1: +-%*1lb:-0b1:0:-1: +-%1lb:-0:0:-1: +-%*1lb:-0:0:-1: +-%1lb:-0B0:0:-1: +-%*1lb:-0B0:0:-1: +-%1lb:-0b0:0:-1: +-%*1lb:-0b0:0:-1: +-%1lb:0:1:1:0: +-%*1lb:0:0:1: +-%1lb:0B0:1:1:0: +-%*1lb:0B0:0:1: +-%1lb:0b0:1:1:0: +-%*1lb:0b0:0:1: +-%1lb:1:1:1:1: +-%*1lb:1:0:1: +-%1lb:0B1:1:1:0: +-%*1lb:0B1:0:1: +-%1lb:0b1:1:1:0: +-%*1lb:0b1:0:1: +-%1lb:101010:1:1:1: +-%*1lb:101010:0:1: +-%1lb:0B101010:1:1:0: +-%*1lb:0B101010:0:1: +-%1lb:0b101010:1:1:0: +-%*1lb:0b101010:0:1: +-%1lb:1111111111111111111111111111111111111111111111111111111111111111:1:1:1: +-%*1lb:1111111111111111111111111111111111111111111111111111111111111111:0:1: +-%1lb:0B1111111111111111111111111111111111111111111111111111111111111111:1:1:0: +-%*1lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:1: +-%1lb:0b1111111111111111111111111111111111111111111111111111111111111111:1:1:0: +-%*1lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:1: +-%1lb:10000000000000000000000000000000000000000000000000000000000000000:1:1:1: +-%*1lb:10000000000000000000000000000000000000000000000000000000000000000:0:1: +-%1lb:0B10000000000000000000000000000000000000000000000000000000000000000:1:1:0: +-%*1lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:1: +-%1lb:0b10000000000000000000000000000000000000000000000000000000000000000:1:1:0: +-%*1lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:1: +-%1lb:10000000000000000000000000000000000000010100001110101011110110001:1:1:1: +-%*1lb:10000000000000000000000000000000000000010100001110101011110110001:0:1: +-%1lb:0B10000000000000000000000000000000000000010100001110101011110110001:1:1:0: +-%*1lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:1: +-%1lb:0b10000000000000000000000000000000000000010100001110101011110110001:1:1:0: +-%*1lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:1: +-%1lb:+0:0:-1: +-%*1lb:+0:0:-1: +-%1lb:+0B0:0:-1: +-%*1lb:+0B0:0:-1: +-%1lb:+0b0:0:-1: +-%*1lb:+0b0:0:-1: +-%1lb:+1:0:-1: +-%*1lb:+1:0:-1: +-%1lb:+0B1:0:-1: +-%*1lb:+0B1:0:-1: +-%1lb:+0b1:0:-1: +-%*1lb:+0b1:0:-1: +-%1lb:+101010:0:-1: +-%*1lb:+101010:0:-1: +-%1lb:+0B101010:0:-1: +-%*1lb:+0B101010:0:-1: +-%1lb:+0b101010:0:-1: +-%*1lb:+0b101010:0:-1: +-%1lb:+1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%*1lb:+1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%1lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%*1lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%1lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%*1lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%1lb:+10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1lb:+10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%1lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%1lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%1lb:+10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%*1lb:+10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%1lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%*1lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%1lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%*1lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%2lb::0:-1: +-%*2lb::0:-1: +-%2lb:-1111011:1:2:-1: +-%*2lb:-1111011:0:2: +-%2lb:-0B1111011:1:2:0: +-%*2lb:-0B1111011:0:2: +-%2lb:-0b1111011:1:2:0: +-%*2lb:-0b1111011:0:2: +-%2lb:-1:1:2:-1: +-%*2lb:-1:0:2: +-%2lb:-0B1:1:2:0: +-%*2lb:-0B1:0:2: +-%2lb:-0b1:1:2:0: +-%*2lb:-0b1:0:2: +-%2lb:-0:1:2:0: +-%*2lb:-0:0:2: +-%2lb:-0B0:1:2:0: +-%*2lb:-0B0:0:2: +-%2lb:-0b0:1:2:0: +-%*2lb:-0b0:0:2: +-%2lb:0:1:1:0: +-%*2lb:0:0:1: +-# BZ12701 %2lb:0B0:0:-1: +-# BZ12701 %*2lb:0B0:0:-1: +-# BZ12701 %2lb:0b0:0:-1: +-# BZ12701 %*2lb:0b0:0:-1: +-%2lb:1:1:1:1: +-%*2lb:1:0:1: +-# BZ12701 %2lb:0B1:0:-1: +-# BZ12701 %*2lb:0B1:0:-1: +-# BZ12701 %2lb:0b1:0:-1: +-# BZ12701 %*2lb:0b1:0:-1: +-%2lb:101010:1:2:2: +-%*2lb:101010:0:2: +-# BZ12701 %2lb:0B101010:0:-1: +-# BZ12701 %*2lb:0B101010:0:-1: +-# BZ12701 %2lb:0b101010:0:-1: +-# BZ12701 %*2lb:0b101010:0:-1: +-%2lb:1111111111111111111111111111111111111111111111111111111111111111:1:2:3: +-%*2lb:1111111111111111111111111111111111111111111111111111111111111111:0:2: +-# BZ12701 %2lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %2lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%2lb:10000000000000000000000000000000000000000000000000000000000000000:1:2:2: +-%*2lb:10000000000000000000000000000000000000000000000000000000000000000:0:2: +-# BZ12701 %2lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %2lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%2lb:10000000000000000000000000000000000000010100001110101011110110001:1:2:2: +-%*2lb:10000000000000000000000000000000000000010100001110101011110110001:0:2: +-# BZ12701 %2lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %2lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%2lb:+0:1:2:0: +-%*2lb:+0:0:2: +-%2lb:+0B0:1:2:0: +-%*2lb:+0B0:0:2: +-%2lb:+0b0:1:2:0: +-%*2lb:+0b0:0:2: +-%2lb:+1:1:2:1: +-%*2lb:+1:0:2: +-%2lb:+0B1:1:2:0: +-%*2lb:+0B1:0:2: +-%2lb:+0b1:1:2:0: +-%*2lb:+0b1:0:2: +-%2lb:+101010:1:2:1: +-%*2lb:+101010:0:2: +-%2lb:+0B101010:1:2:0: +-%*2lb:+0B101010:0:2: +-%2lb:+0b101010:1:2:0: +-%*2lb:+0b101010:0:2: +-%2lb:+1111111111111111111111111111111111111111111111111111111111111111:1:2:1: +-%*2lb:+1111111111111111111111111111111111111111111111111111111111111111:0:2: +-%2lb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:2:0: +-%*2lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:2: +-%2lb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:2:0: +-%*2lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:2: +-%2lb:+10000000000000000000000000000000000000000000000000000000000000000:1:2:1: +-%*2lb:+10000000000000000000000000000000000000000000000000000000000000000:0:2: +-%2lb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:2:0: +-%*2lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:2: +-%2lb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:2:0: +-%*2lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:2: +-%2lb:+10000000000000000000000000000000000000010100001110101011110110001:1:2:1: +-%*2lb:+10000000000000000000000000000000000000010100001110101011110110001:0:2: +-%2lb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:2:0: +-%*2lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:2: +-%2lb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:2:0: +-%*2lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:2: +-%15lb::0:-1: +-%*15lb::0:-1: +-%15lb:-1111011:1:8:-123: +-%*15lb:-1111011:0:8: +-%15lb:-0B1111011:1:10:-123: +-%*15lb:-0B1111011:0:10: +-%15lb:-0b1111011:1:10:-123: +-%*15lb:-0b1111011:0:10: +-%15lb:-1:1:2:-1: +-%*15lb:-1:0:2: +-%15lb:-0B1:1:4:-1: +-%*15lb:-0B1:0:4: +-%15lb:-0b1:1:4:-1: +-%*15lb:-0b1:0:4: +-%15lb:-0:1:2:0: +-%*15lb:-0:0:2: +-%15lb:-0B0:1:4:0: +-%*15lb:-0B0:0:4: +-%15lb:-0b0:1:4:0: +-%*15lb:-0b0:0:4: +-%15lb:0:1:1:0: +-%*15lb:0:0:1: +-%15lb:0B0:1:3:0: +-%*15lb:0B0:0:3: +-%15lb:0b0:1:3:0: +-%*15lb:0b0:0:3: +-%15lb:1:1:1:1: +-%*15lb:1:0:1: +-%15lb:0B1:1:3:1: +-%*15lb:0B1:0:3: +-%15lb:0b1:1:3:1: +-%*15lb:0b1:0:3: +-%15lb:101010:1:6:42: +-%*15lb:101010:0:6: +-%15lb:0B101010:1:8:42: +-%*15lb:0B101010:0:8: +-%15lb:0b101010:1:8:42: +-%*15lb:0b101010:0:8: +-%15lb:1111111111111111111111111111111111111111111111111111111111111111:1:15:32767: +-%*15lb:1111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15lb:0B1111111111111111111111111111111111111111111111111111111111111111:1:15:8191: +-%*15lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15lb:0b1111111111111111111111111111111111111111111111111111111111111111:1:15:8191: +-%*15lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15lb:10000000000000000000000000000000000000000000000000000000000000000:1:15:16384: +-%*15lb:10000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15lb:0B10000000000000000000000000000000000000000000000000000000000000000:1:15:4096: +-%*15lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15lb:0b10000000000000000000000000000000000000000000000000000000000000000:1:15:4096: +-%*15lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15lb:10000000000000000000000000000000000000010100001110101011110110001:1:15:16384: +-%*15lb:10000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15lb:0B10000000000000000000000000000000000000010100001110101011110110001:1:15:4096: +-%*15lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15lb:0b10000000000000000000000000000000000000010100001110101011110110001:1:15:4096: +-%*15lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15lb:+0:1:2:0: +-%*15lb:+0:0:2: +-%15lb:+0B0:1:4:0: +-%*15lb:+0B0:0:4: +-%15lb:+0b0:1:4:0: +-%*15lb:+0b0:0:4: +-%15lb:+1:1:2:1: +-%*15lb:+1:0:2: +-%15lb:+0B1:1:4:1: +-%*15lb:+0B1:0:4: +-%15lb:+0b1:1:4:1: +-%*15lb:+0b1:0:4: +-%15lb:+101010:1:7:42: +-%*15lb:+101010:0:7: +-%15lb:+0B101010:1:9:42: +-%*15lb:+0B101010:0:9: +-%15lb:+0b101010:1:9:42: +-%*15lb:+0b101010:0:9: +-%15lb:+1111111111111111111111111111111111111111111111111111111111111111:1:15:16383: +-%*15lb:+1111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15lb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:15:4095: +-%*15lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15lb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:15:4095: +-%*15lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15lb:+10000000000000000000000000000000000000000000000000000000000000000:1:15:8192: +-%*15lb:+10000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15lb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:15:2048: +-%*15lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15lb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:15:2048: +-%*15lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15lb:+10000000000000000000000000000000000000010100001110101011110110001:1:15:8192: +-%*15lb:+10000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15lb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:15:2048: +-%*15lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15lb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:15:2048: +-%*15lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:15: +-%25lb::0:-1: +-%*25lb::0:-1: +-%25lb:-1111011:1:8:-123: +-%*25lb:-1111011:0:8: +-%25lb:-0B1111011:1:10:-123: +-%*25lb:-0B1111011:0:10: +-%25lb:-0b1111011:1:10:-123: +-%*25lb:-0b1111011:0:10: +-%25lb:-1:1:2:-1: +-%*25lb:-1:0:2: +-%25lb:-0B1:1:4:-1: +-%*25lb:-0B1:0:4: +-%25lb:-0b1:1:4:-1: +-%*25lb:-0b1:0:4: +-%25lb:-0:1:2:0: +-%*25lb:-0:0:2: +-%25lb:-0B0:1:4:0: +-%*25lb:-0B0:0:4: +-%25lb:-0b0:1:4:0: +-%*25lb:-0b0:0:4: +-%25lb:0:1:1:0: +-%*25lb:0:0:1: +-%25lb:0B0:1:3:0: +-%*25lb:0B0:0:3: +-%25lb:0b0:1:3:0: +-%*25lb:0b0:0:3: +-%25lb:1:1:1:1: +-%*25lb:1:0:1: +-%25lb:0B1:1:3:1: +-%*25lb:0B1:0:3: +-%25lb:0b1:1:3:1: +-%*25lb:0b1:0:3: +-%25lb:101010:1:6:42: +-%*25lb:101010:0:6: +-%25lb:0B101010:1:8:42: +-%*25lb:0B101010:0:8: +-%25lb:0b101010:1:8:42: +-%*25lb:0b101010:0:8: +-%25lb:1111111111111111111111111111111111111111111111111111111111111111:1:25:33554431: +-%*25lb:1111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25lb:0B1111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: +-%*25lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25lb:0b1111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: +-%*25lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25lb:10000000000000000000000000000000000000000000000000000000000000000:1:25:16777216: +-%*25lb:10000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25lb:0B10000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: +-%*25lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25lb:0b10000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: +-%*25lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25lb:10000000000000000000000000000000000000010100001110101011110110001:1:25:16777216: +-%*25lb:10000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25lb:0B10000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: +-%*25lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25lb:0b10000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: +-%*25lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25lb:+0:1:2:0: +-%*25lb:+0:0:2: +-%25lb:+0B0:1:4:0: +-%*25lb:+0B0:0:4: +-%25lb:+0b0:1:4:0: +-%*25lb:+0b0:0:4: +-%25lb:+1:1:2:1: +-%*25lb:+1:0:2: +-%25lb:+0B1:1:4:1: +-%*25lb:+0B1:0:4: +-%25lb:+0b1:1:4:1: +-%*25lb:+0b1:0:4: +-%25lb:+101010:1:7:42: +-%*25lb:+101010:0:7: +-%25lb:+0B101010:1:9:42: +-%*25lb:+0B101010:0:9: +-%25lb:+0b101010:1:9:42: +-%*25lb:+0b101010:0:9: +-%25lb:+1111111111111111111111111111111111111111111111111111111111111111:1:25:16777215: +-%*25lb:+1111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25lb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: +-%*25lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25lb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: +-%*25lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25lb:+10000000000000000000000000000000000000000000000000000000000000000:1:25:8388608: +-%*25lb:+10000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25lb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: +-%*25lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25lb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: +-%*25lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25lb:+10000000000000000000000000000000000000010100001110101011110110001:1:25:8388608: +-%*25lb:+10000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25lb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: +-%*25lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25lb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: +-%*25lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:25: +-%2lb: :0:-1: +-%*2lb: :0:-1: +-%2lb: -1111011:1:3:-1: +-%*2lb: -1111011:0:3: +-%2lb: -0B1111011:1:3:0: +-%*2lb: -0B1111011:0:3: +-%2lb: -0b1111011:1:3:0: +-%*2lb: -0b1111011:0:3: +-%2lb: -1:1:3:-1: +-%*2lb: -1:0:3: +-%2lb: -0B1:1:3:0: +-%*2lb: -0B1:0:3: +-%2lb: -0b1:1:3:0: +-%*2lb: -0b1:0:3: +-%2lb: -0:1:3:0: +-%*2lb: -0:0:3: +-%2lb: -0B0:1:3:0: +-%*2lb: -0B0:0:3: +-%2lb: -0b0:1:3:0: +-%*2lb: -0b0:0:3: +-%2lb: 0:1:2:0: +-%*2lb: 0:0:2: +-# BZ12701 %2lb: 0B0:0:-1: +-# BZ12701 %*2lb: 0B0:0:-1: +-# BZ12701 %2lb: 0b0:0:-1: +-# BZ12701 %*2lb: 0b0:0:-1: +-%2lb: 1:1:2:1: +-%*2lb: 1:0:2: +-# BZ12701 %2lb: 0B1:0:-1: +-# BZ12701 %*2lb: 0B1:0:-1: +-# BZ12701 %2lb: 0b1:0:-1: +-# BZ12701 %*2lb: 0b1:0:-1: +-%2lb: 101010:1:3:2: +-%*2lb: 101010:0:3: +-# BZ12701 %2lb: 0B101010:0:-1: +-# BZ12701 %*2lb: 0B101010:0:-1: +-# BZ12701 %2lb: 0b101010:0:-1: +-# BZ12701 %*2lb: 0b101010:0:-1: +-%2lb: 1111111111111111111111111111111111111111111111111111111111111111:1:3:3: +-%*2lb: 1111111111111111111111111111111111111111111111111111111111111111:0:3: +-# BZ12701 %2lb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2lb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %2lb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2lb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%2lb: 10000000000000000000000000000000000000000000000000000000000000000:1:3:2: +-%*2lb: 10000000000000000000000000000000000000000000000000000000000000000:0:3: +-# BZ12701 %2lb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2lb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %2lb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2lb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%2lb: 10000000000000000000000000000000000000010100001110101011110110001:1:3:2: +-%*2lb: 10000000000000000000000000000000000000010100001110101011110110001:0:3: +-# BZ12701 %2lb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2lb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %2lb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2lb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%2lb: +0:1:3:0: +-%*2lb: +0:0:3: +-%2lb: +0B0:1:3:0: +-%*2lb: +0B0:0:3: +-%2lb: +0b0:1:3:0: +-%*2lb: +0b0:0:3: +-%2lb: +1:1:3:1: +-%*2lb: +1:0:3: +-%2lb: +0B1:1:3:0: +-%*2lb: +0B1:0:3: +-%2lb: +0b1:1:3:0: +-%*2lb: +0b1:0:3: +-%2lb: +101010:1:3:1: +-%*2lb: +101010:0:3: +-%2lb: +0B101010:1:3:0: +-%*2lb: +0B101010:0:3: +-%2lb: +0b101010:1:3:0: +-%*2lb: +0b101010:0:3: +-%2lb: +1111111111111111111111111111111111111111111111111111111111111111:1:3:1: +-%*2lb: +1111111111111111111111111111111111111111111111111111111111111111:0:3: +-%2lb: +0B1111111111111111111111111111111111111111111111111111111111111111:1:3:0: +-%*2lb: +0B1111111111111111111111111111111111111111111111111111111111111111:0:3: +-%2lb: +0b1111111111111111111111111111111111111111111111111111111111111111:1:3:0: +-%*2lb: +0b1111111111111111111111111111111111111111111111111111111111111111:0:3: +-%2lb: +10000000000000000000000000000000000000000000000000000000000000000:1:3:1: +-%*2lb: +10000000000000000000000000000000000000000000000000000000000000000:0:3: +-%2lb: +0B10000000000000000000000000000000000000000000000000000000000000000:1:3:0: +-%*2lb: +0B10000000000000000000000000000000000000000000000000000000000000000:0:3: +-%2lb: +0b10000000000000000000000000000000000000000000000000000000000000000:1:3:0: +-%*2lb: +0b10000000000000000000000000000000000000000000000000000000000000000:0:3: +-%2lb: +10000000000000000000000000000000000000010100001110101011110110001:1:3:1: +-%*2lb: +10000000000000000000000000000000000000010100001110101011110110001:0:3: +-%2lb: +0B10000000000000000000000000000000000000010100001110101011110110001:1:3:0: +-%*2lb: +0B10000000000000000000000000000000000000010100001110101011110110001:0:3: +-%2lb: +0b10000000000000000000000000000000000000010100001110101011110110001:1:3:0: +-%*2lb: +0b10000000000000000000000000000000000000010100001110101011110110001:0:3: +-%25lb: :0:-1: +-%*25lb: :0:-1: +-%25lb: -1111011:1:9:-123: +-%*25lb: -1111011:0:9: +-%25lb: -0B1111011:1:11:-123: +-%*25lb: -0B1111011:0:11: +-%25lb: -0b1111011:1:11:-123: +-%*25lb: -0b1111011:0:11: +-%25lb: -1:1:3:-1: +-%*25lb: -1:0:3: +-%25lb: -0B1:1:5:-1: +-%*25lb: -0B1:0:5: +-%25lb: -0b1:1:5:-1: +-%*25lb: -0b1:0:5: +-%25lb: -0:1:3:0: +-%*25lb: -0:0:3: +-%25lb: -0B0:1:5:0: +-%*25lb: -0B0:0:5: +-%25lb: -0b0:1:5:0: +-%*25lb: -0b0:0:5: +-%25lb: 0:1:2:0: +-%*25lb: 0:0:2: +-%25lb: 0B0:1:4:0: +-%*25lb: 0B0:0:4: +-%25lb: 0b0:1:4:0: +-%*25lb: 0b0:0:4: +-%25lb: 1:1:2:1: +-%*25lb: 1:0:2: +-%25lb: 0B1:1:4:1: +-%*25lb: 0B1:0:4: +-%25lb: 0b1:1:4:1: +-%*25lb: 0b1:0:4: +-%25lb: 101010:1:7:42: +-%*25lb: 101010:0:7: +-%25lb: 0B101010:1:9:42: +-%*25lb: 0B101010:0:9: +-%25lb: 0b101010:1:9:42: +-%*25lb: 0b101010:0:9: +-%25lb: 1111111111111111111111111111111111111111111111111111111111111111:1:26:33554431: +-%*25lb: 1111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25lb: 0B1111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: +-%*25lb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25lb: 0b1111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: +-%*25lb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25lb: 10000000000000000000000000000000000000000000000000000000000000000:1:26:16777216: +-%*25lb: 10000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25lb: 0B10000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: +-%*25lb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25lb: 0b10000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: +-%*25lb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25lb: 10000000000000000000000000000000000000010100001110101011110110001:1:26:16777216: +-%*25lb: 10000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25lb: 0B10000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: +-%*25lb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25lb: 0b10000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: +-%*25lb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25lb: +0:1:3:0: +-%*25lb: +0:0:3: +-%25lb: +0B0:1:5:0: +-%*25lb: +0B0:0:5: +-%25lb: +0b0:1:5:0: +-%*25lb: +0b0:0:5: +-%25lb: +1:1:3:1: +-%*25lb: +1:0:3: +-%25lb: +0B1:1:5:1: +-%*25lb: +0B1:0:5: +-%25lb: +0b1:1:5:1: +-%*25lb: +0b1:0:5: +-%25lb: +101010:1:8:42: +-%*25lb: +101010:0:8: +-%25lb: +0B101010:1:10:42: +-%*25lb: +0B101010:0:10: +-%25lb: +0b101010:1:10:42: +-%*25lb: +0b101010:0:10: +-%25lb: +1111111111111111111111111111111111111111111111111111111111111111:1:26:16777215: +-%*25lb: +1111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25lb: +0B1111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: +-%*25lb: +0B1111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25lb: +0b1111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: +-%*25lb: +0b1111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25lb: +10000000000000000000000000000000000000000000000000000000000000000:1:26:8388608: +-%*25lb: +10000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25lb: +0B10000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: +-%*25lb: +0B10000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25lb: +0b10000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: +-%*25lb: +0b10000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25lb: +10000000000000000000000000000000000000010100001110101011110110001:1:26:8388608: +-%*25lb: +10000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25lb: +0B10000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: +-%*25lb: +0B10000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25lb: +0b10000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: +-%*25lb: +0b10000000000000000000000000000000000000010100001110101011110110001:0:26: diff --git a/SOURCES/glibc-RHEL-46726-2.patch b/SOURCES/glibc-RHEL-46726-2.patch new file mode 100644 index 0000000..8b08225 --- /dev/null +++ b/SOURCES/glibc-RHEL-46726-2.patch @@ -0,0 +1,9159 @@ +commit d7584e4d367ccb281ecf68980995e9b5ca0aff46 +Author: Maciej W. Rozycki +Date: Tue Mar 25 09:40:20 2025 +0000 + + stdio-common: Add scanf integer data for ILP32 targets + + Add Makefile infrastructure and `int' and `long' integer input data, + signed and unsigned, for ILP32 targets. + + While the size of `int' data is the same between ILP32 and LP64 targets, + resulting scanf output is different between them for out of range input + data and while ISO C and POSIX both say that the behavior is undefined + if the result of the conversion cannot be represented we want to keep + track of our output to prevent inadvertent changes. Hence the use of + distinct `int' integer input data between ILP32 and LP64 targets. + + Keep input data disabled and referring to BZ #12701 for entries that are + are currently incorrectly accepted as valid data, such as '0b' or '0x'. + + Reviewed-by: Joseph Myers + +diff --git a/sysdeps/wordsize-32/Makefile b/sysdeps/wordsize-32/Makefile +new file mode 100644 +index 0000000000000000..5b5aa292667181d4 +--- /dev/null ++++ b/sysdeps/wordsize-32/Makefile +@@ -0,0 +1,4 @@ ++ifeq ($(subdir),stdio-common) ++fmt-xscanf-int-convs += int long ++fmt-xscanf-uint-convs += uint ulong ++endif +diff --git a/sysdeps/wordsize-32/tst-scanf-format-int-d.input b/sysdeps/wordsize-32/tst-scanf-format-int-d.input +new file mode 100644 +index 0000000000000000..5347e290df6c4165 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-int-d.input +@@ -0,0 +1,266 @@ ++%d::0:-1: ++%*d::0:-1: ++%d:-2147484882:1:11:-2147483648: ++%*d:-2147484882:0:11: ++%d:-2147483649:1:11:-2147483648: ++%*d:-2147483649:0:11: ++%d:-2147483648:1:11:-2147483648: ++%*d:-2147483648:0:11: ++%d:-123:1:4:-123: ++%*d:-123:0:4: ++%d:-1:1:2:-1: ++%*d:-1:0:2: ++%d:-0:1:2:0: ++%*d:-0:0:2: ++%d:0:1:1:0: ++%*d:0:0:1: ++%d:1:1:1:1: ++%*d:1:0:1: ++%d:42:1:2:42: ++%*d:42:0:2: ++%d:2147483647:1:10:2147483647: ++%*d:2147483647:0:10: ++%d:2147483648:1:10:2147483647: ++%*d:2147483648:0:10: ++%d:2147487889:1:10:2147483647: ++%*d:2147487889:0:10: ++%d:+0:1:2:0: ++%*d:+0:0:2: ++%d:+1:1:2:1: ++%*d:+1:0:2: ++%d:+42:1:3:42: ++%*d:+42:0:3: ++%d:+2147483647:1:11:2147483647: ++%*d:+2147483647:0:11: ++%d:+2147483648:1:11:2147483647: ++%*d:+2147483648:0:11: ++%d:+2147487889:1:11:2147483647: ++%*d:+2147487889:0:11: ++%1d::0:-1: ++%*1d::0:-1: ++%1d:-2147484882:0:-1: ++%*1d:-2147484882:0:-1: ++%1d:-2147483649:0:-1: ++%*1d:-2147483649:0:-1: ++%1d:-2147483648:0:-1: ++%*1d:-2147483648:0:-1: ++%1d:-123:0:-1: ++%*1d:-123:0:-1: ++%1d:-1:0:-1: ++%*1d:-1:0:-1: ++%1d:-0:0:-1: ++%*1d:-0:0:-1: ++%1d:0:1:1:0: ++%*1d:0:0:1: ++%1d:1:1:1:1: ++%*1d:1:0:1: ++%1d:42:1:1:4: ++%*1d:42:0:1: ++%1d:2147483647:1:1:2: ++%*1d:2147483647:0:1: ++%1d:2147483648:1:1:2: ++%*1d:2147483648:0:1: ++%1d:2147487889:1:1:2: ++%*1d:2147487889:0:1: ++%1d:+0:0:-1: ++%*1d:+0:0:-1: ++%1d:+1:0:-1: ++%*1d:+1:0:-1: ++%1d:+42:0:-1: ++%*1d:+42:0:-1: ++%1d:+2147483647:0:-1: ++%*1d:+2147483647:0:-1: ++%1d:+2147483648:0:-1: ++%*1d:+2147483648:0:-1: ++%1d:+2147487889:0:-1: ++%*1d:+2147487889:0:-1: ++%2d::0:-1: ++%*2d::0:-1: ++%2d:-2147484882:1:2:-2: ++%*2d:-2147484882:0:2: ++%2d:-2147483649:1:2:-2: ++%*2d:-2147483649:0:2: ++%2d:-2147483648:1:2:-2: ++%*2d:-2147483648:0:2: ++%2d:-123:1:2:-1: ++%*2d:-123:0:2: ++%2d:-1:1:2:-1: ++%*2d:-1:0:2: ++%2d:-0:1:2:0: ++%*2d:-0:0:2: ++%2d:0:1:1:0: ++%*2d:0:0:1: ++%2d:1:1:1:1: ++%*2d:1:0:1: ++%2d:42:1:2:42: ++%*2d:42:0:2: ++%2d:2147483647:1:2:21: ++%*2d:2147483647:0:2: ++%2d:2147483648:1:2:21: ++%*2d:2147483648:0:2: ++%2d:2147487889:1:2:21: ++%*2d:2147487889:0:2: ++%2d:+0:1:2:0: ++%*2d:+0:0:2: ++%2d:+1:1:2:1: ++%*2d:+1:0:2: ++%2d:+42:1:2:4: ++%*2d:+42:0:2: ++%2d:+2147483647:1:2:2: ++%*2d:+2147483647:0:2: ++%2d:+2147483648:1:2:2: ++%*2d:+2147483648:0:2: ++%2d:+2147487889:1:2:2: ++%*2d:+2147487889:0:2: ++%8d::0:-1: ++%*8d::0:-1: ++%8d:-2147484882:1:8:-2147484: ++%*8d:-2147484882:0:8: ++%8d:-2147483649:1:8:-2147483: ++%*8d:-2147483649:0:8: ++%8d:-2147483648:1:8:-2147483: ++%*8d:-2147483648:0:8: ++%8d:-123:1:4:-123: ++%*8d:-123:0:4: ++%8d:-1:1:2:-1: ++%*8d:-1:0:2: ++%8d:-0:1:2:0: ++%*8d:-0:0:2: ++%8d:0:1:1:0: ++%*8d:0:0:1: ++%8d:1:1:1:1: ++%*8d:1:0:1: ++%8d:42:1:2:42: ++%*8d:42:0:2: ++%8d:2147483647:1:8:21474836: ++%*8d:2147483647:0:8: ++%8d:2147483648:1:8:21474836: ++%*8d:2147483648:0:8: ++%8d:2147487889:1:8:21474878: ++%*8d:2147487889:0:8: ++%8d:+0:1:2:0: ++%*8d:+0:0:2: ++%8d:+1:1:2:1: ++%*8d:+1:0:2: ++%8d:+42:1:3:42: ++%*8d:+42:0:3: ++%8d:+2147483647:1:8:2147483: ++%*8d:+2147483647:0:8: ++%8d:+2147483648:1:8:2147483: ++%*8d:+2147483648:0:8: ++%8d:+2147487889:1:8:2147487: ++%*8d:+2147487889:0:8: ++%15d::0:-1: ++%*15d::0:-1: ++%15d:-2147484882:1:11:-2147483648: ++%*15d:-2147484882:0:11: ++%15d:-2147483649:1:11:-2147483648: ++%*15d:-2147483649:0:11: ++%15d:-2147483648:1:11:-2147483648: ++%*15d:-2147483648:0:11: ++%15d:-123:1:4:-123: ++%*15d:-123:0:4: ++%15d:-1:1:2:-1: ++%*15d:-1:0:2: ++%15d:-0:1:2:0: ++%*15d:-0:0:2: ++%15d:0:1:1:0: ++%*15d:0:0:1: ++%15d:1:1:1:1: ++%*15d:1:0:1: ++%15d:42:1:2:42: ++%*15d:42:0:2: ++%15d:2147483647:1:10:2147483647: ++%*15d:2147483647:0:10: ++%15d:2147483648:1:10:2147483647: ++%*15d:2147483648:0:10: ++%15d:2147487889:1:10:2147483647: ++%*15d:2147487889:0:10: ++%15d:+0:1:2:0: ++%*15d:+0:0:2: ++%15d:+1:1:2:1: ++%*15d:+1:0:2: ++%15d:+42:1:3:42: ++%*15d:+42:0:3: ++%15d:+2147483647:1:11:2147483647: ++%*15d:+2147483647:0:11: ++%15d:+2147483648:1:11:2147483647: ++%*15d:+2147483648:0:11: ++%15d:+2147487889:1:11:2147483647: ++%*15d:+2147487889:0:11: ++%2d: :0:-1: ++%*2d: :0:-1: ++%2d: -2147484882:1:3:-2: ++%*2d: -2147484882:0:3: ++%2d: -2147483649:1:3:-2: ++%*2d: -2147483649:0:3: ++%2d: -2147483648:1:3:-2: ++%*2d: -2147483648:0:3: ++%2d: -123:1:3:-1: ++%*2d: -123:0:3: ++%2d: -1:1:3:-1: ++%*2d: -1:0:3: ++%2d: -0:1:3:0: ++%*2d: -0:0:3: ++%2d: 0:1:2:0: ++%*2d: 0:0:2: ++%2d: 1:1:2:1: ++%*2d: 1:0:2: ++%2d: 42:1:3:42: ++%*2d: 42:0:3: ++%2d: 2147483647:1:3:21: ++%*2d: 2147483647:0:3: ++%2d: 2147483648:1:3:21: ++%*2d: 2147483648:0:3: ++%2d: 2147487889:1:3:21: ++%*2d: 2147487889:0:3: ++%2d: +0:1:3:0: ++%*2d: +0:0:3: ++%2d: +1:1:3:1: ++%*2d: +1:0:3: ++%2d: +42:1:3:4: ++%*2d: +42:0:3: ++%2d: +2147483647:1:3:2: ++%*2d: +2147483647:0:3: ++%2d: +2147483648:1:3:2: ++%*2d: +2147483648:0:3: ++%2d: +2147487889:1:3:2: ++%*2d: +2147487889:0:3: ++%15d: :0:-1: ++%*15d: :0:-1: ++%15d: -2147484882:1:12:-2147483648: ++%*15d: -2147484882:0:12: ++%15d: -2147483649:1:12:-2147483648: ++%*15d: -2147483649:0:12: ++%15d: -2147483648:1:12:-2147483648: ++%*15d: -2147483648:0:12: ++%15d: -123:1:5:-123: ++%*15d: -123:0:5: ++%15d: -1:1:3:-1: ++%*15d: -1:0:3: ++%15d: -0:1:3:0: ++%*15d: -0:0:3: ++%15d: 0:1:2:0: ++%*15d: 0:0:2: ++%15d: 1:1:2:1: ++%*15d: 1:0:2: ++%15d: 42:1:3:42: ++%*15d: 42:0:3: ++%15d: 2147483647:1:11:2147483647: ++%*15d: 2147483647:0:11: ++%15d: 2147483648:1:11:2147483647: ++%*15d: 2147483648:0:11: ++%15d: 2147487889:1:11:2147483647: ++%*15d: 2147487889:0:11: ++%15d: +0:1:3:0: ++%*15d: +0:0:3: ++%15d: +1:1:3:1: ++%*15d: +1:0:3: ++%15d: +42:1:4:42: ++%*15d: +42:0:4: ++%15d: +2147483647:1:12:2147483647: ++%*15d: +2147483647:0:12: ++%15d: +2147483648:1:12:2147483647: ++%*15d: +2147483648:0:12: ++%15d: +2147487889:1:12:2147483647: ++%*15d: +2147487889:0:12: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-int-i.input b/sysdeps/wordsize-32/tst-scanf-format-int-i.input +new file mode 100644 +index 0000000000000000..212295beedba6bd7 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-int-i.input +@@ -0,0 +1,1526 @@ ++%i::0:-1: ++%*i::0:-1: ++%i:-2147484882:1:11:-2147483648: ++%*i:-2147484882:0:11: ++%i:-0X800004d2:1:11:-2147483648: ++%*i:-0X800004d2:0:11: ++%i:-0x800004D2:1:11:-2147483648: ++%*i:-0x800004D2:0:11: ++%i:-020000002322:1:13:-2147483648: ++%*i:-020000002322:0:13: ++%i:-0B10000000000000000000010011010010:1:35:-2147483648: ++%*i:-0B10000000000000000000010011010010:0:35: ++%i:-0b10000000000000000000010011010010:1:35:-2147483648: ++%*i:-0b10000000000000000000010011010010:0:35: ++%i:-2147483649:1:11:-2147483648: ++%*i:-2147483649:0:11: ++%i:-0X80000001:1:11:-2147483648: ++%*i:-0X80000001:0:11: ++%i:-0x80000001:1:11:-2147483648: ++%*i:-0x80000001:0:11: ++%i:-020000000001:1:13:-2147483648: ++%*i:-020000000001:0:13: ++%i:-0B10000000000000000000000000000001:1:35:-2147483648: ++%*i:-0B10000000000000000000000000000001:0:35: ++%i:-0b10000000000000000000000000000001:1:35:-2147483648: ++%*i:-0b10000000000000000000000000000001:0:35: ++%i:-2147483648:1:11:-2147483648: ++%*i:-2147483648:0:11: ++%i:-0X80000000:1:11:-2147483648: ++%*i:-0X80000000:0:11: ++%i:-0x80000000:1:11:-2147483648: ++%*i:-0x80000000:0:11: ++%i:-020000000000:1:13:-2147483648: ++%*i:-020000000000:0:13: ++%i:-0B10000000000000000000000000000000:1:35:-2147483648: ++%*i:-0B10000000000000000000000000000000:0:35: ++%i:-0b10000000000000000000000000000000:1:35:-2147483648: ++%*i:-0b10000000000000000000000000000000:0:35: ++%i:-123:1:4:-123: ++%*i:-123:0:4: ++%i:-0X7b:1:5:-123: ++%*i:-0X7b:0:5: ++%i:-0x7B:1:5:-123: ++%*i:-0x7B:0:5: ++%i:-0173:1:5:-123: ++%*i:-0173:0:5: ++%i:-0B1111011:1:10:-123: ++%*i:-0B1111011:0:10: ++%i:-0b1111011:1:10:-123: ++%*i:-0b1111011:0:10: ++%i:-1:1:2:-1: ++%*i:-1:0:2: ++%i:-0X1:1:4:-1: ++%*i:-0X1:0:4: ++%i:-0x1:1:4:-1: ++%*i:-0x1:0:4: ++%i:-01:1:3:-1: ++%*i:-01:0:3: ++%i:-0B1:1:4:-1: ++%*i:-0B1:0:4: ++%i:-0b1:1:4:-1: ++%*i:-0b1:0:4: ++%i:-0:1:2:0: ++%*i:-0:0:2: ++%i:-0X0:1:4:0: ++%*i:-0X0:0:4: ++%i:-0x0:1:4:0: ++%*i:-0x0:0:4: ++%i:-00:1:3:0: ++%*i:-00:0:3: ++%i:-0B0:1:4:0: ++%*i:-0B0:0:4: ++%i:-0b0:1:4:0: ++%*i:-0b0:0:4: ++%i:0:1:1:0: ++%*i:0:0:1: ++%i:0X0:1:3:0: ++%*i:0X0:0:3: ++%i:0x0:1:3:0: ++%*i:0x0:0:3: ++%i:00:1:2:0: ++%*i:00:0:2: ++%i:0B0:1:3:0: ++%*i:0B0:0:3: ++%i:0b0:1:3:0: ++%*i:0b0:0:3: ++%i:1:1:1:1: ++%*i:1:0:1: ++%i:0X1:1:3:1: ++%*i:0X1:0:3: ++%i:0x1:1:3:1: ++%*i:0x1:0:3: ++%i:01:1:2:1: ++%*i:01:0:2: ++%i:0B1:1:3:1: ++%*i:0B1:0:3: ++%i:0b1:1:3:1: ++%*i:0b1:0:3: ++%i:42:1:2:42: ++%*i:42:0:2: ++%i:0X2a:1:4:42: ++%*i:0X2a:0:4: ++%i:0x2A:1:4:42: ++%*i:0x2A:0:4: ++%i:052:1:3:42: ++%*i:052:0:3: ++%i:0B101010:1:8:42: ++%*i:0B101010:0:8: ++%i:0b101010:1:8:42: ++%*i:0b101010:0:8: ++%i:2147483647:1:10:2147483647: ++%*i:2147483647:0:10: ++%i:0X7fffffff:1:10:2147483647: ++%*i:0X7fffffff:0:10: ++%i:0x7FFFFFFF:1:10:2147483647: ++%*i:0x7FFFFFFF:0:10: ++%i:017777777777:1:12:2147483647: ++%*i:017777777777:0:12: ++%i:0B1111111111111111111111111111111:1:33:2147483647: ++%*i:0B1111111111111111111111111111111:0:33: ++%i:0b1111111111111111111111111111111:1:33:2147483647: ++%*i:0b1111111111111111111111111111111:0:33: ++%i:2147483648:1:10:2147483647: ++%*i:2147483648:0:10: ++%i:0X80000000:1:10:2147483647: ++%*i:0X80000000:0:10: ++%i:0x80000000:1:10:2147483647: ++%*i:0x80000000:0:10: ++%i:020000000000:1:12:2147483647: ++%*i:020000000000:0:12: ++%i:0B10000000000000000000000000000000:1:34:2147483647: ++%*i:0B10000000000000000000000000000000:0:34: ++%i:0b10000000000000000000000000000000:1:34:2147483647: ++%*i:0b10000000000000000000000000000000:0:34: ++%i:2147487889:1:10:2147483647: ++%*i:2147487889:0:10: ++%i:0X80001091:1:10:2147483647: ++%*i:0X80001091:0:10: ++%i:0x80001091:1:10:2147483647: ++%*i:0x80001091:0:10: ++%i:020000010221:1:12:2147483647: ++%*i:020000010221:0:12: ++%i:0B10000000000000000001000010010001:1:34:2147483647: ++%*i:0B10000000000000000001000010010001:0:34: ++%i:0b10000000000000000001000010010001:1:34:2147483647: ++%*i:0b10000000000000000001000010010001:0:34: ++%i:+0:1:2:0: ++%*i:+0:0:2: ++%i:+0X0:1:4:0: ++%*i:+0X0:0:4: ++%i:+0x0:1:4:0: ++%*i:+0x0:0:4: ++%i:+00:1:3:0: ++%*i:+00:0:3: ++%i:+0B0:1:4:0: ++%*i:+0B0:0:4: ++%i:+0b0:1:4:0: ++%*i:+0b0:0:4: ++%i:+1:1:2:1: ++%*i:+1:0:2: ++%i:+0X1:1:4:1: ++%*i:+0X1:0:4: ++%i:+0x1:1:4:1: ++%*i:+0x1:0:4: ++%i:+01:1:3:1: ++%*i:+01:0:3: ++%i:+0B1:1:4:1: ++%*i:+0B1:0:4: ++%i:+0b1:1:4:1: ++%*i:+0b1:0:4: ++%i:+42:1:3:42: ++%*i:+42:0:3: ++%i:+0X2a:1:5:42: ++%*i:+0X2a:0:5: ++%i:+0x2A:1:5:42: ++%*i:+0x2A:0:5: ++%i:+052:1:4:42: ++%*i:+052:0:4: ++%i:+0B101010:1:9:42: ++%*i:+0B101010:0:9: ++%i:+0b101010:1:9:42: ++%*i:+0b101010:0:9: ++%i:+2147483647:1:11:2147483647: ++%*i:+2147483647:0:11: ++%i:+0X7fffffff:1:11:2147483647: ++%*i:+0X7fffffff:0:11: ++%i:+0x7FFFFFFF:1:11:2147483647: ++%*i:+0x7FFFFFFF:0:11: ++%i:+017777777777:1:13:2147483647: ++%*i:+017777777777:0:13: ++%i:+0B1111111111111111111111111111111:1:34:2147483647: ++%*i:+0B1111111111111111111111111111111:0:34: ++%i:+0b1111111111111111111111111111111:1:34:2147483647: ++%*i:+0b1111111111111111111111111111111:0:34: ++%i:+2147483648:1:11:2147483647: ++%*i:+2147483648:0:11: ++%i:+0X80000000:1:11:2147483647: ++%*i:+0X80000000:0:11: ++%i:+0x80000000:1:11:2147483647: ++%*i:+0x80000000:0:11: ++%i:+020000000000:1:13:2147483647: ++%*i:+020000000000:0:13: ++%i:+0B10000000000000000000000000000000:1:35:2147483647: ++%*i:+0B10000000000000000000000000000000:0:35: ++%i:+0b10000000000000000000000000000000:1:35:2147483647: ++%*i:+0b10000000000000000000000000000000:0:35: ++%i:+2147487889:1:11:2147483647: ++%*i:+2147487889:0:11: ++%i:+0X80001091:1:11:2147483647: ++%*i:+0X80001091:0:11: ++%i:+0x80001091:1:11:2147483647: ++%*i:+0x80001091:0:11: ++%i:+020000010221:1:13:2147483647: ++%*i:+020000010221:0:13: ++%i:+0B10000000000000000001000010010001:1:35:2147483647: ++%*i:+0B10000000000000000001000010010001:0:35: ++%i:+0b10000000000000000001000010010001:1:35:2147483647: ++%*i:+0b10000000000000000001000010010001:0:35: ++%1i::0:-1: ++%*1i::0:-1: ++%1i:-2147484882:0:-1: ++%*1i:-2147484882:0:-1: ++%1i:-0X800004d2:0:-1: ++%*1i:-0X800004d2:0:-1: ++%1i:-0x800004D2:0:-1: ++%*1i:-0x800004D2:0:-1: ++%1i:-020000002322:0:-1: ++%*1i:-020000002322:0:-1: ++%1i:-0B10000000000000000000010011010010:0:-1: ++%*1i:-0B10000000000000000000010011010010:0:-1: ++%1i:-0b10000000000000000000010011010010:0:-1: ++%*1i:-0b10000000000000000000010011010010:0:-1: ++%1i:-2147483649:0:-1: ++%*1i:-2147483649:0:-1: ++%1i:-0X80000001:0:-1: ++%*1i:-0X80000001:0:-1: ++%1i:-0x80000001:0:-1: ++%*1i:-0x80000001:0:-1: ++%1i:-020000000001:0:-1: ++%*1i:-020000000001:0:-1: ++%1i:-0B10000000000000000000000000000001:0:-1: ++%*1i:-0B10000000000000000000000000000001:0:-1: ++%1i:-0b10000000000000000000000000000001:0:-1: ++%*1i:-0b10000000000000000000000000000001:0:-1: ++%1i:-2147483648:0:-1: ++%*1i:-2147483648:0:-1: ++%1i:-0X80000000:0:-1: ++%*1i:-0X80000000:0:-1: ++%1i:-0x80000000:0:-1: ++%*1i:-0x80000000:0:-1: ++%1i:-020000000000:0:-1: ++%*1i:-020000000000:0:-1: ++%1i:-0B10000000000000000000000000000000:0:-1: ++%*1i:-0B10000000000000000000000000000000:0:-1: ++%1i:-0b10000000000000000000000000000000:0:-1: ++%*1i:-0b10000000000000000000000000000000:0:-1: ++%1i:-123:0:-1: ++%*1i:-123:0:-1: ++%1i:-0X7b:0:-1: ++%*1i:-0X7b:0:-1: ++%1i:-0x7B:0:-1: ++%*1i:-0x7B:0:-1: ++%1i:-0173:0:-1: ++%*1i:-0173:0:-1: ++%1i:-0B1111011:0:-1: ++%*1i:-0B1111011:0:-1: ++%1i:-0b1111011:0:-1: ++%*1i:-0b1111011:0:-1: ++%1i:-1:0:-1: ++%*1i:-1:0:-1: ++%1i:-0X1:0:-1: ++%*1i:-0X1:0:-1: ++%1i:-0x1:0:-1: ++%*1i:-0x1:0:-1: ++%1i:-01:0:-1: ++%*1i:-01:0:-1: ++%1i:-0B1:0:-1: ++%*1i:-0B1:0:-1: ++%1i:-0b1:0:-1: ++%*1i:-0b1:0:-1: ++%1i:-0:0:-1: ++%*1i:-0:0:-1: ++%1i:-0X0:0:-1: ++%*1i:-0X0:0:-1: ++%1i:-0x0:0:-1: ++%*1i:-0x0:0:-1: ++%1i:-00:0:-1: ++%*1i:-00:0:-1: ++%1i:-0B0:0:-1: ++%*1i:-0B0:0:-1: ++%1i:-0b0:0:-1: ++%*1i:-0b0:0:-1: ++%1i:0:1:1:0: ++%*1i:0:0:1: ++%1i:0X0:1:1:0: ++%*1i:0X0:0:1: ++%1i:0x0:1:1:0: ++%*1i:0x0:0:1: ++%1i:00:1:1:0: ++%*1i:00:0:1: ++%1i:0B0:1:1:0: ++%*1i:0B0:0:1: ++%1i:0b0:1:1:0: ++%*1i:0b0:0:1: ++%1i:1:1:1:1: ++%*1i:1:0:1: ++%1i:0X1:1:1:0: ++%*1i:0X1:0:1: ++%1i:0x1:1:1:0: ++%*1i:0x1:0:1: ++%1i:01:1:1:0: ++%*1i:01:0:1: ++%1i:0B1:1:1:0: ++%*1i:0B1:0:1: ++%1i:0b1:1:1:0: ++%*1i:0b1:0:1: ++%1i:42:1:1:4: ++%*1i:42:0:1: ++%1i:0X2a:1:1:0: ++%*1i:0X2a:0:1: ++%1i:0x2A:1:1:0: ++%*1i:0x2A:0:1: ++%1i:052:1:1:0: ++%*1i:052:0:1: ++%1i:0B101010:1:1:0: ++%*1i:0B101010:0:1: ++%1i:0b101010:1:1:0: ++%*1i:0b101010:0:1: ++%1i:2147483647:1:1:2: ++%*1i:2147483647:0:1: ++%1i:0X7fffffff:1:1:0: ++%*1i:0X7fffffff:0:1: ++%1i:0x7FFFFFFF:1:1:0: ++%*1i:0x7FFFFFFF:0:1: ++%1i:017777777777:1:1:0: ++%*1i:017777777777:0:1: ++%1i:0B1111111111111111111111111111111:1:1:0: ++%*1i:0B1111111111111111111111111111111:0:1: ++%1i:0b1111111111111111111111111111111:1:1:0: ++%*1i:0b1111111111111111111111111111111:0:1: ++%1i:2147483648:1:1:2: ++%*1i:2147483648:0:1: ++%1i:0X80000000:1:1:0: ++%*1i:0X80000000:0:1: ++%1i:0x80000000:1:1:0: ++%*1i:0x80000000:0:1: ++%1i:020000000000:1:1:0: ++%*1i:020000000000:0:1: ++%1i:0B10000000000000000000000000000000:1:1:0: ++%*1i:0B10000000000000000000000000000000:0:1: ++%1i:0b10000000000000000000000000000000:1:1:0: ++%*1i:0b10000000000000000000000000000000:0:1: ++%1i:2147487889:1:1:2: ++%*1i:2147487889:0:1: ++%1i:0X80001091:1:1:0: ++%*1i:0X80001091:0:1: ++%1i:0x80001091:1:1:0: ++%*1i:0x80001091:0:1: ++%1i:020000010221:1:1:0: ++%*1i:020000010221:0:1: ++%1i:0B10000000000000000001000010010001:1:1:0: ++%*1i:0B10000000000000000001000010010001:0:1: ++%1i:0b10000000000000000001000010010001:1:1:0: ++%*1i:0b10000000000000000001000010010001:0:1: ++%1i:+0:0:-1: ++%*1i:+0:0:-1: ++%1i:+0X0:0:-1: ++%*1i:+0X0:0:-1: ++%1i:+0x0:0:-1: ++%*1i:+0x0:0:-1: ++%1i:+00:0:-1: ++%*1i:+00:0:-1: ++%1i:+0B0:0:-1: ++%*1i:+0B0:0:-1: ++%1i:+0b0:0:-1: ++%*1i:+0b0:0:-1: ++%1i:+1:0:-1: ++%*1i:+1:0:-1: ++%1i:+0X1:0:-1: ++%*1i:+0X1:0:-1: ++%1i:+0x1:0:-1: ++%*1i:+0x1:0:-1: ++%1i:+01:0:-1: ++%*1i:+01:0:-1: ++%1i:+0B1:0:-1: ++%*1i:+0B1:0:-1: ++%1i:+0b1:0:-1: ++%*1i:+0b1:0:-1: ++%1i:+42:0:-1: ++%*1i:+42:0:-1: ++%1i:+0X2a:0:-1: ++%*1i:+0X2a:0:-1: ++%1i:+0x2A:0:-1: ++%*1i:+0x2A:0:-1: ++%1i:+052:0:-1: ++%*1i:+052:0:-1: ++%1i:+0B101010:0:-1: ++%*1i:+0B101010:0:-1: ++%1i:+0b101010:0:-1: ++%*1i:+0b101010:0:-1: ++%1i:+2147483647:0:-1: ++%*1i:+2147483647:0:-1: ++%1i:+0X7fffffff:0:-1: ++%*1i:+0X7fffffff:0:-1: ++%1i:+0x7FFFFFFF:0:-1: ++%*1i:+0x7FFFFFFF:0:-1: ++%1i:+017777777777:0:-1: ++%*1i:+017777777777:0:-1: ++%1i:+0B1111111111111111111111111111111:0:-1: ++%*1i:+0B1111111111111111111111111111111:0:-1: ++%1i:+0b1111111111111111111111111111111:0:-1: ++%*1i:+0b1111111111111111111111111111111:0:-1: ++%1i:+2147483648:0:-1: ++%*1i:+2147483648:0:-1: ++%1i:+0X80000000:0:-1: ++%*1i:+0X80000000:0:-1: ++%1i:+0x80000000:0:-1: ++%*1i:+0x80000000:0:-1: ++%1i:+020000000000:0:-1: ++%*1i:+020000000000:0:-1: ++%1i:+0B10000000000000000000000000000000:0:-1: ++%*1i:+0B10000000000000000000000000000000:0:-1: ++%1i:+0b10000000000000000000000000000000:0:-1: ++%*1i:+0b10000000000000000000000000000000:0:-1: ++%1i:+2147487889:0:-1: ++%*1i:+2147487889:0:-1: ++%1i:+0X80001091:0:-1: ++%*1i:+0X80001091:0:-1: ++%1i:+0x80001091:0:-1: ++%*1i:+0x80001091:0:-1: ++%1i:+020000010221:0:-1: ++%*1i:+020000010221:0:-1: ++%1i:+0B10000000000000000001000010010001:0:-1: ++%*1i:+0B10000000000000000001000010010001:0:-1: ++%1i:+0b10000000000000000001000010010001:0:-1: ++%*1i:+0b10000000000000000001000010010001:0:-1: ++%2i::0:-1: ++%*2i::0:-1: ++%2i:-2147484882:1:2:-2: ++%*2i:-2147484882:0:2: ++%2i:-0X800004d2:1:2:0: ++%*2i:-0X800004d2:0:2: ++%2i:-0x800004D2:1:2:0: ++%*2i:-0x800004D2:0:2: ++%2i:-020000002322:1:2:0: ++%*2i:-020000002322:0:2: ++%2i:-0B10000000000000000000010011010010:1:2:0: ++%*2i:-0B10000000000000000000010011010010:0:2: ++%2i:-0b10000000000000000000010011010010:1:2:0: ++%*2i:-0b10000000000000000000010011010010:0:2: ++%2i:-2147483649:1:2:-2: ++%*2i:-2147483649:0:2: ++%2i:-0X80000001:1:2:0: ++%*2i:-0X80000001:0:2: ++%2i:-0x80000001:1:2:0: ++%*2i:-0x80000001:0:2: ++%2i:-020000000001:1:2:0: ++%*2i:-020000000001:0:2: ++%2i:-0B10000000000000000000000000000001:1:2:0: ++%*2i:-0B10000000000000000000000000000001:0:2: ++%2i:-0b10000000000000000000000000000001:1:2:0: ++%*2i:-0b10000000000000000000000000000001:0:2: ++%2i:-2147483648:1:2:-2: ++%*2i:-2147483648:0:2: ++%2i:-0X80000000:1:2:0: ++%*2i:-0X80000000:0:2: ++%2i:-0x80000000:1:2:0: ++%*2i:-0x80000000:0:2: ++%2i:-020000000000:1:2:0: ++%*2i:-020000000000:0:2: ++%2i:-0B10000000000000000000000000000000:1:2:0: ++%*2i:-0B10000000000000000000000000000000:0:2: ++%2i:-0b10000000000000000000000000000000:1:2:0: ++%*2i:-0b10000000000000000000000000000000:0:2: ++%2i:-123:1:2:-1: ++%*2i:-123:0:2: ++%2i:-0X7b:1:2:0: ++%*2i:-0X7b:0:2: ++%2i:-0x7B:1:2:0: ++%*2i:-0x7B:0:2: ++%2i:-0173:1:2:0: ++%*2i:-0173:0:2: ++%2i:-0B1111011:1:2:0: ++%*2i:-0B1111011:0:2: ++%2i:-0b1111011:1:2:0: ++%*2i:-0b1111011:0:2: ++%2i:-1:1:2:-1: ++%*2i:-1:0:2: ++%2i:-0X1:1:2:0: ++%*2i:-0X1:0:2: ++%2i:-0x1:1:2:0: ++%*2i:-0x1:0:2: ++%2i:-01:1:2:0: ++%*2i:-01:0:2: ++%2i:-0B1:1:2:0: ++%*2i:-0B1:0:2: ++%2i:-0b1:1:2:0: ++%*2i:-0b1:0:2: ++%2i:-0:1:2:0: ++%*2i:-0:0:2: ++%2i:-0X0:1:2:0: ++%*2i:-0X0:0:2: ++%2i:-0x0:1:2:0: ++%*2i:-0x0:0:2: ++%2i:-00:1:2:0: ++%*2i:-00:0:2: ++%2i:-0B0:1:2:0: ++%*2i:-0B0:0:2: ++%2i:-0b0:1:2:0: ++%*2i:-0b0:0:2: ++%2i:0:1:1:0: ++%*2i:0:0:1: ++# BZ12701 %2i:0X0:0:-1: ++# BZ12701 %*2i:0X0:0:-1: ++# BZ12701 %2i:0x0:0:-1: ++# BZ12701 %*2i:0x0:0:-1: ++%2i:00:1:2:0: ++%*2i:00:0:2: ++# BZ12701 %2i:0B0:0:-1: ++# BZ12701 %*2i:0B0:0:-1: ++# BZ12701 %2i:0b0:0:-1: ++# BZ12701 %*2i:0b0:0:-1: ++%2i:1:1:1:1: ++%*2i:1:0:1: ++# BZ12701 %2i:0X1:0:-1: ++# BZ12701 %*2i:0X1:0:-1: ++# BZ12701 %2i:0x1:0:-1: ++# BZ12701 %*2i:0x1:0:-1: ++%2i:01:1:2:1: ++%*2i:01:0:2: ++# BZ12701 %2i:0B1:0:-1: ++# BZ12701 %*2i:0B1:0:-1: ++# BZ12701 %2i:0b1:0:-1: ++# BZ12701 %*2i:0b1:0:-1: ++%2i:42:1:2:42: ++%*2i:42:0:2: ++# BZ12701 %2i:0X2a:0:-1: ++# BZ12701 %*2i:0X2a:0:-1: ++# BZ12701 %2i:0x2A:0:-1: ++# BZ12701 %*2i:0x2A:0:-1: ++%2i:052:1:2:5: ++%*2i:052:0:2: ++# BZ12701 %2i:0B101010:0:-1: ++# BZ12701 %*2i:0B101010:0:-1: ++# BZ12701 %2i:0b101010:0:-1: ++# BZ12701 %*2i:0b101010:0:-1: ++%2i:2147483647:1:2:21: ++%*2i:2147483647:0:2: ++# BZ12701 %2i:0X7fffffff:0:-1: ++# BZ12701 %*2i:0X7fffffff:0:-1: ++# BZ12701 %2i:0x7FFFFFFF:0:-1: ++# BZ12701 %*2i:0x7FFFFFFF:0:-1: ++%2i:017777777777:1:2:1: ++%*2i:017777777777:0:2: ++# BZ12701 %2i:0B1111111111111111111111111111111:0:-1: ++# BZ12701 %*2i:0B1111111111111111111111111111111:0:-1: ++# BZ12701 %2i:0b1111111111111111111111111111111:0:-1: ++# BZ12701 %*2i:0b1111111111111111111111111111111:0:-1: ++%2i:2147483648:1:2:21: ++%*2i:2147483648:0:2: ++# BZ12701 %2i:0X80000000:0:-1: ++# BZ12701 %*2i:0X80000000:0:-1: ++# BZ12701 %2i:0x80000000:0:-1: ++# BZ12701 %*2i:0x80000000:0:-1: ++%2i:020000000000:1:2:2: ++%*2i:020000000000:0:2: ++# BZ12701 %2i:0B10000000000000000000000000000000:0:-1: ++# BZ12701 %*2i:0B10000000000000000000000000000000:0:-1: ++# BZ12701 %2i:0b10000000000000000000000000000000:0:-1: ++# BZ12701 %*2i:0b10000000000000000000000000000000:0:-1: ++%2i:2147487889:1:2:21: ++%*2i:2147487889:0:2: ++# BZ12701 %2i:0X80001091:0:-1: ++# BZ12701 %*2i:0X80001091:0:-1: ++# BZ12701 %2i:0x80001091:0:-1: ++# BZ12701 %*2i:0x80001091:0:-1: ++%2i:020000010221:1:2:2: ++%*2i:020000010221:0:2: ++# BZ12701 %2i:0B10000000000000000001000010010001:0:-1: ++# BZ12701 %*2i:0B10000000000000000001000010010001:0:-1: ++# BZ12701 %2i:0b10000000000000000001000010010001:0:-1: ++# BZ12701 %*2i:0b10000000000000000001000010010001:0:-1: ++%2i:+0:1:2:0: ++%*2i:+0:0:2: ++%2i:+0X0:1:2:0: ++%*2i:+0X0:0:2: ++%2i:+0x0:1:2:0: ++%*2i:+0x0:0:2: ++%2i:+00:1:2:0: ++%*2i:+00:0:2: ++%2i:+0B0:1:2:0: ++%*2i:+0B0:0:2: ++%2i:+0b0:1:2:0: ++%*2i:+0b0:0:2: ++%2i:+1:1:2:1: ++%*2i:+1:0:2: ++%2i:+0X1:1:2:0: ++%*2i:+0X1:0:2: ++%2i:+0x1:1:2:0: ++%*2i:+0x1:0:2: ++%2i:+01:1:2:0: ++%*2i:+01:0:2: ++%2i:+0B1:1:2:0: ++%*2i:+0B1:0:2: ++%2i:+0b1:1:2:0: ++%*2i:+0b1:0:2: ++%2i:+42:1:2:4: ++%*2i:+42:0:2: ++%2i:+0X2a:1:2:0: ++%*2i:+0X2a:0:2: ++%2i:+0x2A:1:2:0: ++%*2i:+0x2A:0:2: ++%2i:+052:1:2:0: ++%*2i:+052:0:2: ++%2i:+0B101010:1:2:0: ++%*2i:+0B101010:0:2: ++%2i:+0b101010:1:2:0: ++%*2i:+0b101010:0:2: ++%2i:+2147483647:1:2:2: ++%*2i:+2147483647:0:2: ++%2i:+0X7fffffff:1:2:0: ++%*2i:+0X7fffffff:0:2: ++%2i:+0x7FFFFFFF:1:2:0: ++%*2i:+0x7FFFFFFF:0:2: ++%2i:+017777777777:1:2:0: ++%*2i:+017777777777:0:2: ++%2i:+0B1111111111111111111111111111111:1:2:0: ++%*2i:+0B1111111111111111111111111111111:0:2: ++%2i:+0b1111111111111111111111111111111:1:2:0: ++%*2i:+0b1111111111111111111111111111111:0:2: ++%2i:+2147483648:1:2:2: ++%*2i:+2147483648:0:2: ++%2i:+0X80000000:1:2:0: ++%*2i:+0X80000000:0:2: ++%2i:+0x80000000:1:2:0: ++%*2i:+0x80000000:0:2: ++%2i:+020000000000:1:2:0: ++%*2i:+020000000000:0:2: ++%2i:+0B10000000000000000000000000000000:1:2:0: ++%*2i:+0B10000000000000000000000000000000:0:2: ++%2i:+0b10000000000000000000000000000000:1:2:0: ++%*2i:+0b10000000000000000000000000000000:0:2: ++%2i:+2147487889:1:2:2: ++%*2i:+2147487889:0:2: ++%2i:+0X80001091:1:2:0: ++%*2i:+0X80001091:0:2: ++%2i:+0x80001091:1:2:0: ++%*2i:+0x80001091:0:2: ++%2i:+020000010221:1:2:0: ++%*2i:+020000010221:0:2: ++%2i:+0B10000000000000000001000010010001:1:2:0: ++%*2i:+0B10000000000000000001000010010001:0:2: ++%2i:+0b10000000000000000001000010010001:1:2:0: ++%*2i:+0b10000000000000000001000010010001:0:2: ++%8i::0:-1: ++%*8i::0:-1: ++%8i:-2147484882:1:8:-2147484: ++%*8i:-2147484882:0:8: ++%8i:-0X800004d2:1:8:-524288: ++%*8i:-0X800004d2:0:8: ++%8i:-0x800004D2:1:8:-524288: ++%*8i:-0x800004D2:0:8: ++%8i:-020000002322:1:8:-65536: ++%*8i:-020000002322:0:8: ++%8i:-0B10000000000000000000010011010010:1:8:-16: ++%*8i:-0B10000000000000000000010011010010:0:8: ++%8i:-0b10000000000000000000010011010010:1:8:-16: ++%*8i:-0b10000000000000000000010011010010:0:8: ++%8i:-2147483649:1:8:-2147483: ++%*8i:-2147483649:0:8: ++%8i:-0X80000001:1:8:-524288: ++%*8i:-0X80000001:0:8: ++%8i:-0x80000001:1:8:-524288: ++%*8i:-0x80000001:0:8: ++%8i:-020000000001:1:8:-65536: ++%*8i:-020000000001:0:8: ++%8i:-0B10000000000000000000000000000001:1:8:-16: ++%*8i:-0B10000000000000000000000000000001:0:8: ++%8i:-0b10000000000000000000000000000001:1:8:-16: ++%*8i:-0b10000000000000000000000000000001:0:8: ++%8i:-2147483648:1:8:-2147483: ++%*8i:-2147483648:0:8: ++%8i:-0X80000000:1:8:-524288: ++%*8i:-0X80000000:0:8: ++%8i:-0x80000000:1:8:-524288: ++%*8i:-0x80000000:0:8: ++%8i:-020000000000:1:8:-65536: ++%*8i:-020000000000:0:8: ++%8i:-0B10000000000000000000000000000000:1:8:-16: ++%*8i:-0B10000000000000000000000000000000:0:8: ++%8i:-0b10000000000000000000000000000000:1:8:-16: ++%*8i:-0b10000000000000000000000000000000:0:8: ++%8i:-123:1:4:-123: ++%*8i:-123:0:4: ++%8i:-0X7b:1:5:-123: ++%*8i:-0X7b:0:5: ++%8i:-0x7B:1:5:-123: ++%*8i:-0x7B:0:5: ++%8i:-0173:1:5:-123: ++%*8i:-0173:0:5: ++%8i:-0B1111011:1:8:-30: ++%*8i:-0B1111011:0:8: ++%8i:-0b1111011:1:8:-30: ++%*8i:-0b1111011:0:8: ++%8i:-1:1:2:-1: ++%*8i:-1:0:2: ++%8i:-0X1:1:4:-1: ++%*8i:-0X1:0:4: ++%8i:-0x1:1:4:-1: ++%*8i:-0x1:0:4: ++%8i:-01:1:3:-1: ++%*8i:-01:0:3: ++%8i:-0B1:1:4:-1: ++%*8i:-0B1:0:4: ++%8i:-0b1:1:4:-1: ++%*8i:-0b1:0:4: ++%8i:-0:1:2:0: ++%*8i:-0:0:2: ++%8i:-0X0:1:4:0: ++%*8i:-0X0:0:4: ++%8i:-0x0:1:4:0: ++%*8i:-0x0:0:4: ++%8i:-00:1:3:0: ++%*8i:-00:0:3: ++%8i:-0B0:1:4:0: ++%*8i:-0B0:0:4: ++%8i:-0b0:1:4:0: ++%*8i:-0b0:0:4: ++%8i:0:1:1:0: ++%*8i:0:0:1: ++%8i:0X0:1:3:0: ++%*8i:0X0:0:3: ++%8i:0x0:1:3:0: ++%*8i:0x0:0:3: ++%8i:00:1:2:0: ++%*8i:00:0:2: ++%8i:0B0:1:3:0: ++%*8i:0B0:0:3: ++%8i:0b0:1:3:0: ++%*8i:0b0:0:3: ++%8i:1:1:1:1: ++%*8i:1:0:1: ++%8i:0X1:1:3:1: ++%*8i:0X1:0:3: ++%8i:0x1:1:3:1: ++%*8i:0x1:0:3: ++%8i:01:1:2:1: ++%*8i:01:0:2: ++%8i:0B1:1:3:1: ++%*8i:0B1:0:3: ++%8i:0b1:1:3:1: ++%*8i:0b1:0:3: ++%8i:42:1:2:42: ++%*8i:42:0:2: ++%8i:0X2a:1:4:42: ++%*8i:0X2a:0:4: ++%8i:0x2A:1:4:42: ++%*8i:0x2A:0:4: ++%8i:052:1:3:42: ++%*8i:052:0:3: ++%8i:0B101010:1:8:42: ++%*8i:0B101010:0:8: ++%8i:0b101010:1:8:42: ++%*8i:0b101010:0:8: ++%8i:2147483647:1:8:21474836: ++%*8i:2147483647:0:8: ++%8i:0X7fffffff:1:8:8388607: ++%*8i:0X7fffffff:0:8: ++%8i:0x7FFFFFFF:1:8:8388607: ++%*8i:0x7FFFFFFF:0:8: ++%8i:017777777777:1:8:524287: ++%*8i:017777777777:0:8: ++%8i:0B1111111111111111111111111111111:1:8:63: ++%*8i:0B1111111111111111111111111111111:0:8: ++%8i:0b1111111111111111111111111111111:1:8:63: ++%*8i:0b1111111111111111111111111111111:0:8: ++%8i:2147483648:1:8:21474836: ++%*8i:2147483648:0:8: ++%8i:0X80000000:1:8:8388608: ++%*8i:0X80000000:0:8: ++%8i:0x80000000:1:8:8388608: ++%*8i:0x80000000:0:8: ++%8i:020000000000:1:8:524288: ++%*8i:020000000000:0:8: ++%8i:0B10000000000000000000000000000000:1:8:32: ++%*8i:0B10000000000000000000000000000000:0:8: ++%8i:0b10000000000000000000000000000000:1:8:32: ++%*8i:0b10000000000000000000000000000000:0:8: ++%8i:2147487889:1:8:21474878: ++%*8i:2147487889:0:8: ++%8i:0X80001091:1:8:8388624: ++%*8i:0X80001091:0:8: ++%8i:0x80001091:1:8:8388624: ++%*8i:0x80001091:0:8: ++%8i:020000010221:1:8:524289: ++%*8i:020000010221:0:8: ++%8i:0B10000000000000000001000010010001:1:8:32: ++%*8i:0B10000000000000000001000010010001:0:8: ++%8i:0b10000000000000000001000010010001:1:8:32: ++%*8i:0b10000000000000000001000010010001:0:8: ++%8i:+0:1:2:0: ++%*8i:+0:0:2: ++%8i:+0X0:1:4:0: ++%*8i:+0X0:0:4: ++%8i:+0x0:1:4:0: ++%*8i:+0x0:0:4: ++%8i:+00:1:3:0: ++%*8i:+00:0:3: ++%8i:+0B0:1:4:0: ++%*8i:+0B0:0:4: ++%8i:+0b0:1:4:0: ++%*8i:+0b0:0:4: ++%8i:+1:1:2:1: ++%*8i:+1:0:2: ++%8i:+0X1:1:4:1: ++%*8i:+0X1:0:4: ++%8i:+0x1:1:4:1: ++%*8i:+0x1:0:4: ++%8i:+01:1:3:1: ++%*8i:+01:0:3: ++%8i:+0B1:1:4:1: ++%*8i:+0B1:0:4: ++%8i:+0b1:1:4:1: ++%*8i:+0b1:0:4: ++%8i:+42:1:3:42: ++%*8i:+42:0:3: ++%8i:+0X2a:1:5:42: ++%*8i:+0X2a:0:5: ++%8i:+0x2A:1:5:42: ++%*8i:+0x2A:0:5: ++%8i:+052:1:4:42: ++%*8i:+052:0:4: ++%8i:+0B101010:1:8:21: ++%*8i:+0B101010:0:8: ++%8i:+0b101010:1:8:21: ++%*8i:+0b101010:0:8: ++%8i:+2147483647:1:8:2147483: ++%*8i:+2147483647:0:8: ++%8i:+0X7fffffff:1:8:524287: ++%*8i:+0X7fffffff:0:8: ++%8i:+0x7FFFFFFF:1:8:524287: ++%*8i:+0x7FFFFFFF:0:8: ++%8i:+017777777777:1:8:65535: ++%*8i:+017777777777:0:8: ++%8i:+0B1111111111111111111111111111111:1:8:31: ++%*8i:+0B1111111111111111111111111111111:0:8: ++%8i:+0b1111111111111111111111111111111:1:8:31: ++%*8i:+0b1111111111111111111111111111111:0:8: ++%8i:+2147483648:1:8:2147483: ++%*8i:+2147483648:0:8: ++%8i:+0X80000000:1:8:524288: ++%*8i:+0X80000000:0:8: ++%8i:+0x80000000:1:8:524288: ++%*8i:+0x80000000:0:8: ++%8i:+020000000000:1:8:65536: ++%*8i:+020000000000:0:8: ++%8i:+0B10000000000000000000000000000000:1:8:16: ++%*8i:+0B10000000000000000000000000000000:0:8: ++%8i:+0b10000000000000000000000000000000:1:8:16: ++%*8i:+0b10000000000000000000000000000000:0:8: ++%8i:+2147487889:1:8:2147487: ++%*8i:+2147487889:0:8: ++%8i:+0X80001091:1:8:524289: ++%*8i:+0X80001091:0:8: ++%8i:+0x80001091:1:8:524289: ++%*8i:+0x80001091:0:8: ++%8i:+020000010221:1:8:65536: ++%*8i:+020000010221:0:8: ++%8i:+0B10000000000000000001000010010001:1:8:16: ++%*8i:+0B10000000000000000001000010010001:0:8: ++%8i:+0b10000000000000000001000010010001:1:8:16: ++%*8i:+0b10000000000000000001000010010001:0:8: ++%15i::0:-1: ++%*15i::0:-1: ++%15i:-2147484882:1:11:-2147483648: ++%*15i:-2147484882:0:11: ++%15i:-0X800004d2:1:11:-2147483648: ++%*15i:-0X800004d2:0:11: ++%15i:-0x800004D2:1:11:-2147483648: ++%*15i:-0x800004D2:0:11: ++%15i:-020000002322:1:13:-2147483648: ++%*15i:-020000002322:0:13: ++%15i:-0B10000000000000000000010011010010:1:15:-2048: ++%*15i:-0B10000000000000000000010011010010:0:15: ++%15i:-0b10000000000000000000010011010010:1:15:-2048: ++%*15i:-0b10000000000000000000010011010010:0:15: ++%15i:-2147483649:1:11:-2147483648: ++%*15i:-2147483649:0:11: ++%15i:-0X80000001:1:11:-2147483648: ++%*15i:-0X80000001:0:11: ++%15i:-0x80000001:1:11:-2147483648: ++%*15i:-0x80000001:0:11: ++%15i:-020000000001:1:13:-2147483648: ++%*15i:-020000000001:0:13: ++%15i:-0B10000000000000000000000000000001:1:15:-2048: ++%*15i:-0B10000000000000000000000000000001:0:15: ++%15i:-0b10000000000000000000000000000001:1:15:-2048: ++%*15i:-0b10000000000000000000000000000001:0:15: ++%15i:-2147483648:1:11:-2147483648: ++%*15i:-2147483648:0:11: ++%15i:-0X80000000:1:11:-2147483648: ++%*15i:-0X80000000:0:11: ++%15i:-0x80000000:1:11:-2147483648: ++%*15i:-0x80000000:0:11: ++%15i:-020000000000:1:13:-2147483648: ++%*15i:-020000000000:0:13: ++%15i:-0B10000000000000000000000000000000:1:15:-2048: ++%*15i:-0B10000000000000000000000000000000:0:15: ++%15i:-0b10000000000000000000000000000000:1:15:-2048: ++%*15i:-0b10000000000000000000000000000000:0:15: ++%15i:-123:1:4:-123: ++%*15i:-123:0:4: ++%15i:-0X7b:1:5:-123: ++%*15i:-0X7b:0:5: ++%15i:-0x7B:1:5:-123: ++%*15i:-0x7B:0:5: ++%15i:-0173:1:5:-123: ++%*15i:-0173:0:5: ++%15i:-0B1111011:1:10:-123: ++%*15i:-0B1111011:0:10: ++%15i:-0b1111011:1:10:-123: ++%*15i:-0b1111011:0:10: ++%15i:-1:1:2:-1: ++%*15i:-1:0:2: ++%15i:-0X1:1:4:-1: ++%*15i:-0X1:0:4: ++%15i:-0x1:1:4:-1: ++%*15i:-0x1:0:4: ++%15i:-01:1:3:-1: ++%*15i:-01:0:3: ++%15i:-0B1:1:4:-1: ++%*15i:-0B1:0:4: ++%15i:-0b1:1:4:-1: ++%*15i:-0b1:0:4: ++%15i:-0:1:2:0: ++%*15i:-0:0:2: ++%15i:-0X0:1:4:0: ++%*15i:-0X0:0:4: ++%15i:-0x0:1:4:0: ++%*15i:-0x0:0:4: ++%15i:-00:1:3:0: ++%*15i:-00:0:3: ++%15i:-0B0:1:4:0: ++%*15i:-0B0:0:4: ++%15i:-0b0:1:4:0: ++%*15i:-0b0:0:4: ++%15i:0:1:1:0: ++%*15i:0:0:1: ++%15i:0X0:1:3:0: ++%*15i:0X0:0:3: ++%15i:0x0:1:3:0: ++%*15i:0x0:0:3: ++%15i:00:1:2:0: ++%*15i:00:0:2: ++%15i:0B0:1:3:0: ++%*15i:0B0:0:3: ++%15i:0b0:1:3:0: ++%*15i:0b0:0:3: ++%15i:1:1:1:1: ++%*15i:1:0:1: ++%15i:0X1:1:3:1: ++%*15i:0X1:0:3: ++%15i:0x1:1:3:1: ++%*15i:0x1:0:3: ++%15i:01:1:2:1: ++%*15i:01:0:2: ++%15i:0B1:1:3:1: ++%*15i:0B1:0:3: ++%15i:0b1:1:3:1: ++%*15i:0b1:0:3: ++%15i:42:1:2:42: ++%*15i:42:0:2: ++%15i:0X2a:1:4:42: ++%*15i:0X2a:0:4: ++%15i:0x2A:1:4:42: ++%*15i:0x2A:0:4: ++%15i:052:1:3:42: ++%*15i:052:0:3: ++%15i:0B101010:1:8:42: ++%*15i:0B101010:0:8: ++%15i:0b101010:1:8:42: ++%*15i:0b101010:0:8: ++%15i:2147483647:1:10:2147483647: ++%*15i:2147483647:0:10: ++%15i:0X7fffffff:1:10:2147483647: ++%*15i:0X7fffffff:0:10: ++%15i:0x7FFFFFFF:1:10:2147483647: ++%*15i:0x7FFFFFFF:0:10: ++%15i:017777777777:1:12:2147483647: ++%*15i:017777777777:0:12: ++%15i:0B1111111111111111111111111111111:1:15:8191: ++%*15i:0B1111111111111111111111111111111:0:15: ++%15i:0b1111111111111111111111111111111:1:15:8191: ++%*15i:0b1111111111111111111111111111111:0:15: ++%15i:2147483648:1:10:2147483647: ++%*15i:2147483648:0:10: ++%15i:0X80000000:1:10:2147483647: ++%*15i:0X80000000:0:10: ++%15i:0x80000000:1:10:2147483647: ++%*15i:0x80000000:0:10: ++%15i:020000000000:1:12:2147483647: ++%*15i:020000000000:0:12: ++%15i:0B10000000000000000000000000000000:1:15:4096: ++%*15i:0B10000000000000000000000000000000:0:15: ++%15i:0b10000000000000000000000000000000:1:15:4096: ++%*15i:0b10000000000000000000000000000000:0:15: ++%15i:2147487889:1:10:2147483647: ++%*15i:2147487889:0:10: ++%15i:0X80001091:1:10:2147483647: ++%*15i:0X80001091:0:10: ++%15i:0x80001091:1:10:2147483647: ++%*15i:0x80001091:0:10: ++%15i:020000010221:1:12:2147483647: ++%*15i:020000010221:0:12: ++%15i:0B10000000000000000001000010010001:1:15:4096: ++%*15i:0B10000000000000000001000010010001:0:15: ++%15i:0b10000000000000000001000010010001:1:15:4096: ++%*15i:0b10000000000000000001000010010001:0:15: ++%15i:+0:1:2:0: ++%*15i:+0:0:2: ++%15i:+0X0:1:4:0: ++%*15i:+0X0:0:4: ++%15i:+0x0:1:4:0: ++%*15i:+0x0:0:4: ++%15i:+00:1:3:0: ++%*15i:+00:0:3: ++%15i:+0B0:1:4:0: ++%*15i:+0B0:0:4: ++%15i:+0b0:1:4:0: ++%*15i:+0b0:0:4: ++%15i:+1:1:2:1: ++%*15i:+1:0:2: ++%15i:+0X1:1:4:1: ++%*15i:+0X1:0:4: ++%15i:+0x1:1:4:1: ++%*15i:+0x1:0:4: ++%15i:+01:1:3:1: ++%*15i:+01:0:3: ++%15i:+0B1:1:4:1: ++%*15i:+0B1:0:4: ++%15i:+0b1:1:4:1: ++%*15i:+0b1:0:4: ++%15i:+42:1:3:42: ++%*15i:+42:0:3: ++%15i:+0X2a:1:5:42: ++%*15i:+0X2a:0:5: ++%15i:+0x2A:1:5:42: ++%*15i:+0x2A:0:5: ++%15i:+052:1:4:42: ++%*15i:+052:0:4: ++%15i:+0B101010:1:9:42: ++%*15i:+0B101010:0:9: ++%15i:+0b101010:1:9:42: ++%*15i:+0b101010:0:9: ++%15i:+2147483647:1:11:2147483647: ++%*15i:+2147483647:0:11: ++%15i:+0X7fffffff:1:11:2147483647: ++%*15i:+0X7fffffff:0:11: ++%15i:+0x7FFFFFFF:1:11:2147483647: ++%*15i:+0x7FFFFFFF:0:11: ++%15i:+017777777777:1:13:2147483647: ++%*15i:+017777777777:0:13: ++%15i:+0B1111111111111111111111111111111:1:15:4095: ++%*15i:+0B1111111111111111111111111111111:0:15: ++%15i:+0b1111111111111111111111111111111:1:15:4095: ++%*15i:+0b1111111111111111111111111111111:0:15: ++%15i:+2147483648:1:11:2147483647: ++%*15i:+2147483648:0:11: ++%15i:+0X80000000:1:11:2147483647: ++%*15i:+0X80000000:0:11: ++%15i:+0x80000000:1:11:2147483647: ++%*15i:+0x80000000:0:11: ++%15i:+020000000000:1:13:2147483647: ++%*15i:+020000000000:0:13: ++%15i:+0B10000000000000000000000000000000:1:15:2048: ++%*15i:+0B10000000000000000000000000000000:0:15: ++%15i:+0b10000000000000000000000000000000:1:15:2048: ++%*15i:+0b10000000000000000000000000000000:0:15: ++%15i:+2147487889:1:11:2147483647: ++%*15i:+2147487889:0:11: ++%15i:+0X80001091:1:11:2147483647: ++%*15i:+0X80001091:0:11: ++%15i:+0x80001091:1:11:2147483647: ++%*15i:+0x80001091:0:11: ++%15i:+020000010221:1:13:2147483647: ++%*15i:+020000010221:0:13: ++%15i:+0B10000000000000000001000010010001:1:15:2048: ++%*15i:+0B10000000000000000001000010010001:0:15: ++%15i:+0b10000000000000000001000010010001:1:15:2048: ++%*15i:+0b10000000000000000001000010010001:0:15: ++%2i: :0:-1: ++%*2i: :0:-1: ++%2i: -2147484882:1:3:-2: ++%*2i: -2147484882:0:3: ++%2i: -0X800004d2:1:3:0: ++%*2i: -0X800004d2:0:3: ++%2i: -0x800004D2:1:3:0: ++%*2i: -0x800004D2:0:3: ++%2i: -020000002322:1:3:0: ++%*2i: -020000002322:0:3: ++%2i: -0B10000000000000000000010011010010:1:3:0: ++%*2i: -0B10000000000000000000010011010010:0:3: ++%2i: -0b10000000000000000000010011010010:1:3:0: ++%*2i: -0b10000000000000000000010011010010:0:3: ++%2i: -2147483649:1:3:-2: ++%*2i: -2147483649:0:3: ++%2i: -0X80000001:1:3:0: ++%*2i: -0X80000001:0:3: ++%2i: -0x80000001:1:3:0: ++%*2i: -0x80000001:0:3: ++%2i: -020000000001:1:3:0: ++%*2i: -020000000001:0:3: ++%2i: -0B10000000000000000000000000000001:1:3:0: ++%*2i: -0B10000000000000000000000000000001:0:3: ++%2i: -0b10000000000000000000000000000001:1:3:0: ++%*2i: -0b10000000000000000000000000000001:0:3: ++%2i: -2147483648:1:3:-2: ++%*2i: -2147483648:0:3: ++%2i: -0X80000000:1:3:0: ++%*2i: -0X80000000:0:3: ++%2i: -0x80000000:1:3:0: ++%*2i: -0x80000000:0:3: ++%2i: -020000000000:1:3:0: ++%*2i: -020000000000:0:3: ++%2i: -0B10000000000000000000000000000000:1:3:0: ++%*2i: -0B10000000000000000000000000000000:0:3: ++%2i: -0b10000000000000000000000000000000:1:3:0: ++%*2i: -0b10000000000000000000000000000000:0:3: ++%2i: -123:1:3:-1: ++%*2i: -123:0:3: ++%2i: -0X7b:1:3:0: ++%*2i: -0X7b:0:3: ++%2i: -0x7B:1:3:0: ++%*2i: -0x7B:0:3: ++%2i: -0173:1:3:0: ++%*2i: -0173:0:3: ++%2i: -0B1111011:1:3:0: ++%*2i: -0B1111011:0:3: ++%2i: -0b1111011:1:3:0: ++%*2i: -0b1111011:0:3: ++%2i: -1:1:3:-1: ++%*2i: -1:0:3: ++%2i: -0X1:1:3:0: ++%*2i: -0X1:0:3: ++%2i: -0x1:1:3:0: ++%*2i: -0x1:0:3: ++%2i: -01:1:3:0: ++%*2i: -01:0:3: ++%2i: -0B1:1:3:0: ++%*2i: -0B1:0:3: ++%2i: -0b1:1:3:0: ++%*2i: -0b1:0:3: ++%2i: -0:1:3:0: ++%*2i: -0:0:3: ++%2i: -0X0:1:3:0: ++%*2i: -0X0:0:3: ++%2i: -0x0:1:3:0: ++%*2i: -0x0:0:3: ++%2i: -00:1:3:0: ++%*2i: -00:0:3: ++%2i: -0B0:1:3:0: ++%*2i: -0B0:0:3: ++%2i: -0b0:1:3:0: ++%*2i: -0b0:0:3: ++%2i: 0:1:2:0: ++%*2i: 0:0:2: ++# BZ12701 %2i: 0X0:0:-1: ++# BZ12701 %*2i: 0X0:0:-1: ++# BZ12701 %2i: 0x0:0:-1: ++# BZ12701 %*2i: 0x0:0:-1: ++%2i: 00:1:3:0: ++%*2i: 00:0:3: ++# BZ12701 %2i: 0B0:0:-1: ++# BZ12701 %*2i: 0B0:0:-1: ++# BZ12701 %2i: 0b0:0:-1: ++# BZ12701 %*2i: 0b0:0:-1: ++%2i: 1:1:2:1: ++%*2i: 1:0:2: ++# BZ12701 %2i: 0X1:0:-1: ++# BZ12701 %*2i: 0X1:0:-1: ++# BZ12701 %2i: 0x1:0:-1: ++# BZ12701 %*2i: 0x1:0:-1: ++%2i: 01:1:3:1: ++%*2i: 01:0:3: ++# BZ12701 %2i: 0B1:0:-1: ++# BZ12701 %*2i: 0B1:0:-1: ++# BZ12701 %2i: 0b1:0:-1: ++# BZ12701 %*2i: 0b1:0:-1: ++%2i: 42:1:3:42: ++%*2i: 42:0:3: ++# BZ12701 %2i: 0X2a:0:-1: ++# BZ12701 %*2i: 0X2a:0:-1: ++# BZ12701 %2i: 0x2A:0:-1: ++# BZ12701 %*2i: 0x2A:0:-1: ++%2i: 052:1:3:5: ++%*2i: 052:0:3: ++# BZ12701 %2i: 0B101010:0:-1: ++# BZ12701 %*2i: 0B101010:0:-1: ++# BZ12701 %2i: 0b101010:0:-1: ++# BZ12701 %*2i: 0b101010:0:-1: ++%2i: 2147483647:1:3:21: ++%*2i: 2147483647:0:3: ++# BZ12701 %2i: 0X7fffffff:0:-1: ++# BZ12701 %*2i: 0X7fffffff:0:-1: ++# BZ12701 %2i: 0x7FFFFFFF:0:-1: ++# BZ12701 %*2i: 0x7FFFFFFF:0:-1: ++%2i: 017777777777:1:3:1: ++%*2i: 017777777777:0:3: ++# BZ12701 %2i: 0B1111111111111111111111111111111:0:-1: ++# BZ12701 %*2i: 0B1111111111111111111111111111111:0:-1: ++# BZ12701 %2i: 0b1111111111111111111111111111111:0:-1: ++# BZ12701 %*2i: 0b1111111111111111111111111111111:0:-1: ++%2i: 2147483648:1:3:21: ++%*2i: 2147483648:0:3: ++# BZ12701 %2i: 0X80000000:0:-1: ++# BZ12701 %*2i: 0X80000000:0:-1: ++# BZ12701 %2i: 0x80000000:0:-1: ++# BZ12701 %*2i: 0x80000000:0:-1: ++%2i: 020000000000:1:3:2: ++%*2i: 020000000000:0:3: ++# BZ12701 %2i: 0B10000000000000000000000000000000:0:-1: ++# BZ12701 %*2i: 0B10000000000000000000000000000000:0:-1: ++# BZ12701 %2i: 0b10000000000000000000000000000000:0:-1: ++# BZ12701 %*2i: 0b10000000000000000000000000000000:0:-1: ++%2i: 2147487889:1:3:21: ++%*2i: 2147487889:0:3: ++# BZ12701 %2i: 0X80001091:0:-1: ++# BZ12701 %*2i: 0X80001091:0:-1: ++# BZ12701 %2i: 0x80001091:0:-1: ++# BZ12701 %*2i: 0x80001091:0:-1: ++%2i: 020000010221:1:3:2: ++%*2i: 020000010221:0:3: ++# BZ12701 %2i: 0B10000000000000000001000010010001:0:-1: ++# BZ12701 %*2i: 0B10000000000000000001000010010001:0:-1: ++# BZ12701 %2i: 0b10000000000000000001000010010001:0:-1: ++# BZ12701 %*2i: 0b10000000000000000001000010010001:0:-1: ++%2i: +0:1:3:0: ++%*2i: +0:0:3: ++%2i: +0X0:1:3:0: ++%*2i: +0X0:0:3: ++%2i: +0x0:1:3:0: ++%*2i: +0x0:0:3: ++%2i: +00:1:3:0: ++%*2i: +00:0:3: ++%2i: +0B0:1:3:0: ++%*2i: +0B0:0:3: ++%2i: +0b0:1:3:0: ++%*2i: +0b0:0:3: ++%2i: +1:1:3:1: ++%*2i: +1:0:3: ++%2i: +0X1:1:3:0: ++%*2i: +0X1:0:3: ++%2i: +0x1:1:3:0: ++%*2i: +0x1:0:3: ++%2i: +01:1:3:0: ++%*2i: +01:0:3: ++%2i: +0B1:1:3:0: ++%*2i: +0B1:0:3: ++%2i: +0b1:1:3:0: ++%*2i: +0b1:0:3: ++%2i: +42:1:3:4: ++%*2i: +42:0:3: ++%2i: +0X2a:1:3:0: ++%*2i: +0X2a:0:3: ++%2i: +0x2A:1:3:0: ++%*2i: +0x2A:0:3: ++%2i: +052:1:3:0: ++%*2i: +052:0:3: ++%2i: +0B101010:1:3:0: ++%*2i: +0B101010:0:3: ++%2i: +0b101010:1:3:0: ++%*2i: +0b101010:0:3: ++%2i: +2147483647:1:3:2: ++%*2i: +2147483647:0:3: ++%2i: +0X7fffffff:1:3:0: ++%*2i: +0X7fffffff:0:3: ++%2i: +0x7FFFFFFF:1:3:0: ++%*2i: +0x7FFFFFFF:0:3: ++%2i: +017777777777:1:3:0: ++%*2i: +017777777777:0:3: ++%2i: +0B1111111111111111111111111111111:1:3:0: ++%*2i: +0B1111111111111111111111111111111:0:3: ++%2i: +0b1111111111111111111111111111111:1:3:0: ++%*2i: +0b1111111111111111111111111111111:0:3: ++%2i: +2147483648:1:3:2: ++%*2i: +2147483648:0:3: ++%2i: +0X80000000:1:3:0: ++%*2i: +0X80000000:0:3: ++%2i: +0x80000000:1:3:0: ++%*2i: +0x80000000:0:3: ++%2i: +020000000000:1:3:0: ++%*2i: +020000000000:0:3: ++%2i: +0B10000000000000000000000000000000:1:3:0: ++%*2i: +0B10000000000000000000000000000000:0:3: ++%2i: +0b10000000000000000000000000000000:1:3:0: ++%*2i: +0b10000000000000000000000000000000:0:3: ++%2i: +2147487889:1:3:2: ++%*2i: +2147487889:0:3: ++%2i: +0X80001091:1:3:0: ++%*2i: +0X80001091:0:3: ++%2i: +0x80001091:1:3:0: ++%*2i: +0x80001091:0:3: ++%2i: +020000010221:1:3:0: ++%*2i: +020000010221:0:3: ++%2i: +0B10000000000000000001000010010001:1:3:0: ++%*2i: +0B10000000000000000001000010010001:0:3: ++%2i: +0b10000000000000000001000010010001:1:3:0: ++%*2i: +0b10000000000000000001000010010001:0:3: ++%15i: :0:-1: ++%*15i: :0:-1: ++%15i: -2147484882:1:12:-2147483648: ++%*15i: -2147484882:0:12: ++%15i: -0X800004d2:1:12:-2147483648: ++%*15i: -0X800004d2:0:12: ++%15i: -0x800004D2:1:12:-2147483648: ++%*15i: -0x800004D2:0:12: ++%15i: -020000002322:1:14:-2147483648: ++%*15i: -020000002322:0:14: ++%15i: -0B10000000000000000000010011010010:1:16:-2048: ++%*15i: -0B10000000000000000000010011010010:0:16: ++%15i: -0b10000000000000000000010011010010:1:16:-2048: ++%*15i: -0b10000000000000000000010011010010:0:16: ++%15i: -2147483649:1:12:-2147483648: ++%*15i: -2147483649:0:12: ++%15i: -0X80000001:1:12:-2147483648: ++%*15i: -0X80000001:0:12: ++%15i: -0x80000001:1:12:-2147483648: ++%*15i: -0x80000001:0:12: ++%15i: -020000000001:1:14:-2147483648: ++%*15i: -020000000001:0:14: ++%15i: -0B10000000000000000000000000000001:1:16:-2048: ++%*15i: -0B10000000000000000000000000000001:0:16: ++%15i: -0b10000000000000000000000000000001:1:16:-2048: ++%*15i: -0b10000000000000000000000000000001:0:16: ++%15i: -2147483648:1:12:-2147483648: ++%*15i: -2147483648:0:12: ++%15i: -0X80000000:1:12:-2147483648: ++%*15i: -0X80000000:0:12: ++%15i: -0x80000000:1:12:-2147483648: ++%*15i: -0x80000000:0:12: ++%15i: -020000000000:1:14:-2147483648: ++%*15i: -020000000000:0:14: ++%15i: -0B10000000000000000000000000000000:1:16:-2048: ++%*15i: -0B10000000000000000000000000000000:0:16: ++%15i: -0b10000000000000000000000000000000:1:16:-2048: ++%*15i: -0b10000000000000000000000000000000:0:16: ++%15i: -123:1:5:-123: ++%*15i: -123:0:5: ++%15i: -0X7b:1:6:-123: ++%*15i: -0X7b:0:6: ++%15i: -0x7B:1:6:-123: ++%*15i: -0x7B:0:6: ++%15i: -0173:1:6:-123: ++%*15i: -0173:0:6: ++%15i: -0B1111011:1:11:-123: ++%*15i: -0B1111011:0:11: ++%15i: -0b1111011:1:11:-123: ++%*15i: -0b1111011:0:11: ++%15i: -1:1:3:-1: ++%*15i: -1:0:3: ++%15i: -0X1:1:5:-1: ++%*15i: -0X1:0:5: ++%15i: -0x1:1:5:-1: ++%*15i: -0x1:0:5: ++%15i: -01:1:4:-1: ++%*15i: -01:0:4: ++%15i: -0B1:1:5:-1: ++%*15i: -0B1:0:5: ++%15i: -0b1:1:5:-1: ++%*15i: -0b1:0:5: ++%15i: -0:1:3:0: ++%*15i: -0:0:3: ++%15i: -0X0:1:5:0: ++%*15i: -0X0:0:5: ++%15i: -0x0:1:5:0: ++%*15i: -0x0:0:5: ++%15i: -00:1:4:0: ++%*15i: -00:0:4: ++%15i: -0B0:1:5:0: ++%*15i: -0B0:0:5: ++%15i: -0b0:1:5:0: ++%*15i: -0b0:0:5: ++%15i: 0:1:2:0: ++%*15i: 0:0:2: ++%15i: 0X0:1:4:0: ++%*15i: 0X0:0:4: ++%15i: 0x0:1:4:0: ++%*15i: 0x0:0:4: ++%15i: 00:1:3:0: ++%*15i: 00:0:3: ++%15i: 0B0:1:4:0: ++%*15i: 0B0:0:4: ++%15i: 0b0:1:4:0: ++%*15i: 0b0:0:4: ++%15i: 1:1:2:1: ++%*15i: 1:0:2: ++%15i: 0X1:1:4:1: ++%*15i: 0X1:0:4: ++%15i: 0x1:1:4:1: ++%*15i: 0x1:0:4: ++%15i: 01:1:3:1: ++%*15i: 01:0:3: ++%15i: 0B1:1:4:1: ++%*15i: 0B1:0:4: ++%15i: 0b1:1:4:1: ++%*15i: 0b1:0:4: ++%15i: 42:1:3:42: ++%*15i: 42:0:3: ++%15i: 0X2a:1:5:42: ++%*15i: 0X2a:0:5: ++%15i: 0x2A:1:5:42: ++%*15i: 0x2A:0:5: ++%15i: 052:1:4:42: ++%*15i: 052:0:4: ++%15i: 0B101010:1:9:42: ++%*15i: 0B101010:0:9: ++%15i: 0b101010:1:9:42: ++%*15i: 0b101010:0:9: ++%15i: 2147483647:1:11:2147483647: ++%*15i: 2147483647:0:11: ++%15i: 0X7fffffff:1:11:2147483647: ++%*15i: 0X7fffffff:0:11: ++%15i: 0x7FFFFFFF:1:11:2147483647: ++%*15i: 0x7FFFFFFF:0:11: ++%15i: 017777777777:1:13:2147483647: ++%*15i: 017777777777:0:13: ++%15i: 0B1111111111111111111111111111111:1:16:8191: ++%*15i: 0B1111111111111111111111111111111:0:16: ++%15i: 0b1111111111111111111111111111111:1:16:8191: ++%*15i: 0b1111111111111111111111111111111:0:16: ++%15i: 2147483648:1:11:2147483647: ++%*15i: 2147483648:0:11: ++%15i: 0X80000000:1:11:2147483647: ++%*15i: 0X80000000:0:11: ++%15i: 0x80000000:1:11:2147483647: ++%*15i: 0x80000000:0:11: ++%15i: 020000000000:1:13:2147483647: ++%*15i: 020000000000:0:13: ++%15i: 0B10000000000000000000000000000000:1:16:4096: ++%*15i: 0B10000000000000000000000000000000:0:16: ++%15i: 0b10000000000000000000000000000000:1:16:4096: ++%*15i: 0b10000000000000000000000000000000:0:16: ++%15i: 2147487889:1:11:2147483647: ++%*15i: 2147487889:0:11: ++%15i: 0X80001091:1:11:2147483647: ++%*15i: 0X80001091:0:11: ++%15i: 0x80001091:1:11:2147483647: ++%*15i: 0x80001091:0:11: ++%15i: 020000010221:1:13:2147483647: ++%*15i: 020000010221:0:13: ++%15i: 0B10000000000000000001000010010001:1:16:4096: ++%*15i: 0B10000000000000000001000010010001:0:16: ++%15i: 0b10000000000000000001000010010001:1:16:4096: ++%*15i: 0b10000000000000000001000010010001:0:16: ++%15i: +0:1:3:0: ++%*15i: +0:0:3: ++%15i: +0X0:1:5:0: ++%*15i: +0X0:0:5: ++%15i: +0x0:1:5:0: ++%*15i: +0x0:0:5: ++%15i: +00:1:4:0: ++%*15i: +00:0:4: ++%15i: +0B0:1:5:0: ++%*15i: +0B0:0:5: ++%15i: +0b0:1:5:0: ++%*15i: +0b0:0:5: ++%15i: +1:1:3:1: ++%*15i: +1:0:3: ++%15i: +0X1:1:5:1: ++%*15i: +0X1:0:5: ++%15i: +0x1:1:5:1: ++%*15i: +0x1:0:5: ++%15i: +01:1:4:1: ++%*15i: +01:0:4: ++%15i: +0B1:1:5:1: ++%*15i: +0B1:0:5: ++%15i: +0b1:1:5:1: ++%*15i: +0b1:0:5: ++%15i: +42:1:4:42: ++%*15i: +42:0:4: ++%15i: +0X2a:1:6:42: ++%*15i: +0X2a:0:6: ++%15i: +0x2A:1:6:42: ++%*15i: +0x2A:0:6: ++%15i: +052:1:5:42: ++%*15i: +052:0:5: ++%15i: +0B101010:1:10:42: ++%*15i: +0B101010:0:10: ++%15i: +0b101010:1:10:42: ++%*15i: +0b101010:0:10: ++%15i: +2147483647:1:12:2147483647: ++%*15i: +2147483647:0:12: ++%15i: +0X7fffffff:1:12:2147483647: ++%*15i: +0X7fffffff:0:12: ++%15i: +0x7FFFFFFF:1:12:2147483647: ++%*15i: +0x7FFFFFFF:0:12: ++%15i: +017777777777:1:14:2147483647: ++%*15i: +017777777777:0:14: ++%15i: +0B1111111111111111111111111111111:1:16:4095: ++%*15i: +0B1111111111111111111111111111111:0:16: ++%15i: +0b1111111111111111111111111111111:1:16:4095: ++%*15i: +0b1111111111111111111111111111111:0:16: ++%15i: +2147483648:1:12:2147483647: ++%*15i: +2147483648:0:12: ++%15i: +0X80000000:1:12:2147483647: ++%*15i: +0X80000000:0:12: ++%15i: +0x80000000:1:12:2147483647: ++%*15i: +0x80000000:0:12: ++%15i: +020000000000:1:14:2147483647: ++%*15i: +020000000000:0:14: ++%15i: +0B10000000000000000000000000000000:1:16:2048: ++%*15i: +0B10000000000000000000000000000000:0:16: ++%15i: +0b10000000000000000000000000000000:1:16:2048: ++%*15i: +0b10000000000000000000000000000000:0:16: ++%15i: +2147487889:1:12:2147483647: ++%*15i: +2147487889:0:12: ++%15i: +0X80001091:1:12:2147483647: ++%*15i: +0X80001091:0:12: ++%15i: +0x80001091:1:12:2147483647: ++%*15i: +0x80001091:0:12: ++%15i: +020000010221:1:14:2147483647: ++%*15i: +020000010221:0:14: ++%15i: +0B10000000000000000001000010010001:1:16:2048: ++%*15i: +0B10000000000000000001000010010001:0:16: ++%15i: +0b10000000000000000001000010010001:1:16:2048: ++%*15i: +0b10000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-long-d.input b/sysdeps/wordsize-32/tst-scanf-format-long-d.input +new file mode 100644 +index 0000000000000000..8abbcdd957f95fdb +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-long-d.input +@@ -0,0 +1,266 @@ ++%ld::0:-1: ++%*ld::0:-1: ++%ld:-2147484882:1:11:-2147483648: ++%*ld:-2147484882:0:11: ++%ld:-2147483649:1:11:-2147483648: ++%*ld:-2147483649:0:11: ++%ld:-2147483648:1:11:-2147483648: ++%*ld:-2147483648:0:11: ++%ld:-123:1:4:-123: ++%*ld:-123:0:4: ++%ld:-1:1:2:-1: ++%*ld:-1:0:2: ++%ld:-0:1:2:0: ++%*ld:-0:0:2: ++%ld:0:1:1:0: ++%*ld:0:0:1: ++%ld:1:1:1:1: ++%*ld:1:0:1: ++%ld:42:1:2:42: ++%*ld:42:0:2: ++%ld:2147483647:1:10:2147483647: ++%*ld:2147483647:0:10: ++%ld:2147483648:1:10:2147483647: ++%*ld:2147483648:0:10: ++%ld:2147487889:1:10:2147483647: ++%*ld:2147487889:0:10: ++%ld:+0:1:2:0: ++%*ld:+0:0:2: ++%ld:+1:1:2:1: ++%*ld:+1:0:2: ++%ld:+42:1:3:42: ++%*ld:+42:0:3: ++%ld:+2147483647:1:11:2147483647: ++%*ld:+2147483647:0:11: ++%ld:+2147483648:1:11:2147483647: ++%*ld:+2147483648:0:11: ++%ld:+2147487889:1:11:2147483647: ++%*ld:+2147487889:0:11: ++%1ld::0:-1: ++%*1ld::0:-1: ++%1ld:-2147484882:0:-1: ++%*1ld:-2147484882:0:-1: ++%1ld:-2147483649:0:-1: ++%*1ld:-2147483649:0:-1: ++%1ld:-2147483648:0:-1: ++%*1ld:-2147483648:0:-1: ++%1ld:-123:0:-1: ++%*1ld:-123:0:-1: ++%1ld:-1:0:-1: ++%*1ld:-1:0:-1: ++%1ld:-0:0:-1: ++%*1ld:-0:0:-1: ++%1ld:0:1:1:0: ++%*1ld:0:0:1: ++%1ld:1:1:1:1: ++%*1ld:1:0:1: ++%1ld:42:1:1:4: ++%*1ld:42:0:1: ++%1ld:2147483647:1:1:2: ++%*1ld:2147483647:0:1: ++%1ld:2147483648:1:1:2: ++%*1ld:2147483648:0:1: ++%1ld:2147487889:1:1:2: ++%*1ld:2147487889:0:1: ++%1ld:+0:0:-1: ++%*1ld:+0:0:-1: ++%1ld:+1:0:-1: ++%*1ld:+1:0:-1: ++%1ld:+42:0:-1: ++%*1ld:+42:0:-1: ++%1ld:+2147483647:0:-1: ++%*1ld:+2147483647:0:-1: ++%1ld:+2147483648:0:-1: ++%*1ld:+2147483648:0:-1: ++%1ld:+2147487889:0:-1: ++%*1ld:+2147487889:0:-1: ++%2ld::0:-1: ++%*2ld::0:-1: ++%2ld:-2147484882:1:2:-2: ++%*2ld:-2147484882:0:2: ++%2ld:-2147483649:1:2:-2: ++%*2ld:-2147483649:0:2: ++%2ld:-2147483648:1:2:-2: ++%*2ld:-2147483648:0:2: ++%2ld:-123:1:2:-1: ++%*2ld:-123:0:2: ++%2ld:-1:1:2:-1: ++%*2ld:-1:0:2: ++%2ld:-0:1:2:0: ++%*2ld:-0:0:2: ++%2ld:0:1:1:0: ++%*2ld:0:0:1: ++%2ld:1:1:1:1: ++%*2ld:1:0:1: ++%2ld:42:1:2:42: ++%*2ld:42:0:2: ++%2ld:2147483647:1:2:21: ++%*2ld:2147483647:0:2: ++%2ld:2147483648:1:2:21: ++%*2ld:2147483648:0:2: ++%2ld:2147487889:1:2:21: ++%*2ld:2147487889:0:2: ++%2ld:+0:1:2:0: ++%*2ld:+0:0:2: ++%2ld:+1:1:2:1: ++%*2ld:+1:0:2: ++%2ld:+42:1:2:4: ++%*2ld:+42:0:2: ++%2ld:+2147483647:1:2:2: ++%*2ld:+2147483647:0:2: ++%2ld:+2147483648:1:2:2: ++%*2ld:+2147483648:0:2: ++%2ld:+2147487889:1:2:2: ++%*2ld:+2147487889:0:2: ++%8ld::0:-1: ++%*8ld::0:-1: ++%8ld:-2147484882:1:8:-2147484: ++%*8ld:-2147484882:0:8: ++%8ld:-2147483649:1:8:-2147483: ++%*8ld:-2147483649:0:8: ++%8ld:-2147483648:1:8:-2147483: ++%*8ld:-2147483648:0:8: ++%8ld:-123:1:4:-123: ++%*8ld:-123:0:4: ++%8ld:-1:1:2:-1: ++%*8ld:-1:0:2: ++%8ld:-0:1:2:0: ++%*8ld:-0:0:2: ++%8ld:0:1:1:0: ++%*8ld:0:0:1: ++%8ld:1:1:1:1: ++%*8ld:1:0:1: ++%8ld:42:1:2:42: ++%*8ld:42:0:2: ++%8ld:2147483647:1:8:21474836: ++%*8ld:2147483647:0:8: ++%8ld:2147483648:1:8:21474836: ++%*8ld:2147483648:0:8: ++%8ld:2147487889:1:8:21474878: ++%*8ld:2147487889:0:8: ++%8ld:+0:1:2:0: ++%*8ld:+0:0:2: ++%8ld:+1:1:2:1: ++%*8ld:+1:0:2: ++%8ld:+42:1:3:42: ++%*8ld:+42:0:3: ++%8ld:+2147483647:1:8:2147483: ++%*8ld:+2147483647:0:8: ++%8ld:+2147483648:1:8:2147483: ++%*8ld:+2147483648:0:8: ++%8ld:+2147487889:1:8:2147487: ++%*8ld:+2147487889:0:8: ++%15ld::0:-1: ++%*15ld::0:-1: ++%15ld:-2147484882:1:11:-2147483648: ++%*15ld:-2147484882:0:11: ++%15ld:-2147483649:1:11:-2147483648: ++%*15ld:-2147483649:0:11: ++%15ld:-2147483648:1:11:-2147483648: ++%*15ld:-2147483648:0:11: ++%15ld:-123:1:4:-123: ++%*15ld:-123:0:4: ++%15ld:-1:1:2:-1: ++%*15ld:-1:0:2: ++%15ld:-0:1:2:0: ++%*15ld:-0:0:2: ++%15ld:0:1:1:0: ++%*15ld:0:0:1: ++%15ld:1:1:1:1: ++%*15ld:1:0:1: ++%15ld:42:1:2:42: ++%*15ld:42:0:2: ++%15ld:2147483647:1:10:2147483647: ++%*15ld:2147483647:0:10: ++%15ld:2147483648:1:10:2147483647: ++%*15ld:2147483648:0:10: ++%15ld:2147487889:1:10:2147483647: ++%*15ld:2147487889:0:10: ++%15ld:+0:1:2:0: ++%*15ld:+0:0:2: ++%15ld:+1:1:2:1: ++%*15ld:+1:0:2: ++%15ld:+42:1:3:42: ++%*15ld:+42:0:3: ++%15ld:+2147483647:1:11:2147483647: ++%*15ld:+2147483647:0:11: ++%15ld:+2147483648:1:11:2147483647: ++%*15ld:+2147483648:0:11: ++%15ld:+2147487889:1:11:2147483647: ++%*15ld:+2147487889:0:11: ++%2ld: :0:-1: ++%*2ld: :0:-1: ++%2ld: -2147484882:1:3:-2: ++%*2ld: -2147484882:0:3: ++%2ld: -2147483649:1:3:-2: ++%*2ld: -2147483649:0:3: ++%2ld: -2147483648:1:3:-2: ++%*2ld: -2147483648:0:3: ++%2ld: -123:1:3:-1: ++%*2ld: -123:0:3: ++%2ld: -1:1:3:-1: ++%*2ld: -1:0:3: ++%2ld: -0:1:3:0: ++%*2ld: -0:0:3: ++%2ld: 0:1:2:0: ++%*2ld: 0:0:2: ++%2ld: 1:1:2:1: ++%*2ld: 1:0:2: ++%2ld: 42:1:3:42: ++%*2ld: 42:0:3: ++%2ld: 2147483647:1:3:21: ++%*2ld: 2147483647:0:3: ++%2ld: 2147483648:1:3:21: ++%*2ld: 2147483648:0:3: ++%2ld: 2147487889:1:3:21: ++%*2ld: 2147487889:0:3: ++%2ld: +0:1:3:0: ++%*2ld: +0:0:3: ++%2ld: +1:1:3:1: ++%*2ld: +1:0:3: ++%2ld: +42:1:3:4: ++%*2ld: +42:0:3: ++%2ld: +2147483647:1:3:2: ++%*2ld: +2147483647:0:3: ++%2ld: +2147483648:1:3:2: ++%*2ld: +2147483648:0:3: ++%2ld: +2147487889:1:3:2: ++%*2ld: +2147487889:0:3: ++%15ld: :0:-1: ++%*15ld: :0:-1: ++%15ld: -2147484882:1:12:-2147483648: ++%*15ld: -2147484882:0:12: ++%15ld: -2147483649:1:12:-2147483648: ++%*15ld: -2147483649:0:12: ++%15ld: -2147483648:1:12:-2147483648: ++%*15ld: -2147483648:0:12: ++%15ld: -123:1:5:-123: ++%*15ld: -123:0:5: ++%15ld: -1:1:3:-1: ++%*15ld: -1:0:3: ++%15ld: -0:1:3:0: ++%*15ld: -0:0:3: ++%15ld: 0:1:2:0: ++%*15ld: 0:0:2: ++%15ld: 1:1:2:1: ++%*15ld: 1:0:2: ++%15ld: 42:1:3:42: ++%*15ld: 42:0:3: ++%15ld: 2147483647:1:11:2147483647: ++%*15ld: 2147483647:0:11: ++%15ld: 2147483648:1:11:2147483647: ++%*15ld: 2147483648:0:11: ++%15ld: 2147487889:1:11:2147483647: ++%*15ld: 2147487889:0:11: ++%15ld: +0:1:3:0: ++%*15ld: +0:0:3: ++%15ld: +1:1:3:1: ++%*15ld: +1:0:3: ++%15ld: +42:1:4:42: ++%*15ld: +42:0:4: ++%15ld: +2147483647:1:12:2147483647: ++%*15ld: +2147483647:0:12: ++%15ld: +2147483648:1:12:2147483647: ++%*15ld: +2147483648:0:12: ++%15ld: +2147487889:1:12:2147483647: ++%*15ld: +2147487889:0:12: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-long-i.input b/sysdeps/wordsize-32/tst-scanf-format-long-i.input +new file mode 100644 +index 0000000000000000..37db25158a611d87 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-long-i.input +@@ -0,0 +1,1526 @@ ++%li::0:-1: ++%*li::0:-1: ++%li:-2147484882:1:11:-2147483648: ++%*li:-2147484882:0:11: ++%li:-0X800004d2:1:11:-2147483648: ++%*li:-0X800004d2:0:11: ++%li:-0x800004D2:1:11:-2147483648: ++%*li:-0x800004D2:0:11: ++%li:-020000002322:1:13:-2147483648: ++%*li:-020000002322:0:13: ++%li:-0B10000000000000000000010011010010:1:35:-2147483648: ++%*li:-0B10000000000000000000010011010010:0:35: ++%li:-0b10000000000000000000010011010010:1:35:-2147483648: ++%*li:-0b10000000000000000000010011010010:0:35: ++%li:-2147483649:1:11:-2147483648: ++%*li:-2147483649:0:11: ++%li:-0X80000001:1:11:-2147483648: ++%*li:-0X80000001:0:11: ++%li:-0x80000001:1:11:-2147483648: ++%*li:-0x80000001:0:11: ++%li:-020000000001:1:13:-2147483648: ++%*li:-020000000001:0:13: ++%li:-0B10000000000000000000000000000001:1:35:-2147483648: ++%*li:-0B10000000000000000000000000000001:0:35: ++%li:-0b10000000000000000000000000000001:1:35:-2147483648: ++%*li:-0b10000000000000000000000000000001:0:35: ++%li:-2147483648:1:11:-2147483648: ++%*li:-2147483648:0:11: ++%li:-0X80000000:1:11:-2147483648: ++%*li:-0X80000000:0:11: ++%li:-0x80000000:1:11:-2147483648: ++%*li:-0x80000000:0:11: ++%li:-020000000000:1:13:-2147483648: ++%*li:-020000000000:0:13: ++%li:-0B10000000000000000000000000000000:1:35:-2147483648: ++%*li:-0B10000000000000000000000000000000:0:35: ++%li:-0b10000000000000000000000000000000:1:35:-2147483648: ++%*li:-0b10000000000000000000000000000000:0:35: ++%li:-123:1:4:-123: ++%*li:-123:0:4: ++%li:-0X7b:1:5:-123: ++%*li:-0X7b:0:5: ++%li:-0x7B:1:5:-123: ++%*li:-0x7B:0:5: ++%li:-0173:1:5:-123: ++%*li:-0173:0:5: ++%li:-0B1111011:1:10:-123: ++%*li:-0B1111011:0:10: ++%li:-0b1111011:1:10:-123: ++%*li:-0b1111011:0:10: ++%li:-1:1:2:-1: ++%*li:-1:0:2: ++%li:-0X1:1:4:-1: ++%*li:-0X1:0:4: ++%li:-0x1:1:4:-1: ++%*li:-0x1:0:4: ++%li:-01:1:3:-1: ++%*li:-01:0:3: ++%li:-0B1:1:4:-1: ++%*li:-0B1:0:4: ++%li:-0b1:1:4:-1: ++%*li:-0b1:0:4: ++%li:-0:1:2:0: ++%*li:-0:0:2: ++%li:-0X0:1:4:0: ++%*li:-0X0:0:4: ++%li:-0x0:1:4:0: ++%*li:-0x0:0:4: ++%li:-00:1:3:0: ++%*li:-00:0:3: ++%li:-0B0:1:4:0: ++%*li:-0B0:0:4: ++%li:-0b0:1:4:0: ++%*li:-0b0:0:4: ++%li:0:1:1:0: ++%*li:0:0:1: ++%li:0X0:1:3:0: ++%*li:0X0:0:3: ++%li:0x0:1:3:0: ++%*li:0x0:0:3: ++%li:00:1:2:0: ++%*li:00:0:2: ++%li:0B0:1:3:0: ++%*li:0B0:0:3: ++%li:0b0:1:3:0: ++%*li:0b0:0:3: ++%li:1:1:1:1: ++%*li:1:0:1: ++%li:0X1:1:3:1: ++%*li:0X1:0:3: ++%li:0x1:1:3:1: ++%*li:0x1:0:3: ++%li:01:1:2:1: ++%*li:01:0:2: ++%li:0B1:1:3:1: ++%*li:0B1:0:3: ++%li:0b1:1:3:1: ++%*li:0b1:0:3: ++%li:42:1:2:42: ++%*li:42:0:2: ++%li:0X2a:1:4:42: ++%*li:0X2a:0:4: ++%li:0x2A:1:4:42: ++%*li:0x2A:0:4: ++%li:052:1:3:42: ++%*li:052:0:3: ++%li:0B101010:1:8:42: ++%*li:0B101010:0:8: ++%li:0b101010:1:8:42: ++%*li:0b101010:0:8: ++%li:2147483647:1:10:2147483647: ++%*li:2147483647:0:10: ++%li:0X7fffffff:1:10:2147483647: ++%*li:0X7fffffff:0:10: ++%li:0x7FFFFFFF:1:10:2147483647: ++%*li:0x7FFFFFFF:0:10: ++%li:017777777777:1:12:2147483647: ++%*li:017777777777:0:12: ++%li:0B1111111111111111111111111111111:1:33:2147483647: ++%*li:0B1111111111111111111111111111111:0:33: ++%li:0b1111111111111111111111111111111:1:33:2147483647: ++%*li:0b1111111111111111111111111111111:0:33: ++%li:2147483648:1:10:2147483647: ++%*li:2147483648:0:10: ++%li:0X80000000:1:10:2147483647: ++%*li:0X80000000:0:10: ++%li:0x80000000:1:10:2147483647: ++%*li:0x80000000:0:10: ++%li:020000000000:1:12:2147483647: ++%*li:020000000000:0:12: ++%li:0B10000000000000000000000000000000:1:34:2147483647: ++%*li:0B10000000000000000000000000000000:0:34: ++%li:0b10000000000000000000000000000000:1:34:2147483647: ++%*li:0b10000000000000000000000000000000:0:34: ++%li:2147487889:1:10:2147483647: ++%*li:2147487889:0:10: ++%li:0X80001091:1:10:2147483647: ++%*li:0X80001091:0:10: ++%li:0x80001091:1:10:2147483647: ++%*li:0x80001091:0:10: ++%li:020000010221:1:12:2147483647: ++%*li:020000010221:0:12: ++%li:0B10000000000000000001000010010001:1:34:2147483647: ++%*li:0B10000000000000000001000010010001:0:34: ++%li:0b10000000000000000001000010010001:1:34:2147483647: ++%*li:0b10000000000000000001000010010001:0:34: ++%li:+0:1:2:0: ++%*li:+0:0:2: ++%li:+0X0:1:4:0: ++%*li:+0X0:0:4: ++%li:+0x0:1:4:0: ++%*li:+0x0:0:4: ++%li:+00:1:3:0: ++%*li:+00:0:3: ++%li:+0B0:1:4:0: ++%*li:+0B0:0:4: ++%li:+0b0:1:4:0: ++%*li:+0b0:0:4: ++%li:+1:1:2:1: ++%*li:+1:0:2: ++%li:+0X1:1:4:1: ++%*li:+0X1:0:4: ++%li:+0x1:1:4:1: ++%*li:+0x1:0:4: ++%li:+01:1:3:1: ++%*li:+01:0:3: ++%li:+0B1:1:4:1: ++%*li:+0B1:0:4: ++%li:+0b1:1:4:1: ++%*li:+0b1:0:4: ++%li:+42:1:3:42: ++%*li:+42:0:3: ++%li:+0X2a:1:5:42: ++%*li:+0X2a:0:5: ++%li:+0x2A:1:5:42: ++%*li:+0x2A:0:5: ++%li:+052:1:4:42: ++%*li:+052:0:4: ++%li:+0B101010:1:9:42: ++%*li:+0B101010:0:9: ++%li:+0b101010:1:9:42: ++%*li:+0b101010:0:9: ++%li:+2147483647:1:11:2147483647: ++%*li:+2147483647:0:11: ++%li:+0X7fffffff:1:11:2147483647: ++%*li:+0X7fffffff:0:11: ++%li:+0x7FFFFFFF:1:11:2147483647: ++%*li:+0x7FFFFFFF:0:11: ++%li:+017777777777:1:13:2147483647: ++%*li:+017777777777:0:13: ++%li:+0B1111111111111111111111111111111:1:34:2147483647: ++%*li:+0B1111111111111111111111111111111:0:34: ++%li:+0b1111111111111111111111111111111:1:34:2147483647: ++%*li:+0b1111111111111111111111111111111:0:34: ++%li:+2147483648:1:11:2147483647: ++%*li:+2147483648:0:11: ++%li:+0X80000000:1:11:2147483647: ++%*li:+0X80000000:0:11: ++%li:+0x80000000:1:11:2147483647: ++%*li:+0x80000000:0:11: ++%li:+020000000000:1:13:2147483647: ++%*li:+020000000000:0:13: ++%li:+0B10000000000000000000000000000000:1:35:2147483647: ++%*li:+0B10000000000000000000000000000000:0:35: ++%li:+0b10000000000000000000000000000000:1:35:2147483647: ++%*li:+0b10000000000000000000000000000000:0:35: ++%li:+2147487889:1:11:2147483647: ++%*li:+2147487889:0:11: ++%li:+0X80001091:1:11:2147483647: ++%*li:+0X80001091:0:11: ++%li:+0x80001091:1:11:2147483647: ++%*li:+0x80001091:0:11: ++%li:+020000010221:1:13:2147483647: ++%*li:+020000010221:0:13: ++%li:+0B10000000000000000001000010010001:1:35:2147483647: ++%*li:+0B10000000000000000001000010010001:0:35: ++%li:+0b10000000000000000001000010010001:1:35:2147483647: ++%*li:+0b10000000000000000001000010010001:0:35: ++%1li::0:-1: ++%*1li::0:-1: ++%1li:-2147484882:0:-1: ++%*1li:-2147484882:0:-1: ++%1li:-0X800004d2:0:-1: ++%*1li:-0X800004d2:0:-1: ++%1li:-0x800004D2:0:-1: ++%*1li:-0x800004D2:0:-1: ++%1li:-020000002322:0:-1: ++%*1li:-020000002322:0:-1: ++%1li:-0B10000000000000000000010011010010:0:-1: ++%*1li:-0B10000000000000000000010011010010:0:-1: ++%1li:-0b10000000000000000000010011010010:0:-1: ++%*1li:-0b10000000000000000000010011010010:0:-1: ++%1li:-2147483649:0:-1: ++%*1li:-2147483649:0:-1: ++%1li:-0X80000001:0:-1: ++%*1li:-0X80000001:0:-1: ++%1li:-0x80000001:0:-1: ++%*1li:-0x80000001:0:-1: ++%1li:-020000000001:0:-1: ++%*1li:-020000000001:0:-1: ++%1li:-0B10000000000000000000000000000001:0:-1: ++%*1li:-0B10000000000000000000000000000001:0:-1: ++%1li:-0b10000000000000000000000000000001:0:-1: ++%*1li:-0b10000000000000000000000000000001:0:-1: ++%1li:-2147483648:0:-1: ++%*1li:-2147483648:0:-1: ++%1li:-0X80000000:0:-1: ++%*1li:-0X80000000:0:-1: ++%1li:-0x80000000:0:-1: ++%*1li:-0x80000000:0:-1: ++%1li:-020000000000:0:-1: ++%*1li:-020000000000:0:-1: ++%1li:-0B10000000000000000000000000000000:0:-1: ++%*1li:-0B10000000000000000000000000000000:0:-1: ++%1li:-0b10000000000000000000000000000000:0:-1: ++%*1li:-0b10000000000000000000000000000000:0:-1: ++%1li:-123:0:-1: ++%*1li:-123:0:-1: ++%1li:-0X7b:0:-1: ++%*1li:-0X7b:0:-1: ++%1li:-0x7B:0:-1: ++%*1li:-0x7B:0:-1: ++%1li:-0173:0:-1: ++%*1li:-0173:0:-1: ++%1li:-0B1111011:0:-1: ++%*1li:-0B1111011:0:-1: ++%1li:-0b1111011:0:-1: ++%*1li:-0b1111011:0:-1: ++%1li:-1:0:-1: ++%*1li:-1:0:-1: ++%1li:-0X1:0:-1: ++%*1li:-0X1:0:-1: ++%1li:-0x1:0:-1: ++%*1li:-0x1:0:-1: ++%1li:-01:0:-1: ++%*1li:-01:0:-1: ++%1li:-0B1:0:-1: ++%*1li:-0B1:0:-1: ++%1li:-0b1:0:-1: ++%*1li:-0b1:0:-1: ++%1li:-0:0:-1: ++%*1li:-0:0:-1: ++%1li:-0X0:0:-1: ++%*1li:-0X0:0:-1: ++%1li:-0x0:0:-1: ++%*1li:-0x0:0:-1: ++%1li:-00:0:-1: ++%*1li:-00:0:-1: ++%1li:-0B0:0:-1: ++%*1li:-0B0:0:-1: ++%1li:-0b0:0:-1: ++%*1li:-0b0:0:-1: ++%1li:0:1:1:0: ++%*1li:0:0:1: ++%1li:0X0:1:1:0: ++%*1li:0X0:0:1: ++%1li:0x0:1:1:0: ++%*1li:0x0:0:1: ++%1li:00:1:1:0: ++%*1li:00:0:1: ++%1li:0B0:1:1:0: ++%*1li:0B0:0:1: ++%1li:0b0:1:1:0: ++%*1li:0b0:0:1: ++%1li:1:1:1:1: ++%*1li:1:0:1: ++%1li:0X1:1:1:0: ++%*1li:0X1:0:1: ++%1li:0x1:1:1:0: ++%*1li:0x1:0:1: ++%1li:01:1:1:0: ++%*1li:01:0:1: ++%1li:0B1:1:1:0: ++%*1li:0B1:0:1: ++%1li:0b1:1:1:0: ++%*1li:0b1:0:1: ++%1li:42:1:1:4: ++%*1li:42:0:1: ++%1li:0X2a:1:1:0: ++%*1li:0X2a:0:1: ++%1li:0x2A:1:1:0: ++%*1li:0x2A:0:1: ++%1li:052:1:1:0: ++%*1li:052:0:1: ++%1li:0B101010:1:1:0: ++%*1li:0B101010:0:1: ++%1li:0b101010:1:1:0: ++%*1li:0b101010:0:1: ++%1li:2147483647:1:1:2: ++%*1li:2147483647:0:1: ++%1li:0X7fffffff:1:1:0: ++%*1li:0X7fffffff:0:1: ++%1li:0x7FFFFFFF:1:1:0: ++%*1li:0x7FFFFFFF:0:1: ++%1li:017777777777:1:1:0: ++%*1li:017777777777:0:1: ++%1li:0B1111111111111111111111111111111:1:1:0: ++%*1li:0B1111111111111111111111111111111:0:1: ++%1li:0b1111111111111111111111111111111:1:1:0: ++%*1li:0b1111111111111111111111111111111:0:1: ++%1li:2147483648:1:1:2: ++%*1li:2147483648:0:1: ++%1li:0X80000000:1:1:0: ++%*1li:0X80000000:0:1: ++%1li:0x80000000:1:1:0: ++%*1li:0x80000000:0:1: ++%1li:020000000000:1:1:0: ++%*1li:020000000000:0:1: ++%1li:0B10000000000000000000000000000000:1:1:0: ++%*1li:0B10000000000000000000000000000000:0:1: ++%1li:0b10000000000000000000000000000000:1:1:0: ++%*1li:0b10000000000000000000000000000000:0:1: ++%1li:2147487889:1:1:2: ++%*1li:2147487889:0:1: ++%1li:0X80001091:1:1:0: ++%*1li:0X80001091:0:1: ++%1li:0x80001091:1:1:0: ++%*1li:0x80001091:0:1: ++%1li:020000010221:1:1:0: ++%*1li:020000010221:0:1: ++%1li:0B10000000000000000001000010010001:1:1:0: ++%*1li:0B10000000000000000001000010010001:0:1: ++%1li:0b10000000000000000001000010010001:1:1:0: ++%*1li:0b10000000000000000001000010010001:0:1: ++%1li:+0:0:-1: ++%*1li:+0:0:-1: ++%1li:+0X0:0:-1: ++%*1li:+0X0:0:-1: ++%1li:+0x0:0:-1: ++%*1li:+0x0:0:-1: ++%1li:+00:0:-1: ++%*1li:+00:0:-1: ++%1li:+0B0:0:-1: ++%*1li:+0B0:0:-1: ++%1li:+0b0:0:-1: ++%*1li:+0b0:0:-1: ++%1li:+1:0:-1: ++%*1li:+1:0:-1: ++%1li:+0X1:0:-1: ++%*1li:+0X1:0:-1: ++%1li:+0x1:0:-1: ++%*1li:+0x1:0:-1: ++%1li:+01:0:-1: ++%*1li:+01:0:-1: ++%1li:+0B1:0:-1: ++%*1li:+0B1:0:-1: ++%1li:+0b1:0:-1: ++%*1li:+0b1:0:-1: ++%1li:+42:0:-1: ++%*1li:+42:0:-1: ++%1li:+0X2a:0:-1: ++%*1li:+0X2a:0:-1: ++%1li:+0x2A:0:-1: ++%*1li:+0x2A:0:-1: ++%1li:+052:0:-1: ++%*1li:+052:0:-1: ++%1li:+0B101010:0:-1: ++%*1li:+0B101010:0:-1: ++%1li:+0b101010:0:-1: ++%*1li:+0b101010:0:-1: ++%1li:+2147483647:0:-1: ++%*1li:+2147483647:0:-1: ++%1li:+0X7fffffff:0:-1: ++%*1li:+0X7fffffff:0:-1: ++%1li:+0x7FFFFFFF:0:-1: ++%*1li:+0x7FFFFFFF:0:-1: ++%1li:+017777777777:0:-1: ++%*1li:+017777777777:0:-1: ++%1li:+0B1111111111111111111111111111111:0:-1: ++%*1li:+0B1111111111111111111111111111111:0:-1: ++%1li:+0b1111111111111111111111111111111:0:-1: ++%*1li:+0b1111111111111111111111111111111:0:-1: ++%1li:+2147483648:0:-1: ++%*1li:+2147483648:0:-1: ++%1li:+0X80000000:0:-1: ++%*1li:+0X80000000:0:-1: ++%1li:+0x80000000:0:-1: ++%*1li:+0x80000000:0:-1: ++%1li:+020000000000:0:-1: ++%*1li:+020000000000:0:-1: ++%1li:+0B10000000000000000000000000000000:0:-1: ++%*1li:+0B10000000000000000000000000000000:0:-1: ++%1li:+0b10000000000000000000000000000000:0:-1: ++%*1li:+0b10000000000000000000000000000000:0:-1: ++%1li:+2147487889:0:-1: ++%*1li:+2147487889:0:-1: ++%1li:+0X80001091:0:-1: ++%*1li:+0X80001091:0:-1: ++%1li:+0x80001091:0:-1: ++%*1li:+0x80001091:0:-1: ++%1li:+020000010221:0:-1: ++%*1li:+020000010221:0:-1: ++%1li:+0B10000000000000000001000010010001:0:-1: ++%*1li:+0B10000000000000000001000010010001:0:-1: ++%1li:+0b10000000000000000001000010010001:0:-1: ++%*1li:+0b10000000000000000001000010010001:0:-1: ++%2li::0:-1: ++%*2li::0:-1: ++%2li:-2147484882:1:2:-2: ++%*2li:-2147484882:0:2: ++%2li:-0X800004d2:1:2:0: ++%*2li:-0X800004d2:0:2: ++%2li:-0x800004D2:1:2:0: ++%*2li:-0x800004D2:0:2: ++%2li:-020000002322:1:2:0: ++%*2li:-020000002322:0:2: ++%2li:-0B10000000000000000000010011010010:1:2:0: ++%*2li:-0B10000000000000000000010011010010:0:2: ++%2li:-0b10000000000000000000010011010010:1:2:0: ++%*2li:-0b10000000000000000000010011010010:0:2: ++%2li:-2147483649:1:2:-2: ++%*2li:-2147483649:0:2: ++%2li:-0X80000001:1:2:0: ++%*2li:-0X80000001:0:2: ++%2li:-0x80000001:1:2:0: ++%*2li:-0x80000001:0:2: ++%2li:-020000000001:1:2:0: ++%*2li:-020000000001:0:2: ++%2li:-0B10000000000000000000000000000001:1:2:0: ++%*2li:-0B10000000000000000000000000000001:0:2: ++%2li:-0b10000000000000000000000000000001:1:2:0: ++%*2li:-0b10000000000000000000000000000001:0:2: ++%2li:-2147483648:1:2:-2: ++%*2li:-2147483648:0:2: ++%2li:-0X80000000:1:2:0: ++%*2li:-0X80000000:0:2: ++%2li:-0x80000000:1:2:0: ++%*2li:-0x80000000:0:2: ++%2li:-020000000000:1:2:0: ++%*2li:-020000000000:0:2: ++%2li:-0B10000000000000000000000000000000:1:2:0: ++%*2li:-0B10000000000000000000000000000000:0:2: ++%2li:-0b10000000000000000000000000000000:1:2:0: ++%*2li:-0b10000000000000000000000000000000:0:2: ++%2li:-123:1:2:-1: ++%*2li:-123:0:2: ++%2li:-0X7b:1:2:0: ++%*2li:-0X7b:0:2: ++%2li:-0x7B:1:2:0: ++%*2li:-0x7B:0:2: ++%2li:-0173:1:2:0: ++%*2li:-0173:0:2: ++%2li:-0B1111011:1:2:0: ++%*2li:-0B1111011:0:2: ++%2li:-0b1111011:1:2:0: ++%*2li:-0b1111011:0:2: ++%2li:-1:1:2:-1: ++%*2li:-1:0:2: ++%2li:-0X1:1:2:0: ++%*2li:-0X1:0:2: ++%2li:-0x1:1:2:0: ++%*2li:-0x1:0:2: ++%2li:-01:1:2:0: ++%*2li:-01:0:2: ++%2li:-0B1:1:2:0: ++%*2li:-0B1:0:2: ++%2li:-0b1:1:2:0: ++%*2li:-0b1:0:2: ++%2li:-0:1:2:0: ++%*2li:-0:0:2: ++%2li:-0X0:1:2:0: ++%*2li:-0X0:0:2: ++%2li:-0x0:1:2:0: ++%*2li:-0x0:0:2: ++%2li:-00:1:2:0: ++%*2li:-00:0:2: ++%2li:-0B0:1:2:0: ++%*2li:-0B0:0:2: ++%2li:-0b0:1:2:0: ++%*2li:-0b0:0:2: ++%2li:0:1:1:0: ++%*2li:0:0:1: ++# BZ12701 %2li:0X0:0:-1: ++# BZ12701 %*2li:0X0:0:-1: ++# BZ12701 %2li:0x0:0:-1: ++# BZ12701 %*2li:0x0:0:-1: ++%2li:00:1:2:0: ++%*2li:00:0:2: ++# BZ12701 %2li:0B0:0:-1: ++# BZ12701 %*2li:0B0:0:-1: ++# BZ12701 %2li:0b0:0:-1: ++# BZ12701 %*2li:0b0:0:-1: ++%2li:1:1:1:1: ++%*2li:1:0:1: ++# BZ12701 %2li:0X1:0:-1: ++# BZ12701 %*2li:0X1:0:-1: ++# BZ12701 %2li:0x1:0:-1: ++# BZ12701 %*2li:0x1:0:-1: ++%2li:01:1:2:1: ++%*2li:01:0:2: ++# BZ12701 %2li:0B1:0:-1: ++# BZ12701 %*2li:0B1:0:-1: ++# BZ12701 %2li:0b1:0:-1: ++# BZ12701 %*2li:0b1:0:-1: ++%2li:42:1:2:42: ++%*2li:42:0:2: ++# BZ12701 %2li:0X2a:0:-1: ++# BZ12701 %*2li:0X2a:0:-1: ++# BZ12701 %2li:0x2A:0:-1: ++# BZ12701 %*2li:0x2A:0:-1: ++%2li:052:1:2:5: ++%*2li:052:0:2: ++# BZ12701 %2li:0B101010:0:-1: ++# BZ12701 %*2li:0B101010:0:-1: ++# BZ12701 %2li:0b101010:0:-1: ++# BZ12701 %*2li:0b101010:0:-1: ++%2li:2147483647:1:2:21: ++%*2li:2147483647:0:2: ++# BZ12701 %2li:0X7fffffff:0:-1: ++# BZ12701 %*2li:0X7fffffff:0:-1: ++# BZ12701 %2li:0x7FFFFFFF:0:-1: ++# BZ12701 %*2li:0x7FFFFFFF:0:-1: ++%2li:017777777777:1:2:1: ++%*2li:017777777777:0:2: ++# BZ12701 %2li:0B1111111111111111111111111111111:0:-1: ++# BZ12701 %*2li:0B1111111111111111111111111111111:0:-1: ++# BZ12701 %2li:0b1111111111111111111111111111111:0:-1: ++# BZ12701 %*2li:0b1111111111111111111111111111111:0:-1: ++%2li:2147483648:1:2:21: ++%*2li:2147483648:0:2: ++# BZ12701 %2li:0X80000000:0:-1: ++# BZ12701 %*2li:0X80000000:0:-1: ++# BZ12701 %2li:0x80000000:0:-1: ++# BZ12701 %*2li:0x80000000:0:-1: ++%2li:020000000000:1:2:2: ++%*2li:020000000000:0:2: ++# BZ12701 %2li:0B10000000000000000000000000000000:0:-1: ++# BZ12701 %*2li:0B10000000000000000000000000000000:0:-1: ++# BZ12701 %2li:0b10000000000000000000000000000000:0:-1: ++# BZ12701 %*2li:0b10000000000000000000000000000000:0:-1: ++%2li:2147487889:1:2:21: ++%*2li:2147487889:0:2: ++# BZ12701 %2li:0X80001091:0:-1: ++# BZ12701 %*2li:0X80001091:0:-1: ++# BZ12701 %2li:0x80001091:0:-1: ++# BZ12701 %*2li:0x80001091:0:-1: ++%2li:020000010221:1:2:2: ++%*2li:020000010221:0:2: ++# BZ12701 %2li:0B10000000000000000001000010010001:0:-1: ++# BZ12701 %*2li:0B10000000000000000001000010010001:0:-1: ++# BZ12701 %2li:0b10000000000000000001000010010001:0:-1: ++# BZ12701 %*2li:0b10000000000000000001000010010001:0:-1: ++%2li:+0:1:2:0: ++%*2li:+0:0:2: ++%2li:+0X0:1:2:0: ++%*2li:+0X0:0:2: ++%2li:+0x0:1:2:0: ++%*2li:+0x0:0:2: ++%2li:+00:1:2:0: ++%*2li:+00:0:2: ++%2li:+0B0:1:2:0: ++%*2li:+0B0:0:2: ++%2li:+0b0:1:2:0: ++%*2li:+0b0:0:2: ++%2li:+1:1:2:1: ++%*2li:+1:0:2: ++%2li:+0X1:1:2:0: ++%*2li:+0X1:0:2: ++%2li:+0x1:1:2:0: ++%*2li:+0x1:0:2: ++%2li:+01:1:2:0: ++%*2li:+01:0:2: ++%2li:+0B1:1:2:0: ++%*2li:+0B1:0:2: ++%2li:+0b1:1:2:0: ++%*2li:+0b1:0:2: ++%2li:+42:1:2:4: ++%*2li:+42:0:2: ++%2li:+0X2a:1:2:0: ++%*2li:+0X2a:0:2: ++%2li:+0x2A:1:2:0: ++%*2li:+0x2A:0:2: ++%2li:+052:1:2:0: ++%*2li:+052:0:2: ++%2li:+0B101010:1:2:0: ++%*2li:+0B101010:0:2: ++%2li:+0b101010:1:2:0: ++%*2li:+0b101010:0:2: ++%2li:+2147483647:1:2:2: ++%*2li:+2147483647:0:2: ++%2li:+0X7fffffff:1:2:0: ++%*2li:+0X7fffffff:0:2: ++%2li:+0x7FFFFFFF:1:2:0: ++%*2li:+0x7FFFFFFF:0:2: ++%2li:+017777777777:1:2:0: ++%*2li:+017777777777:0:2: ++%2li:+0B1111111111111111111111111111111:1:2:0: ++%*2li:+0B1111111111111111111111111111111:0:2: ++%2li:+0b1111111111111111111111111111111:1:2:0: ++%*2li:+0b1111111111111111111111111111111:0:2: ++%2li:+2147483648:1:2:2: ++%*2li:+2147483648:0:2: ++%2li:+0X80000000:1:2:0: ++%*2li:+0X80000000:0:2: ++%2li:+0x80000000:1:2:0: ++%*2li:+0x80000000:0:2: ++%2li:+020000000000:1:2:0: ++%*2li:+020000000000:0:2: ++%2li:+0B10000000000000000000000000000000:1:2:0: ++%*2li:+0B10000000000000000000000000000000:0:2: ++%2li:+0b10000000000000000000000000000000:1:2:0: ++%*2li:+0b10000000000000000000000000000000:0:2: ++%2li:+2147487889:1:2:2: ++%*2li:+2147487889:0:2: ++%2li:+0X80001091:1:2:0: ++%*2li:+0X80001091:0:2: ++%2li:+0x80001091:1:2:0: ++%*2li:+0x80001091:0:2: ++%2li:+020000010221:1:2:0: ++%*2li:+020000010221:0:2: ++%2li:+0B10000000000000000001000010010001:1:2:0: ++%*2li:+0B10000000000000000001000010010001:0:2: ++%2li:+0b10000000000000000001000010010001:1:2:0: ++%*2li:+0b10000000000000000001000010010001:0:2: ++%8li::0:-1: ++%*8li::0:-1: ++%8li:-2147484882:1:8:-2147484: ++%*8li:-2147484882:0:8: ++%8li:-0X800004d2:1:8:-524288: ++%*8li:-0X800004d2:0:8: ++%8li:-0x800004D2:1:8:-524288: ++%*8li:-0x800004D2:0:8: ++%8li:-020000002322:1:8:-65536: ++%*8li:-020000002322:0:8: ++%8li:-0B10000000000000000000010011010010:1:8:-16: ++%*8li:-0B10000000000000000000010011010010:0:8: ++%8li:-0b10000000000000000000010011010010:1:8:-16: ++%*8li:-0b10000000000000000000010011010010:0:8: ++%8li:-2147483649:1:8:-2147483: ++%*8li:-2147483649:0:8: ++%8li:-0X80000001:1:8:-524288: ++%*8li:-0X80000001:0:8: ++%8li:-0x80000001:1:8:-524288: ++%*8li:-0x80000001:0:8: ++%8li:-020000000001:1:8:-65536: ++%*8li:-020000000001:0:8: ++%8li:-0B10000000000000000000000000000001:1:8:-16: ++%*8li:-0B10000000000000000000000000000001:0:8: ++%8li:-0b10000000000000000000000000000001:1:8:-16: ++%*8li:-0b10000000000000000000000000000001:0:8: ++%8li:-2147483648:1:8:-2147483: ++%*8li:-2147483648:0:8: ++%8li:-0X80000000:1:8:-524288: ++%*8li:-0X80000000:0:8: ++%8li:-0x80000000:1:8:-524288: ++%*8li:-0x80000000:0:8: ++%8li:-020000000000:1:8:-65536: ++%*8li:-020000000000:0:8: ++%8li:-0B10000000000000000000000000000000:1:8:-16: ++%*8li:-0B10000000000000000000000000000000:0:8: ++%8li:-0b10000000000000000000000000000000:1:8:-16: ++%*8li:-0b10000000000000000000000000000000:0:8: ++%8li:-123:1:4:-123: ++%*8li:-123:0:4: ++%8li:-0X7b:1:5:-123: ++%*8li:-0X7b:0:5: ++%8li:-0x7B:1:5:-123: ++%*8li:-0x7B:0:5: ++%8li:-0173:1:5:-123: ++%*8li:-0173:0:5: ++%8li:-0B1111011:1:8:-30: ++%*8li:-0B1111011:0:8: ++%8li:-0b1111011:1:8:-30: ++%*8li:-0b1111011:0:8: ++%8li:-1:1:2:-1: ++%*8li:-1:0:2: ++%8li:-0X1:1:4:-1: ++%*8li:-0X1:0:4: ++%8li:-0x1:1:4:-1: ++%*8li:-0x1:0:4: ++%8li:-01:1:3:-1: ++%*8li:-01:0:3: ++%8li:-0B1:1:4:-1: ++%*8li:-0B1:0:4: ++%8li:-0b1:1:4:-1: ++%*8li:-0b1:0:4: ++%8li:-0:1:2:0: ++%*8li:-0:0:2: ++%8li:-0X0:1:4:0: ++%*8li:-0X0:0:4: ++%8li:-0x0:1:4:0: ++%*8li:-0x0:0:4: ++%8li:-00:1:3:0: ++%*8li:-00:0:3: ++%8li:-0B0:1:4:0: ++%*8li:-0B0:0:4: ++%8li:-0b0:1:4:0: ++%*8li:-0b0:0:4: ++%8li:0:1:1:0: ++%*8li:0:0:1: ++%8li:0X0:1:3:0: ++%*8li:0X0:0:3: ++%8li:0x0:1:3:0: ++%*8li:0x0:0:3: ++%8li:00:1:2:0: ++%*8li:00:0:2: ++%8li:0B0:1:3:0: ++%*8li:0B0:0:3: ++%8li:0b0:1:3:0: ++%*8li:0b0:0:3: ++%8li:1:1:1:1: ++%*8li:1:0:1: ++%8li:0X1:1:3:1: ++%*8li:0X1:0:3: ++%8li:0x1:1:3:1: ++%*8li:0x1:0:3: ++%8li:01:1:2:1: ++%*8li:01:0:2: ++%8li:0B1:1:3:1: ++%*8li:0B1:0:3: ++%8li:0b1:1:3:1: ++%*8li:0b1:0:3: ++%8li:42:1:2:42: ++%*8li:42:0:2: ++%8li:0X2a:1:4:42: ++%*8li:0X2a:0:4: ++%8li:0x2A:1:4:42: ++%*8li:0x2A:0:4: ++%8li:052:1:3:42: ++%*8li:052:0:3: ++%8li:0B101010:1:8:42: ++%*8li:0B101010:0:8: ++%8li:0b101010:1:8:42: ++%*8li:0b101010:0:8: ++%8li:2147483647:1:8:21474836: ++%*8li:2147483647:0:8: ++%8li:0X7fffffff:1:8:8388607: ++%*8li:0X7fffffff:0:8: ++%8li:0x7FFFFFFF:1:8:8388607: ++%*8li:0x7FFFFFFF:0:8: ++%8li:017777777777:1:8:524287: ++%*8li:017777777777:0:8: ++%8li:0B1111111111111111111111111111111:1:8:63: ++%*8li:0B1111111111111111111111111111111:0:8: ++%8li:0b1111111111111111111111111111111:1:8:63: ++%*8li:0b1111111111111111111111111111111:0:8: ++%8li:2147483648:1:8:21474836: ++%*8li:2147483648:0:8: ++%8li:0X80000000:1:8:8388608: ++%*8li:0X80000000:0:8: ++%8li:0x80000000:1:8:8388608: ++%*8li:0x80000000:0:8: ++%8li:020000000000:1:8:524288: ++%*8li:020000000000:0:8: ++%8li:0B10000000000000000000000000000000:1:8:32: ++%*8li:0B10000000000000000000000000000000:0:8: ++%8li:0b10000000000000000000000000000000:1:8:32: ++%*8li:0b10000000000000000000000000000000:0:8: ++%8li:2147487889:1:8:21474878: ++%*8li:2147487889:0:8: ++%8li:0X80001091:1:8:8388624: ++%*8li:0X80001091:0:8: ++%8li:0x80001091:1:8:8388624: ++%*8li:0x80001091:0:8: ++%8li:020000010221:1:8:524289: ++%*8li:020000010221:0:8: ++%8li:0B10000000000000000001000010010001:1:8:32: ++%*8li:0B10000000000000000001000010010001:0:8: ++%8li:0b10000000000000000001000010010001:1:8:32: ++%*8li:0b10000000000000000001000010010001:0:8: ++%8li:+0:1:2:0: ++%*8li:+0:0:2: ++%8li:+0X0:1:4:0: ++%*8li:+0X0:0:4: ++%8li:+0x0:1:4:0: ++%*8li:+0x0:0:4: ++%8li:+00:1:3:0: ++%*8li:+00:0:3: ++%8li:+0B0:1:4:0: ++%*8li:+0B0:0:4: ++%8li:+0b0:1:4:0: ++%*8li:+0b0:0:4: ++%8li:+1:1:2:1: ++%*8li:+1:0:2: ++%8li:+0X1:1:4:1: ++%*8li:+0X1:0:4: ++%8li:+0x1:1:4:1: ++%*8li:+0x1:0:4: ++%8li:+01:1:3:1: ++%*8li:+01:0:3: ++%8li:+0B1:1:4:1: ++%*8li:+0B1:0:4: ++%8li:+0b1:1:4:1: ++%*8li:+0b1:0:4: ++%8li:+42:1:3:42: ++%*8li:+42:0:3: ++%8li:+0X2a:1:5:42: ++%*8li:+0X2a:0:5: ++%8li:+0x2A:1:5:42: ++%*8li:+0x2A:0:5: ++%8li:+052:1:4:42: ++%*8li:+052:0:4: ++%8li:+0B101010:1:8:21: ++%*8li:+0B101010:0:8: ++%8li:+0b101010:1:8:21: ++%*8li:+0b101010:0:8: ++%8li:+2147483647:1:8:2147483: ++%*8li:+2147483647:0:8: ++%8li:+0X7fffffff:1:8:524287: ++%*8li:+0X7fffffff:0:8: ++%8li:+0x7FFFFFFF:1:8:524287: ++%*8li:+0x7FFFFFFF:0:8: ++%8li:+017777777777:1:8:65535: ++%*8li:+017777777777:0:8: ++%8li:+0B1111111111111111111111111111111:1:8:31: ++%*8li:+0B1111111111111111111111111111111:0:8: ++%8li:+0b1111111111111111111111111111111:1:8:31: ++%*8li:+0b1111111111111111111111111111111:0:8: ++%8li:+2147483648:1:8:2147483: ++%*8li:+2147483648:0:8: ++%8li:+0X80000000:1:8:524288: ++%*8li:+0X80000000:0:8: ++%8li:+0x80000000:1:8:524288: ++%*8li:+0x80000000:0:8: ++%8li:+020000000000:1:8:65536: ++%*8li:+020000000000:0:8: ++%8li:+0B10000000000000000000000000000000:1:8:16: ++%*8li:+0B10000000000000000000000000000000:0:8: ++%8li:+0b10000000000000000000000000000000:1:8:16: ++%*8li:+0b10000000000000000000000000000000:0:8: ++%8li:+2147487889:1:8:2147487: ++%*8li:+2147487889:0:8: ++%8li:+0X80001091:1:8:524289: ++%*8li:+0X80001091:0:8: ++%8li:+0x80001091:1:8:524289: ++%*8li:+0x80001091:0:8: ++%8li:+020000010221:1:8:65536: ++%*8li:+020000010221:0:8: ++%8li:+0B10000000000000000001000010010001:1:8:16: ++%*8li:+0B10000000000000000001000010010001:0:8: ++%8li:+0b10000000000000000001000010010001:1:8:16: ++%*8li:+0b10000000000000000001000010010001:0:8: ++%15li::0:-1: ++%*15li::0:-1: ++%15li:-2147484882:1:11:-2147483648: ++%*15li:-2147484882:0:11: ++%15li:-0X800004d2:1:11:-2147483648: ++%*15li:-0X800004d2:0:11: ++%15li:-0x800004D2:1:11:-2147483648: ++%*15li:-0x800004D2:0:11: ++%15li:-020000002322:1:13:-2147483648: ++%*15li:-020000002322:0:13: ++%15li:-0B10000000000000000000010011010010:1:15:-2048: ++%*15li:-0B10000000000000000000010011010010:0:15: ++%15li:-0b10000000000000000000010011010010:1:15:-2048: ++%*15li:-0b10000000000000000000010011010010:0:15: ++%15li:-2147483649:1:11:-2147483648: ++%*15li:-2147483649:0:11: ++%15li:-0X80000001:1:11:-2147483648: ++%*15li:-0X80000001:0:11: ++%15li:-0x80000001:1:11:-2147483648: ++%*15li:-0x80000001:0:11: ++%15li:-020000000001:1:13:-2147483648: ++%*15li:-020000000001:0:13: ++%15li:-0B10000000000000000000000000000001:1:15:-2048: ++%*15li:-0B10000000000000000000000000000001:0:15: ++%15li:-0b10000000000000000000000000000001:1:15:-2048: ++%*15li:-0b10000000000000000000000000000001:0:15: ++%15li:-2147483648:1:11:-2147483648: ++%*15li:-2147483648:0:11: ++%15li:-0X80000000:1:11:-2147483648: ++%*15li:-0X80000000:0:11: ++%15li:-0x80000000:1:11:-2147483648: ++%*15li:-0x80000000:0:11: ++%15li:-020000000000:1:13:-2147483648: ++%*15li:-020000000000:0:13: ++%15li:-0B10000000000000000000000000000000:1:15:-2048: ++%*15li:-0B10000000000000000000000000000000:0:15: ++%15li:-0b10000000000000000000000000000000:1:15:-2048: ++%*15li:-0b10000000000000000000000000000000:0:15: ++%15li:-123:1:4:-123: ++%*15li:-123:0:4: ++%15li:-0X7b:1:5:-123: ++%*15li:-0X7b:0:5: ++%15li:-0x7B:1:5:-123: ++%*15li:-0x7B:0:5: ++%15li:-0173:1:5:-123: ++%*15li:-0173:0:5: ++%15li:-0B1111011:1:10:-123: ++%*15li:-0B1111011:0:10: ++%15li:-0b1111011:1:10:-123: ++%*15li:-0b1111011:0:10: ++%15li:-1:1:2:-1: ++%*15li:-1:0:2: ++%15li:-0X1:1:4:-1: ++%*15li:-0X1:0:4: ++%15li:-0x1:1:4:-1: ++%*15li:-0x1:0:4: ++%15li:-01:1:3:-1: ++%*15li:-01:0:3: ++%15li:-0B1:1:4:-1: ++%*15li:-0B1:0:4: ++%15li:-0b1:1:4:-1: ++%*15li:-0b1:0:4: ++%15li:-0:1:2:0: ++%*15li:-0:0:2: ++%15li:-0X0:1:4:0: ++%*15li:-0X0:0:4: ++%15li:-0x0:1:4:0: ++%*15li:-0x0:0:4: ++%15li:-00:1:3:0: ++%*15li:-00:0:3: ++%15li:-0B0:1:4:0: ++%*15li:-0B0:0:4: ++%15li:-0b0:1:4:0: ++%*15li:-0b0:0:4: ++%15li:0:1:1:0: ++%*15li:0:0:1: ++%15li:0X0:1:3:0: ++%*15li:0X0:0:3: ++%15li:0x0:1:3:0: ++%*15li:0x0:0:3: ++%15li:00:1:2:0: ++%*15li:00:0:2: ++%15li:0B0:1:3:0: ++%*15li:0B0:0:3: ++%15li:0b0:1:3:0: ++%*15li:0b0:0:3: ++%15li:1:1:1:1: ++%*15li:1:0:1: ++%15li:0X1:1:3:1: ++%*15li:0X1:0:3: ++%15li:0x1:1:3:1: ++%*15li:0x1:0:3: ++%15li:01:1:2:1: ++%*15li:01:0:2: ++%15li:0B1:1:3:1: ++%*15li:0B1:0:3: ++%15li:0b1:1:3:1: ++%*15li:0b1:0:3: ++%15li:42:1:2:42: ++%*15li:42:0:2: ++%15li:0X2a:1:4:42: ++%*15li:0X2a:0:4: ++%15li:0x2A:1:4:42: ++%*15li:0x2A:0:4: ++%15li:052:1:3:42: ++%*15li:052:0:3: ++%15li:0B101010:1:8:42: ++%*15li:0B101010:0:8: ++%15li:0b101010:1:8:42: ++%*15li:0b101010:0:8: ++%15li:2147483647:1:10:2147483647: ++%*15li:2147483647:0:10: ++%15li:0X7fffffff:1:10:2147483647: ++%*15li:0X7fffffff:0:10: ++%15li:0x7FFFFFFF:1:10:2147483647: ++%*15li:0x7FFFFFFF:0:10: ++%15li:017777777777:1:12:2147483647: ++%*15li:017777777777:0:12: ++%15li:0B1111111111111111111111111111111:1:15:8191: ++%*15li:0B1111111111111111111111111111111:0:15: ++%15li:0b1111111111111111111111111111111:1:15:8191: ++%*15li:0b1111111111111111111111111111111:0:15: ++%15li:2147483648:1:10:2147483647: ++%*15li:2147483648:0:10: ++%15li:0X80000000:1:10:2147483647: ++%*15li:0X80000000:0:10: ++%15li:0x80000000:1:10:2147483647: ++%*15li:0x80000000:0:10: ++%15li:020000000000:1:12:2147483647: ++%*15li:020000000000:0:12: ++%15li:0B10000000000000000000000000000000:1:15:4096: ++%*15li:0B10000000000000000000000000000000:0:15: ++%15li:0b10000000000000000000000000000000:1:15:4096: ++%*15li:0b10000000000000000000000000000000:0:15: ++%15li:2147487889:1:10:2147483647: ++%*15li:2147487889:0:10: ++%15li:0X80001091:1:10:2147483647: ++%*15li:0X80001091:0:10: ++%15li:0x80001091:1:10:2147483647: ++%*15li:0x80001091:0:10: ++%15li:020000010221:1:12:2147483647: ++%*15li:020000010221:0:12: ++%15li:0B10000000000000000001000010010001:1:15:4096: ++%*15li:0B10000000000000000001000010010001:0:15: ++%15li:0b10000000000000000001000010010001:1:15:4096: ++%*15li:0b10000000000000000001000010010001:0:15: ++%15li:+0:1:2:0: ++%*15li:+0:0:2: ++%15li:+0X0:1:4:0: ++%*15li:+0X0:0:4: ++%15li:+0x0:1:4:0: ++%*15li:+0x0:0:4: ++%15li:+00:1:3:0: ++%*15li:+00:0:3: ++%15li:+0B0:1:4:0: ++%*15li:+0B0:0:4: ++%15li:+0b0:1:4:0: ++%*15li:+0b0:0:4: ++%15li:+1:1:2:1: ++%*15li:+1:0:2: ++%15li:+0X1:1:4:1: ++%*15li:+0X1:0:4: ++%15li:+0x1:1:4:1: ++%*15li:+0x1:0:4: ++%15li:+01:1:3:1: ++%*15li:+01:0:3: ++%15li:+0B1:1:4:1: ++%*15li:+0B1:0:4: ++%15li:+0b1:1:4:1: ++%*15li:+0b1:0:4: ++%15li:+42:1:3:42: ++%*15li:+42:0:3: ++%15li:+0X2a:1:5:42: ++%*15li:+0X2a:0:5: ++%15li:+0x2A:1:5:42: ++%*15li:+0x2A:0:5: ++%15li:+052:1:4:42: ++%*15li:+052:0:4: ++%15li:+0B101010:1:9:42: ++%*15li:+0B101010:0:9: ++%15li:+0b101010:1:9:42: ++%*15li:+0b101010:0:9: ++%15li:+2147483647:1:11:2147483647: ++%*15li:+2147483647:0:11: ++%15li:+0X7fffffff:1:11:2147483647: ++%*15li:+0X7fffffff:0:11: ++%15li:+0x7FFFFFFF:1:11:2147483647: ++%*15li:+0x7FFFFFFF:0:11: ++%15li:+017777777777:1:13:2147483647: ++%*15li:+017777777777:0:13: ++%15li:+0B1111111111111111111111111111111:1:15:4095: ++%*15li:+0B1111111111111111111111111111111:0:15: ++%15li:+0b1111111111111111111111111111111:1:15:4095: ++%*15li:+0b1111111111111111111111111111111:0:15: ++%15li:+2147483648:1:11:2147483647: ++%*15li:+2147483648:0:11: ++%15li:+0X80000000:1:11:2147483647: ++%*15li:+0X80000000:0:11: ++%15li:+0x80000000:1:11:2147483647: ++%*15li:+0x80000000:0:11: ++%15li:+020000000000:1:13:2147483647: ++%*15li:+020000000000:0:13: ++%15li:+0B10000000000000000000000000000000:1:15:2048: ++%*15li:+0B10000000000000000000000000000000:0:15: ++%15li:+0b10000000000000000000000000000000:1:15:2048: ++%*15li:+0b10000000000000000000000000000000:0:15: ++%15li:+2147487889:1:11:2147483647: ++%*15li:+2147487889:0:11: ++%15li:+0X80001091:1:11:2147483647: ++%*15li:+0X80001091:0:11: ++%15li:+0x80001091:1:11:2147483647: ++%*15li:+0x80001091:0:11: ++%15li:+020000010221:1:13:2147483647: ++%*15li:+020000010221:0:13: ++%15li:+0B10000000000000000001000010010001:1:15:2048: ++%*15li:+0B10000000000000000001000010010001:0:15: ++%15li:+0b10000000000000000001000010010001:1:15:2048: ++%*15li:+0b10000000000000000001000010010001:0:15: ++%2li: :0:-1: ++%*2li: :0:-1: ++%2li: -2147484882:1:3:-2: ++%*2li: -2147484882:0:3: ++%2li: -0X800004d2:1:3:0: ++%*2li: -0X800004d2:0:3: ++%2li: -0x800004D2:1:3:0: ++%*2li: -0x800004D2:0:3: ++%2li: -020000002322:1:3:0: ++%*2li: -020000002322:0:3: ++%2li: -0B10000000000000000000010011010010:1:3:0: ++%*2li: -0B10000000000000000000010011010010:0:3: ++%2li: -0b10000000000000000000010011010010:1:3:0: ++%*2li: -0b10000000000000000000010011010010:0:3: ++%2li: -2147483649:1:3:-2: ++%*2li: -2147483649:0:3: ++%2li: -0X80000001:1:3:0: ++%*2li: -0X80000001:0:3: ++%2li: -0x80000001:1:3:0: ++%*2li: -0x80000001:0:3: ++%2li: -020000000001:1:3:0: ++%*2li: -020000000001:0:3: ++%2li: -0B10000000000000000000000000000001:1:3:0: ++%*2li: -0B10000000000000000000000000000001:0:3: ++%2li: -0b10000000000000000000000000000001:1:3:0: ++%*2li: -0b10000000000000000000000000000001:0:3: ++%2li: -2147483648:1:3:-2: ++%*2li: -2147483648:0:3: ++%2li: -0X80000000:1:3:0: ++%*2li: -0X80000000:0:3: ++%2li: -0x80000000:1:3:0: ++%*2li: -0x80000000:0:3: ++%2li: -020000000000:1:3:0: ++%*2li: -020000000000:0:3: ++%2li: -0B10000000000000000000000000000000:1:3:0: ++%*2li: -0B10000000000000000000000000000000:0:3: ++%2li: -0b10000000000000000000000000000000:1:3:0: ++%*2li: -0b10000000000000000000000000000000:0:3: ++%2li: -123:1:3:-1: ++%*2li: -123:0:3: ++%2li: -0X7b:1:3:0: ++%*2li: -0X7b:0:3: ++%2li: -0x7B:1:3:0: ++%*2li: -0x7B:0:3: ++%2li: -0173:1:3:0: ++%*2li: -0173:0:3: ++%2li: -0B1111011:1:3:0: ++%*2li: -0B1111011:0:3: ++%2li: -0b1111011:1:3:0: ++%*2li: -0b1111011:0:3: ++%2li: -1:1:3:-1: ++%*2li: -1:0:3: ++%2li: -0X1:1:3:0: ++%*2li: -0X1:0:3: ++%2li: -0x1:1:3:0: ++%*2li: -0x1:0:3: ++%2li: -01:1:3:0: ++%*2li: -01:0:3: ++%2li: -0B1:1:3:0: ++%*2li: -0B1:0:3: ++%2li: -0b1:1:3:0: ++%*2li: -0b1:0:3: ++%2li: -0:1:3:0: ++%*2li: -0:0:3: ++%2li: -0X0:1:3:0: ++%*2li: -0X0:0:3: ++%2li: -0x0:1:3:0: ++%*2li: -0x0:0:3: ++%2li: -00:1:3:0: ++%*2li: -00:0:3: ++%2li: -0B0:1:3:0: ++%*2li: -0B0:0:3: ++%2li: -0b0:1:3:0: ++%*2li: -0b0:0:3: ++%2li: 0:1:2:0: ++%*2li: 0:0:2: ++# BZ12701 %2li: 0X0:0:-1: ++# BZ12701 %*2li: 0X0:0:-1: ++# BZ12701 %2li: 0x0:0:-1: ++# BZ12701 %*2li: 0x0:0:-1: ++%2li: 00:1:3:0: ++%*2li: 00:0:3: ++# BZ12701 %2li: 0B0:0:-1: ++# BZ12701 %*2li: 0B0:0:-1: ++# BZ12701 %2li: 0b0:0:-1: ++# BZ12701 %*2li: 0b0:0:-1: ++%2li: 1:1:2:1: ++%*2li: 1:0:2: ++# BZ12701 %2li: 0X1:0:-1: ++# BZ12701 %*2li: 0X1:0:-1: ++# BZ12701 %2li: 0x1:0:-1: ++# BZ12701 %*2li: 0x1:0:-1: ++%2li: 01:1:3:1: ++%*2li: 01:0:3: ++# BZ12701 %2li: 0B1:0:-1: ++# BZ12701 %*2li: 0B1:0:-1: ++# BZ12701 %2li: 0b1:0:-1: ++# BZ12701 %*2li: 0b1:0:-1: ++%2li: 42:1:3:42: ++%*2li: 42:0:3: ++# BZ12701 %2li: 0X2a:0:-1: ++# BZ12701 %*2li: 0X2a:0:-1: ++# BZ12701 %2li: 0x2A:0:-1: ++# BZ12701 %*2li: 0x2A:0:-1: ++%2li: 052:1:3:5: ++%*2li: 052:0:3: ++# BZ12701 %2li: 0B101010:0:-1: ++# BZ12701 %*2li: 0B101010:0:-1: ++# BZ12701 %2li: 0b101010:0:-1: ++# BZ12701 %*2li: 0b101010:0:-1: ++%2li: 2147483647:1:3:21: ++%*2li: 2147483647:0:3: ++# BZ12701 %2li: 0X7fffffff:0:-1: ++# BZ12701 %*2li: 0X7fffffff:0:-1: ++# BZ12701 %2li: 0x7FFFFFFF:0:-1: ++# BZ12701 %*2li: 0x7FFFFFFF:0:-1: ++%2li: 017777777777:1:3:1: ++%*2li: 017777777777:0:3: ++# BZ12701 %2li: 0B1111111111111111111111111111111:0:-1: ++# BZ12701 %*2li: 0B1111111111111111111111111111111:0:-1: ++# BZ12701 %2li: 0b1111111111111111111111111111111:0:-1: ++# BZ12701 %*2li: 0b1111111111111111111111111111111:0:-1: ++%2li: 2147483648:1:3:21: ++%*2li: 2147483648:0:3: ++# BZ12701 %2li: 0X80000000:0:-1: ++# BZ12701 %*2li: 0X80000000:0:-1: ++# BZ12701 %2li: 0x80000000:0:-1: ++# BZ12701 %*2li: 0x80000000:0:-1: ++%2li: 020000000000:1:3:2: ++%*2li: 020000000000:0:3: ++# BZ12701 %2li: 0B10000000000000000000000000000000:0:-1: ++# BZ12701 %*2li: 0B10000000000000000000000000000000:0:-1: ++# BZ12701 %2li: 0b10000000000000000000000000000000:0:-1: ++# BZ12701 %*2li: 0b10000000000000000000000000000000:0:-1: ++%2li: 2147487889:1:3:21: ++%*2li: 2147487889:0:3: ++# BZ12701 %2li: 0X80001091:0:-1: ++# BZ12701 %*2li: 0X80001091:0:-1: ++# BZ12701 %2li: 0x80001091:0:-1: ++# BZ12701 %*2li: 0x80001091:0:-1: ++%2li: 020000010221:1:3:2: ++%*2li: 020000010221:0:3: ++# BZ12701 %2li: 0B10000000000000000001000010010001:0:-1: ++# BZ12701 %*2li: 0B10000000000000000001000010010001:0:-1: ++# BZ12701 %2li: 0b10000000000000000001000010010001:0:-1: ++# BZ12701 %*2li: 0b10000000000000000001000010010001:0:-1: ++%2li: +0:1:3:0: ++%*2li: +0:0:3: ++%2li: +0X0:1:3:0: ++%*2li: +0X0:0:3: ++%2li: +0x0:1:3:0: ++%*2li: +0x0:0:3: ++%2li: +00:1:3:0: ++%*2li: +00:0:3: ++%2li: +0B0:1:3:0: ++%*2li: +0B0:0:3: ++%2li: +0b0:1:3:0: ++%*2li: +0b0:0:3: ++%2li: +1:1:3:1: ++%*2li: +1:0:3: ++%2li: +0X1:1:3:0: ++%*2li: +0X1:0:3: ++%2li: +0x1:1:3:0: ++%*2li: +0x1:0:3: ++%2li: +01:1:3:0: ++%*2li: +01:0:3: ++%2li: +0B1:1:3:0: ++%*2li: +0B1:0:3: ++%2li: +0b1:1:3:0: ++%*2li: +0b1:0:3: ++%2li: +42:1:3:4: ++%*2li: +42:0:3: ++%2li: +0X2a:1:3:0: ++%*2li: +0X2a:0:3: ++%2li: +0x2A:1:3:0: ++%*2li: +0x2A:0:3: ++%2li: +052:1:3:0: ++%*2li: +052:0:3: ++%2li: +0B101010:1:3:0: ++%*2li: +0B101010:0:3: ++%2li: +0b101010:1:3:0: ++%*2li: +0b101010:0:3: ++%2li: +2147483647:1:3:2: ++%*2li: +2147483647:0:3: ++%2li: +0X7fffffff:1:3:0: ++%*2li: +0X7fffffff:0:3: ++%2li: +0x7FFFFFFF:1:3:0: ++%*2li: +0x7FFFFFFF:0:3: ++%2li: +017777777777:1:3:0: ++%*2li: +017777777777:0:3: ++%2li: +0B1111111111111111111111111111111:1:3:0: ++%*2li: +0B1111111111111111111111111111111:0:3: ++%2li: +0b1111111111111111111111111111111:1:3:0: ++%*2li: +0b1111111111111111111111111111111:0:3: ++%2li: +2147483648:1:3:2: ++%*2li: +2147483648:0:3: ++%2li: +0X80000000:1:3:0: ++%*2li: +0X80000000:0:3: ++%2li: +0x80000000:1:3:0: ++%*2li: +0x80000000:0:3: ++%2li: +020000000000:1:3:0: ++%*2li: +020000000000:0:3: ++%2li: +0B10000000000000000000000000000000:1:3:0: ++%*2li: +0B10000000000000000000000000000000:0:3: ++%2li: +0b10000000000000000000000000000000:1:3:0: ++%*2li: +0b10000000000000000000000000000000:0:3: ++%2li: +2147487889:1:3:2: ++%*2li: +2147487889:0:3: ++%2li: +0X80001091:1:3:0: ++%*2li: +0X80001091:0:3: ++%2li: +0x80001091:1:3:0: ++%*2li: +0x80001091:0:3: ++%2li: +020000010221:1:3:0: ++%*2li: +020000010221:0:3: ++%2li: +0B10000000000000000001000010010001:1:3:0: ++%*2li: +0B10000000000000000001000010010001:0:3: ++%2li: +0b10000000000000000001000010010001:1:3:0: ++%*2li: +0b10000000000000000001000010010001:0:3: ++%15li: :0:-1: ++%*15li: :0:-1: ++%15li: -2147484882:1:12:-2147483648: ++%*15li: -2147484882:0:12: ++%15li: -0X800004d2:1:12:-2147483648: ++%*15li: -0X800004d2:0:12: ++%15li: -0x800004D2:1:12:-2147483648: ++%*15li: -0x800004D2:0:12: ++%15li: -020000002322:1:14:-2147483648: ++%*15li: -020000002322:0:14: ++%15li: -0B10000000000000000000010011010010:1:16:-2048: ++%*15li: -0B10000000000000000000010011010010:0:16: ++%15li: -0b10000000000000000000010011010010:1:16:-2048: ++%*15li: -0b10000000000000000000010011010010:0:16: ++%15li: -2147483649:1:12:-2147483648: ++%*15li: -2147483649:0:12: ++%15li: -0X80000001:1:12:-2147483648: ++%*15li: -0X80000001:0:12: ++%15li: -0x80000001:1:12:-2147483648: ++%*15li: -0x80000001:0:12: ++%15li: -020000000001:1:14:-2147483648: ++%*15li: -020000000001:0:14: ++%15li: -0B10000000000000000000000000000001:1:16:-2048: ++%*15li: -0B10000000000000000000000000000001:0:16: ++%15li: -0b10000000000000000000000000000001:1:16:-2048: ++%*15li: -0b10000000000000000000000000000001:0:16: ++%15li: -2147483648:1:12:-2147483648: ++%*15li: -2147483648:0:12: ++%15li: -0X80000000:1:12:-2147483648: ++%*15li: -0X80000000:0:12: ++%15li: -0x80000000:1:12:-2147483648: ++%*15li: -0x80000000:0:12: ++%15li: -020000000000:1:14:-2147483648: ++%*15li: -020000000000:0:14: ++%15li: -0B10000000000000000000000000000000:1:16:-2048: ++%*15li: -0B10000000000000000000000000000000:0:16: ++%15li: -0b10000000000000000000000000000000:1:16:-2048: ++%*15li: -0b10000000000000000000000000000000:0:16: ++%15li: -123:1:5:-123: ++%*15li: -123:0:5: ++%15li: -0X7b:1:6:-123: ++%*15li: -0X7b:0:6: ++%15li: -0x7B:1:6:-123: ++%*15li: -0x7B:0:6: ++%15li: -0173:1:6:-123: ++%*15li: -0173:0:6: ++%15li: -0B1111011:1:11:-123: ++%*15li: -0B1111011:0:11: ++%15li: -0b1111011:1:11:-123: ++%*15li: -0b1111011:0:11: ++%15li: -1:1:3:-1: ++%*15li: -1:0:3: ++%15li: -0X1:1:5:-1: ++%*15li: -0X1:0:5: ++%15li: -0x1:1:5:-1: ++%*15li: -0x1:0:5: ++%15li: -01:1:4:-1: ++%*15li: -01:0:4: ++%15li: -0B1:1:5:-1: ++%*15li: -0B1:0:5: ++%15li: -0b1:1:5:-1: ++%*15li: -0b1:0:5: ++%15li: -0:1:3:0: ++%*15li: -0:0:3: ++%15li: -0X0:1:5:0: ++%*15li: -0X0:0:5: ++%15li: -0x0:1:5:0: ++%*15li: -0x0:0:5: ++%15li: -00:1:4:0: ++%*15li: -00:0:4: ++%15li: -0B0:1:5:0: ++%*15li: -0B0:0:5: ++%15li: -0b0:1:5:0: ++%*15li: -0b0:0:5: ++%15li: 0:1:2:0: ++%*15li: 0:0:2: ++%15li: 0X0:1:4:0: ++%*15li: 0X0:0:4: ++%15li: 0x0:1:4:0: ++%*15li: 0x0:0:4: ++%15li: 00:1:3:0: ++%*15li: 00:0:3: ++%15li: 0B0:1:4:0: ++%*15li: 0B0:0:4: ++%15li: 0b0:1:4:0: ++%*15li: 0b0:0:4: ++%15li: 1:1:2:1: ++%*15li: 1:0:2: ++%15li: 0X1:1:4:1: ++%*15li: 0X1:0:4: ++%15li: 0x1:1:4:1: ++%*15li: 0x1:0:4: ++%15li: 01:1:3:1: ++%*15li: 01:0:3: ++%15li: 0B1:1:4:1: ++%*15li: 0B1:0:4: ++%15li: 0b1:1:4:1: ++%*15li: 0b1:0:4: ++%15li: 42:1:3:42: ++%*15li: 42:0:3: ++%15li: 0X2a:1:5:42: ++%*15li: 0X2a:0:5: ++%15li: 0x2A:1:5:42: ++%*15li: 0x2A:0:5: ++%15li: 052:1:4:42: ++%*15li: 052:0:4: ++%15li: 0B101010:1:9:42: ++%*15li: 0B101010:0:9: ++%15li: 0b101010:1:9:42: ++%*15li: 0b101010:0:9: ++%15li: 2147483647:1:11:2147483647: ++%*15li: 2147483647:0:11: ++%15li: 0X7fffffff:1:11:2147483647: ++%*15li: 0X7fffffff:0:11: ++%15li: 0x7FFFFFFF:1:11:2147483647: ++%*15li: 0x7FFFFFFF:0:11: ++%15li: 017777777777:1:13:2147483647: ++%*15li: 017777777777:0:13: ++%15li: 0B1111111111111111111111111111111:1:16:8191: ++%*15li: 0B1111111111111111111111111111111:0:16: ++%15li: 0b1111111111111111111111111111111:1:16:8191: ++%*15li: 0b1111111111111111111111111111111:0:16: ++%15li: 2147483648:1:11:2147483647: ++%*15li: 2147483648:0:11: ++%15li: 0X80000000:1:11:2147483647: ++%*15li: 0X80000000:0:11: ++%15li: 0x80000000:1:11:2147483647: ++%*15li: 0x80000000:0:11: ++%15li: 020000000000:1:13:2147483647: ++%*15li: 020000000000:0:13: ++%15li: 0B10000000000000000000000000000000:1:16:4096: ++%*15li: 0B10000000000000000000000000000000:0:16: ++%15li: 0b10000000000000000000000000000000:1:16:4096: ++%*15li: 0b10000000000000000000000000000000:0:16: ++%15li: 2147487889:1:11:2147483647: ++%*15li: 2147487889:0:11: ++%15li: 0X80001091:1:11:2147483647: ++%*15li: 0X80001091:0:11: ++%15li: 0x80001091:1:11:2147483647: ++%*15li: 0x80001091:0:11: ++%15li: 020000010221:1:13:2147483647: ++%*15li: 020000010221:0:13: ++%15li: 0B10000000000000000001000010010001:1:16:4096: ++%*15li: 0B10000000000000000001000010010001:0:16: ++%15li: 0b10000000000000000001000010010001:1:16:4096: ++%*15li: 0b10000000000000000001000010010001:0:16: ++%15li: +0:1:3:0: ++%*15li: +0:0:3: ++%15li: +0X0:1:5:0: ++%*15li: +0X0:0:5: ++%15li: +0x0:1:5:0: ++%*15li: +0x0:0:5: ++%15li: +00:1:4:0: ++%*15li: +00:0:4: ++%15li: +0B0:1:5:0: ++%*15li: +0B0:0:5: ++%15li: +0b0:1:5:0: ++%*15li: +0b0:0:5: ++%15li: +1:1:3:1: ++%*15li: +1:0:3: ++%15li: +0X1:1:5:1: ++%*15li: +0X1:0:5: ++%15li: +0x1:1:5:1: ++%*15li: +0x1:0:5: ++%15li: +01:1:4:1: ++%*15li: +01:0:4: ++%15li: +0B1:1:5:1: ++%*15li: +0B1:0:5: ++%15li: +0b1:1:5:1: ++%*15li: +0b1:0:5: ++%15li: +42:1:4:42: ++%*15li: +42:0:4: ++%15li: +0X2a:1:6:42: ++%*15li: +0X2a:0:6: ++%15li: +0x2A:1:6:42: ++%*15li: +0x2A:0:6: ++%15li: +052:1:5:42: ++%*15li: +052:0:5: ++%15li: +0B101010:1:10:42: ++%*15li: +0B101010:0:10: ++%15li: +0b101010:1:10:42: ++%*15li: +0b101010:0:10: ++%15li: +2147483647:1:12:2147483647: ++%*15li: +2147483647:0:12: ++%15li: +0X7fffffff:1:12:2147483647: ++%*15li: +0X7fffffff:0:12: ++%15li: +0x7FFFFFFF:1:12:2147483647: ++%*15li: +0x7FFFFFFF:0:12: ++%15li: +017777777777:1:14:2147483647: ++%*15li: +017777777777:0:14: ++%15li: +0B1111111111111111111111111111111:1:16:4095: ++%*15li: +0B1111111111111111111111111111111:0:16: ++%15li: +0b1111111111111111111111111111111:1:16:4095: ++%*15li: +0b1111111111111111111111111111111:0:16: ++%15li: +2147483648:1:12:2147483647: ++%*15li: +2147483648:0:12: ++%15li: +0X80000000:1:12:2147483647: ++%*15li: +0X80000000:0:12: ++%15li: +0x80000000:1:12:2147483647: ++%*15li: +0x80000000:0:12: ++%15li: +020000000000:1:14:2147483647: ++%*15li: +020000000000:0:14: ++%15li: +0B10000000000000000000000000000000:1:16:2048: ++%*15li: +0B10000000000000000000000000000000:0:16: ++%15li: +0b10000000000000000000000000000000:1:16:2048: ++%*15li: +0b10000000000000000000000000000000:0:16: ++%15li: +2147487889:1:12:2147483647: ++%*15li: +2147487889:0:12: ++%15li: +0X80001091:1:12:2147483647: ++%*15li: +0X80001091:0:12: ++%15li: +0x80001091:1:12:2147483647: ++%*15li: +0x80001091:0:12: ++%15li: +020000010221:1:14:2147483647: ++%*15li: +020000010221:0:14: ++%15li: +0B10000000000000000001000010010001:1:16:2048: ++%*15li: +0B10000000000000000001000010010001:0:16: ++%15li: +0b10000000000000000001000010010001:1:16:2048: ++%*15li: +0b10000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-uint-b.input b/sysdeps/wordsize-32/tst-scanf-format-uint-b.input +new file mode 100644 +index 0000000000000000..34aa451bfc732b2f +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-uint-b.input +@@ -0,0 +1,644 @@ ++%b::0:-1: ++%*b::0:-1: ++%b:-1111011:1:8:4294967173: ++%*b:-1111011:0:8: ++%b:-0B1111011:1:10:4294967173: ++%*b:-0B1111011:0:10: ++%b:-0b1111011:1:10:4294967173: ++%*b:-0b1111011:0:10: ++%b:-1:1:2:4294967295: ++%*b:-1:0:2: ++%b:-0B1:1:4:4294967295: ++%*b:-0B1:0:4: ++%b:-0b1:1:4:4294967295: ++%*b:-0b1:0:4: ++%b:-0:1:2:0: ++%*b:-0:0:2: ++%b:-0B0:1:4:0: ++%*b:-0B0:0:4: ++%b:-0b0:1:4:0: ++%*b:-0b0:0:4: ++%b:0:1:1:0: ++%*b:0:0:1: ++%b:0B0:1:3:0: ++%*b:0B0:0:3: ++%b:0b0:1:3:0: ++%*b:0b0:0:3: ++%b:1:1:1:1: ++%*b:1:0:1: ++%b:0B1:1:3:1: ++%*b:0B1:0:3: ++%b:0b1:1:3:1: ++%*b:0b1:0:3: ++%b:101010:1:6:42: ++%*b:101010:0:6: ++%b:0B101010:1:8:42: ++%*b:0B101010:0:8: ++%b:0b101010:1:8:42: ++%*b:0b101010:0:8: ++%b:11111111111111111111111111111111:1:32:4294967295: ++%*b:11111111111111111111111111111111:0:32: ++%b:0B11111111111111111111111111111111:1:34:4294967295: ++%*b:0B11111111111111111111111111111111:0:34: ++%b:0b11111111111111111111111111111111:1:34:4294967295: ++%*b:0b11111111111111111111111111111111:0:34: ++%b:100000000000000000000000000000000:1:33:4294967295: ++%*b:100000000000000000000000000000000:0:33: ++%b:0B100000000000000000000000000000000:1:35:4294967295: ++%*b:0B100000000000000000000000000000000:0:35: ++%b:0b100000000000000000000000000000000:1:35:4294967295: ++%*b:0b100000000000000000000000000000000:0:35: ++%b:100000000000000000001000010010001:1:33:4294967295: ++%*b:100000000000000000001000010010001:0:33: ++%b:0B100000000000000000001000010010001:1:35:4294967295: ++%*b:0B100000000000000000001000010010001:0:35: ++%b:0b100000000000000000001000010010001:1:35:4294967295: ++%*b:0b100000000000000000001000010010001:0:35: ++%b:+0:1:2:0: ++%*b:+0:0:2: ++%b:+0B0:1:4:0: ++%*b:+0B0:0:4: ++%b:+0b0:1:4:0: ++%*b:+0b0:0:4: ++%b:+1:1:2:1: ++%*b:+1:0:2: ++%b:+0B1:1:4:1: ++%*b:+0B1:0:4: ++%b:+0b1:1:4:1: ++%*b:+0b1:0:4: ++%b:+101010:1:7:42: ++%*b:+101010:0:7: ++%b:+0B101010:1:9:42: ++%*b:+0B101010:0:9: ++%b:+0b101010:1:9:42: ++%*b:+0b101010:0:9: ++%b:+11111111111111111111111111111111:1:33:4294967295: ++%*b:+11111111111111111111111111111111:0:33: ++%b:+0B11111111111111111111111111111111:1:35:4294967295: ++%*b:+0B11111111111111111111111111111111:0:35: ++%b:+0b11111111111111111111111111111111:1:35:4294967295: ++%*b:+0b11111111111111111111111111111111:0:35: ++%b:+100000000000000000000000000000000:1:34:4294967295: ++%*b:+100000000000000000000000000000000:0:34: ++%b:+0B100000000000000000000000000000000:1:36:4294967295: ++%*b:+0B100000000000000000000000000000000:0:36: ++%b:+0b100000000000000000000000000000000:1:36:4294967295: ++%*b:+0b100000000000000000000000000000000:0:36: ++%b:+100000000000000000001000010010001:1:34:4294967295: ++%*b:+100000000000000000001000010010001:0:34: ++%b:+0B100000000000000000001000010010001:1:36:4294967295: ++%*b:+0B100000000000000000001000010010001:0:36: ++%b:+0b100000000000000000001000010010001:1:36:4294967295: ++%*b:+0b100000000000000000001000010010001:0:36: ++%1b::0:-1: ++%*1b::0:-1: ++%1b:-1111011:0:-1: ++%*1b:-1111011:0:-1: ++%1b:-0B1111011:0:-1: ++%*1b:-0B1111011:0:-1: ++%1b:-0b1111011:0:-1: ++%*1b:-0b1111011:0:-1: ++%1b:-1:0:-1: ++%*1b:-1:0:-1: ++%1b:-0B1:0:-1: ++%*1b:-0B1:0:-1: ++%1b:-0b1:0:-1: ++%*1b:-0b1:0:-1: ++%1b:-0:0:-1: ++%*1b:-0:0:-1: ++%1b:-0B0:0:-1: ++%*1b:-0B0:0:-1: ++%1b:-0b0:0:-1: ++%*1b:-0b0:0:-1: ++%1b:0:1:1:0: ++%*1b:0:0:1: ++%1b:0B0:1:1:0: ++%*1b:0B0:0:1: ++%1b:0b0:1:1:0: ++%*1b:0b0:0:1: ++%1b:1:1:1:1: ++%*1b:1:0:1: ++%1b:0B1:1:1:0: ++%*1b:0B1:0:1: ++%1b:0b1:1:1:0: ++%*1b:0b1:0:1: ++%1b:101010:1:1:1: ++%*1b:101010:0:1: ++%1b:0B101010:1:1:0: ++%*1b:0B101010:0:1: ++%1b:0b101010:1:1:0: ++%*1b:0b101010:0:1: ++%1b:11111111111111111111111111111111:1:1:1: ++%*1b:11111111111111111111111111111111:0:1: ++%1b:0B11111111111111111111111111111111:1:1:0: ++%*1b:0B11111111111111111111111111111111:0:1: ++%1b:0b11111111111111111111111111111111:1:1:0: ++%*1b:0b11111111111111111111111111111111:0:1: ++%1b:100000000000000000000000000000000:1:1:1: ++%*1b:100000000000000000000000000000000:0:1: ++%1b:0B100000000000000000000000000000000:1:1:0: ++%*1b:0B100000000000000000000000000000000:0:1: ++%1b:0b100000000000000000000000000000000:1:1:0: ++%*1b:0b100000000000000000000000000000000:0:1: ++%1b:100000000000000000001000010010001:1:1:1: ++%*1b:100000000000000000001000010010001:0:1: ++%1b:0B100000000000000000001000010010001:1:1:0: ++%*1b:0B100000000000000000001000010010001:0:1: ++%1b:0b100000000000000000001000010010001:1:1:0: ++%*1b:0b100000000000000000001000010010001:0:1: ++%1b:+0:0:-1: ++%*1b:+0:0:-1: ++%1b:+0B0:0:-1: ++%*1b:+0B0:0:-1: ++%1b:+0b0:0:-1: ++%*1b:+0b0:0:-1: ++%1b:+1:0:-1: ++%*1b:+1:0:-1: ++%1b:+0B1:0:-1: ++%*1b:+0B1:0:-1: ++%1b:+0b1:0:-1: ++%*1b:+0b1:0:-1: ++%1b:+101010:0:-1: ++%*1b:+101010:0:-1: ++%1b:+0B101010:0:-1: ++%*1b:+0B101010:0:-1: ++%1b:+0b101010:0:-1: ++%*1b:+0b101010:0:-1: ++%1b:+11111111111111111111111111111111:0:-1: ++%*1b:+11111111111111111111111111111111:0:-1: ++%1b:+0B11111111111111111111111111111111:0:-1: ++%*1b:+0B11111111111111111111111111111111:0:-1: ++%1b:+0b11111111111111111111111111111111:0:-1: ++%*1b:+0b11111111111111111111111111111111:0:-1: ++%1b:+100000000000000000000000000000000:0:-1: ++%*1b:+100000000000000000000000000000000:0:-1: ++%1b:+0B100000000000000000000000000000000:0:-1: ++%*1b:+0B100000000000000000000000000000000:0:-1: ++%1b:+0b100000000000000000000000000000000:0:-1: ++%*1b:+0b100000000000000000000000000000000:0:-1: ++%1b:+100000000000000000001000010010001:0:-1: ++%*1b:+100000000000000000001000010010001:0:-1: ++%1b:+0B100000000000000000001000010010001:0:-1: ++%*1b:+0B100000000000000000001000010010001:0:-1: ++%1b:+0b100000000000000000001000010010001:0:-1: ++%*1b:+0b100000000000000000001000010010001:0:-1: ++%2b::0:-1: ++%*2b::0:-1: ++%2b:-1111011:1:2:4294967295: ++%*2b:-1111011:0:2: ++%2b:-0B1111011:1:2:0: ++%*2b:-0B1111011:0:2: ++%2b:-0b1111011:1:2:0: ++%*2b:-0b1111011:0:2: ++%2b:-1:1:2:4294967295: ++%*2b:-1:0:2: ++%2b:-0B1:1:2:0: ++%*2b:-0B1:0:2: ++%2b:-0b1:1:2:0: ++%*2b:-0b1:0:2: ++%2b:-0:1:2:0: ++%*2b:-0:0:2: ++%2b:-0B0:1:2:0: ++%*2b:-0B0:0:2: ++%2b:-0b0:1:2:0: ++%*2b:-0b0:0:2: ++%2b:0:1:1:0: ++%*2b:0:0:1: ++# BZ12701 %2b:0B0:0:-1: ++# BZ12701 %*2b:0B0:0:-1: ++# BZ12701 %2b:0b0:0:-1: ++# BZ12701 %*2b:0b0:0:-1: ++%2b:1:1:1:1: ++%*2b:1:0:1: ++# BZ12701 %2b:0B1:0:-1: ++# BZ12701 %*2b:0B1:0:-1: ++# BZ12701 %2b:0b1:0:-1: ++# BZ12701 %*2b:0b1:0:-1: ++%2b:101010:1:2:2: ++%*2b:101010:0:2: ++# BZ12701 %2b:0B101010:0:-1: ++# BZ12701 %*2b:0B101010:0:-1: ++# BZ12701 %2b:0b101010:0:-1: ++# BZ12701 %*2b:0b101010:0:-1: ++%2b:11111111111111111111111111111111:1:2:3: ++%*2b:11111111111111111111111111111111:0:2: ++# BZ12701 %2b:0B11111111111111111111111111111111:0:-1: ++# BZ12701 %*2b:0B11111111111111111111111111111111:0:-1: ++# BZ12701 %2b:0b11111111111111111111111111111111:0:-1: ++# BZ12701 %*2b:0b11111111111111111111111111111111:0:-1: ++%2b:100000000000000000000000000000000:1:2:2: ++%*2b:100000000000000000000000000000000:0:2: ++# BZ12701 %2b:0B100000000000000000000000000000000:0:-1: ++# BZ12701 %*2b:0B100000000000000000000000000000000:0:-1: ++# BZ12701 %2b:0b100000000000000000000000000000000:0:-1: ++# BZ12701 %*2b:0b100000000000000000000000000000000:0:-1: ++%2b:100000000000000000001000010010001:1:2:2: ++%*2b:100000000000000000001000010010001:0:2: ++# BZ12701 %2b:0B100000000000000000001000010010001:0:-1: ++# BZ12701 %*2b:0B100000000000000000001000010010001:0:-1: ++# BZ12701 %2b:0b100000000000000000001000010010001:0:-1: ++# BZ12701 %*2b:0b100000000000000000001000010010001:0:-1: ++%2b:+0:1:2:0: ++%*2b:+0:0:2: ++%2b:+0B0:1:2:0: ++%*2b:+0B0:0:2: ++%2b:+0b0:1:2:0: ++%*2b:+0b0:0:2: ++%2b:+1:1:2:1: ++%*2b:+1:0:2: ++%2b:+0B1:1:2:0: ++%*2b:+0B1:0:2: ++%2b:+0b1:1:2:0: ++%*2b:+0b1:0:2: ++%2b:+101010:1:2:1: ++%*2b:+101010:0:2: ++%2b:+0B101010:1:2:0: ++%*2b:+0B101010:0:2: ++%2b:+0b101010:1:2:0: ++%*2b:+0b101010:0:2: ++%2b:+11111111111111111111111111111111:1:2:1: ++%*2b:+11111111111111111111111111111111:0:2: ++%2b:+0B11111111111111111111111111111111:1:2:0: ++%*2b:+0B11111111111111111111111111111111:0:2: ++%2b:+0b11111111111111111111111111111111:1:2:0: ++%*2b:+0b11111111111111111111111111111111:0:2: ++%2b:+100000000000000000000000000000000:1:2:1: ++%*2b:+100000000000000000000000000000000:0:2: ++%2b:+0B100000000000000000000000000000000:1:2:0: ++%*2b:+0B100000000000000000000000000000000:0:2: ++%2b:+0b100000000000000000000000000000000:1:2:0: ++%*2b:+0b100000000000000000000000000000000:0:2: ++%2b:+100000000000000000001000010010001:1:2:1: ++%*2b:+100000000000000000001000010010001:0:2: ++%2b:+0B100000000000000000001000010010001:1:2:0: ++%*2b:+0B100000000000000000001000010010001:0:2: ++%2b:+0b100000000000000000001000010010001:1:2:0: ++%*2b:+0b100000000000000000001000010010001:0:2: ++%8b::0:-1: ++%*8b::0:-1: ++%8b:-1111011:1:8:4294967173: ++%*8b:-1111011:0:8: ++%8b:-0B1111011:1:8:4294967266: ++%*8b:-0B1111011:0:8: ++%8b:-0b1111011:1:8:4294967266: ++%*8b:-0b1111011:0:8: ++%8b:-1:1:2:4294967295: ++%*8b:-1:0:2: ++%8b:-0B1:1:4:4294967295: ++%*8b:-0B1:0:4: ++%8b:-0b1:1:4:4294967295: ++%*8b:-0b1:0:4: ++%8b:-0:1:2:0: ++%*8b:-0:0:2: ++%8b:-0B0:1:4:0: ++%*8b:-0B0:0:4: ++%8b:-0b0:1:4:0: ++%*8b:-0b0:0:4: ++%8b:0:1:1:0: ++%*8b:0:0:1: ++%8b:0B0:1:3:0: ++%*8b:0B0:0:3: ++%8b:0b0:1:3:0: ++%*8b:0b0:0:3: ++%8b:1:1:1:1: ++%*8b:1:0:1: ++%8b:0B1:1:3:1: ++%*8b:0B1:0:3: ++%8b:0b1:1:3:1: ++%*8b:0b1:0:3: ++%8b:101010:1:6:42: ++%*8b:101010:0:6: ++%8b:0B101010:1:8:42: ++%*8b:0B101010:0:8: ++%8b:0b101010:1:8:42: ++%*8b:0b101010:0:8: ++%8b:11111111111111111111111111111111:1:8:255: ++%*8b:11111111111111111111111111111111:0:8: ++%8b:0B11111111111111111111111111111111:1:8:63: ++%*8b:0B11111111111111111111111111111111:0:8: ++%8b:0b11111111111111111111111111111111:1:8:63: ++%*8b:0b11111111111111111111111111111111:0:8: ++%8b:100000000000000000000000000000000:1:8:128: ++%*8b:100000000000000000000000000000000:0:8: ++%8b:0B100000000000000000000000000000000:1:8:32: ++%*8b:0B100000000000000000000000000000000:0:8: ++%8b:0b100000000000000000000000000000000:1:8:32: ++%*8b:0b100000000000000000000000000000000:0:8: ++%8b:100000000000000000001000010010001:1:8:128: ++%*8b:100000000000000000001000010010001:0:8: ++%8b:0B100000000000000000001000010010001:1:8:32: ++%*8b:0B100000000000000000001000010010001:0:8: ++%8b:0b100000000000000000001000010010001:1:8:32: ++%*8b:0b100000000000000000001000010010001:0:8: ++%8b:+0:1:2:0: ++%*8b:+0:0:2: ++%8b:+0B0:1:4:0: ++%*8b:+0B0:0:4: ++%8b:+0b0:1:4:0: ++%*8b:+0b0:0:4: ++%8b:+1:1:2:1: ++%*8b:+1:0:2: ++%8b:+0B1:1:4:1: ++%*8b:+0B1:0:4: ++%8b:+0b1:1:4:1: ++%*8b:+0b1:0:4: ++%8b:+101010:1:7:42: ++%*8b:+101010:0:7: ++%8b:+0B101010:1:8:21: ++%*8b:+0B101010:0:8: ++%8b:+0b101010:1:8:21: ++%*8b:+0b101010:0:8: ++%8b:+11111111111111111111111111111111:1:8:127: ++%*8b:+11111111111111111111111111111111:0:8: ++%8b:+0B11111111111111111111111111111111:1:8:31: ++%*8b:+0B11111111111111111111111111111111:0:8: ++%8b:+0b11111111111111111111111111111111:1:8:31: ++%*8b:+0b11111111111111111111111111111111:0:8: ++%8b:+100000000000000000000000000000000:1:8:64: ++%*8b:+100000000000000000000000000000000:0:8: ++%8b:+0B100000000000000000000000000000000:1:8:16: ++%*8b:+0B100000000000000000000000000000000:0:8: ++%8b:+0b100000000000000000000000000000000:1:8:16: ++%*8b:+0b100000000000000000000000000000000:0:8: ++%8b:+100000000000000000001000010010001:1:8:64: ++%*8b:+100000000000000000001000010010001:0:8: ++%8b:+0B100000000000000000001000010010001:1:8:16: ++%*8b:+0B100000000000000000001000010010001:0:8: ++%8b:+0b100000000000000000001000010010001:1:8:16: ++%*8b:+0b100000000000000000001000010010001:0:8: ++%15b::0:-1: ++%*15b::0:-1: ++%15b:-1111011:1:8:4294967173: ++%*15b:-1111011:0:8: ++%15b:-0B1111011:1:10:4294967173: ++%*15b:-0B1111011:0:10: ++%15b:-0b1111011:1:10:4294967173: ++%*15b:-0b1111011:0:10: ++%15b:-1:1:2:4294967295: ++%*15b:-1:0:2: ++%15b:-0B1:1:4:4294967295: ++%*15b:-0B1:0:4: ++%15b:-0b1:1:4:4294967295: ++%*15b:-0b1:0:4: ++%15b:-0:1:2:0: ++%*15b:-0:0:2: ++%15b:-0B0:1:4:0: ++%*15b:-0B0:0:4: ++%15b:-0b0:1:4:0: ++%*15b:-0b0:0:4: ++%15b:0:1:1:0: ++%*15b:0:0:1: ++%15b:0B0:1:3:0: ++%*15b:0B0:0:3: ++%15b:0b0:1:3:0: ++%*15b:0b0:0:3: ++%15b:1:1:1:1: ++%*15b:1:0:1: ++%15b:0B1:1:3:1: ++%*15b:0B1:0:3: ++%15b:0b1:1:3:1: ++%*15b:0b1:0:3: ++%15b:101010:1:6:42: ++%*15b:101010:0:6: ++%15b:0B101010:1:8:42: ++%*15b:0B101010:0:8: ++%15b:0b101010:1:8:42: ++%*15b:0b101010:0:8: ++%15b:11111111111111111111111111111111:1:15:32767: ++%*15b:11111111111111111111111111111111:0:15: ++%15b:0B11111111111111111111111111111111:1:15:8191: ++%*15b:0B11111111111111111111111111111111:0:15: ++%15b:0b11111111111111111111111111111111:1:15:8191: ++%*15b:0b11111111111111111111111111111111:0:15: ++%15b:100000000000000000000000000000000:1:15:16384: ++%*15b:100000000000000000000000000000000:0:15: ++%15b:0B100000000000000000000000000000000:1:15:4096: ++%*15b:0B100000000000000000000000000000000:0:15: ++%15b:0b100000000000000000000000000000000:1:15:4096: ++%*15b:0b100000000000000000000000000000000:0:15: ++%15b:100000000000000000001000010010001:1:15:16384: ++%*15b:100000000000000000001000010010001:0:15: ++%15b:0B100000000000000000001000010010001:1:15:4096: ++%*15b:0B100000000000000000001000010010001:0:15: ++%15b:0b100000000000000000001000010010001:1:15:4096: ++%*15b:0b100000000000000000001000010010001:0:15: ++%15b:+0:1:2:0: ++%*15b:+0:0:2: ++%15b:+0B0:1:4:0: ++%*15b:+0B0:0:4: ++%15b:+0b0:1:4:0: ++%*15b:+0b0:0:4: ++%15b:+1:1:2:1: ++%*15b:+1:0:2: ++%15b:+0B1:1:4:1: ++%*15b:+0B1:0:4: ++%15b:+0b1:1:4:1: ++%*15b:+0b1:0:4: ++%15b:+101010:1:7:42: ++%*15b:+101010:0:7: ++%15b:+0B101010:1:9:42: ++%*15b:+0B101010:0:9: ++%15b:+0b101010:1:9:42: ++%*15b:+0b101010:0:9: ++%15b:+11111111111111111111111111111111:1:15:16383: ++%*15b:+11111111111111111111111111111111:0:15: ++%15b:+0B11111111111111111111111111111111:1:15:4095: ++%*15b:+0B11111111111111111111111111111111:0:15: ++%15b:+0b11111111111111111111111111111111:1:15:4095: ++%*15b:+0b11111111111111111111111111111111:0:15: ++%15b:+100000000000000000000000000000000:1:15:8192: ++%*15b:+100000000000000000000000000000000:0:15: ++%15b:+0B100000000000000000000000000000000:1:15:2048: ++%*15b:+0B100000000000000000000000000000000:0:15: ++%15b:+0b100000000000000000000000000000000:1:15:2048: ++%*15b:+0b100000000000000000000000000000000:0:15: ++%15b:+100000000000000000001000010010001:1:15:8192: ++%*15b:+100000000000000000001000010010001:0:15: ++%15b:+0B100000000000000000001000010010001:1:15:2048: ++%*15b:+0B100000000000000000001000010010001:0:15: ++%15b:+0b100000000000000000001000010010001:1:15:2048: ++%*15b:+0b100000000000000000001000010010001:0:15: ++%2b: :0:-1: ++%*2b: :0:-1: ++%2b: -1111011:1:3:4294967295: ++%*2b: -1111011:0:3: ++%2b: -0B1111011:1:3:0: ++%*2b: -0B1111011:0:3: ++%2b: -0b1111011:1:3:0: ++%*2b: -0b1111011:0:3: ++%2b: -1:1:3:4294967295: ++%*2b: -1:0:3: ++%2b: -0B1:1:3:0: ++%*2b: -0B1:0:3: ++%2b: -0b1:1:3:0: ++%*2b: -0b1:0:3: ++%2b: -0:1:3:0: ++%*2b: -0:0:3: ++%2b: -0B0:1:3:0: ++%*2b: -0B0:0:3: ++%2b: -0b0:1:3:0: ++%*2b: -0b0:0:3: ++%2b: 0:1:2:0: ++%*2b: 0:0:2: ++# BZ12701 %2b: 0B0:0:-1: ++# BZ12701 %*2b: 0B0:0:-1: ++# BZ12701 %2b: 0b0:0:-1: ++# BZ12701 %*2b: 0b0:0:-1: ++%2b: 1:1:2:1: ++%*2b: 1:0:2: ++# BZ12701 %2b: 0B1:0:-1: ++# BZ12701 %*2b: 0B1:0:-1: ++# BZ12701 %2b: 0b1:0:-1: ++# BZ12701 %*2b: 0b1:0:-1: ++%2b: 101010:1:3:2: ++%*2b: 101010:0:3: ++# BZ12701 %2b: 0B101010:0:-1: ++# BZ12701 %*2b: 0B101010:0:-1: ++# BZ12701 %2b: 0b101010:0:-1: ++# BZ12701 %*2b: 0b101010:0:-1: ++%2b: 11111111111111111111111111111111:1:3:3: ++%*2b: 11111111111111111111111111111111:0:3: ++# BZ12701 %2b: 0B11111111111111111111111111111111:0:-1: ++# BZ12701 %*2b: 0B11111111111111111111111111111111:0:-1: ++# BZ12701 %2b: 0b11111111111111111111111111111111:0:-1: ++# BZ12701 %*2b: 0b11111111111111111111111111111111:0:-1: ++%2b: 100000000000000000000000000000000:1:3:2: ++%*2b: 100000000000000000000000000000000:0:3: ++# BZ12701 %2b: 0B100000000000000000000000000000000:0:-1: ++# BZ12701 %*2b: 0B100000000000000000000000000000000:0:-1: ++# BZ12701 %2b: 0b100000000000000000000000000000000:0:-1: ++# BZ12701 %*2b: 0b100000000000000000000000000000000:0:-1: ++%2b: 100000000000000000001000010010001:1:3:2: ++%*2b: 100000000000000000001000010010001:0:3: ++# BZ12701 %2b: 0B100000000000000000001000010010001:0:-1: ++# BZ12701 %*2b: 0B100000000000000000001000010010001:0:-1: ++# BZ12701 %2b: 0b100000000000000000001000010010001:0:-1: ++# BZ12701 %*2b: 0b100000000000000000001000010010001:0:-1: ++%2b: +0:1:3:0: ++%*2b: +0:0:3: ++%2b: +0B0:1:3:0: ++%*2b: +0B0:0:3: ++%2b: +0b0:1:3:0: ++%*2b: +0b0:0:3: ++%2b: +1:1:3:1: ++%*2b: +1:0:3: ++%2b: +0B1:1:3:0: ++%*2b: +0B1:0:3: ++%2b: +0b1:1:3:0: ++%*2b: +0b1:0:3: ++%2b: +101010:1:3:1: ++%*2b: +101010:0:3: ++%2b: +0B101010:1:3:0: ++%*2b: +0B101010:0:3: ++%2b: +0b101010:1:3:0: ++%*2b: +0b101010:0:3: ++%2b: +11111111111111111111111111111111:1:3:1: ++%*2b: +11111111111111111111111111111111:0:3: ++%2b: +0B11111111111111111111111111111111:1:3:0: ++%*2b: +0B11111111111111111111111111111111:0:3: ++%2b: +0b11111111111111111111111111111111:1:3:0: ++%*2b: +0b11111111111111111111111111111111:0:3: ++%2b: +100000000000000000000000000000000:1:3:1: ++%*2b: +100000000000000000000000000000000:0:3: ++%2b: +0B100000000000000000000000000000000:1:3:0: ++%*2b: +0B100000000000000000000000000000000:0:3: ++%2b: +0b100000000000000000000000000000000:1:3:0: ++%*2b: +0b100000000000000000000000000000000:0:3: ++%2b: +100000000000000000001000010010001:1:3:1: ++%*2b: +100000000000000000001000010010001:0:3: ++%2b: +0B100000000000000000001000010010001:1:3:0: ++%*2b: +0B100000000000000000001000010010001:0:3: ++%2b: +0b100000000000000000001000010010001:1:3:0: ++%*2b: +0b100000000000000000001000010010001:0:3: ++%15b: :0:-1: ++%*15b: :0:-1: ++%15b: -1111011:1:9:4294967173: ++%*15b: -1111011:0:9: ++%15b: -0B1111011:1:11:4294967173: ++%*15b: -0B1111011:0:11: ++%15b: -0b1111011:1:11:4294967173: ++%*15b: -0b1111011:0:11: ++%15b: -1:1:3:4294967295: ++%*15b: -1:0:3: ++%15b: -0B1:1:5:4294967295: ++%*15b: -0B1:0:5: ++%15b: -0b1:1:5:4294967295: ++%*15b: -0b1:0:5: ++%15b: -0:1:3:0: ++%*15b: -0:0:3: ++%15b: -0B0:1:5:0: ++%*15b: -0B0:0:5: ++%15b: -0b0:1:5:0: ++%*15b: -0b0:0:5: ++%15b: 0:1:2:0: ++%*15b: 0:0:2: ++%15b: 0B0:1:4:0: ++%*15b: 0B0:0:4: ++%15b: 0b0:1:4:0: ++%*15b: 0b0:0:4: ++%15b: 1:1:2:1: ++%*15b: 1:0:2: ++%15b: 0B1:1:4:1: ++%*15b: 0B1:0:4: ++%15b: 0b1:1:4:1: ++%*15b: 0b1:0:4: ++%15b: 101010:1:7:42: ++%*15b: 101010:0:7: ++%15b: 0B101010:1:9:42: ++%*15b: 0B101010:0:9: ++%15b: 0b101010:1:9:42: ++%*15b: 0b101010:0:9: ++%15b: 11111111111111111111111111111111:1:16:32767: ++%*15b: 11111111111111111111111111111111:0:16: ++%15b: 0B11111111111111111111111111111111:1:16:8191: ++%*15b: 0B11111111111111111111111111111111:0:16: ++%15b: 0b11111111111111111111111111111111:1:16:8191: ++%*15b: 0b11111111111111111111111111111111:0:16: ++%15b: 100000000000000000000000000000000:1:16:16384: ++%*15b: 100000000000000000000000000000000:0:16: ++%15b: 0B100000000000000000000000000000000:1:16:4096: ++%*15b: 0B100000000000000000000000000000000:0:16: ++%15b: 0b100000000000000000000000000000000:1:16:4096: ++%*15b: 0b100000000000000000000000000000000:0:16: ++%15b: 100000000000000000001000010010001:1:16:16384: ++%*15b: 100000000000000000001000010010001:0:16: ++%15b: 0B100000000000000000001000010010001:1:16:4096: ++%*15b: 0B100000000000000000001000010010001:0:16: ++%15b: 0b100000000000000000001000010010001:1:16:4096: ++%*15b: 0b100000000000000000001000010010001:0:16: ++%15b: +0:1:3:0: ++%*15b: +0:0:3: ++%15b: +0B0:1:5:0: ++%*15b: +0B0:0:5: ++%15b: +0b0:1:5:0: ++%*15b: +0b0:0:5: ++%15b: +1:1:3:1: ++%*15b: +1:0:3: ++%15b: +0B1:1:5:1: ++%*15b: +0B1:0:5: ++%15b: +0b1:1:5:1: ++%*15b: +0b1:0:5: ++%15b: +101010:1:8:42: ++%*15b: +101010:0:8: ++%15b: +0B101010:1:10:42: ++%*15b: +0B101010:0:10: ++%15b: +0b101010:1:10:42: ++%*15b: +0b101010:0:10: ++%15b: +11111111111111111111111111111111:1:16:16383: ++%*15b: +11111111111111111111111111111111:0:16: ++%15b: +0B11111111111111111111111111111111:1:16:4095: ++%*15b: +0B11111111111111111111111111111111:0:16: ++%15b: +0b11111111111111111111111111111111:1:16:4095: ++%*15b: +0b11111111111111111111111111111111:0:16: ++%15b: +100000000000000000000000000000000:1:16:8192: ++%*15b: +100000000000000000000000000000000:0:16: ++%15b: +0B100000000000000000000000000000000:1:16:2048: ++%*15b: +0B100000000000000000000000000000000:0:16: ++%15b: +0b100000000000000000000000000000000:1:16:2048: ++%*15b: +0b100000000000000000000000000000000:0:16: ++%15b: +100000000000000000001000010010001:1:16:8192: ++%*15b: +100000000000000000001000010010001:0:16: ++%15b: +0B100000000000000000001000010010001:1:16:2048: ++%*15b: +0B100000000000000000001000010010001:0:16: ++%15b: +0b100000000000000000001000010010001:1:16:2048: ++%*15b: +0b100000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-uint-o.input b/sysdeps/wordsize-32/tst-scanf-format-uint-o.input +new file mode 100644 +index 0000000000000000..1762194d535f6a77 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-uint-o.input +@@ -0,0 +1,434 @@ ++%o::0:-1: ++%*o::0:-1: ++%o:-173:1:4:4294967173: ++%*o:-173:0:4: ++%o:-0173:1:5:4294967173: ++%*o:-0173:0:5: ++%o:-1:1:2:4294967295: ++%*o:-1:0:2: ++%o:-01:1:3:4294967295: ++%*o:-01:0:3: ++%o:-0:1:2:0: ++%*o:-0:0:2: ++%o:-00:1:3:0: ++%*o:-00:0:3: ++%o:0:1:1:0: ++%*o:0:0:1: ++%o:00:1:2:0: ++%*o:00:0:2: ++%o:1:1:1:1: ++%*o:1:0:1: ++%o:01:1:2:1: ++%*o:01:0:2: ++%o:52:1:2:42: ++%*o:52:0:2: ++%o:052:1:3:42: ++%*o:052:0:3: ++%o:37777777777:1:11:4294967295: ++%*o:37777777777:0:11: ++%o:037777777777:1:12:4294967295: ++%*o:037777777777:0:12: ++%o:40000000000:1:11:4294967295: ++%*o:40000000000:0:11: ++%o:040000000000:1:12:4294967295: ++%*o:040000000000:0:12: ++%o:40000010221:1:11:4294967295: ++%*o:40000010221:0:11: ++%o:040000010221:1:12:4294967295: ++%*o:040000010221:0:12: ++%o:+0:1:2:0: ++%*o:+0:0:2: ++%o:+00:1:3:0: ++%*o:+00:0:3: ++%o:+1:1:2:1: ++%*o:+1:0:2: ++%o:+01:1:3:1: ++%*o:+01:0:3: ++%o:+52:1:3:42: ++%*o:+52:0:3: ++%o:+052:1:4:42: ++%*o:+052:0:4: ++%o:+37777777777:1:12:4294967295: ++%*o:+37777777777:0:12: ++%o:+037777777777:1:13:4294967295: ++%*o:+037777777777:0:13: ++%o:+40000000000:1:12:4294967295: ++%*o:+40000000000:0:12: ++%o:+040000000000:1:13:4294967295: ++%*o:+040000000000:0:13: ++%o:+40000010221:1:12:4294967295: ++%*o:+40000010221:0:12: ++%o:+040000010221:1:13:4294967295: ++%*o:+040000010221:0:13: ++%1o::0:-1: ++%*1o::0:-1: ++%1o:-173:0:-1: ++%*1o:-173:0:-1: ++%1o:-0173:0:-1: ++%*1o:-0173:0:-1: ++%1o:-1:0:-1: ++%*1o:-1:0:-1: ++%1o:-01:0:-1: ++%*1o:-01:0:-1: ++%1o:-0:0:-1: ++%*1o:-0:0:-1: ++%1o:-00:0:-1: ++%*1o:-00:0:-1: ++%1o:0:1:1:0: ++%*1o:0:0:1: ++%1o:00:1:1:0: ++%*1o:00:0:1: ++%1o:1:1:1:1: ++%*1o:1:0:1: ++%1o:01:1:1:0: ++%*1o:01:0:1: ++%1o:52:1:1:5: ++%*1o:52:0:1: ++%1o:052:1:1:0: ++%*1o:052:0:1: ++%1o:37777777777:1:1:3: ++%*1o:37777777777:0:1: ++%1o:037777777777:1:1:0: ++%*1o:037777777777:0:1: ++%1o:40000000000:1:1:4: ++%*1o:40000000000:0:1: ++%1o:040000000000:1:1:0: ++%*1o:040000000000:0:1: ++%1o:40000010221:1:1:4: ++%*1o:40000010221:0:1: ++%1o:040000010221:1:1:0: ++%*1o:040000010221:0:1: ++%1o:+0:0:-1: ++%*1o:+0:0:-1: ++%1o:+00:0:-1: ++%*1o:+00:0:-1: ++%1o:+1:0:-1: ++%*1o:+1:0:-1: ++%1o:+01:0:-1: ++%*1o:+01:0:-1: ++%1o:+52:0:-1: ++%*1o:+52:0:-1: ++%1o:+052:0:-1: ++%*1o:+052:0:-1: ++%1o:+37777777777:0:-1: ++%*1o:+37777777777:0:-1: ++%1o:+037777777777:0:-1: ++%*1o:+037777777777:0:-1: ++%1o:+40000000000:0:-1: ++%*1o:+40000000000:0:-1: ++%1o:+040000000000:0:-1: ++%*1o:+040000000000:0:-1: ++%1o:+40000010221:0:-1: ++%*1o:+40000010221:0:-1: ++%1o:+040000010221:0:-1: ++%*1o:+040000010221:0:-1: ++%2o::0:-1: ++%*2o::0:-1: ++%2o:-173:1:2:4294967295: ++%*2o:-173:0:2: ++%2o:-0173:1:2:0: ++%*2o:-0173:0:2: ++%2o:-1:1:2:4294967295: ++%*2o:-1:0:2: ++%2o:-01:1:2:0: ++%*2o:-01:0:2: ++%2o:-0:1:2:0: ++%*2o:-0:0:2: ++%2o:-00:1:2:0: ++%*2o:-00:0:2: ++%2o:0:1:1:0: ++%*2o:0:0:1: ++%2o:00:1:2:0: ++%*2o:00:0:2: ++%2o:1:1:1:1: ++%*2o:1:0:1: ++%2o:01:1:2:1: ++%*2o:01:0:2: ++%2o:52:1:2:42: ++%*2o:52:0:2: ++%2o:052:1:2:5: ++%*2o:052:0:2: ++%2o:37777777777:1:2:31: ++%*2o:37777777777:0:2: ++%2o:037777777777:1:2:3: ++%*2o:037777777777:0:2: ++%2o:40000000000:1:2:32: ++%*2o:40000000000:0:2: ++%2o:040000000000:1:2:4: ++%*2o:040000000000:0:2: ++%2o:40000010221:1:2:32: ++%*2o:40000010221:0:2: ++%2o:040000010221:1:2:4: ++%*2o:040000010221:0:2: ++%2o:+0:1:2:0: ++%*2o:+0:0:2: ++%2o:+00:1:2:0: ++%*2o:+00:0:2: ++%2o:+1:1:2:1: ++%*2o:+1:0:2: ++%2o:+01:1:2:0: ++%*2o:+01:0:2: ++%2o:+52:1:2:5: ++%*2o:+52:0:2: ++%2o:+052:1:2:0: ++%*2o:+052:0:2: ++%2o:+37777777777:1:2:3: ++%*2o:+37777777777:0:2: ++%2o:+037777777777:1:2:0: ++%*2o:+037777777777:0:2: ++%2o:+40000000000:1:2:4: ++%*2o:+40000000000:0:2: ++%2o:+040000000000:1:2:0: ++%*2o:+040000000000:0:2: ++%2o:+40000010221:1:2:4: ++%*2o:+40000010221:0:2: ++%2o:+040000010221:1:2:0: ++%*2o:+040000010221:0:2: ++%8o::0:-1: ++%*8o::0:-1: ++%8o:-173:1:4:4294967173: ++%*8o:-173:0:4: ++%8o:-0173:1:5:4294967173: ++%*8o:-0173:0:5: ++%8o:-1:1:2:4294967295: ++%*8o:-1:0:2: ++%8o:-01:1:3:4294967295: ++%*8o:-01:0:3: ++%8o:-0:1:2:0: ++%*8o:-0:0:2: ++%8o:-00:1:3:0: ++%*8o:-00:0:3: ++%8o:0:1:1:0: ++%*8o:0:0:1: ++%8o:00:1:2:0: ++%*8o:00:0:2: ++%8o:1:1:1:1: ++%*8o:1:0:1: ++%8o:01:1:2:1: ++%*8o:01:0:2: ++%8o:52:1:2:42: ++%*8o:52:0:2: ++%8o:052:1:3:42: ++%*8o:052:0:3: ++%8o:37777777777:1:8:8388607: ++%*8o:37777777777:0:8: ++%8o:037777777777:1:8:1048575: ++%*8o:037777777777:0:8: ++%8o:40000000000:1:8:8388608: ++%*8o:40000000000:0:8: ++%8o:040000000000:1:8:1048576: ++%*8o:040000000000:0:8: ++%8o:40000010221:1:8:8388616: ++%*8o:40000010221:0:8: ++%8o:040000010221:1:8:1048577: ++%*8o:040000010221:0:8: ++%8o:+0:1:2:0: ++%*8o:+0:0:2: ++%8o:+00:1:3:0: ++%*8o:+00:0:3: ++%8o:+1:1:2:1: ++%*8o:+1:0:2: ++%8o:+01:1:3:1: ++%*8o:+01:0:3: ++%8o:+52:1:3:42: ++%*8o:+52:0:3: ++%8o:+052:1:4:42: ++%*8o:+052:0:4: ++%8o:+37777777777:1:8:1048575: ++%*8o:+37777777777:0:8: ++%8o:+037777777777:1:8:131071: ++%*8o:+037777777777:0:8: ++%8o:+40000000000:1:8:1048576: ++%*8o:+40000000000:0:8: ++%8o:+040000000000:1:8:131072: ++%*8o:+040000000000:0:8: ++%8o:+40000010221:1:8:1048577: ++%*8o:+40000010221:0:8: ++%8o:+040000010221:1:8:131072: ++%*8o:+040000010221:0:8: ++%15o::0:-1: ++%*15o::0:-1: ++%15o:-173:1:4:4294967173: ++%*15o:-173:0:4: ++%15o:-0173:1:5:4294967173: ++%*15o:-0173:0:5: ++%15o:-1:1:2:4294967295: ++%*15o:-1:0:2: ++%15o:-01:1:3:4294967295: ++%*15o:-01:0:3: ++%15o:-0:1:2:0: ++%*15o:-0:0:2: ++%15o:-00:1:3:0: ++%*15o:-00:0:3: ++%15o:0:1:1:0: ++%*15o:0:0:1: ++%15o:00:1:2:0: ++%*15o:00:0:2: ++%15o:1:1:1:1: ++%*15o:1:0:1: ++%15o:01:1:2:1: ++%*15o:01:0:2: ++%15o:52:1:2:42: ++%*15o:52:0:2: ++%15o:052:1:3:42: ++%*15o:052:0:3: ++%15o:37777777777:1:11:4294967295: ++%*15o:37777777777:0:11: ++%15o:037777777777:1:12:4294967295: ++%*15o:037777777777:0:12: ++%15o:40000000000:1:11:4294967295: ++%*15o:40000000000:0:11: ++%15o:040000000000:1:12:4294967295: ++%*15o:040000000000:0:12: ++%15o:40000010221:1:11:4294967295: ++%*15o:40000010221:0:11: ++%15o:040000010221:1:12:4294967295: ++%*15o:040000010221:0:12: ++%15o:+0:1:2:0: ++%*15o:+0:0:2: ++%15o:+00:1:3:0: ++%*15o:+00:0:3: ++%15o:+1:1:2:1: ++%*15o:+1:0:2: ++%15o:+01:1:3:1: ++%*15o:+01:0:3: ++%15o:+52:1:3:42: ++%*15o:+52:0:3: ++%15o:+052:1:4:42: ++%*15o:+052:0:4: ++%15o:+37777777777:1:12:4294967295: ++%*15o:+37777777777:0:12: ++%15o:+037777777777:1:13:4294967295: ++%*15o:+037777777777:0:13: ++%15o:+40000000000:1:12:4294967295: ++%*15o:+40000000000:0:12: ++%15o:+040000000000:1:13:4294967295: ++%*15o:+040000000000:0:13: ++%15o:+40000010221:1:12:4294967295: ++%*15o:+40000010221:0:12: ++%15o:+040000010221:1:13:4294967295: ++%*15o:+040000010221:0:13: ++%2o: :0:-1: ++%*2o: :0:-1: ++%2o: -173:1:3:4294967295: ++%*2o: -173:0:3: ++%2o: -0173:1:3:0: ++%*2o: -0173:0:3: ++%2o: -1:1:3:4294967295: ++%*2o: -1:0:3: ++%2o: -01:1:3:0: ++%*2o: -01:0:3: ++%2o: -0:1:3:0: ++%*2o: -0:0:3: ++%2o: -00:1:3:0: ++%*2o: -00:0:3: ++%2o: 0:1:2:0: ++%*2o: 0:0:2: ++%2o: 00:1:3:0: ++%*2o: 00:0:3: ++%2o: 1:1:2:1: ++%*2o: 1:0:2: ++%2o: 01:1:3:1: ++%*2o: 01:0:3: ++%2o: 52:1:3:42: ++%*2o: 52:0:3: ++%2o: 052:1:3:5: ++%*2o: 052:0:3: ++%2o: 37777777777:1:3:31: ++%*2o: 37777777777:0:3: ++%2o: 037777777777:1:3:3: ++%*2o: 037777777777:0:3: ++%2o: 40000000000:1:3:32: ++%*2o: 40000000000:0:3: ++%2o: 040000000000:1:3:4: ++%*2o: 040000000000:0:3: ++%2o: 40000010221:1:3:32: ++%*2o: 40000010221:0:3: ++%2o: 040000010221:1:3:4: ++%*2o: 040000010221:0:3: ++%2o: +0:1:3:0: ++%*2o: +0:0:3: ++%2o: +00:1:3:0: ++%*2o: +00:0:3: ++%2o: +1:1:3:1: ++%*2o: +1:0:3: ++%2o: +01:1:3:0: ++%*2o: +01:0:3: ++%2o: +52:1:3:5: ++%*2o: +52:0:3: ++%2o: +052:1:3:0: ++%*2o: +052:0:3: ++%2o: +37777777777:1:3:3: ++%*2o: +37777777777:0:3: ++%2o: +037777777777:1:3:0: ++%*2o: +037777777777:0:3: ++%2o: +40000000000:1:3:4: ++%*2o: +40000000000:0:3: ++%2o: +040000000000:1:3:0: ++%*2o: +040000000000:0:3: ++%2o: +40000010221:1:3:4: ++%*2o: +40000010221:0:3: ++%2o: +040000010221:1:3:0: ++%*2o: +040000010221:0:3: ++%15o: :0:-1: ++%*15o: :0:-1: ++%15o: -173:1:5:4294967173: ++%*15o: -173:0:5: ++%15o: -0173:1:6:4294967173: ++%*15o: -0173:0:6: ++%15o: -1:1:3:4294967295: ++%*15o: -1:0:3: ++%15o: -01:1:4:4294967295: ++%*15o: -01:0:4: ++%15o: -0:1:3:0: ++%*15o: -0:0:3: ++%15o: -00:1:4:0: ++%*15o: -00:0:4: ++%15o: 0:1:2:0: ++%*15o: 0:0:2: ++%15o: 00:1:3:0: ++%*15o: 00:0:3: ++%15o: 1:1:2:1: ++%*15o: 1:0:2: ++%15o: 01:1:3:1: ++%*15o: 01:0:3: ++%15o: 52:1:3:42: ++%*15o: 52:0:3: ++%15o: 052:1:4:42: ++%*15o: 052:0:4: ++%15o: 37777777777:1:12:4294967295: ++%*15o: 37777777777:0:12: ++%15o: 037777777777:1:13:4294967295: ++%*15o: 037777777777:0:13: ++%15o: 40000000000:1:12:4294967295: ++%*15o: 40000000000:0:12: ++%15o: 040000000000:1:13:4294967295: ++%*15o: 040000000000:0:13: ++%15o: 40000010221:1:12:4294967295: ++%*15o: 40000010221:0:12: ++%15o: 040000010221:1:13:4294967295: ++%*15o: 040000010221:0:13: ++%15o: +0:1:3:0: ++%*15o: +0:0:3: ++%15o: +00:1:4:0: ++%*15o: +00:0:4: ++%15o: +1:1:3:1: ++%*15o: +1:0:3: ++%15o: +01:1:4:1: ++%*15o: +01:0:4: ++%15o: +52:1:4:42: ++%*15o: +52:0:4: ++%15o: +052:1:5:42: ++%*15o: +052:0:5: ++%15o: +37777777777:1:13:4294967295: ++%*15o: +37777777777:0:13: ++%15o: +037777777777:1:14:4294967295: ++%*15o: +037777777777:0:14: ++%15o: +40000000000:1:13:4294967295: ++%*15o: +40000000000:0:13: ++%15o: +040000000000:1:14:4294967295: ++%*15o: +040000000000:0:14: ++%15o: +40000010221:1:13:4294967295: ++%*15o: +40000010221:0:13: ++%15o: +040000010221:1:14:4294967295: ++%*15o: +040000010221:0:14: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-uint-u.input b/sysdeps/wordsize-32/tst-scanf-format-uint-u.input +new file mode 100644 +index 0000000000000000..d2e04fd43c24ad28 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-uint-u.input +@@ -0,0 +1,224 @@ ++%u::0:-1: ++%*u::0:-1: ++%u:-123:1:4:4294967173: ++%*u:-123:0:4: ++%u:-1:1:2:4294967295: ++%*u:-1:0:2: ++%u:-0:1:2:0: ++%*u:-0:0:2: ++%u:0:1:1:0: ++%*u:0:0:1: ++%u:1:1:1:1: ++%*u:1:0:1: ++%u:42:1:2:42: ++%*u:42:0:2: ++%u:4294967295:1:10:4294967295: ++%*u:4294967295:0:10: ++%u:4294967296:1:10:4294967295: ++%*u:4294967296:0:10: ++%u:4294971537:1:10:4294967295: ++%*u:4294971537:0:10: ++%u:+0:1:2:0: ++%*u:+0:0:2: ++%u:+1:1:2:1: ++%*u:+1:0:2: ++%u:+42:1:3:42: ++%*u:+42:0:3: ++%u:+4294967295:1:11:4294967295: ++%*u:+4294967295:0:11: ++%u:+4294967296:1:11:4294967295: ++%*u:+4294967296:0:11: ++%u:+4294971537:1:11:4294967295: ++%*u:+4294971537:0:11: ++%1u::0:-1: ++%*1u::0:-1: ++%1u:-123:0:-1: ++%*1u:-123:0:-1: ++%1u:-1:0:-1: ++%*1u:-1:0:-1: ++%1u:-0:0:-1: ++%*1u:-0:0:-1: ++%1u:0:1:1:0: ++%*1u:0:0:1: ++%1u:1:1:1:1: ++%*1u:1:0:1: ++%1u:42:1:1:4: ++%*1u:42:0:1: ++%1u:4294967295:1:1:4: ++%*1u:4294967295:0:1: ++%1u:4294967296:1:1:4: ++%*1u:4294967296:0:1: ++%1u:4294971537:1:1:4: ++%*1u:4294971537:0:1: ++%1u:+0:0:-1: ++%*1u:+0:0:-1: ++%1u:+1:0:-1: ++%*1u:+1:0:-1: ++%1u:+42:0:-1: ++%*1u:+42:0:-1: ++%1u:+4294967295:0:-1: ++%*1u:+4294967295:0:-1: ++%1u:+4294967296:0:-1: ++%*1u:+4294967296:0:-1: ++%1u:+4294971537:0:-1: ++%*1u:+4294971537:0:-1: ++%2u::0:-1: ++%*2u::0:-1: ++%2u:-123:1:2:4294967295: ++%*2u:-123:0:2: ++%2u:-1:1:2:4294967295: ++%*2u:-1:0:2: ++%2u:-0:1:2:0: ++%*2u:-0:0:2: ++%2u:0:1:1:0: ++%*2u:0:0:1: ++%2u:1:1:1:1: ++%*2u:1:0:1: ++%2u:42:1:2:42: ++%*2u:42:0:2: ++%2u:4294967295:1:2:42: ++%*2u:4294967295:0:2: ++%2u:4294967296:1:2:42: ++%*2u:4294967296:0:2: ++%2u:4294971537:1:2:42: ++%*2u:4294971537:0:2: ++%2u:+0:1:2:0: ++%*2u:+0:0:2: ++%2u:+1:1:2:1: ++%*2u:+1:0:2: ++%2u:+42:1:2:4: ++%*2u:+42:0:2: ++%2u:+4294967295:1:2:4: ++%*2u:+4294967295:0:2: ++%2u:+4294967296:1:2:4: ++%*2u:+4294967296:0:2: ++%2u:+4294971537:1:2:4: ++%*2u:+4294971537:0:2: ++%8u::0:-1: ++%*8u::0:-1: ++%8u:-123:1:4:4294967173: ++%*8u:-123:0:4: ++%8u:-1:1:2:4294967295: ++%*8u:-1:0:2: ++%8u:-0:1:2:0: ++%*8u:-0:0:2: ++%8u:0:1:1:0: ++%*8u:0:0:1: ++%8u:1:1:1:1: ++%*8u:1:0:1: ++%8u:42:1:2:42: ++%*8u:42:0:2: ++%8u:4294967295:1:8:42949672: ++%*8u:4294967295:0:8: ++%8u:4294967296:1:8:42949672: ++%*8u:4294967296:0:8: ++%8u:4294971537:1:8:42949715: ++%*8u:4294971537:0:8: ++%8u:+0:1:2:0: ++%*8u:+0:0:2: ++%8u:+1:1:2:1: ++%*8u:+1:0:2: ++%8u:+42:1:3:42: ++%*8u:+42:0:3: ++%8u:+4294967295:1:8:4294967: ++%*8u:+4294967295:0:8: ++%8u:+4294967296:1:8:4294967: ++%*8u:+4294967296:0:8: ++%8u:+4294971537:1:8:4294971: ++%*8u:+4294971537:0:8: ++%15u::0:-1: ++%*15u::0:-1: ++%15u:-123:1:4:4294967173: ++%*15u:-123:0:4: ++%15u:-1:1:2:4294967295: ++%*15u:-1:0:2: ++%15u:-0:1:2:0: ++%*15u:-0:0:2: ++%15u:0:1:1:0: ++%*15u:0:0:1: ++%15u:1:1:1:1: ++%*15u:1:0:1: ++%15u:42:1:2:42: ++%*15u:42:0:2: ++%15u:4294967295:1:10:4294967295: ++%*15u:4294967295:0:10: ++%15u:4294967296:1:10:4294967295: ++%*15u:4294967296:0:10: ++%15u:4294971537:1:10:4294967295: ++%*15u:4294971537:0:10: ++%15u:+0:1:2:0: ++%*15u:+0:0:2: ++%15u:+1:1:2:1: ++%*15u:+1:0:2: ++%15u:+42:1:3:42: ++%*15u:+42:0:3: ++%15u:+4294967295:1:11:4294967295: ++%*15u:+4294967295:0:11: ++%15u:+4294967296:1:11:4294967295: ++%*15u:+4294967296:0:11: ++%15u:+4294971537:1:11:4294967295: ++%*15u:+4294971537:0:11: ++%2u: :0:-1: ++%*2u: :0:-1: ++%2u: -123:1:3:4294967295: ++%*2u: -123:0:3: ++%2u: -1:1:3:4294967295: ++%*2u: -1:0:3: ++%2u: -0:1:3:0: ++%*2u: -0:0:3: ++%2u: 0:1:2:0: ++%*2u: 0:0:2: ++%2u: 1:1:2:1: ++%*2u: 1:0:2: ++%2u: 42:1:3:42: ++%*2u: 42:0:3: ++%2u: 4294967295:1:3:42: ++%*2u: 4294967295:0:3: ++%2u: 4294967296:1:3:42: ++%*2u: 4294967296:0:3: ++%2u: 4294971537:1:3:42: ++%*2u: 4294971537:0:3: ++%2u: +0:1:3:0: ++%*2u: +0:0:3: ++%2u: +1:1:3:1: ++%*2u: +1:0:3: ++%2u: +42:1:3:4: ++%*2u: +42:0:3: ++%2u: +4294967295:1:3:4: ++%*2u: +4294967295:0:3: ++%2u: +4294967296:1:3:4: ++%*2u: +4294967296:0:3: ++%2u: +4294971537:1:3:4: ++%*2u: +4294971537:0:3: ++%15u: :0:-1: ++%*15u: :0:-1: ++%15u: -123:1:5:4294967173: ++%*15u: -123:0:5: ++%15u: -1:1:3:4294967295: ++%*15u: -1:0:3: ++%15u: -0:1:3:0: ++%*15u: -0:0:3: ++%15u: 0:1:2:0: ++%*15u: 0:0:2: ++%15u: 1:1:2:1: ++%*15u: 1:0:2: ++%15u: 42:1:3:42: ++%*15u: 42:0:3: ++%15u: 4294967295:1:11:4294967295: ++%*15u: 4294967295:0:11: ++%15u: 4294967296:1:11:4294967295: ++%*15u: 4294967296:0:11: ++%15u: 4294971537:1:11:4294967295: ++%*15u: 4294971537:0:11: ++%15u: +0:1:3:0: ++%*15u: +0:0:3: ++%15u: +1:1:3:1: ++%*15u: +1:0:3: ++%15u: +42:1:4:42: ++%*15u: +42:0:4: ++%15u: +4294967295:1:12:4294967295: ++%*15u: +4294967295:0:12: ++%15u: +4294967296:1:12:4294967295: ++%*15u: +4294967296:0:12: ++%15u: +4294971537:1:12:4294967295: ++%*15u: +4294971537:0:12: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-uint-x.input b/sysdeps/wordsize-32/tst-scanf-format-uint-x.input +new file mode 100644 +index 0000000000000000..066318d40e26b720 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-uint-x.input +@@ -0,0 +1,714 @@ ++%x::0:-1: ++%*x::0:-1: ++%x:-7b:1:3:4294967173: ++%*x:-7b:0:3: ++%x:-7B:1:3:4294967173: ++%*x:-7B:0:3: ++%x:-0X7b:1:5:4294967173: ++%*x:-0X7b:0:5: ++%x:-0x7B:1:5:4294967173: ++%*x:-0x7B:0:5: ++%x:-1:1:2:4294967295: ++%*x:-1:0:2: ++%x:-0X1:1:4:4294967295: ++%*x:-0X1:0:4: ++%x:-0x1:1:4:4294967295: ++%*x:-0x1:0:4: ++%x:-0:1:2:0: ++%*x:-0:0:2: ++%x:-0X0:1:4:0: ++%*x:-0X0:0:4: ++%x:-0x0:1:4:0: ++%*x:-0x0:0:4: ++%x:0:1:1:0: ++%*x:0:0:1: ++%x:0X0:1:3:0: ++%*x:0X0:0:3: ++%x:0x0:1:3:0: ++%*x:0x0:0:3: ++%x:1:1:1:1: ++%*x:1:0:1: ++%x:0X1:1:3:1: ++%*x:0X1:0:3: ++%x:0x1:1:3:1: ++%*x:0x1:0:3: ++%x:2a:1:2:42: ++%*x:2a:0:2: ++%x:2A:1:2:42: ++%*x:2A:0:2: ++%x:0X2a:1:4:42: ++%*x:0X2a:0:4: ++%x:0x2A:1:4:42: ++%*x:0x2A:0:4: ++%x:ffffffff:1:8:4294967295: ++%*x:ffffffff:0:8: ++%x:FFFFFFFF:1:8:4294967295: ++%*x:FFFFFFFF:0:8: ++%x:0Xffffffff:1:10:4294967295: ++%*x:0Xffffffff:0:10: ++%x:0xFFFFFFFF:1:10:4294967295: ++%*x:0xFFFFFFFF:0:10: ++%x:100000000:1:9:4294967295: ++%*x:100000000:0:9: ++%x:0X100000000:1:11:4294967295: ++%*x:0X100000000:0:11: ++%x:0x100000000:1:11:4294967295: ++%*x:0x100000000:0:11: ++%x:100001091:1:9:4294967295: ++%*x:100001091:0:9: ++%x:0X100001091:1:11:4294967295: ++%*x:0X100001091:0:11: ++%x:0x100001091:1:11:4294967295: ++%*x:0x100001091:0:11: ++%x:+0:1:2:0: ++%*x:+0:0:2: ++%x:+0X0:1:4:0: ++%*x:+0X0:0:4: ++%x:+0x0:1:4:0: ++%*x:+0x0:0:4: ++%x:+1:1:2:1: ++%*x:+1:0:2: ++%x:+0X1:1:4:1: ++%*x:+0X1:0:4: ++%x:+0x1:1:4:1: ++%*x:+0x1:0:4: ++%x:+2a:1:3:42: ++%*x:+2a:0:3: ++%x:+2A:1:3:42: ++%*x:+2A:0:3: ++%x:+0X2a:1:5:42: ++%*x:+0X2a:0:5: ++%x:+0x2A:1:5:42: ++%*x:+0x2A:0:5: ++%x:+ffffffff:1:9:4294967295: ++%*x:+ffffffff:0:9: ++%x:+FFFFFFFF:1:9:4294967295: ++%*x:+FFFFFFFF:0:9: ++%x:+0Xffffffff:1:11:4294967295: ++%*x:+0Xffffffff:0:11: ++%x:+0xFFFFFFFF:1:11:4294967295: ++%*x:+0xFFFFFFFF:0:11: ++%x:+100000000:1:10:4294967295: ++%*x:+100000000:0:10: ++%x:+0X100000000:1:12:4294967295: ++%*x:+0X100000000:0:12: ++%x:+0x100000000:1:12:4294967295: ++%*x:+0x100000000:0:12: ++%x:+100001091:1:10:4294967295: ++%*x:+100001091:0:10: ++%x:+0X100001091:1:12:4294967295: ++%*x:+0X100001091:0:12: ++%x:+0x100001091:1:12:4294967295: ++%*x:+0x100001091:0:12: ++%1x::0:-1: ++%*1x::0:-1: ++%1x:-7b:0:-1: ++%*1x:-7b:0:-1: ++%1x:-7B:0:-1: ++%*1x:-7B:0:-1: ++%1x:-0X7b:0:-1: ++%*1x:-0X7b:0:-1: ++%1x:-0x7B:0:-1: ++%*1x:-0x7B:0:-1: ++%1x:-1:0:-1: ++%*1x:-1:0:-1: ++%1x:-0X1:0:-1: ++%*1x:-0X1:0:-1: ++%1x:-0x1:0:-1: ++%*1x:-0x1:0:-1: ++%1x:-0:0:-1: ++%*1x:-0:0:-1: ++%1x:-0X0:0:-1: ++%*1x:-0X0:0:-1: ++%1x:-0x0:0:-1: ++%*1x:-0x0:0:-1: ++%1x:0:1:1:0: ++%*1x:0:0:1: ++%1x:0X0:1:1:0: ++%*1x:0X0:0:1: ++%1x:0x0:1:1:0: ++%*1x:0x0:0:1: ++%1x:1:1:1:1: ++%*1x:1:0:1: ++%1x:0X1:1:1:0: ++%*1x:0X1:0:1: ++%1x:0x1:1:1:0: ++%*1x:0x1:0:1: ++%1x:2a:1:1:2: ++%*1x:2a:0:1: ++%1x:2A:1:1:2: ++%*1x:2A:0:1: ++%1x:0X2a:1:1:0: ++%*1x:0X2a:0:1: ++%1x:0x2A:1:1:0: ++%*1x:0x2A:0:1: ++%1x:ffffffff:1:1:15: ++%*1x:ffffffff:0:1: ++%1x:FFFFFFFF:1:1:15: ++%*1x:FFFFFFFF:0:1: ++%1x:0Xffffffff:1:1:0: ++%*1x:0Xffffffff:0:1: ++%1x:0xFFFFFFFF:1:1:0: ++%*1x:0xFFFFFFFF:0:1: ++%1x:100000000:1:1:1: ++%*1x:100000000:0:1: ++%1x:0X100000000:1:1:0: ++%*1x:0X100000000:0:1: ++%1x:0x100000000:1:1:0: ++%*1x:0x100000000:0:1: ++%1x:100001091:1:1:1: ++%*1x:100001091:0:1: ++%1x:0X100001091:1:1:0: ++%*1x:0X100001091:0:1: ++%1x:0x100001091:1:1:0: ++%*1x:0x100001091:0:1: ++%1x:+0:0:-1: ++%*1x:+0:0:-1: ++%1x:+0X0:0:-1: ++%*1x:+0X0:0:-1: ++%1x:+0x0:0:-1: ++%*1x:+0x0:0:-1: ++%1x:+1:0:-1: ++%*1x:+1:0:-1: ++%1x:+0X1:0:-1: ++%*1x:+0X1:0:-1: ++%1x:+0x1:0:-1: ++%*1x:+0x1:0:-1: ++%1x:+2a:0:-1: ++%*1x:+2a:0:-1: ++%1x:+2A:0:-1: ++%*1x:+2A:0:-1: ++%1x:+0X2a:0:-1: ++%*1x:+0X2a:0:-1: ++%1x:+0x2A:0:-1: ++%*1x:+0x2A:0:-1: ++%1x:+ffffffff:0:-1: ++%*1x:+ffffffff:0:-1: ++%1x:+FFFFFFFF:0:-1: ++%*1x:+FFFFFFFF:0:-1: ++%1x:+0Xffffffff:0:-1: ++%*1x:+0Xffffffff:0:-1: ++%1x:+0xFFFFFFFF:0:-1: ++%*1x:+0xFFFFFFFF:0:-1: ++%1x:+100000000:0:-1: ++%*1x:+100000000:0:-1: ++%1x:+0X100000000:0:-1: ++%*1x:+0X100000000:0:-1: ++%1x:+0x100000000:0:-1: ++%*1x:+0x100000000:0:-1: ++%1x:+100001091:0:-1: ++%*1x:+100001091:0:-1: ++%1x:+0X100001091:0:-1: ++%*1x:+0X100001091:0:-1: ++%1x:+0x100001091:0:-1: ++%*1x:+0x100001091:0:-1: ++%2x::0:-1: ++%*2x::0:-1: ++%2x:-7b:1:2:4294967289: ++%*2x:-7b:0:2: ++%2x:-7B:1:2:4294967289: ++%*2x:-7B:0:2: ++%2x:-0X7b:1:2:0: ++%*2x:-0X7b:0:2: ++%2x:-0x7B:1:2:0: ++%*2x:-0x7B:0:2: ++%2x:-1:1:2:4294967295: ++%*2x:-1:0:2: ++%2x:-0X1:1:2:0: ++%*2x:-0X1:0:2: ++%2x:-0x1:1:2:0: ++%*2x:-0x1:0:2: ++%2x:-0:1:2:0: ++%*2x:-0:0:2: ++%2x:-0X0:1:2:0: ++%*2x:-0X0:0:2: ++%2x:-0x0:1:2:0: ++%*2x:-0x0:0:2: ++%2x:0:1:1:0: ++%*2x:0:0:1: ++# BZ12701 %2x:0X0:0:-1: ++# BZ12701 %*2x:0X0:0:-1: ++# BZ12701 %2x:0x0:0:-1: ++# BZ12701 %*2x:0x0:0:-1: ++%2x:1:1:1:1: ++%*2x:1:0:1: ++# BZ12701 %2x:0X1:0:-1: ++# BZ12701 %*2x:0X1:0:-1: ++# BZ12701 %2x:0x1:0:-1: ++# BZ12701 %*2x:0x1:0:-1: ++%2x:2a:1:2:42: ++%*2x:2a:0:2: ++%2x:2A:1:2:42: ++%*2x:2A:0:2: ++# BZ12701 %2x:0X2a:0:-1: ++# BZ12701 %*2x:0X2a:0:-1: ++# BZ12701 %2x:0x2A:0:-1: ++# BZ12701 %*2x:0x2A:0:-1: ++%2x:ffffffff:1:2:255: ++%*2x:ffffffff:0:2: ++%2x:FFFFFFFF:1:2:255: ++%*2x:FFFFFFFF:0:2: ++# BZ12701 %2x:0Xffffffff:0:-1: ++# BZ12701 %*2x:0Xffffffff:0:-1: ++# BZ12701 %2x:0xFFFFFFFF:0:-1: ++# BZ12701 %*2x:0xFFFFFFFF:0:-1: ++%2x:100000000:1:2:16: ++%*2x:100000000:0:2: ++# BZ12701 %2x:0X100000000:0:-1: ++# BZ12701 %*2x:0X100000000:0:-1: ++# BZ12701 %2x:0x100000000:0:-1: ++# BZ12701 %*2x:0x100000000:0:-1: ++%2x:100001091:1:2:16: ++%*2x:100001091:0:2: ++# BZ12701 %2x:0X100001091:0:-1: ++# BZ12701 %*2x:0X100001091:0:-1: ++# BZ12701 %2x:0x100001091:0:-1: ++# BZ12701 %*2x:0x100001091:0:-1: ++%2x:+0:1:2:0: ++%*2x:+0:0:2: ++%2x:+0X0:1:2:0: ++%*2x:+0X0:0:2: ++%2x:+0x0:1:2:0: ++%*2x:+0x0:0:2: ++%2x:+1:1:2:1: ++%*2x:+1:0:2: ++%2x:+0X1:1:2:0: ++%*2x:+0X1:0:2: ++%2x:+0x1:1:2:0: ++%*2x:+0x1:0:2: ++%2x:+2a:1:2:2: ++%*2x:+2a:0:2: ++%2x:+2A:1:2:2: ++%*2x:+2A:0:2: ++%2x:+0X2a:1:2:0: ++%*2x:+0X2a:0:2: ++%2x:+0x2A:1:2:0: ++%*2x:+0x2A:0:2: ++%2x:+ffffffff:1:2:15: ++%*2x:+ffffffff:0:2: ++%2x:+FFFFFFFF:1:2:15: ++%*2x:+FFFFFFFF:0:2: ++%2x:+0Xffffffff:1:2:0: ++%*2x:+0Xffffffff:0:2: ++%2x:+0xFFFFFFFF:1:2:0: ++%*2x:+0xFFFFFFFF:0:2: ++%2x:+100000000:1:2:1: ++%*2x:+100000000:0:2: ++%2x:+0X100000000:1:2:0: ++%*2x:+0X100000000:0:2: ++%2x:+0x100000000:1:2:0: ++%*2x:+0x100000000:0:2: ++%2x:+100001091:1:2:1: ++%*2x:+100001091:0:2: ++%2x:+0X100001091:1:2:0: ++%*2x:+0X100001091:0:2: ++%2x:+0x100001091:1:2:0: ++%*2x:+0x100001091:0:2: ++%8x::0:-1: ++%*8x::0:-1: ++%8x:-7b:1:3:4294967173: ++%*8x:-7b:0:3: ++%8x:-7B:1:3:4294967173: ++%*8x:-7B:0:3: ++%8x:-0X7b:1:5:4294967173: ++%*8x:-0X7b:0:5: ++%8x:-0x7B:1:5:4294967173: ++%*8x:-0x7B:0:5: ++%8x:-1:1:2:4294967295: ++%*8x:-1:0:2: ++%8x:-0X1:1:4:4294967295: ++%*8x:-0X1:0:4: ++%8x:-0x1:1:4:4294967295: ++%*8x:-0x1:0:4: ++%8x:-0:1:2:0: ++%*8x:-0:0:2: ++%8x:-0X0:1:4:0: ++%*8x:-0X0:0:4: ++%8x:-0x0:1:4:0: ++%*8x:-0x0:0:4: ++%8x:0:1:1:0: ++%*8x:0:0:1: ++%8x:0X0:1:3:0: ++%*8x:0X0:0:3: ++%8x:0x0:1:3:0: ++%*8x:0x0:0:3: ++%8x:1:1:1:1: ++%*8x:1:0:1: ++%8x:0X1:1:3:1: ++%*8x:0X1:0:3: ++%8x:0x1:1:3:1: ++%*8x:0x1:0:3: ++%8x:2a:1:2:42: ++%*8x:2a:0:2: ++%8x:2A:1:2:42: ++%*8x:2A:0:2: ++%8x:0X2a:1:4:42: ++%*8x:0X2a:0:4: ++%8x:0x2A:1:4:42: ++%*8x:0x2A:0:4: ++%8x:ffffffff:1:8:4294967295: ++%*8x:ffffffff:0:8: ++%8x:FFFFFFFF:1:8:4294967295: ++%*8x:FFFFFFFF:0:8: ++%8x:0Xffffffff:1:8:16777215: ++%*8x:0Xffffffff:0:8: ++%8x:0xFFFFFFFF:1:8:16777215: ++%*8x:0xFFFFFFFF:0:8: ++%8x:100000000:1:8:268435456: ++%*8x:100000000:0:8: ++%8x:0X100000000:1:8:1048576: ++%*8x:0X100000000:0:8: ++%8x:0x100000000:1:8:1048576: ++%*8x:0x100000000:0:8: ++%8x:100001091:1:8:268435721: ++%*8x:100001091:0:8: ++%8x:0X100001091:1:8:1048577: ++%*8x:0X100001091:0:8: ++%8x:0x100001091:1:8:1048577: ++%*8x:0x100001091:0:8: ++%8x:+0:1:2:0: ++%*8x:+0:0:2: ++%8x:+0X0:1:4:0: ++%*8x:+0X0:0:4: ++%8x:+0x0:1:4:0: ++%*8x:+0x0:0:4: ++%8x:+1:1:2:1: ++%*8x:+1:0:2: ++%8x:+0X1:1:4:1: ++%*8x:+0X1:0:4: ++%8x:+0x1:1:4:1: ++%*8x:+0x1:0:4: ++%8x:+2a:1:3:42: ++%*8x:+2a:0:3: ++%8x:+2A:1:3:42: ++%*8x:+2A:0:3: ++%8x:+0X2a:1:5:42: ++%*8x:+0X2a:0:5: ++%8x:+0x2A:1:5:42: ++%*8x:+0x2A:0:5: ++%8x:+ffffffff:1:8:268435455: ++%*8x:+ffffffff:0:8: ++%8x:+FFFFFFFF:1:8:268435455: ++%*8x:+FFFFFFFF:0:8: ++%8x:+0Xffffffff:1:8:1048575: ++%*8x:+0Xffffffff:0:8: ++%8x:+0xFFFFFFFF:1:8:1048575: ++%*8x:+0xFFFFFFFF:0:8: ++%8x:+100000000:1:8:16777216: ++%*8x:+100000000:0:8: ++%8x:+0X100000000:1:8:65536: ++%*8x:+0X100000000:0:8: ++%8x:+0x100000000:1:8:65536: ++%*8x:+0x100000000:0:8: ++%8x:+100001091:1:8:16777232: ++%*8x:+100001091:0:8: ++%8x:+0X100001091:1:8:65536: ++%*8x:+0X100001091:0:8: ++%8x:+0x100001091:1:8:65536: ++%*8x:+0x100001091:0:8: ++%15x::0:-1: ++%*15x::0:-1: ++%15x:-7b:1:3:4294967173: ++%*15x:-7b:0:3: ++%15x:-7B:1:3:4294967173: ++%*15x:-7B:0:3: ++%15x:-0X7b:1:5:4294967173: ++%*15x:-0X7b:0:5: ++%15x:-0x7B:1:5:4294967173: ++%*15x:-0x7B:0:5: ++%15x:-1:1:2:4294967295: ++%*15x:-1:0:2: ++%15x:-0X1:1:4:4294967295: ++%*15x:-0X1:0:4: ++%15x:-0x1:1:4:4294967295: ++%*15x:-0x1:0:4: ++%15x:-0:1:2:0: ++%*15x:-0:0:2: ++%15x:-0X0:1:4:0: ++%*15x:-0X0:0:4: ++%15x:-0x0:1:4:0: ++%*15x:-0x0:0:4: ++%15x:0:1:1:0: ++%*15x:0:0:1: ++%15x:0X0:1:3:0: ++%*15x:0X0:0:3: ++%15x:0x0:1:3:0: ++%*15x:0x0:0:3: ++%15x:1:1:1:1: ++%*15x:1:0:1: ++%15x:0X1:1:3:1: ++%*15x:0X1:0:3: ++%15x:0x1:1:3:1: ++%*15x:0x1:0:3: ++%15x:2a:1:2:42: ++%*15x:2a:0:2: ++%15x:2A:1:2:42: ++%*15x:2A:0:2: ++%15x:0X2a:1:4:42: ++%*15x:0X2a:0:4: ++%15x:0x2A:1:4:42: ++%*15x:0x2A:0:4: ++%15x:ffffffff:1:8:4294967295: ++%*15x:ffffffff:0:8: ++%15x:FFFFFFFF:1:8:4294967295: ++%*15x:FFFFFFFF:0:8: ++%15x:0Xffffffff:1:10:4294967295: ++%*15x:0Xffffffff:0:10: ++%15x:0xFFFFFFFF:1:10:4294967295: ++%*15x:0xFFFFFFFF:0:10: ++%15x:100000000:1:9:4294967295: ++%*15x:100000000:0:9: ++%15x:0X100000000:1:11:4294967295: ++%*15x:0X100000000:0:11: ++%15x:0x100000000:1:11:4294967295: ++%*15x:0x100000000:0:11: ++%15x:100001091:1:9:4294967295: ++%*15x:100001091:0:9: ++%15x:0X100001091:1:11:4294967295: ++%*15x:0X100001091:0:11: ++%15x:0x100001091:1:11:4294967295: ++%*15x:0x100001091:0:11: ++%15x:+0:1:2:0: ++%*15x:+0:0:2: ++%15x:+0X0:1:4:0: ++%*15x:+0X0:0:4: ++%15x:+0x0:1:4:0: ++%*15x:+0x0:0:4: ++%15x:+1:1:2:1: ++%*15x:+1:0:2: ++%15x:+0X1:1:4:1: ++%*15x:+0X1:0:4: ++%15x:+0x1:1:4:1: ++%*15x:+0x1:0:4: ++%15x:+2a:1:3:42: ++%*15x:+2a:0:3: ++%15x:+2A:1:3:42: ++%*15x:+2A:0:3: ++%15x:+0X2a:1:5:42: ++%*15x:+0X2a:0:5: ++%15x:+0x2A:1:5:42: ++%*15x:+0x2A:0:5: ++%15x:+ffffffff:1:9:4294967295: ++%*15x:+ffffffff:0:9: ++%15x:+FFFFFFFF:1:9:4294967295: ++%*15x:+FFFFFFFF:0:9: ++%15x:+0Xffffffff:1:11:4294967295: ++%*15x:+0Xffffffff:0:11: ++%15x:+0xFFFFFFFF:1:11:4294967295: ++%*15x:+0xFFFFFFFF:0:11: ++%15x:+100000000:1:10:4294967295: ++%*15x:+100000000:0:10: ++%15x:+0X100000000:1:12:4294967295: ++%*15x:+0X100000000:0:12: ++%15x:+0x100000000:1:12:4294967295: ++%*15x:+0x100000000:0:12: ++%15x:+100001091:1:10:4294967295: ++%*15x:+100001091:0:10: ++%15x:+0X100001091:1:12:4294967295: ++%*15x:+0X100001091:0:12: ++%15x:+0x100001091:1:12:4294967295: ++%*15x:+0x100001091:0:12: ++%2x: :0:-1: ++%*2x: :0:-1: ++%2x: -7b:1:3:4294967289: ++%*2x: -7b:0:3: ++%2x: -7B:1:3:4294967289: ++%*2x: -7B:0:3: ++%2x: -0X7b:1:3:0: ++%*2x: -0X7b:0:3: ++%2x: -0x7B:1:3:0: ++%*2x: -0x7B:0:3: ++%2x: -1:1:3:4294967295: ++%*2x: -1:0:3: ++%2x: -0X1:1:3:0: ++%*2x: -0X1:0:3: ++%2x: -0x1:1:3:0: ++%*2x: -0x1:0:3: ++%2x: -0:1:3:0: ++%*2x: -0:0:3: ++%2x: -0X0:1:3:0: ++%*2x: -0X0:0:3: ++%2x: -0x0:1:3:0: ++%*2x: -0x0:0:3: ++%2x: 0:1:2:0: ++%*2x: 0:0:2: ++# BZ12701 %2x: 0X0:0:-1: ++# BZ12701 %*2x: 0X0:0:-1: ++# BZ12701 %2x: 0x0:0:-1: ++# BZ12701 %*2x: 0x0:0:-1: ++%2x: 1:1:2:1: ++%*2x: 1:0:2: ++# BZ12701 %2x: 0X1:0:-1: ++# BZ12701 %*2x: 0X1:0:-1: ++# BZ12701 %2x: 0x1:0:-1: ++# BZ12701 %*2x: 0x1:0:-1: ++%2x: 2a:1:3:42: ++%*2x: 2a:0:3: ++%2x: 2A:1:3:42: ++%*2x: 2A:0:3: ++# BZ12701 %2x: 0X2a:0:-1: ++# BZ12701 %*2x: 0X2a:0:-1: ++# BZ12701 %2x: 0x2A:0:-1: ++# BZ12701 %*2x: 0x2A:0:-1: ++%2x: ffffffff:1:3:255: ++%*2x: ffffffff:0:3: ++%2x: FFFFFFFF:1:3:255: ++%*2x: FFFFFFFF:0:3: ++# BZ12701 %2x: 0Xffffffff:0:-1: ++# BZ12701 %*2x: 0Xffffffff:0:-1: ++# BZ12701 %2x: 0xFFFFFFFF:0:-1: ++# BZ12701 %*2x: 0xFFFFFFFF:0:-1: ++%2x: 100000000:1:3:16: ++%*2x: 100000000:0:3: ++# BZ12701 %2x: 0X100000000:0:-1: ++# BZ12701 %*2x: 0X100000000:0:-1: ++# BZ12701 %2x: 0x100000000:0:-1: ++# BZ12701 %*2x: 0x100000000:0:-1: ++%2x: 100001091:1:3:16: ++%*2x: 100001091:0:3: ++# BZ12701 %2x: 0X100001091:0:-1: ++# BZ12701 %*2x: 0X100001091:0:-1: ++# BZ12701 %2x: 0x100001091:0:-1: ++# BZ12701 %*2x: 0x100001091:0:-1: ++%2x: +0:1:3:0: ++%*2x: +0:0:3: ++%2x: +0X0:1:3:0: ++%*2x: +0X0:0:3: ++%2x: +0x0:1:3:0: ++%*2x: +0x0:0:3: ++%2x: +1:1:3:1: ++%*2x: +1:0:3: ++%2x: +0X1:1:3:0: ++%*2x: +0X1:0:3: ++%2x: +0x1:1:3:0: ++%*2x: +0x1:0:3: ++%2x: +2a:1:3:2: ++%*2x: +2a:0:3: ++%2x: +2A:1:3:2: ++%*2x: +2A:0:3: ++%2x: +0X2a:1:3:0: ++%*2x: +0X2a:0:3: ++%2x: +0x2A:1:3:0: ++%*2x: +0x2A:0:3: ++%2x: +ffffffff:1:3:15: ++%*2x: +ffffffff:0:3: ++%2x: +FFFFFFFF:1:3:15: ++%*2x: +FFFFFFFF:0:3: ++%2x: +0Xffffffff:1:3:0: ++%*2x: +0Xffffffff:0:3: ++%2x: +0xFFFFFFFF:1:3:0: ++%*2x: +0xFFFFFFFF:0:3: ++%2x: +100000000:1:3:1: ++%*2x: +100000000:0:3: ++%2x: +0X100000000:1:3:0: ++%*2x: +0X100000000:0:3: ++%2x: +0x100000000:1:3:0: ++%*2x: +0x100000000:0:3: ++%2x: +100001091:1:3:1: ++%*2x: +100001091:0:3: ++%2x: +0X100001091:1:3:0: ++%*2x: +0X100001091:0:3: ++%2x: +0x100001091:1:3:0: ++%*2x: +0x100001091:0:3: ++%15x: :0:-1: ++%*15x: :0:-1: ++%15x: -7b:1:4:4294967173: ++%*15x: -7b:0:4: ++%15x: -7B:1:4:4294967173: ++%*15x: -7B:0:4: ++%15x: -0X7b:1:6:4294967173: ++%*15x: -0X7b:0:6: ++%15x: -0x7B:1:6:4294967173: ++%*15x: -0x7B:0:6: ++%15x: -1:1:3:4294967295: ++%*15x: -1:0:3: ++%15x: -0X1:1:5:4294967295: ++%*15x: -0X1:0:5: ++%15x: -0x1:1:5:4294967295: ++%*15x: -0x1:0:5: ++%15x: -0:1:3:0: ++%*15x: -0:0:3: ++%15x: -0X0:1:5:0: ++%*15x: -0X0:0:5: ++%15x: -0x0:1:5:0: ++%*15x: -0x0:0:5: ++%15x: 0:1:2:0: ++%*15x: 0:0:2: ++%15x: 0X0:1:4:0: ++%*15x: 0X0:0:4: ++%15x: 0x0:1:4:0: ++%*15x: 0x0:0:4: ++%15x: 1:1:2:1: ++%*15x: 1:0:2: ++%15x: 0X1:1:4:1: ++%*15x: 0X1:0:4: ++%15x: 0x1:1:4:1: ++%*15x: 0x1:0:4: ++%15x: 2a:1:3:42: ++%*15x: 2a:0:3: ++%15x: 2A:1:3:42: ++%*15x: 2A:0:3: ++%15x: 0X2a:1:5:42: ++%*15x: 0X2a:0:5: ++%15x: 0x2A:1:5:42: ++%*15x: 0x2A:0:5: ++%15x: ffffffff:1:9:4294967295: ++%*15x: ffffffff:0:9: ++%15x: FFFFFFFF:1:9:4294967295: ++%*15x: FFFFFFFF:0:9: ++%15x: 0Xffffffff:1:11:4294967295: ++%*15x: 0Xffffffff:0:11: ++%15x: 0xFFFFFFFF:1:11:4294967295: ++%*15x: 0xFFFFFFFF:0:11: ++%15x: 100000000:1:10:4294967295: ++%*15x: 100000000:0:10: ++%15x: 0X100000000:1:12:4294967295: ++%*15x: 0X100000000:0:12: ++%15x: 0x100000000:1:12:4294967295: ++%*15x: 0x100000000:0:12: ++%15x: 100001091:1:10:4294967295: ++%*15x: 100001091:0:10: ++%15x: 0X100001091:1:12:4294967295: ++%*15x: 0X100001091:0:12: ++%15x: 0x100001091:1:12:4294967295: ++%*15x: 0x100001091:0:12: ++%15x: +0:1:3:0: ++%*15x: +0:0:3: ++%15x: +0X0:1:5:0: ++%*15x: +0X0:0:5: ++%15x: +0x0:1:5:0: ++%*15x: +0x0:0:5: ++%15x: +1:1:3:1: ++%*15x: +1:0:3: ++%15x: +0X1:1:5:1: ++%*15x: +0X1:0:5: ++%15x: +0x1:1:5:1: ++%*15x: +0x1:0:5: ++%15x: +2a:1:4:42: ++%*15x: +2a:0:4: ++%15x: +2A:1:4:42: ++%*15x: +2A:0:4: ++%15x: +0X2a:1:6:42: ++%*15x: +0X2a:0:6: ++%15x: +0x2A:1:6:42: ++%*15x: +0x2A:0:6: ++%15x: +ffffffff:1:10:4294967295: ++%*15x: +ffffffff:0:10: ++%15x: +FFFFFFFF:1:10:4294967295: ++%*15x: +FFFFFFFF:0:10: ++%15x: +0Xffffffff:1:12:4294967295: ++%*15x: +0Xffffffff:0:12: ++%15x: +0xFFFFFFFF:1:12:4294967295: ++%*15x: +0xFFFFFFFF:0:12: ++%15x: +100000000:1:11:4294967295: ++%*15x: +100000000:0:11: ++%15x: +0X100000000:1:13:4294967295: ++%*15x: +0X100000000:0:13: ++%15x: +0x100000000:1:13:4294967295: ++%*15x: +0x100000000:0:13: ++%15x: +100001091:1:11:4294967295: ++%*15x: +100001091:0:11: ++%15x: +0X100001091:1:13:4294967295: ++%*15x: +0X100001091:0:13: ++%15x: +0x100001091:1:13:4294967295: ++%*15x: +0x100001091:0:13: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-uint-xx.input b/sysdeps/wordsize-32/tst-scanf-format-uint-xx.input +new file mode 100644 +index 0000000000000000..bfadb7f9bb8d4fd7 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-uint-xx.input +@@ -0,0 +1,714 @@ ++%X::0:-1: ++%*X::0:-1: ++%X:-7b:1:3:4294967173: ++%*X:-7b:0:3: ++%X:-7B:1:3:4294967173: ++%*X:-7B:0:3: ++%X:-0X7b:1:5:4294967173: ++%*X:-0X7b:0:5: ++%X:-0x7B:1:5:4294967173: ++%*X:-0x7B:0:5: ++%X:-1:1:2:4294967295: ++%*X:-1:0:2: ++%X:-0X1:1:4:4294967295: ++%*X:-0X1:0:4: ++%X:-0x1:1:4:4294967295: ++%*X:-0x1:0:4: ++%X:-0:1:2:0: ++%*X:-0:0:2: ++%X:-0X0:1:4:0: ++%*X:-0X0:0:4: ++%X:-0x0:1:4:0: ++%*X:-0x0:0:4: ++%X:0:1:1:0: ++%*X:0:0:1: ++%X:0X0:1:3:0: ++%*X:0X0:0:3: ++%X:0x0:1:3:0: ++%*X:0x0:0:3: ++%X:1:1:1:1: ++%*X:1:0:1: ++%X:0X1:1:3:1: ++%*X:0X1:0:3: ++%X:0x1:1:3:1: ++%*X:0x1:0:3: ++%X:2a:1:2:42: ++%*X:2a:0:2: ++%X:2A:1:2:42: ++%*X:2A:0:2: ++%X:0X2a:1:4:42: ++%*X:0X2a:0:4: ++%X:0x2A:1:4:42: ++%*X:0x2A:0:4: ++%X:ffffffff:1:8:4294967295: ++%*X:ffffffff:0:8: ++%X:FFFFFFFF:1:8:4294967295: ++%*X:FFFFFFFF:0:8: ++%X:0Xffffffff:1:10:4294967295: ++%*X:0Xffffffff:0:10: ++%X:0xFFFFFFFF:1:10:4294967295: ++%*X:0xFFFFFFFF:0:10: ++%X:100000000:1:9:4294967295: ++%*X:100000000:0:9: ++%X:0X100000000:1:11:4294967295: ++%*X:0X100000000:0:11: ++%X:0x100000000:1:11:4294967295: ++%*X:0x100000000:0:11: ++%X:100001091:1:9:4294967295: ++%*X:100001091:0:9: ++%X:0X100001091:1:11:4294967295: ++%*X:0X100001091:0:11: ++%X:0x100001091:1:11:4294967295: ++%*X:0x100001091:0:11: ++%X:+0:1:2:0: ++%*X:+0:0:2: ++%X:+0X0:1:4:0: ++%*X:+0X0:0:4: ++%X:+0x0:1:4:0: ++%*X:+0x0:0:4: ++%X:+1:1:2:1: ++%*X:+1:0:2: ++%X:+0X1:1:4:1: ++%*X:+0X1:0:4: ++%X:+0x1:1:4:1: ++%*X:+0x1:0:4: ++%X:+2a:1:3:42: ++%*X:+2a:0:3: ++%X:+2A:1:3:42: ++%*X:+2A:0:3: ++%X:+0X2a:1:5:42: ++%*X:+0X2a:0:5: ++%X:+0x2A:1:5:42: ++%*X:+0x2A:0:5: ++%X:+ffffffff:1:9:4294967295: ++%*X:+ffffffff:0:9: ++%X:+FFFFFFFF:1:9:4294967295: ++%*X:+FFFFFFFF:0:9: ++%X:+0Xffffffff:1:11:4294967295: ++%*X:+0Xffffffff:0:11: ++%X:+0xFFFFFFFF:1:11:4294967295: ++%*X:+0xFFFFFFFF:0:11: ++%X:+100000000:1:10:4294967295: ++%*X:+100000000:0:10: ++%X:+0X100000000:1:12:4294967295: ++%*X:+0X100000000:0:12: ++%X:+0x100000000:1:12:4294967295: ++%*X:+0x100000000:0:12: ++%X:+100001091:1:10:4294967295: ++%*X:+100001091:0:10: ++%X:+0X100001091:1:12:4294967295: ++%*X:+0X100001091:0:12: ++%X:+0x100001091:1:12:4294967295: ++%*X:+0x100001091:0:12: ++%1X::0:-1: ++%*1X::0:-1: ++%1X:-7b:0:-1: ++%*1X:-7b:0:-1: ++%1X:-7B:0:-1: ++%*1X:-7B:0:-1: ++%1X:-0X7b:0:-1: ++%*1X:-0X7b:0:-1: ++%1X:-0x7B:0:-1: ++%*1X:-0x7B:0:-1: ++%1X:-1:0:-1: ++%*1X:-1:0:-1: ++%1X:-0X1:0:-1: ++%*1X:-0X1:0:-1: ++%1X:-0x1:0:-1: ++%*1X:-0x1:0:-1: ++%1X:-0:0:-1: ++%*1X:-0:0:-1: ++%1X:-0X0:0:-1: ++%*1X:-0X0:0:-1: ++%1X:-0x0:0:-1: ++%*1X:-0x0:0:-1: ++%1X:0:1:1:0: ++%*1X:0:0:1: ++%1X:0X0:1:1:0: ++%*1X:0X0:0:1: ++%1X:0x0:1:1:0: ++%*1X:0x0:0:1: ++%1X:1:1:1:1: ++%*1X:1:0:1: ++%1X:0X1:1:1:0: ++%*1X:0X1:0:1: ++%1X:0x1:1:1:0: ++%*1X:0x1:0:1: ++%1X:2a:1:1:2: ++%*1X:2a:0:1: ++%1X:2A:1:1:2: ++%*1X:2A:0:1: ++%1X:0X2a:1:1:0: ++%*1X:0X2a:0:1: ++%1X:0x2A:1:1:0: ++%*1X:0x2A:0:1: ++%1X:ffffffff:1:1:15: ++%*1X:ffffffff:0:1: ++%1X:FFFFFFFF:1:1:15: ++%*1X:FFFFFFFF:0:1: ++%1X:0Xffffffff:1:1:0: ++%*1X:0Xffffffff:0:1: ++%1X:0xFFFFFFFF:1:1:0: ++%*1X:0xFFFFFFFF:0:1: ++%1X:100000000:1:1:1: ++%*1X:100000000:0:1: ++%1X:0X100000000:1:1:0: ++%*1X:0X100000000:0:1: ++%1X:0x100000000:1:1:0: ++%*1X:0x100000000:0:1: ++%1X:100001091:1:1:1: ++%*1X:100001091:0:1: ++%1X:0X100001091:1:1:0: ++%*1X:0X100001091:0:1: ++%1X:0x100001091:1:1:0: ++%*1X:0x100001091:0:1: ++%1X:+0:0:-1: ++%*1X:+0:0:-1: ++%1X:+0X0:0:-1: ++%*1X:+0X0:0:-1: ++%1X:+0x0:0:-1: ++%*1X:+0x0:0:-1: ++%1X:+1:0:-1: ++%*1X:+1:0:-1: ++%1X:+0X1:0:-1: ++%*1X:+0X1:0:-1: ++%1X:+0x1:0:-1: ++%*1X:+0x1:0:-1: ++%1X:+2a:0:-1: ++%*1X:+2a:0:-1: ++%1X:+2A:0:-1: ++%*1X:+2A:0:-1: ++%1X:+0X2a:0:-1: ++%*1X:+0X2a:0:-1: ++%1X:+0x2A:0:-1: ++%*1X:+0x2A:0:-1: ++%1X:+ffffffff:0:-1: ++%*1X:+ffffffff:0:-1: ++%1X:+FFFFFFFF:0:-1: ++%*1X:+FFFFFFFF:0:-1: ++%1X:+0Xffffffff:0:-1: ++%*1X:+0Xffffffff:0:-1: ++%1X:+0xFFFFFFFF:0:-1: ++%*1X:+0xFFFFFFFF:0:-1: ++%1X:+100000000:0:-1: ++%*1X:+100000000:0:-1: ++%1X:+0X100000000:0:-1: ++%*1X:+0X100000000:0:-1: ++%1X:+0x100000000:0:-1: ++%*1X:+0x100000000:0:-1: ++%1X:+100001091:0:-1: ++%*1X:+100001091:0:-1: ++%1X:+0X100001091:0:-1: ++%*1X:+0X100001091:0:-1: ++%1X:+0x100001091:0:-1: ++%*1X:+0x100001091:0:-1: ++%2X::0:-1: ++%*2X::0:-1: ++%2X:-7b:1:2:4294967289: ++%*2X:-7b:0:2: ++%2X:-7B:1:2:4294967289: ++%*2X:-7B:0:2: ++%2X:-0X7b:1:2:0: ++%*2X:-0X7b:0:2: ++%2X:-0x7B:1:2:0: ++%*2X:-0x7B:0:2: ++%2X:-1:1:2:4294967295: ++%*2X:-1:0:2: ++%2X:-0X1:1:2:0: ++%*2X:-0X1:0:2: ++%2X:-0x1:1:2:0: ++%*2X:-0x1:0:2: ++%2X:-0:1:2:0: ++%*2X:-0:0:2: ++%2X:-0X0:1:2:0: ++%*2X:-0X0:0:2: ++%2X:-0x0:1:2:0: ++%*2X:-0x0:0:2: ++%2X:0:1:1:0: ++%*2X:0:0:1: ++# BZ12701 %2X:0X0:0:-1: ++# BZ12701 %*2X:0X0:0:-1: ++# BZ12701 %2X:0x0:0:-1: ++# BZ12701 %*2X:0x0:0:-1: ++%2X:1:1:1:1: ++%*2X:1:0:1: ++# BZ12701 %2X:0X1:0:-1: ++# BZ12701 %*2X:0X1:0:-1: ++# BZ12701 %2X:0x1:0:-1: ++# BZ12701 %*2X:0x1:0:-1: ++%2X:2a:1:2:42: ++%*2X:2a:0:2: ++%2X:2A:1:2:42: ++%*2X:2A:0:2: ++# BZ12701 %2X:0X2a:0:-1: ++# BZ12701 %*2X:0X2a:0:-1: ++# BZ12701 %2X:0x2A:0:-1: ++# BZ12701 %*2X:0x2A:0:-1: ++%2X:ffffffff:1:2:255: ++%*2X:ffffffff:0:2: ++%2X:FFFFFFFF:1:2:255: ++%*2X:FFFFFFFF:0:2: ++# BZ12701 %2X:0Xffffffff:0:-1: ++# BZ12701 %*2X:0Xffffffff:0:-1: ++# BZ12701 %2X:0xFFFFFFFF:0:-1: ++# BZ12701 %*2X:0xFFFFFFFF:0:-1: ++%2X:100000000:1:2:16: ++%*2X:100000000:0:2: ++# BZ12701 %2X:0X100000000:0:-1: ++# BZ12701 %*2X:0X100000000:0:-1: ++# BZ12701 %2X:0x100000000:0:-1: ++# BZ12701 %*2X:0x100000000:0:-1: ++%2X:100001091:1:2:16: ++%*2X:100001091:0:2: ++# BZ12701 %2X:0X100001091:0:-1: ++# BZ12701 %*2X:0X100001091:0:-1: ++# BZ12701 %2X:0x100001091:0:-1: ++# BZ12701 %*2X:0x100001091:0:-1: ++%2X:+0:1:2:0: ++%*2X:+0:0:2: ++%2X:+0X0:1:2:0: ++%*2X:+0X0:0:2: ++%2X:+0x0:1:2:0: ++%*2X:+0x0:0:2: ++%2X:+1:1:2:1: ++%*2X:+1:0:2: ++%2X:+0X1:1:2:0: ++%*2X:+0X1:0:2: ++%2X:+0x1:1:2:0: ++%*2X:+0x1:0:2: ++%2X:+2a:1:2:2: ++%*2X:+2a:0:2: ++%2X:+2A:1:2:2: ++%*2X:+2A:0:2: ++%2X:+0X2a:1:2:0: ++%*2X:+0X2a:0:2: ++%2X:+0x2A:1:2:0: ++%*2X:+0x2A:0:2: ++%2X:+ffffffff:1:2:15: ++%*2X:+ffffffff:0:2: ++%2X:+FFFFFFFF:1:2:15: ++%*2X:+FFFFFFFF:0:2: ++%2X:+0Xffffffff:1:2:0: ++%*2X:+0Xffffffff:0:2: ++%2X:+0xFFFFFFFF:1:2:0: ++%*2X:+0xFFFFFFFF:0:2: ++%2X:+100000000:1:2:1: ++%*2X:+100000000:0:2: ++%2X:+0X100000000:1:2:0: ++%*2X:+0X100000000:0:2: ++%2X:+0x100000000:1:2:0: ++%*2X:+0x100000000:0:2: ++%2X:+100001091:1:2:1: ++%*2X:+100001091:0:2: ++%2X:+0X100001091:1:2:0: ++%*2X:+0X100001091:0:2: ++%2X:+0x100001091:1:2:0: ++%*2X:+0x100001091:0:2: ++%8X::0:-1: ++%*8X::0:-1: ++%8X:-7b:1:3:4294967173: ++%*8X:-7b:0:3: ++%8X:-7B:1:3:4294967173: ++%*8X:-7B:0:3: ++%8X:-0X7b:1:5:4294967173: ++%*8X:-0X7b:0:5: ++%8X:-0x7B:1:5:4294967173: ++%*8X:-0x7B:0:5: ++%8X:-1:1:2:4294967295: ++%*8X:-1:0:2: ++%8X:-0X1:1:4:4294967295: ++%*8X:-0X1:0:4: ++%8X:-0x1:1:4:4294967295: ++%*8X:-0x1:0:4: ++%8X:-0:1:2:0: ++%*8X:-0:0:2: ++%8X:-0X0:1:4:0: ++%*8X:-0X0:0:4: ++%8X:-0x0:1:4:0: ++%*8X:-0x0:0:4: ++%8X:0:1:1:0: ++%*8X:0:0:1: ++%8X:0X0:1:3:0: ++%*8X:0X0:0:3: ++%8X:0x0:1:3:0: ++%*8X:0x0:0:3: ++%8X:1:1:1:1: ++%*8X:1:0:1: ++%8X:0X1:1:3:1: ++%*8X:0X1:0:3: ++%8X:0x1:1:3:1: ++%*8X:0x1:0:3: ++%8X:2a:1:2:42: ++%*8X:2a:0:2: ++%8X:2A:1:2:42: ++%*8X:2A:0:2: ++%8X:0X2a:1:4:42: ++%*8X:0X2a:0:4: ++%8X:0x2A:1:4:42: ++%*8X:0x2A:0:4: ++%8X:ffffffff:1:8:4294967295: ++%*8X:ffffffff:0:8: ++%8X:FFFFFFFF:1:8:4294967295: ++%*8X:FFFFFFFF:0:8: ++%8X:0Xffffffff:1:8:16777215: ++%*8X:0Xffffffff:0:8: ++%8X:0xFFFFFFFF:1:8:16777215: ++%*8X:0xFFFFFFFF:0:8: ++%8X:100000000:1:8:268435456: ++%*8X:100000000:0:8: ++%8X:0X100000000:1:8:1048576: ++%*8X:0X100000000:0:8: ++%8X:0x100000000:1:8:1048576: ++%*8X:0x100000000:0:8: ++%8X:100001091:1:8:268435721: ++%*8X:100001091:0:8: ++%8X:0X100001091:1:8:1048577: ++%*8X:0X100001091:0:8: ++%8X:0x100001091:1:8:1048577: ++%*8X:0x100001091:0:8: ++%8X:+0:1:2:0: ++%*8X:+0:0:2: ++%8X:+0X0:1:4:0: ++%*8X:+0X0:0:4: ++%8X:+0x0:1:4:0: ++%*8X:+0x0:0:4: ++%8X:+1:1:2:1: ++%*8X:+1:0:2: ++%8X:+0X1:1:4:1: ++%*8X:+0X1:0:4: ++%8X:+0x1:1:4:1: ++%*8X:+0x1:0:4: ++%8X:+2a:1:3:42: ++%*8X:+2a:0:3: ++%8X:+2A:1:3:42: ++%*8X:+2A:0:3: ++%8X:+0X2a:1:5:42: ++%*8X:+0X2a:0:5: ++%8X:+0x2A:1:5:42: ++%*8X:+0x2A:0:5: ++%8X:+ffffffff:1:8:268435455: ++%*8X:+ffffffff:0:8: ++%8X:+FFFFFFFF:1:8:268435455: ++%*8X:+FFFFFFFF:0:8: ++%8X:+0Xffffffff:1:8:1048575: ++%*8X:+0Xffffffff:0:8: ++%8X:+0xFFFFFFFF:1:8:1048575: ++%*8X:+0xFFFFFFFF:0:8: ++%8X:+100000000:1:8:16777216: ++%*8X:+100000000:0:8: ++%8X:+0X100000000:1:8:65536: ++%*8X:+0X100000000:0:8: ++%8X:+0x100000000:1:8:65536: ++%*8X:+0x100000000:0:8: ++%8X:+100001091:1:8:16777232: ++%*8X:+100001091:0:8: ++%8X:+0X100001091:1:8:65536: ++%*8X:+0X100001091:0:8: ++%8X:+0x100001091:1:8:65536: ++%*8X:+0x100001091:0:8: ++%15X::0:-1: ++%*15X::0:-1: ++%15X:-7b:1:3:4294967173: ++%*15X:-7b:0:3: ++%15X:-7B:1:3:4294967173: ++%*15X:-7B:0:3: ++%15X:-0X7b:1:5:4294967173: ++%*15X:-0X7b:0:5: ++%15X:-0x7B:1:5:4294967173: ++%*15X:-0x7B:0:5: ++%15X:-1:1:2:4294967295: ++%*15X:-1:0:2: ++%15X:-0X1:1:4:4294967295: ++%*15X:-0X1:0:4: ++%15X:-0x1:1:4:4294967295: ++%*15X:-0x1:0:4: ++%15X:-0:1:2:0: ++%*15X:-0:0:2: ++%15X:-0X0:1:4:0: ++%*15X:-0X0:0:4: ++%15X:-0x0:1:4:0: ++%*15X:-0x0:0:4: ++%15X:0:1:1:0: ++%*15X:0:0:1: ++%15X:0X0:1:3:0: ++%*15X:0X0:0:3: ++%15X:0x0:1:3:0: ++%*15X:0x0:0:3: ++%15X:1:1:1:1: ++%*15X:1:0:1: ++%15X:0X1:1:3:1: ++%*15X:0X1:0:3: ++%15X:0x1:1:3:1: ++%*15X:0x1:0:3: ++%15X:2a:1:2:42: ++%*15X:2a:0:2: ++%15X:2A:1:2:42: ++%*15X:2A:0:2: ++%15X:0X2a:1:4:42: ++%*15X:0X2a:0:4: ++%15X:0x2A:1:4:42: ++%*15X:0x2A:0:4: ++%15X:ffffffff:1:8:4294967295: ++%*15X:ffffffff:0:8: ++%15X:FFFFFFFF:1:8:4294967295: ++%*15X:FFFFFFFF:0:8: ++%15X:0Xffffffff:1:10:4294967295: ++%*15X:0Xffffffff:0:10: ++%15X:0xFFFFFFFF:1:10:4294967295: ++%*15X:0xFFFFFFFF:0:10: ++%15X:100000000:1:9:4294967295: ++%*15X:100000000:0:9: ++%15X:0X100000000:1:11:4294967295: ++%*15X:0X100000000:0:11: ++%15X:0x100000000:1:11:4294967295: ++%*15X:0x100000000:0:11: ++%15X:100001091:1:9:4294967295: ++%*15X:100001091:0:9: ++%15X:0X100001091:1:11:4294967295: ++%*15X:0X100001091:0:11: ++%15X:0x100001091:1:11:4294967295: ++%*15X:0x100001091:0:11: ++%15X:+0:1:2:0: ++%*15X:+0:0:2: ++%15X:+0X0:1:4:0: ++%*15X:+0X0:0:4: ++%15X:+0x0:1:4:0: ++%*15X:+0x0:0:4: ++%15X:+1:1:2:1: ++%*15X:+1:0:2: ++%15X:+0X1:1:4:1: ++%*15X:+0X1:0:4: ++%15X:+0x1:1:4:1: ++%*15X:+0x1:0:4: ++%15X:+2a:1:3:42: ++%*15X:+2a:0:3: ++%15X:+2A:1:3:42: ++%*15X:+2A:0:3: ++%15X:+0X2a:1:5:42: ++%*15X:+0X2a:0:5: ++%15X:+0x2A:1:5:42: ++%*15X:+0x2A:0:5: ++%15X:+ffffffff:1:9:4294967295: ++%*15X:+ffffffff:0:9: ++%15X:+FFFFFFFF:1:9:4294967295: ++%*15X:+FFFFFFFF:0:9: ++%15X:+0Xffffffff:1:11:4294967295: ++%*15X:+0Xffffffff:0:11: ++%15X:+0xFFFFFFFF:1:11:4294967295: ++%*15X:+0xFFFFFFFF:0:11: ++%15X:+100000000:1:10:4294967295: ++%*15X:+100000000:0:10: ++%15X:+0X100000000:1:12:4294967295: ++%*15X:+0X100000000:0:12: ++%15X:+0x100000000:1:12:4294967295: ++%*15X:+0x100000000:0:12: ++%15X:+100001091:1:10:4294967295: ++%*15X:+100001091:0:10: ++%15X:+0X100001091:1:12:4294967295: ++%*15X:+0X100001091:0:12: ++%15X:+0x100001091:1:12:4294967295: ++%*15X:+0x100001091:0:12: ++%2X: :0:-1: ++%*2X: :0:-1: ++%2X: -7b:1:3:4294967289: ++%*2X: -7b:0:3: ++%2X: -7B:1:3:4294967289: ++%*2X: -7B:0:3: ++%2X: -0X7b:1:3:0: ++%*2X: -0X7b:0:3: ++%2X: -0x7B:1:3:0: ++%*2X: -0x7B:0:3: ++%2X: -1:1:3:4294967295: ++%*2X: -1:0:3: ++%2X: -0X1:1:3:0: ++%*2X: -0X1:0:3: ++%2X: -0x1:1:3:0: ++%*2X: -0x1:0:3: ++%2X: -0:1:3:0: ++%*2X: -0:0:3: ++%2X: -0X0:1:3:0: ++%*2X: -0X0:0:3: ++%2X: -0x0:1:3:0: ++%*2X: -0x0:0:3: ++%2X: 0:1:2:0: ++%*2X: 0:0:2: ++# BZ12701 %2X: 0X0:0:-1: ++# BZ12701 %*2X: 0X0:0:-1: ++# BZ12701 %2X: 0x0:0:-1: ++# BZ12701 %*2X: 0x0:0:-1: ++%2X: 1:1:2:1: ++%*2X: 1:0:2: ++# BZ12701 %2X: 0X1:0:-1: ++# BZ12701 %*2X: 0X1:0:-1: ++# BZ12701 %2X: 0x1:0:-1: ++# BZ12701 %*2X: 0x1:0:-1: ++%2X: 2a:1:3:42: ++%*2X: 2a:0:3: ++%2X: 2A:1:3:42: ++%*2X: 2A:0:3: ++# BZ12701 %2X: 0X2a:0:-1: ++# BZ12701 %*2X: 0X2a:0:-1: ++# BZ12701 %2X: 0x2A:0:-1: ++# BZ12701 %*2X: 0x2A:0:-1: ++%2X: ffffffff:1:3:255: ++%*2X: ffffffff:0:3: ++%2X: FFFFFFFF:1:3:255: ++%*2X: FFFFFFFF:0:3: ++# BZ12701 %2X: 0Xffffffff:0:-1: ++# BZ12701 %*2X: 0Xffffffff:0:-1: ++# BZ12701 %2X: 0xFFFFFFFF:0:-1: ++# BZ12701 %*2X: 0xFFFFFFFF:0:-1: ++%2X: 100000000:1:3:16: ++%*2X: 100000000:0:3: ++# BZ12701 %2X: 0X100000000:0:-1: ++# BZ12701 %*2X: 0X100000000:0:-1: ++# BZ12701 %2X: 0x100000000:0:-1: ++# BZ12701 %*2X: 0x100000000:0:-1: ++%2X: 100001091:1:3:16: ++%*2X: 100001091:0:3: ++# BZ12701 %2X: 0X100001091:0:-1: ++# BZ12701 %*2X: 0X100001091:0:-1: ++# BZ12701 %2X: 0x100001091:0:-1: ++# BZ12701 %*2X: 0x100001091:0:-1: ++%2X: +0:1:3:0: ++%*2X: +0:0:3: ++%2X: +0X0:1:3:0: ++%*2X: +0X0:0:3: ++%2X: +0x0:1:3:0: ++%*2X: +0x0:0:3: ++%2X: +1:1:3:1: ++%*2X: +1:0:3: ++%2X: +0X1:1:3:0: ++%*2X: +0X1:0:3: ++%2X: +0x1:1:3:0: ++%*2X: +0x1:0:3: ++%2X: +2a:1:3:2: ++%*2X: +2a:0:3: ++%2X: +2A:1:3:2: ++%*2X: +2A:0:3: ++%2X: +0X2a:1:3:0: ++%*2X: +0X2a:0:3: ++%2X: +0x2A:1:3:0: ++%*2X: +0x2A:0:3: ++%2X: +ffffffff:1:3:15: ++%*2X: +ffffffff:0:3: ++%2X: +FFFFFFFF:1:3:15: ++%*2X: +FFFFFFFF:0:3: ++%2X: +0Xffffffff:1:3:0: ++%*2X: +0Xffffffff:0:3: ++%2X: +0xFFFFFFFF:1:3:0: ++%*2X: +0xFFFFFFFF:0:3: ++%2X: +100000000:1:3:1: ++%*2X: +100000000:0:3: ++%2X: +0X100000000:1:3:0: ++%*2X: +0X100000000:0:3: ++%2X: +0x100000000:1:3:0: ++%*2X: +0x100000000:0:3: ++%2X: +100001091:1:3:1: ++%*2X: +100001091:0:3: ++%2X: +0X100001091:1:3:0: ++%*2X: +0X100001091:0:3: ++%2X: +0x100001091:1:3:0: ++%*2X: +0x100001091:0:3: ++%15X: :0:-1: ++%*15X: :0:-1: ++%15X: -7b:1:4:4294967173: ++%*15X: -7b:0:4: ++%15X: -7B:1:4:4294967173: ++%*15X: -7B:0:4: ++%15X: -0X7b:1:6:4294967173: ++%*15X: -0X7b:0:6: ++%15X: -0x7B:1:6:4294967173: ++%*15X: -0x7B:0:6: ++%15X: -1:1:3:4294967295: ++%*15X: -1:0:3: ++%15X: -0X1:1:5:4294967295: ++%*15X: -0X1:0:5: ++%15X: -0x1:1:5:4294967295: ++%*15X: -0x1:0:5: ++%15X: -0:1:3:0: ++%*15X: -0:0:3: ++%15X: -0X0:1:5:0: ++%*15X: -0X0:0:5: ++%15X: -0x0:1:5:0: ++%*15X: -0x0:0:5: ++%15X: 0:1:2:0: ++%*15X: 0:0:2: ++%15X: 0X0:1:4:0: ++%*15X: 0X0:0:4: ++%15X: 0x0:1:4:0: ++%*15X: 0x0:0:4: ++%15X: 1:1:2:1: ++%*15X: 1:0:2: ++%15X: 0X1:1:4:1: ++%*15X: 0X1:0:4: ++%15X: 0x1:1:4:1: ++%*15X: 0x1:0:4: ++%15X: 2a:1:3:42: ++%*15X: 2a:0:3: ++%15X: 2A:1:3:42: ++%*15X: 2A:0:3: ++%15X: 0X2a:1:5:42: ++%*15X: 0X2a:0:5: ++%15X: 0x2A:1:5:42: ++%*15X: 0x2A:0:5: ++%15X: ffffffff:1:9:4294967295: ++%*15X: ffffffff:0:9: ++%15X: FFFFFFFF:1:9:4294967295: ++%*15X: FFFFFFFF:0:9: ++%15X: 0Xffffffff:1:11:4294967295: ++%*15X: 0Xffffffff:0:11: ++%15X: 0xFFFFFFFF:1:11:4294967295: ++%*15X: 0xFFFFFFFF:0:11: ++%15X: 100000000:1:10:4294967295: ++%*15X: 100000000:0:10: ++%15X: 0X100000000:1:12:4294967295: ++%*15X: 0X100000000:0:12: ++%15X: 0x100000000:1:12:4294967295: ++%*15X: 0x100000000:0:12: ++%15X: 100001091:1:10:4294967295: ++%*15X: 100001091:0:10: ++%15X: 0X100001091:1:12:4294967295: ++%*15X: 0X100001091:0:12: ++%15X: 0x100001091:1:12:4294967295: ++%*15X: 0x100001091:0:12: ++%15X: +0:1:3:0: ++%*15X: +0:0:3: ++%15X: +0X0:1:5:0: ++%*15X: +0X0:0:5: ++%15X: +0x0:1:5:0: ++%*15X: +0x0:0:5: ++%15X: +1:1:3:1: ++%*15X: +1:0:3: ++%15X: +0X1:1:5:1: ++%*15X: +0X1:0:5: ++%15X: +0x1:1:5:1: ++%*15X: +0x1:0:5: ++%15X: +2a:1:4:42: ++%*15X: +2a:0:4: ++%15X: +2A:1:4:42: ++%*15X: +2A:0:4: ++%15X: +0X2a:1:6:42: ++%*15X: +0X2a:0:6: ++%15X: +0x2A:1:6:42: ++%*15X: +0x2A:0:6: ++%15X: +ffffffff:1:10:4294967295: ++%*15X: +ffffffff:0:10: ++%15X: +FFFFFFFF:1:10:4294967295: ++%*15X: +FFFFFFFF:0:10: ++%15X: +0Xffffffff:1:12:4294967295: ++%*15X: +0Xffffffff:0:12: ++%15X: +0xFFFFFFFF:1:12:4294967295: ++%*15X: +0xFFFFFFFF:0:12: ++%15X: +100000000:1:11:4294967295: ++%*15X: +100000000:0:11: ++%15X: +0X100000000:1:13:4294967295: ++%*15X: +0X100000000:0:13: ++%15X: +0x100000000:1:13:4294967295: ++%*15X: +0x100000000:0:13: ++%15X: +100001091:1:11:4294967295: ++%*15X: +100001091:0:11: ++%15X: +0X100001091:1:13:4294967295: ++%*15X: +0X100001091:0:13: ++%15X: +0x100001091:1:13:4294967295: ++%*15X: +0x100001091:0:13: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-ulong-b.input b/sysdeps/wordsize-32/tst-scanf-format-ulong-b.input +new file mode 100644 +index 0000000000000000..311ee862476f51d0 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-ulong-b.input +@@ -0,0 +1,644 @@ ++%lb::0:-1: ++%*lb::0:-1: ++%lb:-1111011:1:8:4294967173: ++%*lb:-1111011:0:8: ++%lb:-0B1111011:1:10:4294967173: ++%*lb:-0B1111011:0:10: ++%lb:-0b1111011:1:10:4294967173: ++%*lb:-0b1111011:0:10: ++%lb:-1:1:2:4294967295: ++%*lb:-1:0:2: ++%lb:-0B1:1:4:4294967295: ++%*lb:-0B1:0:4: ++%lb:-0b1:1:4:4294967295: ++%*lb:-0b1:0:4: ++%lb:-0:1:2:0: ++%*lb:-0:0:2: ++%lb:-0B0:1:4:0: ++%*lb:-0B0:0:4: ++%lb:-0b0:1:4:0: ++%*lb:-0b0:0:4: ++%lb:0:1:1:0: ++%*lb:0:0:1: ++%lb:0B0:1:3:0: ++%*lb:0B0:0:3: ++%lb:0b0:1:3:0: ++%*lb:0b0:0:3: ++%lb:1:1:1:1: ++%*lb:1:0:1: ++%lb:0B1:1:3:1: ++%*lb:0B1:0:3: ++%lb:0b1:1:3:1: ++%*lb:0b1:0:3: ++%lb:101010:1:6:42: ++%*lb:101010:0:6: ++%lb:0B101010:1:8:42: ++%*lb:0B101010:0:8: ++%lb:0b101010:1:8:42: ++%*lb:0b101010:0:8: ++%lb:11111111111111111111111111111111:1:32:4294967295: ++%*lb:11111111111111111111111111111111:0:32: ++%lb:0B11111111111111111111111111111111:1:34:4294967295: ++%*lb:0B11111111111111111111111111111111:0:34: ++%lb:0b11111111111111111111111111111111:1:34:4294967295: ++%*lb:0b11111111111111111111111111111111:0:34: ++%lb:100000000000000000000000000000000:1:33:4294967295: ++%*lb:100000000000000000000000000000000:0:33: ++%lb:0B100000000000000000000000000000000:1:35:4294967295: ++%*lb:0B100000000000000000000000000000000:0:35: ++%lb:0b100000000000000000000000000000000:1:35:4294967295: ++%*lb:0b100000000000000000000000000000000:0:35: ++%lb:100000000000000000001000010010001:1:33:4294967295: ++%*lb:100000000000000000001000010010001:0:33: ++%lb:0B100000000000000000001000010010001:1:35:4294967295: ++%*lb:0B100000000000000000001000010010001:0:35: ++%lb:0b100000000000000000001000010010001:1:35:4294967295: ++%*lb:0b100000000000000000001000010010001:0:35: ++%lb:+0:1:2:0: ++%*lb:+0:0:2: ++%lb:+0B0:1:4:0: ++%*lb:+0B0:0:4: ++%lb:+0b0:1:4:0: ++%*lb:+0b0:0:4: ++%lb:+1:1:2:1: ++%*lb:+1:0:2: ++%lb:+0B1:1:4:1: ++%*lb:+0B1:0:4: ++%lb:+0b1:1:4:1: ++%*lb:+0b1:0:4: ++%lb:+101010:1:7:42: ++%*lb:+101010:0:7: ++%lb:+0B101010:1:9:42: ++%*lb:+0B101010:0:9: ++%lb:+0b101010:1:9:42: ++%*lb:+0b101010:0:9: ++%lb:+11111111111111111111111111111111:1:33:4294967295: ++%*lb:+11111111111111111111111111111111:0:33: ++%lb:+0B11111111111111111111111111111111:1:35:4294967295: ++%*lb:+0B11111111111111111111111111111111:0:35: ++%lb:+0b11111111111111111111111111111111:1:35:4294967295: ++%*lb:+0b11111111111111111111111111111111:0:35: ++%lb:+100000000000000000000000000000000:1:34:4294967295: ++%*lb:+100000000000000000000000000000000:0:34: ++%lb:+0B100000000000000000000000000000000:1:36:4294967295: ++%*lb:+0B100000000000000000000000000000000:0:36: ++%lb:+0b100000000000000000000000000000000:1:36:4294967295: ++%*lb:+0b100000000000000000000000000000000:0:36: ++%lb:+100000000000000000001000010010001:1:34:4294967295: ++%*lb:+100000000000000000001000010010001:0:34: ++%lb:+0B100000000000000000001000010010001:1:36:4294967295: ++%*lb:+0B100000000000000000001000010010001:0:36: ++%lb:+0b100000000000000000001000010010001:1:36:4294967295: ++%*lb:+0b100000000000000000001000010010001:0:36: ++%1lb::0:-1: ++%*1lb::0:-1: ++%1lb:-1111011:0:-1: ++%*1lb:-1111011:0:-1: ++%1lb:-0B1111011:0:-1: ++%*1lb:-0B1111011:0:-1: ++%1lb:-0b1111011:0:-1: ++%*1lb:-0b1111011:0:-1: ++%1lb:-1:0:-1: ++%*1lb:-1:0:-1: ++%1lb:-0B1:0:-1: ++%*1lb:-0B1:0:-1: ++%1lb:-0b1:0:-1: ++%*1lb:-0b1:0:-1: ++%1lb:-0:0:-1: ++%*1lb:-0:0:-1: ++%1lb:-0B0:0:-1: ++%*1lb:-0B0:0:-1: ++%1lb:-0b0:0:-1: ++%*1lb:-0b0:0:-1: ++%1lb:0:1:1:0: ++%*1lb:0:0:1: ++%1lb:0B0:1:1:0: ++%*1lb:0B0:0:1: ++%1lb:0b0:1:1:0: ++%*1lb:0b0:0:1: ++%1lb:1:1:1:1: ++%*1lb:1:0:1: ++%1lb:0B1:1:1:0: ++%*1lb:0B1:0:1: ++%1lb:0b1:1:1:0: ++%*1lb:0b1:0:1: ++%1lb:101010:1:1:1: ++%*1lb:101010:0:1: ++%1lb:0B101010:1:1:0: ++%*1lb:0B101010:0:1: ++%1lb:0b101010:1:1:0: ++%*1lb:0b101010:0:1: ++%1lb:11111111111111111111111111111111:1:1:1: ++%*1lb:11111111111111111111111111111111:0:1: ++%1lb:0B11111111111111111111111111111111:1:1:0: ++%*1lb:0B11111111111111111111111111111111:0:1: ++%1lb:0b11111111111111111111111111111111:1:1:0: ++%*1lb:0b11111111111111111111111111111111:0:1: ++%1lb:100000000000000000000000000000000:1:1:1: ++%*1lb:100000000000000000000000000000000:0:1: ++%1lb:0B100000000000000000000000000000000:1:1:0: ++%*1lb:0B100000000000000000000000000000000:0:1: ++%1lb:0b100000000000000000000000000000000:1:1:0: ++%*1lb:0b100000000000000000000000000000000:0:1: ++%1lb:100000000000000000001000010010001:1:1:1: ++%*1lb:100000000000000000001000010010001:0:1: ++%1lb:0B100000000000000000001000010010001:1:1:0: ++%*1lb:0B100000000000000000001000010010001:0:1: ++%1lb:0b100000000000000000001000010010001:1:1:0: ++%*1lb:0b100000000000000000001000010010001:0:1: ++%1lb:+0:0:-1: ++%*1lb:+0:0:-1: ++%1lb:+0B0:0:-1: ++%*1lb:+0B0:0:-1: ++%1lb:+0b0:0:-1: ++%*1lb:+0b0:0:-1: ++%1lb:+1:0:-1: ++%*1lb:+1:0:-1: ++%1lb:+0B1:0:-1: ++%*1lb:+0B1:0:-1: ++%1lb:+0b1:0:-1: ++%*1lb:+0b1:0:-1: ++%1lb:+101010:0:-1: ++%*1lb:+101010:0:-1: ++%1lb:+0B101010:0:-1: ++%*1lb:+0B101010:0:-1: ++%1lb:+0b101010:0:-1: ++%*1lb:+0b101010:0:-1: ++%1lb:+11111111111111111111111111111111:0:-1: ++%*1lb:+11111111111111111111111111111111:0:-1: ++%1lb:+0B11111111111111111111111111111111:0:-1: ++%*1lb:+0B11111111111111111111111111111111:0:-1: ++%1lb:+0b11111111111111111111111111111111:0:-1: ++%*1lb:+0b11111111111111111111111111111111:0:-1: ++%1lb:+100000000000000000000000000000000:0:-1: ++%*1lb:+100000000000000000000000000000000:0:-1: ++%1lb:+0B100000000000000000000000000000000:0:-1: ++%*1lb:+0B100000000000000000000000000000000:0:-1: ++%1lb:+0b100000000000000000000000000000000:0:-1: ++%*1lb:+0b100000000000000000000000000000000:0:-1: ++%1lb:+100000000000000000001000010010001:0:-1: ++%*1lb:+100000000000000000001000010010001:0:-1: ++%1lb:+0B100000000000000000001000010010001:0:-1: ++%*1lb:+0B100000000000000000001000010010001:0:-1: ++%1lb:+0b100000000000000000001000010010001:0:-1: ++%*1lb:+0b100000000000000000001000010010001:0:-1: ++%2lb::0:-1: ++%*2lb::0:-1: ++%2lb:-1111011:1:2:4294967295: ++%*2lb:-1111011:0:2: ++%2lb:-0B1111011:1:2:0: ++%*2lb:-0B1111011:0:2: ++%2lb:-0b1111011:1:2:0: ++%*2lb:-0b1111011:0:2: ++%2lb:-1:1:2:4294967295: ++%*2lb:-1:0:2: ++%2lb:-0B1:1:2:0: ++%*2lb:-0B1:0:2: ++%2lb:-0b1:1:2:0: ++%*2lb:-0b1:0:2: ++%2lb:-0:1:2:0: ++%*2lb:-0:0:2: ++%2lb:-0B0:1:2:0: ++%*2lb:-0B0:0:2: ++%2lb:-0b0:1:2:0: ++%*2lb:-0b0:0:2: ++%2lb:0:1:1:0: ++%*2lb:0:0:1: ++# BZ12701 %2lb:0B0:0:-1: ++# BZ12701 %*2lb:0B0:0:-1: ++# BZ12701 %2lb:0b0:0:-1: ++# BZ12701 %*2lb:0b0:0:-1: ++%2lb:1:1:1:1: ++%*2lb:1:0:1: ++# BZ12701 %2lb:0B1:0:-1: ++# BZ12701 %*2lb:0B1:0:-1: ++# BZ12701 %2lb:0b1:0:-1: ++# BZ12701 %*2lb:0b1:0:-1: ++%2lb:101010:1:2:2: ++%*2lb:101010:0:2: ++# BZ12701 %2lb:0B101010:0:-1: ++# BZ12701 %*2lb:0B101010:0:-1: ++# BZ12701 %2lb:0b101010:0:-1: ++# BZ12701 %*2lb:0b101010:0:-1: ++%2lb:11111111111111111111111111111111:1:2:3: ++%*2lb:11111111111111111111111111111111:0:2: ++# BZ12701 %2lb:0B11111111111111111111111111111111:0:-1: ++# BZ12701 %*2lb:0B11111111111111111111111111111111:0:-1: ++# BZ12701 %2lb:0b11111111111111111111111111111111:0:-1: ++# BZ12701 %*2lb:0b11111111111111111111111111111111:0:-1: ++%2lb:100000000000000000000000000000000:1:2:2: ++%*2lb:100000000000000000000000000000000:0:2: ++# BZ12701 %2lb:0B100000000000000000000000000000000:0:-1: ++# BZ12701 %*2lb:0B100000000000000000000000000000000:0:-1: ++# BZ12701 %2lb:0b100000000000000000000000000000000:0:-1: ++# BZ12701 %*2lb:0b100000000000000000000000000000000:0:-1: ++%2lb:100000000000000000001000010010001:1:2:2: ++%*2lb:100000000000000000001000010010001:0:2: ++# BZ12701 %2lb:0B100000000000000000001000010010001:0:-1: ++# BZ12701 %*2lb:0B100000000000000000001000010010001:0:-1: ++# BZ12701 %2lb:0b100000000000000000001000010010001:0:-1: ++# BZ12701 %*2lb:0b100000000000000000001000010010001:0:-1: ++%2lb:+0:1:2:0: ++%*2lb:+0:0:2: ++%2lb:+0B0:1:2:0: ++%*2lb:+0B0:0:2: ++%2lb:+0b0:1:2:0: ++%*2lb:+0b0:0:2: ++%2lb:+1:1:2:1: ++%*2lb:+1:0:2: ++%2lb:+0B1:1:2:0: ++%*2lb:+0B1:0:2: ++%2lb:+0b1:1:2:0: ++%*2lb:+0b1:0:2: ++%2lb:+101010:1:2:1: ++%*2lb:+101010:0:2: ++%2lb:+0B101010:1:2:0: ++%*2lb:+0B101010:0:2: ++%2lb:+0b101010:1:2:0: ++%*2lb:+0b101010:0:2: ++%2lb:+11111111111111111111111111111111:1:2:1: ++%*2lb:+11111111111111111111111111111111:0:2: ++%2lb:+0B11111111111111111111111111111111:1:2:0: ++%*2lb:+0B11111111111111111111111111111111:0:2: ++%2lb:+0b11111111111111111111111111111111:1:2:0: ++%*2lb:+0b11111111111111111111111111111111:0:2: ++%2lb:+100000000000000000000000000000000:1:2:1: ++%*2lb:+100000000000000000000000000000000:0:2: ++%2lb:+0B100000000000000000000000000000000:1:2:0: ++%*2lb:+0B100000000000000000000000000000000:0:2: ++%2lb:+0b100000000000000000000000000000000:1:2:0: ++%*2lb:+0b100000000000000000000000000000000:0:2: ++%2lb:+100000000000000000001000010010001:1:2:1: ++%*2lb:+100000000000000000001000010010001:0:2: ++%2lb:+0B100000000000000000001000010010001:1:2:0: ++%*2lb:+0B100000000000000000001000010010001:0:2: ++%2lb:+0b100000000000000000001000010010001:1:2:0: ++%*2lb:+0b100000000000000000001000010010001:0:2: ++%8lb::0:-1: ++%*8lb::0:-1: ++%8lb:-1111011:1:8:4294967173: ++%*8lb:-1111011:0:8: ++%8lb:-0B1111011:1:8:4294967266: ++%*8lb:-0B1111011:0:8: ++%8lb:-0b1111011:1:8:4294967266: ++%*8lb:-0b1111011:0:8: ++%8lb:-1:1:2:4294967295: ++%*8lb:-1:0:2: ++%8lb:-0B1:1:4:4294967295: ++%*8lb:-0B1:0:4: ++%8lb:-0b1:1:4:4294967295: ++%*8lb:-0b1:0:4: ++%8lb:-0:1:2:0: ++%*8lb:-0:0:2: ++%8lb:-0B0:1:4:0: ++%*8lb:-0B0:0:4: ++%8lb:-0b0:1:4:0: ++%*8lb:-0b0:0:4: ++%8lb:0:1:1:0: ++%*8lb:0:0:1: ++%8lb:0B0:1:3:0: ++%*8lb:0B0:0:3: ++%8lb:0b0:1:3:0: ++%*8lb:0b0:0:3: ++%8lb:1:1:1:1: ++%*8lb:1:0:1: ++%8lb:0B1:1:3:1: ++%*8lb:0B1:0:3: ++%8lb:0b1:1:3:1: ++%*8lb:0b1:0:3: ++%8lb:101010:1:6:42: ++%*8lb:101010:0:6: ++%8lb:0B101010:1:8:42: ++%*8lb:0B101010:0:8: ++%8lb:0b101010:1:8:42: ++%*8lb:0b101010:0:8: ++%8lb:11111111111111111111111111111111:1:8:255: ++%*8lb:11111111111111111111111111111111:0:8: ++%8lb:0B11111111111111111111111111111111:1:8:63: ++%*8lb:0B11111111111111111111111111111111:0:8: ++%8lb:0b11111111111111111111111111111111:1:8:63: ++%*8lb:0b11111111111111111111111111111111:0:8: ++%8lb:100000000000000000000000000000000:1:8:128: ++%*8lb:100000000000000000000000000000000:0:8: ++%8lb:0B100000000000000000000000000000000:1:8:32: ++%*8lb:0B100000000000000000000000000000000:0:8: ++%8lb:0b100000000000000000000000000000000:1:8:32: ++%*8lb:0b100000000000000000000000000000000:0:8: ++%8lb:100000000000000000001000010010001:1:8:128: ++%*8lb:100000000000000000001000010010001:0:8: ++%8lb:0B100000000000000000001000010010001:1:8:32: ++%*8lb:0B100000000000000000001000010010001:0:8: ++%8lb:0b100000000000000000001000010010001:1:8:32: ++%*8lb:0b100000000000000000001000010010001:0:8: ++%8lb:+0:1:2:0: ++%*8lb:+0:0:2: ++%8lb:+0B0:1:4:0: ++%*8lb:+0B0:0:4: ++%8lb:+0b0:1:4:0: ++%*8lb:+0b0:0:4: ++%8lb:+1:1:2:1: ++%*8lb:+1:0:2: ++%8lb:+0B1:1:4:1: ++%*8lb:+0B1:0:4: ++%8lb:+0b1:1:4:1: ++%*8lb:+0b1:0:4: ++%8lb:+101010:1:7:42: ++%*8lb:+101010:0:7: ++%8lb:+0B101010:1:8:21: ++%*8lb:+0B101010:0:8: ++%8lb:+0b101010:1:8:21: ++%*8lb:+0b101010:0:8: ++%8lb:+11111111111111111111111111111111:1:8:127: ++%*8lb:+11111111111111111111111111111111:0:8: ++%8lb:+0B11111111111111111111111111111111:1:8:31: ++%*8lb:+0B11111111111111111111111111111111:0:8: ++%8lb:+0b11111111111111111111111111111111:1:8:31: ++%*8lb:+0b11111111111111111111111111111111:0:8: ++%8lb:+100000000000000000000000000000000:1:8:64: ++%*8lb:+100000000000000000000000000000000:0:8: ++%8lb:+0B100000000000000000000000000000000:1:8:16: ++%*8lb:+0B100000000000000000000000000000000:0:8: ++%8lb:+0b100000000000000000000000000000000:1:8:16: ++%*8lb:+0b100000000000000000000000000000000:0:8: ++%8lb:+100000000000000000001000010010001:1:8:64: ++%*8lb:+100000000000000000001000010010001:0:8: ++%8lb:+0B100000000000000000001000010010001:1:8:16: ++%*8lb:+0B100000000000000000001000010010001:0:8: ++%8lb:+0b100000000000000000001000010010001:1:8:16: ++%*8lb:+0b100000000000000000001000010010001:0:8: ++%15lb::0:-1: ++%*15lb::0:-1: ++%15lb:-1111011:1:8:4294967173: ++%*15lb:-1111011:0:8: ++%15lb:-0B1111011:1:10:4294967173: ++%*15lb:-0B1111011:0:10: ++%15lb:-0b1111011:1:10:4294967173: ++%*15lb:-0b1111011:0:10: ++%15lb:-1:1:2:4294967295: ++%*15lb:-1:0:2: ++%15lb:-0B1:1:4:4294967295: ++%*15lb:-0B1:0:4: ++%15lb:-0b1:1:4:4294967295: ++%*15lb:-0b1:0:4: ++%15lb:-0:1:2:0: ++%*15lb:-0:0:2: ++%15lb:-0B0:1:4:0: ++%*15lb:-0B0:0:4: ++%15lb:-0b0:1:4:0: ++%*15lb:-0b0:0:4: ++%15lb:0:1:1:0: ++%*15lb:0:0:1: ++%15lb:0B0:1:3:0: ++%*15lb:0B0:0:3: ++%15lb:0b0:1:3:0: ++%*15lb:0b0:0:3: ++%15lb:1:1:1:1: ++%*15lb:1:0:1: ++%15lb:0B1:1:3:1: ++%*15lb:0B1:0:3: ++%15lb:0b1:1:3:1: ++%*15lb:0b1:0:3: ++%15lb:101010:1:6:42: ++%*15lb:101010:0:6: ++%15lb:0B101010:1:8:42: ++%*15lb:0B101010:0:8: ++%15lb:0b101010:1:8:42: ++%*15lb:0b101010:0:8: ++%15lb:11111111111111111111111111111111:1:15:32767: ++%*15lb:11111111111111111111111111111111:0:15: ++%15lb:0B11111111111111111111111111111111:1:15:8191: ++%*15lb:0B11111111111111111111111111111111:0:15: ++%15lb:0b11111111111111111111111111111111:1:15:8191: ++%*15lb:0b11111111111111111111111111111111:0:15: ++%15lb:100000000000000000000000000000000:1:15:16384: ++%*15lb:100000000000000000000000000000000:0:15: ++%15lb:0B100000000000000000000000000000000:1:15:4096: ++%*15lb:0B100000000000000000000000000000000:0:15: ++%15lb:0b100000000000000000000000000000000:1:15:4096: ++%*15lb:0b100000000000000000000000000000000:0:15: ++%15lb:100000000000000000001000010010001:1:15:16384: ++%*15lb:100000000000000000001000010010001:0:15: ++%15lb:0B100000000000000000001000010010001:1:15:4096: ++%*15lb:0B100000000000000000001000010010001:0:15: ++%15lb:0b100000000000000000001000010010001:1:15:4096: ++%*15lb:0b100000000000000000001000010010001:0:15: ++%15lb:+0:1:2:0: ++%*15lb:+0:0:2: ++%15lb:+0B0:1:4:0: ++%*15lb:+0B0:0:4: ++%15lb:+0b0:1:4:0: ++%*15lb:+0b0:0:4: ++%15lb:+1:1:2:1: ++%*15lb:+1:0:2: ++%15lb:+0B1:1:4:1: ++%*15lb:+0B1:0:4: ++%15lb:+0b1:1:4:1: ++%*15lb:+0b1:0:4: ++%15lb:+101010:1:7:42: ++%*15lb:+101010:0:7: ++%15lb:+0B101010:1:9:42: ++%*15lb:+0B101010:0:9: ++%15lb:+0b101010:1:9:42: ++%*15lb:+0b101010:0:9: ++%15lb:+11111111111111111111111111111111:1:15:16383: ++%*15lb:+11111111111111111111111111111111:0:15: ++%15lb:+0B11111111111111111111111111111111:1:15:4095: ++%*15lb:+0B11111111111111111111111111111111:0:15: ++%15lb:+0b11111111111111111111111111111111:1:15:4095: ++%*15lb:+0b11111111111111111111111111111111:0:15: ++%15lb:+100000000000000000000000000000000:1:15:8192: ++%*15lb:+100000000000000000000000000000000:0:15: ++%15lb:+0B100000000000000000000000000000000:1:15:2048: ++%*15lb:+0B100000000000000000000000000000000:0:15: ++%15lb:+0b100000000000000000000000000000000:1:15:2048: ++%*15lb:+0b100000000000000000000000000000000:0:15: ++%15lb:+100000000000000000001000010010001:1:15:8192: ++%*15lb:+100000000000000000001000010010001:0:15: ++%15lb:+0B100000000000000000001000010010001:1:15:2048: ++%*15lb:+0B100000000000000000001000010010001:0:15: ++%15lb:+0b100000000000000000001000010010001:1:15:2048: ++%*15lb:+0b100000000000000000001000010010001:0:15: ++%2lb: :0:-1: ++%*2lb: :0:-1: ++%2lb: -1111011:1:3:4294967295: ++%*2lb: -1111011:0:3: ++%2lb: -0B1111011:1:3:0: ++%*2lb: -0B1111011:0:3: ++%2lb: -0b1111011:1:3:0: ++%*2lb: -0b1111011:0:3: ++%2lb: -1:1:3:4294967295: ++%*2lb: -1:0:3: ++%2lb: -0B1:1:3:0: ++%*2lb: -0B1:0:3: ++%2lb: -0b1:1:3:0: ++%*2lb: -0b1:0:3: ++%2lb: -0:1:3:0: ++%*2lb: -0:0:3: ++%2lb: -0B0:1:3:0: ++%*2lb: -0B0:0:3: ++%2lb: -0b0:1:3:0: ++%*2lb: -0b0:0:3: ++%2lb: 0:1:2:0: ++%*2lb: 0:0:2: ++# BZ12701 %2lb: 0B0:0:-1: ++# BZ12701 %*2lb: 0B0:0:-1: ++# BZ12701 %2lb: 0b0:0:-1: ++# BZ12701 %*2lb: 0b0:0:-1: ++%2lb: 1:1:2:1: ++%*2lb: 1:0:2: ++# BZ12701 %2lb: 0B1:0:-1: ++# BZ12701 %*2lb: 0B1:0:-1: ++# BZ12701 %2lb: 0b1:0:-1: ++# BZ12701 %*2lb: 0b1:0:-1: ++%2lb: 101010:1:3:2: ++%*2lb: 101010:0:3: ++# BZ12701 %2lb: 0B101010:0:-1: ++# BZ12701 %*2lb: 0B101010:0:-1: ++# BZ12701 %2lb: 0b101010:0:-1: ++# BZ12701 %*2lb: 0b101010:0:-1: ++%2lb: 11111111111111111111111111111111:1:3:3: ++%*2lb: 11111111111111111111111111111111:0:3: ++# BZ12701 %2lb: 0B11111111111111111111111111111111:0:-1: ++# BZ12701 %*2lb: 0B11111111111111111111111111111111:0:-1: ++# BZ12701 %2lb: 0b11111111111111111111111111111111:0:-1: ++# BZ12701 %*2lb: 0b11111111111111111111111111111111:0:-1: ++%2lb: 100000000000000000000000000000000:1:3:2: ++%*2lb: 100000000000000000000000000000000:0:3: ++# BZ12701 %2lb: 0B100000000000000000000000000000000:0:-1: ++# BZ12701 %*2lb: 0B100000000000000000000000000000000:0:-1: ++# BZ12701 %2lb: 0b100000000000000000000000000000000:0:-1: ++# BZ12701 %*2lb: 0b100000000000000000000000000000000:0:-1: ++%2lb: 100000000000000000001000010010001:1:3:2: ++%*2lb: 100000000000000000001000010010001:0:3: ++# BZ12701 %2lb: 0B100000000000000000001000010010001:0:-1: ++# BZ12701 %*2lb: 0B100000000000000000001000010010001:0:-1: ++# BZ12701 %2lb: 0b100000000000000000001000010010001:0:-1: ++# BZ12701 %*2lb: 0b100000000000000000001000010010001:0:-1: ++%2lb: +0:1:3:0: ++%*2lb: +0:0:3: ++%2lb: +0B0:1:3:0: ++%*2lb: +0B0:0:3: ++%2lb: +0b0:1:3:0: ++%*2lb: +0b0:0:3: ++%2lb: +1:1:3:1: ++%*2lb: +1:0:3: ++%2lb: +0B1:1:3:0: ++%*2lb: +0B1:0:3: ++%2lb: +0b1:1:3:0: ++%*2lb: +0b1:0:3: ++%2lb: +101010:1:3:1: ++%*2lb: +101010:0:3: ++%2lb: +0B101010:1:3:0: ++%*2lb: +0B101010:0:3: ++%2lb: +0b101010:1:3:0: ++%*2lb: +0b101010:0:3: ++%2lb: +11111111111111111111111111111111:1:3:1: ++%*2lb: +11111111111111111111111111111111:0:3: ++%2lb: +0B11111111111111111111111111111111:1:3:0: ++%*2lb: +0B11111111111111111111111111111111:0:3: ++%2lb: +0b11111111111111111111111111111111:1:3:0: ++%*2lb: +0b11111111111111111111111111111111:0:3: ++%2lb: +100000000000000000000000000000000:1:3:1: ++%*2lb: +100000000000000000000000000000000:0:3: ++%2lb: +0B100000000000000000000000000000000:1:3:0: ++%*2lb: +0B100000000000000000000000000000000:0:3: ++%2lb: +0b100000000000000000000000000000000:1:3:0: ++%*2lb: +0b100000000000000000000000000000000:0:3: ++%2lb: +100000000000000000001000010010001:1:3:1: ++%*2lb: +100000000000000000001000010010001:0:3: ++%2lb: +0B100000000000000000001000010010001:1:3:0: ++%*2lb: +0B100000000000000000001000010010001:0:3: ++%2lb: +0b100000000000000000001000010010001:1:3:0: ++%*2lb: +0b100000000000000000001000010010001:0:3: ++%15lb: :0:-1: ++%*15lb: :0:-1: ++%15lb: -1111011:1:9:4294967173: ++%*15lb: -1111011:0:9: ++%15lb: -0B1111011:1:11:4294967173: ++%*15lb: -0B1111011:0:11: ++%15lb: -0b1111011:1:11:4294967173: ++%*15lb: -0b1111011:0:11: ++%15lb: -1:1:3:4294967295: ++%*15lb: -1:0:3: ++%15lb: -0B1:1:5:4294967295: ++%*15lb: -0B1:0:5: ++%15lb: -0b1:1:5:4294967295: ++%*15lb: -0b1:0:5: ++%15lb: -0:1:3:0: ++%*15lb: -0:0:3: ++%15lb: -0B0:1:5:0: ++%*15lb: -0B0:0:5: ++%15lb: -0b0:1:5:0: ++%*15lb: -0b0:0:5: ++%15lb: 0:1:2:0: ++%*15lb: 0:0:2: ++%15lb: 0B0:1:4:0: ++%*15lb: 0B0:0:4: ++%15lb: 0b0:1:4:0: ++%*15lb: 0b0:0:4: ++%15lb: 1:1:2:1: ++%*15lb: 1:0:2: ++%15lb: 0B1:1:4:1: ++%*15lb: 0B1:0:4: ++%15lb: 0b1:1:4:1: ++%*15lb: 0b1:0:4: ++%15lb: 101010:1:7:42: ++%*15lb: 101010:0:7: ++%15lb: 0B101010:1:9:42: ++%*15lb: 0B101010:0:9: ++%15lb: 0b101010:1:9:42: ++%*15lb: 0b101010:0:9: ++%15lb: 11111111111111111111111111111111:1:16:32767: ++%*15lb: 11111111111111111111111111111111:0:16: ++%15lb: 0B11111111111111111111111111111111:1:16:8191: ++%*15lb: 0B11111111111111111111111111111111:0:16: ++%15lb: 0b11111111111111111111111111111111:1:16:8191: ++%*15lb: 0b11111111111111111111111111111111:0:16: ++%15lb: 100000000000000000000000000000000:1:16:16384: ++%*15lb: 100000000000000000000000000000000:0:16: ++%15lb: 0B100000000000000000000000000000000:1:16:4096: ++%*15lb: 0B100000000000000000000000000000000:0:16: ++%15lb: 0b100000000000000000000000000000000:1:16:4096: ++%*15lb: 0b100000000000000000000000000000000:0:16: ++%15lb: 100000000000000000001000010010001:1:16:16384: ++%*15lb: 100000000000000000001000010010001:0:16: ++%15lb: 0B100000000000000000001000010010001:1:16:4096: ++%*15lb: 0B100000000000000000001000010010001:0:16: ++%15lb: 0b100000000000000000001000010010001:1:16:4096: ++%*15lb: 0b100000000000000000001000010010001:0:16: ++%15lb: +0:1:3:0: ++%*15lb: +0:0:3: ++%15lb: +0B0:1:5:0: ++%*15lb: +0B0:0:5: ++%15lb: +0b0:1:5:0: ++%*15lb: +0b0:0:5: ++%15lb: +1:1:3:1: ++%*15lb: +1:0:3: ++%15lb: +0B1:1:5:1: ++%*15lb: +0B1:0:5: ++%15lb: +0b1:1:5:1: ++%*15lb: +0b1:0:5: ++%15lb: +101010:1:8:42: ++%*15lb: +101010:0:8: ++%15lb: +0B101010:1:10:42: ++%*15lb: +0B101010:0:10: ++%15lb: +0b101010:1:10:42: ++%*15lb: +0b101010:0:10: ++%15lb: +11111111111111111111111111111111:1:16:16383: ++%*15lb: +11111111111111111111111111111111:0:16: ++%15lb: +0B11111111111111111111111111111111:1:16:4095: ++%*15lb: +0B11111111111111111111111111111111:0:16: ++%15lb: +0b11111111111111111111111111111111:1:16:4095: ++%*15lb: +0b11111111111111111111111111111111:0:16: ++%15lb: +100000000000000000000000000000000:1:16:8192: ++%*15lb: +100000000000000000000000000000000:0:16: ++%15lb: +0B100000000000000000000000000000000:1:16:2048: ++%*15lb: +0B100000000000000000000000000000000:0:16: ++%15lb: +0b100000000000000000000000000000000:1:16:2048: ++%*15lb: +0b100000000000000000000000000000000:0:16: ++%15lb: +100000000000000000001000010010001:1:16:8192: ++%*15lb: +100000000000000000001000010010001:0:16: ++%15lb: +0B100000000000000000001000010010001:1:16:2048: ++%*15lb: +0B100000000000000000001000010010001:0:16: ++%15lb: +0b100000000000000000001000010010001:1:16:2048: ++%*15lb: +0b100000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-ulong-o.input b/sysdeps/wordsize-32/tst-scanf-format-ulong-o.input +new file mode 100644 +index 0000000000000000..b350aa96bdf54d33 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-ulong-o.input +@@ -0,0 +1,434 @@ ++%lo::0:-1: ++%*lo::0:-1: ++%lo:-173:1:4:4294967173: ++%*lo:-173:0:4: ++%lo:-0173:1:5:4294967173: ++%*lo:-0173:0:5: ++%lo:-1:1:2:4294967295: ++%*lo:-1:0:2: ++%lo:-01:1:3:4294967295: ++%*lo:-01:0:3: ++%lo:-0:1:2:0: ++%*lo:-0:0:2: ++%lo:-00:1:3:0: ++%*lo:-00:0:3: ++%lo:0:1:1:0: ++%*lo:0:0:1: ++%lo:00:1:2:0: ++%*lo:00:0:2: ++%lo:1:1:1:1: ++%*lo:1:0:1: ++%lo:01:1:2:1: ++%*lo:01:0:2: ++%lo:52:1:2:42: ++%*lo:52:0:2: ++%lo:052:1:3:42: ++%*lo:052:0:3: ++%lo:37777777777:1:11:4294967295: ++%*lo:37777777777:0:11: ++%lo:037777777777:1:12:4294967295: ++%*lo:037777777777:0:12: ++%lo:40000000000:1:11:4294967295: ++%*lo:40000000000:0:11: ++%lo:040000000000:1:12:4294967295: ++%*lo:040000000000:0:12: ++%lo:40000010221:1:11:4294967295: ++%*lo:40000010221:0:11: ++%lo:040000010221:1:12:4294967295: ++%*lo:040000010221:0:12: ++%lo:+0:1:2:0: ++%*lo:+0:0:2: ++%lo:+00:1:3:0: ++%*lo:+00:0:3: ++%lo:+1:1:2:1: ++%*lo:+1:0:2: ++%lo:+01:1:3:1: ++%*lo:+01:0:3: ++%lo:+52:1:3:42: ++%*lo:+52:0:3: ++%lo:+052:1:4:42: ++%*lo:+052:0:4: ++%lo:+37777777777:1:12:4294967295: ++%*lo:+37777777777:0:12: ++%lo:+037777777777:1:13:4294967295: ++%*lo:+037777777777:0:13: ++%lo:+40000000000:1:12:4294967295: ++%*lo:+40000000000:0:12: ++%lo:+040000000000:1:13:4294967295: ++%*lo:+040000000000:0:13: ++%lo:+40000010221:1:12:4294967295: ++%*lo:+40000010221:0:12: ++%lo:+040000010221:1:13:4294967295: ++%*lo:+040000010221:0:13: ++%1lo::0:-1: ++%*1lo::0:-1: ++%1lo:-173:0:-1: ++%*1lo:-173:0:-1: ++%1lo:-0173:0:-1: ++%*1lo:-0173:0:-1: ++%1lo:-1:0:-1: ++%*1lo:-1:0:-1: ++%1lo:-01:0:-1: ++%*1lo:-01:0:-1: ++%1lo:-0:0:-1: ++%*1lo:-0:0:-1: ++%1lo:-00:0:-1: ++%*1lo:-00:0:-1: ++%1lo:0:1:1:0: ++%*1lo:0:0:1: ++%1lo:00:1:1:0: ++%*1lo:00:0:1: ++%1lo:1:1:1:1: ++%*1lo:1:0:1: ++%1lo:01:1:1:0: ++%*1lo:01:0:1: ++%1lo:52:1:1:5: ++%*1lo:52:0:1: ++%1lo:052:1:1:0: ++%*1lo:052:0:1: ++%1lo:37777777777:1:1:3: ++%*1lo:37777777777:0:1: ++%1lo:037777777777:1:1:0: ++%*1lo:037777777777:0:1: ++%1lo:40000000000:1:1:4: ++%*1lo:40000000000:0:1: ++%1lo:040000000000:1:1:0: ++%*1lo:040000000000:0:1: ++%1lo:40000010221:1:1:4: ++%*1lo:40000010221:0:1: ++%1lo:040000010221:1:1:0: ++%*1lo:040000010221:0:1: ++%1lo:+0:0:-1: ++%*1lo:+0:0:-1: ++%1lo:+00:0:-1: ++%*1lo:+00:0:-1: ++%1lo:+1:0:-1: ++%*1lo:+1:0:-1: ++%1lo:+01:0:-1: ++%*1lo:+01:0:-1: ++%1lo:+52:0:-1: ++%*1lo:+52:0:-1: ++%1lo:+052:0:-1: ++%*1lo:+052:0:-1: ++%1lo:+37777777777:0:-1: ++%*1lo:+37777777777:0:-1: ++%1lo:+037777777777:0:-1: ++%*1lo:+037777777777:0:-1: ++%1lo:+40000000000:0:-1: ++%*1lo:+40000000000:0:-1: ++%1lo:+040000000000:0:-1: ++%*1lo:+040000000000:0:-1: ++%1lo:+40000010221:0:-1: ++%*1lo:+40000010221:0:-1: ++%1lo:+040000010221:0:-1: ++%*1lo:+040000010221:0:-1: ++%2lo::0:-1: ++%*2lo::0:-1: ++%2lo:-173:1:2:4294967295: ++%*2lo:-173:0:2: ++%2lo:-0173:1:2:0: ++%*2lo:-0173:0:2: ++%2lo:-1:1:2:4294967295: ++%*2lo:-1:0:2: ++%2lo:-01:1:2:0: ++%*2lo:-01:0:2: ++%2lo:-0:1:2:0: ++%*2lo:-0:0:2: ++%2lo:-00:1:2:0: ++%*2lo:-00:0:2: ++%2lo:0:1:1:0: ++%*2lo:0:0:1: ++%2lo:00:1:2:0: ++%*2lo:00:0:2: ++%2lo:1:1:1:1: ++%*2lo:1:0:1: ++%2lo:01:1:2:1: ++%*2lo:01:0:2: ++%2lo:52:1:2:42: ++%*2lo:52:0:2: ++%2lo:052:1:2:5: ++%*2lo:052:0:2: ++%2lo:37777777777:1:2:31: ++%*2lo:37777777777:0:2: ++%2lo:037777777777:1:2:3: ++%*2lo:037777777777:0:2: ++%2lo:40000000000:1:2:32: ++%*2lo:40000000000:0:2: ++%2lo:040000000000:1:2:4: ++%*2lo:040000000000:0:2: ++%2lo:40000010221:1:2:32: ++%*2lo:40000010221:0:2: ++%2lo:040000010221:1:2:4: ++%*2lo:040000010221:0:2: ++%2lo:+0:1:2:0: ++%*2lo:+0:0:2: ++%2lo:+00:1:2:0: ++%*2lo:+00:0:2: ++%2lo:+1:1:2:1: ++%*2lo:+1:0:2: ++%2lo:+01:1:2:0: ++%*2lo:+01:0:2: ++%2lo:+52:1:2:5: ++%*2lo:+52:0:2: ++%2lo:+052:1:2:0: ++%*2lo:+052:0:2: ++%2lo:+37777777777:1:2:3: ++%*2lo:+37777777777:0:2: ++%2lo:+037777777777:1:2:0: ++%*2lo:+037777777777:0:2: ++%2lo:+40000000000:1:2:4: ++%*2lo:+40000000000:0:2: ++%2lo:+040000000000:1:2:0: ++%*2lo:+040000000000:0:2: ++%2lo:+40000010221:1:2:4: ++%*2lo:+40000010221:0:2: ++%2lo:+040000010221:1:2:0: ++%*2lo:+040000010221:0:2: ++%8lo::0:-1: ++%*8lo::0:-1: ++%8lo:-173:1:4:4294967173: ++%*8lo:-173:0:4: ++%8lo:-0173:1:5:4294967173: ++%*8lo:-0173:0:5: ++%8lo:-1:1:2:4294967295: ++%*8lo:-1:0:2: ++%8lo:-01:1:3:4294967295: ++%*8lo:-01:0:3: ++%8lo:-0:1:2:0: ++%*8lo:-0:0:2: ++%8lo:-00:1:3:0: ++%*8lo:-00:0:3: ++%8lo:0:1:1:0: ++%*8lo:0:0:1: ++%8lo:00:1:2:0: ++%*8lo:00:0:2: ++%8lo:1:1:1:1: ++%*8lo:1:0:1: ++%8lo:01:1:2:1: ++%*8lo:01:0:2: ++%8lo:52:1:2:42: ++%*8lo:52:0:2: ++%8lo:052:1:3:42: ++%*8lo:052:0:3: ++%8lo:37777777777:1:8:8388607: ++%*8lo:37777777777:0:8: ++%8lo:037777777777:1:8:1048575: ++%*8lo:037777777777:0:8: ++%8lo:40000000000:1:8:8388608: ++%*8lo:40000000000:0:8: ++%8lo:040000000000:1:8:1048576: ++%*8lo:040000000000:0:8: ++%8lo:40000010221:1:8:8388616: ++%*8lo:40000010221:0:8: ++%8lo:040000010221:1:8:1048577: ++%*8lo:040000010221:0:8: ++%8lo:+0:1:2:0: ++%*8lo:+0:0:2: ++%8lo:+00:1:3:0: ++%*8lo:+00:0:3: ++%8lo:+1:1:2:1: ++%*8lo:+1:0:2: ++%8lo:+01:1:3:1: ++%*8lo:+01:0:3: ++%8lo:+52:1:3:42: ++%*8lo:+52:0:3: ++%8lo:+052:1:4:42: ++%*8lo:+052:0:4: ++%8lo:+37777777777:1:8:1048575: ++%*8lo:+37777777777:0:8: ++%8lo:+037777777777:1:8:131071: ++%*8lo:+037777777777:0:8: ++%8lo:+40000000000:1:8:1048576: ++%*8lo:+40000000000:0:8: ++%8lo:+040000000000:1:8:131072: ++%*8lo:+040000000000:0:8: ++%8lo:+40000010221:1:8:1048577: ++%*8lo:+40000010221:0:8: ++%8lo:+040000010221:1:8:131072: ++%*8lo:+040000010221:0:8: ++%15lo::0:-1: ++%*15lo::0:-1: ++%15lo:-173:1:4:4294967173: ++%*15lo:-173:0:4: ++%15lo:-0173:1:5:4294967173: ++%*15lo:-0173:0:5: ++%15lo:-1:1:2:4294967295: ++%*15lo:-1:0:2: ++%15lo:-01:1:3:4294967295: ++%*15lo:-01:0:3: ++%15lo:-0:1:2:0: ++%*15lo:-0:0:2: ++%15lo:-00:1:3:0: ++%*15lo:-00:0:3: ++%15lo:0:1:1:0: ++%*15lo:0:0:1: ++%15lo:00:1:2:0: ++%*15lo:00:0:2: ++%15lo:1:1:1:1: ++%*15lo:1:0:1: ++%15lo:01:1:2:1: ++%*15lo:01:0:2: ++%15lo:52:1:2:42: ++%*15lo:52:0:2: ++%15lo:052:1:3:42: ++%*15lo:052:0:3: ++%15lo:37777777777:1:11:4294967295: ++%*15lo:37777777777:0:11: ++%15lo:037777777777:1:12:4294967295: ++%*15lo:037777777777:0:12: ++%15lo:40000000000:1:11:4294967295: ++%*15lo:40000000000:0:11: ++%15lo:040000000000:1:12:4294967295: ++%*15lo:040000000000:0:12: ++%15lo:40000010221:1:11:4294967295: ++%*15lo:40000010221:0:11: ++%15lo:040000010221:1:12:4294967295: ++%*15lo:040000010221:0:12: ++%15lo:+0:1:2:0: ++%*15lo:+0:0:2: ++%15lo:+00:1:3:0: ++%*15lo:+00:0:3: ++%15lo:+1:1:2:1: ++%*15lo:+1:0:2: ++%15lo:+01:1:3:1: ++%*15lo:+01:0:3: ++%15lo:+52:1:3:42: ++%*15lo:+52:0:3: ++%15lo:+052:1:4:42: ++%*15lo:+052:0:4: ++%15lo:+37777777777:1:12:4294967295: ++%*15lo:+37777777777:0:12: ++%15lo:+037777777777:1:13:4294967295: ++%*15lo:+037777777777:0:13: ++%15lo:+40000000000:1:12:4294967295: ++%*15lo:+40000000000:0:12: ++%15lo:+040000000000:1:13:4294967295: ++%*15lo:+040000000000:0:13: ++%15lo:+40000010221:1:12:4294967295: ++%*15lo:+40000010221:0:12: ++%15lo:+040000010221:1:13:4294967295: ++%*15lo:+040000010221:0:13: ++%2lo: :0:-1: ++%*2lo: :0:-1: ++%2lo: -173:1:3:4294967295: ++%*2lo: -173:0:3: ++%2lo: -0173:1:3:0: ++%*2lo: -0173:0:3: ++%2lo: -1:1:3:4294967295: ++%*2lo: -1:0:3: ++%2lo: -01:1:3:0: ++%*2lo: -01:0:3: ++%2lo: -0:1:3:0: ++%*2lo: -0:0:3: ++%2lo: -00:1:3:0: ++%*2lo: -00:0:3: ++%2lo: 0:1:2:0: ++%*2lo: 0:0:2: ++%2lo: 00:1:3:0: ++%*2lo: 00:0:3: ++%2lo: 1:1:2:1: ++%*2lo: 1:0:2: ++%2lo: 01:1:3:1: ++%*2lo: 01:0:3: ++%2lo: 52:1:3:42: ++%*2lo: 52:0:3: ++%2lo: 052:1:3:5: ++%*2lo: 052:0:3: ++%2lo: 37777777777:1:3:31: ++%*2lo: 37777777777:0:3: ++%2lo: 037777777777:1:3:3: ++%*2lo: 037777777777:0:3: ++%2lo: 40000000000:1:3:32: ++%*2lo: 40000000000:0:3: ++%2lo: 040000000000:1:3:4: ++%*2lo: 040000000000:0:3: ++%2lo: 40000010221:1:3:32: ++%*2lo: 40000010221:0:3: ++%2lo: 040000010221:1:3:4: ++%*2lo: 040000010221:0:3: ++%2lo: +0:1:3:0: ++%*2lo: +0:0:3: ++%2lo: +00:1:3:0: ++%*2lo: +00:0:3: ++%2lo: +1:1:3:1: ++%*2lo: +1:0:3: ++%2lo: +01:1:3:0: ++%*2lo: +01:0:3: ++%2lo: +52:1:3:5: ++%*2lo: +52:0:3: ++%2lo: +052:1:3:0: ++%*2lo: +052:0:3: ++%2lo: +37777777777:1:3:3: ++%*2lo: +37777777777:0:3: ++%2lo: +037777777777:1:3:0: ++%*2lo: +037777777777:0:3: ++%2lo: +40000000000:1:3:4: ++%*2lo: +40000000000:0:3: ++%2lo: +040000000000:1:3:0: ++%*2lo: +040000000000:0:3: ++%2lo: +40000010221:1:3:4: ++%*2lo: +40000010221:0:3: ++%2lo: +040000010221:1:3:0: ++%*2lo: +040000010221:0:3: ++%15lo: :0:-1: ++%*15lo: :0:-1: ++%15lo: -173:1:5:4294967173: ++%*15lo: -173:0:5: ++%15lo: -0173:1:6:4294967173: ++%*15lo: -0173:0:6: ++%15lo: -1:1:3:4294967295: ++%*15lo: -1:0:3: ++%15lo: -01:1:4:4294967295: ++%*15lo: -01:0:4: ++%15lo: -0:1:3:0: ++%*15lo: -0:0:3: ++%15lo: -00:1:4:0: ++%*15lo: -00:0:4: ++%15lo: 0:1:2:0: ++%*15lo: 0:0:2: ++%15lo: 00:1:3:0: ++%*15lo: 00:0:3: ++%15lo: 1:1:2:1: ++%*15lo: 1:0:2: ++%15lo: 01:1:3:1: ++%*15lo: 01:0:3: ++%15lo: 52:1:3:42: ++%*15lo: 52:0:3: ++%15lo: 052:1:4:42: ++%*15lo: 052:0:4: ++%15lo: 37777777777:1:12:4294967295: ++%*15lo: 37777777777:0:12: ++%15lo: 037777777777:1:13:4294967295: ++%*15lo: 037777777777:0:13: ++%15lo: 40000000000:1:12:4294967295: ++%*15lo: 40000000000:0:12: ++%15lo: 040000000000:1:13:4294967295: ++%*15lo: 040000000000:0:13: ++%15lo: 40000010221:1:12:4294967295: ++%*15lo: 40000010221:0:12: ++%15lo: 040000010221:1:13:4294967295: ++%*15lo: 040000010221:0:13: ++%15lo: +0:1:3:0: ++%*15lo: +0:0:3: ++%15lo: +00:1:4:0: ++%*15lo: +00:0:4: ++%15lo: +1:1:3:1: ++%*15lo: +1:0:3: ++%15lo: +01:1:4:1: ++%*15lo: +01:0:4: ++%15lo: +52:1:4:42: ++%*15lo: +52:0:4: ++%15lo: +052:1:5:42: ++%*15lo: +052:0:5: ++%15lo: +37777777777:1:13:4294967295: ++%*15lo: +37777777777:0:13: ++%15lo: +037777777777:1:14:4294967295: ++%*15lo: +037777777777:0:14: ++%15lo: +40000000000:1:13:4294967295: ++%*15lo: +40000000000:0:13: ++%15lo: +040000000000:1:14:4294967295: ++%*15lo: +040000000000:0:14: ++%15lo: +40000010221:1:13:4294967295: ++%*15lo: +40000010221:0:13: ++%15lo: +040000010221:1:14:4294967295: ++%*15lo: +040000010221:0:14: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-ulong-u.input b/sysdeps/wordsize-32/tst-scanf-format-ulong-u.input +new file mode 100644 +index 0000000000000000..5895e3d0fd44af15 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-ulong-u.input +@@ -0,0 +1,224 @@ ++%lu::0:-1: ++%*lu::0:-1: ++%lu:-123:1:4:4294967173: ++%*lu:-123:0:4: ++%lu:-1:1:2:4294967295: ++%*lu:-1:0:2: ++%lu:-0:1:2:0: ++%*lu:-0:0:2: ++%lu:0:1:1:0: ++%*lu:0:0:1: ++%lu:1:1:1:1: ++%*lu:1:0:1: ++%lu:42:1:2:42: ++%*lu:42:0:2: ++%lu:4294967295:1:10:4294967295: ++%*lu:4294967295:0:10: ++%lu:4294967296:1:10:4294967295: ++%*lu:4294967296:0:10: ++%lu:4294971537:1:10:4294967295: ++%*lu:4294971537:0:10: ++%lu:+0:1:2:0: ++%*lu:+0:0:2: ++%lu:+1:1:2:1: ++%*lu:+1:0:2: ++%lu:+42:1:3:42: ++%*lu:+42:0:3: ++%lu:+4294967295:1:11:4294967295: ++%*lu:+4294967295:0:11: ++%lu:+4294967296:1:11:4294967295: ++%*lu:+4294967296:0:11: ++%lu:+4294971537:1:11:4294967295: ++%*lu:+4294971537:0:11: ++%1lu::0:-1: ++%*1lu::0:-1: ++%1lu:-123:0:-1: ++%*1lu:-123:0:-1: ++%1lu:-1:0:-1: ++%*1lu:-1:0:-1: ++%1lu:-0:0:-1: ++%*1lu:-0:0:-1: ++%1lu:0:1:1:0: ++%*1lu:0:0:1: ++%1lu:1:1:1:1: ++%*1lu:1:0:1: ++%1lu:42:1:1:4: ++%*1lu:42:0:1: ++%1lu:4294967295:1:1:4: ++%*1lu:4294967295:0:1: ++%1lu:4294967296:1:1:4: ++%*1lu:4294967296:0:1: ++%1lu:4294971537:1:1:4: ++%*1lu:4294971537:0:1: ++%1lu:+0:0:-1: ++%*1lu:+0:0:-1: ++%1lu:+1:0:-1: ++%*1lu:+1:0:-1: ++%1lu:+42:0:-1: ++%*1lu:+42:0:-1: ++%1lu:+4294967295:0:-1: ++%*1lu:+4294967295:0:-1: ++%1lu:+4294967296:0:-1: ++%*1lu:+4294967296:0:-1: ++%1lu:+4294971537:0:-1: ++%*1lu:+4294971537:0:-1: ++%2lu::0:-1: ++%*2lu::0:-1: ++%2lu:-123:1:2:4294967295: ++%*2lu:-123:0:2: ++%2lu:-1:1:2:4294967295: ++%*2lu:-1:0:2: ++%2lu:-0:1:2:0: ++%*2lu:-0:0:2: ++%2lu:0:1:1:0: ++%*2lu:0:0:1: ++%2lu:1:1:1:1: ++%*2lu:1:0:1: ++%2lu:42:1:2:42: ++%*2lu:42:0:2: ++%2lu:4294967295:1:2:42: ++%*2lu:4294967295:0:2: ++%2lu:4294967296:1:2:42: ++%*2lu:4294967296:0:2: ++%2lu:4294971537:1:2:42: ++%*2lu:4294971537:0:2: ++%2lu:+0:1:2:0: ++%*2lu:+0:0:2: ++%2lu:+1:1:2:1: ++%*2lu:+1:0:2: ++%2lu:+42:1:2:4: ++%*2lu:+42:0:2: ++%2lu:+4294967295:1:2:4: ++%*2lu:+4294967295:0:2: ++%2lu:+4294967296:1:2:4: ++%*2lu:+4294967296:0:2: ++%2lu:+4294971537:1:2:4: ++%*2lu:+4294971537:0:2: ++%8lu::0:-1: ++%*8lu::0:-1: ++%8lu:-123:1:4:4294967173: ++%*8lu:-123:0:4: ++%8lu:-1:1:2:4294967295: ++%*8lu:-1:0:2: ++%8lu:-0:1:2:0: ++%*8lu:-0:0:2: ++%8lu:0:1:1:0: ++%*8lu:0:0:1: ++%8lu:1:1:1:1: ++%*8lu:1:0:1: ++%8lu:42:1:2:42: ++%*8lu:42:0:2: ++%8lu:4294967295:1:8:42949672: ++%*8lu:4294967295:0:8: ++%8lu:4294967296:1:8:42949672: ++%*8lu:4294967296:0:8: ++%8lu:4294971537:1:8:42949715: ++%*8lu:4294971537:0:8: ++%8lu:+0:1:2:0: ++%*8lu:+0:0:2: ++%8lu:+1:1:2:1: ++%*8lu:+1:0:2: ++%8lu:+42:1:3:42: ++%*8lu:+42:0:3: ++%8lu:+4294967295:1:8:4294967: ++%*8lu:+4294967295:0:8: ++%8lu:+4294967296:1:8:4294967: ++%*8lu:+4294967296:0:8: ++%8lu:+4294971537:1:8:4294971: ++%*8lu:+4294971537:0:8: ++%15lu::0:-1: ++%*15lu::0:-1: ++%15lu:-123:1:4:4294967173: ++%*15lu:-123:0:4: ++%15lu:-1:1:2:4294967295: ++%*15lu:-1:0:2: ++%15lu:-0:1:2:0: ++%*15lu:-0:0:2: ++%15lu:0:1:1:0: ++%*15lu:0:0:1: ++%15lu:1:1:1:1: ++%*15lu:1:0:1: ++%15lu:42:1:2:42: ++%*15lu:42:0:2: ++%15lu:4294967295:1:10:4294967295: ++%*15lu:4294967295:0:10: ++%15lu:4294967296:1:10:4294967295: ++%*15lu:4294967296:0:10: ++%15lu:4294971537:1:10:4294967295: ++%*15lu:4294971537:0:10: ++%15lu:+0:1:2:0: ++%*15lu:+0:0:2: ++%15lu:+1:1:2:1: ++%*15lu:+1:0:2: ++%15lu:+42:1:3:42: ++%*15lu:+42:0:3: ++%15lu:+4294967295:1:11:4294967295: ++%*15lu:+4294967295:0:11: ++%15lu:+4294967296:1:11:4294967295: ++%*15lu:+4294967296:0:11: ++%15lu:+4294971537:1:11:4294967295: ++%*15lu:+4294971537:0:11: ++%2lu: :0:-1: ++%*2lu: :0:-1: ++%2lu: -123:1:3:4294967295: ++%*2lu: -123:0:3: ++%2lu: -1:1:3:4294967295: ++%*2lu: -1:0:3: ++%2lu: -0:1:3:0: ++%*2lu: -0:0:3: ++%2lu: 0:1:2:0: ++%*2lu: 0:0:2: ++%2lu: 1:1:2:1: ++%*2lu: 1:0:2: ++%2lu: 42:1:3:42: ++%*2lu: 42:0:3: ++%2lu: 4294967295:1:3:42: ++%*2lu: 4294967295:0:3: ++%2lu: 4294967296:1:3:42: ++%*2lu: 4294967296:0:3: ++%2lu: 4294971537:1:3:42: ++%*2lu: 4294971537:0:3: ++%2lu: +0:1:3:0: ++%*2lu: +0:0:3: ++%2lu: +1:1:3:1: ++%*2lu: +1:0:3: ++%2lu: +42:1:3:4: ++%*2lu: +42:0:3: ++%2lu: +4294967295:1:3:4: ++%*2lu: +4294967295:0:3: ++%2lu: +4294967296:1:3:4: ++%*2lu: +4294967296:0:3: ++%2lu: +4294971537:1:3:4: ++%*2lu: +4294971537:0:3: ++%15lu: :0:-1: ++%*15lu: :0:-1: ++%15lu: -123:1:5:4294967173: ++%*15lu: -123:0:5: ++%15lu: -1:1:3:4294967295: ++%*15lu: -1:0:3: ++%15lu: -0:1:3:0: ++%*15lu: -0:0:3: ++%15lu: 0:1:2:0: ++%*15lu: 0:0:2: ++%15lu: 1:1:2:1: ++%*15lu: 1:0:2: ++%15lu: 42:1:3:42: ++%*15lu: 42:0:3: ++%15lu: 4294967295:1:11:4294967295: ++%*15lu: 4294967295:0:11: ++%15lu: 4294967296:1:11:4294967295: ++%*15lu: 4294967296:0:11: ++%15lu: 4294971537:1:11:4294967295: ++%*15lu: 4294971537:0:11: ++%15lu: +0:1:3:0: ++%*15lu: +0:0:3: ++%15lu: +1:1:3:1: ++%*15lu: +1:0:3: ++%15lu: +42:1:4:42: ++%*15lu: +42:0:4: ++%15lu: +4294967295:1:12:4294967295: ++%*15lu: +4294967295:0:12: ++%15lu: +4294967296:1:12:4294967295: ++%*15lu: +4294967296:0:12: ++%15lu: +4294971537:1:12:4294967295: ++%*15lu: +4294971537:0:12: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-ulong-x.input b/sysdeps/wordsize-32/tst-scanf-format-ulong-x.input +new file mode 100644 +index 0000000000000000..28ae944ad5c9ce26 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-ulong-x.input +@@ -0,0 +1,714 @@ ++%lx::0:-1: ++%*lx::0:-1: ++%lx:-7b:1:3:4294967173: ++%*lx:-7b:0:3: ++%lx:-7B:1:3:4294967173: ++%*lx:-7B:0:3: ++%lx:-0X7b:1:5:4294967173: ++%*lx:-0X7b:0:5: ++%lx:-0x7B:1:5:4294967173: ++%*lx:-0x7B:0:5: ++%lx:-1:1:2:4294967295: ++%*lx:-1:0:2: ++%lx:-0X1:1:4:4294967295: ++%*lx:-0X1:0:4: ++%lx:-0x1:1:4:4294967295: ++%*lx:-0x1:0:4: ++%lx:-0:1:2:0: ++%*lx:-0:0:2: ++%lx:-0X0:1:4:0: ++%*lx:-0X0:0:4: ++%lx:-0x0:1:4:0: ++%*lx:-0x0:0:4: ++%lx:0:1:1:0: ++%*lx:0:0:1: ++%lx:0X0:1:3:0: ++%*lx:0X0:0:3: ++%lx:0x0:1:3:0: ++%*lx:0x0:0:3: ++%lx:1:1:1:1: ++%*lx:1:0:1: ++%lx:0X1:1:3:1: ++%*lx:0X1:0:3: ++%lx:0x1:1:3:1: ++%*lx:0x1:0:3: ++%lx:2a:1:2:42: ++%*lx:2a:0:2: ++%lx:2A:1:2:42: ++%*lx:2A:0:2: ++%lx:0X2a:1:4:42: ++%*lx:0X2a:0:4: ++%lx:0x2A:1:4:42: ++%*lx:0x2A:0:4: ++%lx:ffffffff:1:8:4294967295: ++%*lx:ffffffff:0:8: ++%lx:FFFFFFFF:1:8:4294967295: ++%*lx:FFFFFFFF:0:8: ++%lx:0Xffffffff:1:10:4294967295: ++%*lx:0Xffffffff:0:10: ++%lx:0xFFFFFFFF:1:10:4294967295: ++%*lx:0xFFFFFFFF:0:10: ++%lx:100000000:1:9:4294967295: ++%*lx:100000000:0:9: ++%lx:0X100000000:1:11:4294967295: ++%*lx:0X100000000:0:11: ++%lx:0x100000000:1:11:4294967295: ++%*lx:0x100000000:0:11: ++%lx:100001091:1:9:4294967295: ++%*lx:100001091:0:9: ++%lx:0X100001091:1:11:4294967295: ++%*lx:0X100001091:0:11: ++%lx:0x100001091:1:11:4294967295: ++%*lx:0x100001091:0:11: ++%lx:+0:1:2:0: ++%*lx:+0:0:2: ++%lx:+0X0:1:4:0: ++%*lx:+0X0:0:4: ++%lx:+0x0:1:4:0: ++%*lx:+0x0:0:4: ++%lx:+1:1:2:1: ++%*lx:+1:0:2: ++%lx:+0X1:1:4:1: ++%*lx:+0X1:0:4: ++%lx:+0x1:1:4:1: ++%*lx:+0x1:0:4: ++%lx:+2a:1:3:42: ++%*lx:+2a:0:3: ++%lx:+2A:1:3:42: ++%*lx:+2A:0:3: ++%lx:+0X2a:1:5:42: ++%*lx:+0X2a:0:5: ++%lx:+0x2A:1:5:42: ++%*lx:+0x2A:0:5: ++%lx:+ffffffff:1:9:4294967295: ++%*lx:+ffffffff:0:9: ++%lx:+FFFFFFFF:1:9:4294967295: ++%*lx:+FFFFFFFF:0:9: ++%lx:+0Xffffffff:1:11:4294967295: ++%*lx:+0Xffffffff:0:11: ++%lx:+0xFFFFFFFF:1:11:4294967295: ++%*lx:+0xFFFFFFFF:0:11: ++%lx:+100000000:1:10:4294967295: ++%*lx:+100000000:0:10: ++%lx:+0X100000000:1:12:4294967295: ++%*lx:+0X100000000:0:12: ++%lx:+0x100000000:1:12:4294967295: ++%*lx:+0x100000000:0:12: ++%lx:+100001091:1:10:4294967295: ++%*lx:+100001091:0:10: ++%lx:+0X100001091:1:12:4294967295: ++%*lx:+0X100001091:0:12: ++%lx:+0x100001091:1:12:4294967295: ++%*lx:+0x100001091:0:12: ++%1lx::0:-1: ++%*1lx::0:-1: ++%1lx:-7b:0:-1: ++%*1lx:-7b:0:-1: ++%1lx:-7B:0:-1: ++%*1lx:-7B:0:-1: ++%1lx:-0X7b:0:-1: ++%*1lx:-0X7b:0:-1: ++%1lx:-0x7B:0:-1: ++%*1lx:-0x7B:0:-1: ++%1lx:-1:0:-1: ++%*1lx:-1:0:-1: ++%1lx:-0X1:0:-1: ++%*1lx:-0X1:0:-1: ++%1lx:-0x1:0:-1: ++%*1lx:-0x1:0:-1: ++%1lx:-0:0:-1: ++%*1lx:-0:0:-1: ++%1lx:-0X0:0:-1: ++%*1lx:-0X0:0:-1: ++%1lx:-0x0:0:-1: ++%*1lx:-0x0:0:-1: ++%1lx:0:1:1:0: ++%*1lx:0:0:1: ++%1lx:0X0:1:1:0: ++%*1lx:0X0:0:1: ++%1lx:0x0:1:1:0: ++%*1lx:0x0:0:1: ++%1lx:1:1:1:1: ++%*1lx:1:0:1: ++%1lx:0X1:1:1:0: ++%*1lx:0X1:0:1: ++%1lx:0x1:1:1:0: ++%*1lx:0x1:0:1: ++%1lx:2a:1:1:2: ++%*1lx:2a:0:1: ++%1lx:2A:1:1:2: ++%*1lx:2A:0:1: ++%1lx:0X2a:1:1:0: ++%*1lx:0X2a:0:1: ++%1lx:0x2A:1:1:0: ++%*1lx:0x2A:0:1: ++%1lx:ffffffff:1:1:15: ++%*1lx:ffffffff:0:1: ++%1lx:FFFFFFFF:1:1:15: ++%*1lx:FFFFFFFF:0:1: ++%1lx:0Xffffffff:1:1:0: ++%*1lx:0Xffffffff:0:1: ++%1lx:0xFFFFFFFF:1:1:0: ++%*1lx:0xFFFFFFFF:0:1: ++%1lx:100000000:1:1:1: ++%*1lx:100000000:0:1: ++%1lx:0X100000000:1:1:0: ++%*1lx:0X100000000:0:1: ++%1lx:0x100000000:1:1:0: ++%*1lx:0x100000000:0:1: ++%1lx:100001091:1:1:1: ++%*1lx:100001091:0:1: ++%1lx:0X100001091:1:1:0: ++%*1lx:0X100001091:0:1: ++%1lx:0x100001091:1:1:0: ++%*1lx:0x100001091:0:1: ++%1lx:+0:0:-1: ++%*1lx:+0:0:-1: ++%1lx:+0X0:0:-1: ++%*1lx:+0X0:0:-1: ++%1lx:+0x0:0:-1: ++%*1lx:+0x0:0:-1: ++%1lx:+1:0:-1: ++%*1lx:+1:0:-1: ++%1lx:+0X1:0:-1: ++%*1lx:+0X1:0:-1: ++%1lx:+0x1:0:-1: ++%*1lx:+0x1:0:-1: ++%1lx:+2a:0:-1: ++%*1lx:+2a:0:-1: ++%1lx:+2A:0:-1: ++%*1lx:+2A:0:-1: ++%1lx:+0X2a:0:-1: ++%*1lx:+0X2a:0:-1: ++%1lx:+0x2A:0:-1: ++%*1lx:+0x2A:0:-1: ++%1lx:+ffffffff:0:-1: ++%*1lx:+ffffffff:0:-1: ++%1lx:+FFFFFFFF:0:-1: ++%*1lx:+FFFFFFFF:0:-1: ++%1lx:+0Xffffffff:0:-1: ++%*1lx:+0Xffffffff:0:-1: ++%1lx:+0xFFFFFFFF:0:-1: ++%*1lx:+0xFFFFFFFF:0:-1: ++%1lx:+100000000:0:-1: ++%*1lx:+100000000:0:-1: ++%1lx:+0X100000000:0:-1: ++%*1lx:+0X100000000:0:-1: ++%1lx:+0x100000000:0:-1: ++%*1lx:+0x100000000:0:-1: ++%1lx:+100001091:0:-1: ++%*1lx:+100001091:0:-1: ++%1lx:+0X100001091:0:-1: ++%*1lx:+0X100001091:0:-1: ++%1lx:+0x100001091:0:-1: ++%*1lx:+0x100001091:0:-1: ++%2lx::0:-1: ++%*2lx::0:-1: ++%2lx:-7b:1:2:4294967289: ++%*2lx:-7b:0:2: ++%2lx:-7B:1:2:4294967289: ++%*2lx:-7B:0:2: ++%2lx:-0X7b:1:2:0: ++%*2lx:-0X7b:0:2: ++%2lx:-0x7B:1:2:0: ++%*2lx:-0x7B:0:2: ++%2lx:-1:1:2:4294967295: ++%*2lx:-1:0:2: ++%2lx:-0X1:1:2:0: ++%*2lx:-0X1:0:2: ++%2lx:-0x1:1:2:0: ++%*2lx:-0x1:0:2: ++%2lx:-0:1:2:0: ++%*2lx:-0:0:2: ++%2lx:-0X0:1:2:0: ++%*2lx:-0X0:0:2: ++%2lx:-0x0:1:2:0: ++%*2lx:-0x0:0:2: ++%2lx:0:1:1:0: ++%*2lx:0:0:1: ++# BZ12701 %2lx:0X0:0:-1: ++# BZ12701 %*2lx:0X0:0:-1: ++# BZ12701 %2lx:0x0:0:-1: ++# BZ12701 %*2lx:0x0:0:-1: ++%2lx:1:1:1:1: ++%*2lx:1:0:1: ++# BZ12701 %2lx:0X1:0:-1: ++# BZ12701 %*2lx:0X1:0:-1: ++# BZ12701 %2lx:0x1:0:-1: ++# BZ12701 %*2lx:0x1:0:-1: ++%2lx:2a:1:2:42: ++%*2lx:2a:0:2: ++%2lx:2A:1:2:42: ++%*2lx:2A:0:2: ++# BZ12701 %2lx:0X2a:0:-1: ++# BZ12701 %*2lx:0X2a:0:-1: ++# BZ12701 %2lx:0x2A:0:-1: ++# BZ12701 %*2lx:0x2A:0:-1: ++%2lx:ffffffff:1:2:255: ++%*2lx:ffffffff:0:2: ++%2lx:FFFFFFFF:1:2:255: ++%*2lx:FFFFFFFF:0:2: ++# BZ12701 %2lx:0Xffffffff:0:-1: ++# BZ12701 %*2lx:0Xffffffff:0:-1: ++# BZ12701 %2lx:0xFFFFFFFF:0:-1: ++# BZ12701 %*2lx:0xFFFFFFFF:0:-1: ++%2lx:100000000:1:2:16: ++%*2lx:100000000:0:2: ++# BZ12701 %2lx:0X100000000:0:-1: ++# BZ12701 %*2lx:0X100000000:0:-1: ++# BZ12701 %2lx:0x100000000:0:-1: ++# BZ12701 %*2lx:0x100000000:0:-1: ++%2lx:100001091:1:2:16: ++%*2lx:100001091:0:2: ++# BZ12701 %2lx:0X100001091:0:-1: ++# BZ12701 %*2lx:0X100001091:0:-1: ++# BZ12701 %2lx:0x100001091:0:-1: ++# BZ12701 %*2lx:0x100001091:0:-1: ++%2lx:+0:1:2:0: ++%*2lx:+0:0:2: ++%2lx:+0X0:1:2:0: ++%*2lx:+0X0:0:2: ++%2lx:+0x0:1:2:0: ++%*2lx:+0x0:0:2: ++%2lx:+1:1:2:1: ++%*2lx:+1:0:2: ++%2lx:+0X1:1:2:0: ++%*2lx:+0X1:0:2: ++%2lx:+0x1:1:2:0: ++%*2lx:+0x1:0:2: ++%2lx:+2a:1:2:2: ++%*2lx:+2a:0:2: ++%2lx:+2A:1:2:2: ++%*2lx:+2A:0:2: ++%2lx:+0X2a:1:2:0: ++%*2lx:+0X2a:0:2: ++%2lx:+0x2A:1:2:0: ++%*2lx:+0x2A:0:2: ++%2lx:+ffffffff:1:2:15: ++%*2lx:+ffffffff:0:2: ++%2lx:+FFFFFFFF:1:2:15: ++%*2lx:+FFFFFFFF:0:2: ++%2lx:+0Xffffffff:1:2:0: ++%*2lx:+0Xffffffff:0:2: ++%2lx:+0xFFFFFFFF:1:2:0: ++%*2lx:+0xFFFFFFFF:0:2: ++%2lx:+100000000:1:2:1: ++%*2lx:+100000000:0:2: ++%2lx:+0X100000000:1:2:0: ++%*2lx:+0X100000000:0:2: ++%2lx:+0x100000000:1:2:0: ++%*2lx:+0x100000000:0:2: ++%2lx:+100001091:1:2:1: ++%*2lx:+100001091:0:2: ++%2lx:+0X100001091:1:2:0: ++%*2lx:+0X100001091:0:2: ++%2lx:+0x100001091:1:2:0: ++%*2lx:+0x100001091:0:2: ++%8lx::0:-1: ++%*8lx::0:-1: ++%8lx:-7b:1:3:4294967173: ++%*8lx:-7b:0:3: ++%8lx:-7B:1:3:4294967173: ++%*8lx:-7B:0:3: ++%8lx:-0X7b:1:5:4294967173: ++%*8lx:-0X7b:0:5: ++%8lx:-0x7B:1:5:4294967173: ++%*8lx:-0x7B:0:5: ++%8lx:-1:1:2:4294967295: ++%*8lx:-1:0:2: ++%8lx:-0X1:1:4:4294967295: ++%*8lx:-0X1:0:4: ++%8lx:-0x1:1:4:4294967295: ++%*8lx:-0x1:0:4: ++%8lx:-0:1:2:0: ++%*8lx:-0:0:2: ++%8lx:-0X0:1:4:0: ++%*8lx:-0X0:0:4: ++%8lx:-0x0:1:4:0: ++%*8lx:-0x0:0:4: ++%8lx:0:1:1:0: ++%*8lx:0:0:1: ++%8lx:0X0:1:3:0: ++%*8lx:0X0:0:3: ++%8lx:0x0:1:3:0: ++%*8lx:0x0:0:3: ++%8lx:1:1:1:1: ++%*8lx:1:0:1: ++%8lx:0X1:1:3:1: ++%*8lx:0X1:0:3: ++%8lx:0x1:1:3:1: ++%*8lx:0x1:0:3: ++%8lx:2a:1:2:42: ++%*8lx:2a:0:2: ++%8lx:2A:1:2:42: ++%*8lx:2A:0:2: ++%8lx:0X2a:1:4:42: ++%*8lx:0X2a:0:4: ++%8lx:0x2A:1:4:42: ++%*8lx:0x2A:0:4: ++%8lx:ffffffff:1:8:4294967295: ++%*8lx:ffffffff:0:8: ++%8lx:FFFFFFFF:1:8:4294967295: ++%*8lx:FFFFFFFF:0:8: ++%8lx:0Xffffffff:1:8:16777215: ++%*8lx:0Xffffffff:0:8: ++%8lx:0xFFFFFFFF:1:8:16777215: ++%*8lx:0xFFFFFFFF:0:8: ++%8lx:100000000:1:8:268435456: ++%*8lx:100000000:0:8: ++%8lx:0X100000000:1:8:1048576: ++%*8lx:0X100000000:0:8: ++%8lx:0x100000000:1:8:1048576: ++%*8lx:0x100000000:0:8: ++%8lx:100001091:1:8:268435721: ++%*8lx:100001091:0:8: ++%8lx:0X100001091:1:8:1048577: ++%*8lx:0X100001091:0:8: ++%8lx:0x100001091:1:8:1048577: ++%*8lx:0x100001091:0:8: ++%8lx:+0:1:2:0: ++%*8lx:+0:0:2: ++%8lx:+0X0:1:4:0: ++%*8lx:+0X0:0:4: ++%8lx:+0x0:1:4:0: ++%*8lx:+0x0:0:4: ++%8lx:+1:1:2:1: ++%*8lx:+1:0:2: ++%8lx:+0X1:1:4:1: ++%*8lx:+0X1:0:4: ++%8lx:+0x1:1:4:1: ++%*8lx:+0x1:0:4: ++%8lx:+2a:1:3:42: ++%*8lx:+2a:0:3: ++%8lx:+2A:1:3:42: ++%*8lx:+2A:0:3: ++%8lx:+0X2a:1:5:42: ++%*8lx:+0X2a:0:5: ++%8lx:+0x2A:1:5:42: ++%*8lx:+0x2A:0:5: ++%8lx:+ffffffff:1:8:268435455: ++%*8lx:+ffffffff:0:8: ++%8lx:+FFFFFFFF:1:8:268435455: ++%*8lx:+FFFFFFFF:0:8: ++%8lx:+0Xffffffff:1:8:1048575: ++%*8lx:+0Xffffffff:0:8: ++%8lx:+0xFFFFFFFF:1:8:1048575: ++%*8lx:+0xFFFFFFFF:0:8: ++%8lx:+100000000:1:8:16777216: ++%*8lx:+100000000:0:8: ++%8lx:+0X100000000:1:8:65536: ++%*8lx:+0X100000000:0:8: ++%8lx:+0x100000000:1:8:65536: ++%*8lx:+0x100000000:0:8: ++%8lx:+100001091:1:8:16777232: ++%*8lx:+100001091:0:8: ++%8lx:+0X100001091:1:8:65536: ++%*8lx:+0X100001091:0:8: ++%8lx:+0x100001091:1:8:65536: ++%*8lx:+0x100001091:0:8: ++%15lx::0:-1: ++%*15lx::0:-1: ++%15lx:-7b:1:3:4294967173: ++%*15lx:-7b:0:3: ++%15lx:-7B:1:3:4294967173: ++%*15lx:-7B:0:3: ++%15lx:-0X7b:1:5:4294967173: ++%*15lx:-0X7b:0:5: ++%15lx:-0x7B:1:5:4294967173: ++%*15lx:-0x7B:0:5: ++%15lx:-1:1:2:4294967295: ++%*15lx:-1:0:2: ++%15lx:-0X1:1:4:4294967295: ++%*15lx:-0X1:0:4: ++%15lx:-0x1:1:4:4294967295: ++%*15lx:-0x1:0:4: ++%15lx:-0:1:2:0: ++%*15lx:-0:0:2: ++%15lx:-0X0:1:4:0: ++%*15lx:-0X0:0:4: ++%15lx:-0x0:1:4:0: ++%*15lx:-0x0:0:4: ++%15lx:0:1:1:0: ++%*15lx:0:0:1: ++%15lx:0X0:1:3:0: ++%*15lx:0X0:0:3: ++%15lx:0x0:1:3:0: ++%*15lx:0x0:0:3: ++%15lx:1:1:1:1: ++%*15lx:1:0:1: ++%15lx:0X1:1:3:1: ++%*15lx:0X1:0:3: ++%15lx:0x1:1:3:1: ++%*15lx:0x1:0:3: ++%15lx:2a:1:2:42: ++%*15lx:2a:0:2: ++%15lx:2A:1:2:42: ++%*15lx:2A:0:2: ++%15lx:0X2a:1:4:42: ++%*15lx:0X2a:0:4: ++%15lx:0x2A:1:4:42: ++%*15lx:0x2A:0:4: ++%15lx:ffffffff:1:8:4294967295: ++%*15lx:ffffffff:0:8: ++%15lx:FFFFFFFF:1:8:4294967295: ++%*15lx:FFFFFFFF:0:8: ++%15lx:0Xffffffff:1:10:4294967295: ++%*15lx:0Xffffffff:0:10: ++%15lx:0xFFFFFFFF:1:10:4294967295: ++%*15lx:0xFFFFFFFF:0:10: ++%15lx:100000000:1:9:4294967295: ++%*15lx:100000000:0:9: ++%15lx:0X100000000:1:11:4294967295: ++%*15lx:0X100000000:0:11: ++%15lx:0x100000000:1:11:4294967295: ++%*15lx:0x100000000:0:11: ++%15lx:100001091:1:9:4294967295: ++%*15lx:100001091:0:9: ++%15lx:0X100001091:1:11:4294967295: ++%*15lx:0X100001091:0:11: ++%15lx:0x100001091:1:11:4294967295: ++%*15lx:0x100001091:0:11: ++%15lx:+0:1:2:0: ++%*15lx:+0:0:2: ++%15lx:+0X0:1:4:0: ++%*15lx:+0X0:0:4: ++%15lx:+0x0:1:4:0: ++%*15lx:+0x0:0:4: ++%15lx:+1:1:2:1: ++%*15lx:+1:0:2: ++%15lx:+0X1:1:4:1: ++%*15lx:+0X1:0:4: ++%15lx:+0x1:1:4:1: ++%*15lx:+0x1:0:4: ++%15lx:+2a:1:3:42: ++%*15lx:+2a:0:3: ++%15lx:+2A:1:3:42: ++%*15lx:+2A:0:3: ++%15lx:+0X2a:1:5:42: ++%*15lx:+0X2a:0:5: ++%15lx:+0x2A:1:5:42: ++%*15lx:+0x2A:0:5: ++%15lx:+ffffffff:1:9:4294967295: ++%*15lx:+ffffffff:0:9: ++%15lx:+FFFFFFFF:1:9:4294967295: ++%*15lx:+FFFFFFFF:0:9: ++%15lx:+0Xffffffff:1:11:4294967295: ++%*15lx:+0Xffffffff:0:11: ++%15lx:+0xFFFFFFFF:1:11:4294967295: ++%*15lx:+0xFFFFFFFF:0:11: ++%15lx:+100000000:1:10:4294967295: ++%*15lx:+100000000:0:10: ++%15lx:+0X100000000:1:12:4294967295: ++%*15lx:+0X100000000:0:12: ++%15lx:+0x100000000:1:12:4294967295: ++%*15lx:+0x100000000:0:12: ++%15lx:+100001091:1:10:4294967295: ++%*15lx:+100001091:0:10: ++%15lx:+0X100001091:1:12:4294967295: ++%*15lx:+0X100001091:0:12: ++%15lx:+0x100001091:1:12:4294967295: ++%*15lx:+0x100001091:0:12: ++%2lx: :0:-1: ++%*2lx: :0:-1: ++%2lx: -7b:1:3:4294967289: ++%*2lx: -7b:0:3: ++%2lx: -7B:1:3:4294967289: ++%*2lx: -7B:0:3: ++%2lx: -0X7b:1:3:0: ++%*2lx: -0X7b:0:3: ++%2lx: -0x7B:1:3:0: ++%*2lx: -0x7B:0:3: ++%2lx: -1:1:3:4294967295: ++%*2lx: -1:0:3: ++%2lx: -0X1:1:3:0: ++%*2lx: -0X1:0:3: ++%2lx: -0x1:1:3:0: ++%*2lx: -0x1:0:3: ++%2lx: -0:1:3:0: ++%*2lx: -0:0:3: ++%2lx: -0X0:1:3:0: ++%*2lx: -0X0:0:3: ++%2lx: -0x0:1:3:0: ++%*2lx: -0x0:0:3: ++%2lx: 0:1:2:0: ++%*2lx: 0:0:2: ++# BZ12701 %2lx: 0X0:0:-1: ++# BZ12701 %*2lx: 0X0:0:-1: ++# BZ12701 %2lx: 0x0:0:-1: ++# BZ12701 %*2lx: 0x0:0:-1: ++%2lx: 1:1:2:1: ++%*2lx: 1:0:2: ++# BZ12701 %2lx: 0X1:0:-1: ++# BZ12701 %*2lx: 0X1:0:-1: ++# BZ12701 %2lx: 0x1:0:-1: ++# BZ12701 %*2lx: 0x1:0:-1: ++%2lx: 2a:1:3:42: ++%*2lx: 2a:0:3: ++%2lx: 2A:1:3:42: ++%*2lx: 2A:0:3: ++# BZ12701 %2lx: 0X2a:0:-1: ++# BZ12701 %*2lx: 0X2a:0:-1: ++# BZ12701 %2lx: 0x2A:0:-1: ++# BZ12701 %*2lx: 0x2A:0:-1: ++%2lx: ffffffff:1:3:255: ++%*2lx: ffffffff:0:3: ++%2lx: FFFFFFFF:1:3:255: ++%*2lx: FFFFFFFF:0:3: ++# BZ12701 %2lx: 0Xffffffff:0:-1: ++# BZ12701 %*2lx: 0Xffffffff:0:-1: ++# BZ12701 %2lx: 0xFFFFFFFF:0:-1: ++# BZ12701 %*2lx: 0xFFFFFFFF:0:-1: ++%2lx: 100000000:1:3:16: ++%*2lx: 100000000:0:3: ++# BZ12701 %2lx: 0X100000000:0:-1: ++# BZ12701 %*2lx: 0X100000000:0:-1: ++# BZ12701 %2lx: 0x100000000:0:-1: ++# BZ12701 %*2lx: 0x100000000:0:-1: ++%2lx: 100001091:1:3:16: ++%*2lx: 100001091:0:3: ++# BZ12701 %2lx: 0X100001091:0:-1: ++# BZ12701 %*2lx: 0X100001091:0:-1: ++# BZ12701 %2lx: 0x100001091:0:-1: ++# BZ12701 %*2lx: 0x100001091:0:-1: ++%2lx: +0:1:3:0: ++%*2lx: +0:0:3: ++%2lx: +0X0:1:3:0: ++%*2lx: +0X0:0:3: ++%2lx: +0x0:1:3:0: ++%*2lx: +0x0:0:3: ++%2lx: +1:1:3:1: ++%*2lx: +1:0:3: ++%2lx: +0X1:1:3:0: ++%*2lx: +0X1:0:3: ++%2lx: +0x1:1:3:0: ++%*2lx: +0x1:0:3: ++%2lx: +2a:1:3:2: ++%*2lx: +2a:0:3: ++%2lx: +2A:1:3:2: ++%*2lx: +2A:0:3: ++%2lx: +0X2a:1:3:0: ++%*2lx: +0X2a:0:3: ++%2lx: +0x2A:1:3:0: ++%*2lx: +0x2A:0:3: ++%2lx: +ffffffff:1:3:15: ++%*2lx: +ffffffff:0:3: ++%2lx: +FFFFFFFF:1:3:15: ++%*2lx: +FFFFFFFF:0:3: ++%2lx: +0Xffffffff:1:3:0: ++%*2lx: +0Xffffffff:0:3: ++%2lx: +0xFFFFFFFF:1:3:0: ++%*2lx: +0xFFFFFFFF:0:3: ++%2lx: +100000000:1:3:1: ++%*2lx: +100000000:0:3: ++%2lx: +0X100000000:1:3:0: ++%*2lx: +0X100000000:0:3: ++%2lx: +0x100000000:1:3:0: ++%*2lx: +0x100000000:0:3: ++%2lx: +100001091:1:3:1: ++%*2lx: +100001091:0:3: ++%2lx: +0X100001091:1:3:0: ++%*2lx: +0X100001091:0:3: ++%2lx: +0x100001091:1:3:0: ++%*2lx: +0x100001091:0:3: ++%15lx: :0:-1: ++%*15lx: :0:-1: ++%15lx: -7b:1:4:4294967173: ++%*15lx: -7b:0:4: ++%15lx: -7B:1:4:4294967173: ++%*15lx: -7B:0:4: ++%15lx: -0X7b:1:6:4294967173: ++%*15lx: -0X7b:0:6: ++%15lx: -0x7B:1:6:4294967173: ++%*15lx: -0x7B:0:6: ++%15lx: -1:1:3:4294967295: ++%*15lx: -1:0:3: ++%15lx: -0X1:1:5:4294967295: ++%*15lx: -0X1:0:5: ++%15lx: -0x1:1:5:4294967295: ++%*15lx: -0x1:0:5: ++%15lx: -0:1:3:0: ++%*15lx: -0:0:3: ++%15lx: -0X0:1:5:0: ++%*15lx: -0X0:0:5: ++%15lx: -0x0:1:5:0: ++%*15lx: -0x0:0:5: ++%15lx: 0:1:2:0: ++%*15lx: 0:0:2: ++%15lx: 0X0:1:4:0: ++%*15lx: 0X0:0:4: ++%15lx: 0x0:1:4:0: ++%*15lx: 0x0:0:4: ++%15lx: 1:1:2:1: ++%*15lx: 1:0:2: ++%15lx: 0X1:1:4:1: ++%*15lx: 0X1:0:4: ++%15lx: 0x1:1:4:1: ++%*15lx: 0x1:0:4: ++%15lx: 2a:1:3:42: ++%*15lx: 2a:0:3: ++%15lx: 2A:1:3:42: ++%*15lx: 2A:0:3: ++%15lx: 0X2a:1:5:42: ++%*15lx: 0X2a:0:5: ++%15lx: 0x2A:1:5:42: ++%*15lx: 0x2A:0:5: ++%15lx: ffffffff:1:9:4294967295: ++%*15lx: ffffffff:0:9: ++%15lx: FFFFFFFF:1:9:4294967295: ++%*15lx: FFFFFFFF:0:9: ++%15lx: 0Xffffffff:1:11:4294967295: ++%*15lx: 0Xffffffff:0:11: ++%15lx: 0xFFFFFFFF:1:11:4294967295: ++%*15lx: 0xFFFFFFFF:0:11: ++%15lx: 100000000:1:10:4294967295: ++%*15lx: 100000000:0:10: ++%15lx: 0X100000000:1:12:4294967295: ++%*15lx: 0X100000000:0:12: ++%15lx: 0x100000000:1:12:4294967295: ++%*15lx: 0x100000000:0:12: ++%15lx: 100001091:1:10:4294967295: ++%*15lx: 100001091:0:10: ++%15lx: 0X100001091:1:12:4294967295: ++%*15lx: 0X100001091:0:12: ++%15lx: 0x100001091:1:12:4294967295: ++%*15lx: 0x100001091:0:12: ++%15lx: +0:1:3:0: ++%*15lx: +0:0:3: ++%15lx: +0X0:1:5:0: ++%*15lx: +0X0:0:5: ++%15lx: +0x0:1:5:0: ++%*15lx: +0x0:0:5: ++%15lx: +1:1:3:1: ++%*15lx: +1:0:3: ++%15lx: +0X1:1:5:1: ++%*15lx: +0X1:0:5: ++%15lx: +0x1:1:5:1: ++%*15lx: +0x1:0:5: ++%15lx: +2a:1:4:42: ++%*15lx: +2a:0:4: ++%15lx: +2A:1:4:42: ++%*15lx: +2A:0:4: ++%15lx: +0X2a:1:6:42: ++%*15lx: +0X2a:0:6: ++%15lx: +0x2A:1:6:42: ++%*15lx: +0x2A:0:6: ++%15lx: +ffffffff:1:10:4294967295: ++%*15lx: +ffffffff:0:10: ++%15lx: +FFFFFFFF:1:10:4294967295: ++%*15lx: +FFFFFFFF:0:10: ++%15lx: +0Xffffffff:1:12:4294967295: ++%*15lx: +0Xffffffff:0:12: ++%15lx: +0xFFFFFFFF:1:12:4294967295: ++%*15lx: +0xFFFFFFFF:0:12: ++%15lx: +100000000:1:11:4294967295: ++%*15lx: +100000000:0:11: ++%15lx: +0X100000000:1:13:4294967295: ++%*15lx: +0X100000000:0:13: ++%15lx: +0x100000000:1:13:4294967295: ++%*15lx: +0x100000000:0:13: ++%15lx: +100001091:1:11:4294967295: ++%*15lx: +100001091:0:11: ++%15lx: +0X100001091:1:13:4294967295: ++%*15lx: +0X100001091:0:13: ++%15lx: +0x100001091:1:13:4294967295: ++%*15lx: +0x100001091:0:13: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-ulong-xx.input b/sysdeps/wordsize-32/tst-scanf-format-ulong-xx.input +new file mode 100644 +index 0000000000000000..fc59225615205901 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-ulong-xx.input +@@ -0,0 +1,714 @@ ++%lX::0:-1: ++%*lX::0:-1: ++%lX:-7b:1:3:4294967173: ++%*lX:-7b:0:3: ++%lX:-7B:1:3:4294967173: ++%*lX:-7B:0:3: ++%lX:-0X7b:1:5:4294967173: ++%*lX:-0X7b:0:5: ++%lX:-0x7B:1:5:4294967173: ++%*lX:-0x7B:0:5: ++%lX:-1:1:2:4294967295: ++%*lX:-1:0:2: ++%lX:-0X1:1:4:4294967295: ++%*lX:-0X1:0:4: ++%lX:-0x1:1:4:4294967295: ++%*lX:-0x1:0:4: ++%lX:-0:1:2:0: ++%*lX:-0:0:2: ++%lX:-0X0:1:4:0: ++%*lX:-0X0:0:4: ++%lX:-0x0:1:4:0: ++%*lX:-0x0:0:4: ++%lX:0:1:1:0: ++%*lX:0:0:1: ++%lX:0X0:1:3:0: ++%*lX:0X0:0:3: ++%lX:0x0:1:3:0: ++%*lX:0x0:0:3: ++%lX:1:1:1:1: ++%*lX:1:0:1: ++%lX:0X1:1:3:1: ++%*lX:0X1:0:3: ++%lX:0x1:1:3:1: ++%*lX:0x1:0:3: ++%lX:2a:1:2:42: ++%*lX:2a:0:2: ++%lX:2A:1:2:42: ++%*lX:2A:0:2: ++%lX:0X2a:1:4:42: ++%*lX:0X2a:0:4: ++%lX:0x2A:1:4:42: ++%*lX:0x2A:0:4: ++%lX:ffffffff:1:8:4294967295: ++%*lX:ffffffff:0:8: ++%lX:FFFFFFFF:1:8:4294967295: ++%*lX:FFFFFFFF:0:8: ++%lX:0Xffffffff:1:10:4294967295: ++%*lX:0Xffffffff:0:10: ++%lX:0xFFFFFFFF:1:10:4294967295: ++%*lX:0xFFFFFFFF:0:10: ++%lX:100000000:1:9:4294967295: ++%*lX:100000000:0:9: ++%lX:0X100000000:1:11:4294967295: ++%*lX:0X100000000:0:11: ++%lX:0x100000000:1:11:4294967295: ++%*lX:0x100000000:0:11: ++%lX:100001091:1:9:4294967295: ++%*lX:100001091:0:9: ++%lX:0X100001091:1:11:4294967295: ++%*lX:0X100001091:0:11: ++%lX:0x100001091:1:11:4294967295: ++%*lX:0x100001091:0:11: ++%lX:+0:1:2:0: ++%*lX:+0:0:2: ++%lX:+0X0:1:4:0: ++%*lX:+0X0:0:4: ++%lX:+0x0:1:4:0: ++%*lX:+0x0:0:4: ++%lX:+1:1:2:1: ++%*lX:+1:0:2: ++%lX:+0X1:1:4:1: ++%*lX:+0X1:0:4: ++%lX:+0x1:1:4:1: ++%*lX:+0x1:0:4: ++%lX:+2a:1:3:42: ++%*lX:+2a:0:3: ++%lX:+2A:1:3:42: ++%*lX:+2A:0:3: ++%lX:+0X2a:1:5:42: ++%*lX:+0X2a:0:5: ++%lX:+0x2A:1:5:42: ++%*lX:+0x2A:0:5: ++%lX:+ffffffff:1:9:4294967295: ++%*lX:+ffffffff:0:9: ++%lX:+FFFFFFFF:1:9:4294967295: ++%*lX:+FFFFFFFF:0:9: ++%lX:+0Xffffffff:1:11:4294967295: ++%*lX:+0Xffffffff:0:11: ++%lX:+0xFFFFFFFF:1:11:4294967295: ++%*lX:+0xFFFFFFFF:0:11: ++%lX:+100000000:1:10:4294967295: ++%*lX:+100000000:0:10: ++%lX:+0X100000000:1:12:4294967295: ++%*lX:+0X100000000:0:12: ++%lX:+0x100000000:1:12:4294967295: ++%*lX:+0x100000000:0:12: ++%lX:+100001091:1:10:4294967295: ++%*lX:+100001091:0:10: ++%lX:+0X100001091:1:12:4294967295: ++%*lX:+0X100001091:0:12: ++%lX:+0x100001091:1:12:4294967295: ++%*lX:+0x100001091:0:12: ++%1lX::0:-1: ++%*1lX::0:-1: ++%1lX:-7b:0:-1: ++%*1lX:-7b:0:-1: ++%1lX:-7B:0:-1: ++%*1lX:-7B:0:-1: ++%1lX:-0X7b:0:-1: ++%*1lX:-0X7b:0:-1: ++%1lX:-0x7B:0:-1: ++%*1lX:-0x7B:0:-1: ++%1lX:-1:0:-1: ++%*1lX:-1:0:-1: ++%1lX:-0X1:0:-1: ++%*1lX:-0X1:0:-1: ++%1lX:-0x1:0:-1: ++%*1lX:-0x1:0:-1: ++%1lX:-0:0:-1: ++%*1lX:-0:0:-1: ++%1lX:-0X0:0:-1: ++%*1lX:-0X0:0:-1: ++%1lX:-0x0:0:-1: ++%*1lX:-0x0:0:-1: ++%1lX:0:1:1:0: ++%*1lX:0:0:1: ++%1lX:0X0:1:1:0: ++%*1lX:0X0:0:1: ++%1lX:0x0:1:1:0: ++%*1lX:0x0:0:1: ++%1lX:1:1:1:1: ++%*1lX:1:0:1: ++%1lX:0X1:1:1:0: ++%*1lX:0X1:0:1: ++%1lX:0x1:1:1:0: ++%*1lX:0x1:0:1: ++%1lX:2a:1:1:2: ++%*1lX:2a:0:1: ++%1lX:2A:1:1:2: ++%*1lX:2A:0:1: ++%1lX:0X2a:1:1:0: ++%*1lX:0X2a:0:1: ++%1lX:0x2A:1:1:0: ++%*1lX:0x2A:0:1: ++%1lX:ffffffff:1:1:15: ++%*1lX:ffffffff:0:1: ++%1lX:FFFFFFFF:1:1:15: ++%*1lX:FFFFFFFF:0:1: ++%1lX:0Xffffffff:1:1:0: ++%*1lX:0Xffffffff:0:1: ++%1lX:0xFFFFFFFF:1:1:0: ++%*1lX:0xFFFFFFFF:0:1: ++%1lX:100000000:1:1:1: ++%*1lX:100000000:0:1: ++%1lX:0X100000000:1:1:0: ++%*1lX:0X100000000:0:1: ++%1lX:0x100000000:1:1:0: ++%*1lX:0x100000000:0:1: ++%1lX:100001091:1:1:1: ++%*1lX:100001091:0:1: ++%1lX:0X100001091:1:1:0: ++%*1lX:0X100001091:0:1: ++%1lX:0x100001091:1:1:0: ++%*1lX:0x100001091:0:1: ++%1lX:+0:0:-1: ++%*1lX:+0:0:-1: ++%1lX:+0X0:0:-1: ++%*1lX:+0X0:0:-1: ++%1lX:+0x0:0:-1: ++%*1lX:+0x0:0:-1: ++%1lX:+1:0:-1: ++%*1lX:+1:0:-1: ++%1lX:+0X1:0:-1: ++%*1lX:+0X1:0:-1: ++%1lX:+0x1:0:-1: ++%*1lX:+0x1:0:-1: ++%1lX:+2a:0:-1: ++%*1lX:+2a:0:-1: ++%1lX:+2A:0:-1: ++%*1lX:+2A:0:-1: ++%1lX:+0X2a:0:-1: ++%*1lX:+0X2a:0:-1: ++%1lX:+0x2A:0:-1: ++%*1lX:+0x2A:0:-1: ++%1lX:+ffffffff:0:-1: ++%*1lX:+ffffffff:0:-1: ++%1lX:+FFFFFFFF:0:-1: ++%*1lX:+FFFFFFFF:0:-1: ++%1lX:+0Xffffffff:0:-1: ++%*1lX:+0Xffffffff:0:-1: ++%1lX:+0xFFFFFFFF:0:-1: ++%*1lX:+0xFFFFFFFF:0:-1: ++%1lX:+100000000:0:-1: ++%*1lX:+100000000:0:-1: ++%1lX:+0X100000000:0:-1: ++%*1lX:+0X100000000:0:-1: ++%1lX:+0x100000000:0:-1: ++%*1lX:+0x100000000:0:-1: ++%1lX:+100001091:0:-1: ++%*1lX:+100001091:0:-1: ++%1lX:+0X100001091:0:-1: ++%*1lX:+0X100001091:0:-1: ++%1lX:+0x100001091:0:-1: ++%*1lX:+0x100001091:0:-1: ++%2lX::0:-1: ++%*2lX::0:-1: ++%2lX:-7b:1:2:4294967289: ++%*2lX:-7b:0:2: ++%2lX:-7B:1:2:4294967289: ++%*2lX:-7B:0:2: ++%2lX:-0X7b:1:2:0: ++%*2lX:-0X7b:0:2: ++%2lX:-0x7B:1:2:0: ++%*2lX:-0x7B:0:2: ++%2lX:-1:1:2:4294967295: ++%*2lX:-1:0:2: ++%2lX:-0X1:1:2:0: ++%*2lX:-0X1:0:2: ++%2lX:-0x1:1:2:0: ++%*2lX:-0x1:0:2: ++%2lX:-0:1:2:0: ++%*2lX:-0:0:2: ++%2lX:-0X0:1:2:0: ++%*2lX:-0X0:0:2: ++%2lX:-0x0:1:2:0: ++%*2lX:-0x0:0:2: ++%2lX:0:1:1:0: ++%*2lX:0:0:1: ++# BZ12701 %2lX:0X0:0:-1: ++# BZ12701 %*2lX:0X0:0:-1: ++# BZ12701 %2lX:0x0:0:-1: ++# BZ12701 %*2lX:0x0:0:-1: ++%2lX:1:1:1:1: ++%*2lX:1:0:1: ++# BZ12701 %2lX:0X1:0:-1: ++# BZ12701 %*2lX:0X1:0:-1: ++# BZ12701 %2lX:0x1:0:-1: ++# BZ12701 %*2lX:0x1:0:-1: ++%2lX:2a:1:2:42: ++%*2lX:2a:0:2: ++%2lX:2A:1:2:42: ++%*2lX:2A:0:2: ++# BZ12701 %2lX:0X2a:0:-1: ++# BZ12701 %*2lX:0X2a:0:-1: ++# BZ12701 %2lX:0x2A:0:-1: ++# BZ12701 %*2lX:0x2A:0:-1: ++%2lX:ffffffff:1:2:255: ++%*2lX:ffffffff:0:2: ++%2lX:FFFFFFFF:1:2:255: ++%*2lX:FFFFFFFF:0:2: ++# BZ12701 %2lX:0Xffffffff:0:-1: ++# BZ12701 %*2lX:0Xffffffff:0:-1: ++# BZ12701 %2lX:0xFFFFFFFF:0:-1: ++# BZ12701 %*2lX:0xFFFFFFFF:0:-1: ++%2lX:100000000:1:2:16: ++%*2lX:100000000:0:2: ++# BZ12701 %2lX:0X100000000:0:-1: ++# BZ12701 %*2lX:0X100000000:0:-1: ++# BZ12701 %2lX:0x100000000:0:-1: ++# BZ12701 %*2lX:0x100000000:0:-1: ++%2lX:100001091:1:2:16: ++%*2lX:100001091:0:2: ++# BZ12701 %2lX:0X100001091:0:-1: ++# BZ12701 %*2lX:0X100001091:0:-1: ++# BZ12701 %2lX:0x100001091:0:-1: ++# BZ12701 %*2lX:0x100001091:0:-1: ++%2lX:+0:1:2:0: ++%*2lX:+0:0:2: ++%2lX:+0X0:1:2:0: ++%*2lX:+0X0:0:2: ++%2lX:+0x0:1:2:0: ++%*2lX:+0x0:0:2: ++%2lX:+1:1:2:1: ++%*2lX:+1:0:2: ++%2lX:+0X1:1:2:0: ++%*2lX:+0X1:0:2: ++%2lX:+0x1:1:2:0: ++%*2lX:+0x1:0:2: ++%2lX:+2a:1:2:2: ++%*2lX:+2a:0:2: ++%2lX:+2A:1:2:2: ++%*2lX:+2A:0:2: ++%2lX:+0X2a:1:2:0: ++%*2lX:+0X2a:0:2: ++%2lX:+0x2A:1:2:0: ++%*2lX:+0x2A:0:2: ++%2lX:+ffffffff:1:2:15: ++%*2lX:+ffffffff:0:2: ++%2lX:+FFFFFFFF:1:2:15: ++%*2lX:+FFFFFFFF:0:2: ++%2lX:+0Xffffffff:1:2:0: ++%*2lX:+0Xffffffff:0:2: ++%2lX:+0xFFFFFFFF:1:2:0: ++%*2lX:+0xFFFFFFFF:0:2: ++%2lX:+100000000:1:2:1: ++%*2lX:+100000000:0:2: ++%2lX:+0X100000000:1:2:0: ++%*2lX:+0X100000000:0:2: ++%2lX:+0x100000000:1:2:0: ++%*2lX:+0x100000000:0:2: ++%2lX:+100001091:1:2:1: ++%*2lX:+100001091:0:2: ++%2lX:+0X100001091:1:2:0: ++%*2lX:+0X100001091:0:2: ++%2lX:+0x100001091:1:2:0: ++%*2lX:+0x100001091:0:2: ++%8lX::0:-1: ++%*8lX::0:-1: ++%8lX:-7b:1:3:4294967173: ++%*8lX:-7b:0:3: ++%8lX:-7B:1:3:4294967173: ++%*8lX:-7B:0:3: ++%8lX:-0X7b:1:5:4294967173: ++%*8lX:-0X7b:0:5: ++%8lX:-0x7B:1:5:4294967173: ++%*8lX:-0x7B:0:5: ++%8lX:-1:1:2:4294967295: ++%*8lX:-1:0:2: ++%8lX:-0X1:1:4:4294967295: ++%*8lX:-0X1:0:4: ++%8lX:-0x1:1:4:4294967295: ++%*8lX:-0x1:0:4: ++%8lX:-0:1:2:0: ++%*8lX:-0:0:2: ++%8lX:-0X0:1:4:0: ++%*8lX:-0X0:0:4: ++%8lX:-0x0:1:4:0: ++%*8lX:-0x0:0:4: ++%8lX:0:1:1:0: ++%*8lX:0:0:1: ++%8lX:0X0:1:3:0: ++%*8lX:0X0:0:3: ++%8lX:0x0:1:3:0: ++%*8lX:0x0:0:3: ++%8lX:1:1:1:1: ++%*8lX:1:0:1: ++%8lX:0X1:1:3:1: ++%*8lX:0X1:0:3: ++%8lX:0x1:1:3:1: ++%*8lX:0x1:0:3: ++%8lX:2a:1:2:42: ++%*8lX:2a:0:2: ++%8lX:2A:1:2:42: ++%*8lX:2A:0:2: ++%8lX:0X2a:1:4:42: ++%*8lX:0X2a:0:4: ++%8lX:0x2A:1:4:42: ++%*8lX:0x2A:0:4: ++%8lX:ffffffff:1:8:4294967295: ++%*8lX:ffffffff:0:8: ++%8lX:FFFFFFFF:1:8:4294967295: ++%*8lX:FFFFFFFF:0:8: ++%8lX:0Xffffffff:1:8:16777215: ++%*8lX:0Xffffffff:0:8: ++%8lX:0xFFFFFFFF:1:8:16777215: ++%*8lX:0xFFFFFFFF:0:8: ++%8lX:100000000:1:8:268435456: ++%*8lX:100000000:0:8: ++%8lX:0X100000000:1:8:1048576: ++%*8lX:0X100000000:0:8: ++%8lX:0x100000000:1:8:1048576: ++%*8lX:0x100000000:0:8: ++%8lX:100001091:1:8:268435721: ++%*8lX:100001091:0:8: ++%8lX:0X100001091:1:8:1048577: ++%*8lX:0X100001091:0:8: ++%8lX:0x100001091:1:8:1048577: ++%*8lX:0x100001091:0:8: ++%8lX:+0:1:2:0: ++%*8lX:+0:0:2: ++%8lX:+0X0:1:4:0: ++%*8lX:+0X0:0:4: ++%8lX:+0x0:1:4:0: ++%*8lX:+0x0:0:4: ++%8lX:+1:1:2:1: ++%*8lX:+1:0:2: ++%8lX:+0X1:1:4:1: ++%*8lX:+0X1:0:4: ++%8lX:+0x1:1:4:1: ++%*8lX:+0x1:0:4: ++%8lX:+2a:1:3:42: ++%*8lX:+2a:0:3: ++%8lX:+2A:1:3:42: ++%*8lX:+2A:0:3: ++%8lX:+0X2a:1:5:42: ++%*8lX:+0X2a:0:5: ++%8lX:+0x2A:1:5:42: ++%*8lX:+0x2A:0:5: ++%8lX:+ffffffff:1:8:268435455: ++%*8lX:+ffffffff:0:8: ++%8lX:+FFFFFFFF:1:8:268435455: ++%*8lX:+FFFFFFFF:0:8: ++%8lX:+0Xffffffff:1:8:1048575: ++%*8lX:+0Xffffffff:0:8: ++%8lX:+0xFFFFFFFF:1:8:1048575: ++%*8lX:+0xFFFFFFFF:0:8: ++%8lX:+100000000:1:8:16777216: ++%*8lX:+100000000:0:8: ++%8lX:+0X100000000:1:8:65536: ++%*8lX:+0X100000000:0:8: ++%8lX:+0x100000000:1:8:65536: ++%*8lX:+0x100000000:0:8: ++%8lX:+100001091:1:8:16777232: ++%*8lX:+100001091:0:8: ++%8lX:+0X100001091:1:8:65536: ++%*8lX:+0X100001091:0:8: ++%8lX:+0x100001091:1:8:65536: ++%*8lX:+0x100001091:0:8: ++%15lX::0:-1: ++%*15lX::0:-1: ++%15lX:-7b:1:3:4294967173: ++%*15lX:-7b:0:3: ++%15lX:-7B:1:3:4294967173: ++%*15lX:-7B:0:3: ++%15lX:-0X7b:1:5:4294967173: ++%*15lX:-0X7b:0:5: ++%15lX:-0x7B:1:5:4294967173: ++%*15lX:-0x7B:0:5: ++%15lX:-1:1:2:4294967295: ++%*15lX:-1:0:2: ++%15lX:-0X1:1:4:4294967295: ++%*15lX:-0X1:0:4: ++%15lX:-0x1:1:4:4294967295: ++%*15lX:-0x1:0:4: ++%15lX:-0:1:2:0: ++%*15lX:-0:0:2: ++%15lX:-0X0:1:4:0: ++%*15lX:-0X0:0:4: ++%15lX:-0x0:1:4:0: ++%*15lX:-0x0:0:4: ++%15lX:0:1:1:0: ++%*15lX:0:0:1: ++%15lX:0X0:1:3:0: ++%*15lX:0X0:0:3: ++%15lX:0x0:1:3:0: ++%*15lX:0x0:0:3: ++%15lX:1:1:1:1: ++%*15lX:1:0:1: ++%15lX:0X1:1:3:1: ++%*15lX:0X1:0:3: ++%15lX:0x1:1:3:1: ++%*15lX:0x1:0:3: ++%15lX:2a:1:2:42: ++%*15lX:2a:0:2: ++%15lX:2A:1:2:42: ++%*15lX:2A:0:2: ++%15lX:0X2a:1:4:42: ++%*15lX:0X2a:0:4: ++%15lX:0x2A:1:4:42: ++%*15lX:0x2A:0:4: ++%15lX:ffffffff:1:8:4294967295: ++%*15lX:ffffffff:0:8: ++%15lX:FFFFFFFF:1:8:4294967295: ++%*15lX:FFFFFFFF:0:8: ++%15lX:0Xffffffff:1:10:4294967295: ++%*15lX:0Xffffffff:0:10: ++%15lX:0xFFFFFFFF:1:10:4294967295: ++%*15lX:0xFFFFFFFF:0:10: ++%15lX:100000000:1:9:4294967295: ++%*15lX:100000000:0:9: ++%15lX:0X100000000:1:11:4294967295: ++%*15lX:0X100000000:0:11: ++%15lX:0x100000000:1:11:4294967295: ++%*15lX:0x100000000:0:11: ++%15lX:100001091:1:9:4294967295: ++%*15lX:100001091:0:9: ++%15lX:0X100001091:1:11:4294967295: ++%*15lX:0X100001091:0:11: ++%15lX:0x100001091:1:11:4294967295: ++%*15lX:0x100001091:0:11: ++%15lX:+0:1:2:0: ++%*15lX:+0:0:2: ++%15lX:+0X0:1:4:0: ++%*15lX:+0X0:0:4: ++%15lX:+0x0:1:4:0: ++%*15lX:+0x0:0:4: ++%15lX:+1:1:2:1: ++%*15lX:+1:0:2: ++%15lX:+0X1:1:4:1: ++%*15lX:+0X1:0:4: ++%15lX:+0x1:1:4:1: ++%*15lX:+0x1:0:4: ++%15lX:+2a:1:3:42: ++%*15lX:+2a:0:3: ++%15lX:+2A:1:3:42: ++%*15lX:+2A:0:3: ++%15lX:+0X2a:1:5:42: ++%*15lX:+0X2a:0:5: ++%15lX:+0x2A:1:5:42: ++%*15lX:+0x2A:0:5: ++%15lX:+ffffffff:1:9:4294967295: ++%*15lX:+ffffffff:0:9: ++%15lX:+FFFFFFFF:1:9:4294967295: ++%*15lX:+FFFFFFFF:0:9: ++%15lX:+0Xffffffff:1:11:4294967295: ++%*15lX:+0Xffffffff:0:11: ++%15lX:+0xFFFFFFFF:1:11:4294967295: ++%*15lX:+0xFFFFFFFF:0:11: ++%15lX:+100000000:1:10:4294967295: ++%*15lX:+100000000:0:10: ++%15lX:+0X100000000:1:12:4294967295: ++%*15lX:+0X100000000:0:12: ++%15lX:+0x100000000:1:12:4294967295: ++%*15lX:+0x100000000:0:12: ++%15lX:+100001091:1:10:4294967295: ++%*15lX:+100001091:0:10: ++%15lX:+0X100001091:1:12:4294967295: ++%*15lX:+0X100001091:0:12: ++%15lX:+0x100001091:1:12:4294967295: ++%*15lX:+0x100001091:0:12: ++%2lX: :0:-1: ++%*2lX: :0:-1: ++%2lX: -7b:1:3:4294967289: ++%*2lX: -7b:0:3: ++%2lX: -7B:1:3:4294967289: ++%*2lX: -7B:0:3: ++%2lX: -0X7b:1:3:0: ++%*2lX: -0X7b:0:3: ++%2lX: -0x7B:1:3:0: ++%*2lX: -0x7B:0:3: ++%2lX: -1:1:3:4294967295: ++%*2lX: -1:0:3: ++%2lX: -0X1:1:3:0: ++%*2lX: -0X1:0:3: ++%2lX: -0x1:1:3:0: ++%*2lX: -0x1:0:3: ++%2lX: -0:1:3:0: ++%*2lX: -0:0:3: ++%2lX: -0X0:1:3:0: ++%*2lX: -0X0:0:3: ++%2lX: -0x0:1:3:0: ++%*2lX: -0x0:0:3: ++%2lX: 0:1:2:0: ++%*2lX: 0:0:2: ++# BZ12701 %2lX: 0X0:0:-1: ++# BZ12701 %*2lX: 0X0:0:-1: ++# BZ12701 %2lX: 0x0:0:-1: ++# BZ12701 %*2lX: 0x0:0:-1: ++%2lX: 1:1:2:1: ++%*2lX: 1:0:2: ++# BZ12701 %2lX: 0X1:0:-1: ++# BZ12701 %*2lX: 0X1:0:-1: ++# BZ12701 %2lX: 0x1:0:-1: ++# BZ12701 %*2lX: 0x1:0:-1: ++%2lX: 2a:1:3:42: ++%*2lX: 2a:0:3: ++%2lX: 2A:1:3:42: ++%*2lX: 2A:0:3: ++# BZ12701 %2lX: 0X2a:0:-1: ++# BZ12701 %*2lX: 0X2a:0:-1: ++# BZ12701 %2lX: 0x2A:0:-1: ++# BZ12701 %*2lX: 0x2A:0:-1: ++%2lX: ffffffff:1:3:255: ++%*2lX: ffffffff:0:3: ++%2lX: FFFFFFFF:1:3:255: ++%*2lX: FFFFFFFF:0:3: ++# BZ12701 %2lX: 0Xffffffff:0:-1: ++# BZ12701 %*2lX: 0Xffffffff:0:-1: ++# BZ12701 %2lX: 0xFFFFFFFF:0:-1: ++# BZ12701 %*2lX: 0xFFFFFFFF:0:-1: ++%2lX: 100000000:1:3:16: ++%*2lX: 100000000:0:3: ++# BZ12701 %2lX: 0X100000000:0:-1: ++# BZ12701 %*2lX: 0X100000000:0:-1: ++# BZ12701 %2lX: 0x100000000:0:-1: ++# BZ12701 %*2lX: 0x100000000:0:-1: ++%2lX: 100001091:1:3:16: ++%*2lX: 100001091:0:3: ++# BZ12701 %2lX: 0X100001091:0:-1: ++# BZ12701 %*2lX: 0X100001091:0:-1: ++# BZ12701 %2lX: 0x100001091:0:-1: ++# BZ12701 %*2lX: 0x100001091:0:-1: ++%2lX: +0:1:3:0: ++%*2lX: +0:0:3: ++%2lX: +0X0:1:3:0: ++%*2lX: +0X0:0:3: ++%2lX: +0x0:1:3:0: ++%*2lX: +0x0:0:3: ++%2lX: +1:1:3:1: ++%*2lX: +1:0:3: ++%2lX: +0X1:1:3:0: ++%*2lX: +0X1:0:3: ++%2lX: +0x1:1:3:0: ++%*2lX: +0x1:0:3: ++%2lX: +2a:1:3:2: ++%*2lX: +2a:0:3: ++%2lX: +2A:1:3:2: ++%*2lX: +2A:0:3: ++%2lX: +0X2a:1:3:0: ++%*2lX: +0X2a:0:3: ++%2lX: +0x2A:1:3:0: ++%*2lX: +0x2A:0:3: ++%2lX: +ffffffff:1:3:15: ++%*2lX: +ffffffff:0:3: ++%2lX: +FFFFFFFF:1:3:15: ++%*2lX: +FFFFFFFF:0:3: ++%2lX: +0Xffffffff:1:3:0: ++%*2lX: +0Xffffffff:0:3: ++%2lX: +0xFFFFFFFF:1:3:0: ++%*2lX: +0xFFFFFFFF:0:3: ++%2lX: +100000000:1:3:1: ++%*2lX: +100000000:0:3: ++%2lX: +0X100000000:1:3:0: ++%*2lX: +0X100000000:0:3: ++%2lX: +0x100000000:1:3:0: ++%*2lX: +0x100000000:0:3: ++%2lX: +100001091:1:3:1: ++%*2lX: +100001091:0:3: ++%2lX: +0X100001091:1:3:0: ++%*2lX: +0X100001091:0:3: ++%2lX: +0x100001091:1:3:0: ++%*2lX: +0x100001091:0:3: ++%15lX: :0:-1: ++%*15lX: :0:-1: ++%15lX: -7b:1:4:4294967173: ++%*15lX: -7b:0:4: ++%15lX: -7B:1:4:4294967173: ++%*15lX: -7B:0:4: ++%15lX: -0X7b:1:6:4294967173: ++%*15lX: -0X7b:0:6: ++%15lX: -0x7B:1:6:4294967173: ++%*15lX: -0x7B:0:6: ++%15lX: -1:1:3:4294967295: ++%*15lX: -1:0:3: ++%15lX: -0X1:1:5:4294967295: ++%*15lX: -0X1:0:5: ++%15lX: -0x1:1:5:4294967295: ++%*15lX: -0x1:0:5: ++%15lX: -0:1:3:0: ++%*15lX: -0:0:3: ++%15lX: -0X0:1:5:0: ++%*15lX: -0X0:0:5: ++%15lX: -0x0:1:5:0: ++%*15lX: -0x0:0:5: ++%15lX: 0:1:2:0: ++%*15lX: 0:0:2: ++%15lX: 0X0:1:4:0: ++%*15lX: 0X0:0:4: ++%15lX: 0x0:1:4:0: ++%*15lX: 0x0:0:4: ++%15lX: 1:1:2:1: ++%*15lX: 1:0:2: ++%15lX: 0X1:1:4:1: ++%*15lX: 0X1:0:4: ++%15lX: 0x1:1:4:1: ++%*15lX: 0x1:0:4: ++%15lX: 2a:1:3:42: ++%*15lX: 2a:0:3: ++%15lX: 2A:1:3:42: ++%*15lX: 2A:0:3: ++%15lX: 0X2a:1:5:42: ++%*15lX: 0X2a:0:5: ++%15lX: 0x2A:1:5:42: ++%*15lX: 0x2A:0:5: ++%15lX: ffffffff:1:9:4294967295: ++%*15lX: ffffffff:0:9: ++%15lX: FFFFFFFF:1:9:4294967295: ++%*15lX: FFFFFFFF:0:9: ++%15lX: 0Xffffffff:1:11:4294967295: ++%*15lX: 0Xffffffff:0:11: ++%15lX: 0xFFFFFFFF:1:11:4294967295: ++%*15lX: 0xFFFFFFFF:0:11: ++%15lX: 100000000:1:10:4294967295: ++%*15lX: 100000000:0:10: ++%15lX: 0X100000000:1:12:4294967295: ++%*15lX: 0X100000000:0:12: ++%15lX: 0x100000000:1:12:4294967295: ++%*15lX: 0x100000000:0:12: ++%15lX: 100001091:1:10:4294967295: ++%*15lX: 100001091:0:10: ++%15lX: 0X100001091:1:12:4294967295: ++%*15lX: 0X100001091:0:12: ++%15lX: 0x100001091:1:12:4294967295: ++%*15lX: 0x100001091:0:12: ++%15lX: +0:1:3:0: ++%*15lX: +0:0:3: ++%15lX: +0X0:1:5:0: ++%*15lX: +0X0:0:5: ++%15lX: +0x0:1:5:0: ++%*15lX: +0x0:0:5: ++%15lX: +1:1:3:1: ++%*15lX: +1:0:3: ++%15lX: +0X1:1:5:1: ++%*15lX: +0X1:0:5: ++%15lX: +0x1:1:5:1: ++%*15lX: +0x1:0:5: ++%15lX: +2a:1:4:42: ++%*15lX: +2a:0:4: ++%15lX: +2A:1:4:42: ++%*15lX: +2A:0:4: ++%15lX: +0X2a:1:6:42: ++%*15lX: +0X2a:0:6: ++%15lX: +0x2A:1:6:42: ++%*15lX: +0x2A:0:6: ++%15lX: +ffffffff:1:10:4294967295: ++%*15lX: +ffffffff:0:10: ++%15lX: +FFFFFFFF:1:10:4294967295: ++%*15lX: +FFFFFFFF:0:10: ++%15lX: +0Xffffffff:1:12:4294967295: ++%*15lX: +0Xffffffff:0:12: ++%15lX: +0xFFFFFFFF:1:12:4294967295: ++%*15lX: +0xFFFFFFFF:0:12: ++%15lX: +100000000:1:11:4294967295: ++%*15lX: +100000000:0:11: ++%15lX: +0X100000000:1:13:4294967295: ++%*15lX: +0X100000000:0:13: ++%15lX: +0x100000000:1:13:4294967295: ++%*15lX: +0x100000000:0:13: ++%15lX: +100001091:1:11:4294967295: ++%*15lX: +100001091:0:11: ++%15lX: +0X100001091:1:13:4294967295: ++%*15lX: +0X100001091:0:13: ++%15lX: +0x100001091:1:13:4294967295: ++%*15lX: +0x100001091:0:13: diff --git a/SOURCES/glibc-RHEL-46726-3.patch b/SOURCES/glibc-RHEL-46726-3.patch new file mode 100644 index 0000000..ae3ee19 --- /dev/null +++ b/SOURCES/glibc-RHEL-46726-3.patch @@ -0,0 +1,9223 @@ +commit a2bacea239c1780b20a1b23a9c3c836ef61c6172 +Author: Maciej W. Rozycki +Date: Tue Mar 25 09:40:20 2025 +0000 + + stdio-common: Add scanf integer data for LP64 targets + + Add Makefile infrastructure and `int' and `long' integer input data, + signed and unsigned, for LP64 targets. + + While the size of `int' data is the same between ILP32 and LP64 targets, + resulting scanf output is different between them for out of range input + data and while ISO C and POSIX both say that the behavior is undefined + if the result of the conversion cannot be represented we want to keep + track of our output to prevent inadvertent changes. Hence the use of + distinct `int' integer input data between ILP32 and LP64 targets. + + Keep input data disabled and referring to BZ #12701 for entries that are + are currently incorrectly accepted as valid data, such as '0b' or '0x'. + + Reviewed-by: Joseph Myers + +Conflicts: + sysdeps/wordsize-64/Makefile + (missing Clang support commit 8d98c7c00f3f06545de9e5ce5cf778 + downstream) + +diff --git a/sysdeps/wordsize-64/Makefile b/sysdeps/wordsize-64/Makefile +index 2fa934751f04053d..25978365381ba06b 100644 +--- a/sysdeps/wordsize-64/Makefile ++++ b/sysdeps/wordsize-64/Makefile +@@ -1,3 +1,8 @@ + ifeq ($(subdir),misc) + tests += tst-writev + endif ++ ++ifeq ($(subdir),stdio-common) ++fmt-xscanf-int-convs += int long ++fmt-xscanf-uint-convs += uint ulong ++endif +diff --git a/sysdeps/wordsize-64/tst-scanf-format-int-d.input b/sysdeps/wordsize-64/tst-scanf-format-int-d.input +new file mode 100644 +index 0000000000000000..d8c2b10af50e0ad3 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-int-d.input +@@ -0,0 +1,266 @@ ++%d::0:-1: ++%*d::0:-1: ++%d:-2147484882:1:11:2147482414: ++%*d:-2147484882:0:11: ++%d:-2147483649:1:11:2147483647: ++%*d:-2147483649:0:11: ++%d:-2147483648:1:11:-2147483648: ++%*d:-2147483648:0:11: ++%d:-123:1:4:-123: ++%*d:-123:0:4: ++%d:-1:1:2:-1: ++%*d:-1:0:2: ++%d:-0:1:2:0: ++%*d:-0:0:2: ++%d:0:1:1:0: ++%*d:0:0:1: ++%d:1:1:1:1: ++%*d:1:0:1: ++%d:42:1:2:42: ++%*d:42:0:2: ++%d:2147483647:1:10:2147483647: ++%*d:2147483647:0:10: ++%d:2147483648:1:10:-2147483648: ++%*d:2147483648:0:10: ++%d:2147487889:1:10:-2147479407: ++%*d:2147487889:0:10: ++%d:+0:1:2:0: ++%*d:+0:0:2: ++%d:+1:1:2:1: ++%*d:+1:0:2: ++%d:+42:1:3:42: ++%*d:+42:0:3: ++%d:+2147483647:1:11:2147483647: ++%*d:+2147483647:0:11: ++%d:+2147483648:1:11:-2147483648: ++%*d:+2147483648:0:11: ++%d:+2147487889:1:11:-2147479407: ++%*d:+2147487889:0:11: ++%1d::0:-1: ++%*1d::0:-1: ++%1d:-2147484882:0:-1: ++%*1d:-2147484882:0:-1: ++%1d:-2147483649:0:-1: ++%*1d:-2147483649:0:-1: ++%1d:-2147483648:0:-1: ++%*1d:-2147483648:0:-1: ++%1d:-123:0:-1: ++%*1d:-123:0:-1: ++%1d:-1:0:-1: ++%*1d:-1:0:-1: ++%1d:-0:0:-1: ++%*1d:-0:0:-1: ++%1d:0:1:1:0: ++%*1d:0:0:1: ++%1d:1:1:1:1: ++%*1d:1:0:1: ++%1d:42:1:1:4: ++%*1d:42:0:1: ++%1d:2147483647:1:1:2: ++%*1d:2147483647:0:1: ++%1d:2147483648:1:1:2: ++%*1d:2147483648:0:1: ++%1d:2147487889:1:1:2: ++%*1d:2147487889:0:1: ++%1d:+0:0:-1: ++%*1d:+0:0:-1: ++%1d:+1:0:-1: ++%*1d:+1:0:-1: ++%1d:+42:0:-1: ++%*1d:+42:0:-1: ++%1d:+2147483647:0:-1: ++%*1d:+2147483647:0:-1: ++%1d:+2147483648:0:-1: ++%*1d:+2147483648:0:-1: ++%1d:+2147487889:0:-1: ++%*1d:+2147487889:0:-1: ++%2d::0:-1: ++%*2d::0:-1: ++%2d:-2147484882:1:2:-2: ++%*2d:-2147484882:0:2: ++%2d:-2147483649:1:2:-2: ++%*2d:-2147483649:0:2: ++%2d:-2147483648:1:2:-2: ++%*2d:-2147483648:0:2: ++%2d:-123:1:2:-1: ++%*2d:-123:0:2: ++%2d:-1:1:2:-1: ++%*2d:-1:0:2: ++%2d:-0:1:2:0: ++%*2d:-0:0:2: ++%2d:0:1:1:0: ++%*2d:0:0:1: ++%2d:1:1:1:1: ++%*2d:1:0:1: ++%2d:42:1:2:42: ++%*2d:42:0:2: ++%2d:2147483647:1:2:21: ++%*2d:2147483647:0:2: ++%2d:2147483648:1:2:21: ++%*2d:2147483648:0:2: ++%2d:2147487889:1:2:21: ++%*2d:2147487889:0:2: ++%2d:+0:1:2:0: ++%*2d:+0:0:2: ++%2d:+1:1:2:1: ++%*2d:+1:0:2: ++%2d:+42:1:2:4: ++%*2d:+42:0:2: ++%2d:+2147483647:1:2:2: ++%*2d:+2147483647:0:2: ++%2d:+2147483648:1:2:2: ++%*2d:+2147483648:0:2: ++%2d:+2147487889:1:2:2: ++%*2d:+2147487889:0:2: ++%8d::0:-1: ++%*8d::0:-1: ++%8d:-2147484882:1:8:-2147484: ++%*8d:-2147484882:0:8: ++%8d:-2147483649:1:8:-2147483: ++%*8d:-2147483649:0:8: ++%8d:-2147483648:1:8:-2147483: ++%*8d:-2147483648:0:8: ++%8d:-123:1:4:-123: ++%*8d:-123:0:4: ++%8d:-1:1:2:-1: ++%*8d:-1:0:2: ++%8d:-0:1:2:0: ++%*8d:-0:0:2: ++%8d:0:1:1:0: ++%*8d:0:0:1: ++%8d:1:1:1:1: ++%*8d:1:0:1: ++%8d:42:1:2:42: ++%*8d:42:0:2: ++%8d:2147483647:1:8:21474836: ++%*8d:2147483647:0:8: ++%8d:2147483648:1:8:21474836: ++%*8d:2147483648:0:8: ++%8d:2147487889:1:8:21474878: ++%*8d:2147487889:0:8: ++%8d:+0:1:2:0: ++%*8d:+0:0:2: ++%8d:+1:1:2:1: ++%*8d:+1:0:2: ++%8d:+42:1:3:42: ++%*8d:+42:0:3: ++%8d:+2147483647:1:8:2147483: ++%*8d:+2147483647:0:8: ++%8d:+2147483648:1:8:2147483: ++%*8d:+2147483648:0:8: ++%8d:+2147487889:1:8:2147487: ++%*8d:+2147487889:0:8: ++%15d::0:-1: ++%*15d::0:-1: ++%15d:-2147484882:1:11:2147482414: ++%*15d:-2147484882:0:11: ++%15d:-2147483649:1:11:2147483647: ++%*15d:-2147483649:0:11: ++%15d:-2147483648:1:11:-2147483648: ++%*15d:-2147483648:0:11: ++%15d:-123:1:4:-123: ++%*15d:-123:0:4: ++%15d:-1:1:2:-1: ++%*15d:-1:0:2: ++%15d:-0:1:2:0: ++%*15d:-0:0:2: ++%15d:0:1:1:0: ++%*15d:0:0:1: ++%15d:1:1:1:1: ++%*15d:1:0:1: ++%15d:42:1:2:42: ++%*15d:42:0:2: ++%15d:2147483647:1:10:2147483647: ++%*15d:2147483647:0:10: ++%15d:2147483648:1:10:-2147483648: ++%*15d:2147483648:0:10: ++%15d:2147487889:1:10:-2147479407: ++%*15d:2147487889:0:10: ++%15d:+0:1:2:0: ++%*15d:+0:0:2: ++%15d:+1:1:2:1: ++%*15d:+1:0:2: ++%15d:+42:1:3:42: ++%*15d:+42:0:3: ++%15d:+2147483647:1:11:2147483647: ++%*15d:+2147483647:0:11: ++%15d:+2147483648:1:11:-2147483648: ++%*15d:+2147483648:0:11: ++%15d:+2147487889:1:11:-2147479407: ++%*15d:+2147487889:0:11: ++%2d: :0:-1: ++%*2d: :0:-1: ++%2d: -2147484882:1:3:-2: ++%*2d: -2147484882:0:3: ++%2d: -2147483649:1:3:-2: ++%*2d: -2147483649:0:3: ++%2d: -2147483648:1:3:-2: ++%*2d: -2147483648:0:3: ++%2d: -123:1:3:-1: ++%*2d: -123:0:3: ++%2d: -1:1:3:-1: ++%*2d: -1:0:3: ++%2d: -0:1:3:0: ++%*2d: -0:0:3: ++%2d: 0:1:2:0: ++%*2d: 0:0:2: ++%2d: 1:1:2:1: ++%*2d: 1:0:2: ++%2d: 42:1:3:42: ++%*2d: 42:0:3: ++%2d: 2147483647:1:3:21: ++%*2d: 2147483647:0:3: ++%2d: 2147483648:1:3:21: ++%*2d: 2147483648:0:3: ++%2d: 2147487889:1:3:21: ++%*2d: 2147487889:0:3: ++%2d: +0:1:3:0: ++%*2d: +0:0:3: ++%2d: +1:1:3:1: ++%*2d: +1:0:3: ++%2d: +42:1:3:4: ++%*2d: +42:0:3: ++%2d: +2147483647:1:3:2: ++%*2d: +2147483647:0:3: ++%2d: +2147483648:1:3:2: ++%*2d: +2147483648:0:3: ++%2d: +2147487889:1:3:2: ++%*2d: +2147487889:0:3: ++%15d: :0:-1: ++%*15d: :0:-1: ++%15d: -2147484882:1:12:2147482414: ++%*15d: -2147484882:0:12: ++%15d: -2147483649:1:12:2147483647: ++%*15d: -2147483649:0:12: ++%15d: -2147483648:1:12:-2147483648: ++%*15d: -2147483648:0:12: ++%15d: -123:1:5:-123: ++%*15d: -123:0:5: ++%15d: -1:1:3:-1: ++%*15d: -1:0:3: ++%15d: -0:1:3:0: ++%*15d: -0:0:3: ++%15d: 0:1:2:0: ++%*15d: 0:0:2: ++%15d: 1:1:2:1: ++%*15d: 1:0:2: ++%15d: 42:1:3:42: ++%*15d: 42:0:3: ++%15d: 2147483647:1:11:2147483647: ++%*15d: 2147483647:0:11: ++%15d: 2147483648:1:11:-2147483648: ++%*15d: 2147483648:0:11: ++%15d: 2147487889:1:11:-2147479407: ++%*15d: 2147487889:0:11: ++%15d: +0:1:3:0: ++%*15d: +0:0:3: ++%15d: +1:1:3:1: ++%*15d: +1:0:3: ++%15d: +42:1:4:42: ++%*15d: +42:0:4: ++%15d: +2147483647:1:12:2147483647: ++%*15d: +2147483647:0:12: ++%15d: +2147483648:1:12:-2147483648: ++%*15d: +2147483648:0:12: ++%15d: +2147487889:1:12:-2147479407: ++%*15d: +2147487889:0:12: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-int-i.input b/sysdeps/wordsize-64/tst-scanf-format-int-i.input +new file mode 100644 +index 0000000000000000..8450d1aefc55cddf +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-int-i.input +@@ -0,0 +1,1526 @@ ++%i::0:-1: ++%*i::0:-1: ++%i:-2147484882:1:11:2147482414: ++%*i:-2147484882:0:11: ++%i:-0X800004d2:1:11:2147482414: ++%*i:-0X800004d2:0:11: ++%i:-0x800004D2:1:11:2147482414: ++%*i:-0x800004D2:0:11: ++%i:-020000002322:1:13:2147482414: ++%*i:-020000002322:0:13: ++%i:-0B10000000000000000000010011010010:1:35:2147482414: ++%*i:-0B10000000000000000000010011010010:0:35: ++%i:-0b10000000000000000000010011010010:1:35:2147482414: ++%*i:-0b10000000000000000000010011010010:0:35: ++%i:-2147483649:1:11:2147483647: ++%*i:-2147483649:0:11: ++%i:-0X80000001:1:11:2147483647: ++%*i:-0X80000001:0:11: ++%i:-0x80000001:1:11:2147483647: ++%*i:-0x80000001:0:11: ++%i:-020000000001:1:13:2147483647: ++%*i:-020000000001:0:13: ++%i:-0B10000000000000000000000000000001:1:35:2147483647: ++%*i:-0B10000000000000000000000000000001:0:35: ++%i:-0b10000000000000000000000000000001:1:35:2147483647: ++%*i:-0b10000000000000000000000000000001:0:35: ++%i:-2147483648:1:11:-2147483648: ++%*i:-2147483648:0:11: ++%i:-0X80000000:1:11:-2147483648: ++%*i:-0X80000000:0:11: ++%i:-0x80000000:1:11:-2147483648: ++%*i:-0x80000000:0:11: ++%i:-020000000000:1:13:-2147483648: ++%*i:-020000000000:0:13: ++%i:-0B10000000000000000000000000000000:1:35:-2147483648: ++%*i:-0B10000000000000000000000000000000:0:35: ++%i:-0b10000000000000000000000000000000:1:35:-2147483648: ++%*i:-0b10000000000000000000000000000000:0:35: ++%i:-123:1:4:-123: ++%*i:-123:0:4: ++%i:-0X7b:1:5:-123: ++%*i:-0X7b:0:5: ++%i:-0x7B:1:5:-123: ++%*i:-0x7B:0:5: ++%i:-0173:1:5:-123: ++%*i:-0173:0:5: ++%i:-0B1111011:1:10:-123: ++%*i:-0B1111011:0:10: ++%i:-0b1111011:1:10:-123: ++%*i:-0b1111011:0:10: ++%i:-1:1:2:-1: ++%*i:-1:0:2: ++%i:-0X1:1:4:-1: ++%*i:-0X1:0:4: ++%i:-0x1:1:4:-1: ++%*i:-0x1:0:4: ++%i:-01:1:3:-1: ++%*i:-01:0:3: ++%i:-0B1:1:4:-1: ++%*i:-0B1:0:4: ++%i:-0b1:1:4:-1: ++%*i:-0b1:0:4: ++%i:-0:1:2:0: ++%*i:-0:0:2: ++%i:-0X0:1:4:0: ++%*i:-0X0:0:4: ++%i:-0x0:1:4:0: ++%*i:-0x0:0:4: ++%i:-00:1:3:0: ++%*i:-00:0:3: ++%i:-0B0:1:4:0: ++%*i:-0B0:0:4: ++%i:-0b0:1:4:0: ++%*i:-0b0:0:4: ++%i:0:1:1:0: ++%*i:0:0:1: ++%i:0X0:1:3:0: ++%*i:0X0:0:3: ++%i:0x0:1:3:0: ++%*i:0x0:0:3: ++%i:00:1:2:0: ++%*i:00:0:2: ++%i:0B0:1:3:0: ++%*i:0B0:0:3: ++%i:0b0:1:3:0: ++%*i:0b0:0:3: ++%i:1:1:1:1: ++%*i:1:0:1: ++%i:0X1:1:3:1: ++%*i:0X1:0:3: ++%i:0x1:1:3:1: ++%*i:0x1:0:3: ++%i:01:1:2:1: ++%*i:01:0:2: ++%i:0B1:1:3:1: ++%*i:0B1:0:3: ++%i:0b1:1:3:1: ++%*i:0b1:0:3: ++%i:42:1:2:42: ++%*i:42:0:2: ++%i:0X2a:1:4:42: ++%*i:0X2a:0:4: ++%i:0x2A:1:4:42: ++%*i:0x2A:0:4: ++%i:052:1:3:42: ++%*i:052:0:3: ++%i:0B101010:1:8:42: ++%*i:0B101010:0:8: ++%i:0b101010:1:8:42: ++%*i:0b101010:0:8: ++%i:2147483647:1:10:2147483647: ++%*i:2147483647:0:10: ++%i:0X7fffffff:1:10:2147483647: ++%*i:0X7fffffff:0:10: ++%i:0x7FFFFFFF:1:10:2147483647: ++%*i:0x7FFFFFFF:0:10: ++%i:017777777777:1:12:2147483647: ++%*i:017777777777:0:12: ++%i:0B1111111111111111111111111111111:1:33:2147483647: ++%*i:0B1111111111111111111111111111111:0:33: ++%i:0b1111111111111111111111111111111:1:33:2147483647: ++%*i:0b1111111111111111111111111111111:0:33: ++%i:2147483648:1:10:-2147483648: ++%*i:2147483648:0:10: ++%i:0X80000000:1:10:-2147483648: ++%*i:0X80000000:0:10: ++%i:0x80000000:1:10:-2147483648: ++%*i:0x80000000:0:10: ++%i:020000000000:1:12:-2147483648: ++%*i:020000000000:0:12: ++%i:0B10000000000000000000000000000000:1:34:-2147483648: ++%*i:0B10000000000000000000000000000000:0:34: ++%i:0b10000000000000000000000000000000:1:34:-2147483648: ++%*i:0b10000000000000000000000000000000:0:34: ++%i:2147487889:1:10:-2147479407: ++%*i:2147487889:0:10: ++%i:0X80001091:1:10:-2147479407: ++%*i:0X80001091:0:10: ++%i:0x80001091:1:10:-2147479407: ++%*i:0x80001091:0:10: ++%i:020000010221:1:12:-2147479407: ++%*i:020000010221:0:12: ++%i:0B10000000000000000001000010010001:1:34:-2147479407: ++%*i:0B10000000000000000001000010010001:0:34: ++%i:0b10000000000000000001000010010001:1:34:-2147479407: ++%*i:0b10000000000000000001000010010001:0:34: ++%i:+0:1:2:0: ++%*i:+0:0:2: ++%i:+0X0:1:4:0: ++%*i:+0X0:0:4: ++%i:+0x0:1:4:0: ++%*i:+0x0:0:4: ++%i:+00:1:3:0: ++%*i:+00:0:3: ++%i:+0B0:1:4:0: ++%*i:+0B0:0:4: ++%i:+0b0:1:4:0: ++%*i:+0b0:0:4: ++%i:+1:1:2:1: ++%*i:+1:0:2: ++%i:+0X1:1:4:1: ++%*i:+0X1:0:4: ++%i:+0x1:1:4:1: ++%*i:+0x1:0:4: ++%i:+01:1:3:1: ++%*i:+01:0:3: ++%i:+0B1:1:4:1: ++%*i:+0B1:0:4: ++%i:+0b1:1:4:1: ++%*i:+0b1:0:4: ++%i:+42:1:3:42: ++%*i:+42:0:3: ++%i:+0X2a:1:5:42: ++%*i:+0X2a:0:5: ++%i:+0x2A:1:5:42: ++%*i:+0x2A:0:5: ++%i:+052:1:4:42: ++%*i:+052:0:4: ++%i:+0B101010:1:9:42: ++%*i:+0B101010:0:9: ++%i:+0b101010:1:9:42: ++%*i:+0b101010:0:9: ++%i:+2147483647:1:11:2147483647: ++%*i:+2147483647:0:11: ++%i:+0X7fffffff:1:11:2147483647: ++%*i:+0X7fffffff:0:11: ++%i:+0x7FFFFFFF:1:11:2147483647: ++%*i:+0x7FFFFFFF:0:11: ++%i:+017777777777:1:13:2147483647: ++%*i:+017777777777:0:13: ++%i:+0B1111111111111111111111111111111:1:34:2147483647: ++%*i:+0B1111111111111111111111111111111:0:34: ++%i:+0b1111111111111111111111111111111:1:34:2147483647: ++%*i:+0b1111111111111111111111111111111:0:34: ++%i:+2147483648:1:11:-2147483648: ++%*i:+2147483648:0:11: ++%i:+0X80000000:1:11:-2147483648: ++%*i:+0X80000000:0:11: ++%i:+0x80000000:1:11:-2147483648: ++%*i:+0x80000000:0:11: ++%i:+020000000000:1:13:-2147483648: ++%*i:+020000000000:0:13: ++%i:+0B10000000000000000000000000000000:1:35:-2147483648: ++%*i:+0B10000000000000000000000000000000:0:35: ++%i:+0b10000000000000000000000000000000:1:35:-2147483648: ++%*i:+0b10000000000000000000000000000000:0:35: ++%i:+2147487889:1:11:-2147479407: ++%*i:+2147487889:0:11: ++%i:+0X80001091:1:11:-2147479407: ++%*i:+0X80001091:0:11: ++%i:+0x80001091:1:11:-2147479407: ++%*i:+0x80001091:0:11: ++%i:+020000010221:1:13:-2147479407: ++%*i:+020000010221:0:13: ++%i:+0B10000000000000000001000010010001:1:35:-2147479407: ++%*i:+0B10000000000000000001000010010001:0:35: ++%i:+0b10000000000000000001000010010001:1:35:-2147479407: ++%*i:+0b10000000000000000001000010010001:0:35: ++%1i::0:-1: ++%*1i::0:-1: ++%1i:-2147484882:0:-1: ++%*1i:-2147484882:0:-1: ++%1i:-0X800004d2:0:-1: ++%*1i:-0X800004d2:0:-1: ++%1i:-0x800004D2:0:-1: ++%*1i:-0x800004D2:0:-1: ++%1i:-020000002322:0:-1: ++%*1i:-020000002322:0:-1: ++%1i:-0B10000000000000000000010011010010:0:-1: ++%*1i:-0B10000000000000000000010011010010:0:-1: ++%1i:-0b10000000000000000000010011010010:0:-1: ++%*1i:-0b10000000000000000000010011010010:0:-1: ++%1i:-2147483649:0:-1: ++%*1i:-2147483649:0:-1: ++%1i:-0X80000001:0:-1: ++%*1i:-0X80000001:0:-1: ++%1i:-0x80000001:0:-1: ++%*1i:-0x80000001:0:-1: ++%1i:-020000000001:0:-1: ++%*1i:-020000000001:0:-1: ++%1i:-0B10000000000000000000000000000001:0:-1: ++%*1i:-0B10000000000000000000000000000001:0:-1: ++%1i:-0b10000000000000000000000000000001:0:-1: ++%*1i:-0b10000000000000000000000000000001:0:-1: ++%1i:-2147483648:0:-1: ++%*1i:-2147483648:0:-1: ++%1i:-0X80000000:0:-1: ++%*1i:-0X80000000:0:-1: ++%1i:-0x80000000:0:-1: ++%*1i:-0x80000000:0:-1: ++%1i:-020000000000:0:-1: ++%*1i:-020000000000:0:-1: ++%1i:-0B10000000000000000000000000000000:0:-1: ++%*1i:-0B10000000000000000000000000000000:0:-1: ++%1i:-0b10000000000000000000000000000000:0:-1: ++%*1i:-0b10000000000000000000000000000000:0:-1: ++%1i:-123:0:-1: ++%*1i:-123:0:-1: ++%1i:-0X7b:0:-1: ++%*1i:-0X7b:0:-1: ++%1i:-0x7B:0:-1: ++%*1i:-0x7B:0:-1: ++%1i:-0173:0:-1: ++%*1i:-0173:0:-1: ++%1i:-0B1111011:0:-1: ++%*1i:-0B1111011:0:-1: ++%1i:-0b1111011:0:-1: ++%*1i:-0b1111011:0:-1: ++%1i:-1:0:-1: ++%*1i:-1:0:-1: ++%1i:-0X1:0:-1: ++%*1i:-0X1:0:-1: ++%1i:-0x1:0:-1: ++%*1i:-0x1:0:-1: ++%1i:-01:0:-1: ++%*1i:-01:0:-1: ++%1i:-0B1:0:-1: ++%*1i:-0B1:0:-1: ++%1i:-0b1:0:-1: ++%*1i:-0b1:0:-1: ++%1i:-0:0:-1: ++%*1i:-0:0:-1: ++%1i:-0X0:0:-1: ++%*1i:-0X0:0:-1: ++%1i:-0x0:0:-1: ++%*1i:-0x0:0:-1: ++%1i:-00:0:-1: ++%*1i:-00:0:-1: ++%1i:-0B0:0:-1: ++%*1i:-0B0:0:-1: ++%1i:-0b0:0:-1: ++%*1i:-0b0:0:-1: ++%1i:0:1:1:0: ++%*1i:0:0:1: ++%1i:0X0:1:1:0: ++%*1i:0X0:0:1: ++%1i:0x0:1:1:0: ++%*1i:0x0:0:1: ++%1i:00:1:1:0: ++%*1i:00:0:1: ++%1i:0B0:1:1:0: ++%*1i:0B0:0:1: ++%1i:0b0:1:1:0: ++%*1i:0b0:0:1: ++%1i:1:1:1:1: ++%*1i:1:0:1: ++%1i:0X1:1:1:0: ++%*1i:0X1:0:1: ++%1i:0x1:1:1:0: ++%*1i:0x1:0:1: ++%1i:01:1:1:0: ++%*1i:01:0:1: ++%1i:0B1:1:1:0: ++%*1i:0B1:0:1: ++%1i:0b1:1:1:0: ++%*1i:0b1:0:1: ++%1i:42:1:1:4: ++%*1i:42:0:1: ++%1i:0X2a:1:1:0: ++%*1i:0X2a:0:1: ++%1i:0x2A:1:1:0: ++%*1i:0x2A:0:1: ++%1i:052:1:1:0: ++%*1i:052:0:1: ++%1i:0B101010:1:1:0: ++%*1i:0B101010:0:1: ++%1i:0b101010:1:1:0: ++%*1i:0b101010:0:1: ++%1i:2147483647:1:1:2: ++%*1i:2147483647:0:1: ++%1i:0X7fffffff:1:1:0: ++%*1i:0X7fffffff:0:1: ++%1i:0x7FFFFFFF:1:1:0: ++%*1i:0x7FFFFFFF:0:1: ++%1i:017777777777:1:1:0: ++%*1i:017777777777:0:1: ++%1i:0B1111111111111111111111111111111:1:1:0: ++%*1i:0B1111111111111111111111111111111:0:1: ++%1i:0b1111111111111111111111111111111:1:1:0: ++%*1i:0b1111111111111111111111111111111:0:1: ++%1i:2147483648:1:1:2: ++%*1i:2147483648:0:1: ++%1i:0X80000000:1:1:0: ++%*1i:0X80000000:0:1: ++%1i:0x80000000:1:1:0: ++%*1i:0x80000000:0:1: ++%1i:020000000000:1:1:0: ++%*1i:020000000000:0:1: ++%1i:0B10000000000000000000000000000000:1:1:0: ++%*1i:0B10000000000000000000000000000000:0:1: ++%1i:0b10000000000000000000000000000000:1:1:0: ++%*1i:0b10000000000000000000000000000000:0:1: ++%1i:2147487889:1:1:2: ++%*1i:2147487889:0:1: ++%1i:0X80001091:1:1:0: ++%*1i:0X80001091:0:1: ++%1i:0x80001091:1:1:0: ++%*1i:0x80001091:0:1: ++%1i:020000010221:1:1:0: ++%*1i:020000010221:0:1: ++%1i:0B10000000000000000001000010010001:1:1:0: ++%*1i:0B10000000000000000001000010010001:0:1: ++%1i:0b10000000000000000001000010010001:1:1:0: ++%*1i:0b10000000000000000001000010010001:0:1: ++%1i:+0:0:-1: ++%*1i:+0:0:-1: ++%1i:+0X0:0:-1: ++%*1i:+0X0:0:-1: ++%1i:+0x0:0:-1: ++%*1i:+0x0:0:-1: ++%1i:+00:0:-1: ++%*1i:+00:0:-1: ++%1i:+0B0:0:-1: ++%*1i:+0B0:0:-1: ++%1i:+0b0:0:-1: ++%*1i:+0b0:0:-1: ++%1i:+1:0:-1: ++%*1i:+1:0:-1: ++%1i:+0X1:0:-1: ++%*1i:+0X1:0:-1: ++%1i:+0x1:0:-1: ++%*1i:+0x1:0:-1: ++%1i:+01:0:-1: ++%*1i:+01:0:-1: ++%1i:+0B1:0:-1: ++%*1i:+0B1:0:-1: ++%1i:+0b1:0:-1: ++%*1i:+0b1:0:-1: ++%1i:+42:0:-1: ++%*1i:+42:0:-1: ++%1i:+0X2a:0:-1: ++%*1i:+0X2a:0:-1: ++%1i:+0x2A:0:-1: ++%*1i:+0x2A:0:-1: ++%1i:+052:0:-1: ++%*1i:+052:0:-1: ++%1i:+0B101010:0:-1: ++%*1i:+0B101010:0:-1: ++%1i:+0b101010:0:-1: ++%*1i:+0b101010:0:-1: ++%1i:+2147483647:0:-1: ++%*1i:+2147483647:0:-1: ++%1i:+0X7fffffff:0:-1: ++%*1i:+0X7fffffff:0:-1: ++%1i:+0x7FFFFFFF:0:-1: ++%*1i:+0x7FFFFFFF:0:-1: ++%1i:+017777777777:0:-1: ++%*1i:+017777777777:0:-1: ++%1i:+0B1111111111111111111111111111111:0:-1: ++%*1i:+0B1111111111111111111111111111111:0:-1: ++%1i:+0b1111111111111111111111111111111:0:-1: ++%*1i:+0b1111111111111111111111111111111:0:-1: ++%1i:+2147483648:0:-1: ++%*1i:+2147483648:0:-1: ++%1i:+0X80000000:0:-1: ++%*1i:+0X80000000:0:-1: ++%1i:+0x80000000:0:-1: ++%*1i:+0x80000000:0:-1: ++%1i:+020000000000:0:-1: ++%*1i:+020000000000:0:-1: ++%1i:+0B10000000000000000000000000000000:0:-1: ++%*1i:+0B10000000000000000000000000000000:0:-1: ++%1i:+0b10000000000000000000000000000000:0:-1: ++%*1i:+0b10000000000000000000000000000000:0:-1: ++%1i:+2147487889:0:-1: ++%*1i:+2147487889:0:-1: ++%1i:+0X80001091:0:-1: ++%*1i:+0X80001091:0:-1: ++%1i:+0x80001091:0:-1: ++%*1i:+0x80001091:0:-1: ++%1i:+020000010221:0:-1: ++%*1i:+020000010221:0:-1: ++%1i:+0B10000000000000000001000010010001:0:-1: ++%*1i:+0B10000000000000000001000010010001:0:-1: ++%1i:+0b10000000000000000001000010010001:0:-1: ++%*1i:+0b10000000000000000001000010010001:0:-1: ++%2i::0:-1: ++%*2i::0:-1: ++%2i:-2147484882:1:2:-2: ++%*2i:-2147484882:0:2: ++%2i:-0X800004d2:1:2:0: ++%*2i:-0X800004d2:0:2: ++%2i:-0x800004D2:1:2:0: ++%*2i:-0x800004D2:0:2: ++%2i:-020000002322:1:2:0: ++%*2i:-020000002322:0:2: ++%2i:-0B10000000000000000000010011010010:1:2:0: ++%*2i:-0B10000000000000000000010011010010:0:2: ++%2i:-0b10000000000000000000010011010010:1:2:0: ++%*2i:-0b10000000000000000000010011010010:0:2: ++%2i:-2147483649:1:2:-2: ++%*2i:-2147483649:0:2: ++%2i:-0X80000001:1:2:0: ++%*2i:-0X80000001:0:2: ++%2i:-0x80000001:1:2:0: ++%*2i:-0x80000001:0:2: ++%2i:-020000000001:1:2:0: ++%*2i:-020000000001:0:2: ++%2i:-0B10000000000000000000000000000001:1:2:0: ++%*2i:-0B10000000000000000000000000000001:0:2: ++%2i:-0b10000000000000000000000000000001:1:2:0: ++%*2i:-0b10000000000000000000000000000001:0:2: ++%2i:-2147483648:1:2:-2: ++%*2i:-2147483648:0:2: ++%2i:-0X80000000:1:2:0: ++%*2i:-0X80000000:0:2: ++%2i:-0x80000000:1:2:0: ++%*2i:-0x80000000:0:2: ++%2i:-020000000000:1:2:0: ++%*2i:-020000000000:0:2: ++%2i:-0B10000000000000000000000000000000:1:2:0: ++%*2i:-0B10000000000000000000000000000000:0:2: ++%2i:-0b10000000000000000000000000000000:1:2:0: ++%*2i:-0b10000000000000000000000000000000:0:2: ++%2i:-123:1:2:-1: ++%*2i:-123:0:2: ++%2i:-0X7b:1:2:0: ++%*2i:-0X7b:0:2: ++%2i:-0x7B:1:2:0: ++%*2i:-0x7B:0:2: ++%2i:-0173:1:2:0: ++%*2i:-0173:0:2: ++%2i:-0B1111011:1:2:0: ++%*2i:-0B1111011:0:2: ++%2i:-0b1111011:1:2:0: ++%*2i:-0b1111011:0:2: ++%2i:-1:1:2:-1: ++%*2i:-1:0:2: ++%2i:-0X1:1:2:0: ++%*2i:-0X1:0:2: ++%2i:-0x1:1:2:0: ++%*2i:-0x1:0:2: ++%2i:-01:1:2:0: ++%*2i:-01:0:2: ++%2i:-0B1:1:2:0: ++%*2i:-0B1:0:2: ++%2i:-0b1:1:2:0: ++%*2i:-0b1:0:2: ++%2i:-0:1:2:0: ++%*2i:-0:0:2: ++%2i:-0X0:1:2:0: ++%*2i:-0X0:0:2: ++%2i:-0x0:1:2:0: ++%*2i:-0x0:0:2: ++%2i:-00:1:2:0: ++%*2i:-00:0:2: ++%2i:-0B0:1:2:0: ++%*2i:-0B0:0:2: ++%2i:-0b0:1:2:0: ++%*2i:-0b0:0:2: ++%2i:0:1:1:0: ++%*2i:0:0:1: ++# BZ12701 %2i:0X0:0:-1: ++# BZ12701 %*2i:0X0:0:-1: ++# BZ12701 %2i:0x0:0:-1: ++# BZ12701 %*2i:0x0:0:-1: ++%2i:00:1:2:0: ++%*2i:00:0:2: ++# BZ12701 %2i:0B0:0:-1: ++# BZ12701 %*2i:0B0:0:-1: ++# BZ12701 %2i:0b0:0:-1: ++# BZ12701 %*2i:0b0:0:-1: ++%2i:1:1:1:1: ++%*2i:1:0:1: ++# BZ12701 %2i:0X1:0:-1: ++# BZ12701 %*2i:0X1:0:-1: ++# BZ12701 %2i:0x1:0:-1: ++# BZ12701 %*2i:0x1:0:-1: ++%2i:01:1:2:1: ++%*2i:01:0:2: ++# BZ12701 %2i:0B1:0:-1: ++# BZ12701 %*2i:0B1:0:-1: ++# BZ12701 %2i:0b1:0:-1: ++# BZ12701 %*2i:0b1:0:-1: ++%2i:42:1:2:42: ++%*2i:42:0:2: ++# BZ12701 %2i:0X2a:0:-1: ++# BZ12701 %*2i:0X2a:0:-1: ++# BZ12701 %2i:0x2A:0:-1: ++# BZ12701 %*2i:0x2A:0:-1: ++%2i:052:1:2:5: ++%*2i:052:0:2: ++# BZ12701 %2i:0B101010:0:-1: ++# BZ12701 %*2i:0B101010:0:-1: ++# BZ12701 %2i:0b101010:0:-1: ++# BZ12701 %*2i:0b101010:0:-1: ++%2i:2147483647:1:2:21: ++%*2i:2147483647:0:2: ++# BZ12701 %2i:0X7fffffff:0:-1: ++# BZ12701 %*2i:0X7fffffff:0:-1: ++# BZ12701 %2i:0x7FFFFFFF:0:-1: ++# BZ12701 %*2i:0x7FFFFFFF:0:-1: ++%2i:017777777777:1:2:1: ++%*2i:017777777777:0:2: ++# BZ12701 %2i:0B1111111111111111111111111111111:0:-1: ++# BZ12701 %*2i:0B1111111111111111111111111111111:0:-1: ++# BZ12701 %2i:0b1111111111111111111111111111111:0:-1: ++# BZ12701 %*2i:0b1111111111111111111111111111111:0:-1: ++%2i:2147483648:1:2:21: ++%*2i:2147483648:0:2: ++# BZ12701 %2i:0X80000000:0:-1: ++# BZ12701 %*2i:0X80000000:0:-1: ++# BZ12701 %2i:0x80000000:0:-1: ++# BZ12701 %*2i:0x80000000:0:-1: ++%2i:020000000000:1:2:2: ++%*2i:020000000000:0:2: ++# BZ12701 %2i:0B10000000000000000000000000000000:0:-1: ++# BZ12701 %*2i:0B10000000000000000000000000000000:0:-1: ++# BZ12701 %2i:0b10000000000000000000000000000000:0:-1: ++# BZ12701 %*2i:0b10000000000000000000000000000000:0:-1: ++%2i:2147487889:1:2:21: ++%*2i:2147487889:0:2: ++# BZ12701 %2i:0X80001091:0:-1: ++# BZ12701 %*2i:0X80001091:0:-1: ++# BZ12701 %2i:0x80001091:0:-1: ++# BZ12701 %*2i:0x80001091:0:-1: ++%2i:020000010221:1:2:2: ++%*2i:020000010221:0:2: ++# BZ12701 %2i:0B10000000000000000001000010010001:0:-1: ++# BZ12701 %*2i:0B10000000000000000001000010010001:0:-1: ++# BZ12701 %2i:0b10000000000000000001000010010001:0:-1: ++# BZ12701 %*2i:0b10000000000000000001000010010001:0:-1: ++%2i:+0:1:2:0: ++%*2i:+0:0:2: ++%2i:+0X0:1:2:0: ++%*2i:+0X0:0:2: ++%2i:+0x0:1:2:0: ++%*2i:+0x0:0:2: ++%2i:+00:1:2:0: ++%*2i:+00:0:2: ++%2i:+0B0:1:2:0: ++%*2i:+0B0:0:2: ++%2i:+0b0:1:2:0: ++%*2i:+0b0:0:2: ++%2i:+1:1:2:1: ++%*2i:+1:0:2: ++%2i:+0X1:1:2:0: ++%*2i:+0X1:0:2: ++%2i:+0x1:1:2:0: ++%*2i:+0x1:0:2: ++%2i:+01:1:2:0: ++%*2i:+01:0:2: ++%2i:+0B1:1:2:0: ++%*2i:+0B1:0:2: ++%2i:+0b1:1:2:0: ++%*2i:+0b1:0:2: ++%2i:+42:1:2:4: ++%*2i:+42:0:2: ++%2i:+0X2a:1:2:0: ++%*2i:+0X2a:0:2: ++%2i:+0x2A:1:2:0: ++%*2i:+0x2A:0:2: ++%2i:+052:1:2:0: ++%*2i:+052:0:2: ++%2i:+0B101010:1:2:0: ++%*2i:+0B101010:0:2: ++%2i:+0b101010:1:2:0: ++%*2i:+0b101010:0:2: ++%2i:+2147483647:1:2:2: ++%*2i:+2147483647:0:2: ++%2i:+0X7fffffff:1:2:0: ++%*2i:+0X7fffffff:0:2: ++%2i:+0x7FFFFFFF:1:2:0: ++%*2i:+0x7FFFFFFF:0:2: ++%2i:+017777777777:1:2:0: ++%*2i:+017777777777:0:2: ++%2i:+0B1111111111111111111111111111111:1:2:0: ++%*2i:+0B1111111111111111111111111111111:0:2: ++%2i:+0b1111111111111111111111111111111:1:2:0: ++%*2i:+0b1111111111111111111111111111111:0:2: ++%2i:+2147483648:1:2:2: ++%*2i:+2147483648:0:2: ++%2i:+0X80000000:1:2:0: ++%*2i:+0X80000000:0:2: ++%2i:+0x80000000:1:2:0: ++%*2i:+0x80000000:0:2: ++%2i:+020000000000:1:2:0: ++%*2i:+020000000000:0:2: ++%2i:+0B10000000000000000000000000000000:1:2:0: ++%*2i:+0B10000000000000000000000000000000:0:2: ++%2i:+0b10000000000000000000000000000000:1:2:0: ++%*2i:+0b10000000000000000000000000000000:0:2: ++%2i:+2147487889:1:2:2: ++%*2i:+2147487889:0:2: ++%2i:+0X80001091:1:2:0: ++%*2i:+0X80001091:0:2: ++%2i:+0x80001091:1:2:0: ++%*2i:+0x80001091:0:2: ++%2i:+020000010221:1:2:0: ++%*2i:+020000010221:0:2: ++%2i:+0B10000000000000000001000010010001:1:2:0: ++%*2i:+0B10000000000000000001000010010001:0:2: ++%2i:+0b10000000000000000001000010010001:1:2:0: ++%*2i:+0b10000000000000000001000010010001:0:2: ++%8i::0:-1: ++%*8i::0:-1: ++%8i:-2147484882:1:8:-2147484: ++%*8i:-2147484882:0:8: ++%8i:-0X800004d2:1:8:-524288: ++%*8i:-0X800004d2:0:8: ++%8i:-0x800004D2:1:8:-524288: ++%*8i:-0x800004D2:0:8: ++%8i:-020000002322:1:8:-65536: ++%*8i:-020000002322:0:8: ++%8i:-0B10000000000000000000010011010010:1:8:-16: ++%*8i:-0B10000000000000000000010011010010:0:8: ++%8i:-0b10000000000000000000010011010010:1:8:-16: ++%*8i:-0b10000000000000000000010011010010:0:8: ++%8i:-2147483649:1:8:-2147483: ++%*8i:-2147483649:0:8: ++%8i:-0X80000001:1:8:-524288: ++%*8i:-0X80000001:0:8: ++%8i:-0x80000001:1:8:-524288: ++%*8i:-0x80000001:0:8: ++%8i:-020000000001:1:8:-65536: ++%*8i:-020000000001:0:8: ++%8i:-0B10000000000000000000000000000001:1:8:-16: ++%*8i:-0B10000000000000000000000000000001:0:8: ++%8i:-0b10000000000000000000000000000001:1:8:-16: ++%*8i:-0b10000000000000000000000000000001:0:8: ++%8i:-2147483648:1:8:-2147483: ++%*8i:-2147483648:0:8: ++%8i:-0X80000000:1:8:-524288: ++%*8i:-0X80000000:0:8: ++%8i:-0x80000000:1:8:-524288: ++%*8i:-0x80000000:0:8: ++%8i:-020000000000:1:8:-65536: ++%*8i:-020000000000:0:8: ++%8i:-0B10000000000000000000000000000000:1:8:-16: ++%*8i:-0B10000000000000000000000000000000:0:8: ++%8i:-0b10000000000000000000000000000000:1:8:-16: ++%*8i:-0b10000000000000000000000000000000:0:8: ++%8i:-123:1:4:-123: ++%*8i:-123:0:4: ++%8i:-0X7b:1:5:-123: ++%*8i:-0X7b:0:5: ++%8i:-0x7B:1:5:-123: ++%*8i:-0x7B:0:5: ++%8i:-0173:1:5:-123: ++%*8i:-0173:0:5: ++%8i:-0B1111011:1:8:-30: ++%*8i:-0B1111011:0:8: ++%8i:-0b1111011:1:8:-30: ++%*8i:-0b1111011:0:8: ++%8i:-1:1:2:-1: ++%*8i:-1:0:2: ++%8i:-0X1:1:4:-1: ++%*8i:-0X1:0:4: ++%8i:-0x1:1:4:-1: ++%*8i:-0x1:0:4: ++%8i:-01:1:3:-1: ++%*8i:-01:0:3: ++%8i:-0B1:1:4:-1: ++%*8i:-0B1:0:4: ++%8i:-0b1:1:4:-1: ++%*8i:-0b1:0:4: ++%8i:-0:1:2:0: ++%*8i:-0:0:2: ++%8i:-0X0:1:4:0: ++%*8i:-0X0:0:4: ++%8i:-0x0:1:4:0: ++%*8i:-0x0:0:4: ++%8i:-00:1:3:0: ++%*8i:-00:0:3: ++%8i:-0B0:1:4:0: ++%*8i:-0B0:0:4: ++%8i:-0b0:1:4:0: ++%*8i:-0b0:0:4: ++%8i:0:1:1:0: ++%*8i:0:0:1: ++%8i:0X0:1:3:0: ++%*8i:0X0:0:3: ++%8i:0x0:1:3:0: ++%*8i:0x0:0:3: ++%8i:00:1:2:0: ++%*8i:00:0:2: ++%8i:0B0:1:3:0: ++%*8i:0B0:0:3: ++%8i:0b0:1:3:0: ++%*8i:0b0:0:3: ++%8i:1:1:1:1: ++%*8i:1:0:1: ++%8i:0X1:1:3:1: ++%*8i:0X1:0:3: ++%8i:0x1:1:3:1: ++%*8i:0x1:0:3: ++%8i:01:1:2:1: ++%*8i:01:0:2: ++%8i:0B1:1:3:1: ++%*8i:0B1:0:3: ++%8i:0b1:1:3:1: ++%*8i:0b1:0:3: ++%8i:42:1:2:42: ++%*8i:42:0:2: ++%8i:0X2a:1:4:42: ++%*8i:0X2a:0:4: ++%8i:0x2A:1:4:42: ++%*8i:0x2A:0:4: ++%8i:052:1:3:42: ++%*8i:052:0:3: ++%8i:0B101010:1:8:42: ++%*8i:0B101010:0:8: ++%8i:0b101010:1:8:42: ++%*8i:0b101010:0:8: ++%8i:2147483647:1:8:21474836: ++%*8i:2147483647:0:8: ++%8i:0X7fffffff:1:8:8388607: ++%*8i:0X7fffffff:0:8: ++%8i:0x7FFFFFFF:1:8:8388607: ++%*8i:0x7FFFFFFF:0:8: ++%8i:017777777777:1:8:524287: ++%*8i:017777777777:0:8: ++%8i:0B1111111111111111111111111111111:1:8:63: ++%*8i:0B1111111111111111111111111111111:0:8: ++%8i:0b1111111111111111111111111111111:1:8:63: ++%*8i:0b1111111111111111111111111111111:0:8: ++%8i:2147483648:1:8:21474836: ++%*8i:2147483648:0:8: ++%8i:0X80000000:1:8:8388608: ++%*8i:0X80000000:0:8: ++%8i:0x80000000:1:8:8388608: ++%*8i:0x80000000:0:8: ++%8i:020000000000:1:8:524288: ++%*8i:020000000000:0:8: ++%8i:0B10000000000000000000000000000000:1:8:32: ++%*8i:0B10000000000000000000000000000000:0:8: ++%8i:0b10000000000000000000000000000000:1:8:32: ++%*8i:0b10000000000000000000000000000000:0:8: ++%8i:2147487889:1:8:21474878: ++%*8i:2147487889:0:8: ++%8i:0X80001091:1:8:8388624: ++%*8i:0X80001091:0:8: ++%8i:0x80001091:1:8:8388624: ++%*8i:0x80001091:0:8: ++%8i:020000010221:1:8:524289: ++%*8i:020000010221:0:8: ++%8i:0B10000000000000000001000010010001:1:8:32: ++%*8i:0B10000000000000000001000010010001:0:8: ++%8i:0b10000000000000000001000010010001:1:8:32: ++%*8i:0b10000000000000000001000010010001:0:8: ++%8i:+0:1:2:0: ++%*8i:+0:0:2: ++%8i:+0X0:1:4:0: ++%*8i:+0X0:0:4: ++%8i:+0x0:1:4:0: ++%*8i:+0x0:0:4: ++%8i:+00:1:3:0: ++%*8i:+00:0:3: ++%8i:+0B0:1:4:0: ++%*8i:+0B0:0:4: ++%8i:+0b0:1:4:0: ++%*8i:+0b0:0:4: ++%8i:+1:1:2:1: ++%*8i:+1:0:2: ++%8i:+0X1:1:4:1: ++%*8i:+0X1:0:4: ++%8i:+0x1:1:4:1: ++%*8i:+0x1:0:4: ++%8i:+01:1:3:1: ++%*8i:+01:0:3: ++%8i:+0B1:1:4:1: ++%*8i:+0B1:0:4: ++%8i:+0b1:1:4:1: ++%*8i:+0b1:0:4: ++%8i:+42:1:3:42: ++%*8i:+42:0:3: ++%8i:+0X2a:1:5:42: ++%*8i:+0X2a:0:5: ++%8i:+0x2A:1:5:42: ++%*8i:+0x2A:0:5: ++%8i:+052:1:4:42: ++%*8i:+052:0:4: ++%8i:+0B101010:1:8:21: ++%*8i:+0B101010:0:8: ++%8i:+0b101010:1:8:21: ++%*8i:+0b101010:0:8: ++%8i:+2147483647:1:8:2147483: ++%*8i:+2147483647:0:8: ++%8i:+0X7fffffff:1:8:524287: ++%*8i:+0X7fffffff:0:8: ++%8i:+0x7FFFFFFF:1:8:524287: ++%*8i:+0x7FFFFFFF:0:8: ++%8i:+017777777777:1:8:65535: ++%*8i:+017777777777:0:8: ++%8i:+0B1111111111111111111111111111111:1:8:31: ++%*8i:+0B1111111111111111111111111111111:0:8: ++%8i:+0b1111111111111111111111111111111:1:8:31: ++%*8i:+0b1111111111111111111111111111111:0:8: ++%8i:+2147483648:1:8:2147483: ++%*8i:+2147483648:0:8: ++%8i:+0X80000000:1:8:524288: ++%*8i:+0X80000000:0:8: ++%8i:+0x80000000:1:8:524288: ++%*8i:+0x80000000:0:8: ++%8i:+020000000000:1:8:65536: ++%*8i:+020000000000:0:8: ++%8i:+0B10000000000000000000000000000000:1:8:16: ++%*8i:+0B10000000000000000000000000000000:0:8: ++%8i:+0b10000000000000000000000000000000:1:8:16: ++%*8i:+0b10000000000000000000000000000000:0:8: ++%8i:+2147487889:1:8:2147487: ++%*8i:+2147487889:0:8: ++%8i:+0X80001091:1:8:524289: ++%*8i:+0X80001091:0:8: ++%8i:+0x80001091:1:8:524289: ++%*8i:+0x80001091:0:8: ++%8i:+020000010221:1:8:65536: ++%*8i:+020000010221:0:8: ++%8i:+0B10000000000000000001000010010001:1:8:16: ++%*8i:+0B10000000000000000001000010010001:0:8: ++%8i:+0b10000000000000000001000010010001:1:8:16: ++%*8i:+0b10000000000000000001000010010001:0:8: ++%15i::0:-1: ++%*15i::0:-1: ++%15i:-2147484882:1:11:2147482414: ++%*15i:-2147484882:0:11: ++%15i:-0X800004d2:1:11:2147482414: ++%*15i:-0X800004d2:0:11: ++%15i:-0x800004D2:1:11:2147482414: ++%*15i:-0x800004D2:0:11: ++%15i:-020000002322:1:13:2147482414: ++%*15i:-020000002322:0:13: ++%15i:-0B10000000000000000000010011010010:1:15:-2048: ++%*15i:-0B10000000000000000000010011010010:0:15: ++%15i:-0b10000000000000000000010011010010:1:15:-2048: ++%*15i:-0b10000000000000000000010011010010:0:15: ++%15i:-2147483649:1:11:2147483647: ++%*15i:-2147483649:0:11: ++%15i:-0X80000001:1:11:2147483647: ++%*15i:-0X80000001:0:11: ++%15i:-0x80000001:1:11:2147483647: ++%*15i:-0x80000001:0:11: ++%15i:-020000000001:1:13:2147483647: ++%*15i:-020000000001:0:13: ++%15i:-0B10000000000000000000000000000001:1:15:-2048: ++%*15i:-0B10000000000000000000000000000001:0:15: ++%15i:-0b10000000000000000000000000000001:1:15:-2048: ++%*15i:-0b10000000000000000000000000000001:0:15: ++%15i:-2147483648:1:11:-2147483648: ++%*15i:-2147483648:0:11: ++%15i:-0X80000000:1:11:-2147483648: ++%*15i:-0X80000000:0:11: ++%15i:-0x80000000:1:11:-2147483648: ++%*15i:-0x80000000:0:11: ++%15i:-020000000000:1:13:-2147483648: ++%*15i:-020000000000:0:13: ++%15i:-0B10000000000000000000000000000000:1:15:-2048: ++%*15i:-0B10000000000000000000000000000000:0:15: ++%15i:-0b10000000000000000000000000000000:1:15:-2048: ++%*15i:-0b10000000000000000000000000000000:0:15: ++%15i:-123:1:4:-123: ++%*15i:-123:0:4: ++%15i:-0X7b:1:5:-123: ++%*15i:-0X7b:0:5: ++%15i:-0x7B:1:5:-123: ++%*15i:-0x7B:0:5: ++%15i:-0173:1:5:-123: ++%*15i:-0173:0:5: ++%15i:-0B1111011:1:10:-123: ++%*15i:-0B1111011:0:10: ++%15i:-0b1111011:1:10:-123: ++%*15i:-0b1111011:0:10: ++%15i:-1:1:2:-1: ++%*15i:-1:0:2: ++%15i:-0X1:1:4:-1: ++%*15i:-0X1:0:4: ++%15i:-0x1:1:4:-1: ++%*15i:-0x1:0:4: ++%15i:-01:1:3:-1: ++%*15i:-01:0:3: ++%15i:-0B1:1:4:-1: ++%*15i:-0B1:0:4: ++%15i:-0b1:1:4:-1: ++%*15i:-0b1:0:4: ++%15i:-0:1:2:0: ++%*15i:-0:0:2: ++%15i:-0X0:1:4:0: ++%*15i:-0X0:0:4: ++%15i:-0x0:1:4:0: ++%*15i:-0x0:0:4: ++%15i:-00:1:3:0: ++%*15i:-00:0:3: ++%15i:-0B0:1:4:0: ++%*15i:-0B0:0:4: ++%15i:-0b0:1:4:0: ++%*15i:-0b0:0:4: ++%15i:0:1:1:0: ++%*15i:0:0:1: ++%15i:0X0:1:3:0: ++%*15i:0X0:0:3: ++%15i:0x0:1:3:0: ++%*15i:0x0:0:3: ++%15i:00:1:2:0: ++%*15i:00:0:2: ++%15i:0B0:1:3:0: ++%*15i:0B0:0:3: ++%15i:0b0:1:3:0: ++%*15i:0b0:0:3: ++%15i:1:1:1:1: ++%*15i:1:0:1: ++%15i:0X1:1:3:1: ++%*15i:0X1:0:3: ++%15i:0x1:1:3:1: ++%*15i:0x1:0:3: ++%15i:01:1:2:1: ++%*15i:01:0:2: ++%15i:0B1:1:3:1: ++%*15i:0B1:0:3: ++%15i:0b1:1:3:1: ++%*15i:0b1:0:3: ++%15i:42:1:2:42: ++%*15i:42:0:2: ++%15i:0X2a:1:4:42: ++%*15i:0X2a:0:4: ++%15i:0x2A:1:4:42: ++%*15i:0x2A:0:4: ++%15i:052:1:3:42: ++%*15i:052:0:3: ++%15i:0B101010:1:8:42: ++%*15i:0B101010:0:8: ++%15i:0b101010:1:8:42: ++%*15i:0b101010:0:8: ++%15i:2147483647:1:10:2147483647: ++%*15i:2147483647:0:10: ++%15i:0X7fffffff:1:10:2147483647: ++%*15i:0X7fffffff:0:10: ++%15i:0x7FFFFFFF:1:10:2147483647: ++%*15i:0x7FFFFFFF:0:10: ++%15i:017777777777:1:12:2147483647: ++%*15i:017777777777:0:12: ++%15i:0B1111111111111111111111111111111:1:15:8191: ++%*15i:0B1111111111111111111111111111111:0:15: ++%15i:0b1111111111111111111111111111111:1:15:8191: ++%*15i:0b1111111111111111111111111111111:0:15: ++%15i:2147483648:1:10:-2147483648: ++%*15i:2147483648:0:10: ++%15i:0X80000000:1:10:-2147483648: ++%*15i:0X80000000:0:10: ++%15i:0x80000000:1:10:-2147483648: ++%*15i:0x80000000:0:10: ++%15i:020000000000:1:12:-2147483648: ++%*15i:020000000000:0:12: ++%15i:0B10000000000000000000000000000000:1:15:4096: ++%*15i:0B10000000000000000000000000000000:0:15: ++%15i:0b10000000000000000000000000000000:1:15:4096: ++%*15i:0b10000000000000000000000000000000:0:15: ++%15i:2147487889:1:10:-2147479407: ++%*15i:2147487889:0:10: ++%15i:0X80001091:1:10:-2147479407: ++%*15i:0X80001091:0:10: ++%15i:0x80001091:1:10:-2147479407: ++%*15i:0x80001091:0:10: ++%15i:020000010221:1:12:-2147479407: ++%*15i:020000010221:0:12: ++%15i:0B10000000000000000001000010010001:1:15:4096: ++%*15i:0B10000000000000000001000010010001:0:15: ++%15i:0b10000000000000000001000010010001:1:15:4096: ++%*15i:0b10000000000000000001000010010001:0:15: ++%15i:+0:1:2:0: ++%*15i:+0:0:2: ++%15i:+0X0:1:4:0: ++%*15i:+0X0:0:4: ++%15i:+0x0:1:4:0: ++%*15i:+0x0:0:4: ++%15i:+00:1:3:0: ++%*15i:+00:0:3: ++%15i:+0B0:1:4:0: ++%*15i:+0B0:0:4: ++%15i:+0b0:1:4:0: ++%*15i:+0b0:0:4: ++%15i:+1:1:2:1: ++%*15i:+1:0:2: ++%15i:+0X1:1:4:1: ++%*15i:+0X1:0:4: ++%15i:+0x1:1:4:1: ++%*15i:+0x1:0:4: ++%15i:+01:1:3:1: ++%*15i:+01:0:3: ++%15i:+0B1:1:4:1: ++%*15i:+0B1:0:4: ++%15i:+0b1:1:4:1: ++%*15i:+0b1:0:4: ++%15i:+42:1:3:42: ++%*15i:+42:0:3: ++%15i:+0X2a:1:5:42: ++%*15i:+0X2a:0:5: ++%15i:+0x2A:1:5:42: ++%*15i:+0x2A:0:5: ++%15i:+052:1:4:42: ++%*15i:+052:0:4: ++%15i:+0B101010:1:9:42: ++%*15i:+0B101010:0:9: ++%15i:+0b101010:1:9:42: ++%*15i:+0b101010:0:9: ++%15i:+2147483647:1:11:2147483647: ++%*15i:+2147483647:0:11: ++%15i:+0X7fffffff:1:11:2147483647: ++%*15i:+0X7fffffff:0:11: ++%15i:+0x7FFFFFFF:1:11:2147483647: ++%*15i:+0x7FFFFFFF:0:11: ++%15i:+017777777777:1:13:2147483647: ++%*15i:+017777777777:0:13: ++%15i:+0B1111111111111111111111111111111:1:15:4095: ++%*15i:+0B1111111111111111111111111111111:0:15: ++%15i:+0b1111111111111111111111111111111:1:15:4095: ++%*15i:+0b1111111111111111111111111111111:0:15: ++%15i:+2147483648:1:11:-2147483648: ++%*15i:+2147483648:0:11: ++%15i:+0X80000000:1:11:-2147483648: ++%*15i:+0X80000000:0:11: ++%15i:+0x80000000:1:11:-2147483648: ++%*15i:+0x80000000:0:11: ++%15i:+020000000000:1:13:-2147483648: ++%*15i:+020000000000:0:13: ++%15i:+0B10000000000000000000000000000000:1:15:2048: ++%*15i:+0B10000000000000000000000000000000:0:15: ++%15i:+0b10000000000000000000000000000000:1:15:2048: ++%*15i:+0b10000000000000000000000000000000:0:15: ++%15i:+2147487889:1:11:-2147479407: ++%*15i:+2147487889:0:11: ++%15i:+0X80001091:1:11:-2147479407: ++%*15i:+0X80001091:0:11: ++%15i:+0x80001091:1:11:-2147479407: ++%*15i:+0x80001091:0:11: ++%15i:+020000010221:1:13:-2147479407: ++%*15i:+020000010221:0:13: ++%15i:+0B10000000000000000001000010010001:1:15:2048: ++%*15i:+0B10000000000000000001000010010001:0:15: ++%15i:+0b10000000000000000001000010010001:1:15:2048: ++%*15i:+0b10000000000000000001000010010001:0:15: ++%2i: :0:-1: ++%*2i: :0:-1: ++%2i: -2147484882:1:3:-2: ++%*2i: -2147484882:0:3: ++%2i: -0X800004d2:1:3:0: ++%*2i: -0X800004d2:0:3: ++%2i: -0x800004D2:1:3:0: ++%*2i: -0x800004D2:0:3: ++%2i: -020000002322:1:3:0: ++%*2i: -020000002322:0:3: ++%2i: -0B10000000000000000000010011010010:1:3:0: ++%*2i: -0B10000000000000000000010011010010:0:3: ++%2i: -0b10000000000000000000010011010010:1:3:0: ++%*2i: -0b10000000000000000000010011010010:0:3: ++%2i: -2147483649:1:3:-2: ++%*2i: -2147483649:0:3: ++%2i: -0X80000001:1:3:0: ++%*2i: -0X80000001:0:3: ++%2i: -0x80000001:1:3:0: ++%*2i: -0x80000001:0:3: ++%2i: -020000000001:1:3:0: ++%*2i: -020000000001:0:3: ++%2i: -0B10000000000000000000000000000001:1:3:0: ++%*2i: -0B10000000000000000000000000000001:0:3: ++%2i: -0b10000000000000000000000000000001:1:3:0: ++%*2i: -0b10000000000000000000000000000001:0:3: ++%2i: -2147483648:1:3:-2: ++%*2i: -2147483648:0:3: ++%2i: -0X80000000:1:3:0: ++%*2i: -0X80000000:0:3: ++%2i: -0x80000000:1:3:0: ++%*2i: -0x80000000:0:3: ++%2i: -020000000000:1:3:0: ++%*2i: -020000000000:0:3: ++%2i: -0B10000000000000000000000000000000:1:3:0: ++%*2i: -0B10000000000000000000000000000000:0:3: ++%2i: -0b10000000000000000000000000000000:1:3:0: ++%*2i: -0b10000000000000000000000000000000:0:3: ++%2i: -123:1:3:-1: ++%*2i: -123:0:3: ++%2i: -0X7b:1:3:0: ++%*2i: -0X7b:0:3: ++%2i: -0x7B:1:3:0: ++%*2i: -0x7B:0:3: ++%2i: -0173:1:3:0: ++%*2i: -0173:0:3: ++%2i: -0B1111011:1:3:0: ++%*2i: -0B1111011:0:3: ++%2i: -0b1111011:1:3:0: ++%*2i: -0b1111011:0:3: ++%2i: -1:1:3:-1: ++%*2i: -1:0:3: ++%2i: -0X1:1:3:0: ++%*2i: -0X1:0:3: ++%2i: -0x1:1:3:0: ++%*2i: -0x1:0:3: ++%2i: -01:1:3:0: ++%*2i: -01:0:3: ++%2i: -0B1:1:3:0: ++%*2i: -0B1:0:3: ++%2i: -0b1:1:3:0: ++%*2i: -0b1:0:3: ++%2i: -0:1:3:0: ++%*2i: -0:0:3: ++%2i: -0X0:1:3:0: ++%*2i: -0X0:0:3: ++%2i: -0x0:1:3:0: ++%*2i: -0x0:0:3: ++%2i: -00:1:3:0: ++%*2i: -00:0:3: ++%2i: -0B0:1:3:0: ++%*2i: -0B0:0:3: ++%2i: -0b0:1:3:0: ++%*2i: -0b0:0:3: ++%2i: 0:1:2:0: ++%*2i: 0:0:2: ++# BZ12701 %2i: 0X0:0:-1: ++# BZ12701 %*2i: 0X0:0:-1: ++# BZ12701 %2i: 0x0:0:-1: ++# BZ12701 %*2i: 0x0:0:-1: ++%2i: 00:1:3:0: ++%*2i: 00:0:3: ++# BZ12701 %2i: 0B0:0:-1: ++# BZ12701 %*2i: 0B0:0:-1: ++# BZ12701 %2i: 0b0:0:-1: ++# BZ12701 %*2i: 0b0:0:-1: ++%2i: 1:1:2:1: ++%*2i: 1:0:2: ++# BZ12701 %2i: 0X1:0:-1: ++# BZ12701 %*2i: 0X1:0:-1: ++# BZ12701 %2i: 0x1:0:-1: ++# BZ12701 %*2i: 0x1:0:-1: ++%2i: 01:1:3:1: ++%*2i: 01:0:3: ++# BZ12701 %2i: 0B1:0:-1: ++# BZ12701 %*2i: 0B1:0:-1: ++# BZ12701 %2i: 0b1:0:-1: ++# BZ12701 %*2i: 0b1:0:-1: ++%2i: 42:1:3:42: ++%*2i: 42:0:3: ++# BZ12701 %2i: 0X2a:0:-1: ++# BZ12701 %*2i: 0X2a:0:-1: ++# BZ12701 %2i: 0x2A:0:-1: ++# BZ12701 %*2i: 0x2A:0:-1: ++%2i: 052:1:3:5: ++%*2i: 052:0:3: ++# BZ12701 %2i: 0B101010:0:-1: ++# BZ12701 %*2i: 0B101010:0:-1: ++# BZ12701 %2i: 0b101010:0:-1: ++# BZ12701 %*2i: 0b101010:0:-1: ++%2i: 2147483647:1:3:21: ++%*2i: 2147483647:0:3: ++# BZ12701 %2i: 0X7fffffff:0:-1: ++# BZ12701 %*2i: 0X7fffffff:0:-1: ++# BZ12701 %2i: 0x7FFFFFFF:0:-1: ++# BZ12701 %*2i: 0x7FFFFFFF:0:-1: ++%2i: 017777777777:1:3:1: ++%*2i: 017777777777:0:3: ++# BZ12701 %2i: 0B1111111111111111111111111111111:0:-1: ++# BZ12701 %*2i: 0B1111111111111111111111111111111:0:-1: ++# BZ12701 %2i: 0b1111111111111111111111111111111:0:-1: ++# BZ12701 %*2i: 0b1111111111111111111111111111111:0:-1: ++%2i: 2147483648:1:3:21: ++%*2i: 2147483648:0:3: ++# BZ12701 %2i: 0X80000000:0:-1: ++# BZ12701 %*2i: 0X80000000:0:-1: ++# BZ12701 %2i: 0x80000000:0:-1: ++# BZ12701 %*2i: 0x80000000:0:-1: ++%2i: 020000000000:1:3:2: ++%*2i: 020000000000:0:3: ++# BZ12701 %2i: 0B10000000000000000000000000000000:0:-1: ++# BZ12701 %*2i: 0B10000000000000000000000000000000:0:-1: ++# BZ12701 %2i: 0b10000000000000000000000000000000:0:-1: ++# BZ12701 %*2i: 0b10000000000000000000000000000000:0:-1: ++%2i: 2147487889:1:3:21: ++%*2i: 2147487889:0:3: ++# BZ12701 %2i: 0X80001091:0:-1: ++# BZ12701 %*2i: 0X80001091:0:-1: ++# BZ12701 %2i: 0x80001091:0:-1: ++# BZ12701 %*2i: 0x80001091:0:-1: ++%2i: 020000010221:1:3:2: ++%*2i: 020000010221:0:3: ++# BZ12701 %2i: 0B10000000000000000001000010010001:0:-1: ++# BZ12701 %*2i: 0B10000000000000000001000010010001:0:-1: ++# BZ12701 %2i: 0b10000000000000000001000010010001:0:-1: ++# BZ12701 %*2i: 0b10000000000000000001000010010001:0:-1: ++%2i: +0:1:3:0: ++%*2i: +0:0:3: ++%2i: +0X0:1:3:0: ++%*2i: +0X0:0:3: ++%2i: +0x0:1:3:0: ++%*2i: +0x0:0:3: ++%2i: +00:1:3:0: ++%*2i: +00:0:3: ++%2i: +0B0:1:3:0: ++%*2i: +0B0:0:3: ++%2i: +0b0:1:3:0: ++%*2i: +0b0:0:3: ++%2i: +1:1:3:1: ++%*2i: +1:0:3: ++%2i: +0X1:1:3:0: ++%*2i: +0X1:0:3: ++%2i: +0x1:1:3:0: ++%*2i: +0x1:0:3: ++%2i: +01:1:3:0: ++%*2i: +01:0:3: ++%2i: +0B1:1:3:0: ++%*2i: +0B1:0:3: ++%2i: +0b1:1:3:0: ++%*2i: +0b1:0:3: ++%2i: +42:1:3:4: ++%*2i: +42:0:3: ++%2i: +0X2a:1:3:0: ++%*2i: +0X2a:0:3: ++%2i: +0x2A:1:3:0: ++%*2i: +0x2A:0:3: ++%2i: +052:1:3:0: ++%*2i: +052:0:3: ++%2i: +0B101010:1:3:0: ++%*2i: +0B101010:0:3: ++%2i: +0b101010:1:3:0: ++%*2i: +0b101010:0:3: ++%2i: +2147483647:1:3:2: ++%*2i: +2147483647:0:3: ++%2i: +0X7fffffff:1:3:0: ++%*2i: +0X7fffffff:0:3: ++%2i: +0x7FFFFFFF:1:3:0: ++%*2i: +0x7FFFFFFF:0:3: ++%2i: +017777777777:1:3:0: ++%*2i: +017777777777:0:3: ++%2i: +0B1111111111111111111111111111111:1:3:0: ++%*2i: +0B1111111111111111111111111111111:0:3: ++%2i: +0b1111111111111111111111111111111:1:3:0: ++%*2i: +0b1111111111111111111111111111111:0:3: ++%2i: +2147483648:1:3:2: ++%*2i: +2147483648:0:3: ++%2i: +0X80000000:1:3:0: ++%*2i: +0X80000000:0:3: ++%2i: +0x80000000:1:3:0: ++%*2i: +0x80000000:0:3: ++%2i: +020000000000:1:3:0: ++%*2i: +020000000000:0:3: ++%2i: +0B10000000000000000000000000000000:1:3:0: ++%*2i: +0B10000000000000000000000000000000:0:3: ++%2i: +0b10000000000000000000000000000000:1:3:0: ++%*2i: +0b10000000000000000000000000000000:0:3: ++%2i: +2147487889:1:3:2: ++%*2i: +2147487889:0:3: ++%2i: +0X80001091:1:3:0: ++%*2i: +0X80001091:0:3: ++%2i: +0x80001091:1:3:0: ++%*2i: +0x80001091:0:3: ++%2i: +020000010221:1:3:0: ++%*2i: +020000010221:0:3: ++%2i: +0B10000000000000000001000010010001:1:3:0: ++%*2i: +0B10000000000000000001000010010001:0:3: ++%2i: +0b10000000000000000001000010010001:1:3:0: ++%*2i: +0b10000000000000000001000010010001:0:3: ++%15i: :0:-1: ++%*15i: :0:-1: ++%15i: -2147484882:1:12:2147482414: ++%*15i: -2147484882:0:12: ++%15i: -0X800004d2:1:12:2147482414: ++%*15i: -0X800004d2:0:12: ++%15i: -0x800004D2:1:12:2147482414: ++%*15i: -0x800004D2:0:12: ++%15i: -020000002322:1:14:2147482414: ++%*15i: -020000002322:0:14: ++%15i: -0B10000000000000000000010011010010:1:16:-2048: ++%*15i: -0B10000000000000000000010011010010:0:16: ++%15i: -0b10000000000000000000010011010010:1:16:-2048: ++%*15i: -0b10000000000000000000010011010010:0:16: ++%15i: -2147483649:1:12:2147483647: ++%*15i: -2147483649:0:12: ++%15i: -0X80000001:1:12:2147483647: ++%*15i: -0X80000001:0:12: ++%15i: -0x80000001:1:12:2147483647: ++%*15i: -0x80000001:0:12: ++%15i: -020000000001:1:14:2147483647: ++%*15i: -020000000001:0:14: ++%15i: -0B10000000000000000000000000000001:1:16:-2048: ++%*15i: -0B10000000000000000000000000000001:0:16: ++%15i: -0b10000000000000000000000000000001:1:16:-2048: ++%*15i: -0b10000000000000000000000000000001:0:16: ++%15i: -2147483648:1:12:-2147483648: ++%*15i: -2147483648:0:12: ++%15i: -0X80000000:1:12:-2147483648: ++%*15i: -0X80000000:0:12: ++%15i: -0x80000000:1:12:-2147483648: ++%*15i: -0x80000000:0:12: ++%15i: -020000000000:1:14:-2147483648: ++%*15i: -020000000000:0:14: ++%15i: -0B10000000000000000000000000000000:1:16:-2048: ++%*15i: -0B10000000000000000000000000000000:0:16: ++%15i: -0b10000000000000000000000000000000:1:16:-2048: ++%*15i: -0b10000000000000000000000000000000:0:16: ++%15i: -123:1:5:-123: ++%*15i: -123:0:5: ++%15i: -0X7b:1:6:-123: ++%*15i: -0X7b:0:6: ++%15i: -0x7B:1:6:-123: ++%*15i: -0x7B:0:6: ++%15i: -0173:1:6:-123: ++%*15i: -0173:0:6: ++%15i: -0B1111011:1:11:-123: ++%*15i: -0B1111011:0:11: ++%15i: -0b1111011:1:11:-123: ++%*15i: -0b1111011:0:11: ++%15i: -1:1:3:-1: ++%*15i: -1:0:3: ++%15i: -0X1:1:5:-1: ++%*15i: -0X1:0:5: ++%15i: -0x1:1:5:-1: ++%*15i: -0x1:0:5: ++%15i: -01:1:4:-1: ++%*15i: -01:0:4: ++%15i: -0B1:1:5:-1: ++%*15i: -0B1:0:5: ++%15i: -0b1:1:5:-1: ++%*15i: -0b1:0:5: ++%15i: -0:1:3:0: ++%*15i: -0:0:3: ++%15i: -0X0:1:5:0: ++%*15i: -0X0:0:5: ++%15i: -0x0:1:5:0: ++%*15i: -0x0:0:5: ++%15i: -00:1:4:0: ++%*15i: -00:0:4: ++%15i: -0B0:1:5:0: ++%*15i: -0B0:0:5: ++%15i: -0b0:1:5:0: ++%*15i: -0b0:0:5: ++%15i: 0:1:2:0: ++%*15i: 0:0:2: ++%15i: 0X0:1:4:0: ++%*15i: 0X0:0:4: ++%15i: 0x0:1:4:0: ++%*15i: 0x0:0:4: ++%15i: 00:1:3:0: ++%*15i: 00:0:3: ++%15i: 0B0:1:4:0: ++%*15i: 0B0:0:4: ++%15i: 0b0:1:4:0: ++%*15i: 0b0:0:4: ++%15i: 1:1:2:1: ++%*15i: 1:0:2: ++%15i: 0X1:1:4:1: ++%*15i: 0X1:0:4: ++%15i: 0x1:1:4:1: ++%*15i: 0x1:0:4: ++%15i: 01:1:3:1: ++%*15i: 01:0:3: ++%15i: 0B1:1:4:1: ++%*15i: 0B1:0:4: ++%15i: 0b1:1:4:1: ++%*15i: 0b1:0:4: ++%15i: 42:1:3:42: ++%*15i: 42:0:3: ++%15i: 0X2a:1:5:42: ++%*15i: 0X2a:0:5: ++%15i: 0x2A:1:5:42: ++%*15i: 0x2A:0:5: ++%15i: 052:1:4:42: ++%*15i: 052:0:4: ++%15i: 0B101010:1:9:42: ++%*15i: 0B101010:0:9: ++%15i: 0b101010:1:9:42: ++%*15i: 0b101010:0:9: ++%15i: 2147483647:1:11:2147483647: ++%*15i: 2147483647:0:11: ++%15i: 0X7fffffff:1:11:2147483647: ++%*15i: 0X7fffffff:0:11: ++%15i: 0x7FFFFFFF:1:11:2147483647: ++%*15i: 0x7FFFFFFF:0:11: ++%15i: 017777777777:1:13:2147483647: ++%*15i: 017777777777:0:13: ++%15i: 0B1111111111111111111111111111111:1:16:8191: ++%*15i: 0B1111111111111111111111111111111:0:16: ++%15i: 0b1111111111111111111111111111111:1:16:8191: ++%*15i: 0b1111111111111111111111111111111:0:16: ++%15i: 2147483648:1:11:-2147483648: ++%*15i: 2147483648:0:11: ++%15i: 0X80000000:1:11:-2147483648: ++%*15i: 0X80000000:0:11: ++%15i: 0x80000000:1:11:-2147483648: ++%*15i: 0x80000000:0:11: ++%15i: 020000000000:1:13:-2147483648: ++%*15i: 020000000000:0:13: ++%15i: 0B10000000000000000000000000000000:1:16:4096: ++%*15i: 0B10000000000000000000000000000000:0:16: ++%15i: 0b10000000000000000000000000000000:1:16:4096: ++%*15i: 0b10000000000000000000000000000000:0:16: ++%15i: 2147487889:1:11:-2147479407: ++%*15i: 2147487889:0:11: ++%15i: 0X80001091:1:11:-2147479407: ++%*15i: 0X80001091:0:11: ++%15i: 0x80001091:1:11:-2147479407: ++%*15i: 0x80001091:0:11: ++%15i: 020000010221:1:13:-2147479407: ++%*15i: 020000010221:0:13: ++%15i: 0B10000000000000000001000010010001:1:16:4096: ++%*15i: 0B10000000000000000001000010010001:0:16: ++%15i: 0b10000000000000000001000010010001:1:16:4096: ++%*15i: 0b10000000000000000001000010010001:0:16: ++%15i: +0:1:3:0: ++%*15i: +0:0:3: ++%15i: +0X0:1:5:0: ++%*15i: +0X0:0:5: ++%15i: +0x0:1:5:0: ++%*15i: +0x0:0:5: ++%15i: +00:1:4:0: ++%*15i: +00:0:4: ++%15i: +0B0:1:5:0: ++%*15i: +0B0:0:5: ++%15i: +0b0:1:5:0: ++%*15i: +0b0:0:5: ++%15i: +1:1:3:1: ++%*15i: +1:0:3: ++%15i: +0X1:1:5:1: ++%*15i: +0X1:0:5: ++%15i: +0x1:1:5:1: ++%*15i: +0x1:0:5: ++%15i: +01:1:4:1: ++%*15i: +01:0:4: ++%15i: +0B1:1:5:1: ++%*15i: +0B1:0:5: ++%15i: +0b1:1:5:1: ++%*15i: +0b1:0:5: ++%15i: +42:1:4:42: ++%*15i: +42:0:4: ++%15i: +0X2a:1:6:42: ++%*15i: +0X2a:0:6: ++%15i: +0x2A:1:6:42: ++%*15i: +0x2A:0:6: ++%15i: +052:1:5:42: ++%*15i: +052:0:5: ++%15i: +0B101010:1:10:42: ++%*15i: +0B101010:0:10: ++%15i: +0b101010:1:10:42: ++%*15i: +0b101010:0:10: ++%15i: +2147483647:1:12:2147483647: ++%*15i: +2147483647:0:12: ++%15i: +0X7fffffff:1:12:2147483647: ++%*15i: +0X7fffffff:0:12: ++%15i: +0x7FFFFFFF:1:12:2147483647: ++%*15i: +0x7FFFFFFF:0:12: ++%15i: +017777777777:1:14:2147483647: ++%*15i: +017777777777:0:14: ++%15i: +0B1111111111111111111111111111111:1:16:4095: ++%*15i: +0B1111111111111111111111111111111:0:16: ++%15i: +0b1111111111111111111111111111111:1:16:4095: ++%*15i: +0b1111111111111111111111111111111:0:16: ++%15i: +2147483648:1:12:-2147483648: ++%*15i: +2147483648:0:12: ++%15i: +0X80000000:1:12:-2147483648: ++%*15i: +0X80000000:0:12: ++%15i: +0x80000000:1:12:-2147483648: ++%*15i: +0x80000000:0:12: ++%15i: +020000000000:1:14:-2147483648: ++%*15i: +020000000000:0:14: ++%15i: +0B10000000000000000000000000000000:1:16:2048: ++%*15i: +0B10000000000000000000000000000000:0:16: ++%15i: +0b10000000000000000000000000000000:1:16:2048: ++%*15i: +0b10000000000000000000000000000000:0:16: ++%15i: +2147487889:1:12:-2147479407: ++%*15i: +2147487889:0:12: ++%15i: +0X80001091:1:12:-2147479407: ++%*15i: +0X80001091:0:12: ++%15i: +0x80001091:1:12:-2147479407: ++%*15i: +0x80001091:0:12: ++%15i: +020000010221:1:14:-2147479407: ++%*15i: +020000010221:0:14: ++%15i: +0B10000000000000000001000010010001:1:16:2048: ++%*15i: +0B10000000000000000001000010010001:0:16: ++%15i: +0b10000000000000000001000010010001:1:16:2048: ++%*15i: +0b10000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-long-d.input b/sysdeps/wordsize-64/tst-scanf-format-long-d.input +new file mode 100644 +index 0000000000000000..8da1fb462eb778c5 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-long-d.input +@@ -0,0 +1,266 @@ ++%ld::0:-1: ++%*ld::0:-1: ++%ld:-9223372036867121486:1:20:-9223372036854775808: ++%*ld:-9223372036867121486:0:20: ++%ld:-9223372036854775809:1:20:-9223372036854775808: ++%*ld:-9223372036854775809:0:20: ++%ld:-9223372036854775808:1:20:-9223372036854775808: ++%*ld:-9223372036854775808:0:20: ++%ld:-123:1:4:-123: ++%*ld:-123:0:4: ++%ld:-1:1:2:-1: ++%*ld:-1:0:2: ++%ld:-0:1:2:0: ++%*ld:-0:0:2: ++%ld:0:1:1:0: ++%*ld:0:0:1: ++%ld:1:1:1:1: ++%*ld:1:0:1: ++%ld:42:1:2:42: ++%*ld:42:0:2: ++%ld:9223372036854775807:1:19:9223372036854775807: ++%*ld:9223372036854775807:0:19: ++%ld:9223372036854775808:1:19:9223372036854775807: ++%*ld:9223372036854775808:0:19: ++%ld:9223372036897200049:1:19:9223372036854775807: ++%*ld:9223372036897200049:0:19: ++%ld:+0:1:2:0: ++%*ld:+0:0:2: ++%ld:+1:1:2:1: ++%*ld:+1:0:2: ++%ld:+42:1:3:42: ++%*ld:+42:0:3: ++%ld:+9223372036854775807:1:20:9223372036854775807: ++%*ld:+9223372036854775807:0:20: ++%ld:+9223372036854775808:1:20:9223372036854775807: ++%*ld:+9223372036854775808:0:20: ++%ld:+9223372036897200049:1:20:9223372036854775807: ++%*ld:+9223372036897200049:0:20: ++%1ld::0:-1: ++%*1ld::0:-1: ++%1ld:-9223372036867121486:0:-1: ++%*1ld:-9223372036867121486:0:-1: ++%1ld:-9223372036854775809:0:-1: ++%*1ld:-9223372036854775809:0:-1: ++%1ld:-9223372036854775808:0:-1: ++%*1ld:-9223372036854775808:0:-1: ++%1ld:-123:0:-1: ++%*1ld:-123:0:-1: ++%1ld:-1:0:-1: ++%*1ld:-1:0:-1: ++%1ld:-0:0:-1: ++%*1ld:-0:0:-1: ++%1ld:0:1:1:0: ++%*1ld:0:0:1: ++%1ld:1:1:1:1: ++%*1ld:1:0:1: ++%1ld:42:1:1:4: ++%*1ld:42:0:1: ++%1ld:9223372036854775807:1:1:9: ++%*1ld:9223372036854775807:0:1: ++%1ld:9223372036854775808:1:1:9: ++%*1ld:9223372036854775808:0:1: ++%1ld:9223372036897200049:1:1:9: ++%*1ld:9223372036897200049:0:1: ++%1ld:+0:0:-1: ++%*1ld:+0:0:-1: ++%1ld:+1:0:-1: ++%*1ld:+1:0:-1: ++%1ld:+42:0:-1: ++%*1ld:+42:0:-1: ++%1ld:+9223372036854775807:0:-1: ++%*1ld:+9223372036854775807:0:-1: ++%1ld:+9223372036854775808:0:-1: ++%*1ld:+9223372036854775808:0:-1: ++%1ld:+9223372036897200049:0:-1: ++%*1ld:+9223372036897200049:0:-1: ++%2ld::0:-1: ++%*2ld::0:-1: ++%2ld:-9223372036867121486:1:2:-9: ++%*2ld:-9223372036867121486:0:2: ++%2ld:-9223372036854775809:1:2:-9: ++%*2ld:-9223372036854775809:0:2: ++%2ld:-9223372036854775808:1:2:-9: ++%*2ld:-9223372036854775808:0:2: ++%2ld:-123:1:2:-1: ++%*2ld:-123:0:2: ++%2ld:-1:1:2:-1: ++%*2ld:-1:0:2: ++%2ld:-0:1:2:0: ++%*2ld:-0:0:2: ++%2ld:0:1:1:0: ++%*2ld:0:0:1: ++%2ld:1:1:1:1: ++%*2ld:1:0:1: ++%2ld:42:1:2:42: ++%*2ld:42:0:2: ++%2ld:9223372036854775807:1:2:92: ++%*2ld:9223372036854775807:0:2: ++%2ld:9223372036854775808:1:2:92: ++%*2ld:9223372036854775808:0:2: ++%2ld:9223372036897200049:1:2:92: ++%*2ld:9223372036897200049:0:2: ++%2ld:+0:1:2:0: ++%*2ld:+0:0:2: ++%2ld:+1:1:2:1: ++%*2ld:+1:0:2: ++%2ld:+42:1:2:4: ++%*2ld:+42:0:2: ++%2ld:+9223372036854775807:1:2:9: ++%*2ld:+9223372036854775807:0:2: ++%2ld:+9223372036854775808:1:2:9: ++%*2ld:+9223372036854775808:0:2: ++%2ld:+9223372036897200049:1:2:9: ++%*2ld:+9223372036897200049:0:2: ++%15ld::0:-1: ++%*15ld::0:-1: ++%15ld:-9223372036867121486:1:15:-92233720368671: ++%*15ld:-9223372036867121486:0:15: ++%15ld:-9223372036854775809:1:15:-92233720368547: ++%*15ld:-9223372036854775809:0:15: ++%15ld:-9223372036854775808:1:15:-92233720368547: ++%*15ld:-9223372036854775808:0:15: ++%15ld:-123:1:4:-123: ++%*15ld:-123:0:4: ++%15ld:-1:1:2:-1: ++%*15ld:-1:0:2: ++%15ld:-0:1:2:0: ++%*15ld:-0:0:2: ++%15ld:0:1:1:0: ++%*15ld:0:0:1: ++%15ld:1:1:1:1: ++%*15ld:1:0:1: ++%15ld:42:1:2:42: ++%*15ld:42:0:2: ++%15ld:9223372036854775807:1:15:922337203685477: ++%*15ld:9223372036854775807:0:15: ++%15ld:9223372036854775808:1:15:922337203685477: ++%*15ld:9223372036854775808:0:15: ++%15ld:9223372036897200049:1:15:922337203689720: ++%*15ld:9223372036897200049:0:15: ++%15ld:+0:1:2:0: ++%*15ld:+0:0:2: ++%15ld:+1:1:2:1: ++%*15ld:+1:0:2: ++%15ld:+42:1:3:42: ++%*15ld:+42:0:3: ++%15ld:+9223372036854775807:1:15:92233720368547: ++%*15ld:+9223372036854775807:0:15: ++%15ld:+9223372036854775808:1:15:92233720368547: ++%*15ld:+9223372036854775808:0:15: ++%15ld:+9223372036897200049:1:15:92233720368972: ++%*15ld:+9223372036897200049:0:15: ++%25ld::0:-1: ++%*25ld::0:-1: ++%25ld:-9223372036867121486:1:20:-9223372036854775808: ++%*25ld:-9223372036867121486:0:20: ++%25ld:-9223372036854775809:1:20:-9223372036854775808: ++%*25ld:-9223372036854775809:0:20: ++%25ld:-9223372036854775808:1:20:-9223372036854775808: ++%*25ld:-9223372036854775808:0:20: ++%25ld:-123:1:4:-123: ++%*25ld:-123:0:4: ++%25ld:-1:1:2:-1: ++%*25ld:-1:0:2: ++%25ld:-0:1:2:0: ++%*25ld:-0:0:2: ++%25ld:0:1:1:0: ++%*25ld:0:0:1: ++%25ld:1:1:1:1: ++%*25ld:1:0:1: ++%25ld:42:1:2:42: ++%*25ld:42:0:2: ++%25ld:9223372036854775807:1:19:9223372036854775807: ++%*25ld:9223372036854775807:0:19: ++%25ld:9223372036854775808:1:19:9223372036854775807: ++%*25ld:9223372036854775808:0:19: ++%25ld:9223372036897200049:1:19:9223372036854775807: ++%*25ld:9223372036897200049:0:19: ++%25ld:+0:1:2:0: ++%*25ld:+0:0:2: ++%25ld:+1:1:2:1: ++%*25ld:+1:0:2: ++%25ld:+42:1:3:42: ++%*25ld:+42:0:3: ++%25ld:+9223372036854775807:1:20:9223372036854775807: ++%*25ld:+9223372036854775807:0:20: ++%25ld:+9223372036854775808:1:20:9223372036854775807: ++%*25ld:+9223372036854775808:0:20: ++%25ld:+9223372036897200049:1:20:9223372036854775807: ++%*25ld:+9223372036897200049:0:20: ++%2ld: :0:-1: ++%*2ld: :0:-1: ++%2ld: -9223372036867121486:1:3:-9: ++%*2ld: -9223372036867121486:0:3: ++%2ld: -9223372036854775809:1:3:-9: ++%*2ld: -9223372036854775809:0:3: ++%2ld: -9223372036854775808:1:3:-9: ++%*2ld: -9223372036854775808:0:3: ++%2ld: -123:1:3:-1: ++%*2ld: -123:0:3: ++%2ld: -1:1:3:-1: ++%*2ld: -1:0:3: ++%2ld: -0:1:3:0: ++%*2ld: -0:0:3: ++%2ld: 0:1:2:0: ++%*2ld: 0:0:2: ++%2ld: 1:1:2:1: ++%*2ld: 1:0:2: ++%2ld: 42:1:3:42: ++%*2ld: 42:0:3: ++%2ld: 9223372036854775807:1:3:92: ++%*2ld: 9223372036854775807:0:3: ++%2ld: 9223372036854775808:1:3:92: ++%*2ld: 9223372036854775808:0:3: ++%2ld: 9223372036897200049:1:3:92: ++%*2ld: 9223372036897200049:0:3: ++%2ld: +0:1:3:0: ++%*2ld: +0:0:3: ++%2ld: +1:1:3:1: ++%*2ld: +1:0:3: ++%2ld: +42:1:3:4: ++%*2ld: +42:0:3: ++%2ld: +9223372036854775807:1:3:9: ++%*2ld: +9223372036854775807:0:3: ++%2ld: +9223372036854775808:1:3:9: ++%*2ld: +9223372036854775808:0:3: ++%2ld: +9223372036897200049:1:3:9: ++%*2ld: +9223372036897200049:0:3: ++%25ld: :0:-1: ++%*25ld: :0:-1: ++%25ld: -9223372036867121486:1:21:-9223372036854775808: ++%*25ld: -9223372036867121486:0:21: ++%25ld: -9223372036854775809:1:21:-9223372036854775808: ++%*25ld: -9223372036854775809:0:21: ++%25ld: -9223372036854775808:1:21:-9223372036854775808: ++%*25ld: -9223372036854775808:0:21: ++%25ld: -123:1:5:-123: ++%*25ld: -123:0:5: ++%25ld: -1:1:3:-1: ++%*25ld: -1:0:3: ++%25ld: -0:1:3:0: ++%*25ld: -0:0:3: ++%25ld: 0:1:2:0: ++%*25ld: 0:0:2: ++%25ld: 1:1:2:1: ++%*25ld: 1:0:2: ++%25ld: 42:1:3:42: ++%*25ld: 42:0:3: ++%25ld: 9223372036854775807:1:20:9223372036854775807: ++%*25ld: 9223372036854775807:0:20: ++%25ld: 9223372036854775808:1:20:9223372036854775807: ++%*25ld: 9223372036854775808:0:20: ++%25ld: 9223372036897200049:1:20:9223372036854775807: ++%*25ld: 9223372036897200049:0:20: ++%25ld: +0:1:3:0: ++%*25ld: +0:0:3: ++%25ld: +1:1:3:1: ++%*25ld: +1:0:3: ++%25ld: +42:1:4:42: ++%*25ld: +42:0:4: ++%25ld: +9223372036854775807:1:21:9223372036854775807: ++%*25ld: +9223372036854775807:0:21: ++%25ld: +9223372036854775808:1:21:9223372036854775807: ++%*25ld: +9223372036854775808:0:21: ++%25ld: +9223372036897200049:1:21:9223372036854775807: ++%*25ld: +9223372036897200049:0:21: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-long-i.input b/sysdeps/wordsize-64/tst-scanf-format-long-i.input +new file mode 100644 +index 0000000000000000..3066dab6bf1530f8 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-long-i.input +@@ -0,0 +1,1526 @@ ++%li::0:-1: ++%*li::0:-1: ++%li:-9223372036867121486:1:20:-9223372036854775808: ++%*li:-9223372036867121486:0:20: ++%li:-0X8000000000bc614e:1:19:-9223372036854775808: ++%*li:-0X8000000000bc614e:0:19: ++%li:-0x8000000000BC614E:1:19:-9223372036854775808: ++%*li:-0x8000000000BC614E:0:19: ++%li:-01000000000000057060516:1:24:-9223372036854775808: ++%*li:-01000000000000057060516:0:24: ++%li:-0B1000000000000000000000000000000000000000101111000110000101001110:1:67:-9223372036854775808: ++%*li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:67: ++%li:-0b1000000000000000000000000000000000000000101111000110000101001110:1:67:-9223372036854775808: ++%*li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:67: ++%li:-9223372036854775809:1:20:-9223372036854775808: ++%*li:-9223372036854775809:0:20: ++%li:-0X8000000000000001:1:19:-9223372036854775808: ++%*li:-0X8000000000000001:0:19: ++%li:-0x8000000000000001:1:19:-9223372036854775808: ++%*li:-0x8000000000000001:0:19: ++%li:-01000000000000000000001:1:24:-9223372036854775808: ++%*li:-01000000000000000000001:0:24: ++%li:-0B1000000000000000000000000000000000000000000000000000000000000001:1:67:-9223372036854775808: ++%*li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:67: ++%li:-0b1000000000000000000000000000000000000000000000000000000000000001:1:67:-9223372036854775808: ++%*li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:67: ++%li:-9223372036854775808:1:20:-9223372036854775808: ++%*li:-9223372036854775808:0:20: ++%li:-0X8000000000000000:1:19:-9223372036854775808: ++%*li:-0X8000000000000000:0:19: ++%li:-0x8000000000000000:1:19:-9223372036854775808: ++%*li:-0x8000000000000000:0:19: ++%li:-01000000000000000000000:1:24:-9223372036854775808: ++%*li:-01000000000000000000000:0:24: ++%li:-0B1000000000000000000000000000000000000000000000000000000000000000:1:67:-9223372036854775808: ++%*li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:67: ++%li:-0b1000000000000000000000000000000000000000000000000000000000000000:1:67:-9223372036854775808: ++%*li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:67: ++%li:-123:1:4:-123: ++%*li:-123:0:4: ++%li:-0X7b:1:5:-123: ++%*li:-0X7b:0:5: ++%li:-0x7B:1:5:-123: ++%*li:-0x7B:0:5: ++%li:-0173:1:5:-123: ++%*li:-0173:0:5: ++%li:-0B1111011:1:10:-123: ++%*li:-0B1111011:0:10: ++%li:-0b1111011:1:10:-123: ++%*li:-0b1111011:0:10: ++%li:-1:1:2:-1: ++%*li:-1:0:2: ++%li:-0X1:1:4:-1: ++%*li:-0X1:0:4: ++%li:-0x1:1:4:-1: ++%*li:-0x1:0:4: ++%li:-01:1:3:-1: ++%*li:-01:0:3: ++%li:-0B1:1:4:-1: ++%*li:-0B1:0:4: ++%li:-0b1:1:4:-1: ++%*li:-0b1:0:4: ++%li:-0:1:2:0: ++%*li:-0:0:2: ++%li:-0X0:1:4:0: ++%*li:-0X0:0:4: ++%li:-0x0:1:4:0: ++%*li:-0x0:0:4: ++%li:-00:1:3:0: ++%*li:-00:0:3: ++%li:-0B0:1:4:0: ++%*li:-0B0:0:4: ++%li:-0b0:1:4:0: ++%*li:-0b0:0:4: ++%li:0:1:1:0: ++%*li:0:0:1: ++%li:0X0:1:3:0: ++%*li:0X0:0:3: ++%li:0x0:1:3:0: ++%*li:0x0:0:3: ++%li:00:1:2:0: ++%*li:00:0:2: ++%li:0B0:1:3:0: ++%*li:0B0:0:3: ++%li:0b0:1:3:0: ++%*li:0b0:0:3: ++%li:1:1:1:1: ++%*li:1:0:1: ++%li:0X1:1:3:1: ++%*li:0X1:0:3: ++%li:0x1:1:3:1: ++%*li:0x1:0:3: ++%li:01:1:2:1: ++%*li:01:0:2: ++%li:0B1:1:3:1: ++%*li:0B1:0:3: ++%li:0b1:1:3:1: ++%*li:0b1:0:3: ++%li:42:1:2:42: ++%*li:42:0:2: ++%li:0X2a:1:4:42: ++%*li:0X2a:0:4: ++%li:0x2A:1:4:42: ++%*li:0x2A:0:4: ++%li:052:1:3:42: ++%*li:052:0:3: ++%li:0B101010:1:8:42: ++%*li:0B101010:0:8: ++%li:0b101010:1:8:42: ++%*li:0b101010:0:8: ++%li:9223372036854775807:1:19:9223372036854775807: ++%*li:9223372036854775807:0:19: ++%li:0X7fffffffffffffff:1:18:9223372036854775807: ++%*li:0X7fffffffffffffff:0:18: ++%li:0x7FFFFFFFFFFFFFFF:1:18:9223372036854775807: ++%*li:0x7FFFFFFFFFFFFFFF:0:18: ++%li:0777777777777777777777:1:22:9223372036854775807: ++%*li:0777777777777777777777:0:22: ++%li:0B111111111111111111111111111111111111111111111111111111111111111:1:65:9223372036854775807: ++%*li:0B111111111111111111111111111111111111111111111111111111111111111:0:65: ++%li:0b111111111111111111111111111111111111111111111111111111111111111:1:65:9223372036854775807: ++%*li:0b111111111111111111111111111111111111111111111111111111111111111:0:65: ++%li:9223372036854775808:1:19:9223372036854775807: ++%*li:9223372036854775808:0:19: ++%li:0X8000000000000000:1:18:9223372036854775807: ++%*li:0X8000000000000000:0:18: ++%li:0x8000000000000000:1:18:9223372036854775807: ++%*li:0x8000000000000000:0:18: ++%li:01000000000000000000000:1:23:9223372036854775807: ++%*li:01000000000000000000000:0:23: ++%li:0B1000000000000000000000000000000000000000000000000000000000000000:1:66:9223372036854775807: ++%*li:0B1000000000000000000000000000000000000000000000000000000000000000:0:66: ++%li:0b1000000000000000000000000000000000000000000000000000000000000000:1:66:9223372036854775807: ++%*li:0b1000000000000000000000000000000000000000000000000000000000000000:0:66: ++%li:9223372036897200049:1:19:9223372036854775807: ++%*li:9223372036897200049:0:19: ++%li:0X80000000028757b1:1:18:9223372036854775807: ++%*li:0X80000000028757b1:0:18: ++%li:0x80000000028757B1:1:18:9223372036854775807: ++%*li:0x80000000028757B1:0:18: ++%li:01000000000000241653661:1:23:9223372036854775807: ++%*li:01000000000000241653661:0:23: ++%li:0B1000000000000000000000000000000000000010100001110101011110110001:1:66:9223372036854775807: ++%*li:0B1000000000000000000000000000000000000010100001110101011110110001:0:66: ++%li:0b1000000000000000000000000000000000000010100001110101011110110001:1:66:9223372036854775807: ++%*li:0b1000000000000000000000000000000000000010100001110101011110110001:0:66: ++%li:+0:1:2:0: ++%*li:+0:0:2: ++%li:+0X0:1:4:0: ++%*li:+0X0:0:4: ++%li:+0x0:1:4:0: ++%*li:+0x0:0:4: ++%li:+00:1:3:0: ++%*li:+00:0:3: ++%li:+0B0:1:4:0: ++%*li:+0B0:0:4: ++%li:+0b0:1:4:0: ++%*li:+0b0:0:4: ++%li:+1:1:2:1: ++%*li:+1:0:2: ++%li:+0X1:1:4:1: ++%*li:+0X1:0:4: ++%li:+0x1:1:4:1: ++%*li:+0x1:0:4: ++%li:+01:1:3:1: ++%*li:+01:0:3: ++%li:+0B1:1:4:1: ++%*li:+0B1:0:4: ++%li:+0b1:1:4:1: ++%*li:+0b1:0:4: ++%li:+42:1:3:42: ++%*li:+42:0:3: ++%li:+0X2a:1:5:42: ++%*li:+0X2a:0:5: ++%li:+0x2A:1:5:42: ++%*li:+0x2A:0:5: ++%li:+052:1:4:42: ++%*li:+052:0:4: ++%li:+0B101010:1:9:42: ++%*li:+0B101010:0:9: ++%li:+0b101010:1:9:42: ++%*li:+0b101010:0:9: ++%li:+9223372036854775807:1:20:9223372036854775807: ++%*li:+9223372036854775807:0:20: ++%li:+0X7fffffffffffffff:1:19:9223372036854775807: ++%*li:+0X7fffffffffffffff:0:19: ++%li:+0x7FFFFFFFFFFFFFFF:1:19:9223372036854775807: ++%*li:+0x7FFFFFFFFFFFFFFF:0:19: ++%li:+0777777777777777777777:1:23:9223372036854775807: ++%*li:+0777777777777777777777:0:23: ++%li:+0B111111111111111111111111111111111111111111111111111111111111111:1:66:9223372036854775807: ++%*li:+0B111111111111111111111111111111111111111111111111111111111111111:0:66: ++%li:+0b111111111111111111111111111111111111111111111111111111111111111:1:66:9223372036854775807: ++%*li:+0b111111111111111111111111111111111111111111111111111111111111111:0:66: ++%li:+9223372036854775808:1:20:9223372036854775807: ++%*li:+9223372036854775808:0:20: ++%li:+0X8000000000000000:1:19:9223372036854775807: ++%*li:+0X8000000000000000:0:19: ++%li:+0x8000000000000000:1:19:9223372036854775807: ++%*li:+0x8000000000000000:0:19: ++%li:+01000000000000000000000:1:24:9223372036854775807: ++%*li:+01000000000000000000000:0:24: ++%li:+0B1000000000000000000000000000000000000000000000000000000000000000:1:67:9223372036854775807: ++%*li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:67: ++%li:+0b1000000000000000000000000000000000000000000000000000000000000000:1:67:9223372036854775807: ++%*li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:67: ++%li:+9223372036897200049:1:20:9223372036854775807: ++%*li:+9223372036897200049:0:20: ++%li:+0X80000000028757b1:1:19:9223372036854775807: ++%*li:+0X80000000028757b1:0:19: ++%li:+0x80000000028757B1:1:19:9223372036854775807: ++%*li:+0x80000000028757B1:0:19: ++%li:+01000000000000241653661:1:24:9223372036854775807: ++%*li:+01000000000000241653661:0:24: ++%li:+0B1000000000000000000000000000000000000010100001110101011110110001:1:67:9223372036854775807: ++%*li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:67: ++%li:+0b1000000000000000000000000000000000000010100001110101011110110001:1:67:9223372036854775807: ++%*li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:67: ++%1li::0:-1: ++%*1li::0:-1: ++%1li:-9223372036867121486:0:-1: ++%*1li:-9223372036867121486:0:-1: ++%1li:-0X8000000000bc614e:0:-1: ++%*1li:-0X8000000000bc614e:0:-1: ++%1li:-0x8000000000BC614E:0:-1: ++%*1li:-0x8000000000BC614E:0:-1: ++%1li:-01000000000000057060516:0:-1: ++%*1li:-01000000000000057060516:0:-1: ++%1li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:-1: ++%*1li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:-1: ++%1li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:-1: ++%*1li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:-1: ++%1li:-9223372036854775809:0:-1: ++%*1li:-9223372036854775809:0:-1: ++%1li:-0X8000000000000001:0:-1: ++%*1li:-0X8000000000000001:0:-1: ++%1li:-0x8000000000000001:0:-1: ++%*1li:-0x8000000000000001:0:-1: ++%1li:-01000000000000000000001:0:-1: ++%*1li:-01000000000000000000001:0:-1: ++%1li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:-1: ++%*1li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:-1: ++%1li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:-1: ++%*1li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:-1: ++%1li:-9223372036854775808:0:-1: ++%*1li:-9223372036854775808:0:-1: ++%1li:-0X8000000000000000:0:-1: ++%*1li:-0X8000000000000000:0:-1: ++%1li:-0x8000000000000000:0:-1: ++%*1li:-0x8000000000000000:0:-1: ++%1li:-01000000000000000000000:0:-1: ++%*1li:-01000000000000000000000:0:-1: ++%1li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1li:-123:0:-1: ++%*1li:-123:0:-1: ++%1li:-0X7b:0:-1: ++%*1li:-0X7b:0:-1: ++%1li:-0x7B:0:-1: ++%*1li:-0x7B:0:-1: ++%1li:-0173:0:-1: ++%*1li:-0173:0:-1: ++%1li:-0B1111011:0:-1: ++%*1li:-0B1111011:0:-1: ++%1li:-0b1111011:0:-1: ++%*1li:-0b1111011:0:-1: ++%1li:-1:0:-1: ++%*1li:-1:0:-1: ++%1li:-0X1:0:-1: ++%*1li:-0X1:0:-1: ++%1li:-0x1:0:-1: ++%*1li:-0x1:0:-1: ++%1li:-01:0:-1: ++%*1li:-01:0:-1: ++%1li:-0B1:0:-1: ++%*1li:-0B1:0:-1: ++%1li:-0b1:0:-1: ++%*1li:-0b1:0:-1: ++%1li:-0:0:-1: ++%*1li:-0:0:-1: ++%1li:-0X0:0:-1: ++%*1li:-0X0:0:-1: ++%1li:-0x0:0:-1: ++%*1li:-0x0:0:-1: ++%1li:-00:0:-1: ++%*1li:-00:0:-1: ++%1li:-0B0:0:-1: ++%*1li:-0B0:0:-1: ++%1li:-0b0:0:-1: ++%*1li:-0b0:0:-1: ++%1li:0:1:1:0: ++%*1li:0:0:1: ++%1li:0X0:1:1:0: ++%*1li:0X0:0:1: ++%1li:0x0:1:1:0: ++%*1li:0x0:0:1: ++%1li:00:1:1:0: ++%*1li:00:0:1: ++%1li:0B0:1:1:0: ++%*1li:0B0:0:1: ++%1li:0b0:1:1:0: ++%*1li:0b0:0:1: ++%1li:1:1:1:1: ++%*1li:1:0:1: ++%1li:0X1:1:1:0: ++%*1li:0X1:0:1: ++%1li:0x1:1:1:0: ++%*1li:0x1:0:1: ++%1li:01:1:1:0: ++%*1li:01:0:1: ++%1li:0B1:1:1:0: ++%*1li:0B1:0:1: ++%1li:0b1:1:1:0: ++%*1li:0b1:0:1: ++%1li:42:1:1:4: ++%*1li:42:0:1: ++%1li:0X2a:1:1:0: ++%*1li:0X2a:0:1: ++%1li:0x2A:1:1:0: ++%*1li:0x2A:0:1: ++%1li:052:1:1:0: ++%*1li:052:0:1: ++%1li:0B101010:1:1:0: ++%*1li:0B101010:0:1: ++%1li:0b101010:1:1:0: ++%*1li:0b101010:0:1: ++%1li:9223372036854775807:1:1:9: ++%*1li:9223372036854775807:0:1: ++%1li:0X7fffffffffffffff:1:1:0: ++%*1li:0X7fffffffffffffff:0:1: ++%1li:0x7FFFFFFFFFFFFFFF:1:1:0: ++%*1li:0x7FFFFFFFFFFFFFFF:0:1: ++%1li:0777777777777777777777:1:1:0: ++%*1li:0777777777777777777777:0:1: ++%1li:0B111111111111111111111111111111111111111111111111111111111111111:1:1:0: ++%*1li:0B111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1li:0b111111111111111111111111111111111111111111111111111111111111111:1:1:0: ++%*1li:0b111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1li:9223372036854775808:1:1:9: ++%*1li:9223372036854775808:0:1: ++%1li:0X8000000000000000:1:1:0: ++%*1li:0X8000000000000000:0:1: ++%1li:0x8000000000000000:1:1:0: ++%*1li:0x8000000000000000:0:1: ++%1li:01000000000000000000000:1:1:0: ++%*1li:01000000000000000000000:0:1: ++%1li:0B1000000000000000000000000000000000000000000000000000000000000000:1:1:0: ++%*1li:0B1000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1li:0b1000000000000000000000000000000000000000000000000000000000000000:1:1:0: ++%*1li:0b1000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1li:9223372036897200049:1:1:9: ++%*1li:9223372036897200049:0:1: ++%1li:0X80000000028757b1:1:1:0: ++%*1li:0X80000000028757b1:0:1: ++%1li:0x80000000028757B1:1:1:0: ++%*1li:0x80000000028757B1:0:1: ++%1li:01000000000000241653661:1:1:0: ++%*1li:01000000000000241653661:0:1: ++%1li:0B1000000000000000000000000000000000000010100001110101011110110001:1:1:0: ++%*1li:0B1000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1li:0b1000000000000000000000000000000000000010100001110101011110110001:1:1:0: ++%*1li:0b1000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1li:+0:0:-1: ++%*1li:+0:0:-1: ++%1li:+0X0:0:-1: ++%*1li:+0X0:0:-1: ++%1li:+0x0:0:-1: ++%*1li:+0x0:0:-1: ++%1li:+00:0:-1: ++%*1li:+00:0:-1: ++%1li:+0B0:0:-1: ++%*1li:+0B0:0:-1: ++%1li:+0b0:0:-1: ++%*1li:+0b0:0:-1: ++%1li:+1:0:-1: ++%*1li:+1:0:-1: ++%1li:+0X1:0:-1: ++%*1li:+0X1:0:-1: ++%1li:+0x1:0:-1: ++%*1li:+0x1:0:-1: ++%1li:+01:0:-1: ++%*1li:+01:0:-1: ++%1li:+0B1:0:-1: ++%*1li:+0B1:0:-1: ++%1li:+0b1:0:-1: ++%*1li:+0b1:0:-1: ++%1li:+42:0:-1: ++%*1li:+42:0:-1: ++%1li:+0X2a:0:-1: ++%*1li:+0X2a:0:-1: ++%1li:+0x2A:0:-1: ++%*1li:+0x2A:0:-1: ++%1li:+052:0:-1: ++%*1li:+052:0:-1: ++%1li:+0B101010:0:-1: ++%*1li:+0B101010:0:-1: ++%1li:+0b101010:0:-1: ++%*1li:+0b101010:0:-1: ++%1li:+9223372036854775807:0:-1: ++%*1li:+9223372036854775807:0:-1: ++%1li:+0X7fffffffffffffff:0:-1: ++%*1li:+0X7fffffffffffffff:0:-1: ++%1li:+0x7FFFFFFFFFFFFFFF:0:-1: ++%*1li:+0x7FFFFFFFFFFFFFFF:0:-1: ++%1li:+0777777777777777777777:0:-1: ++%*1li:+0777777777777777777777:0:-1: ++%1li:+0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1li:+0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1li:+0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1li:+0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1li:+9223372036854775808:0:-1: ++%*1li:+9223372036854775808:0:-1: ++%1li:+0X8000000000000000:0:-1: ++%*1li:+0X8000000000000000:0:-1: ++%1li:+0x8000000000000000:0:-1: ++%*1li:+0x8000000000000000:0:-1: ++%1li:+01000000000000000000000:0:-1: ++%*1li:+01000000000000000000000:0:-1: ++%1li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1li:+9223372036897200049:0:-1: ++%*1li:+9223372036897200049:0:-1: ++%1li:+0X80000000028757b1:0:-1: ++%*1li:+0X80000000028757b1:0:-1: ++%1li:+0x80000000028757B1:0:-1: ++%*1li:+0x80000000028757B1:0:-1: ++%1li:+01000000000000241653661:0:-1: ++%*1li:+01000000000000241653661:0:-1: ++%1li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%1li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2li::0:-1: ++%*2li::0:-1: ++%2li:-9223372036867121486:1:2:-9: ++%*2li:-9223372036867121486:0:2: ++%2li:-0X8000000000bc614e:1:2:0: ++%*2li:-0X8000000000bc614e:0:2: ++%2li:-0x8000000000BC614E:1:2:0: ++%*2li:-0x8000000000BC614E:0:2: ++%2li:-01000000000000057060516:1:2:0: ++%*2li:-01000000000000057060516:0:2: ++%2li:-0B1000000000000000000000000000000000000000101111000110000101001110:1:2:0: ++%*2li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:2: ++%2li:-0b1000000000000000000000000000000000000000101111000110000101001110:1:2:0: ++%*2li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:2: ++%2li:-9223372036854775809:1:2:-9: ++%*2li:-9223372036854775809:0:2: ++%2li:-0X8000000000000001:1:2:0: ++%*2li:-0X8000000000000001:0:2: ++%2li:-0x8000000000000001:1:2:0: ++%*2li:-0x8000000000000001:0:2: ++%2li:-01000000000000000000001:1:2:0: ++%*2li:-01000000000000000000001:0:2: ++%2li:-0B1000000000000000000000000000000000000000000000000000000000000001:1:2:0: ++%*2li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:2: ++%2li:-0b1000000000000000000000000000000000000000000000000000000000000001:1:2:0: ++%*2li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:2: ++%2li:-9223372036854775808:1:2:-9: ++%*2li:-9223372036854775808:0:2: ++%2li:-0X8000000000000000:1:2:0: ++%*2li:-0X8000000000000000:0:2: ++%2li:-0x8000000000000000:1:2:0: ++%*2li:-0x8000000000000000:0:2: ++%2li:-01000000000000000000000:1:2:0: ++%*2li:-01000000000000000000000:0:2: ++%2li:-0B1000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2li:-0b1000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2li:-123:1:2:-1: ++%*2li:-123:0:2: ++%2li:-0X7b:1:2:0: ++%*2li:-0X7b:0:2: ++%2li:-0x7B:1:2:0: ++%*2li:-0x7B:0:2: ++%2li:-0173:1:2:0: ++%*2li:-0173:0:2: ++%2li:-0B1111011:1:2:0: ++%*2li:-0B1111011:0:2: ++%2li:-0b1111011:1:2:0: ++%*2li:-0b1111011:0:2: ++%2li:-1:1:2:-1: ++%*2li:-1:0:2: ++%2li:-0X1:1:2:0: ++%*2li:-0X1:0:2: ++%2li:-0x1:1:2:0: ++%*2li:-0x1:0:2: ++%2li:-01:1:2:0: ++%*2li:-01:0:2: ++%2li:-0B1:1:2:0: ++%*2li:-0B1:0:2: ++%2li:-0b1:1:2:0: ++%*2li:-0b1:0:2: ++%2li:-0:1:2:0: ++%*2li:-0:0:2: ++%2li:-0X0:1:2:0: ++%*2li:-0X0:0:2: ++%2li:-0x0:1:2:0: ++%*2li:-0x0:0:2: ++%2li:-00:1:2:0: ++%*2li:-00:0:2: ++%2li:-0B0:1:2:0: ++%*2li:-0B0:0:2: ++%2li:-0b0:1:2:0: ++%*2li:-0b0:0:2: ++%2li:0:1:1:0: ++%*2li:0:0:1: ++# BZ12701 %2li:0X0:0:-1: ++# BZ12701 %*2li:0X0:0:-1: ++# BZ12701 %2li:0x0:0:-1: ++# BZ12701 %*2li:0x0:0:-1: ++%2li:00:1:2:0: ++%*2li:00:0:2: ++# BZ12701 %2li:0B0:0:-1: ++# BZ12701 %*2li:0B0:0:-1: ++# BZ12701 %2li:0b0:0:-1: ++# BZ12701 %*2li:0b0:0:-1: ++%2li:1:1:1:1: ++%*2li:1:0:1: ++# BZ12701 %2li:0X1:0:-1: ++# BZ12701 %*2li:0X1:0:-1: ++# BZ12701 %2li:0x1:0:-1: ++# BZ12701 %*2li:0x1:0:-1: ++%2li:01:1:2:1: ++%*2li:01:0:2: ++# BZ12701 %2li:0B1:0:-1: ++# BZ12701 %*2li:0B1:0:-1: ++# BZ12701 %2li:0b1:0:-1: ++# BZ12701 %*2li:0b1:0:-1: ++%2li:42:1:2:42: ++%*2li:42:0:2: ++# BZ12701 %2li:0X2a:0:-1: ++# BZ12701 %*2li:0X2a:0:-1: ++# BZ12701 %2li:0x2A:0:-1: ++# BZ12701 %*2li:0x2A:0:-1: ++%2li:052:1:2:5: ++%*2li:052:0:2: ++# BZ12701 %2li:0B101010:0:-1: ++# BZ12701 %*2li:0B101010:0:-1: ++# BZ12701 %2li:0b101010:0:-1: ++# BZ12701 %*2li:0b101010:0:-1: ++%2li:9223372036854775807:1:2:92: ++%*2li:9223372036854775807:0:2: ++# BZ12701 %2li:0X7fffffffffffffff:0:-1: ++# BZ12701 %*2li:0X7fffffffffffffff:0:-1: ++# BZ12701 %2li:0x7FFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2li:0x7FFFFFFFFFFFFFFF:0:-1: ++%2li:0777777777777777777777:1:2:7: ++%*2li:0777777777777777777777:0:2: ++# BZ12701 %2li:0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2li:0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %2li:0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2li:0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%2li:9223372036854775808:1:2:92: ++%*2li:9223372036854775808:0:2: ++# BZ12701 %2li:0X8000000000000000:0:-1: ++# BZ12701 %*2li:0X8000000000000000:0:-1: ++# BZ12701 %2li:0x8000000000000000:0:-1: ++# BZ12701 %*2li:0x8000000000000000:0:-1: ++%2li:01000000000000000000000:1:2:1: ++%*2li:01000000000000000000000:0:2: ++# BZ12701 %2li:0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2li:0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %2li:0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2li:0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%2li:9223372036897200049:1:2:92: ++%*2li:9223372036897200049:0:2: ++# BZ12701 %2li:0X80000000028757b1:0:-1: ++# BZ12701 %*2li:0X80000000028757b1:0:-1: ++# BZ12701 %2li:0x80000000028757B1:0:-1: ++# BZ12701 %*2li:0x80000000028757B1:0:-1: ++%2li:01000000000000241653661:1:2:1: ++%*2li:01000000000000241653661:0:2: ++# BZ12701 %2li:0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2li:0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %2li:0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2li:0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2li:+0:1:2:0: ++%*2li:+0:0:2: ++%2li:+0X0:1:2:0: ++%*2li:+0X0:0:2: ++%2li:+0x0:1:2:0: ++%*2li:+0x0:0:2: ++%2li:+00:1:2:0: ++%*2li:+00:0:2: ++%2li:+0B0:1:2:0: ++%*2li:+0B0:0:2: ++%2li:+0b0:1:2:0: ++%*2li:+0b0:0:2: ++%2li:+1:1:2:1: ++%*2li:+1:0:2: ++%2li:+0X1:1:2:0: ++%*2li:+0X1:0:2: ++%2li:+0x1:1:2:0: ++%*2li:+0x1:0:2: ++%2li:+01:1:2:0: ++%*2li:+01:0:2: ++%2li:+0B1:1:2:0: ++%*2li:+0B1:0:2: ++%2li:+0b1:1:2:0: ++%*2li:+0b1:0:2: ++%2li:+42:1:2:4: ++%*2li:+42:0:2: ++%2li:+0X2a:1:2:0: ++%*2li:+0X2a:0:2: ++%2li:+0x2A:1:2:0: ++%*2li:+0x2A:0:2: ++%2li:+052:1:2:0: ++%*2li:+052:0:2: ++%2li:+0B101010:1:2:0: ++%*2li:+0B101010:0:2: ++%2li:+0b101010:1:2:0: ++%*2li:+0b101010:0:2: ++%2li:+9223372036854775807:1:2:9: ++%*2li:+9223372036854775807:0:2: ++%2li:+0X7fffffffffffffff:1:2:0: ++%*2li:+0X7fffffffffffffff:0:2: ++%2li:+0x7FFFFFFFFFFFFFFF:1:2:0: ++%*2li:+0x7FFFFFFFFFFFFFFF:0:2: ++%2li:+0777777777777777777777:1:2:0: ++%*2li:+0777777777777777777777:0:2: ++%2li:+0B111111111111111111111111111111111111111111111111111111111111111:1:2:0: ++%*2li:+0B111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2li:+0b111111111111111111111111111111111111111111111111111111111111111:1:2:0: ++%*2li:+0b111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2li:+9223372036854775808:1:2:9: ++%*2li:+9223372036854775808:0:2: ++%2li:+0X8000000000000000:1:2:0: ++%*2li:+0X8000000000000000:0:2: ++%2li:+0x8000000000000000:1:2:0: ++%*2li:+0x8000000000000000:0:2: ++%2li:+01000000000000000000000:1:2:0: ++%*2li:+01000000000000000000000:0:2: ++%2li:+0B1000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2li:+0b1000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2li:+9223372036897200049:1:2:9: ++%*2li:+9223372036897200049:0:2: ++%2li:+0X80000000028757b1:1:2:0: ++%*2li:+0X80000000028757b1:0:2: ++%2li:+0x80000000028757B1:1:2:0: ++%*2li:+0x80000000028757B1:0:2: ++%2li:+01000000000000241653661:1:2:0: ++%*2li:+01000000000000241653661:0:2: ++%2li:+0B1000000000000000000000000000000000000010100001110101011110110001:1:2:0: ++%*2li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:2: ++%2li:+0b1000000000000000000000000000000000000010100001110101011110110001:1:2:0: ++%*2li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:2: ++%15li::0:-1: ++%*15li::0:-1: ++%15li:-9223372036867121486:1:15:-92233720368671: ++%*15li:-9223372036867121486:0:15: ++%15li:-0X8000000000bc614e:1:15:-140737488355516: ++%*15li:-0X8000000000bc614e:0:15: ++%15li:-0x8000000000BC614E:1:15:-140737488355516: ++%*15li:-0x8000000000BC614E:0:15: ++%15li:-01000000000000057060516:1:15:-68719476736: ++%*15li:-01000000000000057060516:0:15: ++%15li:-0B1000000000000000000000000000000000000000101111000110000101001110:1:15:-2048: ++%*15li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:15: ++%15li:-0b1000000000000000000000000000000000000000101111000110000101001110:1:15:-2048: ++%*15li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:15: ++%15li:-9223372036854775809:1:15:-92233720368547: ++%*15li:-9223372036854775809:0:15: ++%15li:-0X8000000000000001:1:15:-140737488355328: ++%*15li:-0X8000000000000001:0:15: ++%15li:-0x8000000000000001:1:15:-140737488355328: ++%*15li:-0x8000000000000001:0:15: ++%15li:-01000000000000000000001:1:15:-68719476736: ++%*15li:-01000000000000000000001:0:15: ++%15li:-0B1000000000000000000000000000000000000000000000000000000000000001:1:15:-2048: ++%*15li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:15: ++%15li:-0b1000000000000000000000000000000000000000000000000000000000000001:1:15:-2048: ++%*15li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:15: ++%15li:-9223372036854775808:1:15:-92233720368547: ++%*15li:-9223372036854775808:0:15: ++%15li:-0X8000000000000000:1:15:-140737488355328: ++%*15li:-0X8000000000000000:0:15: ++%15li:-0x8000000000000000:1:15:-140737488355328: ++%*15li:-0x8000000000000000:0:15: ++%15li:-01000000000000000000000:1:15:-68719476736: ++%*15li:-01000000000000000000000:0:15: ++%15li:-0B1000000000000000000000000000000000000000000000000000000000000000:1:15:-2048: ++%*15li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15li:-0b1000000000000000000000000000000000000000000000000000000000000000:1:15:-2048: ++%*15li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15li:-123:1:4:-123: ++%*15li:-123:0:4: ++%15li:-0X7b:1:5:-123: ++%*15li:-0X7b:0:5: ++%15li:-0x7B:1:5:-123: ++%*15li:-0x7B:0:5: ++%15li:-0173:1:5:-123: ++%*15li:-0173:0:5: ++%15li:-0B1111011:1:10:-123: ++%*15li:-0B1111011:0:10: ++%15li:-0b1111011:1:10:-123: ++%*15li:-0b1111011:0:10: ++%15li:-1:1:2:-1: ++%*15li:-1:0:2: ++%15li:-0X1:1:4:-1: ++%*15li:-0X1:0:4: ++%15li:-0x1:1:4:-1: ++%*15li:-0x1:0:4: ++%15li:-01:1:3:-1: ++%*15li:-01:0:3: ++%15li:-0B1:1:4:-1: ++%*15li:-0B1:0:4: ++%15li:-0b1:1:4:-1: ++%*15li:-0b1:0:4: ++%15li:-0:1:2:0: ++%*15li:-0:0:2: ++%15li:-0X0:1:4:0: ++%*15li:-0X0:0:4: ++%15li:-0x0:1:4:0: ++%*15li:-0x0:0:4: ++%15li:-00:1:3:0: ++%*15li:-00:0:3: ++%15li:-0B0:1:4:0: ++%*15li:-0B0:0:4: ++%15li:-0b0:1:4:0: ++%*15li:-0b0:0:4: ++%15li:0:1:1:0: ++%*15li:0:0:1: ++%15li:0X0:1:3:0: ++%*15li:0X0:0:3: ++%15li:0x0:1:3:0: ++%*15li:0x0:0:3: ++%15li:00:1:2:0: ++%*15li:00:0:2: ++%15li:0B0:1:3:0: ++%*15li:0B0:0:3: ++%15li:0b0:1:3:0: ++%*15li:0b0:0:3: ++%15li:1:1:1:1: ++%*15li:1:0:1: ++%15li:0X1:1:3:1: ++%*15li:0X1:0:3: ++%15li:0x1:1:3:1: ++%*15li:0x1:0:3: ++%15li:01:1:2:1: ++%*15li:01:0:2: ++%15li:0B1:1:3:1: ++%*15li:0B1:0:3: ++%15li:0b1:1:3:1: ++%*15li:0b1:0:3: ++%15li:42:1:2:42: ++%*15li:42:0:2: ++%15li:0X2a:1:4:42: ++%*15li:0X2a:0:4: ++%15li:0x2A:1:4:42: ++%*15li:0x2A:0:4: ++%15li:052:1:3:42: ++%*15li:052:0:3: ++%15li:0B101010:1:8:42: ++%*15li:0B101010:0:8: ++%15li:0b101010:1:8:42: ++%*15li:0b101010:0:8: ++%15li:9223372036854775807:1:15:922337203685477: ++%*15li:9223372036854775807:0:15: ++%15li:0X7fffffffffffffff:1:15:2251799813685247: ++%*15li:0X7fffffffffffffff:0:15: ++%15li:0x7FFFFFFFFFFFFFFF:1:15:2251799813685247: ++%*15li:0x7FFFFFFFFFFFFFFF:0:15: ++%15li:0777777777777777777777:1:15:4398046511103: ++%*15li:0777777777777777777777:0:15: ++%15li:0B111111111111111111111111111111111111111111111111111111111111111:1:15:8191: ++%*15li:0B111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15li:0b111111111111111111111111111111111111111111111111111111111111111:1:15:8191: ++%*15li:0b111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15li:9223372036854775808:1:15:922337203685477: ++%*15li:9223372036854775808:0:15: ++%15li:0X8000000000000000:1:15:2251799813685248: ++%*15li:0X8000000000000000:0:15: ++%15li:0x8000000000000000:1:15:2251799813685248: ++%*15li:0x8000000000000000:0:15: ++%15li:01000000000000000000000:1:15:549755813888: ++%*15li:01000000000000000000000:0:15: ++%15li:0B1000000000000000000000000000000000000000000000000000000000000000:1:15:4096: ++%*15li:0B1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15li:0b1000000000000000000000000000000000000000000000000000000000000000:1:15:4096: ++%*15li:0b1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15li:9223372036897200049:1:15:922337203689720: ++%*15li:9223372036897200049:0:15: ++%15li:0X80000000028757b1:1:15:2251799813695605: ++%*15li:0X80000000028757b1:0:15: ++%15li:0x80000000028757B1:1:15:2251799813695605: ++%*15li:0x80000000028757B1:0:15: ++%15li:01000000000000241653661:1:15:549755813890: ++%*15li:01000000000000241653661:0:15: ++%15li:0B1000000000000000000000000000000000000010100001110101011110110001:1:15:4096: ++%*15li:0B1000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15li:0b1000000000000000000000000000000000000010100001110101011110110001:1:15:4096: ++%*15li:0b1000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15li:+0:1:2:0: ++%*15li:+0:0:2: ++%15li:+0X0:1:4:0: ++%*15li:+0X0:0:4: ++%15li:+0x0:1:4:0: ++%*15li:+0x0:0:4: ++%15li:+00:1:3:0: ++%*15li:+00:0:3: ++%15li:+0B0:1:4:0: ++%*15li:+0B0:0:4: ++%15li:+0b0:1:4:0: ++%*15li:+0b0:0:4: ++%15li:+1:1:2:1: ++%*15li:+1:0:2: ++%15li:+0X1:1:4:1: ++%*15li:+0X1:0:4: ++%15li:+0x1:1:4:1: ++%*15li:+0x1:0:4: ++%15li:+01:1:3:1: ++%*15li:+01:0:3: ++%15li:+0B1:1:4:1: ++%*15li:+0B1:0:4: ++%15li:+0b1:1:4:1: ++%*15li:+0b1:0:4: ++%15li:+42:1:3:42: ++%*15li:+42:0:3: ++%15li:+0X2a:1:5:42: ++%*15li:+0X2a:0:5: ++%15li:+0x2A:1:5:42: ++%*15li:+0x2A:0:5: ++%15li:+052:1:4:42: ++%*15li:+052:0:4: ++%15li:+0B101010:1:9:42: ++%*15li:+0B101010:0:9: ++%15li:+0b101010:1:9:42: ++%*15li:+0b101010:0:9: ++%15li:+9223372036854775807:1:15:92233720368547: ++%*15li:+9223372036854775807:0:15: ++%15li:+0X7fffffffffffffff:1:15:140737488355327: ++%*15li:+0X7fffffffffffffff:0:15: ++%15li:+0x7FFFFFFFFFFFFFFF:1:15:140737488355327: ++%*15li:+0x7FFFFFFFFFFFFFFF:0:15: ++%15li:+0777777777777777777777:1:15:549755813887: ++%*15li:+0777777777777777777777:0:15: ++%15li:+0B111111111111111111111111111111111111111111111111111111111111111:1:15:4095: ++%*15li:+0B111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15li:+0b111111111111111111111111111111111111111111111111111111111111111:1:15:4095: ++%*15li:+0b111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15li:+9223372036854775808:1:15:92233720368547: ++%*15li:+9223372036854775808:0:15: ++%15li:+0X8000000000000000:1:15:140737488355328: ++%*15li:+0X8000000000000000:0:15: ++%15li:+0x8000000000000000:1:15:140737488355328: ++%*15li:+0x8000000000000000:0:15: ++%15li:+01000000000000000000000:1:15:68719476736: ++%*15li:+01000000000000000000000:0:15: ++%15li:+0B1000000000000000000000000000000000000000000000000000000000000000:1:15:2048: ++%*15li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15li:+0b1000000000000000000000000000000000000000000000000000000000000000:1:15:2048: ++%*15li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15li:+9223372036897200049:1:15:92233720368972: ++%*15li:+9223372036897200049:0:15: ++%15li:+0X80000000028757b1:1:15:140737488355975: ++%*15li:+0X80000000028757b1:0:15: ++%15li:+0x80000000028757B1:1:15:140737488355975: ++%*15li:+0x80000000028757B1:0:15: ++%15li:+01000000000000241653661:1:15:68719476736: ++%*15li:+01000000000000241653661:0:15: ++%15li:+0B1000000000000000000000000000000000000010100001110101011110110001:1:15:2048: ++%*15li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15li:+0b1000000000000000000000000000000000000010100001110101011110110001:1:15:2048: ++%*15li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:15: ++%25li::0:-1: ++%*25li::0:-1: ++%25li:-9223372036867121486:1:20:-9223372036854775808: ++%*25li:-9223372036867121486:0:20: ++%25li:-0X8000000000bc614e:1:19:-9223372036854775808: ++%*25li:-0X8000000000bc614e:0:19: ++%25li:-0x8000000000BC614E:1:19:-9223372036854775808: ++%*25li:-0x8000000000BC614E:0:19: ++%25li:-01000000000000057060516:1:24:-9223372036854775808: ++%*25li:-01000000000000057060516:0:24: ++%25li:-0B1000000000000000000000000000000000000000101111000110000101001110:1:25:-2097152: ++%*25li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:25: ++%25li:-0b1000000000000000000000000000000000000000101111000110000101001110:1:25:-2097152: ++%*25li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:25: ++%25li:-9223372036854775809:1:20:-9223372036854775808: ++%*25li:-9223372036854775809:0:20: ++%25li:-0X8000000000000001:1:19:-9223372036854775808: ++%*25li:-0X8000000000000001:0:19: ++%25li:-0x8000000000000001:1:19:-9223372036854775808: ++%*25li:-0x8000000000000001:0:19: ++%25li:-01000000000000000000001:1:24:-9223372036854775808: ++%*25li:-01000000000000000000001:0:24: ++%25li:-0B1000000000000000000000000000000000000000000000000000000000000001:1:25:-2097152: ++%*25li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:25: ++%25li:-0b1000000000000000000000000000000000000000000000000000000000000001:1:25:-2097152: ++%*25li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:25: ++%25li:-9223372036854775808:1:20:-9223372036854775808: ++%*25li:-9223372036854775808:0:20: ++%25li:-0X8000000000000000:1:19:-9223372036854775808: ++%*25li:-0X8000000000000000:0:19: ++%25li:-0x8000000000000000:1:19:-9223372036854775808: ++%*25li:-0x8000000000000000:0:19: ++%25li:-01000000000000000000000:1:24:-9223372036854775808: ++%*25li:-01000000000000000000000:0:24: ++%25li:-0B1000000000000000000000000000000000000000000000000000000000000000:1:25:-2097152: ++%*25li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25li:-0b1000000000000000000000000000000000000000000000000000000000000000:1:25:-2097152: ++%*25li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25li:-123:1:4:-123: ++%*25li:-123:0:4: ++%25li:-0X7b:1:5:-123: ++%*25li:-0X7b:0:5: ++%25li:-0x7B:1:5:-123: ++%*25li:-0x7B:0:5: ++%25li:-0173:1:5:-123: ++%*25li:-0173:0:5: ++%25li:-0B1111011:1:10:-123: ++%*25li:-0B1111011:0:10: ++%25li:-0b1111011:1:10:-123: ++%*25li:-0b1111011:0:10: ++%25li:-1:1:2:-1: ++%*25li:-1:0:2: ++%25li:-0X1:1:4:-1: ++%*25li:-0X1:0:4: ++%25li:-0x1:1:4:-1: ++%*25li:-0x1:0:4: ++%25li:-01:1:3:-1: ++%*25li:-01:0:3: ++%25li:-0B1:1:4:-1: ++%*25li:-0B1:0:4: ++%25li:-0b1:1:4:-1: ++%*25li:-0b1:0:4: ++%25li:-0:1:2:0: ++%*25li:-0:0:2: ++%25li:-0X0:1:4:0: ++%*25li:-0X0:0:4: ++%25li:-0x0:1:4:0: ++%*25li:-0x0:0:4: ++%25li:-00:1:3:0: ++%*25li:-00:0:3: ++%25li:-0B0:1:4:0: ++%*25li:-0B0:0:4: ++%25li:-0b0:1:4:0: ++%*25li:-0b0:0:4: ++%25li:0:1:1:0: ++%*25li:0:0:1: ++%25li:0X0:1:3:0: ++%*25li:0X0:0:3: ++%25li:0x0:1:3:0: ++%*25li:0x0:0:3: ++%25li:00:1:2:0: ++%*25li:00:0:2: ++%25li:0B0:1:3:0: ++%*25li:0B0:0:3: ++%25li:0b0:1:3:0: ++%*25li:0b0:0:3: ++%25li:1:1:1:1: ++%*25li:1:0:1: ++%25li:0X1:1:3:1: ++%*25li:0X1:0:3: ++%25li:0x1:1:3:1: ++%*25li:0x1:0:3: ++%25li:01:1:2:1: ++%*25li:01:0:2: ++%25li:0B1:1:3:1: ++%*25li:0B1:0:3: ++%25li:0b1:1:3:1: ++%*25li:0b1:0:3: ++%25li:42:1:2:42: ++%*25li:42:0:2: ++%25li:0X2a:1:4:42: ++%*25li:0X2a:0:4: ++%25li:0x2A:1:4:42: ++%*25li:0x2A:0:4: ++%25li:052:1:3:42: ++%*25li:052:0:3: ++%25li:0B101010:1:8:42: ++%*25li:0B101010:0:8: ++%25li:0b101010:1:8:42: ++%*25li:0b101010:0:8: ++%25li:9223372036854775807:1:19:9223372036854775807: ++%*25li:9223372036854775807:0:19: ++%25li:0X7fffffffffffffff:1:18:9223372036854775807: ++%*25li:0X7fffffffffffffff:0:18: ++%25li:0x7FFFFFFFFFFFFFFF:1:18:9223372036854775807: ++%*25li:0x7FFFFFFFFFFFFFFF:0:18: ++%25li:0777777777777777777777:1:22:9223372036854775807: ++%*25li:0777777777777777777777:0:22: ++%25li:0B111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: ++%*25li:0B111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25li:0b111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: ++%*25li:0b111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25li:9223372036854775808:1:19:9223372036854775807: ++%*25li:9223372036854775808:0:19: ++%25li:0X8000000000000000:1:18:9223372036854775807: ++%*25li:0X8000000000000000:0:18: ++%25li:0x8000000000000000:1:18:9223372036854775807: ++%*25li:0x8000000000000000:0:18: ++%25li:01000000000000000000000:1:23:9223372036854775807: ++%*25li:01000000000000000000000:0:23: ++%25li:0B1000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: ++%*25li:0B1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25li:0b1000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: ++%*25li:0b1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25li:9223372036897200049:1:19:9223372036854775807: ++%*25li:9223372036897200049:0:19: ++%25li:0X80000000028757b1:1:18:9223372036854775807: ++%*25li:0X80000000028757b1:0:18: ++%25li:0x80000000028757B1:1:18:9223372036854775807: ++%*25li:0x80000000028757B1:0:18: ++%25li:01000000000000241653661:1:23:9223372036854775807: ++%*25li:01000000000000241653661:0:23: ++%25li:0B1000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: ++%*25li:0B1000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25li:0b1000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: ++%*25li:0b1000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25li:+0:1:2:0: ++%*25li:+0:0:2: ++%25li:+0X0:1:4:0: ++%*25li:+0X0:0:4: ++%25li:+0x0:1:4:0: ++%*25li:+0x0:0:4: ++%25li:+00:1:3:0: ++%*25li:+00:0:3: ++%25li:+0B0:1:4:0: ++%*25li:+0B0:0:4: ++%25li:+0b0:1:4:0: ++%*25li:+0b0:0:4: ++%25li:+1:1:2:1: ++%*25li:+1:0:2: ++%25li:+0X1:1:4:1: ++%*25li:+0X1:0:4: ++%25li:+0x1:1:4:1: ++%*25li:+0x1:0:4: ++%25li:+01:1:3:1: ++%*25li:+01:0:3: ++%25li:+0B1:1:4:1: ++%*25li:+0B1:0:4: ++%25li:+0b1:1:4:1: ++%*25li:+0b1:0:4: ++%25li:+42:1:3:42: ++%*25li:+42:0:3: ++%25li:+0X2a:1:5:42: ++%*25li:+0X2a:0:5: ++%25li:+0x2A:1:5:42: ++%*25li:+0x2A:0:5: ++%25li:+052:1:4:42: ++%*25li:+052:0:4: ++%25li:+0B101010:1:9:42: ++%*25li:+0B101010:0:9: ++%25li:+0b101010:1:9:42: ++%*25li:+0b101010:0:9: ++%25li:+9223372036854775807:1:20:9223372036854775807: ++%*25li:+9223372036854775807:0:20: ++%25li:+0X7fffffffffffffff:1:19:9223372036854775807: ++%*25li:+0X7fffffffffffffff:0:19: ++%25li:+0x7FFFFFFFFFFFFFFF:1:19:9223372036854775807: ++%*25li:+0x7FFFFFFFFFFFFFFF:0:19: ++%25li:+0777777777777777777777:1:23:9223372036854775807: ++%*25li:+0777777777777777777777:0:23: ++%25li:+0B111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: ++%*25li:+0B111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25li:+0b111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: ++%*25li:+0b111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25li:+9223372036854775808:1:20:9223372036854775807: ++%*25li:+9223372036854775808:0:20: ++%25li:+0X8000000000000000:1:19:9223372036854775807: ++%*25li:+0X8000000000000000:0:19: ++%25li:+0x8000000000000000:1:19:9223372036854775807: ++%*25li:+0x8000000000000000:0:19: ++%25li:+01000000000000000000000:1:24:9223372036854775807: ++%*25li:+01000000000000000000000:0:24: ++%25li:+0B1000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: ++%*25li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25li:+0b1000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: ++%*25li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25li:+9223372036897200049:1:20:9223372036854775807: ++%*25li:+9223372036897200049:0:20: ++%25li:+0X80000000028757b1:1:19:9223372036854775807: ++%*25li:+0X80000000028757b1:0:19: ++%25li:+0x80000000028757B1:1:19:9223372036854775807: ++%*25li:+0x80000000028757B1:0:19: ++%25li:+01000000000000241653661:1:24:9223372036854775807: ++%*25li:+01000000000000241653661:0:24: ++%25li:+0B1000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: ++%*25li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25li:+0b1000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: ++%*25li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:25: ++%2li: :0:-1: ++%*2li: :0:-1: ++%2li: -9223372036867121486:1:3:-9: ++%*2li: -9223372036867121486:0:3: ++%2li: -0X8000000000bc614e:1:3:0: ++%*2li: -0X8000000000bc614e:0:3: ++%2li: -0x8000000000BC614E:1:3:0: ++%*2li: -0x8000000000BC614E:0:3: ++%2li: -01000000000000057060516:1:3:0: ++%*2li: -01000000000000057060516:0:3: ++%2li: -0B1000000000000000000000000000000000000000101111000110000101001110:1:3:0: ++%*2li: -0B1000000000000000000000000000000000000000101111000110000101001110:0:3: ++%2li: -0b1000000000000000000000000000000000000000101111000110000101001110:1:3:0: ++%*2li: -0b1000000000000000000000000000000000000000101111000110000101001110:0:3: ++%2li: -9223372036854775809:1:3:-9: ++%*2li: -9223372036854775809:0:3: ++%2li: -0X8000000000000001:1:3:0: ++%*2li: -0X8000000000000001:0:3: ++%2li: -0x8000000000000001:1:3:0: ++%*2li: -0x8000000000000001:0:3: ++%2li: -01000000000000000000001:1:3:0: ++%*2li: -01000000000000000000001:0:3: ++%2li: -0B1000000000000000000000000000000000000000000000000000000000000001:1:3:0: ++%*2li: -0B1000000000000000000000000000000000000000000000000000000000000001:0:3: ++%2li: -0b1000000000000000000000000000000000000000000000000000000000000001:1:3:0: ++%*2li: -0b1000000000000000000000000000000000000000000000000000000000000001:0:3: ++%2li: -9223372036854775808:1:3:-9: ++%*2li: -9223372036854775808:0:3: ++%2li: -0X8000000000000000:1:3:0: ++%*2li: -0X8000000000000000:0:3: ++%2li: -0x8000000000000000:1:3:0: ++%*2li: -0x8000000000000000:0:3: ++%2li: -01000000000000000000000:1:3:0: ++%*2li: -01000000000000000000000:0:3: ++%2li: -0B1000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2li: -0B1000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2li: -0b1000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2li: -0b1000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2li: -123:1:3:-1: ++%*2li: -123:0:3: ++%2li: -0X7b:1:3:0: ++%*2li: -0X7b:0:3: ++%2li: -0x7B:1:3:0: ++%*2li: -0x7B:0:3: ++%2li: -0173:1:3:0: ++%*2li: -0173:0:3: ++%2li: -0B1111011:1:3:0: ++%*2li: -0B1111011:0:3: ++%2li: -0b1111011:1:3:0: ++%*2li: -0b1111011:0:3: ++%2li: -1:1:3:-1: ++%*2li: -1:0:3: ++%2li: -0X1:1:3:0: ++%*2li: -0X1:0:3: ++%2li: -0x1:1:3:0: ++%*2li: -0x1:0:3: ++%2li: -01:1:3:0: ++%*2li: -01:0:3: ++%2li: -0B1:1:3:0: ++%*2li: -0B1:0:3: ++%2li: -0b1:1:3:0: ++%*2li: -0b1:0:3: ++%2li: -0:1:3:0: ++%*2li: -0:0:3: ++%2li: -0X0:1:3:0: ++%*2li: -0X0:0:3: ++%2li: -0x0:1:3:0: ++%*2li: -0x0:0:3: ++%2li: -00:1:3:0: ++%*2li: -00:0:3: ++%2li: -0B0:1:3:0: ++%*2li: -0B0:0:3: ++%2li: -0b0:1:3:0: ++%*2li: -0b0:0:3: ++%2li: 0:1:2:0: ++%*2li: 0:0:2: ++# BZ12701 %2li: 0X0:0:-1: ++# BZ12701 %*2li: 0X0:0:-1: ++# BZ12701 %2li: 0x0:0:-1: ++# BZ12701 %*2li: 0x0:0:-1: ++%2li: 00:1:3:0: ++%*2li: 00:0:3: ++# BZ12701 %2li: 0B0:0:-1: ++# BZ12701 %*2li: 0B0:0:-1: ++# BZ12701 %2li: 0b0:0:-1: ++# BZ12701 %*2li: 0b0:0:-1: ++%2li: 1:1:2:1: ++%*2li: 1:0:2: ++# BZ12701 %2li: 0X1:0:-1: ++# BZ12701 %*2li: 0X1:0:-1: ++# BZ12701 %2li: 0x1:0:-1: ++# BZ12701 %*2li: 0x1:0:-1: ++%2li: 01:1:3:1: ++%*2li: 01:0:3: ++# BZ12701 %2li: 0B1:0:-1: ++# BZ12701 %*2li: 0B1:0:-1: ++# BZ12701 %2li: 0b1:0:-1: ++# BZ12701 %*2li: 0b1:0:-1: ++%2li: 42:1:3:42: ++%*2li: 42:0:3: ++# BZ12701 %2li: 0X2a:0:-1: ++# BZ12701 %*2li: 0X2a:0:-1: ++# BZ12701 %2li: 0x2A:0:-1: ++# BZ12701 %*2li: 0x2A:0:-1: ++%2li: 052:1:3:5: ++%*2li: 052:0:3: ++# BZ12701 %2li: 0B101010:0:-1: ++# BZ12701 %*2li: 0B101010:0:-1: ++# BZ12701 %2li: 0b101010:0:-1: ++# BZ12701 %*2li: 0b101010:0:-1: ++%2li: 9223372036854775807:1:3:92: ++%*2li: 9223372036854775807:0:3: ++# BZ12701 %2li: 0X7fffffffffffffff:0:-1: ++# BZ12701 %*2li: 0X7fffffffffffffff:0:-1: ++# BZ12701 %2li: 0x7FFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2li: 0x7FFFFFFFFFFFFFFF:0:-1: ++%2li: 0777777777777777777777:1:3:7: ++%*2li: 0777777777777777777777:0:3: ++# BZ12701 %2li: 0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2li: 0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %2li: 0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2li: 0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%2li: 9223372036854775808:1:3:92: ++%*2li: 9223372036854775808:0:3: ++# BZ12701 %2li: 0X8000000000000000:0:-1: ++# BZ12701 %*2li: 0X8000000000000000:0:-1: ++# BZ12701 %2li: 0x8000000000000000:0:-1: ++# BZ12701 %*2li: 0x8000000000000000:0:-1: ++%2li: 01000000000000000000000:1:3:1: ++%*2li: 01000000000000000000000:0:3: ++# BZ12701 %2li: 0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2li: 0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %2li: 0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2li: 0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%2li: 9223372036897200049:1:3:92: ++%*2li: 9223372036897200049:0:3: ++# BZ12701 %2li: 0X80000000028757b1:0:-1: ++# BZ12701 %*2li: 0X80000000028757b1:0:-1: ++# BZ12701 %2li: 0x80000000028757B1:0:-1: ++# BZ12701 %*2li: 0x80000000028757B1:0:-1: ++%2li: 01000000000000241653661:1:3:1: ++%*2li: 01000000000000241653661:0:3: ++# BZ12701 %2li: 0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2li: 0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %2li: 0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2li: 0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2li: +0:1:3:0: ++%*2li: +0:0:3: ++%2li: +0X0:1:3:0: ++%*2li: +0X0:0:3: ++%2li: +0x0:1:3:0: ++%*2li: +0x0:0:3: ++%2li: +00:1:3:0: ++%*2li: +00:0:3: ++%2li: +0B0:1:3:0: ++%*2li: +0B0:0:3: ++%2li: +0b0:1:3:0: ++%*2li: +0b0:0:3: ++%2li: +1:1:3:1: ++%*2li: +1:0:3: ++%2li: +0X1:1:3:0: ++%*2li: +0X1:0:3: ++%2li: +0x1:1:3:0: ++%*2li: +0x1:0:3: ++%2li: +01:1:3:0: ++%*2li: +01:0:3: ++%2li: +0B1:1:3:0: ++%*2li: +0B1:0:3: ++%2li: +0b1:1:3:0: ++%*2li: +0b1:0:3: ++%2li: +42:1:3:4: ++%*2li: +42:0:3: ++%2li: +0X2a:1:3:0: ++%*2li: +0X2a:0:3: ++%2li: +0x2A:1:3:0: ++%*2li: +0x2A:0:3: ++%2li: +052:1:3:0: ++%*2li: +052:0:3: ++%2li: +0B101010:1:3:0: ++%*2li: +0B101010:0:3: ++%2li: +0b101010:1:3:0: ++%*2li: +0b101010:0:3: ++%2li: +9223372036854775807:1:3:9: ++%*2li: +9223372036854775807:0:3: ++%2li: +0X7fffffffffffffff:1:3:0: ++%*2li: +0X7fffffffffffffff:0:3: ++%2li: +0x7FFFFFFFFFFFFFFF:1:3:0: ++%*2li: +0x7FFFFFFFFFFFFFFF:0:3: ++%2li: +0777777777777777777777:1:3:0: ++%*2li: +0777777777777777777777:0:3: ++%2li: +0B111111111111111111111111111111111111111111111111111111111111111:1:3:0: ++%*2li: +0B111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2li: +0b111111111111111111111111111111111111111111111111111111111111111:1:3:0: ++%*2li: +0b111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2li: +9223372036854775808:1:3:9: ++%*2li: +9223372036854775808:0:3: ++%2li: +0X8000000000000000:1:3:0: ++%*2li: +0X8000000000000000:0:3: ++%2li: +0x8000000000000000:1:3:0: ++%*2li: +0x8000000000000000:0:3: ++%2li: +01000000000000000000000:1:3:0: ++%*2li: +01000000000000000000000:0:3: ++%2li: +0B1000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2li: +0B1000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2li: +0b1000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2li: +0b1000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2li: +9223372036897200049:1:3:9: ++%*2li: +9223372036897200049:0:3: ++%2li: +0X80000000028757b1:1:3:0: ++%*2li: +0X80000000028757b1:0:3: ++%2li: +0x80000000028757B1:1:3:0: ++%*2li: +0x80000000028757B1:0:3: ++%2li: +01000000000000241653661:1:3:0: ++%*2li: +01000000000000241653661:0:3: ++%2li: +0B1000000000000000000000000000000000000010100001110101011110110001:1:3:0: ++%*2li: +0B1000000000000000000000000000000000000010100001110101011110110001:0:3: ++%2li: +0b1000000000000000000000000000000000000010100001110101011110110001:1:3:0: ++%*2li: +0b1000000000000000000000000000000000000010100001110101011110110001:0:3: ++%25li: :0:-1: ++%*25li: :0:-1: ++%25li: -9223372036867121486:1:21:-9223372036854775808: ++%*25li: -9223372036867121486:0:21: ++%25li: -0X8000000000bc614e:1:20:-9223372036854775808: ++%*25li: -0X8000000000bc614e:0:20: ++%25li: -0x8000000000BC614E:1:20:-9223372036854775808: ++%*25li: -0x8000000000BC614E:0:20: ++%25li: -01000000000000057060516:1:25:-9223372036854775808: ++%*25li: -01000000000000057060516:0:25: ++%25li: -0B1000000000000000000000000000000000000000101111000110000101001110:1:26:-2097152: ++%*25li: -0B1000000000000000000000000000000000000000101111000110000101001110:0:26: ++%25li: -0b1000000000000000000000000000000000000000101111000110000101001110:1:26:-2097152: ++%*25li: -0b1000000000000000000000000000000000000000101111000110000101001110:0:26: ++%25li: -9223372036854775809:1:21:-9223372036854775808: ++%*25li: -9223372036854775809:0:21: ++%25li: -0X8000000000000001:1:20:-9223372036854775808: ++%*25li: -0X8000000000000001:0:20: ++%25li: -0x8000000000000001:1:20:-9223372036854775808: ++%*25li: -0x8000000000000001:0:20: ++%25li: -01000000000000000000001:1:25:-9223372036854775808: ++%*25li: -01000000000000000000001:0:25: ++%25li: -0B1000000000000000000000000000000000000000000000000000000000000001:1:26:-2097152: ++%*25li: -0B1000000000000000000000000000000000000000000000000000000000000001:0:26: ++%25li: -0b1000000000000000000000000000000000000000000000000000000000000001:1:26:-2097152: ++%*25li: -0b1000000000000000000000000000000000000000000000000000000000000001:0:26: ++%25li: -9223372036854775808:1:21:-9223372036854775808: ++%*25li: -9223372036854775808:0:21: ++%25li: -0X8000000000000000:1:20:-9223372036854775808: ++%*25li: -0X8000000000000000:0:20: ++%25li: -0x8000000000000000:1:20:-9223372036854775808: ++%*25li: -0x8000000000000000:0:20: ++%25li: -01000000000000000000000:1:25:-9223372036854775808: ++%*25li: -01000000000000000000000:0:25: ++%25li: -0B1000000000000000000000000000000000000000000000000000000000000000:1:26:-2097152: ++%*25li: -0B1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25li: -0b1000000000000000000000000000000000000000000000000000000000000000:1:26:-2097152: ++%*25li: -0b1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25li: -123:1:5:-123: ++%*25li: -123:0:5: ++%25li: -0X7b:1:6:-123: ++%*25li: -0X7b:0:6: ++%25li: -0x7B:1:6:-123: ++%*25li: -0x7B:0:6: ++%25li: -0173:1:6:-123: ++%*25li: -0173:0:6: ++%25li: -0B1111011:1:11:-123: ++%*25li: -0B1111011:0:11: ++%25li: -0b1111011:1:11:-123: ++%*25li: -0b1111011:0:11: ++%25li: -1:1:3:-1: ++%*25li: -1:0:3: ++%25li: -0X1:1:5:-1: ++%*25li: -0X1:0:5: ++%25li: -0x1:1:5:-1: ++%*25li: -0x1:0:5: ++%25li: -01:1:4:-1: ++%*25li: -01:0:4: ++%25li: -0B1:1:5:-1: ++%*25li: -0B1:0:5: ++%25li: -0b1:1:5:-1: ++%*25li: -0b1:0:5: ++%25li: -0:1:3:0: ++%*25li: -0:0:3: ++%25li: -0X0:1:5:0: ++%*25li: -0X0:0:5: ++%25li: -0x0:1:5:0: ++%*25li: -0x0:0:5: ++%25li: -00:1:4:0: ++%*25li: -00:0:4: ++%25li: -0B0:1:5:0: ++%*25li: -0B0:0:5: ++%25li: -0b0:1:5:0: ++%*25li: -0b0:0:5: ++%25li: 0:1:2:0: ++%*25li: 0:0:2: ++%25li: 0X0:1:4:0: ++%*25li: 0X0:0:4: ++%25li: 0x0:1:4:0: ++%*25li: 0x0:0:4: ++%25li: 00:1:3:0: ++%*25li: 00:0:3: ++%25li: 0B0:1:4:0: ++%*25li: 0B0:0:4: ++%25li: 0b0:1:4:0: ++%*25li: 0b0:0:4: ++%25li: 1:1:2:1: ++%*25li: 1:0:2: ++%25li: 0X1:1:4:1: ++%*25li: 0X1:0:4: ++%25li: 0x1:1:4:1: ++%*25li: 0x1:0:4: ++%25li: 01:1:3:1: ++%*25li: 01:0:3: ++%25li: 0B1:1:4:1: ++%*25li: 0B1:0:4: ++%25li: 0b1:1:4:1: ++%*25li: 0b1:0:4: ++%25li: 42:1:3:42: ++%*25li: 42:0:3: ++%25li: 0X2a:1:5:42: ++%*25li: 0X2a:0:5: ++%25li: 0x2A:1:5:42: ++%*25li: 0x2A:0:5: ++%25li: 052:1:4:42: ++%*25li: 052:0:4: ++%25li: 0B101010:1:9:42: ++%*25li: 0B101010:0:9: ++%25li: 0b101010:1:9:42: ++%*25li: 0b101010:0:9: ++%25li: 9223372036854775807:1:20:9223372036854775807: ++%*25li: 9223372036854775807:0:20: ++%25li: 0X7fffffffffffffff:1:19:9223372036854775807: ++%*25li: 0X7fffffffffffffff:0:19: ++%25li: 0x7FFFFFFFFFFFFFFF:1:19:9223372036854775807: ++%*25li: 0x7FFFFFFFFFFFFFFF:0:19: ++%25li: 0777777777777777777777:1:23:9223372036854775807: ++%*25li: 0777777777777777777777:0:23: ++%25li: 0B111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: ++%*25li: 0B111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25li: 0b111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: ++%*25li: 0b111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25li: 9223372036854775808:1:20:9223372036854775807: ++%*25li: 9223372036854775808:0:20: ++%25li: 0X8000000000000000:1:19:9223372036854775807: ++%*25li: 0X8000000000000000:0:19: ++%25li: 0x8000000000000000:1:19:9223372036854775807: ++%*25li: 0x8000000000000000:0:19: ++%25li: 01000000000000000000000:1:24:9223372036854775807: ++%*25li: 01000000000000000000000:0:24: ++%25li: 0B1000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: ++%*25li: 0B1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25li: 0b1000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: ++%*25li: 0b1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25li: 9223372036897200049:1:20:9223372036854775807: ++%*25li: 9223372036897200049:0:20: ++%25li: 0X80000000028757b1:1:19:9223372036854775807: ++%*25li: 0X80000000028757b1:0:19: ++%25li: 0x80000000028757B1:1:19:9223372036854775807: ++%*25li: 0x80000000028757B1:0:19: ++%25li: 01000000000000241653661:1:24:9223372036854775807: ++%*25li: 01000000000000241653661:0:24: ++%25li: 0B1000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: ++%*25li: 0B1000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25li: 0b1000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: ++%*25li: 0b1000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25li: +0:1:3:0: ++%*25li: +0:0:3: ++%25li: +0X0:1:5:0: ++%*25li: +0X0:0:5: ++%25li: +0x0:1:5:0: ++%*25li: +0x0:0:5: ++%25li: +00:1:4:0: ++%*25li: +00:0:4: ++%25li: +0B0:1:5:0: ++%*25li: +0B0:0:5: ++%25li: +0b0:1:5:0: ++%*25li: +0b0:0:5: ++%25li: +1:1:3:1: ++%*25li: +1:0:3: ++%25li: +0X1:1:5:1: ++%*25li: +0X1:0:5: ++%25li: +0x1:1:5:1: ++%*25li: +0x1:0:5: ++%25li: +01:1:4:1: ++%*25li: +01:0:4: ++%25li: +0B1:1:5:1: ++%*25li: +0B1:0:5: ++%25li: +0b1:1:5:1: ++%*25li: +0b1:0:5: ++%25li: +42:1:4:42: ++%*25li: +42:0:4: ++%25li: +0X2a:1:6:42: ++%*25li: +0X2a:0:6: ++%25li: +0x2A:1:6:42: ++%*25li: +0x2A:0:6: ++%25li: +052:1:5:42: ++%*25li: +052:0:5: ++%25li: +0B101010:1:10:42: ++%*25li: +0B101010:0:10: ++%25li: +0b101010:1:10:42: ++%*25li: +0b101010:0:10: ++%25li: +9223372036854775807:1:21:9223372036854775807: ++%*25li: +9223372036854775807:0:21: ++%25li: +0X7fffffffffffffff:1:20:9223372036854775807: ++%*25li: +0X7fffffffffffffff:0:20: ++%25li: +0x7FFFFFFFFFFFFFFF:1:20:9223372036854775807: ++%*25li: +0x7FFFFFFFFFFFFFFF:0:20: ++%25li: +0777777777777777777777:1:24:9223372036854775807: ++%*25li: +0777777777777777777777:0:24: ++%25li: +0B111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: ++%*25li: +0B111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25li: +0b111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: ++%*25li: +0b111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25li: +9223372036854775808:1:21:9223372036854775807: ++%*25li: +9223372036854775808:0:21: ++%25li: +0X8000000000000000:1:20:9223372036854775807: ++%*25li: +0X8000000000000000:0:20: ++%25li: +0x8000000000000000:1:20:9223372036854775807: ++%*25li: +0x8000000000000000:0:20: ++%25li: +01000000000000000000000:1:25:9223372036854775807: ++%*25li: +01000000000000000000000:0:25: ++%25li: +0B1000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: ++%*25li: +0B1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25li: +0b1000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: ++%*25li: +0b1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25li: +9223372036897200049:1:21:9223372036854775807: ++%*25li: +9223372036897200049:0:21: ++%25li: +0X80000000028757b1:1:20:9223372036854775807: ++%*25li: +0X80000000028757b1:0:20: ++%25li: +0x80000000028757B1:1:20:9223372036854775807: ++%*25li: +0x80000000028757B1:0:20: ++%25li: +01000000000000241653661:1:25:9223372036854775807: ++%*25li: +01000000000000241653661:0:25: ++%25li: +0B1000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: ++%*25li: +0B1000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25li: +0b1000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: ++%*25li: +0b1000000000000000000000000000000000000010100001110101011110110001:0:26: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-uint-b.input b/sysdeps/wordsize-64/tst-scanf-format-uint-b.input +new file mode 100644 +index 0000000000000000..7915af7adcaa4d9f +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-uint-b.input +@@ -0,0 +1,644 @@ ++%b::0:-1: ++%*b::0:-1: ++%b:-1111011:1:8:4294967173: ++%*b:-1111011:0:8: ++%b:-0B1111011:1:10:4294967173: ++%*b:-0B1111011:0:10: ++%b:-0b1111011:1:10:4294967173: ++%*b:-0b1111011:0:10: ++%b:-1:1:2:4294967295: ++%*b:-1:0:2: ++%b:-0B1:1:4:4294967295: ++%*b:-0B1:0:4: ++%b:-0b1:1:4:4294967295: ++%*b:-0b1:0:4: ++%b:-0:1:2:0: ++%*b:-0:0:2: ++%b:-0B0:1:4:0: ++%*b:-0B0:0:4: ++%b:-0b0:1:4:0: ++%*b:-0b0:0:4: ++%b:0:1:1:0: ++%*b:0:0:1: ++%b:0B0:1:3:0: ++%*b:0B0:0:3: ++%b:0b0:1:3:0: ++%*b:0b0:0:3: ++%b:1:1:1:1: ++%*b:1:0:1: ++%b:0B1:1:3:1: ++%*b:0B1:0:3: ++%b:0b1:1:3:1: ++%*b:0b1:0:3: ++%b:101010:1:6:42: ++%*b:101010:0:6: ++%b:0B101010:1:8:42: ++%*b:0B101010:0:8: ++%b:0b101010:1:8:42: ++%*b:0b101010:0:8: ++%b:11111111111111111111111111111111:1:32:4294967295: ++%*b:11111111111111111111111111111111:0:32: ++%b:0B11111111111111111111111111111111:1:34:4294967295: ++%*b:0B11111111111111111111111111111111:0:34: ++%b:0b11111111111111111111111111111111:1:34:4294967295: ++%*b:0b11111111111111111111111111111111:0:34: ++%b:100000000000000000000000000000000:1:33:0: ++%*b:100000000000000000000000000000000:0:33: ++%b:0B100000000000000000000000000000000:1:35:0: ++%*b:0B100000000000000000000000000000000:0:35: ++%b:0b100000000000000000000000000000000:1:35:0: ++%*b:0b100000000000000000000000000000000:0:35: ++%b:100000000000000000001000010010001:1:33:4241: ++%*b:100000000000000000001000010010001:0:33: ++%b:0B100000000000000000001000010010001:1:35:4241: ++%*b:0B100000000000000000001000010010001:0:35: ++%b:0b100000000000000000001000010010001:1:35:4241: ++%*b:0b100000000000000000001000010010001:0:35: ++%b:+0:1:2:0: ++%*b:+0:0:2: ++%b:+0B0:1:4:0: ++%*b:+0B0:0:4: ++%b:+0b0:1:4:0: ++%*b:+0b0:0:4: ++%b:+1:1:2:1: ++%*b:+1:0:2: ++%b:+0B1:1:4:1: ++%*b:+0B1:0:4: ++%b:+0b1:1:4:1: ++%*b:+0b1:0:4: ++%b:+101010:1:7:42: ++%*b:+101010:0:7: ++%b:+0B101010:1:9:42: ++%*b:+0B101010:0:9: ++%b:+0b101010:1:9:42: ++%*b:+0b101010:0:9: ++%b:+11111111111111111111111111111111:1:33:4294967295: ++%*b:+11111111111111111111111111111111:0:33: ++%b:+0B11111111111111111111111111111111:1:35:4294967295: ++%*b:+0B11111111111111111111111111111111:0:35: ++%b:+0b11111111111111111111111111111111:1:35:4294967295: ++%*b:+0b11111111111111111111111111111111:0:35: ++%b:+100000000000000000000000000000000:1:34:0: ++%*b:+100000000000000000000000000000000:0:34: ++%b:+0B100000000000000000000000000000000:1:36:0: ++%*b:+0B100000000000000000000000000000000:0:36: ++%b:+0b100000000000000000000000000000000:1:36:0: ++%*b:+0b100000000000000000000000000000000:0:36: ++%b:+100000000000000000001000010010001:1:34:4241: ++%*b:+100000000000000000001000010010001:0:34: ++%b:+0B100000000000000000001000010010001:1:36:4241: ++%*b:+0B100000000000000000001000010010001:0:36: ++%b:+0b100000000000000000001000010010001:1:36:4241: ++%*b:+0b100000000000000000001000010010001:0:36: ++%1b::0:-1: ++%*1b::0:-1: ++%1b:-1111011:0:-1: ++%*1b:-1111011:0:-1: ++%1b:-0B1111011:0:-1: ++%*1b:-0B1111011:0:-1: ++%1b:-0b1111011:0:-1: ++%*1b:-0b1111011:0:-1: ++%1b:-1:0:-1: ++%*1b:-1:0:-1: ++%1b:-0B1:0:-1: ++%*1b:-0B1:0:-1: ++%1b:-0b1:0:-1: ++%*1b:-0b1:0:-1: ++%1b:-0:0:-1: ++%*1b:-0:0:-1: ++%1b:-0B0:0:-1: ++%*1b:-0B0:0:-1: ++%1b:-0b0:0:-1: ++%*1b:-0b0:0:-1: ++%1b:0:1:1:0: ++%*1b:0:0:1: ++%1b:0B0:1:1:0: ++%*1b:0B0:0:1: ++%1b:0b0:1:1:0: ++%*1b:0b0:0:1: ++%1b:1:1:1:1: ++%*1b:1:0:1: ++%1b:0B1:1:1:0: ++%*1b:0B1:0:1: ++%1b:0b1:1:1:0: ++%*1b:0b1:0:1: ++%1b:101010:1:1:1: ++%*1b:101010:0:1: ++%1b:0B101010:1:1:0: ++%*1b:0B101010:0:1: ++%1b:0b101010:1:1:0: ++%*1b:0b101010:0:1: ++%1b:11111111111111111111111111111111:1:1:1: ++%*1b:11111111111111111111111111111111:0:1: ++%1b:0B11111111111111111111111111111111:1:1:0: ++%*1b:0B11111111111111111111111111111111:0:1: ++%1b:0b11111111111111111111111111111111:1:1:0: ++%*1b:0b11111111111111111111111111111111:0:1: ++%1b:100000000000000000000000000000000:1:1:1: ++%*1b:100000000000000000000000000000000:0:1: ++%1b:0B100000000000000000000000000000000:1:1:0: ++%*1b:0B100000000000000000000000000000000:0:1: ++%1b:0b100000000000000000000000000000000:1:1:0: ++%*1b:0b100000000000000000000000000000000:0:1: ++%1b:100000000000000000001000010010001:1:1:1: ++%*1b:100000000000000000001000010010001:0:1: ++%1b:0B100000000000000000001000010010001:1:1:0: ++%*1b:0B100000000000000000001000010010001:0:1: ++%1b:0b100000000000000000001000010010001:1:1:0: ++%*1b:0b100000000000000000001000010010001:0:1: ++%1b:+0:0:-1: ++%*1b:+0:0:-1: ++%1b:+0B0:0:-1: ++%*1b:+0B0:0:-1: ++%1b:+0b0:0:-1: ++%*1b:+0b0:0:-1: ++%1b:+1:0:-1: ++%*1b:+1:0:-1: ++%1b:+0B1:0:-1: ++%*1b:+0B1:0:-1: ++%1b:+0b1:0:-1: ++%*1b:+0b1:0:-1: ++%1b:+101010:0:-1: ++%*1b:+101010:0:-1: ++%1b:+0B101010:0:-1: ++%*1b:+0B101010:0:-1: ++%1b:+0b101010:0:-1: ++%*1b:+0b101010:0:-1: ++%1b:+11111111111111111111111111111111:0:-1: ++%*1b:+11111111111111111111111111111111:0:-1: ++%1b:+0B11111111111111111111111111111111:0:-1: ++%*1b:+0B11111111111111111111111111111111:0:-1: ++%1b:+0b11111111111111111111111111111111:0:-1: ++%*1b:+0b11111111111111111111111111111111:0:-1: ++%1b:+100000000000000000000000000000000:0:-1: ++%*1b:+100000000000000000000000000000000:0:-1: ++%1b:+0B100000000000000000000000000000000:0:-1: ++%*1b:+0B100000000000000000000000000000000:0:-1: ++%1b:+0b100000000000000000000000000000000:0:-1: ++%*1b:+0b100000000000000000000000000000000:0:-1: ++%1b:+100000000000000000001000010010001:0:-1: ++%*1b:+100000000000000000001000010010001:0:-1: ++%1b:+0B100000000000000000001000010010001:0:-1: ++%*1b:+0B100000000000000000001000010010001:0:-1: ++%1b:+0b100000000000000000001000010010001:0:-1: ++%*1b:+0b100000000000000000001000010010001:0:-1: ++%2b::0:-1: ++%*2b::0:-1: ++%2b:-1111011:1:2:4294967295: ++%*2b:-1111011:0:2: ++%2b:-0B1111011:1:2:0: ++%*2b:-0B1111011:0:2: ++%2b:-0b1111011:1:2:0: ++%*2b:-0b1111011:0:2: ++%2b:-1:1:2:4294967295: ++%*2b:-1:0:2: ++%2b:-0B1:1:2:0: ++%*2b:-0B1:0:2: ++%2b:-0b1:1:2:0: ++%*2b:-0b1:0:2: ++%2b:-0:1:2:0: ++%*2b:-0:0:2: ++%2b:-0B0:1:2:0: ++%*2b:-0B0:0:2: ++%2b:-0b0:1:2:0: ++%*2b:-0b0:0:2: ++%2b:0:1:1:0: ++%*2b:0:0:1: ++# BZ12701 %2b:0B0:0:-1: ++# BZ12701 %*2b:0B0:0:-1: ++# BZ12701 %2b:0b0:0:-1: ++# BZ12701 %*2b:0b0:0:-1: ++%2b:1:1:1:1: ++%*2b:1:0:1: ++# BZ12701 %2b:0B1:0:-1: ++# BZ12701 %*2b:0B1:0:-1: ++# BZ12701 %2b:0b1:0:-1: ++# BZ12701 %*2b:0b1:0:-1: ++%2b:101010:1:2:2: ++%*2b:101010:0:2: ++# BZ12701 %2b:0B101010:0:-1: ++# BZ12701 %*2b:0B101010:0:-1: ++# BZ12701 %2b:0b101010:0:-1: ++# BZ12701 %*2b:0b101010:0:-1: ++%2b:11111111111111111111111111111111:1:2:3: ++%*2b:11111111111111111111111111111111:0:2: ++# BZ12701 %2b:0B11111111111111111111111111111111:0:-1: ++# BZ12701 %*2b:0B11111111111111111111111111111111:0:-1: ++# BZ12701 %2b:0b11111111111111111111111111111111:0:-1: ++# BZ12701 %*2b:0b11111111111111111111111111111111:0:-1: ++%2b:100000000000000000000000000000000:1:2:2: ++%*2b:100000000000000000000000000000000:0:2: ++# BZ12701 %2b:0B100000000000000000000000000000000:0:-1: ++# BZ12701 %*2b:0B100000000000000000000000000000000:0:-1: ++# BZ12701 %2b:0b100000000000000000000000000000000:0:-1: ++# BZ12701 %*2b:0b100000000000000000000000000000000:0:-1: ++%2b:100000000000000000001000010010001:1:2:2: ++%*2b:100000000000000000001000010010001:0:2: ++# BZ12701 %2b:0B100000000000000000001000010010001:0:-1: ++# BZ12701 %*2b:0B100000000000000000001000010010001:0:-1: ++# BZ12701 %2b:0b100000000000000000001000010010001:0:-1: ++# BZ12701 %*2b:0b100000000000000000001000010010001:0:-1: ++%2b:+0:1:2:0: ++%*2b:+0:0:2: ++%2b:+0B0:1:2:0: ++%*2b:+0B0:0:2: ++%2b:+0b0:1:2:0: ++%*2b:+0b0:0:2: ++%2b:+1:1:2:1: ++%*2b:+1:0:2: ++%2b:+0B1:1:2:0: ++%*2b:+0B1:0:2: ++%2b:+0b1:1:2:0: ++%*2b:+0b1:0:2: ++%2b:+101010:1:2:1: ++%*2b:+101010:0:2: ++%2b:+0B101010:1:2:0: ++%*2b:+0B101010:0:2: ++%2b:+0b101010:1:2:0: ++%*2b:+0b101010:0:2: ++%2b:+11111111111111111111111111111111:1:2:1: ++%*2b:+11111111111111111111111111111111:0:2: ++%2b:+0B11111111111111111111111111111111:1:2:0: ++%*2b:+0B11111111111111111111111111111111:0:2: ++%2b:+0b11111111111111111111111111111111:1:2:0: ++%*2b:+0b11111111111111111111111111111111:0:2: ++%2b:+100000000000000000000000000000000:1:2:1: ++%*2b:+100000000000000000000000000000000:0:2: ++%2b:+0B100000000000000000000000000000000:1:2:0: ++%*2b:+0B100000000000000000000000000000000:0:2: ++%2b:+0b100000000000000000000000000000000:1:2:0: ++%*2b:+0b100000000000000000000000000000000:0:2: ++%2b:+100000000000000000001000010010001:1:2:1: ++%*2b:+100000000000000000001000010010001:0:2: ++%2b:+0B100000000000000000001000010010001:1:2:0: ++%*2b:+0B100000000000000000001000010010001:0:2: ++%2b:+0b100000000000000000001000010010001:1:2:0: ++%*2b:+0b100000000000000000001000010010001:0:2: ++%8b::0:-1: ++%*8b::0:-1: ++%8b:-1111011:1:8:4294967173: ++%*8b:-1111011:0:8: ++%8b:-0B1111011:1:8:4294967266: ++%*8b:-0B1111011:0:8: ++%8b:-0b1111011:1:8:4294967266: ++%*8b:-0b1111011:0:8: ++%8b:-1:1:2:4294967295: ++%*8b:-1:0:2: ++%8b:-0B1:1:4:4294967295: ++%*8b:-0B1:0:4: ++%8b:-0b1:1:4:4294967295: ++%*8b:-0b1:0:4: ++%8b:-0:1:2:0: ++%*8b:-0:0:2: ++%8b:-0B0:1:4:0: ++%*8b:-0B0:0:4: ++%8b:-0b0:1:4:0: ++%*8b:-0b0:0:4: ++%8b:0:1:1:0: ++%*8b:0:0:1: ++%8b:0B0:1:3:0: ++%*8b:0B0:0:3: ++%8b:0b0:1:3:0: ++%*8b:0b0:0:3: ++%8b:1:1:1:1: ++%*8b:1:0:1: ++%8b:0B1:1:3:1: ++%*8b:0B1:0:3: ++%8b:0b1:1:3:1: ++%*8b:0b1:0:3: ++%8b:101010:1:6:42: ++%*8b:101010:0:6: ++%8b:0B101010:1:8:42: ++%*8b:0B101010:0:8: ++%8b:0b101010:1:8:42: ++%*8b:0b101010:0:8: ++%8b:11111111111111111111111111111111:1:8:255: ++%*8b:11111111111111111111111111111111:0:8: ++%8b:0B11111111111111111111111111111111:1:8:63: ++%*8b:0B11111111111111111111111111111111:0:8: ++%8b:0b11111111111111111111111111111111:1:8:63: ++%*8b:0b11111111111111111111111111111111:0:8: ++%8b:100000000000000000000000000000000:1:8:128: ++%*8b:100000000000000000000000000000000:0:8: ++%8b:0B100000000000000000000000000000000:1:8:32: ++%*8b:0B100000000000000000000000000000000:0:8: ++%8b:0b100000000000000000000000000000000:1:8:32: ++%*8b:0b100000000000000000000000000000000:0:8: ++%8b:100000000000000000001000010010001:1:8:128: ++%*8b:100000000000000000001000010010001:0:8: ++%8b:0B100000000000000000001000010010001:1:8:32: ++%*8b:0B100000000000000000001000010010001:0:8: ++%8b:0b100000000000000000001000010010001:1:8:32: ++%*8b:0b100000000000000000001000010010001:0:8: ++%8b:+0:1:2:0: ++%*8b:+0:0:2: ++%8b:+0B0:1:4:0: ++%*8b:+0B0:0:4: ++%8b:+0b0:1:4:0: ++%*8b:+0b0:0:4: ++%8b:+1:1:2:1: ++%*8b:+1:0:2: ++%8b:+0B1:1:4:1: ++%*8b:+0B1:0:4: ++%8b:+0b1:1:4:1: ++%*8b:+0b1:0:4: ++%8b:+101010:1:7:42: ++%*8b:+101010:0:7: ++%8b:+0B101010:1:8:21: ++%*8b:+0B101010:0:8: ++%8b:+0b101010:1:8:21: ++%*8b:+0b101010:0:8: ++%8b:+11111111111111111111111111111111:1:8:127: ++%*8b:+11111111111111111111111111111111:0:8: ++%8b:+0B11111111111111111111111111111111:1:8:31: ++%*8b:+0B11111111111111111111111111111111:0:8: ++%8b:+0b11111111111111111111111111111111:1:8:31: ++%*8b:+0b11111111111111111111111111111111:0:8: ++%8b:+100000000000000000000000000000000:1:8:64: ++%*8b:+100000000000000000000000000000000:0:8: ++%8b:+0B100000000000000000000000000000000:1:8:16: ++%*8b:+0B100000000000000000000000000000000:0:8: ++%8b:+0b100000000000000000000000000000000:1:8:16: ++%*8b:+0b100000000000000000000000000000000:0:8: ++%8b:+100000000000000000001000010010001:1:8:64: ++%*8b:+100000000000000000001000010010001:0:8: ++%8b:+0B100000000000000000001000010010001:1:8:16: ++%*8b:+0B100000000000000000001000010010001:0:8: ++%8b:+0b100000000000000000001000010010001:1:8:16: ++%*8b:+0b100000000000000000001000010010001:0:8: ++%15b::0:-1: ++%*15b::0:-1: ++%15b:-1111011:1:8:4294967173: ++%*15b:-1111011:0:8: ++%15b:-0B1111011:1:10:4294967173: ++%*15b:-0B1111011:0:10: ++%15b:-0b1111011:1:10:4294967173: ++%*15b:-0b1111011:0:10: ++%15b:-1:1:2:4294967295: ++%*15b:-1:0:2: ++%15b:-0B1:1:4:4294967295: ++%*15b:-0B1:0:4: ++%15b:-0b1:1:4:4294967295: ++%*15b:-0b1:0:4: ++%15b:-0:1:2:0: ++%*15b:-0:0:2: ++%15b:-0B0:1:4:0: ++%*15b:-0B0:0:4: ++%15b:-0b0:1:4:0: ++%*15b:-0b0:0:4: ++%15b:0:1:1:0: ++%*15b:0:0:1: ++%15b:0B0:1:3:0: ++%*15b:0B0:0:3: ++%15b:0b0:1:3:0: ++%*15b:0b0:0:3: ++%15b:1:1:1:1: ++%*15b:1:0:1: ++%15b:0B1:1:3:1: ++%*15b:0B1:0:3: ++%15b:0b1:1:3:1: ++%*15b:0b1:0:3: ++%15b:101010:1:6:42: ++%*15b:101010:0:6: ++%15b:0B101010:1:8:42: ++%*15b:0B101010:0:8: ++%15b:0b101010:1:8:42: ++%*15b:0b101010:0:8: ++%15b:11111111111111111111111111111111:1:15:32767: ++%*15b:11111111111111111111111111111111:0:15: ++%15b:0B11111111111111111111111111111111:1:15:8191: ++%*15b:0B11111111111111111111111111111111:0:15: ++%15b:0b11111111111111111111111111111111:1:15:8191: ++%*15b:0b11111111111111111111111111111111:0:15: ++%15b:100000000000000000000000000000000:1:15:16384: ++%*15b:100000000000000000000000000000000:0:15: ++%15b:0B100000000000000000000000000000000:1:15:4096: ++%*15b:0B100000000000000000000000000000000:0:15: ++%15b:0b100000000000000000000000000000000:1:15:4096: ++%*15b:0b100000000000000000000000000000000:0:15: ++%15b:100000000000000000001000010010001:1:15:16384: ++%*15b:100000000000000000001000010010001:0:15: ++%15b:0B100000000000000000001000010010001:1:15:4096: ++%*15b:0B100000000000000000001000010010001:0:15: ++%15b:0b100000000000000000001000010010001:1:15:4096: ++%*15b:0b100000000000000000001000010010001:0:15: ++%15b:+0:1:2:0: ++%*15b:+0:0:2: ++%15b:+0B0:1:4:0: ++%*15b:+0B0:0:4: ++%15b:+0b0:1:4:0: ++%*15b:+0b0:0:4: ++%15b:+1:1:2:1: ++%*15b:+1:0:2: ++%15b:+0B1:1:4:1: ++%*15b:+0B1:0:4: ++%15b:+0b1:1:4:1: ++%*15b:+0b1:0:4: ++%15b:+101010:1:7:42: ++%*15b:+101010:0:7: ++%15b:+0B101010:1:9:42: ++%*15b:+0B101010:0:9: ++%15b:+0b101010:1:9:42: ++%*15b:+0b101010:0:9: ++%15b:+11111111111111111111111111111111:1:15:16383: ++%*15b:+11111111111111111111111111111111:0:15: ++%15b:+0B11111111111111111111111111111111:1:15:4095: ++%*15b:+0B11111111111111111111111111111111:0:15: ++%15b:+0b11111111111111111111111111111111:1:15:4095: ++%*15b:+0b11111111111111111111111111111111:0:15: ++%15b:+100000000000000000000000000000000:1:15:8192: ++%*15b:+100000000000000000000000000000000:0:15: ++%15b:+0B100000000000000000000000000000000:1:15:2048: ++%*15b:+0B100000000000000000000000000000000:0:15: ++%15b:+0b100000000000000000000000000000000:1:15:2048: ++%*15b:+0b100000000000000000000000000000000:0:15: ++%15b:+100000000000000000001000010010001:1:15:8192: ++%*15b:+100000000000000000001000010010001:0:15: ++%15b:+0B100000000000000000001000010010001:1:15:2048: ++%*15b:+0B100000000000000000001000010010001:0:15: ++%15b:+0b100000000000000000001000010010001:1:15:2048: ++%*15b:+0b100000000000000000001000010010001:0:15: ++%2b: :0:-1: ++%*2b: :0:-1: ++%2b: -1111011:1:3:4294967295: ++%*2b: -1111011:0:3: ++%2b: -0B1111011:1:3:0: ++%*2b: -0B1111011:0:3: ++%2b: -0b1111011:1:3:0: ++%*2b: -0b1111011:0:3: ++%2b: -1:1:3:4294967295: ++%*2b: -1:0:3: ++%2b: -0B1:1:3:0: ++%*2b: -0B1:0:3: ++%2b: -0b1:1:3:0: ++%*2b: -0b1:0:3: ++%2b: -0:1:3:0: ++%*2b: -0:0:3: ++%2b: -0B0:1:3:0: ++%*2b: -0B0:0:3: ++%2b: -0b0:1:3:0: ++%*2b: -0b0:0:3: ++%2b: 0:1:2:0: ++%*2b: 0:0:2: ++# BZ12701 %2b: 0B0:0:-1: ++# BZ12701 %*2b: 0B0:0:-1: ++# BZ12701 %2b: 0b0:0:-1: ++# BZ12701 %*2b: 0b0:0:-1: ++%2b: 1:1:2:1: ++%*2b: 1:0:2: ++# BZ12701 %2b: 0B1:0:-1: ++# BZ12701 %*2b: 0B1:0:-1: ++# BZ12701 %2b: 0b1:0:-1: ++# BZ12701 %*2b: 0b1:0:-1: ++%2b: 101010:1:3:2: ++%*2b: 101010:0:3: ++# BZ12701 %2b: 0B101010:0:-1: ++# BZ12701 %*2b: 0B101010:0:-1: ++# BZ12701 %2b: 0b101010:0:-1: ++# BZ12701 %*2b: 0b101010:0:-1: ++%2b: 11111111111111111111111111111111:1:3:3: ++%*2b: 11111111111111111111111111111111:0:3: ++# BZ12701 %2b: 0B11111111111111111111111111111111:0:-1: ++# BZ12701 %*2b: 0B11111111111111111111111111111111:0:-1: ++# BZ12701 %2b: 0b11111111111111111111111111111111:0:-1: ++# BZ12701 %*2b: 0b11111111111111111111111111111111:0:-1: ++%2b: 100000000000000000000000000000000:1:3:2: ++%*2b: 100000000000000000000000000000000:0:3: ++# BZ12701 %2b: 0B100000000000000000000000000000000:0:-1: ++# BZ12701 %*2b: 0B100000000000000000000000000000000:0:-1: ++# BZ12701 %2b: 0b100000000000000000000000000000000:0:-1: ++# BZ12701 %*2b: 0b100000000000000000000000000000000:0:-1: ++%2b: 100000000000000000001000010010001:1:3:2: ++%*2b: 100000000000000000001000010010001:0:3: ++# BZ12701 %2b: 0B100000000000000000001000010010001:0:-1: ++# BZ12701 %*2b: 0B100000000000000000001000010010001:0:-1: ++# BZ12701 %2b: 0b100000000000000000001000010010001:0:-1: ++# BZ12701 %*2b: 0b100000000000000000001000010010001:0:-1: ++%2b: +0:1:3:0: ++%*2b: +0:0:3: ++%2b: +0B0:1:3:0: ++%*2b: +0B0:0:3: ++%2b: +0b0:1:3:0: ++%*2b: +0b0:0:3: ++%2b: +1:1:3:1: ++%*2b: +1:0:3: ++%2b: +0B1:1:3:0: ++%*2b: +0B1:0:3: ++%2b: +0b1:1:3:0: ++%*2b: +0b1:0:3: ++%2b: +101010:1:3:1: ++%*2b: +101010:0:3: ++%2b: +0B101010:1:3:0: ++%*2b: +0B101010:0:3: ++%2b: +0b101010:1:3:0: ++%*2b: +0b101010:0:3: ++%2b: +11111111111111111111111111111111:1:3:1: ++%*2b: +11111111111111111111111111111111:0:3: ++%2b: +0B11111111111111111111111111111111:1:3:0: ++%*2b: +0B11111111111111111111111111111111:0:3: ++%2b: +0b11111111111111111111111111111111:1:3:0: ++%*2b: +0b11111111111111111111111111111111:0:3: ++%2b: +100000000000000000000000000000000:1:3:1: ++%*2b: +100000000000000000000000000000000:0:3: ++%2b: +0B100000000000000000000000000000000:1:3:0: ++%*2b: +0B100000000000000000000000000000000:0:3: ++%2b: +0b100000000000000000000000000000000:1:3:0: ++%*2b: +0b100000000000000000000000000000000:0:3: ++%2b: +100000000000000000001000010010001:1:3:1: ++%*2b: +100000000000000000001000010010001:0:3: ++%2b: +0B100000000000000000001000010010001:1:3:0: ++%*2b: +0B100000000000000000001000010010001:0:3: ++%2b: +0b100000000000000000001000010010001:1:3:0: ++%*2b: +0b100000000000000000001000010010001:0:3: ++%15b: :0:-1: ++%*15b: :0:-1: ++%15b: -1111011:1:9:4294967173: ++%*15b: -1111011:0:9: ++%15b: -0B1111011:1:11:4294967173: ++%*15b: -0B1111011:0:11: ++%15b: -0b1111011:1:11:4294967173: ++%*15b: -0b1111011:0:11: ++%15b: -1:1:3:4294967295: ++%*15b: -1:0:3: ++%15b: -0B1:1:5:4294967295: ++%*15b: -0B1:0:5: ++%15b: -0b1:1:5:4294967295: ++%*15b: -0b1:0:5: ++%15b: -0:1:3:0: ++%*15b: -0:0:3: ++%15b: -0B0:1:5:0: ++%*15b: -0B0:0:5: ++%15b: -0b0:1:5:0: ++%*15b: -0b0:0:5: ++%15b: 0:1:2:0: ++%*15b: 0:0:2: ++%15b: 0B0:1:4:0: ++%*15b: 0B0:0:4: ++%15b: 0b0:1:4:0: ++%*15b: 0b0:0:4: ++%15b: 1:1:2:1: ++%*15b: 1:0:2: ++%15b: 0B1:1:4:1: ++%*15b: 0B1:0:4: ++%15b: 0b1:1:4:1: ++%*15b: 0b1:0:4: ++%15b: 101010:1:7:42: ++%*15b: 101010:0:7: ++%15b: 0B101010:1:9:42: ++%*15b: 0B101010:0:9: ++%15b: 0b101010:1:9:42: ++%*15b: 0b101010:0:9: ++%15b: 11111111111111111111111111111111:1:16:32767: ++%*15b: 11111111111111111111111111111111:0:16: ++%15b: 0B11111111111111111111111111111111:1:16:8191: ++%*15b: 0B11111111111111111111111111111111:0:16: ++%15b: 0b11111111111111111111111111111111:1:16:8191: ++%*15b: 0b11111111111111111111111111111111:0:16: ++%15b: 100000000000000000000000000000000:1:16:16384: ++%*15b: 100000000000000000000000000000000:0:16: ++%15b: 0B100000000000000000000000000000000:1:16:4096: ++%*15b: 0B100000000000000000000000000000000:0:16: ++%15b: 0b100000000000000000000000000000000:1:16:4096: ++%*15b: 0b100000000000000000000000000000000:0:16: ++%15b: 100000000000000000001000010010001:1:16:16384: ++%*15b: 100000000000000000001000010010001:0:16: ++%15b: 0B100000000000000000001000010010001:1:16:4096: ++%*15b: 0B100000000000000000001000010010001:0:16: ++%15b: 0b100000000000000000001000010010001:1:16:4096: ++%*15b: 0b100000000000000000001000010010001:0:16: ++%15b: +0:1:3:0: ++%*15b: +0:0:3: ++%15b: +0B0:1:5:0: ++%*15b: +0B0:0:5: ++%15b: +0b0:1:5:0: ++%*15b: +0b0:0:5: ++%15b: +1:1:3:1: ++%*15b: +1:0:3: ++%15b: +0B1:1:5:1: ++%*15b: +0B1:0:5: ++%15b: +0b1:1:5:1: ++%*15b: +0b1:0:5: ++%15b: +101010:1:8:42: ++%*15b: +101010:0:8: ++%15b: +0B101010:1:10:42: ++%*15b: +0B101010:0:10: ++%15b: +0b101010:1:10:42: ++%*15b: +0b101010:0:10: ++%15b: +11111111111111111111111111111111:1:16:16383: ++%*15b: +11111111111111111111111111111111:0:16: ++%15b: +0B11111111111111111111111111111111:1:16:4095: ++%*15b: +0B11111111111111111111111111111111:0:16: ++%15b: +0b11111111111111111111111111111111:1:16:4095: ++%*15b: +0b11111111111111111111111111111111:0:16: ++%15b: +100000000000000000000000000000000:1:16:8192: ++%*15b: +100000000000000000000000000000000:0:16: ++%15b: +0B100000000000000000000000000000000:1:16:2048: ++%*15b: +0B100000000000000000000000000000000:0:16: ++%15b: +0b100000000000000000000000000000000:1:16:2048: ++%*15b: +0b100000000000000000000000000000000:0:16: ++%15b: +100000000000000000001000010010001:1:16:8192: ++%*15b: +100000000000000000001000010010001:0:16: ++%15b: +0B100000000000000000001000010010001:1:16:2048: ++%*15b: +0B100000000000000000001000010010001:0:16: ++%15b: +0b100000000000000000001000010010001:1:16:2048: ++%*15b: +0b100000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-uint-o.input b/sysdeps/wordsize-64/tst-scanf-format-uint-o.input +new file mode 100644 +index 0000000000000000..75ae2837990098d2 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-uint-o.input +@@ -0,0 +1,434 @@ ++%o::0:-1: ++%*o::0:-1: ++%o:-173:1:4:4294967173: ++%*o:-173:0:4: ++%o:-0173:1:5:4294967173: ++%*o:-0173:0:5: ++%o:-1:1:2:4294967295: ++%*o:-1:0:2: ++%o:-01:1:3:4294967295: ++%*o:-01:0:3: ++%o:-0:1:2:0: ++%*o:-0:0:2: ++%o:-00:1:3:0: ++%*o:-00:0:3: ++%o:0:1:1:0: ++%*o:0:0:1: ++%o:00:1:2:0: ++%*o:00:0:2: ++%o:1:1:1:1: ++%*o:1:0:1: ++%o:01:1:2:1: ++%*o:01:0:2: ++%o:52:1:2:42: ++%*o:52:0:2: ++%o:052:1:3:42: ++%*o:052:0:3: ++%o:37777777777:1:11:4294967295: ++%*o:37777777777:0:11: ++%o:037777777777:1:12:4294967295: ++%*o:037777777777:0:12: ++%o:40000000000:1:11:0: ++%*o:40000000000:0:11: ++%o:040000000000:1:12:0: ++%*o:040000000000:0:12: ++%o:40000010221:1:11:4241: ++%*o:40000010221:0:11: ++%o:040000010221:1:12:4241: ++%*o:040000010221:0:12: ++%o:+0:1:2:0: ++%*o:+0:0:2: ++%o:+00:1:3:0: ++%*o:+00:0:3: ++%o:+1:1:2:1: ++%*o:+1:0:2: ++%o:+01:1:3:1: ++%*o:+01:0:3: ++%o:+52:1:3:42: ++%*o:+52:0:3: ++%o:+052:1:4:42: ++%*o:+052:0:4: ++%o:+37777777777:1:12:4294967295: ++%*o:+37777777777:0:12: ++%o:+037777777777:1:13:4294967295: ++%*o:+037777777777:0:13: ++%o:+40000000000:1:12:0: ++%*o:+40000000000:0:12: ++%o:+040000000000:1:13:0: ++%*o:+040000000000:0:13: ++%o:+40000010221:1:12:4241: ++%*o:+40000010221:0:12: ++%o:+040000010221:1:13:4241: ++%*o:+040000010221:0:13: ++%1o::0:-1: ++%*1o::0:-1: ++%1o:-173:0:-1: ++%*1o:-173:0:-1: ++%1o:-0173:0:-1: ++%*1o:-0173:0:-1: ++%1o:-1:0:-1: ++%*1o:-1:0:-1: ++%1o:-01:0:-1: ++%*1o:-01:0:-1: ++%1o:-0:0:-1: ++%*1o:-0:0:-1: ++%1o:-00:0:-1: ++%*1o:-00:0:-1: ++%1o:0:1:1:0: ++%*1o:0:0:1: ++%1o:00:1:1:0: ++%*1o:00:0:1: ++%1o:1:1:1:1: ++%*1o:1:0:1: ++%1o:01:1:1:0: ++%*1o:01:0:1: ++%1o:52:1:1:5: ++%*1o:52:0:1: ++%1o:052:1:1:0: ++%*1o:052:0:1: ++%1o:37777777777:1:1:3: ++%*1o:37777777777:0:1: ++%1o:037777777777:1:1:0: ++%*1o:037777777777:0:1: ++%1o:40000000000:1:1:4: ++%*1o:40000000000:0:1: ++%1o:040000000000:1:1:0: ++%*1o:040000000000:0:1: ++%1o:40000010221:1:1:4: ++%*1o:40000010221:0:1: ++%1o:040000010221:1:1:0: ++%*1o:040000010221:0:1: ++%1o:+0:0:-1: ++%*1o:+0:0:-1: ++%1o:+00:0:-1: ++%*1o:+00:0:-1: ++%1o:+1:0:-1: ++%*1o:+1:0:-1: ++%1o:+01:0:-1: ++%*1o:+01:0:-1: ++%1o:+52:0:-1: ++%*1o:+52:0:-1: ++%1o:+052:0:-1: ++%*1o:+052:0:-1: ++%1o:+37777777777:0:-1: ++%*1o:+37777777777:0:-1: ++%1o:+037777777777:0:-1: ++%*1o:+037777777777:0:-1: ++%1o:+40000000000:0:-1: ++%*1o:+40000000000:0:-1: ++%1o:+040000000000:0:-1: ++%*1o:+040000000000:0:-1: ++%1o:+40000010221:0:-1: ++%*1o:+40000010221:0:-1: ++%1o:+040000010221:0:-1: ++%*1o:+040000010221:0:-1: ++%2o::0:-1: ++%*2o::0:-1: ++%2o:-173:1:2:4294967295: ++%*2o:-173:0:2: ++%2o:-0173:1:2:0: ++%*2o:-0173:0:2: ++%2o:-1:1:2:4294967295: ++%*2o:-1:0:2: ++%2o:-01:1:2:0: ++%*2o:-01:0:2: ++%2o:-0:1:2:0: ++%*2o:-0:0:2: ++%2o:-00:1:2:0: ++%*2o:-00:0:2: ++%2o:0:1:1:0: ++%*2o:0:0:1: ++%2o:00:1:2:0: ++%*2o:00:0:2: ++%2o:1:1:1:1: ++%*2o:1:0:1: ++%2o:01:1:2:1: ++%*2o:01:0:2: ++%2o:52:1:2:42: ++%*2o:52:0:2: ++%2o:052:1:2:5: ++%*2o:052:0:2: ++%2o:37777777777:1:2:31: ++%*2o:37777777777:0:2: ++%2o:037777777777:1:2:3: ++%*2o:037777777777:0:2: ++%2o:40000000000:1:2:32: ++%*2o:40000000000:0:2: ++%2o:040000000000:1:2:4: ++%*2o:040000000000:0:2: ++%2o:40000010221:1:2:32: ++%*2o:40000010221:0:2: ++%2o:040000010221:1:2:4: ++%*2o:040000010221:0:2: ++%2o:+0:1:2:0: ++%*2o:+0:0:2: ++%2o:+00:1:2:0: ++%*2o:+00:0:2: ++%2o:+1:1:2:1: ++%*2o:+1:0:2: ++%2o:+01:1:2:0: ++%*2o:+01:0:2: ++%2o:+52:1:2:5: ++%*2o:+52:0:2: ++%2o:+052:1:2:0: ++%*2o:+052:0:2: ++%2o:+37777777777:1:2:3: ++%*2o:+37777777777:0:2: ++%2o:+037777777777:1:2:0: ++%*2o:+037777777777:0:2: ++%2o:+40000000000:1:2:4: ++%*2o:+40000000000:0:2: ++%2o:+040000000000:1:2:0: ++%*2o:+040000000000:0:2: ++%2o:+40000010221:1:2:4: ++%*2o:+40000010221:0:2: ++%2o:+040000010221:1:2:0: ++%*2o:+040000010221:0:2: ++%8o::0:-1: ++%*8o::0:-1: ++%8o:-173:1:4:4294967173: ++%*8o:-173:0:4: ++%8o:-0173:1:5:4294967173: ++%*8o:-0173:0:5: ++%8o:-1:1:2:4294967295: ++%*8o:-1:0:2: ++%8o:-01:1:3:4294967295: ++%*8o:-01:0:3: ++%8o:-0:1:2:0: ++%*8o:-0:0:2: ++%8o:-00:1:3:0: ++%*8o:-00:0:3: ++%8o:0:1:1:0: ++%*8o:0:0:1: ++%8o:00:1:2:0: ++%*8o:00:0:2: ++%8o:1:1:1:1: ++%*8o:1:0:1: ++%8o:01:1:2:1: ++%*8o:01:0:2: ++%8o:52:1:2:42: ++%*8o:52:0:2: ++%8o:052:1:3:42: ++%*8o:052:0:3: ++%8o:37777777777:1:8:8388607: ++%*8o:37777777777:0:8: ++%8o:037777777777:1:8:1048575: ++%*8o:037777777777:0:8: ++%8o:40000000000:1:8:8388608: ++%*8o:40000000000:0:8: ++%8o:040000000000:1:8:1048576: ++%*8o:040000000000:0:8: ++%8o:40000010221:1:8:8388616: ++%*8o:40000010221:0:8: ++%8o:040000010221:1:8:1048577: ++%*8o:040000010221:0:8: ++%8o:+0:1:2:0: ++%*8o:+0:0:2: ++%8o:+00:1:3:0: ++%*8o:+00:0:3: ++%8o:+1:1:2:1: ++%*8o:+1:0:2: ++%8o:+01:1:3:1: ++%*8o:+01:0:3: ++%8o:+52:1:3:42: ++%*8o:+52:0:3: ++%8o:+052:1:4:42: ++%*8o:+052:0:4: ++%8o:+37777777777:1:8:1048575: ++%*8o:+37777777777:0:8: ++%8o:+037777777777:1:8:131071: ++%*8o:+037777777777:0:8: ++%8o:+40000000000:1:8:1048576: ++%*8o:+40000000000:0:8: ++%8o:+040000000000:1:8:131072: ++%*8o:+040000000000:0:8: ++%8o:+40000010221:1:8:1048577: ++%*8o:+40000010221:0:8: ++%8o:+040000010221:1:8:131072: ++%*8o:+040000010221:0:8: ++%15o::0:-1: ++%*15o::0:-1: ++%15o:-173:1:4:4294967173: ++%*15o:-173:0:4: ++%15o:-0173:1:5:4294967173: ++%*15o:-0173:0:5: ++%15o:-1:1:2:4294967295: ++%*15o:-1:0:2: ++%15o:-01:1:3:4294967295: ++%*15o:-01:0:3: ++%15o:-0:1:2:0: ++%*15o:-0:0:2: ++%15o:-00:1:3:0: ++%*15o:-00:0:3: ++%15o:0:1:1:0: ++%*15o:0:0:1: ++%15o:00:1:2:0: ++%*15o:00:0:2: ++%15o:1:1:1:1: ++%*15o:1:0:1: ++%15o:01:1:2:1: ++%*15o:01:0:2: ++%15o:52:1:2:42: ++%*15o:52:0:2: ++%15o:052:1:3:42: ++%*15o:052:0:3: ++%15o:37777777777:1:11:4294967295: ++%*15o:37777777777:0:11: ++%15o:037777777777:1:12:4294967295: ++%*15o:037777777777:0:12: ++%15o:40000000000:1:11:0: ++%*15o:40000000000:0:11: ++%15o:040000000000:1:12:0: ++%*15o:040000000000:0:12: ++%15o:40000010221:1:11:4241: ++%*15o:40000010221:0:11: ++%15o:040000010221:1:12:4241: ++%*15o:040000010221:0:12: ++%15o:+0:1:2:0: ++%*15o:+0:0:2: ++%15o:+00:1:3:0: ++%*15o:+00:0:3: ++%15o:+1:1:2:1: ++%*15o:+1:0:2: ++%15o:+01:1:3:1: ++%*15o:+01:0:3: ++%15o:+52:1:3:42: ++%*15o:+52:0:3: ++%15o:+052:1:4:42: ++%*15o:+052:0:4: ++%15o:+37777777777:1:12:4294967295: ++%*15o:+37777777777:0:12: ++%15o:+037777777777:1:13:4294967295: ++%*15o:+037777777777:0:13: ++%15o:+40000000000:1:12:0: ++%*15o:+40000000000:0:12: ++%15o:+040000000000:1:13:0: ++%*15o:+040000000000:0:13: ++%15o:+40000010221:1:12:4241: ++%*15o:+40000010221:0:12: ++%15o:+040000010221:1:13:4241: ++%*15o:+040000010221:0:13: ++%2o: :0:-1: ++%*2o: :0:-1: ++%2o: -173:1:3:4294967295: ++%*2o: -173:0:3: ++%2o: -0173:1:3:0: ++%*2o: -0173:0:3: ++%2o: -1:1:3:4294967295: ++%*2o: -1:0:3: ++%2o: -01:1:3:0: ++%*2o: -01:0:3: ++%2o: -0:1:3:0: ++%*2o: -0:0:3: ++%2o: -00:1:3:0: ++%*2o: -00:0:3: ++%2o: 0:1:2:0: ++%*2o: 0:0:2: ++%2o: 00:1:3:0: ++%*2o: 00:0:3: ++%2o: 1:1:2:1: ++%*2o: 1:0:2: ++%2o: 01:1:3:1: ++%*2o: 01:0:3: ++%2o: 52:1:3:42: ++%*2o: 52:0:3: ++%2o: 052:1:3:5: ++%*2o: 052:0:3: ++%2o: 37777777777:1:3:31: ++%*2o: 37777777777:0:3: ++%2o: 037777777777:1:3:3: ++%*2o: 037777777777:0:3: ++%2o: 40000000000:1:3:32: ++%*2o: 40000000000:0:3: ++%2o: 040000000000:1:3:4: ++%*2o: 040000000000:0:3: ++%2o: 40000010221:1:3:32: ++%*2o: 40000010221:0:3: ++%2o: 040000010221:1:3:4: ++%*2o: 040000010221:0:3: ++%2o: +0:1:3:0: ++%*2o: +0:0:3: ++%2o: +00:1:3:0: ++%*2o: +00:0:3: ++%2o: +1:1:3:1: ++%*2o: +1:0:3: ++%2o: +01:1:3:0: ++%*2o: +01:0:3: ++%2o: +52:1:3:5: ++%*2o: +52:0:3: ++%2o: +052:1:3:0: ++%*2o: +052:0:3: ++%2o: +37777777777:1:3:3: ++%*2o: +37777777777:0:3: ++%2o: +037777777777:1:3:0: ++%*2o: +037777777777:0:3: ++%2o: +40000000000:1:3:4: ++%*2o: +40000000000:0:3: ++%2o: +040000000000:1:3:0: ++%*2o: +040000000000:0:3: ++%2o: +40000010221:1:3:4: ++%*2o: +40000010221:0:3: ++%2o: +040000010221:1:3:0: ++%*2o: +040000010221:0:3: ++%15o: :0:-1: ++%*15o: :0:-1: ++%15o: -173:1:5:4294967173: ++%*15o: -173:0:5: ++%15o: -0173:1:6:4294967173: ++%*15o: -0173:0:6: ++%15o: -1:1:3:4294967295: ++%*15o: -1:0:3: ++%15o: -01:1:4:4294967295: ++%*15o: -01:0:4: ++%15o: -0:1:3:0: ++%*15o: -0:0:3: ++%15o: -00:1:4:0: ++%*15o: -00:0:4: ++%15o: 0:1:2:0: ++%*15o: 0:0:2: ++%15o: 00:1:3:0: ++%*15o: 00:0:3: ++%15o: 1:1:2:1: ++%*15o: 1:0:2: ++%15o: 01:1:3:1: ++%*15o: 01:0:3: ++%15o: 52:1:3:42: ++%*15o: 52:0:3: ++%15o: 052:1:4:42: ++%*15o: 052:0:4: ++%15o: 37777777777:1:12:4294967295: ++%*15o: 37777777777:0:12: ++%15o: 037777777777:1:13:4294967295: ++%*15o: 037777777777:0:13: ++%15o: 40000000000:1:12:0: ++%*15o: 40000000000:0:12: ++%15o: 040000000000:1:13:0: ++%*15o: 040000000000:0:13: ++%15o: 40000010221:1:12:4241: ++%*15o: 40000010221:0:12: ++%15o: 040000010221:1:13:4241: ++%*15o: 040000010221:0:13: ++%15o: +0:1:3:0: ++%*15o: +0:0:3: ++%15o: +00:1:4:0: ++%*15o: +00:0:4: ++%15o: +1:1:3:1: ++%*15o: +1:0:3: ++%15o: +01:1:4:1: ++%*15o: +01:0:4: ++%15o: +52:1:4:42: ++%*15o: +52:0:4: ++%15o: +052:1:5:42: ++%*15o: +052:0:5: ++%15o: +37777777777:1:13:4294967295: ++%*15o: +37777777777:0:13: ++%15o: +037777777777:1:14:4294967295: ++%*15o: +037777777777:0:14: ++%15o: +40000000000:1:13:0: ++%*15o: +40000000000:0:13: ++%15o: +040000000000:1:14:0: ++%*15o: +040000000000:0:14: ++%15o: +40000010221:1:13:4241: ++%*15o: +40000010221:0:13: ++%15o: +040000010221:1:14:4241: ++%*15o: +040000010221:0:14: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-uint-u.input b/sysdeps/wordsize-64/tst-scanf-format-uint-u.input +new file mode 100644 +index 0000000000000000..944806fd81bf8da2 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-uint-u.input +@@ -0,0 +1,224 @@ ++%u::0:-1: ++%*u::0:-1: ++%u:-123:1:4:4294967173: ++%*u:-123:0:4: ++%u:-1:1:2:4294967295: ++%*u:-1:0:2: ++%u:-0:1:2:0: ++%*u:-0:0:2: ++%u:0:1:1:0: ++%*u:0:0:1: ++%u:1:1:1:1: ++%*u:1:0:1: ++%u:42:1:2:42: ++%*u:42:0:2: ++%u:4294967295:1:10:4294967295: ++%*u:4294967295:0:10: ++%u:4294967296:1:10:0: ++%*u:4294967296:0:10: ++%u:4294971537:1:10:4241: ++%*u:4294971537:0:10: ++%u:+0:1:2:0: ++%*u:+0:0:2: ++%u:+1:1:2:1: ++%*u:+1:0:2: ++%u:+42:1:3:42: ++%*u:+42:0:3: ++%u:+4294967295:1:11:4294967295: ++%*u:+4294967295:0:11: ++%u:+4294967296:1:11:0: ++%*u:+4294967296:0:11: ++%u:+4294971537:1:11:4241: ++%*u:+4294971537:0:11: ++%1u::0:-1: ++%*1u::0:-1: ++%1u:-123:0:-1: ++%*1u:-123:0:-1: ++%1u:-1:0:-1: ++%*1u:-1:0:-1: ++%1u:-0:0:-1: ++%*1u:-0:0:-1: ++%1u:0:1:1:0: ++%*1u:0:0:1: ++%1u:1:1:1:1: ++%*1u:1:0:1: ++%1u:42:1:1:4: ++%*1u:42:0:1: ++%1u:4294967295:1:1:4: ++%*1u:4294967295:0:1: ++%1u:4294967296:1:1:4: ++%*1u:4294967296:0:1: ++%1u:4294971537:1:1:4: ++%*1u:4294971537:0:1: ++%1u:+0:0:-1: ++%*1u:+0:0:-1: ++%1u:+1:0:-1: ++%*1u:+1:0:-1: ++%1u:+42:0:-1: ++%*1u:+42:0:-1: ++%1u:+4294967295:0:-1: ++%*1u:+4294967295:0:-1: ++%1u:+4294967296:0:-1: ++%*1u:+4294967296:0:-1: ++%1u:+4294971537:0:-1: ++%*1u:+4294971537:0:-1: ++%2u::0:-1: ++%*2u::0:-1: ++%2u:-123:1:2:4294967295: ++%*2u:-123:0:2: ++%2u:-1:1:2:4294967295: ++%*2u:-1:0:2: ++%2u:-0:1:2:0: ++%*2u:-0:0:2: ++%2u:0:1:1:0: ++%*2u:0:0:1: ++%2u:1:1:1:1: ++%*2u:1:0:1: ++%2u:42:1:2:42: ++%*2u:42:0:2: ++%2u:4294967295:1:2:42: ++%*2u:4294967295:0:2: ++%2u:4294967296:1:2:42: ++%*2u:4294967296:0:2: ++%2u:4294971537:1:2:42: ++%*2u:4294971537:0:2: ++%2u:+0:1:2:0: ++%*2u:+0:0:2: ++%2u:+1:1:2:1: ++%*2u:+1:0:2: ++%2u:+42:1:2:4: ++%*2u:+42:0:2: ++%2u:+4294967295:1:2:4: ++%*2u:+4294967295:0:2: ++%2u:+4294967296:1:2:4: ++%*2u:+4294967296:0:2: ++%2u:+4294971537:1:2:4: ++%*2u:+4294971537:0:2: ++%8u::0:-1: ++%*8u::0:-1: ++%8u:-123:1:4:4294967173: ++%*8u:-123:0:4: ++%8u:-1:1:2:4294967295: ++%*8u:-1:0:2: ++%8u:-0:1:2:0: ++%*8u:-0:0:2: ++%8u:0:1:1:0: ++%*8u:0:0:1: ++%8u:1:1:1:1: ++%*8u:1:0:1: ++%8u:42:1:2:42: ++%*8u:42:0:2: ++%8u:4294967295:1:8:42949672: ++%*8u:4294967295:0:8: ++%8u:4294967296:1:8:42949672: ++%*8u:4294967296:0:8: ++%8u:4294971537:1:8:42949715: ++%*8u:4294971537:0:8: ++%8u:+0:1:2:0: ++%*8u:+0:0:2: ++%8u:+1:1:2:1: ++%*8u:+1:0:2: ++%8u:+42:1:3:42: ++%*8u:+42:0:3: ++%8u:+4294967295:1:8:4294967: ++%*8u:+4294967295:0:8: ++%8u:+4294967296:1:8:4294967: ++%*8u:+4294967296:0:8: ++%8u:+4294971537:1:8:4294971: ++%*8u:+4294971537:0:8: ++%15u::0:-1: ++%*15u::0:-1: ++%15u:-123:1:4:4294967173: ++%*15u:-123:0:4: ++%15u:-1:1:2:4294967295: ++%*15u:-1:0:2: ++%15u:-0:1:2:0: ++%*15u:-0:0:2: ++%15u:0:1:1:0: ++%*15u:0:0:1: ++%15u:1:1:1:1: ++%*15u:1:0:1: ++%15u:42:1:2:42: ++%*15u:42:0:2: ++%15u:4294967295:1:10:4294967295: ++%*15u:4294967295:0:10: ++%15u:4294967296:1:10:0: ++%*15u:4294967296:0:10: ++%15u:4294971537:1:10:4241: ++%*15u:4294971537:0:10: ++%15u:+0:1:2:0: ++%*15u:+0:0:2: ++%15u:+1:1:2:1: ++%*15u:+1:0:2: ++%15u:+42:1:3:42: ++%*15u:+42:0:3: ++%15u:+4294967295:1:11:4294967295: ++%*15u:+4294967295:0:11: ++%15u:+4294967296:1:11:0: ++%*15u:+4294967296:0:11: ++%15u:+4294971537:1:11:4241: ++%*15u:+4294971537:0:11: ++%2u: :0:-1: ++%*2u: :0:-1: ++%2u: -123:1:3:4294967295: ++%*2u: -123:0:3: ++%2u: -1:1:3:4294967295: ++%*2u: -1:0:3: ++%2u: -0:1:3:0: ++%*2u: -0:0:3: ++%2u: 0:1:2:0: ++%*2u: 0:0:2: ++%2u: 1:1:2:1: ++%*2u: 1:0:2: ++%2u: 42:1:3:42: ++%*2u: 42:0:3: ++%2u: 4294967295:1:3:42: ++%*2u: 4294967295:0:3: ++%2u: 4294967296:1:3:42: ++%*2u: 4294967296:0:3: ++%2u: 4294971537:1:3:42: ++%*2u: 4294971537:0:3: ++%2u: +0:1:3:0: ++%*2u: +0:0:3: ++%2u: +1:1:3:1: ++%*2u: +1:0:3: ++%2u: +42:1:3:4: ++%*2u: +42:0:3: ++%2u: +4294967295:1:3:4: ++%*2u: +4294967295:0:3: ++%2u: +4294967296:1:3:4: ++%*2u: +4294967296:0:3: ++%2u: +4294971537:1:3:4: ++%*2u: +4294971537:0:3: ++%15u: :0:-1: ++%*15u: :0:-1: ++%15u: -123:1:5:4294967173: ++%*15u: -123:0:5: ++%15u: -1:1:3:4294967295: ++%*15u: -1:0:3: ++%15u: -0:1:3:0: ++%*15u: -0:0:3: ++%15u: 0:1:2:0: ++%*15u: 0:0:2: ++%15u: 1:1:2:1: ++%*15u: 1:0:2: ++%15u: 42:1:3:42: ++%*15u: 42:0:3: ++%15u: 4294967295:1:11:4294967295: ++%*15u: 4294967295:0:11: ++%15u: 4294967296:1:11:0: ++%*15u: 4294967296:0:11: ++%15u: 4294971537:1:11:4241: ++%*15u: 4294971537:0:11: ++%15u: +0:1:3:0: ++%*15u: +0:0:3: ++%15u: +1:1:3:1: ++%*15u: +1:0:3: ++%15u: +42:1:4:42: ++%*15u: +42:0:4: ++%15u: +4294967295:1:12:4294967295: ++%*15u: +4294967295:0:12: ++%15u: +4294967296:1:12:0: ++%*15u: +4294967296:0:12: ++%15u: +4294971537:1:12:4241: ++%*15u: +4294971537:0:12: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-uint-x.input b/sysdeps/wordsize-64/tst-scanf-format-uint-x.input +new file mode 100644 +index 0000000000000000..31fb4a8287eff2fb +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-uint-x.input +@@ -0,0 +1,714 @@ ++%x::0:-1: ++%*x::0:-1: ++%x:-7b:1:3:4294967173: ++%*x:-7b:0:3: ++%x:-7B:1:3:4294967173: ++%*x:-7B:0:3: ++%x:-0X7b:1:5:4294967173: ++%*x:-0X7b:0:5: ++%x:-0x7B:1:5:4294967173: ++%*x:-0x7B:0:5: ++%x:-1:1:2:4294967295: ++%*x:-1:0:2: ++%x:-0X1:1:4:4294967295: ++%*x:-0X1:0:4: ++%x:-0x1:1:4:4294967295: ++%*x:-0x1:0:4: ++%x:-0:1:2:0: ++%*x:-0:0:2: ++%x:-0X0:1:4:0: ++%*x:-0X0:0:4: ++%x:-0x0:1:4:0: ++%*x:-0x0:0:4: ++%x:0:1:1:0: ++%*x:0:0:1: ++%x:0X0:1:3:0: ++%*x:0X0:0:3: ++%x:0x0:1:3:0: ++%*x:0x0:0:3: ++%x:1:1:1:1: ++%*x:1:0:1: ++%x:0X1:1:3:1: ++%*x:0X1:0:3: ++%x:0x1:1:3:1: ++%*x:0x1:0:3: ++%x:2a:1:2:42: ++%*x:2a:0:2: ++%x:2A:1:2:42: ++%*x:2A:0:2: ++%x:0X2a:1:4:42: ++%*x:0X2a:0:4: ++%x:0x2A:1:4:42: ++%*x:0x2A:0:4: ++%x:ffffffff:1:8:4294967295: ++%*x:ffffffff:0:8: ++%x:FFFFFFFF:1:8:4294967295: ++%*x:FFFFFFFF:0:8: ++%x:0Xffffffff:1:10:4294967295: ++%*x:0Xffffffff:0:10: ++%x:0xFFFFFFFF:1:10:4294967295: ++%*x:0xFFFFFFFF:0:10: ++%x:100000000:1:9:0: ++%*x:100000000:0:9: ++%x:0X100000000:1:11:0: ++%*x:0X100000000:0:11: ++%x:0x100000000:1:11:0: ++%*x:0x100000000:0:11: ++%x:100001091:1:9:4241: ++%*x:100001091:0:9: ++%x:0X100001091:1:11:4241: ++%*x:0X100001091:0:11: ++%x:0x100001091:1:11:4241: ++%*x:0x100001091:0:11: ++%x:+0:1:2:0: ++%*x:+0:0:2: ++%x:+0X0:1:4:0: ++%*x:+0X0:0:4: ++%x:+0x0:1:4:0: ++%*x:+0x0:0:4: ++%x:+1:1:2:1: ++%*x:+1:0:2: ++%x:+0X1:1:4:1: ++%*x:+0X1:0:4: ++%x:+0x1:1:4:1: ++%*x:+0x1:0:4: ++%x:+2a:1:3:42: ++%*x:+2a:0:3: ++%x:+2A:1:3:42: ++%*x:+2A:0:3: ++%x:+0X2a:1:5:42: ++%*x:+0X2a:0:5: ++%x:+0x2A:1:5:42: ++%*x:+0x2A:0:5: ++%x:+ffffffff:1:9:4294967295: ++%*x:+ffffffff:0:9: ++%x:+FFFFFFFF:1:9:4294967295: ++%*x:+FFFFFFFF:0:9: ++%x:+0Xffffffff:1:11:4294967295: ++%*x:+0Xffffffff:0:11: ++%x:+0xFFFFFFFF:1:11:4294967295: ++%*x:+0xFFFFFFFF:0:11: ++%x:+100000000:1:10:0: ++%*x:+100000000:0:10: ++%x:+0X100000000:1:12:0: ++%*x:+0X100000000:0:12: ++%x:+0x100000000:1:12:0: ++%*x:+0x100000000:0:12: ++%x:+100001091:1:10:4241: ++%*x:+100001091:0:10: ++%x:+0X100001091:1:12:4241: ++%*x:+0X100001091:0:12: ++%x:+0x100001091:1:12:4241: ++%*x:+0x100001091:0:12: ++%1x::0:-1: ++%*1x::0:-1: ++%1x:-7b:0:-1: ++%*1x:-7b:0:-1: ++%1x:-7B:0:-1: ++%*1x:-7B:0:-1: ++%1x:-0X7b:0:-1: ++%*1x:-0X7b:0:-1: ++%1x:-0x7B:0:-1: ++%*1x:-0x7B:0:-1: ++%1x:-1:0:-1: ++%*1x:-1:0:-1: ++%1x:-0X1:0:-1: ++%*1x:-0X1:0:-1: ++%1x:-0x1:0:-1: ++%*1x:-0x1:0:-1: ++%1x:-0:0:-1: ++%*1x:-0:0:-1: ++%1x:-0X0:0:-1: ++%*1x:-0X0:0:-1: ++%1x:-0x0:0:-1: ++%*1x:-0x0:0:-1: ++%1x:0:1:1:0: ++%*1x:0:0:1: ++%1x:0X0:1:1:0: ++%*1x:0X0:0:1: ++%1x:0x0:1:1:0: ++%*1x:0x0:0:1: ++%1x:1:1:1:1: ++%*1x:1:0:1: ++%1x:0X1:1:1:0: ++%*1x:0X1:0:1: ++%1x:0x1:1:1:0: ++%*1x:0x1:0:1: ++%1x:2a:1:1:2: ++%*1x:2a:0:1: ++%1x:2A:1:1:2: ++%*1x:2A:0:1: ++%1x:0X2a:1:1:0: ++%*1x:0X2a:0:1: ++%1x:0x2A:1:1:0: ++%*1x:0x2A:0:1: ++%1x:ffffffff:1:1:15: ++%*1x:ffffffff:0:1: ++%1x:FFFFFFFF:1:1:15: ++%*1x:FFFFFFFF:0:1: ++%1x:0Xffffffff:1:1:0: ++%*1x:0Xffffffff:0:1: ++%1x:0xFFFFFFFF:1:1:0: ++%*1x:0xFFFFFFFF:0:1: ++%1x:100000000:1:1:1: ++%*1x:100000000:0:1: ++%1x:0X100000000:1:1:0: ++%*1x:0X100000000:0:1: ++%1x:0x100000000:1:1:0: ++%*1x:0x100000000:0:1: ++%1x:100001091:1:1:1: ++%*1x:100001091:0:1: ++%1x:0X100001091:1:1:0: ++%*1x:0X100001091:0:1: ++%1x:0x100001091:1:1:0: ++%*1x:0x100001091:0:1: ++%1x:+0:0:-1: ++%*1x:+0:0:-1: ++%1x:+0X0:0:-1: ++%*1x:+0X0:0:-1: ++%1x:+0x0:0:-1: ++%*1x:+0x0:0:-1: ++%1x:+1:0:-1: ++%*1x:+1:0:-1: ++%1x:+0X1:0:-1: ++%*1x:+0X1:0:-1: ++%1x:+0x1:0:-1: ++%*1x:+0x1:0:-1: ++%1x:+2a:0:-1: ++%*1x:+2a:0:-1: ++%1x:+2A:0:-1: ++%*1x:+2A:0:-1: ++%1x:+0X2a:0:-1: ++%*1x:+0X2a:0:-1: ++%1x:+0x2A:0:-1: ++%*1x:+0x2A:0:-1: ++%1x:+ffffffff:0:-1: ++%*1x:+ffffffff:0:-1: ++%1x:+FFFFFFFF:0:-1: ++%*1x:+FFFFFFFF:0:-1: ++%1x:+0Xffffffff:0:-1: ++%*1x:+0Xffffffff:0:-1: ++%1x:+0xFFFFFFFF:0:-1: ++%*1x:+0xFFFFFFFF:0:-1: ++%1x:+100000000:0:-1: ++%*1x:+100000000:0:-1: ++%1x:+0X100000000:0:-1: ++%*1x:+0X100000000:0:-1: ++%1x:+0x100000000:0:-1: ++%*1x:+0x100000000:0:-1: ++%1x:+100001091:0:-1: ++%*1x:+100001091:0:-1: ++%1x:+0X100001091:0:-1: ++%*1x:+0X100001091:0:-1: ++%1x:+0x100001091:0:-1: ++%*1x:+0x100001091:0:-1: ++%2x::0:-1: ++%*2x::0:-1: ++%2x:-7b:1:2:4294967289: ++%*2x:-7b:0:2: ++%2x:-7B:1:2:4294967289: ++%*2x:-7B:0:2: ++%2x:-0X7b:1:2:0: ++%*2x:-0X7b:0:2: ++%2x:-0x7B:1:2:0: ++%*2x:-0x7B:0:2: ++%2x:-1:1:2:4294967295: ++%*2x:-1:0:2: ++%2x:-0X1:1:2:0: ++%*2x:-0X1:0:2: ++%2x:-0x1:1:2:0: ++%*2x:-0x1:0:2: ++%2x:-0:1:2:0: ++%*2x:-0:0:2: ++%2x:-0X0:1:2:0: ++%*2x:-0X0:0:2: ++%2x:-0x0:1:2:0: ++%*2x:-0x0:0:2: ++%2x:0:1:1:0: ++%*2x:0:0:1: ++# BZ12701 %2x:0X0:0:-1: ++# BZ12701 %*2x:0X0:0:-1: ++# BZ12701 %2x:0x0:0:-1: ++# BZ12701 %*2x:0x0:0:-1: ++%2x:1:1:1:1: ++%*2x:1:0:1: ++# BZ12701 %2x:0X1:0:-1: ++# BZ12701 %*2x:0X1:0:-1: ++# BZ12701 %2x:0x1:0:-1: ++# BZ12701 %*2x:0x1:0:-1: ++%2x:2a:1:2:42: ++%*2x:2a:0:2: ++%2x:2A:1:2:42: ++%*2x:2A:0:2: ++# BZ12701 %2x:0X2a:0:-1: ++# BZ12701 %*2x:0X2a:0:-1: ++# BZ12701 %2x:0x2A:0:-1: ++# BZ12701 %*2x:0x2A:0:-1: ++%2x:ffffffff:1:2:255: ++%*2x:ffffffff:0:2: ++%2x:FFFFFFFF:1:2:255: ++%*2x:FFFFFFFF:0:2: ++# BZ12701 %2x:0Xffffffff:0:-1: ++# BZ12701 %*2x:0Xffffffff:0:-1: ++# BZ12701 %2x:0xFFFFFFFF:0:-1: ++# BZ12701 %*2x:0xFFFFFFFF:0:-1: ++%2x:100000000:1:2:16: ++%*2x:100000000:0:2: ++# BZ12701 %2x:0X100000000:0:-1: ++# BZ12701 %*2x:0X100000000:0:-1: ++# BZ12701 %2x:0x100000000:0:-1: ++# BZ12701 %*2x:0x100000000:0:-1: ++%2x:100001091:1:2:16: ++%*2x:100001091:0:2: ++# BZ12701 %2x:0X100001091:0:-1: ++# BZ12701 %*2x:0X100001091:0:-1: ++# BZ12701 %2x:0x100001091:0:-1: ++# BZ12701 %*2x:0x100001091:0:-1: ++%2x:+0:1:2:0: ++%*2x:+0:0:2: ++%2x:+0X0:1:2:0: ++%*2x:+0X0:0:2: ++%2x:+0x0:1:2:0: ++%*2x:+0x0:0:2: ++%2x:+1:1:2:1: ++%*2x:+1:0:2: ++%2x:+0X1:1:2:0: ++%*2x:+0X1:0:2: ++%2x:+0x1:1:2:0: ++%*2x:+0x1:0:2: ++%2x:+2a:1:2:2: ++%*2x:+2a:0:2: ++%2x:+2A:1:2:2: ++%*2x:+2A:0:2: ++%2x:+0X2a:1:2:0: ++%*2x:+0X2a:0:2: ++%2x:+0x2A:1:2:0: ++%*2x:+0x2A:0:2: ++%2x:+ffffffff:1:2:15: ++%*2x:+ffffffff:0:2: ++%2x:+FFFFFFFF:1:2:15: ++%*2x:+FFFFFFFF:0:2: ++%2x:+0Xffffffff:1:2:0: ++%*2x:+0Xffffffff:0:2: ++%2x:+0xFFFFFFFF:1:2:0: ++%*2x:+0xFFFFFFFF:0:2: ++%2x:+100000000:1:2:1: ++%*2x:+100000000:0:2: ++%2x:+0X100000000:1:2:0: ++%*2x:+0X100000000:0:2: ++%2x:+0x100000000:1:2:0: ++%*2x:+0x100000000:0:2: ++%2x:+100001091:1:2:1: ++%*2x:+100001091:0:2: ++%2x:+0X100001091:1:2:0: ++%*2x:+0X100001091:0:2: ++%2x:+0x100001091:1:2:0: ++%*2x:+0x100001091:0:2: ++%8x::0:-1: ++%*8x::0:-1: ++%8x:-7b:1:3:4294967173: ++%*8x:-7b:0:3: ++%8x:-7B:1:3:4294967173: ++%*8x:-7B:0:3: ++%8x:-0X7b:1:5:4294967173: ++%*8x:-0X7b:0:5: ++%8x:-0x7B:1:5:4294967173: ++%*8x:-0x7B:0:5: ++%8x:-1:1:2:4294967295: ++%*8x:-1:0:2: ++%8x:-0X1:1:4:4294967295: ++%*8x:-0X1:0:4: ++%8x:-0x1:1:4:4294967295: ++%*8x:-0x1:0:4: ++%8x:-0:1:2:0: ++%*8x:-0:0:2: ++%8x:-0X0:1:4:0: ++%*8x:-0X0:0:4: ++%8x:-0x0:1:4:0: ++%*8x:-0x0:0:4: ++%8x:0:1:1:0: ++%*8x:0:0:1: ++%8x:0X0:1:3:0: ++%*8x:0X0:0:3: ++%8x:0x0:1:3:0: ++%*8x:0x0:0:3: ++%8x:1:1:1:1: ++%*8x:1:0:1: ++%8x:0X1:1:3:1: ++%*8x:0X1:0:3: ++%8x:0x1:1:3:1: ++%*8x:0x1:0:3: ++%8x:2a:1:2:42: ++%*8x:2a:0:2: ++%8x:2A:1:2:42: ++%*8x:2A:0:2: ++%8x:0X2a:1:4:42: ++%*8x:0X2a:0:4: ++%8x:0x2A:1:4:42: ++%*8x:0x2A:0:4: ++%8x:ffffffff:1:8:4294967295: ++%*8x:ffffffff:0:8: ++%8x:FFFFFFFF:1:8:4294967295: ++%*8x:FFFFFFFF:0:8: ++%8x:0Xffffffff:1:8:16777215: ++%*8x:0Xffffffff:0:8: ++%8x:0xFFFFFFFF:1:8:16777215: ++%*8x:0xFFFFFFFF:0:8: ++%8x:100000000:1:8:268435456: ++%*8x:100000000:0:8: ++%8x:0X100000000:1:8:1048576: ++%*8x:0X100000000:0:8: ++%8x:0x100000000:1:8:1048576: ++%*8x:0x100000000:0:8: ++%8x:100001091:1:8:268435721: ++%*8x:100001091:0:8: ++%8x:0X100001091:1:8:1048577: ++%*8x:0X100001091:0:8: ++%8x:0x100001091:1:8:1048577: ++%*8x:0x100001091:0:8: ++%8x:+0:1:2:0: ++%*8x:+0:0:2: ++%8x:+0X0:1:4:0: ++%*8x:+0X0:0:4: ++%8x:+0x0:1:4:0: ++%*8x:+0x0:0:4: ++%8x:+1:1:2:1: ++%*8x:+1:0:2: ++%8x:+0X1:1:4:1: ++%*8x:+0X1:0:4: ++%8x:+0x1:1:4:1: ++%*8x:+0x1:0:4: ++%8x:+2a:1:3:42: ++%*8x:+2a:0:3: ++%8x:+2A:1:3:42: ++%*8x:+2A:0:3: ++%8x:+0X2a:1:5:42: ++%*8x:+0X2a:0:5: ++%8x:+0x2A:1:5:42: ++%*8x:+0x2A:0:5: ++%8x:+ffffffff:1:8:268435455: ++%*8x:+ffffffff:0:8: ++%8x:+FFFFFFFF:1:8:268435455: ++%*8x:+FFFFFFFF:0:8: ++%8x:+0Xffffffff:1:8:1048575: ++%*8x:+0Xffffffff:0:8: ++%8x:+0xFFFFFFFF:1:8:1048575: ++%*8x:+0xFFFFFFFF:0:8: ++%8x:+100000000:1:8:16777216: ++%*8x:+100000000:0:8: ++%8x:+0X100000000:1:8:65536: ++%*8x:+0X100000000:0:8: ++%8x:+0x100000000:1:8:65536: ++%*8x:+0x100000000:0:8: ++%8x:+100001091:1:8:16777232: ++%*8x:+100001091:0:8: ++%8x:+0X100001091:1:8:65536: ++%*8x:+0X100001091:0:8: ++%8x:+0x100001091:1:8:65536: ++%*8x:+0x100001091:0:8: ++%15x::0:-1: ++%*15x::0:-1: ++%15x:-7b:1:3:4294967173: ++%*15x:-7b:0:3: ++%15x:-7B:1:3:4294967173: ++%*15x:-7B:0:3: ++%15x:-0X7b:1:5:4294967173: ++%*15x:-0X7b:0:5: ++%15x:-0x7B:1:5:4294967173: ++%*15x:-0x7B:0:5: ++%15x:-1:1:2:4294967295: ++%*15x:-1:0:2: ++%15x:-0X1:1:4:4294967295: ++%*15x:-0X1:0:4: ++%15x:-0x1:1:4:4294967295: ++%*15x:-0x1:0:4: ++%15x:-0:1:2:0: ++%*15x:-0:0:2: ++%15x:-0X0:1:4:0: ++%*15x:-0X0:0:4: ++%15x:-0x0:1:4:0: ++%*15x:-0x0:0:4: ++%15x:0:1:1:0: ++%*15x:0:0:1: ++%15x:0X0:1:3:0: ++%*15x:0X0:0:3: ++%15x:0x0:1:3:0: ++%*15x:0x0:0:3: ++%15x:1:1:1:1: ++%*15x:1:0:1: ++%15x:0X1:1:3:1: ++%*15x:0X1:0:3: ++%15x:0x1:1:3:1: ++%*15x:0x1:0:3: ++%15x:2a:1:2:42: ++%*15x:2a:0:2: ++%15x:2A:1:2:42: ++%*15x:2A:0:2: ++%15x:0X2a:1:4:42: ++%*15x:0X2a:0:4: ++%15x:0x2A:1:4:42: ++%*15x:0x2A:0:4: ++%15x:ffffffff:1:8:4294967295: ++%*15x:ffffffff:0:8: ++%15x:FFFFFFFF:1:8:4294967295: ++%*15x:FFFFFFFF:0:8: ++%15x:0Xffffffff:1:10:4294967295: ++%*15x:0Xffffffff:0:10: ++%15x:0xFFFFFFFF:1:10:4294967295: ++%*15x:0xFFFFFFFF:0:10: ++%15x:100000000:1:9:0: ++%*15x:100000000:0:9: ++%15x:0X100000000:1:11:0: ++%*15x:0X100000000:0:11: ++%15x:0x100000000:1:11:0: ++%*15x:0x100000000:0:11: ++%15x:100001091:1:9:4241: ++%*15x:100001091:0:9: ++%15x:0X100001091:1:11:4241: ++%*15x:0X100001091:0:11: ++%15x:0x100001091:1:11:4241: ++%*15x:0x100001091:0:11: ++%15x:+0:1:2:0: ++%*15x:+0:0:2: ++%15x:+0X0:1:4:0: ++%*15x:+0X0:0:4: ++%15x:+0x0:1:4:0: ++%*15x:+0x0:0:4: ++%15x:+1:1:2:1: ++%*15x:+1:0:2: ++%15x:+0X1:1:4:1: ++%*15x:+0X1:0:4: ++%15x:+0x1:1:4:1: ++%*15x:+0x1:0:4: ++%15x:+2a:1:3:42: ++%*15x:+2a:0:3: ++%15x:+2A:1:3:42: ++%*15x:+2A:0:3: ++%15x:+0X2a:1:5:42: ++%*15x:+0X2a:0:5: ++%15x:+0x2A:1:5:42: ++%*15x:+0x2A:0:5: ++%15x:+ffffffff:1:9:4294967295: ++%*15x:+ffffffff:0:9: ++%15x:+FFFFFFFF:1:9:4294967295: ++%*15x:+FFFFFFFF:0:9: ++%15x:+0Xffffffff:1:11:4294967295: ++%*15x:+0Xffffffff:0:11: ++%15x:+0xFFFFFFFF:1:11:4294967295: ++%*15x:+0xFFFFFFFF:0:11: ++%15x:+100000000:1:10:0: ++%*15x:+100000000:0:10: ++%15x:+0X100000000:1:12:0: ++%*15x:+0X100000000:0:12: ++%15x:+0x100000000:1:12:0: ++%*15x:+0x100000000:0:12: ++%15x:+100001091:1:10:4241: ++%*15x:+100001091:0:10: ++%15x:+0X100001091:1:12:4241: ++%*15x:+0X100001091:0:12: ++%15x:+0x100001091:1:12:4241: ++%*15x:+0x100001091:0:12: ++%2x: :0:-1: ++%*2x: :0:-1: ++%2x: -7b:1:3:4294967289: ++%*2x: -7b:0:3: ++%2x: -7B:1:3:4294967289: ++%*2x: -7B:0:3: ++%2x: -0X7b:1:3:0: ++%*2x: -0X7b:0:3: ++%2x: -0x7B:1:3:0: ++%*2x: -0x7B:0:3: ++%2x: -1:1:3:4294967295: ++%*2x: -1:0:3: ++%2x: -0X1:1:3:0: ++%*2x: -0X1:0:3: ++%2x: -0x1:1:3:0: ++%*2x: -0x1:0:3: ++%2x: -0:1:3:0: ++%*2x: -0:0:3: ++%2x: -0X0:1:3:0: ++%*2x: -0X0:0:3: ++%2x: -0x0:1:3:0: ++%*2x: -0x0:0:3: ++%2x: 0:1:2:0: ++%*2x: 0:0:2: ++# BZ12701 %2x: 0X0:0:-1: ++# BZ12701 %*2x: 0X0:0:-1: ++# BZ12701 %2x: 0x0:0:-1: ++# BZ12701 %*2x: 0x0:0:-1: ++%2x: 1:1:2:1: ++%*2x: 1:0:2: ++# BZ12701 %2x: 0X1:0:-1: ++# BZ12701 %*2x: 0X1:0:-1: ++# BZ12701 %2x: 0x1:0:-1: ++# BZ12701 %*2x: 0x1:0:-1: ++%2x: 2a:1:3:42: ++%*2x: 2a:0:3: ++%2x: 2A:1:3:42: ++%*2x: 2A:0:3: ++# BZ12701 %2x: 0X2a:0:-1: ++# BZ12701 %*2x: 0X2a:0:-1: ++# BZ12701 %2x: 0x2A:0:-1: ++# BZ12701 %*2x: 0x2A:0:-1: ++%2x: ffffffff:1:3:255: ++%*2x: ffffffff:0:3: ++%2x: FFFFFFFF:1:3:255: ++%*2x: FFFFFFFF:0:3: ++# BZ12701 %2x: 0Xffffffff:0:-1: ++# BZ12701 %*2x: 0Xffffffff:0:-1: ++# BZ12701 %2x: 0xFFFFFFFF:0:-1: ++# BZ12701 %*2x: 0xFFFFFFFF:0:-1: ++%2x: 100000000:1:3:16: ++%*2x: 100000000:0:3: ++# BZ12701 %2x: 0X100000000:0:-1: ++# BZ12701 %*2x: 0X100000000:0:-1: ++# BZ12701 %2x: 0x100000000:0:-1: ++# BZ12701 %*2x: 0x100000000:0:-1: ++%2x: 100001091:1:3:16: ++%*2x: 100001091:0:3: ++# BZ12701 %2x: 0X100001091:0:-1: ++# BZ12701 %*2x: 0X100001091:0:-1: ++# BZ12701 %2x: 0x100001091:0:-1: ++# BZ12701 %*2x: 0x100001091:0:-1: ++%2x: +0:1:3:0: ++%*2x: +0:0:3: ++%2x: +0X0:1:3:0: ++%*2x: +0X0:0:3: ++%2x: +0x0:1:3:0: ++%*2x: +0x0:0:3: ++%2x: +1:1:3:1: ++%*2x: +1:0:3: ++%2x: +0X1:1:3:0: ++%*2x: +0X1:0:3: ++%2x: +0x1:1:3:0: ++%*2x: +0x1:0:3: ++%2x: +2a:1:3:2: ++%*2x: +2a:0:3: ++%2x: +2A:1:3:2: ++%*2x: +2A:0:3: ++%2x: +0X2a:1:3:0: ++%*2x: +0X2a:0:3: ++%2x: +0x2A:1:3:0: ++%*2x: +0x2A:0:3: ++%2x: +ffffffff:1:3:15: ++%*2x: +ffffffff:0:3: ++%2x: +FFFFFFFF:1:3:15: ++%*2x: +FFFFFFFF:0:3: ++%2x: +0Xffffffff:1:3:0: ++%*2x: +0Xffffffff:0:3: ++%2x: +0xFFFFFFFF:1:3:0: ++%*2x: +0xFFFFFFFF:0:3: ++%2x: +100000000:1:3:1: ++%*2x: +100000000:0:3: ++%2x: +0X100000000:1:3:0: ++%*2x: +0X100000000:0:3: ++%2x: +0x100000000:1:3:0: ++%*2x: +0x100000000:0:3: ++%2x: +100001091:1:3:1: ++%*2x: +100001091:0:3: ++%2x: +0X100001091:1:3:0: ++%*2x: +0X100001091:0:3: ++%2x: +0x100001091:1:3:0: ++%*2x: +0x100001091:0:3: ++%15x: :0:-1: ++%*15x: :0:-1: ++%15x: -7b:1:4:4294967173: ++%*15x: -7b:0:4: ++%15x: -7B:1:4:4294967173: ++%*15x: -7B:0:4: ++%15x: -0X7b:1:6:4294967173: ++%*15x: -0X7b:0:6: ++%15x: -0x7B:1:6:4294967173: ++%*15x: -0x7B:0:6: ++%15x: -1:1:3:4294967295: ++%*15x: -1:0:3: ++%15x: -0X1:1:5:4294967295: ++%*15x: -0X1:0:5: ++%15x: -0x1:1:5:4294967295: ++%*15x: -0x1:0:5: ++%15x: -0:1:3:0: ++%*15x: -0:0:3: ++%15x: -0X0:1:5:0: ++%*15x: -0X0:0:5: ++%15x: -0x0:1:5:0: ++%*15x: -0x0:0:5: ++%15x: 0:1:2:0: ++%*15x: 0:0:2: ++%15x: 0X0:1:4:0: ++%*15x: 0X0:0:4: ++%15x: 0x0:1:4:0: ++%*15x: 0x0:0:4: ++%15x: 1:1:2:1: ++%*15x: 1:0:2: ++%15x: 0X1:1:4:1: ++%*15x: 0X1:0:4: ++%15x: 0x1:1:4:1: ++%*15x: 0x1:0:4: ++%15x: 2a:1:3:42: ++%*15x: 2a:0:3: ++%15x: 2A:1:3:42: ++%*15x: 2A:0:3: ++%15x: 0X2a:1:5:42: ++%*15x: 0X2a:0:5: ++%15x: 0x2A:1:5:42: ++%*15x: 0x2A:0:5: ++%15x: ffffffff:1:9:4294967295: ++%*15x: ffffffff:0:9: ++%15x: FFFFFFFF:1:9:4294967295: ++%*15x: FFFFFFFF:0:9: ++%15x: 0Xffffffff:1:11:4294967295: ++%*15x: 0Xffffffff:0:11: ++%15x: 0xFFFFFFFF:1:11:4294967295: ++%*15x: 0xFFFFFFFF:0:11: ++%15x: 100000000:1:10:0: ++%*15x: 100000000:0:10: ++%15x: 0X100000000:1:12:0: ++%*15x: 0X100000000:0:12: ++%15x: 0x100000000:1:12:0: ++%*15x: 0x100000000:0:12: ++%15x: 100001091:1:10:4241: ++%*15x: 100001091:0:10: ++%15x: 0X100001091:1:12:4241: ++%*15x: 0X100001091:0:12: ++%15x: 0x100001091:1:12:4241: ++%*15x: 0x100001091:0:12: ++%15x: +0:1:3:0: ++%*15x: +0:0:3: ++%15x: +0X0:1:5:0: ++%*15x: +0X0:0:5: ++%15x: +0x0:1:5:0: ++%*15x: +0x0:0:5: ++%15x: +1:1:3:1: ++%*15x: +1:0:3: ++%15x: +0X1:1:5:1: ++%*15x: +0X1:0:5: ++%15x: +0x1:1:5:1: ++%*15x: +0x1:0:5: ++%15x: +2a:1:4:42: ++%*15x: +2a:0:4: ++%15x: +2A:1:4:42: ++%*15x: +2A:0:4: ++%15x: +0X2a:1:6:42: ++%*15x: +0X2a:0:6: ++%15x: +0x2A:1:6:42: ++%*15x: +0x2A:0:6: ++%15x: +ffffffff:1:10:4294967295: ++%*15x: +ffffffff:0:10: ++%15x: +FFFFFFFF:1:10:4294967295: ++%*15x: +FFFFFFFF:0:10: ++%15x: +0Xffffffff:1:12:4294967295: ++%*15x: +0Xffffffff:0:12: ++%15x: +0xFFFFFFFF:1:12:4294967295: ++%*15x: +0xFFFFFFFF:0:12: ++%15x: +100000000:1:11:0: ++%*15x: +100000000:0:11: ++%15x: +0X100000000:1:13:0: ++%*15x: +0X100000000:0:13: ++%15x: +0x100000000:1:13:0: ++%*15x: +0x100000000:0:13: ++%15x: +100001091:1:11:4241: ++%*15x: +100001091:0:11: ++%15x: +0X100001091:1:13:4241: ++%*15x: +0X100001091:0:13: ++%15x: +0x100001091:1:13:4241: ++%*15x: +0x100001091:0:13: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-uint-xx.input b/sysdeps/wordsize-64/tst-scanf-format-uint-xx.input +new file mode 100644 +index 0000000000000000..d4aa7b0c7ac5ca36 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-uint-xx.input +@@ -0,0 +1,714 @@ ++%X::0:-1: ++%*X::0:-1: ++%X:-7b:1:3:4294967173: ++%*X:-7b:0:3: ++%X:-7B:1:3:4294967173: ++%*X:-7B:0:3: ++%X:-0X7b:1:5:4294967173: ++%*X:-0X7b:0:5: ++%X:-0x7B:1:5:4294967173: ++%*X:-0x7B:0:5: ++%X:-1:1:2:4294967295: ++%*X:-1:0:2: ++%X:-0X1:1:4:4294967295: ++%*X:-0X1:0:4: ++%X:-0x1:1:4:4294967295: ++%*X:-0x1:0:4: ++%X:-0:1:2:0: ++%*X:-0:0:2: ++%X:-0X0:1:4:0: ++%*X:-0X0:0:4: ++%X:-0x0:1:4:0: ++%*X:-0x0:0:4: ++%X:0:1:1:0: ++%*X:0:0:1: ++%X:0X0:1:3:0: ++%*X:0X0:0:3: ++%X:0x0:1:3:0: ++%*X:0x0:0:3: ++%X:1:1:1:1: ++%*X:1:0:1: ++%X:0X1:1:3:1: ++%*X:0X1:0:3: ++%X:0x1:1:3:1: ++%*X:0x1:0:3: ++%X:2a:1:2:42: ++%*X:2a:0:2: ++%X:2A:1:2:42: ++%*X:2A:0:2: ++%X:0X2a:1:4:42: ++%*X:0X2a:0:4: ++%X:0x2A:1:4:42: ++%*X:0x2A:0:4: ++%X:ffffffff:1:8:4294967295: ++%*X:ffffffff:0:8: ++%X:FFFFFFFF:1:8:4294967295: ++%*X:FFFFFFFF:0:8: ++%X:0Xffffffff:1:10:4294967295: ++%*X:0Xffffffff:0:10: ++%X:0xFFFFFFFF:1:10:4294967295: ++%*X:0xFFFFFFFF:0:10: ++%X:100000000:1:9:0: ++%*X:100000000:0:9: ++%X:0X100000000:1:11:0: ++%*X:0X100000000:0:11: ++%X:0x100000000:1:11:0: ++%*X:0x100000000:0:11: ++%X:100001091:1:9:4241: ++%*X:100001091:0:9: ++%X:0X100001091:1:11:4241: ++%*X:0X100001091:0:11: ++%X:0x100001091:1:11:4241: ++%*X:0x100001091:0:11: ++%X:+0:1:2:0: ++%*X:+0:0:2: ++%X:+0X0:1:4:0: ++%*X:+0X0:0:4: ++%X:+0x0:1:4:0: ++%*X:+0x0:0:4: ++%X:+1:1:2:1: ++%*X:+1:0:2: ++%X:+0X1:1:4:1: ++%*X:+0X1:0:4: ++%X:+0x1:1:4:1: ++%*X:+0x1:0:4: ++%X:+2a:1:3:42: ++%*X:+2a:0:3: ++%X:+2A:1:3:42: ++%*X:+2A:0:3: ++%X:+0X2a:1:5:42: ++%*X:+0X2a:0:5: ++%X:+0x2A:1:5:42: ++%*X:+0x2A:0:5: ++%X:+ffffffff:1:9:4294967295: ++%*X:+ffffffff:0:9: ++%X:+FFFFFFFF:1:9:4294967295: ++%*X:+FFFFFFFF:0:9: ++%X:+0Xffffffff:1:11:4294967295: ++%*X:+0Xffffffff:0:11: ++%X:+0xFFFFFFFF:1:11:4294967295: ++%*X:+0xFFFFFFFF:0:11: ++%X:+100000000:1:10:0: ++%*X:+100000000:0:10: ++%X:+0X100000000:1:12:0: ++%*X:+0X100000000:0:12: ++%X:+0x100000000:1:12:0: ++%*X:+0x100000000:0:12: ++%X:+100001091:1:10:4241: ++%*X:+100001091:0:10: ++%X:+0X100001091:1:12:4241: ++%*X:+0X100001091:0:12: ++%X:+0x100001091:1:12:4241: ++%*X:+0x100001091:0:12: ++%1X::0:-1: ++%*1X::0:-1: ++%1X:-7b:0:-1: ++%*1X:-7b:0:-1: ++%1X:-7B:0:-1: ++%*1X:-7B:0:-1: ++%1X:-0X7b:0:-1: ++%*1X:-0X7b:0:-1: ++%1X:-0x7B:0:-1: ++%*1X:-0x7B:0:-1: ++%1X:-1:0:-1: ++%*1X:-1:0:-1: ++%1X:-0X1:0:-1: ++%*1X:-0X1:0:-1: ++%1X:-0x1:0:-1: ++%*1X:-0x1:0:-1: ++%1X:-0:0:-1: ++%*1X:-0:0:-1: ++%1X:-0X0:0:-1: ++%*1X:-0X0:0:-1: ++%1X:-0x0:0:-1: ++%*1X:-0x0:0:-1: ++%1X:0:1:1:0: ++%*1X:0:0:1: ++%1X:0X0:1:1:0: ++%*1X:0X0:0:1: ++%1X:0x0:1:1:0: ++%*1X:0x0:0:1: ++%1X:1:1:1:1: ++%*1X:1:0:1: ++%1X:0X1:1:1:0: ++%*1X:0X1:0:1: ++%1X:0x1:1:1:0: ++%*1X:0x1:0:1: ++%1X:2a:1:1:2: ++%*1X:2a:0:1: ++%1X:2A:1:1:2: ++%*1X:2A:0:1: ++%1X:0X2a:1:1:0: ++%*1X:0X2a:0:1: ++%1X:0x2A:1:1:0: ++%*1X:0x2A:0:1: ++%1X:ffffffff:1:1:15: ++%*1X:ffffffff:0:1: ++%1X:FFFFFFFF:1:1:15: ++%*1X:FFFFFFFF:0:1: ++%1X:0Xffffffff:1:1:0: ++%*1X:0Xffffffff:0:1: ++%1X:0xFFFFFFFF:1:1:0: ++%*1X:0xFFFFFFFF:0:1: ++%1X:100000000:1:1:1: ++%*1X:100000000:0:1: ++%1X:0X100000000:1:1:0: ++%*1X:0X100000000:0:1: ++%1X:0x100000000:1:1:0: ++%*1X:0x100000000:0:1: ++%1X:100001091:1:1:1: ++%*1X:100001091:0:1: ++%1X:0X100001091:1:1:0: ++%*1X:0X100001091:0:1: ++%1X:0x100001091:1:1:0: ++%*1X:0x100001091:0:1: ++%1X:+0:0:-1: ++%*1X:+0:0:-1: ++%1X:+0X0:0:-1: ++%*1X:+0X0:0:-1: ++%1X:+0x0:0:-1: ++%*1X:+0x0:0:-1: ++%1X:+1:0:-1: ++%*1X:+1:0:-1: ++%1X:+0X1:0:-1: ++%*1X:+0X1:0:-1: ++%1X:+0x1:0:-1: ++%*1X:+0x1:0:-1: ++%1X:+2a:0:-1: ++%*1X:+2a:0:-1: ++%1X:+2A:0:-1: ++%*1X:+2A:0:-1: ++%1X:+0X2a:0:-1: ++%*1X:+0X2a:0:-1: ++%1X:+0x2A:0:-1: ++%*1X:+0x2A:0:-1: ++%1X:+ffffffff:0:-1: ++%*1X:+ffffffff:0:-1: ++%1X:+FFFFFFFF:0:-1: ++%*1X:+FFFFFFFF:0:-1: ++%1X:+0Xffffffff:0:-1: ++%*1X:+0Xffffffff:0:-1: ++%1X:+0xFFFFFFFF:0:-1: ++%*1X:+0xFFFFFFFF:0:-1: ++%1X:+100000000:0:-1: ++%*1X:+100000000:0:-1: ++%1X:+0X100000000:0:-1: ++%*1X:+0X100000000:0:-1: ++%1X:+0x100000000:0:-1: ++%*1X:+0x100000000:0:-1: ++%1X:+100001091:0:-1: ++%*1X:+100001091:0:-1: ++%1X:+0X100001091:0:-1: ++%*1X:+0X100001091:0:-1: ++%1X:+0x100001091:0:-1: ++%*1X:+0x100001091:0:-1: ++%2X::0:-1: ++%*2X::0:-1: ++%2X:-7b:1:2:4294967289: ++%*2X:-7b:0:2: ++%2X:-7B:1:2:4294967289: ++%*2X:-7B:0:2: ++%2X:-0X7b:1:2:0: ++%*2X:-0X7b:0:2: ++%2X:-0x7B:1:2:0: ++%*2X:-0x7B:0:2: ++%2X:-1:1:2:4294967295: ++%*2X:-1:0:2: ++%2X:-0X1:1:2:0: ++%*2X:-0X1:0:2: ++%2X:-0x1:1:2:0: ++%*2X:-0x1:0:2: ++%2X:-0:1:2:0: ++%*2X:-0:0:2: ++%2X:-0X0:1:2:0: ++%*2X:-0X0:0:2: ++%2X:-0x0:1:2:0: ++%*2X:-0x0:0:2: ++%2X:0:1:1:0: ++%*2X:0:0:1: ++# BZ12701 %2X:0X0:0:-1: ++# BZ12701 %*2X:0X0:0:-1: ++# BZ12701 %2X:0x0:0:-1: ++# BZ12701 %*2X:0x0:0:-1: ++%2X:1:1:1:1: ++%*2X:1:0:1: ++# BZ12701 %2X:0X1:0:-1: ++# BZ12701 %*2X:0X1:0:-1: ++# BZ12701 %2X:0x1:0:-1: ++# BZ12701 %*2X:0x1:0:-1: ++%2X:2a:1:2:42: ++%*2X:2a:0:2: ++%2X:2A:1:2:42: ++%*2X:2A:0:2: ++# BZ12701 %2X:0X2a:0:-1: ++# BZ12701 %*2X:0X2a:0:-1: ++# BZ12701 %2X:0x2A:0:-1: ++# BZ12701 %*2X:0x2A:0:-1: ++%2X:ffffffff:1:2:255: ++%*2X:ffffffff:0:2: ++%2X:FFFFFFFF:1:2:255: ++%*2X:FFFFFFFF:0:2: ++# BZ12701 %2X:0Xffffffff:0:-1: ++# BZ12701 %*2X:0Xffffffff:0:-1: ++# BZ12701 %2X:0xFFFFFFFF:0:-1: ++# BZ12701 %*2X:0xFFFFFFFF:0:-1: ++%2X:100000000:1:2:16: ++%*2X:100000000:0:2: ++# BZ12701 %2X:0X100000000:0:-1: ++# BZ12701 %*2X:0X100000000:0:-1: ++# BZ12701 %2X:0x100000000:0:-1: ++# BZ12701 %*2X:0x100000000:0:-1: ++%2X:100001091:1:2:16: ++%*2X:100001091:0:2: ++# BZ12701 %2X:0X100001091:0:-1: ++# BZ12701 %*2X:0X100001091:0:-1: ++# BZ12701 %2X:0x100001091:0:-1: ++# BZ12701 %*2X:0x100001091:0:-1: ++%2X:+0:1:2:0: ++%*2X:+0:0:2: ++%2X:+0X0:1:2:0: ++%*2X:+0X0:0:2: ++%2X:+0x0:1:2:0: ++%*2X:+0x0:0:2: ++%2X:+1:1:2:1: ++%*2X:+1:0:2: ++%2X:+0X1:1:2:0: ++%*2X:+0X1:0:2: ++%2X:+0x1:1:2:0: ++%*2X:+0x1:0:2: ++%2X:+2a:1:2:2: ++%*2X:+2a:0:2: ++%2X:+2A:1:2:2: ++%*2X:+2A:0:2: ++%2X:+0X2a:1:2:0: ++%*2X:+0X2a:0:2: ++%2X:+0x2A:1:2:0: ++%*2X:+0x2A:0:2: ++%2X:+ffffffff:1:2:15: ++%*2X:+ffffffff:0:2: ++%2X:+FFFFFFFF:1:2:15: ++%*2X:+FFFFFFFF:0:2: ++%2X:+0Xffffffff:1:2:0: ++%*2X:+0Xffffffff:0:2: ++%2X:+0xFFFFFFFF:1:2:0: ++%*2X:+0xFFFFFFFF:0:2: ++%2X:+100000000:1:2:1: ++%*2X:+100000000:0:2: ++%2X:+0X100000000:1:2:0: ++%*2X:+0X100000000:0:2: ++%2X:+0x100000000:1:2:0: ++%*2X:+0x100000000:0:2: ++%2X:+100001091:1:2:1: ++%*2X:+100001091:0:2: ++%2X:+0X100001091:1:2:0: ++%*2X:+0X100001091:0:2: ++%2X:+0x100001091:1:2:0: ++%*2X:+0x100001091:0:2: ++%8X::0:-1: ++%*8X::0:-1: ++%8X:-7b:1:3:4294967173: ++%*8X:-7b:0:3: ++%8X:-7B:1:3:4294967173: ++%*8X:-7B:0:3: ++%8X:-0X7b:1:5:4294967173: ++%*8X:-0X7b:0:5: ++%8X:-0x7B:1:5:4294967173: ++%*8X:-0x7B:0:5: ++%8X:-1:1:2:4294967295: ++%*8X:-1:0:2: ++%8X:-0X1:1:4:4294967295: ++%*8X:-0X1:0:4: ++%8X:-0x1:1:4:4294967295: ++%*8X:-0x1:0:4: ++%8X:-0:1:2:0: ++%*8X:-0:0:2: ++%8X:-0X0:1:4:0: ++%*8X:-0X0:0:4: ++%8X:-0x0:1:4:0: ++%*8X:-0x0:0:4: ++%8X:0:1:1:0: ++%*8X:0:0:1: ++%8X:0X0:1:3:0: ++%*8X:0X0:0:3: ++%8X:0x0:1:3:0: ++%*8X:0x0:0:3: ++%8X:1:1:1:1: ++%*8X:1:0:1: ++%8X:0X1:1:3:1: ++%*8X:0X1:0:3: ++%8X:0x1:1:3:1: ++%*8X:0x1:0:3: ++%8X:2a:1:2:42: ++%*8X:2a:0:2: ++%8X:2A:1:2:42: ++%*8X:2A:0:2: ++%8X:0X2a:1:4:42: ++%*8X:0X2a:0:4: ++%8X:0x2A:1:4:42: ++%*8X:0x2A:0:4: ++%8X:ffffffff:1:8:4294967295: ++%*8X:ffffffff:0:8: ++%8X:FFFFFFFF:1:8:4294967295: ++%*8X:FFFFFFFF:0:8: ++%8X:0Xffffffff:1:8:16777215: ++%*8X:0Xffffffff:0:8: ++%8X:0xFFFFFFFF:1:8:16777215: ++%*8X:0xFFFFFFFF:0:8: ++%8X:100000000:1:8:268435456: ++%*8X:100000000:0:8: ++%8X:0X100000000:1:8:1048576: ++%*8X:0X100000000:0:8: ++%8X:0x100000000:1:8:1048576: ++%*8X:0x100000000:0:8: ++%8X:100001091:1:8:268435721: ++%*8X:100001091:0:8: ++%8X:0X100001091:1:8:1048577: ++%*8X:0X100001091:0:8: ++%8X:0x100001091:1:8:1048577: ++%*8X:0x100001091:0:8: ++%8X:+0:1:2:0: ++%*8X:+0:0:2: ++%8X:+0X0:1:4:0: ++%*8X:+0X0:0:4: ++%8X:+0x0:1:4:0: ++%*8X:+0x0:0:4: ++%8X:+1:1:2:1: ++%*8X:+1:0:2: ++%8X:+0X1:1:4:1: ++%*8X:+0X1:0:4: ++%8X:+0x1:1:4:1: ++%*8X:+0x1:0:4: ++%8X:+2a:1:3:42: ++%*8X:+2a:0:3: ++%8X:+2A:1:3:42: ++%*8X:+2A:0:3: ++%8X:+0X2a:1:5:42: ++%*8X:+0X2a:0:5: ++%8X:+0x2A:1:5:42: ++%*8X:+0x2A:0:5: ++%8X:+ffffffff:1:8:268435455: ++%*8X:+ffffffff:0:8: ++%8X:+FFFFFFFF:1:8:268435455: ++%*8X:+FFFFFFFF:0:8: ++%8X:+0Xffffffff:1:8:1048575: ++%*8X:+0Xffffffff:0:8: ++%8X:+0xFFFFFFFF:1:8:1048575: ++%*8X:+0xFFFFFFFF:0:8: ++%8X:+100000000:1:8:16777216: ++%*8X:+100000000:0:8: ++%8X:+0X100000000:1:8:65536: ++%*8X:+0X100000000:0:8: ++%8X:+0x100000000:1:8:65536: ++%*8X:+0x100000000:0:8: ++%8X:+100001091:1:8:16777232: ++%*8X:+100001091:0:8: ++%8X:+0X100001091:1:8:65536: ++%*8X:+0X100001091:0:8: ++%8X:+0x100001091:1:8:65536: ++%*8X:+0x100001091:0:8: ++%15X::0:-1: ++%*15X::0:-1: ++%15X:-7b:1:3:4294967173: ++%*15X:-7b:0:3: ++%15X:-7B:1:3:4294967173: ++%*15X:-7B:0:3: ++%15X:-0X7b:1:5:4294967173: ++%*15X:-0X7b:0:5: ++%15X:-0x7B:1:5:4294967173: ++%*15X:-0x7B:0:5: ++%15X:-1:1:2:4294967295: ++%*15X:-1:0:2: ++%15X:-0X1:1:4:4294967295: ++%*15X:-0X1:0:4: ++%15X:-0x1:1:4:4294967295: ++%*15X:-0x1:0:4: ++%15X:-0:1:2:0: ++%*15X:-0:0:2: ++%15X:-0X0:1:4:0: ++%*15X:-0X0:0:4: ++%15X:-0x0:1:4:0: ++%*15X:-0x0:0:4: ++%15X:0:1:1:0: ++%*15X:0:0:1: ++%15X:0X0:1:3:0: ++%*15X:0X0:0:3: ++%15X:0x0:1:3:0: ++%*15X:0x0:0:3: ++%15X:1:1:1:1: ++%*15X:1:0:1: ++%15X:0X1:1:3:1: ++%*15X:0X1:0:3: ++%15X:0x1:1:3:1: ++%*15X:0x1:0:3: ++%15X:2a:1:2:42: ++%*15X:2a:0:2: ++%15X:2A:1:2:42: ++%*15X:2A:0:2: ++%15X:0X2a:1:4:42: ++%*15X:0X2a:0:4: ++%15X:0x2A:1:4:42: ++%*15X:0x2A:0:4: ++%15X:ffffffff:1:8:4294967295: ++%*15X:ffffffff:0:8: ++%15X:FFFFFFFF:1:8:4294967295: ++%*15X:FFFFFFFF:0:8: ++%15X:0Xffffffff:1:10:4294967295: ++%*15X:0Xffffffff:0:10: ++%15X:0xFFFFFFFF:1:10:4294967295: ++%*15X:0xFFFFFFFF:0:10: ++%15X:100000000:1:9:0: ++%*15X:100000000:0:9: ++%15X:0X100000000:1:11:0: ++%*15X:0X100000000:0:11: ++%15X:0x100000000:1:11:0: ++%*15X:0x100000000:0:11: ++%15X:100001091:1:9:4241: ++%*15X:100001091:0:9: ++%15X:0X100001091:1:11:4241: ++%*15X:0X100001091:0:11: ++%15X:0x100001091:1:11:4241: ++%*15X:0x100001091:0:11: ++%15X:+0:1:2:0: ++%*15X:+0:0:2: ++%15X:+0X0:1:4:0: ++%*15X:+0X0:0:4: ++%15X:+0x0:1:4:0: ++%*15X:+0x0:0:4: ++%15X:+1:1:2:1: ++%*15X:+1:0:2: ++%15X:+0X1:1:4:1: ++%*15X:+0X1:0:4: ++%15X:+0x1:1:4:1: ++%*15X:+0x1:0:4: ++%15X:+2a:1:3:42: ++%*15X:+2a:0:3: ++%15X:+2A:1:3:42: ++%*15X:+2A:0:3: ++%15X:+0X2a:1:5:42: ++%*15X:+0X2a:0:5: ++%15X:+0x2A:1:5:42: ++%*15X:+0x2A:0:5: ++%15X:+ffffffff:1:9:4294967295: ++%*15X:+ffffffff:0:9: ++%15X:+FFFFFFFF:1:9:4294967295: ++%*15X:+FFFFFFFF:0:9: ++%15X:+0Xffffffff:1:11:4294967295: ++%*15X:+0Xffffffff:0:11: ++%15X:+0xFFFFFFFF:1:11:4294967295: ++%*15X:+0xFFFFFFFF:0:11: ++%15X:+100000000:1:10:0: ++%*15X:+100000000:0:10: ++%15X:+0X100000000:1:12:0: ++%*15X:+0X100000000:0:12: ++%15X:+0x100000000:1:12:0: ++%*15X:+0x100000000:0:12: ++%15X:+100001091:1:10:4241: ++%*15X:+100001091:0:10: ++%15X:+0X100001091:1:12:4241: ++%*15X:+0X100001091:0:12: ++%15X:+0x100001091:1:12:4241: ++%*15X:+0x100001091:0:12: ++%2X: :0:-1: ++%*2X: :0:-1: ++%2X: -7b:1:3:4294967289: ++%*2X: -7b:0:3: ++%2X: -7B:1:3:4294967289: ++%*2X: -7B:0:3: ++%2X: -0X7b:1:3:0: ++%*2X: -0X7b:0:3: ++%2X: -0x7B:1:3:0: ++%*2X: -0x7B:0:3: ++%2X: -1:1:3:4294967295: ++%*2X: -1:0:3: ++%2X: -0X1:1:3:0: ++%*2X: -0X1:0:3: ++%2X: -0x1:1:3:0: ++%*2X: -0x1:0:3: ++%2X: -0:1:3:0: ++%*2X: -0:0:3: ++%2X: -0X0:1:3:0: ++%*2X: -0X0:0:3: ++%2X: -0x0:1:3:0: ++%*2X: -0x0:0:3: ++%2X: 0:1:2:0: ++%*2X: 0:0:2: ++# BZ12701 %2X: 0X0:0:-1: ++# BZ12701 %*2X: 0X0:0:-1: ++# BZ12701 %2X: 0x0:0:-1: ++# BZ12701 %*2X: 0x0:0:-1: ++%2X: 1:1:2:1: ++%*2X: 1:0:2: ++# BZ12701 %2X: 0X1:0:-1: ++# BZ12701 %*2X: 0X1:0:-1: ++# BZ12701 %2X: 0x1:0:-1: ++# BZ12701 %*2X: 0x1:0:-1: ++%2X: 2a:1:3:42: ++%*2X: 2a:0:3: ++%2X: 2A:1:3:42: ++%*2X: 2A:0:3: ++# BZ12701 %2X: 0X2a:0:-1: ++# BZ12701 %*2X: 0X2a:0:-1: ++# BZ12701 %2X: 0x2A:0:-1: ++# BZ12701 %*2X: 0x2A:0:-1: ++%2X: ffffffff:1:3:255: ++%*2X: ffffffff:0:3: ++%2X: FFFFFFFF:1:3:255: ++%*2X: FFFFFFFF:0:3: ++# BZ12701 %2X: 0Xffffffff:0:-1: ++# BZ12701 %*2X: 0Xffffffff:0:-1: ++# BZ12701 %2X: 0xFFFFFFFF:0:-1: ++# BZ12701 %*2X: 0xFFFFFFFF:0:-1: ++%2X: 100000000:1:3:16: ++%*2X: 100000000:0:3: ++# BZ12701 %2X: 0X100000000:0:-1: ++# BZ12701 %*2X: 0X100000000:0:-1: ++# BZ12701 %2X: 0x100000000:0:-1: ++# BZ12701 %*2X: 0x100000000:0:-1: ++%2X: 100001091:1:3:16: ++%*2X: 100001091:0:3: ++# BZ12701 %2X: 0X100001091:0:-1: ++# BZ12701 %*2X: 0X100001091:0:-1: ++# BZ12701 %2X: 0x100001091:0:-1: ++# BZ12701 %*2X: 0x100001091:0:-1: ++%2X: +0:1:3:0: ++%*2X: +0:0:3: ++%2X: +0X0:1:3:0: ++%*2X: +0X0:0:3: ++%2X: +0x0:1:3:0: ++%*2X: +0x0:0:3: ++%2X: +1:1:3:1: ++%*2X: +1:0:3: ++%2X: +0X1:1:3:0: ++%*2X: +0X1:0:3: ++%2X: +0x1:1:3:0: ++%*2X: +0x1:0:3: ++%2X: +2a:1:3:2: ++%*2X: +2a:0:3: ++%2X: +2A:1:3:2: ++%*2X: +2A:0:3: ++%2X: +0X2a:1:3:0: ++%*2X: +0X2a:0:3: ++%2X: +0x2A:1:3:0: ++%*2X: +0x2A:0:3: ++%2X: +ffffffff:1:3:15: ++%*2X: +ffffffff:0:3: ++%2X: +FFFFFFFF:1:3:15: ++%*2X: +FFFFFFFF:0:3: ++%2X: +0Xffffffff:1:3:0: ++%*2X: +0Xffffffff:0:3: ++%2X: +0xFFFFFFFF:1:3:0: ++%*2X: +0xFFFFFFFF:0:3: ++%2X: +100000000:1:3:1: ++%*2X: +100000000:0:3: ++%2X: +0X100000000:1:3:0: ++%*2X: +0X100000000:0:3: ++%2X: +0x100000000:1:3:0: ++%*2X: +0x100000000:0:3: ++%2X: +100001091:1:3:1: ++%*2X: +100001091:0:3: ++%2X: +0X100001091:1:3:0: ++%*2X: +0X100001091:0:3: ++%2X: +0x100001091:1:3:0: ++%*2X: +0x100001091:0:3: ++%15X: :0:-1: ++%*15X: :0:-1: ++%15X: -7b:1:4:4294967173: ++%*15X: -7b:0:4: ++%15X: -7B:1:4:4294967173: ++%*15X: -7B:0:4: ++%15X: -0X7b:1:6:4294967173: ++%*15X: -0X7b:0:6: ++%15X: -0x7B:1:6:4294967173: ++%*15X: -0x7B:0:6: ++%15X: -1:1:3:4294967295: ++%*15X: -1:0:3: ++%15X: -0X1:1:5:4294967295: ++%*15X: -0X1:0:5: ++%15X: -0x1:1:5:4294967295: ++%*15X: -0x1:0:5: ++%15X: -0:1:3:0: ++%*15X: -0:0:3: ++%15X: -0X0:1:5:0: ++%*15X: -0X0:0:5: ++%15X: -0x0:1:5:0: ++%*15X: -0x0:0:5: ++%15X: 0:1:2:0: ++%*15X: 0:0:2: ++%15X: 0X0:1:4:0: ++%*15X: 0X0:0:4: ++%15X: 0x0:1:4:0: ++%*15X: 0x0:0:4: ++%15X: 1:1:2:1: ++%*15X: 1:0:2: ++%15X: 0X1:1:4:1: ++%*15X: 0X1:0:4: ++%15X: 0x1:1:4:1: ++%*15X: 0x1:0:4: ++%15X: 2a:1:3:42: ++%*15X: 2a:0:3: ++%15X: 2A:1:3:42: ++%*15X: 2A:0:3: ++%15X: 0X2a:1:5:42: ++%*15X: 0X2a:0:5: ++%15X: 0x2A:1:5:42: ++%*15X: 0x2A:0:5: ++%15X: ffffffff:1:9:4294967295: ++%*15X: ffffffff:0:9: ++%15X: FFFFFFFF:1:9:4294967295: ++%*15X: FFFFFFFF:0:9: ++%15X: 0Xffffffff:1:11:4294967295: ++%*15X: 0Xffffffff:0:11: ++%15X: 0xFFFFFFFF:1:11:4294967295: ++%*15X: 0xFFFFFFFF:0:11: ++%15X: 100000000:1:10:0: ++%*15X: 100000000:0:10: ++%15X: 0X100000000:1:12:0: ++%*15X: 0X100000000:0:12: ++%15X: 0x100000000:1:12:0: ++%*15X: 0x100000000:0:12: ++%15X: 100001091:1:10:4241: ++%*15X: 100001091:0:10: ++%15X: 0X100001091:1:12:4241: ++%*15X: 0X100001091:0:12: ++%15X: 0x100001091:1:12:4241: ++%*15X: 0x100001091:0:12: ++%15X: +0:1:3:0: ++%*15X: +0:0:3: ++%15X: +0X0:1:5:0: ++%*15X: +0X0:0:5: ++%15X: +0x0:1:5:0: ++%*15X: +0x0:0:5: ++%15X: +1:1:3:1: ++%*15X: +1:0:3: ++%15X: +0X1:1:5:1: ++%*15X: +0X1:0:5: ++%15X: +0x1:1:5:1: ++%*15X: +0x1:0:5: ++%15X: +2a:1:4:42: ++%*15X: +2a:0:4: ++%15X: +2A:1:4:42: ++%*15X: +2A:0:4: ++%15X: +0X2a:1:6:42: ++%*15X: +0X2a:0:6: ++%15X: +0x2A:1:6:42: ++%*15X: +0x2A:0:6: ++%15X: +ffffffff:1:10:4294967295: ++%*15X: +ffffffff:0:10: ++%15X: +FFFFFFFF:1:10:4294967295: ++%*15X: +FFFFFFFF:0:10: ++%15X: +0Xffffffff:1:12:4294967295: ++%*15X: +0Xffffffff:0:12: ++%15X: +0xFFFFFFFF:1:12:4294967295: ++%*15X: +0xFFFFFFFF:0:12: ++%15X: +100000000:1:11:0: ++%*15X: +100000000:0:11: ++%15X: +0X100000000:1:13:0: ++%*15X: +0X100000000:0:13: ++%15X: +0x100000000:1:13:0: ++%*15X: +0x100000000:0:13: ++%15X: +100001091:1:11:4241: ++%*15X: +100001091:0:11: ++%15X: +0X100001091:1:13:4241: ++%*15X: +0X100001091:0:13: ++%15X: +0x100001091:1:13:4241: ++%*15X: +0x100001091:0:13: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-ulong-b.input b/sysdeps/wordsize-64/tst-scanf-format-ulong-b.input +new file mode 100644 +index 0000000000000000..ceb176e387185ae3 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-ulong-b.input +@@ -0,0 +1,644 @@ ++%lb::0:-1: ++%*lb::0:-1: ++%lb:-1111011:1:8:-123: ++%*lb:-1111011:0:8: ++%lb:-0B1111011:1:10:-123: ++%*lb:-0B1111011:0:10: ++%lb:-0b1111011:1:10:-123: ++%*lb:-0b1111011:0:10: ++%lb:-1:1:2:-1: ++%*lb:-1:0:2: ++%lb:-0B1:1:4:-1: ++%*lb:-0B1:0:4: ++%lb:-0b1:1:4:-1: ++%*lb:-0b1:0:4: ++%lb:-0:1:2:0: ++%*lb:-0:0:2: ++%lb:-0B0:1:4:0: ++%*lb:-0B0:0:4: ++%lb:-0b0:1:4:0: ++%*lb:-0b0:0:4: ++%lb:0:1:1:0: ++%*lb:0:0:1: ++%lb:0B0:1:3:0: ++%*lb:0B0:0:3: ++%lb:0b0:1:3:0: ++%*lb:0b0:0:3: ++%lb:1:1:1:1: ++%*lb:1:0:1: ++%lb:0B1:1:3:1: ++%*lb:0B1:0:3: ++%lb:0b1:1:3:1: ++%*lb:0b1:0:3: ++%lb:101010:1:6:42: ++%*lb:101010:0:6: ++%lb:0B101010:1:8:42: ++%*lb:0B101010:0:8: ++%lb:0b101010:1:8:42: ++%*lb:0b101010:0:8: ++%lb:1111111111111111111111111111111111111111111111111111111111111111:1:64:18446744073709551615: ++%*lb:1111111111111111111111111111111111111111111111111111111111111111:0:64: ++%lb:0B1111111111111111111111111111111111111111111111111111111111111111:1:66:18446744073709551615: ++%*lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:66: ++%lb:0b1111111111111111111111111111111111111111111111111111111111111111:1:66:18446744073709551615: ++%*lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:66: ++%lb:10000000000000000000000000000000000000000000000000000000000000000:1:65:18446744073709551615: ++%*lb:10000000000000000000000000000000000000000000000000000000000000000:0:65: ++%lb:0B10000000000000000000000000000000000000000000000000000000000000000:1:67:18446744073709551615: ++%*lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:67: ++%lb:0b10000000000000000000000000000000000000000000000000000000000000000:1:67:18446744073709551615: ++%*lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:67: ++%lb:10000000000000000000000000000000000000010100001110101011110110001:1:65:18446744073709551615: ++%*lb:10000000000000000000000000000000000000010100001110101011110110001:0:65: ++%lb:0B10000000000000000000000000000000000000010100001110101011110110001:1:67:18446744073709551615: ++%*lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:67: ++%lb:0b10000000000000000000000000000000000000010100001110101011110110001:1:67:18446744073709551615: ++%*lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:67: ++%lb:+0:1:2:0: ++%*lb:+0:0:2: ++%lb:+0B0:1:4:0: ++%*lb:+0B0:0:4: ++%lb:+0b0:1:4:0: ++%*lb:+0b0:0:4: ++%lb:+1:1:2:1: ++%*lb:+1:0:2: ++%lb:+0B1:1:4:1: ++%*lb:+0B1:0:4: ++%lb:+0b1:1:4:1: ++%*lb:+0b1:0:4: ++%lb:+101010:1:7:42: ++%*lb:+101010:0:7: ++%lb:+0B101010:1:9:42: ++%*lb:+0B101010:0:9: ++%lb:+0b101010:1:9:42: ++%*lb:+0b101010:0:9: ++%lb:+1111111111111111111111111111111111111111111111111111111111111111:1:65:18446744073709551615: ++%*lb:+1111111111111111111111111111111111111111111111111111111111111111:0:65: ++%lb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:67:18446744073709551615: ++%*lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:67: ++%lb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:67:18446744073709551615: ++%*lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:67: ++%lb:+10000000000000000000000000000000000000000000000000000000000000000:1:66:18446744073709551615: ++%*lb:+10000000000000000000000000000000000000000000000000000000000000000:0:66: ++%lb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:68:18446744073709551615: ++%*lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:68: ++%lb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:68:18446744073709551615: ++%*lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:68: ++%lb:+10000000000000000000000000000000000000010100001110101011110110001:1:66:18446744073709551615: ++%*lb:+10000000000000000000000000000000000000010100001110101011110110001:0:66: ++%lb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:68:18446744073709551615: ++%*lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:68: ++%lb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:68:18446744073709551615: ++%*lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:68: ++%1lb::0:-1: ++%*1lb::0:-1: ++%1lb:-1111011:0:-1: ++%*1lb:-1111011:0:-1: ++%1lb:-0B1111011:0:-1: ++%*1lb:-0B1111011:0:-1: ++%1lb:-0b1111011:0:-1: ++%*1lb:-0b1111011:0:-1: ++%1lb:-1:0:-1: ++%*1lb:-1:0:-1: ++%1lb:-0B1:0:-1: ++%*1lb:-0B1:0:-1: ++%1lb:-0b1:0:-1: ++%*1lb:-0b1:0:-1: ++%1lb:-0:0:-1: ++%*1lb:-0:0:-1: ++%1lb:-0B0:0:-1: ++%*1lb:-0B0:0:-1: ++%1lb:-0b0:0:-1: ++%*1lb:-0b0:0:-1: ++%1lb:0:1:1:0: ++%*1lb:0:0:1: ++%1lb:0B0:1:1:0: ++%*1lb:0B0:0:1: ++%1lb:0b0:1:1:0: ++%*1lb:0b0:0:1: ++%1lb:1:1:1:1: ++%*1lb:1:0:1: ++%1lb:0B1:1:1:0: ++%*1lb:0B1:0:1: ++%1lb:0b1:1:1:0: ++%*1lb:0b1:0:1: ++%1lb:101010:1:1:1: ++%*1lb:101010:0:1: ++%1lb:0B101010:1:1:0: ++%*1lb:0B101010:0:1: ++%1lb:0b101010:1:1:0: ++%*1lb:0b101010:0:1: ++%1lb:1111111111111111111111111111111111111111111111111111111111111111:1:1:1: ++%*1lb:1111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1lb:0B1111111111111111111111111111111111111111111111111111111111111111:1:1:0: ++%*1lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1lb:0b1111111111111111111111111111111111111111111111111111111111111111:1:1:0: ++%*1lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1lb:10000000000000000000000000000000000000000000000000000000000000000:1:1:1: ++%*1lb:10000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1lb:0B10000000000000000000000000000000000000000000000000000000000000000:1:1:0: ++%*1lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1lb:0b10000000000000000000000000000000000000000000000000000000000000000:1:1:0: ++%*1lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1lb:10000000000000000000000000000000000000010100001110101011110110001:1:1:1: ++%*1lb:10000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1lb:0B10000000000000000000000000000000000000010100001110101011110110001:1:1:0: ++%*1lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1lb:0b10000000000000000000000000000000000000010100001110101011110110001:1:1:0: ++%*1lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1lb:+0:0:-1: ++%*1lb:+0:0:-1: ++%1lb:+0B0:0:-1: ++%*1lb:+0B0:0:-1: ++%1lb:+0b0:0:-1: ++%*1lb:+0b0:0:-1: ++%1lb:+1:0:-1: ++%*1lb:+1:0:-1: ++%1lb:+0B1:0:-1: ++%*1lb:+0B1:0:-1: ++%1lb:+0b1:0:-1: ++%*1lb:+0b1:0:-1: ++%1lb:+101010:0:-1: ++%*1lb:+101010:0:-1: ++%1lb:+0B101010:0:-1: ++%*1lb:+0B101010:0:-1: ++%1lb:+0b101010:0:-1: ++%*1lb:+0b101010:0:-1: ++%1lb:+1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1lb:+1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1lb:+10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1lb:+10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1lb:+10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1lb:+10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%1lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%1lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2lb::0:-1: ++%*2lb::0:-1: ++%2lb:-1111011:1:2:-1: ++%*2lb:-1111011:0:2: ++%2lb:-0B1111011:1:2:0: ++%*2lb:-0B1111011:0:2: ++%2lb:-0b1111011:1:2:0: ++%*2lb:-0b1111011:0:2: ++%2lb:-1:1:2:-1: ++%*2lb:-1:0:2: ++%2lb:-0B1:1:2:0: ++%*2lb:-0B1:0:2: ++%2lb:-0b1:1:2:0: ++%*2lb:-0b1:0:2: ++%2lb:-0:1:2:0: ++%*2lb:-0:0:2: ++%2lb:-0B0:1:2:0: ++%*2lb:-0B0:0:2: ++%2lb:-0b0:1:2:0: ++%*2lb:-0b0:0:2: ++%2lb:0:1:1:0: ++%*2lb:0:0:1: ++# BZ12701 %2lb:0B0:0:-1: ++# BZ12701 %*2lb:0B0:0:-1: ++# BZ12701 %2lb:0b0:0:-1: ++# BZ12701 %*2lb:0b0:0:-1: ++%2lb:1:1:1:1: ++%*2lb:1:0:1: ++# BZ12701 %2lb:0B1:0:-1: ++# BZ12701 %*2lb:0B1:0:-1: ++# BZ12701 %2lb:0b1:0:-1: ++# BZ12701 %*2lb:0b1:0:-1: ++%2lb:101010:1:2:2: ++%*2lb:101010:0:2: ++# BZ12701 %2lb:0B101010:0:-1: ++# BZ12701 %*2lb:0B101010:0:-1: ++# BZ12701 %2lb:0b101010:0:-1: ++# BZ12701 %*2lb:0b101010:0:-1: ++%2lb:1111111111111111111111111111111111111111111111111111111111111111:1:2:3: ++%*2lb:1111111111111111111111111111111111111111111111111111111111111111:0:2: ++# BZ12701 %2lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %2lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%2lb:10000000000000000000000000000000000000000000000000000000000000000:1:2:2: ++%*2lb:10000000000000000000000000000000000000000000000000000000000000000:0:2: ++# BZ12701 %2lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %2lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%2lb:10000000000000000000000000000000000000010100001110101011110110001:1:2:2: ++%*2lb:10000000000000000000000000000000000000010100001110101011110110001:0:2: ++# BZ12701 %2lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %2lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2lb:+0:1:2:0: ++%*2lb:+0:0:2: ++%2lb:+0B0:1:2:0: ++%*2lb:+0B0:0:2: ++%2lb:+0b0:1:2:0: ++%*2lb:+0b0:0:2: ++%2lb:+1:1:2:1: ++%*2lb:+1:0:2: ++%2lb:+0B1:1:2:0: ++%*2lb:+0B1:0:2: ++%2lb:+0b1:1:2:0: ++%*2lb:+0b1:0:2: ++%2lb:+101010:1:2:1: ++%*2lb:+101010:0:2: ++%2lb:+0B101010:1:2:0: ++%*2lb:+0B101010:0:2: ++%2lb:+0b101010:1:2:0: ++%*2lb:+0b101010:0:2: ++%2lb:+1111111111111111111111111111111111111111111111111111111111111111:1:2:1: ++%*2lb:+1111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2lb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:2:0: ++%*2lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2lb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:2:0: ++%*2lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2lb:+10000000000000000000000000000000000000000000000000000000000000000:1:2:1: ++%*2lb:+10000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2lb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2lb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2lb:+10000000000000000000000000000000000000010100001110101011110110001:1:2:1: ++%*2lb:+10000000000000000000000000000000000000010100001110101011110110001:0:2: ++%2lb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:2:0: ++%*2lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:2: ++%2lb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:2:0: ++%*2lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:2: ++%15lb::0:-1: ++%*15lb::0:-1: ++%15lb:-1111011:1:8:-123: ++%*15lb:-1111011:0:8: ++%15lb:-0B1111011:1:10:-123: ++%*15lb:-0B1111011:0:10: ++%15lb:-0b1111011:1:10:-123: ++%*15lb:-0b1111011:0:10: ++%15lb:-1:1:2:-1: ++%*15lb:-1:0:2: ++%15lb:-0B1:1:4:-1: ++%*15lb:-0B1:0:4: ++%15lb:-0b1:1:4:-1: ++%*15lb:-0b1:0:4: ++%15lb:-0:1:2:0: ++%*15lb:-0:0:2: ++%15lb:-0B0:1:4:0: ++%*15lb:-0B0:0:4: ++%15lb:-0b0:1:4:0: ++%*15lb:-0b0:0:4: ++%15lb:0:1:1:0: ++%*15lb:0:0:1: ++%15lb:0B0:1:3:0: ++%*15lb:0B0:0:3: ++%15lb:0b0:1:3:0: ++%*15lb:0b0:0:3: ++%15lb:1:1:1:1: ++%*15lb:1:0:1: ++%15lb:0B1:1:3:1: ++%*15lb:0B1:0:3: ++%15lb:0b1:1:3:1: ++%*15lb:0b1:0:3: ++%15lb:101010:1:6:42: ++%*15lb:101010:0:6: ++%15lb:0B101010:1:8:42: ++%*15lb:0B101010:0:8: ++%15lb:0b101010:1:8:42: ++%*15lb:0b101010:0:8: ++%15lb:1111111111111111111111111111111111111111111111111111111111111111:1:15:32767: ++%*15lb:1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lb:0B1111111111111111111111111111111111111111111111111111111111111111:1:15:8191: ++%*15lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lb:0b1111111111111111111111111111111111111111111111111111111111111111:1:15:8191: ++%*15lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lb:10000000000000000000000000000000000000000000000000000000000000000:1:15:16384: ++%*15lb:10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lb:0B10000000000000000000000000000000000000000000000000000000000000000:1:15:4096: ++%*15lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lb:0b10000000000000000000000000000000000000000000000000000000000000000:1:15:4096: ++%*15lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lb:10000000000000000000000000000000000000010100001110101011110110001:1:15:16384: ++%*15lb:10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15lb:0B10000000000000000000000000000000000000010100001110101011110110001:1:15:4096: ++%*15lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15lb:0b10000000000000000000000000000000000000010100001110101011110110001:1:15:4096: ++%*15lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15lb:+0:1:2:0: ++%*15lb:+0:0:2: ++%15lb:+0B0:1:4:0: ++%*15lb:+0B0:0:4: ++%15lb:+0b0:1:4:0: ++%*15lb:+0b0:0:4: ++%15lb:+1:1:2:1: ++%*15lb:+1:0:2: ++%15lb:+0B1:1:4:1: ++%*15lb:+0B1:0:4: ++%15lb:+0b1:1:4:1: ++%*15lb:+0b1:0:4: ++%15lb:+101010:1:7:42: ++%*15lb:+101010:0:7: ++%15lb:+0B101010:1:9:42: ++%*15lb:+0B101010:0:9: ++%15lb:+0b101010:1:9:42: ++%*15lb:+0b101010:0:9: ++%15lb:+1111111111111111111111111111111111111111111111111111111111111111:1:15:16383: ++%*15lb:+1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:15:4095: ++%*15lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:15:4095: ++%*15lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lb:+10000000000000000000000000000000000000000000000000000000000000000:1:15:8192: ++%*15lb:+10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:15:2048: ++%*15lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:15:2048: ++%*15lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lb:+10000000000000000000000000000000000000010100001110101011110110001:1:15:8192: ++%*15lb:+10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15lb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:15:2048: ++%*15lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15lb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:15:2048: ++%*15lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%25lb::0:-1: ++%*25lb::0:-1: ++%25lb:-1111011:1:8:-123: ++%*25lb:-1111011:0:8: ++%25lb:-0B1111011:1:10:-123: ++%*25lb:-0B1111011:0:10: ++%25lb:-0b1111011:1:10:-123: ++%*25lb:-0b1111011:0:10: ++%25lb:-1:1:2:-1: ++%*25lb:-1:0:2: ++%25lb:-0B1:1:4:-1: ++%*25lb:-0B1:0:4: ++%25lb:-0b1:1:4:-1: ++%*25lb:-0b1:0:4: ++%25lb:-0:1:2:0: ++%*25lb:-0:0:2: ++%25lb:-0B0:1:4:0: ++%*25lb:-0B0:0:4: ++%25lb:-0b0:1:4:0: ++%*25lb:-0b0:0:4: ++%25lb:0:1:1:0: ++%*25lb:0:0:1: ++%25lb:0B0:1:3:0: ++%*25lb:0B0:0:3: ++%25lb:0b0:1:3:0: ++%*25lb:0b0:0:3: ++%25lb:1:1:1:1: ++%*25lb:1:0:1: ++%25lb:0B1:1:3:1: ++%*25lb:0B1:0:3: ++%25lb:0b1:1:3:1: ++%*25lb:0b1:0:3: ++%25lb:101010:1:6:42: ++%*25lb:101010:0:6: ++%25lb:0B101010:1:8:42: ++%*25lb:0B101010:0:8: ++%25lb:0b101010:1:8:42: ++%*25lb:0b101010:0:8: ++%25lb:1111111111111111111111111111111111111111111111111111111111111111:1:25:33554431: ++%*25lb:1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lb:0B1111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: ++%*25lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lb:0b1111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: ++%*25lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lb:10000000000000000000000000000000000000000000000000000000000000000:1:25:16777216: ++%*25lb:10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lb:0B10000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: ++%*25lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lb:0b10000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: ++%*25lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lb:10000000000000000000000000000000000000010100001110101011110110001:1:25:16777216: ++%*25lb:10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25lb:0B10000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: ++%*25lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25lb:0b10000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: ++%*25lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25lb:+0:1:2:0: ++%*25lb:+0:0:2: ++%25lb:+0B0:1:4:0: ++%*25lb:+0B0:0:4: ++%25lb:+0b0:1:4:0: ++%*25lb:+0b0:0:4: ++%25lb:+1:1:2:1: ++%*25lb:+1:0:2: ++%25lb:+0B1:1:4:1: ++%*25lb:+0B1:0:4: ++%25lb:+0b1:1:4:1: ++%*25lb:+0b1:0:4: ++%25lb:+101010:1:7:42: ++%*25lb:+101010:0:7: ++%25lb:+0B101010:1:9:42: ++%*25lb:+0B101010:0:9: ++%25lb:+0b101010:1:9:42: ++%*25lb:+0b101010:0:9: ++%25lb:+1111111111111111111111111111111111111111111111111111111111111111:1:25:16777215: ++%*25lb:+1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: ++%*25lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: ++%*25lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lb:+10000000000000000000000000000000000000000000000000000000000000000:1:25:8388608: ++%*25lb:+10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: ++%*25lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: ++%*25lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lb:+10000000000000000000000000000000000000010100001110101011110110001:1:25:8388608: ++%*25lb:+10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25lb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: ++%*25lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25lb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: ++%*25lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%2lb: :0:-1: ++%*2lb: :0:-1: ++%2lb: -1111011:1:3:-1: ++%*2lb: -1111011:0:3: ++%2lb: -0B1111011:1:3:0: ++%*2lb: -0B1111011:0:3: ++%2lb: -0b1111011:1:3:0: ++%*2lb: -0b1111011:0:3: ++%2lb: -1:1:3:-1: ++%*2lb: -1:0:3: ++%2lb: -0B1:1:3:0: ++%*2lb: -0B1:0:3: ++%2lb: -0b1:1:3:0: ++%*2lb: -0b1:0:3: ++%2lb: -0:1:3:0: ++%*2lb: -0:0:3: ++%2lb: -0B0:1:3:0: ++%*2lb: -0B0:0:3: ++%2lb: -0b0:1:3:0: ++%*2lb: -0b0:0:3: ++%2lb: 0:1:2:0: ++%*2lb: 0:0:2: ++# BZ12701 %2lb: 0B0:0:-1: ++# BZ12701 %*2lb: 0B0:0:-1: ++# BZ12701 %2lb: 0b0:0:-1: ++# BZ12701 %*2lb: 0b0:0:-1: ++%2lb: 1:1:2:1: ++%*2lb: 1:0:2: ++# BZ12701 %2lb: 0B1:0:-1: ++# BZ12701 %*2lb: 0B1:0:-1: ++# BZ12701 %2lb: 0b1:0:-1: ++# BZ12701 %*2lb: 0b1:0:-1: ++%2lb: 101010:1:3:2: ++%*2lb: 101010:0:3: ++# BZ12701 %2lb: 0B101010:0:-1: ++# BZ12701 %*2lb: 0B101010:0:-1: ++# BZ12701 %2lb: 0b101010:0:-1: ++# BZ12701 %*2lb: 0b101010:0:-1: ++%2lb: 1111111111111111111111111111111111111111111111111111111111111111:1:3:3: ++%*2lb: 1111111111111111111111111111111111111111111111111111111111111111:0:3: ++# BZ12701 %2lb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2lb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %2lb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2lb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%2lb: 10000000000000000000000000000000000000000000000000000000000000000:1:3:2: ++%*2lb: 10000000000000000000000000000000000000000000000000000000000000000:0:3: ++# BZ12701 %2lb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2lb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %2lb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2lb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%2lb: 10000000000000000000000000000000000000010100001110101011110110001:1:3:2: ++%*2lb: 10000000000000000000000000000000000000010100001110101011110110001:0:3: ++# BZ12701 %2lb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2lb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %2lb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2lb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2lb: +0:1:3:0: ++%*2lb: +0:0:3: ++%2lb: +0B0:1:3:0: ++%*2lb: +0B0:0:3: ++%2lb: +0b0:1:3:0: ++%*2lb: +0b0:0:3: ++%2lb: +1:1:3:1: ++%*2lb: +1:0:3: ++%2lb: +0B1:1:3:0: ++%*2lb: +0B1:0:3: ++%2lb: +0b1:1:3:0: ++%*2lb: +0b1:0:3: ++%2lb: +101010:1:3:1: ++%*2lb: +101010:0:3: ++%2lb: +0B101010:1:3:0: ++%*2lb: +0B101010:0:3: ++%2lb: +0b101010:1:3:0: ++%*2lb: +0b101010:0:3: ++%2lb: +1111111111111111111111111111111111111111111111111111111111111111:1:3:1: ++%*2lb: +1111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2lb: +0B1111111111111111111111111111111111111111111111111111111111111111:1:3:0: ++%*2lb: +0B1111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2lb: +0b1111111111111111111111111111111111111111111111111111111111111111:1:3:0: ++%*2lb: +0b1111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2lb: +10000000000000000000000000000000000000000000000000000000000000000:1:3:1: ++%*2lb: +10000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2lb: +0B10000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2lb: +0B10000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2lb: +0b10000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2lb: +0b10000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2lb: +10000000000000000000000000000000000000010100001110101011110110001:1:3:1: ++%*2lb: +10000000000000000000000000000000000000010100001110101011110110001:0:3: ++%2lb: +0B10000000000000000000000000000000000000010100001110101011110110001:1:3:0: ++%*2lb: +0B10000000000000000000000000000000000000010100001110101011110110001:0:3: ++%2lb: +0b10000000000000000000000000000000000000010100001110101011110110001:1:3:0: ++%*2lb: +0b10000000000000000000000000000000000000010100001110101011110110001:0:3: ++%25lb: :0:-1: ++%*25lb: :0:-1: ++%25lb: -1111011:1:9:-123: ++%*25lb: -1111011:0:9: ++%25lb: -0B1111011:1:11:-123: ++%*25lb: -0B1111011:0:11: ++%25lb: -0b1111011:1:11:-123: ++%*25lb: -0b1111011:0:11: ++%25lb: -1:1:3:-1: ++%*25lb: -1:0:3: ++%25lb: -0B1:1:5:-1: ++%*25lb: -0B1:0:5: ++%25lb: -0b1:1:5:-1: ++%*25lb: -0b1:0:5: ++%25lb: -0:1:3:0: ++%*25lb: -0:0:3: ++%25lb: -0B0:1:5:0: ++%*25lb: -0B0:0:5: ++%25lb: -0b0:1:5:0: ++%*25lb: -0b0:0:5: ++%25lb: 0:1:2:0: ++%*25lb: 0:0:2: ++%25lb: 0B0:1:4:0: ++%*25lb: 0B0:0:4: ++%25lb: 0b0:1:4:0: ++%*25lb: 0b0:0:4: ++%25lb: 1:1:2:1: ++%*25lb: 1:0:2: ++%25lb: 0B1:1:4:1: ++%*25lb: 0B1:0:4: ++%25lb: 0b1:1:4:1: ++%*25lb: 0b1:0:4: ++%25lb: 101010:1:7:42: ++%*25lb: 101010:0:7: ++%25lb: 0B101010:1:9:42: ++%*25lb: 0B101010:0:9: ++%25lb: 0b101010:1:9:42: ++%*25lb: 0b101010:0:9: ++%25lb: 1111111111111111111111111111111111111111111111111111111111111111:1:26:33554431: ++%*25lb: 1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lb: 0B1111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: ++%*25lb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lb: 0b1111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: ++%*25lb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lb: 10000000000000000000000000000000000000000000000000000000000000000:1:26:16777216: ++%*25lb: 10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lb: 0B10000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: ++%*25lb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lb: 0b10000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: ++%*25lb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lb: 10000000000000000000000000000000000000010100001110101011110110001:1:26:16777216: ++%*25lb: 10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25lb: 0B10000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: ++%*25lb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25lb: 0b10000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: ++%*25lb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25lb: +0:1:3:0: ++%*25lb: +0:0:3: ++%25lb: +0B0:1:5:0: ++%*25lb: +0B0:0:5: ++%25lb: +0b0:1:5:0: ++%*25lb: +0b0:0:5: ++%25lb: +1:1:3:1: ++%*25lb: +1:0:3: ++%25lb: +0B1:1:5:1: ++%*25lb: +0B1:0:5: ++%25lb: +0b1:1:5:1: ++%*25lb: +0b1:0:5: ++%25lb: +101010:1:8:42: ++%*25lb: +101010:0:8: ++%25lb: +0B101010:1:10:42: ++%*25lb: +0B101010:0:10: ++%25lb: +0b101010:1:10:42: ++%*25lb: +0b101010:0:10: ++%25lb: +1111111111111111111111111111111111111111111111111111111111111111:1:26:16777215: ++%*25lb: +1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lb: +0B1111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: ++%*25lb: +0B1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lb: +0b1111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: ++%*25lb: +0b1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lb: +10000000000000000000000000000000000000000000000000000000000000000:1:26:8388608: ++%*25lb: +10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lb: +0B10000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: ++%*25lb: +0B10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lb: +0b10000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: ++%*25lb: +0b10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lb: +10000000000000000000000000000000000000010100001110101011110110001:1:26:8388608: ++%*25lb: +10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25lb: +0B10000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: ++%*25lb: +0B10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25lb: +0b10000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: ++%*25lb: +0b10000000000000000000000000000000000000010100001110101011110110001:0:26: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-ulong-o.input b/sysdeps/wordsize-64/tst-scanf-format-ulong-o.input +new file mode 100644 +index 0000000000000000..dba0c62d15d5c9ca +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-ulong-o.input +@@ -0,0 +1,434 @@ ++%lo::0:-1: ++%*lo::0:-1: ++%lo:-173:1:4:-123: ++%*lo:-173:0:4: ++%lo:-0173:1:5:-123: ++%*lo:-0173:0:5: ++%lo:-1:1:2:-1: ++%*lo:-1:0:2: ++%lo:-01:1:3:-1: ++%*lo:-01:0:3: ++%lo:-0:1:2:0: ++%*lo:-0:0:2: ++%lo:-00:1:3:0: ++%*lo:-00:0:3: ++%lo:0:1:1:0: ++%*lo:0:0:1: ++%lo:00:1:2:0: ++%*lo:00:0:2: ++%lo:1:1:1:1: ++%*lo:1:0:1: ++%lo:01:1:2:1: ++%*lo:01:0:2: ++%lo:52:1:2:42: ++%*lo:52:0:2: ++%lo:052:1:3:42: ++%*lo:052:0:3: ++%lo:1777777777777777777777:1:22:18446744073709551615: ++%*lo:1777777777777777777777:0:22: ++%lo:01777777777777777777777:1:23:18446744073709551615: ++%*lo:01777777777777777777777:0:23: ++%lo:2000000000000000000000:1:22:18446744073709551615: ++%*lo:2000000000000000000000:0:22: ++%lo:02000000000000000000000:1:23:18446744073709551615: ++%*lo:02000000000000000000000:0:23: ++%lo:2000000000000241653661:1:22:18446744073709551615: ++%*lo:2000000000000241653661:0:22: ++%lo:02000000000000241653661:1:23:18446744073709551615: ++%*lo:02000000000000241653661:0:23: ++%lo:+0:1:2:0: ++%*lo:+0:0:2: ++%lo:+00:1:3:0: ++%*lo:+00:0:3: ++%lo:+1:1:2:1: ++%*lo:+1:0:2: ++%lo:+01:1:3:1: ++%*lo:+01:0:3: ++%lo:+52:1:3:42: ++%*lo:+52:0:3: ++%lo:+052:1:4:42: ++%*lo:+052:0:4: ++%lo:+1777777777777777777777:1:23:18446744073709551615: ++%*lo:+1777777777777777777777:0:23: ++%lo:+01777777777777777777777:1:24:18446744073709551615: ++%*lo:+01777777777777777777777:0:24: ++%lo:+2000000000000000000000:1:23:18446744073709551615: ++%*lo:+2000000000000000000000:0:23: ++%lo:+02000000000000000000000:1:24:18446744073709551615: ++%*lo:+02000000000000000000000:0:24: ++%lo:+2000000000000241653661:1:23:18446744073709551615: ++%*lo:+2000000000000241653661:0:23: ++%lo:+02000000000000241653661:1:24:18446744073709551615: ++%*lo:+02000000000000241653661:0:24: ++%1lo::0:-1: ++%*1lo::0:-1: ++%1lo:-173:0:-1: ++%*1lo:-173:0:-1: ++%1lo:-0173:0:-1: ++%*1lo:-0173:0:-1: ++%1lo:-1:0:-1: ++%*1lo:-1:0:-1: ++%1lo:-01:0:-1: ++%*1lo:-01:0:-1: ++%1lo:-0:0:-1: ++%*1lo:-0:0:-1: ++%1lo:-00:0:-1: ++%*1lo:-00:0:-1: ++%1lo:0:1:1:0: ++%*1lo:0:0:1: ++%1lo:00:1:1:0: ++%*1lo:00:0:1: ++%1lo:1:1:1:1: ++%*1lo:1:0:1: ++%1lo:01:1:1:0: ++%*1lo:01:0:1: ++%1lo:52:1:1:5: ++%*1lo:52:0:1: ++%1lo:052:1:1:0: ++%*1lo:052:0:1: ++%1lo:1777777777777777777777:1:1:1: ++%*1lo:1777777777777777777777:0:1: ++%1lo:01777777777777777777777:1:1:0: ++%*1lo:01777777777777777777777:0:1: ++%1lo:2000000000000000000000:1:1:2: ++%*1lo:2000000000000000000000:0:1: ++%1lo:02000000000000000000000:1:1:0: ++%*1lo:02000000000000000000000:0:1: ++%1lo:2000000000000241653661:1:1:2: ++%*1lo:2000000000000241653661:0:1: ++%1lo:02000000000000241653661:1:1:0: ++%*1lo:02000000000000241653661:0:1: ++%1lo:+0:0:-1: ++%*1lo:+0:0:-1: ++%1lo:+00:0:-1: ++%*1lo:+00:0:-1: ++%1lo:+1:0:-1: ++%*1lo:+1:0:-1: ++%1lo:+01:0:-1: ++%*1lo:+01:0:-1: ++%1lo:+52:0:-1: ++%*1lo:+52:0:-1: ++%1lo:+052:0:-1: ++%*1lo:+052:0:-1: ++%1lo:+1777777777777777777777:0:-1: ++%*1lo:+1777777777777777777777:0:-1: ++%1lo:+01777777777777777777777:0:-1: ++%*1lo:+01777777777777777777777:0:-1: ++%1lo:+2000000000000000000000:0:-1: ++%*1lo:+2000000000000000000000:0:-1: ++%1lo:+02000000000000000000000:0:-1: ++%*1lo:+02000000000000000000000:0:-1: ++%1lo:+2000000000000241653661:0:-1: ++%*1lo:+2000000000000241653661:0:-1: ++%1lo:+02000000000000241653661:0:-1: ++%*1lo:+02000000000000241653661:0:-1: ++%2lo::0:-1: ++%*2lo::0:-1: ++%2lo:-173:1:2:-1: ++%*2lo:-173:0:2: ++%2lo:-0173:1:2:0: ++%*2lo:-0173:0:2: ++%2lo:-1:1:2:-1: ++%*2lo:-1:0:2: ++%2lo:-01:1:2:0: ++%*2lo:-01:0:2: ++%2lo:-0:1:2:0: ++%*2lo:-0:0:2: ++%2lo:-00:1:2:0: ++%*2lo:-00:0:2: ++%2lo:0:1:1:0: ++%*2lo:0:0:1: ++%2lo:00:1:2:0: ++%*2lo:00:0:2: ++%2lo:1:1:1:1: ++%*2lo:1:0:1: ++%2lo:01:1:2:1: ++%*2lo:01:0:2: ++%2lo:52:1:2:42: ++%*2lo:52:0:2: ++%2lo:052:1:2:5: ++%*2lo:052:0:2: ++%2lo:1777777777777777777777:1:2:15: ++%*2lo:1777777777777777777777:0:2: ++%2lo:01777777777777777777777:1:2:1: ++%*2lo:01777777777777777777777:0:2: ++%2lo:2000000000000000000000:1:2:16: ++%*2lo:2000000000000000000000:0:2: ++%2lo:02000000000000000000000:1:2:2: ++%*2lo:02000000000000000000000:0:2: ++%2lo:2000000000000241653661:1:2:16: ++%*2lo:2000000000000241653661:0:2: ++%2lo:02000000000000241653661:1:2:2: ++%*2lo:02000000000000241653661:0:2: ++%2lo:+0:1:2:0: ++%*2lo:+0:0:2: ++%2lo:+00:1:2:0: ++%*2lo:+00:0:2: ++%2lo:+1:1:2:1: ++%*2lo:+1:0:2: ++%2lo:+01:1:2:0: ++%*2lo:+01:0:2: ++%2lo:+52:1:2:5: ++%*2lo:+52:0:2: ++%2lo:+052:1:2:0: ++%*2lo:+052:0:2: ++%2lo:+1777777777777777777777:1:2:1: ++%*2lo:+1777777777777777777777:0:2: ++%2lo:+01777777777777777777777:1:2:0: ++%*2lo:+01777777777777777777777:0:2: ++%2lo:+2000000000000000000000:1:2:2: ++%*2lo:+2000000000000000000000:0:2: ++%2lo:+02000000000000000000000:1:2:0: ++%*2lo:+02000000000000000000000:0:2: ++%2lo:+2000000000000241653661:1:2:2: ++%*2lo:+2000000000000241653661:0:2: ++%2lo:+02000000000000241653661:1:2:0: ++%*2lo:+02000000000000241653661:0:2: ++%15lo::0:-1: ++%*15lo::0:-1: ++%15lo:-173:1:4:-123: ++%*15lo:-173:0:4: ++%15lo:-0173:1:5:-123: ++%*15lo:-0173:0:5: ++%15lo:-1:1:2:-1: ++%*15lo:-1:0:2: ++%15lo:-01:1:3:-1: ++%*15lo:-01:0:3: ++%15lo:-0:1:2:0: ++%*15lo:-0:0:2: ++%15lo:-00:1:3:0: ++%*15lo:-00:0:3: ++%15lo:0:1:1:0: ++%*15lo:0:0:1: ++%15lo:00:1:2:0: ++%*15lo:00:0:2: ++%15lo:1:1:1:1: ++%*15lo:1:0:1: ++%15lo:01:1:2:1: ++%*15lo:01:0:2: ++%15lo:52:1:2:42: ++%*15lo:52:0:2: ++%15lo:052:1:3:42: ++%*15lo:052:0:3: ++%15lo:1777777777777777777777:1:15:8796093022207: ++%*15lo:1777777777777777777777:0:15: ++%15lo:01777777777777777777777:1:15:1099511627775: ++%*15lo:01777777777777777777777:0:15: ++%15lo:2000000000000000000000:1:15:8796093022208: ++%*15lo:2000000000000000000000:0:15: ++%15lo:02000000000000000000000:1:15:1099511627776: ++%*15lo:02000000000000000000000:0:15: ++%15lo:2000000000000241653661:1:15:8796093022228: ++%*15lo:2000000000000241653661:0:15: ++%15lo:02000000000000241653661:1:15:1099511627778: ++%*15lo:02000000000000241653661:0:15: ++%15lo:+0:1:2:0: ++%*15lo:+0:0:2: ++%15lo:+00:1:3:0: ++%*15lo:+00:0:3: ++%15lo:+1:1:2:1: ++%*15lo:+1:0:2: ++%15lo:+01:1:3:1: ++%*15lo:+01:0:3: ++%15lo:+52:1:3:42: ++%*15lo:+52:0:3: ++%15lo:+052:1:4:42: ++%*15lo:+052:0:4: ++%15lo:+1777777777777777777777:1:15:1099511627775: ++%*15lo:+1777777777777777777777:0:15: ++%15lo:+01777777777777777777777:1:15:137438953471: ++%*15lo:+01777777777777777777777:0:15: ++%15lo:+2000000000000000000000:1:15:1099511627776: ++%*15lo:+2000000000000000000000:0:15: ++%15lo:+02000000000000000000000:1:15:137438953472: ++%*15lo:+02000000000000000000000:0:15: ++%15lo:+2000000000000241653661:1:15:1099511627778: ++%*15lo:+2000000000000241653661:0:15: ++%15lo:+02000000000000241653661:1:15:137438953472: ++%*15lo:+02000000000000241653661:0:15: ++%25lo::0:-1: ++%*25lo::0:-1: ++%25lo:-173:1:4:-123: ++%*25lo:-173:0:4: ++%25lo:-0173:1:5:-123: ++%*25lo:-0173:0:5: ++%25lo:-1:1:2:-1: ++%*25lo:-1:0:2: ++%25lo:-01:1:3:-1: ++%*25lo:-01:0:3: ++%25lo:-0:1:2:0: ++%*25lo:-0:0:2: ++%25lo:-00:1:3:0: ++%*25lo:-00:0:3: ++%25lo:0:1:1:0: ++%*25lo:0:0:1: ++%25lo:00:1:2:0: ++%*25lo:00:0:2: ++%25lo:1:1:1:1: ++%*25lo:1:0:1: ++%25lo:01:1:2:1: ++%*25lo:01:0:2: ++%25lo:52:1:2:42: ++%*25lo:52:0:2: ++%25lo:052:1:3:42: ++%*25lo:052:0:3: ++%25lo:1777777777777777777777:1:22:18446744073709551615: ++%*25lo:1777777777777777777777:0:22: ++%25lo:01777777777777777777777:1:23:18446744073709551615: ++%*25lo:01777777777777777777777:0:23: ++%25lo:2000000000000000000000:1:22:18446744073709551615: ++%*25lo:2000000000000000000000:0:22: ++%25lo:02000000000000000000000:1:23:18446744073709551615: ++%*25lo:02000000000000000000000:0:23: ++%25lo:2000000000000241653661:1:22:18446744073709551615: ++%*25lo:2000000000000241653661:0:22: ++%25lo:02000000000000241653661:1:23:18446744073709551615: ++%*25lo:02000000000000241653661:0:23: ++%25lo:+0:1:2:0: ++%*25lo:+0:0:2: ++%25lo:+00:1:3:0: ++%*25lo:+00:0:3: ++%25lo:+1:1:2:1: ++%*25lo:+1:0:2: ++%25lo:+01:1:3:1: ++%*25lo:+01:0:3: ++%25lo:+52:1:3:42: ++%*25lo:+52:0:3: ++%25lo:+052:1:4:42: ++%*25lo:+052:0:4: ++%25lo:+1777777777777777777777:1:23:18446744073709551615: ++%*25lo:+1777777777777777777777:0:23: ++%25lo:+01777777777777777777777:1:24:18446744073709551615: ++%*25lo:+01777777777777777777777:0:24: ++%25lo:+2000000000000000000000:1:23:18446744073709551615: ++%*25lo:+2000000000000000000000:0:23: ++%25lo:+02000000000000000000000:1:24:18446744073709551615: ++%*25lo:+02000000000000000000000:0:24: ++%25lo:+2000000000000241653661:1:23:18446744073709551615: ++%*25lo:+2000000000000241653661:0:23: ++%25lo:+02000000000000241653661:1:24:18446744073709551615: ++%*25lo:+02000000000000241653661:0:24: ++%2lo: :0:-1: ++%*2lo: :0:-1: ++%2lo: -173:1:3:-1: ++%*2lo: -173:0:3: ++%2lo: -0173:1:3:0: ++%*2lo: -0173:0:3: ++%2lo: -1:1:3:-1: ++%*2lo: -1:0:3: ++%2lo: -01:1:3:0: ++%*2lo: -01:0:3: ++%2lo: -0:1:3:0: ++%*2lo: -0:0:3: ++%2lo: -00:1:3:0: ++%*2lo: -00:0:3: ++%2lo: 0:1:2:0: ++%*2lo: 0:0:2: ++%2lo: 00:1:3:0: ++%*2lo: 00:0:3: ++%2lo: 1:1:2:1: ++%*2lo: 1:0:2: ++%2lo: 01:1:3:1: ++%*2lo: 01:0:3: ++%2lo: 52:1:3:42: ++%*2lo: 52:0:3: ++%2lo: 052:1:3:5: ++%*2lo: 052:0:3: ++%2lo: 1777777777777777777777:1:3:15: ++%*2lo: 1777777777777777777777:0:3: ++%2lo: 01777777777777777777777:1:3:1: ++%*2lo: 01777777777777777777777:0:3: ++%2lo: 2000000000000000000000:1:3:16: ++%*2lo: 2000000000000000000000:0:3: ++%2lo: 02000000000000000000000:1:3:2: ++%*2lo: 02000000000000000000000:0:3: ++%2lo: 2000000000000241653661:1:3:16: ++%*2lo: 2000000000000241653661:0:3: ++%2lo: 02000000000000241653661:1:3:2: ++%*2lo: 02000000000000241653661:0:3: ++%2lo: +0:1:3:0: ++%*2lo: +0:0:3: ++%2lo: +00:1:3:0: ++%*2lo: +00:0:3: ++%2lo: +1:1:3:1: ++%*2lo: +1:0:3: ++%2lo: +01:1:3:0: ++%*2lo: +01:0:3: ++%2lo: +52:1:3:5: ++%*2lo: +52:0:3: ++%2lo: +052:1:3:0: ++%*2lo: +052:0:3: ++%2lo: +1777777777777777777777:1:3:1: ++%*2lo: +1777777777777777777777:0:3: ++%2lo: +01777777777777777777777:1:3:0: ++%*2lo: +01777777777777777777777:0:3: ++%2lo: +2000000000000000000000:1:3:2: ++%*2lo: +2000000000000000000000:0:3: ++%2lo: +02000000000000000000000:1:3:0: ++%*2lo: +02000000000000000000000:0:3: ++%2lo: +2000000000000241653661:1:3:2: ++%*2lo: +2000000000000241653661:0:3: ++%2lo: +02000000000000241653661:1:3:0: ++%*2lo: +02000000000000241653661:0:3: ++%25lo: :0:-1: ++%*25lo: :0:-1: ++%25lo: -173:1:5:-123: ++%*25lo: -173:0:5: ++%25lo: -0173:1:6:-123: ++%*25lo: -0173:0:6: ++%25lo: -1:1:3:-1: ++%*25lo: -1:0:3: ++%25lo: -01:1:4:-1: ++%*25lo: -01:0:4: ++%25lo: -0:1:3:0: ++%*25lo: -0:0:3: ++%25lo: -00:1:4:0: ++%*25lo: -00:0:4: ++%25lo: 0:1:2:0: ++%*25lo: 0:0:2: ++%25lo: 00:1:3:0: ++%*25lo: 00:0:3: ++%25lo: 1:1:2:1: ++%*25lo: 1:0:2: ++%25lo: 01:1:3:1: ++%*25lo: 01:0:3: ++%25lo: 52:1:3:42: ++%*25lo: 52:0:3: ++%25lo: 052:1:4:42: ++%*25lo: 052:0:4: ++%25lo: 1777777777777777777777:1:23:18446744073709551615: ++%*25lo: 1777777777777777777777:0:23: ++%25lo: 01777777777777777777777:1:24:18446744073709551615: ++%*25lo: 01777777777777777777777:0:24: ++%25lo: 2000000000000000000000:1:23:18446744073709551615: ++%*25lo: 2000000000000000000000:0:23: ++%25lo: 02000000000000000000000:1:24:18446744073709551615: ++%*25lo: 02000000000000000000000:0:24: ++%25lo: 2000000000000241653661:1:23:18446744073709551615: ++%*25lo: 2000000000000241653661:0:23: ++%25lo: 02000000000000241653661:1:24:18446744073709551615: ++%*25lo: 02000000000000241653661:0:24: ++%25lo: +0:1:3:0: ++%*25lo: +0:0:3: ++%25lo: +00:1:4:0: ++%*25lo: +00:0:4: ++%25lo: +1:1:3:1: ++%*25lo: +1:0:3: ++%25lo: +01:1:4:1: ++%*25lo: +01:0:4: ++%25lo: +52:1:4:42: ++%*25lo: +52:0:4: ++%25lo: +052:1:5:42: ++%*25lo: +052:0:5: ++%25lo: +1777777777777777777777:1:24:18446744073709551615: ++%*25lo: +1777777777777777777777:0:24: ++%25lo: +01777777777777777777777:1:25:18446744073709551615: ++%*25lo: +01777777777777777777777:0:25: ++%25lo: +2000000000000000000000:1:24:18446744073709551615: ++%*25lo: +2000000000000000000000:0:24: ++%25lo: +02000000000000000000000:1:25:18446744073709551615: ++%*25lo: +02000000000000000000000:0:25: ++%25lo: +2000000000000241653661:1:24:18446744073709551615: ++%*25lo: +2000000000000241653661:0:24: ++%25lo: +02000000000000241653661:1:25:18446744073709551615: ++%*25lo: +02000000000000241653661:0:25: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-ulong-u.input b/sysdeps/wordsize-64/tst-scanf-format-ulong-u.input +new file mode 100644 +index 0000000000000000..6f42e2044436da0f +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-ulong-u.input +@@ -0,0 +1,224 @@ ++%lu::0:-1: ++%*lu::0:-1: ++%lu:-123:1:4:18446744073709551493: ++%*lu:-123:0:4: ++%lu:-1:1:2:18446744073709551615: ++%*lu:-1:0:2: ++%lu:-0:1:2:0: ++%*lu:-0:0:2: ++%lu:0:1:1:0: ++%*lu:0:0:1: ++%lu:1:1:1:1: ++%*lu:1:0:1: ++%lu:42:1:2:42: ++%*lu:42:0:2: ++%lu:18446744073709551615:1:20:18446744073709551615: ++%*lu:18446744073709551615:0:20: ++%lu:18446744073709551616:1:20:18446744073709551615: ++%*lu:18446744073709551616:0:20: ++%lu:18446744073751975857:1:20:18446744073709551615: ++%*lu:18446744073751975857:0:20: ++%lu:+0:1:2:0: ++%*lu:+0:0:2: ++%lu:+1:1:2:1: ++%*lu:+1:0:2: ++%lu:+42:1:3:42: ++%*lu:+42:0:3: ++%lu:+18446744073709551615:1:21:18446744073709551615: ++%*lu:+18446744073709551615:0:21: ++%lu:+18446744073709551616:1:21:18446744073709551615: ++%*lu:+18446744073709551616:0:21: ++%lu:+18446744073751975857:1:21:18446744073709551615: ++%*lu:+18446744073751975857:0:21: ++%1lu::0:-1: ++%*1lu::0:-1: ++%1lu:-123:0:-1: ++%*1lu:-123:0:-1: ++%1lu:-1:0:-1: ++%*1lu:-1:0:-1: ++%1lu:-0:0:-1: ++%*1lu:-0:0:-1: ++%1lu:0:1:1:0: ++%*1lu:0:0:1: ++%1lu:1:1:1:1: ++%*1lu:1:0:1: ++%1lu:42:1:1:4: ++%*1lu:42:0:1: ++%1lu:18446744073709551615:1:1:1: ++%*1lu:18446744073709551615:0:1: ++%1lu:18446744073709551616:1:1:1: ++%*1lu:18446744073709551616:0:1: ++%1lu:18446744073751975857:1:1:1: ++%*1lu:18446744073751975857:0:1: ++%1lu:+0:0:-1: ++%*1lu:+0:0:-1: ++%1lu:+1:0:-1: ++%*1lu:+1:0:-1: ++%1lu:+42:0:-1: ++%*1lu:+42:0:-1: ++%1lu:+18446744073709551615:0:-1: ++%*1lu:+18446744073709551615:0:-1: ++%1lu:+18446744073709551616:0:-1: ++%*1lu:+18446744073709551616:0:-1: ++%1lu:+18446744073751975857:0:-1: ++%*1lu:+18446744073751975857:0:-1: ++%2lu::0:-1: ++%*2lu::0:-1: ++%2lu:-123:1:2:18446744073709551615: ++%*2lu:-123:0:2: ++%2lu:-1:1:2:18446744073709551615: ++%*2lu:-1:0:2: ++%2lu:-0:1:2:0: ++%*2lu:-0:0:2: ++%2lu:0:1:1:0: ++%*2lu:0:0:1: ++%2lu:1:1:1:1: ++%*2lu:1:0:1: ++%2lu:42:1:2:42: ++%*2lu:42:0:2: ++%2lu:18446744073709551615:1:2:18: ++%*2lu:18446744073709551615:0:2: ++%2lu:18446744073709551616:1:2:18: ++%*2lu:18446744073709551616:0:2: ++%2lu:18446744073751975857:1:2:18: ++%*2lu:18446744073751975857:0:2: ++%2lu:+0:1:2:0: ++%*2lu:+0:0:2: ++%2lu:+1:1:2:1: ++%*2lu:+1:0:2: ++%2lu:+42:1:2:4: ++%*2lu:+42:0:2: ++%2lu:+18446744073709551615:1:2:1: ++%*2lu:+18446744073709551615:0:2: ++%2lu:+18446744073709551616:1:2:1: ++%*2lu:+18446744073709551616:0:2: ++%2lu:+18446744073751975857:1:2:1: ++%*2lu:+18446744073751975857:0:2: ++%15lu::0:-1: ++%*15lu::0:-1: ++%15lu:-123:1:4:18446744073709551493: ++%*15lu:-123:0:4: ++%15lu:-1:1:2:18446744073709551615: ++%*15lu:-1:0:2: ++%15lu:-0:1:2:0: ++%*15lu:-0:0:2: ++%15lu:0:1:1:0: ++%*15lu:0:0:1: ++%15lu:1:1:1:1: ++%*15lu:1:0:1: ++%15lu:42:1:2:42: ++%*15lu:42:0:2: ++%15lu:18446744073709551615:1:15:184467440737095: ++%*15lu:18446744073709551615:0:15: ++%15lu:18446744073709551616:1:15:184467440737095: ++%*15lu:18446744073709551616:0:15: ++%15lu:18446744073751975857:1:15:184467440737519: ++%*15lu:18446744073751975857:0:15: ++%15lu:+0:1:2:0: ++%*15lu:+0:0:2: ++%15lu:+1:1:2:1: ++%*15lu:+1:0:2: ++%15lu:+42:1:3:42: ++%*15lu:+42:0:3: ++%15lu:+18446744073709551615:1:15:18446744073709: ++%*15lu:+18446744073709551615:0:15: ++%15lu:+18446744073709551616:1:15:18446744073709: ++%*15lu:+18446744073709551616:0:15: ++%15lu:+18446744073751975857:1:15:18446744073751: ++%*15lu:+18446744073751975857:0:15: ++%25lu::0:-1: ++%*25lu::0:-1: ++%25lu:-123:1:4:18446744073709551493: ++%*25lu:-123:0:4: ++%25lu:-1:1:2:18446744073709551615: ++%*25lu:-1:0:2: ++%25lu:-0:1:2:0: ++%*25lu:-0:0:2: ++%25lu:0:1:1:0: ++%*25lu:0:0:1: ++%25lu:1:1:1:1: ++%*25lu:1:0:1: ++%25lu:42:1:2:42: ++%*25lu:42:0:2: ++%25lu:18446744073709551615:1:20:18446744073709551615: ++%*25lu:18446744073709551615:0:20: ++%25lu:18446744073709551616:1:20:18446744073709551615: ++%*25lu:18446744073709551616:0:20: ++%25lu:18446744073751975857:1:20:18446744073709551615: ++%*25lu:18446744073751975857:0:20: ++%25lu:+0:1:2:0: ++%*25lu:+0:0:2: ++%25lu:+1:1:2:1: ++%*25lu:+1:0:2: ++%25lu:+42:1:3:42: ++%*25lu:+42:0:3: ++%25lu:+18446744073709551615:1:21:18446744073709551615: ++%*25lu:+18446744073709551615:0:21: ++%25lu:+18446744073709551616:1:21:18446744073709551615: ++%*25lu:+18446744073709551616:0:21: ++%25lu:+18446744073751975857:1:21:18446744073709551615: ++%*25lu:+18446744073751975857:0:21: ++%2lu: :0:-1: ++%*2lu: :0:-1: ++%2lu: -123:1:3:18446744073709551615: ++%*2lu: -123:0:3: ++%2lu: -1:1:3:18446744073709551615: ++%*2lu: -1:0:3: ++%2lu: -0:1:3:0: ++%*2lu: -0:0:3: ++%2lu: 0:1:2:0: ++%*2lu: 0:0:2: ++%2lu: 1:1:2:1: ++%*2lu: 1:0:2: ++%2lu: 42:1:3:42: ++%*2lu: 42:0:3: ++%2lu: 18446744073709551615:1:3:18: ++%*2lu: 18446744073709551615:0:3: ++%2lu: 18446744073709551616:1:3:18: ++%*2lu: 18446744073709551616:0:3: ++%2lu: 18446744073751975857:1:3:18: ++%*2lu: 18446744073751975857:0:3: ++%2lu: +0:1:3:0: ++%*2lu: +0:0:3: ++%2lu: +1:1:3:1: ++%*2lu: +1:0:3: ++%2lu: +42:1:3:4: ++%*2lu: +42:0:3: ++%2lu: +18446744073709551615:1:3:1: ++%*2lu: +18446744073709551615:0:3: ++%2lu: +18446744073709551616:1:3:1: ++%*2lu: +18446744073709551616:0:3: ++%2lu: +18446744073751975857:1:3:1: ++%*2lu: +18446744073751975857:0:3: ++%25lu: :0:-1: ++%*25lu: :0:-1: ++%25lu: -123:1:5:18446744073709551493: ++%*25lu: -123:0:5: ++%25lu: -1:1:3:18446744073709551615: ++%*25lu: -1:0:3: ++%25lu: -0:1:3:0: ++%*25lu: -0:0:3: ++%25lu: 0:1:2:0: ++%*25lu: 0:0:2: ++%25lu: 1:1:2:1: ++%*25lu: 1:0:2: ++%25lu: 42:1:3:42: ++%*25lu: 42:0:3: ++%25lu: 18446744073709551615:1:21:18446744073709551615: ++%*25lu: 18446744073709551615:0:21: ++%25lu: 18446744073709551616:1:21:18446744073709551615: ++%*25lu: 18446744073709551616:0:21: ++%25lu: 18446744073751975857:1:21:18446744073709551615: ++%*25lu: 18446744073751975857:0:21: ++%25lu: +0:1:3:0: ++%*25lu: +0:0:3: ++%25lu: +1:1:3:1: ++%*25lu: +1:0:3: ++%25lu: +42:1:4:42: ++%*25lu: +42:0:4: ++%25lu: +18446744073709551615:1:22:18446744073709551615: ++%*25lu: +18446744073709551615:0:22: ++%25lu: +18446744073709551616:1:22:18446744073709551615: ++%*25lu: +18446744073709551616:0:22: ++%25lu: +18446744073751975857:1:22:18446744073709551615: ++%*25lu: +18446744073751975857:0:22: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-ulong-x.input b/sysdeps/wordsize-64/tst-scanf-format-ulong-x.input +new file mode 100644 +index 0000000000000000..abe68729dd49d779 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-ulong-x.input +@@ -0,0 +1,742 @@ ++%lx::0:-1: ++%*lx::0:-1: ++%lx:-7b:1:3:18446744073709551493: ++%*lx:-7b:0:3: ++%lx:-7B:1:3:18446744073709551493: ++%*lx:-7B:0:3: ++%lx:-0X7b:1:5:18446744073709551493: ++%*lx:-0X7b:0:5: ++%lx:-0x7B:1:5:18446744073709551493: ++%*lx:-0x7B:0:5: ++%lx:-1:1:2:18446744073709551615: ++%*lx:-1:0:2: ++%lx:-0X1:1:4:18446744073709551615: ++%*lx:-0X1:0:4: ++%lx:-0x1:1:4:18446744073709551615: ++%*lx:-0x1:0:4: ++%lx:-0:1:2:0: ++%*lx:-0:0:2: ++%lx:-0X0:1:4:0: ++%*lx:-0X0:0:4: ++%lx:-0x0:1:4:0: ++%*lx:-0x0:0:4: ++%lx:0:1:1:0: ++%*lx:0:0:1: ++%lx:0X0:1:3:0: ++%*lx:0X0:0:3: ++%lx:0x0:1:3:0: ++%*lx:0x0:0:3: ++%lx:1:1:1:1: ++%*lx:1:0:1: ++%lx:0X1:1:3:1: ++%*lx:0X1:0:3: ++%lx:0x1:1:3:1: ++%*lx:0x1:0:3: ++%lx:2a:1:2:42: ++%*lx:2a:0:2: ++%lx:2A:1:2:42: ++%*lx:2A:0:2: ++%lx:0X2a:1:4:42: ++%*lx:0X2a:0:4: ++%lx:0x2A:1:4:42: ++%*lx:0x2A:0:4: ++%lx:ffffffffffffffff:1:16:18446744073709551615: ++%*lx:ffffffffffffffff:0:16: ++%lx:FFFFFFFFFFFFFFFF:1:16:18446744073709551615: ++%*lx:FFFFFFFFFFFFFFFF:0:16: ++%lx:0Xffffffffffffffff:1:18:18446744073709551615: ++%*lx:0Xffffffffffffffff:0:18: ++%lx:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*lx:0xFFFFFFFFFFFFFFFF:0:18: ++%lx:10000000000000000:1:17:18446744073709551615: ++%*lx:10000000000000000:0:17: ++%lx:0X10000000000000000:1:19:18446744073709551615: ++%*lx:0X10000000000000000:0:19: ++%lx:0x10000000000000000:1:19:18446744073709551615: ++%*lx:0x10000000000000000:0:19: ++%lx:100000000028757b1:1:17:18446744073709551615: ++%*lx:100000000028757b1:0:17: ++%lx:100000000028757B1:1:17:18446744073709551615: ++%*lx:100000000028757B1:0:17: ++%lx:0X100000000028757b1:1:19:18446744073709551615: ++%*lx:0X100000000028757b1:0:19: ++%lx:0x100000000028757B1:1:19:18446744073709551615: ++%*lx:0x100000000028757B1:0:19: ++%lx:+0:1:2:0: ++%*lx:+0:0:2: ++%lx:+0X0:1:4:0: ++%*lx:+0X0:0:4: ++%lx:+0x0:1:4:0: ++%*lx:+0x0:0:4: ++%lx:+1:1:2:1: ++%*lx:+1:0:2: ++%lx:+0X1:1:4:1: ++%*lx:+0X1:0:4: ++%lx:+0x1:1:4:1: ++%*lx:+0x1:0:4: ++%lx:+2a:1:3:42: ++%*lx:+2a:0:3: ++%lx:+2A:1:3:42: ++%*lx:+2A:0:3: ++%lx:+0X2a:1:5:42: ++%*lx:+0X2a:0:5: ++%lx:+0x2A:1:5:42: ++%*lx:+0x2A:0:5: ++%lx:+ffffffffffffffff:1:17:18446744073709551615: ++%*lx:+ffffffffffffffff:0:17: ++%lx:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*lx:+FFFFFFFFFFFFFFFF:0:17: ++%lx:+0Xffffffffffffffff:1:19:18446744073709551615: ++%*lx:+0Xffffffffffffffff:0:19: ++%lx:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*lx:+0xFFFFFFFFFFFFFFFF:0:19: ++%lx:+10000000000000000:1:18:18446744073709551615: ++%*lx:+10000000000000000:0:18: ++%lx:+0X10000000000000000:1:20:18446744073709551615: ++%*lx:+0X10000000000000000:0:20: ++%lx:+0x10000000000000000:1:20:18446744073709551615: ++%*lx:+0x10000000000000000:0:20: ++%lx:+100000000028757b1:1:18:18446744073709551615: ++%*lx:+100000000028757b1:0:18: ++%lx:+100000000028757B1:1:18:18446744073709551615: ++%*lx:+100000000028757B1:0:18: ++%lx:+0X100000000028757b1:1:20:18446744073709551615: ++%*lx:+0X100000000028757b1:0:20: ++%lx:+0x100000000028757B1:1:20:18446744073709551615: ++%*lx:+0x100000000028757B1:0:20: ++%1lx::0:-1: ++%*1lx::0:-1: ++%1lx:-7b:0:-1: ++%*1lx:-7b:0:-1: ++%1lx:-7B:0:-1: ++%*1lx:-7B:0:-1: ++%1lx:-0X7b:0:-1: ++%*1lx:-0X7b:0:-1: ++%1lx:-0x7B:0:-1: ++%*1lx:-0x7B:0:-1: ++%1lx:-1:0:-1: ++%*1lx:-1:0:-1: ++%1lx:-0X1:0:-1: ++%*1lx:-0X1:0:-1: ++%1lx:-0x1:0:-1: ++%*1lx:-0x1:0:-1: ++%1lx:-0:0:-1: ++%*1lx:-0:0:-1: ++%1lx:-0X0:0:-1: ++%*1lx:-0X0:0:-1: ++%1lx:-0x0:0:-1: ++%*1lx:-0x0:0:-1: ++%1lx:0:1:1:0: ++%*1lx:0:0:1: ++%1lx:0X0:1:1:0: ++%*1lx:0X0:0:1: ++%1lx:0x0:1:1:0: ++%*1lx:0x0:0:1: ++%1lx:1:1:1:1: ++%*1lx:1:0:1: ++%1lx:0X1:1:1:0: ++%*1lx:0X1:0:1: ++%1lx:0x1:1:1:0: ++%*1lx:0x1:0:1: ++%1lx:2a:1:1:2: ++%*1lx:2a:0:1: ++%1lx:2A:1:1:2: ++%*1lx:2A:0:1: ++%1lx:0X2a:1:1:0: ++%*1lx:0X2a:0:1: ++%1lx:0x2A:1:1:0: ++%*1lx:0x2A:0:1: ++%1lx:ffffffffffffffff:1:1:15: ++%*1lx:ffffffffffffffff:0:1: ++%1lx:FFFFFFFFFFFFFFFF:1:1:15: ++%*1lx:FFFFFFFFFFFFFFFF:0:1: ++%1lx:0Xffffffffffffffff:1:1:0: ++%*1lx:0Xffffffffffffffff:0:1: ++%1lx:0xFFFFFFFFFFFFFFFF:1:1:0: ++%*1lx:0xFFFFFFFFFFFFFFFF:0:1: ++%1lx:10000000000000000:1:1:1: ++%*1lx:10000000000000000:0:1: ++%1lx:0X10000000000000000:1:1:0: ++%*1lx:0X10000000000000000:0:1: ++%1lx:0x10000000000000000:1:1:0: ++%*1lx:0x10000000000000000:0:1: ++%1lx:100000000028757b1:1:1:1: ++%*1lx:100000000028757b1:0:1: ++%1lx:100000000028757B1:1:1:1: ++%*1lx:100000000028757B1:0:1: ++%1lx:0X100000000028757b1:1:1:0: ++%*1lx:0X100000000028757b1:0:1: ++%1lx:0x100000000028757B1:1:1:0: ++%*1lx:0x100000000028757B1:0:1: ++%1lx:+0:0:-1: ++%*1lx:+0:0:-1: ++%1lx:+0X0:0:-1: ++%*1lx:+0X0:0:-1: ++%1lx:+0x0:0:-1: ++%*1lx:+0x0:0:-1: ++%1lx:+1:0:-1: ++%*1lx:+1:0:-1: ++%1lx:+0X1:0:-1: ++%*1lx:+0X1:0:-1: ++%1lx:+0x1:0:-1: ++%*1lx:+0x1:0:-1: ++%1lx:+2a:0:-1: ++%*1lx:+2a:0:-1: ++%1lx:+2A:0:-1: ++%*1lx:+2A:0:-1: ++%1lx:+0X2a:0:-1: ++%*1lx:+0X2a:0:-1: ++%1lx:+0x2A:0:-1: ++%*1lx:+0x2A:0:-1: ++%1lx:+ffffffffffffffff:0:-1: ++%*1lx:+ffffffffffffffff:0:-1: ++%1lx:+FFFFFFFFFFFFFFFF:0:-1: ++%*1lx:+FFFFFFFFFFFFFFFF:0:-1: ++%1lx:+0Xffffffffffffffff:0:-1: ++%*1lx:+0Xffffffffffffffff:0:-1: ++%1lx:+0xFFFFFFFFFFFFFFFF:0:-1: ++%*1lx:+0xFFFFFFFFFFFFFFFF:0:-1: ++%1lx:+10000000000000000:0:-1: ++%*1lx:+10000000000000000:0:-1: ++%1lx:+0X10000000000000000:0:-1: ++%*1lx:+0X10000000000000000:0:-1: ++%1lx:+0x10000000000000000:0:-1: ++%*1lx:+0x10000000000000000:0:-1: ++%1lx:+100000000028757b1:0:-1: ++%*1lx:+100000000028757b1:0:-1: ++%1lx:+100000000028757B1:0:-1: ++%*1lx:+100000000028757B1:0:-1: ++%1lx:+0X100000000028757b1:0:-1: ++%*1lx:+0X100000000028757b1:0:-1: ++%1lx:+0x100000000028757B1:0:-1: ++%*1lx:+0x100000000028757B1:0:-1: ++%2lx::0:-1: ++%*2lx::0:-1: ++%2lx:-7b:1:2:18446744073709551609: ++%*2lx:-7b:0:2: ++%2lx:-7B:1:2:18446744073709551609: ++%*2lx:-7B:0:2: ++%2lx:-0X7b:1:2:0: ++%*2lx:-0X7b:0:2: ++%2lx:-0x7B:1:2:0: ++%*2lx:-0x7B:0:2: ++%2lx:-1:1:2:18446744073709551615: ++%*2lx:-1:0:2: ++%2lx:-0X1:1:2:0: ++%*2lx:-0X1:0:2: ++%2lx:-0x1:1:2:0: ++%*2lx:-0x1:0:2: ++%2lx:-0:1:2:0: ++%*2lx:-0:0:2: ++%2lx:-0X0:1:2:0: ++%*2lx:-0X0:0:2: ++%2lx:-0x0:1:2:0: ++%*2lx:-0x0:0:2: ++%2lx:0:1:1:0: ++%*2lx:0:0:1: ++# BZ12701 %2lx:0X0:0:-1: ++# BZ12701 %*2lx:0X0:0:-1: ++# BZ12701 %2lx:0x0:0:-1: ++# BZ12701 %*2lx:0x0:0:-1: ++%2lx:1:1:1:1: ++%*2lx:1:0:1: ++# BZ12701 %2lx:0X1:0:-1: ++# BZ12701 %*2lx:0X1:0:-1: ++# BZ12701 %2lx:0x1:0:-1: ++# BZ12701 %*2lx:0x1:0:-1: ++%2lx:2a:1:2:42: ++%*2lx:2a:0:2: ++%2lx:2A:1:2:42: ++%*2lx:2A:0:2: ++# BZ12701 %2lx:0X2a:0:-1: ++# BZ12701 %*2lx:0X2a:0:-1: ++# BZ12701 %2lx:0x2A:0:-1: ++# BZ12701 %*2lx:0x2A:0:-1: ++%2lx:ffffffffffffffff:1:2:255: ++%*2lx:ffffffffffffffff:0:2: ++%2lx:FFFFFFFFFFFFFFFF:1:2:255: ++%*2lx:FFFFFFFFFFFFFFFF:0:2: ++# BZ12701 %2lx:0Xffffffffffffffff:0:-1: ++# BZ12701 %*2lx:0Xffffffffffffffff:0:-1: ++# BZ12701 %2lx:0xFFFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2lx:0xFFFFFFFFFFFFFFFF:0:-1: ++%2lx:10000000000000000:1:2:16: ++%*2lx:10000000000000000:0:2: ++# BZ12701 %2lx:0X10000000000000000:0:-1: ++# BZ12701 %*2lx:0X10000000000000000:0:-1: ++# BZ12701 %2lx:0x10000000000000000:0:-1: ++# BZ12701 %*2lx:0x10000000000000000:0:-1: ++%2lx:100000000028757b1:1:2:16: ++%*2lx:100000000028757b1:0:2: ++%2lx:100000000028757B1:1:2:16: ++%*2lx:100000000028757B1:0:2: ++# BZ12701 %2lx:0X100000000028757b1:0:-1: ++# BZ12701 %*2lx:0X100000000028757b1:0:-1: ++# BZ12701 %2lx:0x100000000028757B1:0:-1: ++# BZ12701 %*2lx:0x100000000028757B1:0:-1: ++%2lx:+0:1:2:0: ++%*2lx:+0:0:2: ++%2lx:+0X0:1:2:0: ++%*2lx:+0X0:0:2: ++%2lx:+0x0:1:2:0: ++%*2lx:+0x0:0:2: ++%2lx:+1:1:2:1: ++%*2lx:+1:0:2: ++%2lx:+0X1:1:2:0: ++%*2lx:+0X1:0:2: ++%2lx:+0x1:1:2:0: ++%*2lx:+0x1:0:2: ++%2lx:+2a:1:2:2: ++%*2lx:+2a:0:2: ++%2lx:+2A:1:2:2: ++%*2lx:+2A:0:2: ++%2lx:+0X2a:1:2:0: ++%*2lx:+0X2a:0:2: ++%2lx:+0x2A:1:2:0: ++%*2lx:+0x2A:0:2: ++%2lx:+ffffffffffffffff:1:2:15: ++%*2lx:+ffffffffffffffff:0:2: ++%2lx:+FFFFFFFFFFFFFFFF:1:2:15: ++%*2lx:+FFFFFFFFFFFFFFFF:0:2: ++%2lx:+0Xffffffffffffffff:1:2:0: ++%*2lx:+0Xffffffffffffffff:0:2: ++%2lx:+0xFFFFFFFFFFFFFFFF:1:2:0: ++%*2lx:+0xFFFFFFFFFFFFFFFF:0:2: ++%2lx:+10000000000000000:1:2:1: ++%*2lx:+10000000000000000:0:2: ++%2lx:+0X10000000000000000:1:2:0: ++%*2lx:+0X10000000000000000:0:2: ++%2lx:+0x10000000000000000:1:2:0: ++%*2lx:+0x10000000000000000:0:2: ++%2lx:+100000000028757b1:1:2:1: ++%*2lx:+100000000028757b1:0:2: ++%2lx:+100000000028757B1:1:2:1: ++%*2lx:+100000000028757B1:0:2: ++%2lx:+0X100000000028757b1:1:2:0: ++%*2lx:+0X100000000028757b1:0:2: ++%2lx:+0x100000000028757B1:1:2:0: ++%*2lx:+0x100000000028757B1:0:2: ++%15lx::0:-1: ++%*15lx::0:-1: ++%15lx:-7b:1:3:18446744073709551493: ++%*15lx:-7b:0:3: ++%15lx:-7B:1:3:18446744073709551493: ++%*15lx:-7B:0:3: ++%15lx:-0X7b:1:5:18446744073709551493: ++%*15lx:-0X7b:0:5: ++%15lx:-0x7B:1:5:18446744073709551493: ++%*15lx:-0x7B:0:5: ++%15lx:-1:1:2:18446744073709551615: ++%*15lx:-1:0:2: ++%15lx:-0X1:1:4:18446744073709551615: ++%*15lx:-0X1:0:4: ++%15lx:-0x1:1:4:18446744073709551615: ++%*15lx:-0x1:0:4: ++%15lx:-0:1:2:0: ++%*15lx:-0:0:2: ++%15lx:-0X0:1:4:0: ++%*15lx:-0X0:0:4: ++%15lx:-0x0:1:4:0: ++%*15lx:-0x0:0:4: ++%15lx:0:1:1:0: ++%*15lx:0:0:1: ++%15lx:0X0:1:3:0: ++%*15lx:0X0:0:3: ++%15lx:0x0:1:3:0: ++%*15lx:0x0:0:3: ++%15lx:1:1:1:1: ++%*15lx:1:0:1: ++%15lx:0X1:1:3:1: ++%*15lx:0X1:0:3: ++%15lx:0x1:1:3:1: ++%*15lx:0x1:0:3: ++%15lx:2a:1:2:42: ++%*15lx:2a:0:2: ++%15lx:2A:1:2:42: ++%*15lx:2A:0:2: ++%15lx:0X2a:1:4:42: ++%*15lx:0X2a:0:4: ++%15lx:0x2A:1:4:42: ++%*15lx:0x2A:0:4: ++%15lx:ffffffffffffffff:1:15:1152921504606846975: ++%*15lx:ffffffffffffffff:0:15: ++%15lx:FFFFFFFFFFFFFFFF:1:15:1152921504606846975: ++%*15lx:FFFFFFFFFFFFFFFF:0:15: ++%15lx:0Xffffffffffffffff:1:15:4503599627370495: ++%*15lx:0Xffffffffffffffff:0:15: ++%15lx:0xFFFFFFFFFFFFFFFF:1:15:4503599627370495: ++%*15lx:0xFFFFFFFFFFFFFFFF:0:15: ++%15lx:10000000000000000:1:15:72057594037927936: ++%*15lx:10000000000000000:0:15: ++%15lx:0X10000000000000000:1:15:281474976710656: ++%*15lx:0X10000000000000000:0:15: ++%15lx:0x10000000000000000:1:15:281474976710656: ++%*15lx:0x10000000000000000:0:15: ++%15lx:100000000028757b1:1:15:72057594038093655: ++%*15lx:100000000028757b1:0:15: ++%15lx:100000000028757B1:1:15:72057594038093655: ++%*15lx:100000000028757B1:0:15: ++%15lx:0X100000000028757b1:1:15:281474976711303: ++%*15lx:0X100000000028757b1:0:15: ++%15lx:0x100000000028757B1:1:15:281474976711303: ++%*15lx:0x100000000028757B1:0:15: ++%15lx:+0:1:2:0: ++%*15lx:+0:0:2: ++%15lx:+0X0:1:4:0: ++%*15lx:+0X0:0:4: ++%15lx:+0x0:1:4:0: ++%*15lx:+0x0:0:4: ++%15lx:+1:1:2:1: ++%*15lx:+1:0:2: ++%15lx:+0X1:1:4:1: ++%*15lx:+0X1:0:4: ++%15lx:+0x1:1:4:1: ++%*15lx:+0x1:0:4: ++%15lx:+2a:1:3:42: ++%*15lx:+2a:0:3: ++%15lx:+2A:1:3:42: ++%*15lx:+2A:0:3: ++%15lx:+0X2a:1:5:42: ++%*15lx:+0X2a:0:5: ++%15lx:+0x2A:1:5:42: ++%*15lx:+0x2A:0:5: ++%15lx:+ffffffffffffffff:1:15:72057594037927935: ++%*15lx:+ffffffffffffffff:0:15: ++%15lx:+FFFFFFFFFFFFFFFF:1:15:72057594037927935: ++%*15lx:+FFFFFFFFFFFFFFFF:0:15: ++%15lx:+0Xffffffffffffffff:1:15:281474976710655: ++%*15lx:+0Xffffffffffffffff:0:15: ++%15lx:+0xFFFFFFFFFFFFFFFF:1:15:281474976710655: ++%*15lx:+0xFFFFFFFFFFFFFFFF:0:15: ++%15lx:+10000000000000000:1:15:4503599627370496: ++%*15lx:+10000000000000000:0:15: ++%15lx:+0X10000000000000000:1:15:17592186044416: ++%*15lx:+0X10000000000000000:0:15: ++%15lx:+0x10000000000000000:1:15:17592186044416: ++%*15lx:+0x10000000000000000:0:15: ++%15lx:+100000000028757b1:1:15:4503599627380853: ++%*15lx:+100000000028757b1:0:15: ++%15lx:+100000000028757B1:1:15:4503599627380853: ++%*15lx:+100000000028757B1:0:15: ++%15lx:+0X100000000028757b1:1:15:17592186044456: ++%*15lx:+0X100000000028757b1:0:15: ++%15lx:+0x100000000028757B1:1:15:17592186044456: ++%*15lx:+0x100000000028757B1:0:15: ++%25lx::0:-1: ++%*25lx::0:-1: ++%25lx:-7b:1:3:18446744073709551493: ++%*25lx:-7b:0:3: ++%25lx:-7B:1:3:18446744073709551493: ++%*25lx:-7B:0:3: ++%25lx:-0X7b:1:5:18446744073709551493: ++%*25lx:-0X7b:0:5: ++%25lx:-0x7B:1:5:18446744073709551493: ++%*25lx:-0x7B:0:5: ++%25lx:-1:1:2:18446744073709551615: ++%*25lx:-1:0:2: ++%25lx:-0X1:1:4:18446744073709551615: ++%*25lx:-0X1:0:4: ++%25lx:-0x1:1:4:18446744073709551615: ++%*25lx:-0x1:0:4: ++%25lx:-0:1:2:0: ++%*25lx:-0:0:2: ++%25lx:-0X0:1:4:0: ++%*25lx:-0X0:0:4: ++%25lx:-0x0:1:4:0: ++%*25lx:-0x0:0:4: ++%25lx:0:1:1:0: ++%*25lx:0:0:1: ++%25lx:0X0:1:3:0: ++%*25lx:0X0:0:3: ++%25lx:0x0:1:3:0: ++%*25lx:0x0:0:3: ++%25lx:1:1:1:1: ++%*25lx:1:0:1: ++%25lx:0X1:1:3:1: ++%*25lx:0X1:0:3: ++%25lx:0x1:1:3:1: ++%*25lx:0x1:0:3: ++%25lx:2a:1:2:42: ++%*25lx:2a:0:2: ++%25lx:2A:1:2:42: ++%*25lx:2A:0:2: ++%25lx:0X2a:1:4:42: ++%*25lx:0X2a:0:4: ++%25lx:0x2A:1:4:42: ++%*25lx:0x2A:0:4: ++%25lx:ffffffffffffffff:1:16:18446744073709551615: ++%*25lx:ffffffffffffffff:0:16: ++%25lx:FFFFFFFFFFFFFFFF:1:16:18446744073709551615: ++%*25lx:FFFFFFFFFFFFFFFF:0:16: ++%25lx:0Xffffffffffffffff:1:18:18446744073709551615: ++%*25lx:0Xffffffffffffffff:0:18: ++%25lx:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*25lx:0xFFFFFFFFFFFFFFFF:0:18: ++%25lx:10000000000000000:1:17:18446744073709551615: ++%*25lx:10000000000000000:0:17: ++%25lx:0X10000000000000000:1:19:18446744073709551615: ++%*25lx:0X10000000000000000:0:19: ++%25lx:0x10000000000000000:1:19:18446744073709551615: ++%*25lx:0x10000000000000000:0:19: ++%25lx:100000000028757b1:1:17:18446744073709551615: ++%*25lx:100000000028757b1:0:17: ++%25lx:100000000028757B1:1:17:18446744073709551615: ++%*25lx:100000000028757B1:0:17: ++%25lx:0X100000000028757b1:1:19:18446744073709551615: ++%*25lx:0X100000000028757b1:0:19: ++%25lx:0x100000000028757B1:1:19:18446744073709551615: ++%*25lx:0x100000000028757B1:0:19: ++%25lx:+0:1:2:0: ++%*25lx:+0:0:2: ++%25lx:+0X0:1:4:0: ++%*25lx:+0X0:0:4: ++%25lx:+0x0:1:4:0: ++%*25lx:+0x0:0:4: ++%25lx:+1:1:2:1: ++%*25lx:+1:0:2: ++%25lx:+0X1:1:4:1: ++%*25lx:+0X1:0:4: ++%25lx:+0x1:1:4:1: ++%*25lx:+0x1:0:4: ++%25lx:+2a:1:3:42: ++%*25lx:+2a:0:3: ++%25lx:+2A:1:3:42: ++%*25lx:+2A:0:3: ++%25lx:+0X2a:1:5:42: ++%*25lx:+0X2a:0:5: ++%25lx:+0x2A:1:5:42: ++%*25lx:+0x2A:0:5: ++%25lx:+ffffffffffffffff:1:17:18446744073709551615: ++%*25lx:+ffffffffffffffff:0:17: ++%25lx:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*25lx:+FFFFFFFFFFFFFFFF:0:17: ++%25lx:+0Xffffffffffffffff:1:19:18446744073709551615: ++%*25lx:+0Xffffffffffffffff:0:19: ++%25lx:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*25lx:+0xFFFFFFFFFFFFFFFF:0:19: ++%25lx:+10000000000000000:1:18:18446744073709551615: ++%*25lx:+10000000000000000:0:18: ++%25lx:+0X10000000000000000:1:20:18446744073709551615: ++%*25lx:+0X10000000000000000:0:20: ++%25lx:+0x10000000000000000:1:20:18446744073709551615: ++%*25lx:+0x10000000000000000:0:20: ++%25lx:+100000000028757b1:1:18:18446744073709551615: ++%*25lx:+100000000028757b1:0:18: ++%25lx:+100000000028757B1:1:18:18446744073709551615: ++%*25lx:+100000000028757B1:0:18: ++%25lx:+0X100000000028757b1:1:20:18446744073709551615: ++%*25lx:+0X100000000028757b1:0:20: ++%25lx:+0x100000000028757B1:1:20:18446744073709551615: ++%*25lx:+0x100000000028757B1:0:20: ++%2lx: :0:-1: ++%*2lx: :0:-1: ++%2lx: -7b:1:3:18446744073709551609: ++%*2lx: -7b:0:3: ++%2lx: -7B:1:3:18446744073709551609: ++%*2lx: -7B:0:3: ++%2lx: -0X7b:1:3:0: ++%*2lx: -0X7b:0:3: ++%2lx: -0x7B:1:3:0: ++%*2lx: -0x7B:0:3: ++%2lx: -1:1:3:18446744073709551615: ++%*2lx: -1:0:3: ++%2lx: -0X1:1:3:0: ++%*2lx: -0X1:0:3: ++%2lx: -0x1:1:3:0: ++%*2lx: -0x1:0:3: ++%2lx: -0:1:3:0: ++%*2lx: -0:0:3: ++%2lx: -0X0:1:3:0: ++%*2lx: -0X0:0:3: ++%2lx: -0x0:1:3:0: ++%*2lx: -0x0:0:3: ++%2lx: 0:1:2:0: ++%*2lx: 0:0:2: ++# BZ12701 %2lx: 0X0:0:-1: ++# BZ12701 %*2lx: 0X0:0:-1: ++# BZ12701 %2lx: 0x0:0:-1: ++# BZ12701 %*2lx: 0x0:0:-1: ++%2lx: 1:1:2:1: ++%*2lx: 1:0:2: ++# BZ12701 %2lx: 0X1:0:-1: ++# BZ12701 %*2lx: 0X1:0:-1: ++# BZ12701 %2lx: 0x1:0:-1: ++# BZ12701 %*2lx: 0x1:0:-1: ++%2lx: 2a:1:3:42: ++%*2lx: 2a:0:3: ++%2lx: 2A:1:3:42: ++%*2lx: 2A:0:3: ++# BZ12701 %2lx: 0X2a:0:-1: ++# BZ12701 %*2lx: 0X2a:0:-1: ++# BZ12701 %2lx: 0x2A:0:-1: ++# BZ12701 %*2lx: 0x2A:0:-1: ++%2lx: ffffffffffffffff:1:3:255: ++%*2lx: ffffffffffffffff:0:3: ++%2lx: FFFFFFFFFFFFFFFF:1:3:255: ++%*2lx: FFFFFFFFFFFFFFFF:0:3: ++# BZ12701 %2lx: 0Xffffffffffffffff:0:-1: ++# BZ12701 %*2lx: 0Xffffffffffffffff:0:-1: ++# BZ12701 %2lx: 0xFFFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2lx: 0xFFFFFFFFFFFFFFFF:0:-1: ++%2lx: 10000000000000000:1:3:16: ++%*2lx: 10000000000000000:0:3: ++# BZ12701 %2lx: 0X10000000000000000:0:-1: ++# BZ12701 %*2lx: 0X10000000000000000:0:-1: ++# BZ12701 %2lx: 0x10000000000000000:0:-1: ++# BZ12701 %*2lx: 0x10000000000000000:0:-1: ++%2lx: 100000000028757b1:1:3:16: ++%*2lx: 100000000028757b1:0:3: ++%2lx: 100000000028757B1:1:3:16: ++%*2lx: 100000000028757B1:0:3: ++# BZ12701 %2lx: 0X100000000028757b1:0:-1: ++# BZ12701 %*2lx: 0X100000000028757b1:0:-1: ++# BZ12701 %2lx: 0x100000000028757B1:0:-1: ++# BZ12701 %*2lx: 0x100000000028757B1:0:-1: ++%2lx: +0:1:3:0: ++%*2lx: +0:0:3: ++%2lx: +0X0:1:3:0: ++%*2lx: +0X0:0:3: ++%2lx: +0x0:1:3:0: ++%*2lx: +0x0:0:3: ++%2lx: +1:1:3:1: ++%*2lx: +1:0:3: ++%2lx: +0X1:1:3:0: ++%*2lx: +0X1:0:3: ++%2lx: +0x1:1:3:0: ++%*2lx: +0x1:0:3: ++%2lx: +2a:1:3:2: ++%*2lx: +2a:0:3: ++%2lx: +2A:1:3:2: ++%*2lx: +2A:0:3: ++%2lx: +0X2a:1:3:0: ++%*2lx: +0X2a:0:3: ++%2lx: +0x2A:1:3:0: ++%*2lx: +0x2A:0:3: ++%2lx: +ffffffffffffffff:1:3:15: ++%*2lx: +ffffffffffffffff:0:3: ++%2lx: +FFFFFFFFFFFFFFFF:1:3:15: ++%*2lx: +FFFFFFFFFFFFFFFF:0:3: ++%2lx: +0Xffffffffffffffff:1:3:0: ++%*2lx: +0Xffffffffffffffff:0:3: ++%2lx: +0xFFFFFFFFFFFFFFFF:1:3:0: ++%*2lx: +0xFFFFFFFFFFFFFFFF:0:3: ++%2lx: +10000000000000000:1:3:1: ++%*2lx: +10000000000000000:0:3: ++%2lx: +0X10000000000000000:1:3:0: ++%*2lx: +0X10000000000000000:0:3: ++%2lx: +0x10000000000000000:1:3:0: ++%*2lx: +0x10000000000000000:0:3: ++%2lx: +100000000028757b1:1:3:1: ++%*2lx: +100000000028757b1:0:3: ++%2lx: +100000000028757B1:1:3:1: ++%*2lx: +100000000028757B1:0:3: ++%2lx: +0X100000000028757b1:1:3:0: ++%*2lx: +0X100000000028757b1:0:3: ++%2lx: +0x100000000028757B1:1:3:0: ++%*2lx: +0x100000000028757B1:0:3: ++%25lx: :0:-1: ++%*25lx: :0:-1: ++%25lx: -7b:1:4:18446744073709551493: ++%*25lx: -7b:0:4: ++%25lx: -7B:1:4:18446744073709551493: ++%*25lx: -7B:0:4: ++%25lx: -0X7b:1:6:18446744073709551493: ++%*25lx: -0X7b:0:6: ++%25lx: -0x7B:1:6:18446744073709551493: ++%*25lx: -0x7B:0:6: ++%25lx: -1:1:3:18446744073709551615: ++%*25lx: -1:0:3: ++%25lx: -0X1:1:5:18446744073709551615: ++%*25lx: -0X1:0:5: ++%25lx: -0x1:1:5:18446744073709551615: ++%*25lx: -0x1:0:5: ++%25lx: -0:1:3:0: ++%*25lx: -0:0:3: ++%25lx: -0X0:1:5:0: ++%*25lx: -0X0:0:5: ++%25lx: -0x0:1:5:0: ++%*25lx: -0x0:0:5: ++%25lx: 0:1:2:0: ++%*25lx: 0:0:2: ++%25lx: 0X0:1:4:0: ++%*25lx: 0X0:0:4: ++%25lx: 0x0:1:4:0: ++%*25lx: 0x0:0:4: ++%25lx: 1:1:2:1: ++%*25lx: 1:0:2: ++%25lx: 0X1:1:4:1: ++%*25lx: 0X1:0:4: ++%25lx: 0x1:1:4:1: ++%*25lx: 0x1:0:4: ++%25lx: 2a:1:3:42: ++%*25lx: 2a:0:3: ++%25lx: 2A:1:3:42: ++%*25lx: 2A:0:3: ++%25lx: 0X2a:1:5:42: ++%*25lx: 0X2a:0:5: ++%25lx: 0x2A:1:5:42: ++%*25lx: 0x2A:0:5: ++%25lx: ffffffffffffffff:1:17:18446744073709551615: ++%*25lx: ffffffffffffffff:0:17: ++%25lx: FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*25lx: FFFFFFFFFFFFFFFF:0:17: ++%25lx: 0Xffffffffffffffff:1:19:18446744073709551615: ++%*25lx: 0Xffffffffffffffff:0:19: ++%25lx: 0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*25lx: 0xFFFFFFFFFFFFFFFF:0:19: ++%25lx: 10000000000000000:1:18:18446744073709551615: ++%*25lx: 10000000000000000:0:18: ++%25lx: 0X10000000000000000:1:20:18446744073709551615: ++%*25lx: 0X10000000000000000:0:20: ++%25lx: 0x10000000000000000:1:20:18446744073709551615: ++%*25lx: 0x10000000000000000:0:20: ++%25lx: 100000000028757b1:1:18:18446744073709551615: ++%*25lx: 100000000028757b1:0:18: ++%25lx: 100000000028757B1:1:18:18446744073709551615: ++%*25lx: 100000000028757B1:0:18: ++%25lx: 0X100000000028757b1:1:20:18446744073709551615: ++%*25lx: 0X100000000028757b1:0:20: ++%25lx: 0x100000000028757B1:1:20:18446744073709551615: ++%*25lx: 0x100000000028757B1:0:20: ++%25lx: +0:1:3:0: ++%*25lx: +0:0:3: ++%25lx: +0X0:1:5:0: ++%*25lx: +0X0:0:5: ++%25lx: +0x0:1:5:0: ++%*25lx: +0x0:0:5: ++%25lx: +1:1:3:1: ++%*25lx: +1:0:3: ++%25lx: +0X1:1:5:1: ++%*25lx: +0X1:0:5: ++%25lx: +0x1:1:5:1: ++%*25lx: +0x1:0:5: ++%25lx: +2a:1:4:42: ++%*25lx: +2a:0:4: ++%25lx: +2A:1:4:42: ++%*25lx: +2A:0:4: ++%25lx: +0X2a:1:6:42: ++%*25lx: +0X2a:0:6: ++%25lx: +0x2A:1:6:42: ++%*25lx: +0x2A:0:6: ++%25lx: +ffffffffffffffff:1:18:18446744073709551615: ++%*25lx: +ffffffffffffffff:0:18: ++%25lx: +FFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*25lx: +FFFFFFFFFFFFFFFF:0:18: ++%25lx: +0Xffffffffffffffff:1:20:18446744073709551615: ++%*25lx: +0Xffffffffffffffff:0:20: ++%25lx: +0xFFFFFFFFFFFFFFFF:1:20:18446744073709551615: ++%*25lx: +0xFFFFFFFFFFFFFFFF:0:20: ++%25lx: +10000000000000000:1:19:18446744073709551615: ++%*25lx: +10000000000000000:0:19: ++%25lx: +0X10000000000000000:1:21:18446744073709551615: ++%*25lx: +0X10000000000000000:0:21: ++%25lx: +0x10000000000000000:1:21:18446744073709551615: ++%*25lx: +0x10000000000000000:0:21: ++%25lx: +100000000028757b1:1:19:18446744073709551615: ++%*25lx: +100000000028757b1:0:19: ++%25lx: +100000000028757B1:1:19:18446744073709551615: ++%*25lx: +100000000028757B1:0:19: ++%25lx: +0X100000000028757b1:1:21:18446744073709551615: ++%*25lx: +0X100000000028757b1:0:21: ++%25lx: +0x100000000028757B1:1:21:18446744073709551615: ++%*25lx: +0x100000000028757B1:0:21: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-ulong-xx.input b/sysdeps/wordsize-64/tst-scanf-format-ulong-xx.input +new file mode 100644 +index 0000000000000000..883b3b423c871150 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-ulong-xx.input +@@ -0,0 +1,742 @@ ++%lX::0:-1: ++%*lX::0:-1: ++%lX:-7b:1:3:18446744073709551493: ++%*lX:-7b:0:3: ++%lX:-7B:1:3:18446744073709551493: ++%*lX:-7B:0:3: ++%lX:-0X7b:1:5:18446744073709551493: ++%*lX:-0X7b:0:5: ++%lX:-0x7B:1:5:18446744073709551493: ++%*lX:-0x7B:0:5: ++%lX:-1:1:2:18446744073709551615: ++%*lX:-1:0:2: ++%lX:-0X1:1:4:18446744073709551615: ++%*lX:-0X1:0:4: ++%lX:-0x1:1:4:18446744073709551615: ++%*lX:-0x1:0:4: ++%lX:-0:1:2:0: ++%*lX:-0:0:2: ++%lX:-0X0:1:4:0: ++%*lX:-0X0:0:4: ++%lX:-0x0:1:4:0: ++%*lX:-0x0:0:4: ++%lX:0:1:1:0: ++%*lX:0:0:1: ++%lX:0X0:1:3:0: ++%*lX:0X0:0:3: ++%lX:0x0:1:3:0: ++%*lX:0x0:0:3: ++%lX:1:1:1:1: ++%*lX:1:0:1: ++%lX:0X1:1:3:1: ++%*lX:0X1:0:3: ++%lX:0x1:1:3:1: ++%*lX:0x1:0:3: ++%lX:2a:1:2:42: ++%*lX:2a:0:2: ++%lX:2A:1:2:42: ++%*lX:2A:0:2: ++%lX:0X2a:1:4:42: ++%*lX:0X2a:0:4: ++%lX:0x2A:1:4:42: ++%*lX:0x2A:0:4: ++%lX:ffffffffffffffff:1:16:18446744073709551615: ++%*lX:ffffffffffffffff:0:16: ++%lX:FFFFFFFFFFFFFFFF:1:16:18446744073709551615: ++%*lX:FFFFFFFFFFFFFFFF:0:16: ++%lX:0Xffffffffffffffff:1:18:18446744073709551615: ++%*lX:0Xffffffffffffffff:0:18: ++%lX:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*lX:0xFFFFFFFFFFFFFFFF:0:18: ++%lX:10000000000000000:1:17:18446744073709551615: ++%*lX:10000000000000000:0:17: ++%lX:0X10000000000000000:1:19:18446744073709551615: ++%*lX:0X10000000000000000:0:19: ++%lX:0x10000000000000000:1:19:18446744073709551615: ++%*lX:0x10000000000000000:0:19: ++%lX:100000000028757b1:1:17:18446744073709551615: ++%*lX:100000000028757b1:0:17: ++%lX:100000000028757B1:1:17:18446744073709551615: ++%*lX:100000000028757B1:0:17: ++%lX:0X100000000028757b1:1:19:18446744073709551615: ++%*lX:0X100000000028757b1:0:19: ++%lX:0x100000000028757B1:1:19:18446744073709551615: ++%*lX:0x100000000028757B1:0:19: ++%lX:+0:1:2:0: ++%*lX:+0:0:2: ++%lX:+0X0:1:4:0: ++%*lX:+0X0:0:4: ++%lX:+0x0:1:4:0: ++%*lX:+0x0:0:4: ++%lX:+1:1:2:1: ++%*lX:+1:0:2: ++%lX:+0X1:1:4:1: ++%*lX:+0X1:0:4: ++%lX:+0x1:1:4:1: ++%*lX:+0x1:0:4: ++%lX:+2a:1:3:42: ++%*lX:+2a:0:3: ++%lX:+2A:1:3:42: ++%*lX:+2A:0:3: ++%lX:+0X2a:1:5:42: ++%*lX:+0X2a:0:5: ++%lX:+0x2A:1:5:42: ++%*lX:+0x2A:0:5: ++%lX:+ffffffffffffffff:1:17:18446744073709551615: ++%*lX:+ffffffffffffffff:0:17: ++%lX:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*lX:+FFFFFFFFFFFFFFFF:0:17: ++%lX:+0Xffffffffffffffff:1:19:18446744073709551615: ++%*lX:+0Xffffffffffffffff:0:19: ++%lX:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*lX:+0xFFFFFFFFFFFFFFFF:0:19: ++%lX:+10000000000000000:1:18:18446744073709551615: ++%*lX:+10000000000000000:0:18: ++%lX:+0X10000000000000000:1:20:18446744073709551615: ++%*lX:+0X10000000000000000:0:20: ++%lX:+0x10000000000000000:1:20:18446744073709551615: ++%*lX:+0x10000000000000000:0:20: ++%lX:+100000000028757b1:1:18:18446744073709551615: ++%*lX:+100000000028757b1:0:18: ++%lX:+100000000028757B1:1:18:18446744073709551615: ++%*lX:+100000000028757B1:0:18: ++%lX:+0X100000000028757b1:1:20:18446744073709551615: ++%*lX:+0X100000000028757b1:0:20: ++%lX:+0x100000000028757B1:1:20:18446744073709551615: ++%*lX:+0x100000000028757B1:0:20: ++%1lX::0:-1: ++%*1lX::0:-1: ++%1lX:-7b:0:-1: ++%*1lX:-7b:0:-1: ++%1lX:-7B:0:-1: ++%*1lX:-7B:0:-1: ++%1lX:-0X7b:0:-1: ++%*1lX:-0X7b:0:-1: ++%1lX:-0x7B:0:-1: ++%*1lX:-0x7B:0:-1: ++%1lX:-1:0:-1: ++%*1lX:-1:0:-1: ++%1lX:-0X1:0:-1: ++%*1lX:-0X1:0:-1: ++%1lX:-0x1:0:-1: ++%*1lX:-0x1:0:-1: ++%1lX:-0:0:-1: ++%*1lX:-0:0:-1: ++%1lX:-0X0:0:-1: ++%*1lX:-0X0:0:-1: ++%1lX:-0x0:0:-1: ++%*1lX:-0x0:0:-1: ++%1lX:0:1:1:0: ++%*1lX:0:0:1: ++%1lX:0X0:1:1:0: ++%*1lX:0X0:0:1: ++%1lX:0x0:1:1:0: ++%*1lX:0x0:0:1: ++%1lX:1:1:1:1: ++%*1lX:1:0:1: ++%1lX:0X1:1:1:0: ++%*1lX:0X1:0:1: ++%1lX:0x1:1:1:0: ++%*1lX:0x1:0:1: ++%1lX:2a:1:1:2: ++%*1lX:2a:0:1: ++%1lX:2A:1:1:2: ++%*1lX:2A:0:1: ++%1lX:0X2a:1:1:0: ++%*1lX:0X2a:0:1: ++%1lX:0x2A:1:1:0: ++%*1lX:0x2A:0:1: ++%1lX:ffffffffffffffff:1:1:15: ++%*1lX:ffffffffffffffff:0:1: ++%1lX:FFFFFFFFFFFFFFFF:1:1:15: ++%*1lX:FFFFFFFFFFFFFFFF:0:1: ++%1lX:0Xffffffffffffffff:1:1:0: ++%*1lX:0Xffffffffffffffff:0:1: ++%1lX:0xFFFFFFFFFFFFFFFF:1:1:0: ++%*1lX:0xFFFFFFFFFFFFFFFF:0:1: ++%1lX:10000000000000000:1:1:1: ++%*1lX:10000000000000000:0:1: ++%1lX:0X10000000000000000:1:1:0: ++%*1lX:0X10000000000000000:0:1: ++%1lX:0x10000000000000000:1:1:0: ++%*1lX:0x10000000000000000:0:1: ++%1lX:100000000028757b1:1:1:1: ++%*1lX:100000000028757b1:0:1: ++%1lX:100000000028757B1:1:1:1: ++%*1lX:100000000028757B1:0:1: ++%1lX:0X100000000028757b1:1:1:0: ++%*1lX:0X100000000028757b1:0:1: ++%1lX:0x100000000028757B1:1:1:0: ++%*1lX:0x100000000028757B1:0:1: ++%1lX:+0:0:-1: ++%*1lX:+0:0:-1: ++%1lX:+0X0:0:-1: ++%*1lX:+0X0:0:-1: ++%1lX:+0x0:0:-1: ++%*1lX:+0x0:0:-1: ++%1lX:+1:0:-1: ++%*1lX:+1:0:-1: ++%1lX:+0X1:0:-1: ++%*1lX:+0X1:0:-1: ++%1lX:+0x1:0:-1: ++%*1lX:+0x1:0:-1: ++%1lX:+2a:0:-1: ++%*1lX:+2a:0:-1: ++%1lX:+2A:0:-1: ++%*1lX:+2A:0:-1: ++%1lX:+0X2a:0:-1: ++%*1lX:+0X2a:0:-1: ++%1lX:+0x2A:0:-1: ++%*1lX:+0x2A:0:-1: ++%1lX:+ffffffffffffffff:0:-1: ++%*1lX:+ffffffffffffffff:0:-1: ++%1lX:+FFFFFFFFFFFFFFFF:0:-1: ++%*1lX:+FFFFFFFFFFFFFFFF:0:-1: ++%1lX:+0Xffffffffffffffff:0:-1: ++%*1lX:+0Xffffffffffffffff:0:-1: ++%1lX:+0xFFFFFFFFFFFFFFFF:0:-1: ++%*1lX:+0xFFFFFFFFFFFFFFFF:0:-1: ++%1lX:+10000000000000000:0:-1: ++%*1lX:+10000000000000000:0:-1: ++%1lX:+0X10000000000000000:0:-1: ++%*1lX:+0X10000000000000000:0:-1: ++%1lX:+0x10000000000000000:0:-1: ++%*1lX:+0x10000000000000000:0:-1: ++%1lX:+100000000028757b1:0:-1: ++%*1lX:+100000000028757b1:0:-1: ++%1lX:+100000000028757B1:0:-1: ++%*1lX:+100000000028757B1:0:-1: ++%1lX:+0X100000000028757b1:0:-1: ++%*1lX:+0X100000000028757b1:0:-1: ++%1lX:+0x100000000028757B1:0:-1: ++%*1lX:+0x100000000028757B1:0:-1: ++%2lX::0:-1: ++%*2lX::0:-1: ++%2lX:-7b:1:2:18446744073709551609: ++%*2lX:-7b:0:2: ++%2lX:-7B:1:2:18446744073709551609: ++%*2lX:-7B:0:2: ++%2lX:-0X7b:1:2:0: ++%*2lX:-0X7b:0:2: ++%2lX:-0x7B:1:2:0: ++%*2lX:-0x7B:0:2: ++%2lX:-1:1:2:18446744073709551615: ++%*2lX:-1:0:2: ++%2lX:-0X1:1:2:0: ++%*2lX:-0X1:0:2: ++%2lX:-0x1:1:2:0: ++%*2lX:-0x1:0:2: ++%2lX:-0:1:2:0: ++%*2lX:-0:0:2: ++%2lX:-0X0:1:2:0: ++%*2lX:-0X0:0:2: ++%2lX:-0x0:1:2:0: ++%*2lX:-0x0:0:2: ++%2lX:0:1:1:0: ++%*2lX:0:0:1: ++# BZ12701 %2lX:0X0:0:-1: ++# BZ12701 %*2lX:0X0:0:-1: ++# BZ12701 %2lX:0x0:0:-1: ++# BZ12701 %*2lX:0x0:0:-1: ++%2lX:1:1:1:1: ++%*2lX:1:0:1: ++# BZ12701 %2lX:0X1:0:-1: ++# BZ12701 %*2lX:0X1:0:-1: ++# BZ12701 %2lX:0x1:0:-1: ++# BZ12701 %*2lX:0x1:0:-1: ++%2lX:2a:1:2:42: ++%*2lX:2a:0:2: ++%2lX:2A:1:2:42: ++%*2lX:2A:0:2: ++# BZ12701 %2lX:0X2a:0:-1: ++# BZ12701 %*2lX:0X2a:0:-1: ++# BZ12701 %2lX:0x2A:0:-1: ++# BZ12701 %*2lX:0x2A:0:-1: ++%2lX:ffffffffffffffff:1:2:255: ++%*2lX:ffffffffffffffff:0:2: ++%2lX:FFFFFFFFFFFFFFFF:1:2:255: ++%*2lX:FFFFFFFFFFFFFFFF:0:2: ++# BZ12701 %2lX:0Xffffffffffffffff:0:-1: ++# BZ12701 %*2lX:0Xffffffffffffffff:0:-1: ++# BZ12701 %2lX:0xFFFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2lX:0xFFFFFFFFFFFFFFFF:0:-1: ++%2lX:10000000000000000:1:2:16: ++%*2lX:10000000000000000:0:2: ++# BZ12701 %2lX:0X10000000000000000:0:-1: ++# BZ12701 %*2lX:0X10000000000000000:0:-1: ++# BZ12701 %2lX:0x10000000000000000:0:-1: ++# BZ12701 %*2lX:0x10000000000000000:0:-1: ++%2lX:100000000028757b1:1:2:16: ++%*2lX:100000000028757b1:0:2: ++%2lX:100000000028757B1:1:2:16: ++%*2lX:100000000028757B1:0:2: ++# BZ12701 %2lX:0X100000000028757b1:0:-1: ++# BZ12701 %*2lX:0X100000000028757b1:0:-1: ++# BZ12701 %2lX:0x100000000028757B1:0:-1: ++# BZ12701 %*2lX:0x100000000028757B1:0:-1: ++%2lX:+0:1:2:0: ++%*2lX:+0:0:2: ++%2lX:+0X0:1:2:0: ++%*2lX:+0X0:0:2: ++%2lX:+0x0:1:2:0: ++%*2lX:+0x0:0:2: ++%2lX:+1:1:2:1: ++%*2lX:+1:0:2: ++%2lX:+0X1:1:2:0: ++%*2lX:+0X1:0:2: ++%2lX:+0x1:1:2:0: ++%*2lX:+0x1:0:2: ++%2lX:+2a:1:2:2: ++%*2lX:+2a:0:2: ++%2lX:+2A:1:2:2: ++%*2lX:+2A:0:2: ++%2lX:+0X2a:1:2:0: ++%*2lX:+0X2a:0:2: ++%2lX:+0x2A:1:2:0: ++%*2lX:+0x2A:0:2: ++%2lX:+ffffffffffffffff:1:2:15: ++%*2lX:+ffffffffffffffff:0:2: ++%2lX:+FFFFFFFFFFFFFFFF:1:2:15: ++%*2lX:+FFFFFFFFFFFFFFFF:0:2: ++%2lX:+0Xffffffffffffffff:1:2:0: ++%*2lX:+0Xffffffffffffffff:0:2: ++%2lX:+0xFFFFFFFFFFFFFFFF:1:2:0: ++%*2lX:+0xFFFFFFFFFFFFFFFF:0:2: ++%2lX:+10000000000000000:1:2:1: ++%*2lX:+10000000000000000:0:2: ++%2lX:+0X10000000000000000:1:2:0: ++%*2lX:+0X10000000000000000:0:2: ++%2lX:+0x10000000000000000:1:2:0: ++%*2lX:+0x10000000000000000:0:2: ++%2lX:+100000000028757b1:1:2:1: ++%*2lX:+100000000028757b1:0:2: ++%2lX:+100000000028757B1:1:2:1: ++%*2lX:+100000000028757B1:0:2: ++%2lX:+0X100000000028757b1:1:2:0: ++%*2lX:+0X100000000028757b1:0:2: ++%2lX:+0x100000000028757B1:1:2:0: ++%*2lX:+0x100000000028757B1:0:2: ++%15lX::0:-1: ++%*15lX::0:-1: ++%15lX:-7b:1:3:18446744073709551493: ++%*15lX:-7b:0:3: ++%15lX:-7B:1:3:18446744073709551493: ++%*15lX:-7B:0:3: ++%15lX:-0X7b:1:5:18446744073709551493: ++%*15lX:-0X7b:0:5: ++%15lX:-0x7B:1:5:18446744073709551493: ++%*15lX:-0x7B:0:5: ++%15lX:-1:1:2:18446744073709551615: ++%*15lX:-1:0:2: ++%15lX:-0X1:1:4:18446744073709551615: ++%*15lX:-0X1:0:4: ++%15lX:-0x1:1:4:18446744073709551615: ++%*15lX:-0x1:0:4: ++%15lX:-0:1:2:0: ++%*15lX:-0:0:2: ++%15lX:-0X0:1:4:0: ++%*15lX:-0X0:0:4: ++%15lX:-0x0:1:4:0: ++%*15lX:-0x0:0:4: ++%15lX:0:1:1:0: ++%*15lX:0:0:1: ++%15lX:0X0:1:3:0: ++%*15lX:0X0:0:3: ++%15lX:0x0:1:3:0: ++%*15lX:0x0:0:3: ++%15lX:1:1:1:1: ++%*15lX:1:0:1: ++%15lX:0X1:1:3:1: ++%*15lX:0X1:0:3: ++%15lX:0x1:1:3:1: ++%*15lX:0x1:0:3: ++%15lX:2a:1:2:42: ++%*15lX:2a:0:2: ++%15lX:2A:1:2:42: ++%*15lX:2A:0:2: ++%15lX:0X2a:1:4:42: ++%*15lX:0X2a:0:4: ++%15lX:0x2A:1:4:42: ++%*15lX:0x2A:0:4: ++%15lX:ffffffffffffffff:1:15:1152921504606846975: ++%*15lX:ffffffffffffffff:0:15: ++%15lX:FFFFFFFFFFFFFFFF:1:15:1152921504606846975: ++%*15lX:FFFFFFFFFFFFFFFF:0:15: ++%15lX:0Xffffffffffffffff:1:15:4503599627370495: ++%*15lX:0Xffffffffffffffff:0:15: ++%15lX:0xFFFFFFFFFFFFFFFF:1:15:4503599627370495: ++%*15lX:0xFFFFFFFFFFFFFFFF:0:15: ++%15lX:10000000000000000:1:15:72057594037927936: ++%*15lX:10000000000000000:0:15: ++%15lX:0X10000000000000000:1:15:281474976710656: ++%*15lX:0X10000000000000000:0:15: ++%15lX:0x10000000000000000:1:15:281474976710656: ++%*15lX:0x10000000000000000:0:15: ++%15lX:100000000028757b1:1:15:72057594038093655: ++%*15lX:100000000028757b1:0:15: ++%15lX:100000000028757B1:1:15:72057594038093655: ++%*15lX:100000000028757B1:0:15: ++%15lX:0X100000000028757b1:1:15:281474976711303: ++%*15lX:0X100000000028757b1:0:15: ++%15lX:0x100000000028757B1:1:15:281474976711303: ++%*15lX:0x100000000028757B1:0:15: ++%15lX:+0:1:2:0: ++%*15lX:+0:0:2: ++%15lX:+0X0:1:4:0: ++%*15lX:+0X0:0:4: ++%15lX:+0x0:1:4:0: ++%*15lX:+0x0:0:4: ++%15lX:+1:1:2:1: ++%*15lX:+1:0:2: ++%15lX:+0X1:1:4:1: ++%*15lX:+0X1:0:4: ++%15lX:+0x1:1:4:1: ++%*15lX:+0x1:0:4: ++%15lX:+2a:1:3:42: ++%*15lX:+2a:0:3: ++%15lX:+2A:1:3:42: ++%*15lX:+2A:0:3: ++%15lX:+0X2a:1:5:42: ++%*15lX:+0X2a:0:5: ++%15lX:+0x2A:1:5:42: ++%*15lX:+0x2A:0:5: ++%15lX:+ffffffffffffffff:1:15:72057594037927935: ++%*15lX:+ffffffffffffffff:0:15: ++%15lX:+FFFFFFFFFFFFFFFF:1:15:72057594037927935: ++%*15lX:+FFFFFFFFFFFFFFFF:0:15: ++%15lX:+0Xffffffffffffffff:1:15:281474976710655: ++%*15lX:+0Xffffffffffffffff:0:15: ++%15lX:+0xFFFFFFFFFFFFFFFF:1:15:281474976710655: ++%*15lX:+0xFFFFFFFFFFFFFFFF:0:15: ++%15lX:+10000000000000000:1:15:4503599627370496: ++%*15lX:+10000000000000000:0:15: ++%15lX:+0X10000000000000000:1:15:17592186044416: ++%*15lX:+0X10000000000000000:0:15: ++%15lX:+0x10000000000000000:1:15:17592186044416: ++%*15lX:+0x10000000000000000:0:15: ++%15lX:+100000000028757b1:1:15:4503599627380853: ++%*15lX:+100000000028757b1:0:15: ++%15lX:+100000000028757B1:1:15:4503599627380853: ++%*15lX:+100000000028757B1:0:15: ++%15lX:+0X100000000028757b1:1:15:17592186044456: ++%*15lX:+0X100000000028757b1:0:15: ++%15lX:+0x100000000028757B1:1:15:17592186044456: ++%*15lX:+0x100000000028757B1:0:15: ++%25lX::0:-1: ++%*25lX::0:-1: ++%25lX:-7b:1:3:18446744073709551493: ++%*25lX:-7b:0:3: ++%25lX:-7B:1:3:18446744073709551493: ++%*25lX:-7B:0:3: ++%25lX:-0X7b:1:5:18446744073709551493: ++%*25lX:-0X7b:0:5: ++%25lX:-0x7B:1:5:18446744073709551493: ++%*25lX:-0x7B:0:5: ++%25lX:-1:1:2:18446744073709551615: ++%*25lX:-1:0:2: ++%25lX:-0X1:1:4:18446744073709551615: ++%*25lX:-0X1:0:4: ++%25lX:-0x1:1:4:18446744073709551615: ++%*25lX:-0x1:0:4: ++%25lX:-0:1:2:0: ++%*25lX:-0:0:2: ++%25lX:-0X0:1:4:0: ++%*25lX:-0X0:0:4: ++%25lX:-0x0:1:4:0: ++%*25lX:-0x0:0:4: ++%25lX:0:1:1:0: ++%*25lX:0:0:1: ++%25lX:0X0:1:3:0: ++%*25lX:0X0:0:3: ++%25lX:0x0:1:3:0: ++%*25lX:0x0:0:3: ++%25lX:1:1:1:1: ++%*25lX:1:0:1: ++%25lX:0X1:1:3:1: ++%*25lX:0X1:0:3: ++%25lX:0x1:1:3:1: ++%*25lX:0x1:0:3: ++%25lX:2a:1:2:42: ++%*25lX:2a:0:2: ++%25lX:2A:1:2:42: ++%*25lX:2A:0:2: ++%25lX:0X2a:1:4:42: ++%*25lX:0X2a:0:4: ++%25lX:0x2A:1:4:42: ++%*25lX:0x2A:0:4: ++%25lX:ffffffffffffffff:1:16:18446744073709551615: ++%*25lX:ffffffffffffffff:0:16: ++%25lX:FFFFFFFFFFFFFFFF:1:16:18446744073709551615: ++%*25lX:FFFFFFFFFFFFFFFF:0:16: ++%25lX:0Xffffffffffffffff:1:18:18446744073709551615: ++%*25lX:0Xffffffffffffffff:0:18: ++%25lX:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*25lX:0xFFFFFFFFFFFFFFFF:0:18: ++%25lX:10000000000000000:1:17:18446744073709551615: ++%*25lX:10000000000000000:0:17: ++%25lX:0X10000000000000000:1:19:18446744073709551615: ++%*25lX:0X10000000000000000:0:19: ++%25lX:0x10000000000000000:1:19:18446744073709551615: ++%*25lX:0x10000000000000000:0:19: ++%25lX:100000000028757b1:1:17:18446744073709551615: ++%*25lX:100000000028757b1:0:17: ++%25lX:100000000028757B1:1:17:18446744073709551615: ++%*25lX:100000000028757B1:0:17: ++%25lX:0X100000000028757b1:1:19:18446744073709551615: ++%*25lX:0X100000000028757b1:0:19: ++%25lX:0x100000000028757B1:1:19:18446744073709551615: ++%*25lX:0x100000000028757B1:0:19: ++%25lX:+0:1:2:0: ++%*25lX:+0:0:2: ++%25lX:+0X0:1:4:0: ++%*25lX:+0X0:0:4: ++%25lX:+0x0:1:4:0: ++%*25lX:+0x0:0:4: ++%25lX:+1:1:2:1: ++%*25lX:+1:0:2: ++%25lX:+0X1:1:4:1: ++%*25lX:+0X1:0:4: ++%25lX:+0x1:1:4:1: ++%*25lX:+0x1:0:4: ++%25lX:+2a:1:3:42: ++%*25lX:+2a:0:3: ++%25lX:+2A:1:3:42: ++%*25lX:+2A:0:3: ++%25lX:+0X2a:1:5:42: ++%*25lX:+0X2a:0:5: ++%25lX:+0x2A:1:5:42: ++%*25lX:+0x2A:0:5: ++%25lX:+ffffffffffffffff:1:17:18446744073709551615: ++%*25lX:+ffffffffffffffff:0:17: ++%25lX:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*25lX:+FFFFFFFFFFFFFFFF:0:17: ++%25lX:+0Xffffffffffffffff:1:19:18446744073709551615: ++%*25lX:+0Xffffffffffffffff:0:19: ++%25lX:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*25lX:+0xFFFFFFFFFFFFFFFF:0:19: ++%25lX:+10000000000000000:1:18:18446744073709551615: ++%*25lX:+10000000000000000:0:18: ++%25lX:+0X10000000000000000:1:20:18446744073709551615: ++%*25lX:+0X10000000000000000:0:20: ++%25lX:+0x10000000000000000:1:20:18446744073709551615: ++%*25lX:+0x10000000000000000:0:20: ++%25lX:+100000000028757b1:1:18:18446744073709551615: ++%*25lX:+100000000028757b1:0:18: ++%25lX:+100000000028757B1:1:18:18446744073709551615: ++%*25lX:+100000000028757B1:0:18: ++%25lX:+0X100000000028757b1:1:20:18446744073709551615: ++%*25lX:+0X100000000028757b1:0:20: ++%25lX:+0x100000000028757B1:1:20:18446744073709551615: ++%*25lX:+0x100000000028757B1:0:20: ++%2lX: :0:-1: ++%*2lX: :0:-1: ++%2lX: -7b:1:3:18446744073709551609: ++%*2lX: -7b:0:3: ++%2lX: -7B:1:3:18446744073709551609: ++%*2lX: -7B:0:3: ++%2lX: -0X7b:1:3:0: ++%*2lX: -0X7b:0:3: ++%2lX: -0x7B:1:3:0: ++%*2lX: -0x7B:0:3: ++%2lX: -1:1:3:18446744073709551615: ++%*2lX: -1:0:3: ++%2lX: -0X1:1:3:0: ++%*2lX: -0X1:0:3: ++%2lX: -0x1:1:3:0: ++%*2lX: -0x1:0:3: ++%2lX: -0:1:3:0: ++%*2lX: -0:0:3: ++%2lX: -0X0:1:3:0: ++%*2lX: -0X0:0:3: ++%2lX: -0x0:1:3:0: ++%*2lX: -0x0:0:3: ++%2lX: 0:1:2:0: ++%*2lX: 0:0:2: ++# BZ12701 %2lX: 0X0:0:-1: ++# BZ12701 %*2lX: 0X0:0:-1: ++# BZ12701 %2lX: 0x0:0:-1: ++# BZ12701 %*2lX: 0x0:0:-1: ++%2lX: 1:1:2:1: ++%*2lX: 1:0:2: ++# BZ12701 %2lX: 0X1:0:-1: ++# BZ12701 %*2lX: 0X1:0:-1: ++# BZ12701 %2lX: 0x1:0:-1: ++# BZ12701 %*2lX: 0x1:0:-1: ++%2lX: 2a:1:3:42: ++%*2lX: 2a:0:3: ++%2lX: 2A:1:3:42: ++%*2lX: 2A:0:3: ++# BZ12701 %2lX: 0X2a:0:-1: ++# BZ12701 %*2lX: 0X2a:0:-1: ++# BZ12701 %2lX: 0x2A:0:-1: ++# BZ12701 %*2lX: 0x2A:0:-1: ++%2lX: ffffffffffffffff:1:3:255: ++%*2lX: ffffffffffffffff:0:3: ++%2lX: FFFFFFFFFFFFFFFF:1:3:255: ++%*2lX: FFFFFFFFFFFFFFFF:0:3: ++# BZ12701 %2lX: 0Xffffffffffffffff:0:-1: ++# BZ12701 %*2lX: 0Xffffffffffffffff:0:-1: ++# BZ12701 %2lX: 0xFFFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2lX: 0xFFFFFFFFFFFFFFFF:0:-1: ++%2lX: 10000000000000000:1:3:16: ++%*2lX: 10000000000000000:0:3: ++# BZ12701 %2lX: 0X10000000000000000:0:-1: ++# BZ12701 %*2lX: 0X10000000000000000:0:-1: ++# BZ12701 %2lX: 0x10000000000000000:0:-1: ++# BZ12701 %*2lX: 0x10000000000000000:0:-1: ++%2lX: 100000000028757b1:1:3:16: ++%*2lX: 100000000028757b1:0:3: ++%2lX: 100000000028757B1:1:3:16: ++%*2lX: 100000000028757B1:0:3: ++# BZ12701 %2lX: 0X100000000028757b1:0:-1: ++# BZ12701 %*2lX: 0X100000000028757b1:0:-1: ++# BZ12701 %2lX: 0x100000000028757B1:0:-1: ++# BZ12701 %*2lX: 0x100000000028757B1:0:-1: ++%2lX: +0:1:3:0: ++%*2lX: +0:0:3: ++%2lX: +0X0:1:3:0: ++%*2lX: +0X0:0:3: ++%2lX: +0x0:1:3:0: ++%*2lX: +0x0:0:3: ++%2lX: +1:1:3:1: ++%*2lX: +1:0:3: ++%2lX: +0X1:1:3:0: ++%*2lX: +0X1:0:3: ++%2lX: +0x1:1:3:0: ++%*2lX: +0x1:0:3: ++%2lX: +2a:1:3:2: ++%*2lX: +2a:0:3: ++%2lX: +2A:1:3:2: ++%*2lX: +2A:0:3: ++%2lX: +0X2a:1:3:0: ++%*2lX: +0X2a:0:3: ++%2lX: +0x2A:1:3:0: ++%*2lX: +0x2A:0:3: ++%2lX: +ffffffffffffffff:1:3:15: ++%*2lX: +ffffffffffffffff:0:3: ++%2lX: +FFFFFFFFFFFFFFFF:1:3:15: ++%*2lX: +FFFFFFFFFFFFFFFF:0:3: ++%2lX: +0Xffffffffffffffff:1:3:0: ++%*2lX: +0Xffffffffffffffff:0:3: ++%2lX: +0xFFFFFFFFFFFFFFFF:1:3:0: ++%*2lX: +0xFFFFFFFFFFFFFFFF:0:3: ++%2lX: +10000000000000000:1:3:1: ++%*2lX: +10000000000000000:0:3: ++%2lX: +0X10000000000000000:1:3:0: ++%*2lX: +0X10000000000000000:0:3: ++%2lX: +0x10000000000000000:1:3:0: ++%*2lX: +0x10000000000000000:0:3: ++%2lX: +100000000028757b1:1:3:1: ++%*2lX: +100000000028757b1:0:3: ++%2lX: +100000000028757B1:1:3:1: ++%*2lX: +100000000028757B1:0:3: ++%2lX: +0X100000000028757b1:1:3:0: ++%*2lX: +0X100000000028757b1:0:3: ++%2lX: +0x100000000028757B1:1:3:0: ++%*2lX: +0x100000000028757B1:0:3: ++%25lX: :0:-1: ++%*25lX: :0:-1: ++%25lX: -7b:1:4:18446744073709551493: ++%*25lX: -7b:0:4: ++%25lX: -7B:1:4:18446744073709551493: ++%*25lX: -7B:0:4: ++%25lX: -0X7b:1:6:18446744073709551493: ++%*25lX: -0X7b:0:6: ++%25lX: -0x7B:1:6:18446744073709551493: ++%*25lX: -0x7B:0:6: ++%25lX: -1:1:3:18446744073709551615: ++%*25lX: -1:0:3: ++%25lX: -0X1:1:5:18446744073709551615: ++%*25lX: -0X1:0:5: ++%25lX: -0x1:1:5:18446744073709551615: ++%*25lX: -0x1:0:5: ++%25lX: -0:1:3:0: ++%*25lX: -0:0:3: ++%25lX: -0X0:1:5:0: ++%*25lX: -0X0:0:5: ++%25lX: -0x0:1:5:0: ++%*25lX: -0x0:0:5: ++%25lX: 0:1:2:0: ++%*25lX: 0:0:2: ++%25lX: 0X0:1:4:0: ++%*25lX: 0X0:0:4: ++%25lX: 0x0:1:4:0: ++%*25lX: 0x0:0:4: ++%25lX: 1:1:2:1: ++%*25lX: 1:0:2: ++%25lX: 0X1:1:4:1: ++%*25lX: 0X1:0:4: ++%25lX: 0x1:1:4:1: ++%*25lX: 0x1:0:4: ++%25lX: 2a:1:3:42: ++%*25lX: 2a:0:3: ++%25lX: 2A:1:3:42: ++%*25lX: 2A:0:3: ++%25lX: 0X2a:1:5:42: ++%*25lX: 0X2a:0:5: ++%25lX: 0x2A:1:5:42: ++%*25lX: 0x2A:0:5: ++%25lX: ffffffffffffffff:1:17:18446744073709551615: ++%*25lX: ffffffffffffffff:0:17: ++%25lX: FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*25lX: FFFFFFFFFFFFFFFF:0:17: ++%25lX: 0Xffffffffffffffff:1:19:18446744073709551615: ++%*25lX: 0Xffffffffffffffff:0:19: ++%25lX: 0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*25lX: 0xFFFFFFFFFFFFFFFF:0:19: ++%25lX: 10000000000000000:1:18:18446744073709551615: ++%*25lX: 10000000000000000:0:18: ++%25lX: 0X10000000000000000:1:20:18446744073709551615: ++%*25lX: 0X10000000000000000:0:20: ++%25lX: 0x10000000000000000:1:20:18446744073709551615: ++%*25lX: 0x10000000000000000:0:20: ++%25lX: 100000000028757b1:1:18:18446744073709551615: ++%*25lX: 100000000028757b1:0:18: ++%25lX: 100000000028757B1:1:18:18446744073709551615: ++%*25lX: 100000000028757B1:0:18: ++%25lX: 0X100000000028757b1:1:20:18446744073709551615: ++%*25lX: 0X100000000028757b1:0:20: ++%25lX: 0x100000000028757B1:1:20:18446744073709551615: ++%*25lX: 0x100000000028757B1:0:20: ++%25lX: +0:1:3:0: ++%*25lX: +0:0:3: ++%25lX: +0X0:1:5:0: ++%*25lX: +0X0:0:5: ++%25lX: +0x0:1:5:0: ++%*25lX: +0x0:0:5: ++%25lX: +1:1:3:1: ++%*25lX: +1:0:3: ++%25lX: +0X1:1:5:1: ++%*25lX: +0X1:0:5: ++%25lX: +0x1:1:5:1: ++%*25lX: +0x1:0:5: ++%25lX: +2a:1:4:42: ++%*25lX: +2a:0:4: ++%25lX: +2A:1:4:42: ++%*25lX: +2A:0:4: ++%25lX: +0X2a:1:6:42: ++%*25lX: +0X2a:0:6: ++%25lX: +0x2A:1:6:42: ++%*25lX: +0x2A:0:6: ++%25lX: +ffffffffffffffff:1:18:18446744073709551615: ++%*25lX: +ffffffffffffffff:0:18: ++%25lX: +FFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*25lX: +FFFFFFFFFFFFFFFF:0:18: ++%25lX: +0Xffffffffffffffff:1:20:18446744073709551615: ++%*25lX: +0Xffffffffffffffff:0:20: ++%25lX: +0xFFFFFFFFFFFFFFFF:1:20:18446744073709551615: ++%*25lX: +0xFFFFFFFFFFFFFFFF:0:20: ++%25lX: +10000000000000000:1:19:18446744073709551615: ++%*25lX: +10000000000000000:0:19: ++%25lX: +0X10000000000000000:1:21:18446744073709551615: ++%*25lX: +0X10000000000000000:0:21: ++%25lX: +0x10000000000000000:1:21:18446744073709551615: ++%*25lX: +0x10000000000000000:0:21: ++%25lX: +100000000028757b1:1:19:18446744073709551615: ++%*25lX: +100000000028757b1:0:19: ++%25lX: +100000000028757B1:1:19:18446744073709551615: ++%*25lX: +100000000028757B1:0:19: ++%25lX: +0X100000000028757b1:1:21:18446744073709551615: ++%*25lX: +0X100000000028757b1:0:21: ++%25lX: +0x100000000028757B1:1:21:18446744073709551615: ++%*25lX: +0x100000000028757B1:0:21: diff --git a/SOURCES/glibc-RHEL-46726-4.patch b/SOURCES/glibc-RHEL-46726-4.patch new file mode 100644 index 0000000..7beb5ee --- /dev/null +++ b/SOURCES/glibc-RHEL-46726-4.patch @@ -0,0 +1,5032 @@ +commit 26df22636d5876352cbd53b8662173e461e1e220 +Author: Maciej W. Rozycki +Date: Tue Mar 25 09:40:20 2025 +0000 + + stdio-common: Add scanf float data for IEEE 754 binary32 format + + Add Makefile infrastructure and `float' real input data for targets + using the IEEE 754 binary32 format. + + Keep input data disabled and referring to BZ #12701 for entries that are + are currently incorrectly accepted as valid data, such as '0e', '0e+', + '0x', '0x8p', '0x0p-', etc. + + Reviewed-by: Joseph Myers + +diff --git a/sysdeps/ieee754/flt-32/Makefile b/sysdeps/ieee754/flt-32/Makefile +new file mode 100644 +index 0000000000000000..aaba9e9bc6904467 +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/Makefile +@@ -0,0 +1,3 @@ ++ifeq ($(subdir),stdio-common) ++fmt-xscanf-real-convs += float ++endif +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-a.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-a.input +new file mode 100644 +index 0000000000000000..196cb734b277653e +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-a.input +@@ -0,0 +1,682 @@ ++%a::0:-1: ++%*a::0:-1: ++%a:-infinity:1:9:-inf: ++%*a:-infinity:0:9: ++%a:-0xf.fffffp+124:1:15:-0x1.fffffep127: ++%*a:-0xf.fffffp+124:0:15: ++%a:-0x7.fffff8p125:1:15:-0x1.fffffep127: ++%*a:-0x7.fffff8p125:0:15: ++%a:-0x2.345678p+123:1:16:-0x1.1a2b3cp124: ++%*a:-0x2.345678p+123:0:16: ++%a:-0x2.345678p0123:1:16:-0x1.1a2b3cp124: ++%*a:-0x2.345678p0123:0:16: ++%a:-0x8p-129:1:9:-0x1p-126: ++%*a:-0x8p-129:0:9: ++%a:-0x0p+0:1:7:-0x0: ++%*a:-0x0p+0:0:7: ++%a:-0x0p0:1:6:-0x0: ++%*a:-0x0p0:0:6: ++%a:-nan(09A_Zaz):1:13:-nan: ++%*a:-nan(09A_Zaz):0:13: ++%a:-nan():1:6:-nan: ++%*a:-nan():0:6: ++%a:nan():1:5:nan: ++%*a:nan():0:5: ++%a:nan(09A_Zaz):1:12:nan: ++%*a:nan(09A_Zaz):0:12: ++%a:0x0p0:1:5:0x0: ++%*a:0x0p0:0:5: ++%a:0x0p+0:1:6:0x0: ++%*a:0x0p+0:0:6: ++%a:0x8p-129:1:8:0x1p-126: ++%*a:0x8p-129:0:8: ++%a:0x2.345678p0123:1:15:0x1.1a2b3cp124: ++%*a:0x2.345678p0123:0:15: ++%a:0x2.345678p+123:1:15:0x1.1a2b3cp124: ++%*a:0x2.345678p+123:0:15: ++%a:0x7.fffff8p125:1:14:0x1.fffffep127: ++%*a:0x7.fffff8p125:0:14: ++%a:0xf.fffffp+124:1:14:0x1.fffffep127: ++%*a:0xf.fffffp+124:0:14: ++%a:infinity:1:8:inf: ++%*a:infinity:0:8: ++%a:+nan():1:6:nan: ++%*a:+nan():0:6: ++%a:+nan(09A_Zaz):1:13:nan: ++%*a:+nan(09A_Zaz):0:13: ++%a:+0x0p0:1:6:0x0: ++%*a:+0x0p0:0:6: ++%a:+0x0p+0:1:7:0x0: ++%*a:+0x0p+0:0:7: ++%a:+0x8p-129:1:9:0x1p-126: ++%*a:+0x8p-129:0:9: ++%a:+0x2.345678p0123:1:16:0x1.1a2b3cp124: ++%*a:+0x2.345678p0123:0:16: ++%a:+0x2.345678p+123:1:16:0x1.1a2b3cp124: ++%*a:+0x2.345678p+123:0:16: ++%a:+0x7.fffff8p125:1:15:0x1.fffffep127: ++%*a:+0x7.fffff8p125:0:15: ++%a:+0xf.fffffp+124:1:15:0x1.fffffep127: ++%*a:+0xf.fffffp+124:0:15: ++%a:+infinity:1:9:inf: ++%*a:+infinity:0:9: ++%1a::0:-1: ++%*1a::0:-1: ++%1a:-infinity:0:-1: ++%*1a:-infinity:0:-1: ++%1a:-0xf.fffffp+124:0:-1: ++%*1a:-0xf.fffffp+124:0:-1: ++%1a:-0x7.fffff8p125:0:-1: ++%*1a:-0x7.fffff8p125:0:-1: ++%1a:-0x2.345678p+123:0:-1: ++%*1a:-0x2.345678p+123:0:-1: ++%1a:-0x2.345678p0123:0:-1: ++%*1a:-0x2.345678p0123:0:-1: ++%1a:-0x8p-129:0:-1: ++%*1a:-0x8p-129:0:-1: ++%1a:-0x0p+0:0:-1: ++%*1a:-0x0p+0:0:-1: ++%1a:-0x0p0:0:-1: ++%*1a:-0x0p0:0:-1: ++%1a:-nan(09A_Zaz):0:-1: ++%*1a:-nan(09A_Zaz):0:-1: ++%1a:-nan():0:-1: ++%*1a:-nan():0:-1: ++%1a:nan():0:-1: ++%*1a:nan():0:-1: ++%1a:nan(09A_Zaz):0:-1: ++%*1a:nan(09A_Zaz):0:-1: ++%1a:0x0p0:1:1:0x0: ++%*1a:0x0p0:0:1: ++%1a:0x0p+0:1:1:0x0: ++%*1a:0x0p+0:0:1: ++%1a:0x8p-129:1:1:0x0: ++%*1a:0x8p-129:0:1: ++%1a:0x2.345678p0123:1:1:0x0: ++%*1a:0x2.345678p0123:0:1: ++%1a:0x2.345678p+123:1:1:0x0: ++%*1a:0x2.345678p+123:0:1: ++%1a:0x7.fffff8p125:1:1:0x0: ++%*1a:0x7.fffff8p125:0:1: ++%1a:0xf.fffffp+124:1:1:0x0: ++%*1a:0xf.fffffp+124:0:1: ++%1a:infinity:0:-1: ++%*1a:infinity:0:-1: ++%1a:+nan():0:-1: ++%*1a:+nan():0:-1: ++%1a:+nan(09A_Zaz):0:-1: ++%*1a:+nan(09A_Zaz):0:-1: ++%1a:+0x0p0:0:-1: ++%*1a:+0x0p0:0:-1: ++%1a:+0x0p+0:0:-1: ++%*1a:+0x0p+0:0:-1: ++%1a:+0x8p-129:0:-1: ++%*1a:+0x8p-129:0:-1: ++%1a:+0x2.345678p0123:0:-1: ++%*1a:+0x2.345678p0123:0:-1: ++%1a:+0x2.345678p+123:0:-1: ++%*1a:+0x2.345678p+123:0:-1: ++%1a:+0x7.fffff8p125:0:-1: ++%*1a:+0x7.fffff8p125:0:-1: ++%1a:+0xf.fffffp+124:0:-1: ++%*1a:+0xf.fffffp+124:0:-1: ++%1a:+infinity:0:-1: ++%*1a:+infinity:0:-1: ++%2a::0:-1: ++%*2a::0:-1: ++%2a:-infinity:0:-1: ++%*2a:-infinity:0:-1: ++%2a:-0xf.fffffp+124:1:2:-0x0: ++%*2a:-0xf.fffffp+124:0:2: ++%2a:-0x7.fffff8p125:1:2:-0x0: ++%*2a:-0x7.fffff8p125:0:2: ++%2a:-0x2.345678p+123:1:2:-0x0: ++%*2a:-0x2.345678p+123:0:2: ++%2a:-0x2.345678p0123:1:2:-0x0: ++%*2a:-0x2.345678p0123:0:2: ++%2a:-0x8p-129:1:2:-0x0: ++%*2a:-0x8p-129:0:2: ++%2a:-0x0p+0:1:2:-0x0: ++%*2a:-0x0p+0:0:2: ++%2a:-0x0p0:1:2:-0x0: ++%*2a:-0x0p0:0:2: ++%2a:-nan(09A_Zaz):0:-1: ++%*2a:-nan(09A_Zaz):0:-1: ++%2a:-nan():0:-1: ++%*2a:-nan():0:-1: ++%2a:nan():0:-1: ++%*2a:nan():0:-1: ++%2a:nan(09A_Zaz):0:-1: ++%*2a:nan(09A_Zaz):0:-1: ++# BZ12701 %2a:0x0p0:0:-1: ++# BZ12701 %*2a:0x0p0:0:-1: ++# BZ12701 %2a:0x0p+0:0:-1: ++# BZ12701 %*2a:0x0p+0:0:-1: ++# BZ12701 %2a:0x8p-129:0:-1: ++# BZ12701 %*2a:0x8p-129:0:-1: ++# BZ12701 %2a:0x2.345678p0123:0:-1: ++# BZ12701 %*2a:0x2.345678p0123:0:-1: ++# BZ12701 %2a:0x2.345678p+123:0:-1: ++# BZ12701 %*2a:0x2.345678p+123:0:-1: ++# BZ12701 %2a:0x7.fffff8p125:0:-1: ++# BZ12701 %*2a:0x7.fffff8p125:0:-1: ++# BZ12701 %2a:0xf.fffffp+124:0:-1: ++# BZ12701 %*2a:0xf.fffffp+124:0:-1: ++%2a:infinity:0:-1: ++%*2a:infinity:0:-1: ++%2a:+nan():0:-1: ++%*2a:+nan():0:-1: ++%2a:+nan(09A_Zaz):0:-1: ++%*2a:+nan(09A_Zaz):0:-1: ++%2a:+0x0p0:1:2:0x0: ++%*2a:+0x0p0:0:2: ++%2a:+0x0p+0:1:2:0x0: ++%*2a:+0x0p+0:0:2: ++%2a:+0x8p-129:1:2:0x0: ++%*2a:+0x8p-129:0:2: ++%2a:+0x2.345678p0123:1:2:0x0: ++%*2a:+0x2.345678p0123:0:2: ++%2a:+0x2.345678p+123:1:2:0x0: ++%*2a:+0x2.345678p+123:0:2: ++%2a:+0x7.fffff8p125:1:2:0x0: ++%*2a:+0x7.fffff8p125:0:2: ++%2a:+0xf.fffffp+124:1:2:0x0: ++%*2a:+0xf.fffffp+124:0:2: ++%2a:+infinity:0:-1: ++%*2a:+infinity:0:-1: ++%3a::0:-1: ++%*3a::0:-1: ++%3a:-infinity:0:-1: ++%*3a:-infinity:0:-1: ++# BZ12701 %3a:-0xf.fffffp+124:0:-1: ++# BZ12701 %*3a:-0xf.fffffp+124:0:-1: ++# BZ12701 %3a:-0x7.fffff8p125:0:-1: ++# BZ12701 %*3a:-0x7.fffff8p125:0:-1: ++# BZ12701 %3a:-0x2.345678p+123:0:-1: ++# BZ12701 %*3a:-0x2.345678p+123:0:-1: ++# BZ12701 %3a:-0x2.345678p0123:0:-1: ++# BZ12701 %*3a:-0x2.345678p0123:0:-1: ++# BZ12701 %3a:-0x8p-129:0:-1: ++# BZ12701 %*3a:-0x8p-129:0:-1: ++# BZ12701 %3a:-0x0p+0:0:-1: ++# BZ12701 %*3a:-0x0p+0:0:-1: ++# BZ12701 %3a:-0x0p0:0:-1: ++# BZ12701 %*3a:-0x0p0:0:-1: ++%3a:-nan(09A_Zaz):0:-1: ++%*3a:-nan(09A_Zaz):0:-1: ++%3a:-nan():0:-1: ++%*3a:-nan():0:-1: ++%3a:nan():1:3:nan: ++%*3a:nan():0:3: ++%3a:nan(09A_Zaz):1:3:nan: ++%*3a:nan(09A_Zaz):0:3: ++%3a:0x0p0:1:3:0x0: ++%*3a:0x0p0:0:3: ++%3a:0x0p+0:1:3:0x0: ++%*3a:0x0p+0:0:3: ++%3a:0x8p-129:1:3:0x1p3: ++%*3a:0x8p-129:0:3: ++%3a:0x2.345678p0123:1:3:0x1p1: ++%*3a:0x2.345678p0123:0:3: ++%3a:0x2.345678p+123:1:3:0x1p1: ++%*3a:0x2.345678p+123:0:3: ++%3a:0x7.fffff8p125:1:3:0x1.cp2: ++%*3a:0x7.fffff8p125:0:3: ++%3a:0xf.fffffp+124:1:3:0x1.ep3: ++%*3a:0xf.fffffp+124:0:3: ++%3a:infinity:1:3:inf: ++%*3a:infinity:0:3: ++%3a:+nan():0:-1: ++%*3a:+nan():0:-1: ++%3a:+nan(09A_Zaz):0:-1: ++%*3a:+nan(09A_Zaz):0:-1: ++# BZ12701 %3a:+0x0p0:0:-1: ++# BZ12701 %*3a:+0x0p0:0:-1: ++# BZ12701 %3a:+0x0p+0:0:-1: ++# BZ12701 %*3a:+0x0p+0:0:-1: ++# BZ12701 %3a:+0x8p-129:0:-1: ++# BZ12701 %*3a:+0x8p-129:0:-1: ++# BZ12701 %3a:+0x2.345678p0123:0:-1: ++# BZ12701 %*3a:+0x2.345678p0123:0:-1: ++# BZ12701 %3a:+0x2.345678p+123:0:-1: ++# BZ12701 %*3a:+0x2.345678p+123:0:-1: ++# BZ12701 %3a:+0x7.fffff8p125:0:-1: ++# BZ12701 %*3a:+0x7.fffff8p125:0:-1: ++# BZ12701 %3a:+0xf.fffffp+124:0:-1: ++# BZ12701 %*3a:+0xf.fffffp+124:0:-1: ++%3a:+infinity:0:-1: ++%*3a:+infinity:0:-1: ++%4a::0:-1: ++%*4a::0:-1: ++%4a:-infinity:1:4:-inf: ++%*4a:-infinity:0:4: ++%4a:-0xf.fffffp+124:1:4:-0x1.ep3: ++%*4a:-0xf.fffffp+124:0:4: ++%4a:-0x7.fffff8p125:1:4:-0x1.cp2: ++%*4a:-0x7.fffff8p125:0:4: ++%4a:-0x2.345678p+123:1:4:-0x1p1: ++%*4a:-0x2.345678p+123:0:4: ++%4a:-0x2.345678p0123:1:4:-0x1p1: ++%*4a:-0x2.345678p0123:0:4: ++%4a:-0x8p-129:1:4:-0x1p3: ++%*4a:-0x8p-129:0:4: ++%4a:-0x0p+0:1:4:-0x0: ++%*4a:-0x0p+0:0:4: ++%4a:-0x0p0:1:4:-0x0: ++%*4a:-0x0p0:0:4: ++%4a:-nan(09A_Zaz):1:4:-nan: ++%*4a:-nan(09A_Zaz):0:4: ++%4a:-nan():1:4:-nan: ++%*4a:-nan():0:4: ++%4a:nan():0:-1: ++%*4a:nan():0:-1: ++%4a:nan(09A_Zaz):0:-1: ++%*4a:nan(09A_Zaz):0:-1: ++# BZ12701 %4a:0x0p0:0:-1: ++# BZ12701 %*4a:0x0p0:0:-1: ++# BZ12701 %4a:0x0p+0:0:-1: ++# BZ12701 %*4a:0x0p+0:0:-1: ++# BZ12701 %4a:0x8p-129:0:-1: ++# BZ12701 %*4a:0x8p-129:0:-1: ++%4a:0x2.345678p0123:1:4:0x1p1: ++%*4a:0x2.345678p0123:0:4: ++%4a:0x2.345678p+123:1:4:0x1p1: ++%*4a:0x2.345678p+123:0:4: ++%4a:0x7.fffff8p125:1:4:0x1.cp2: ++%*4a:0x7.fffff8p125:0:4: ++%4a:0xf.fffffp+124:1:4:0x1.ep3: ++%*4a:0xf.fffffp+124:0:4: ++%4a:infinity:0:-1: ++%*4a:infinity:0:-1: ++%4a:+nan():1:4:nan: ++%*4a:+nan():0:4: ++%4a:+nan(09A_Zaz):1:4:nan: ++%*4a:+nan(09A_Zaz):0:4: ++%4a:+0x0p0:1:4:0x0: ++%*4a:+0x0p0:0:4: ++%4a:+0x0p+0:1:4:0x0: ++%*4a:+0x0p+0:0:4: ++%4a:+0x8p-129:1:4:0x1p3: ++%*4a:+0x8p-129:0:4: ++%4a:+0x2.345678p0123:1:4:0x1p1: ++%*4a:+0x2.345678p0123:0:4: ++%4a:+0x2.345678p+123:1:4:0x1p1: ++%*4a:+0x2.345678p+123:0:4: ++%4a:+0x7.fffff8p125:1:4:0x1.cp2: ++%*4a:+0x7.fffff8p125:0:4: ++%4a:+0xf.fffffp+124:1:4:0x1.ep3: ++%*4a:+0xf.fffffp+124:0:4: ++%4a:+infinity:1:4:inf: ++%*4a:+infinity:0:4: ++%5a::0:-1: ++%*5a::0:-1: ++%5a:-infinity:0:-1: ++%*5a:-infinity:0:-1: ++%5a:-0xf.fffffp+124:1:5:-0x1.ep3: ++%*5a:-0xf.fffffp+124:0:5: ++%5a:-0x7.fffff8p125:1:5:-0x1.cp2: ++%*5a:-0x7.fffff8p125:0:5: ++%5a:-0x2.345678p+123:1:5:-0x1p1: ++%*5a:-0x2.345678p+123:0:5: ++%5a:-0x2.345678p0123:1:5:-0x1p1: ++%*5a:-0x2.345678p0123:0:5: ++# BZ12701 %5a:-0x8p-129:0:-1: ++# BZ12701 %*5a:-0x8p-129:0:-1: ++# BZ12701 %5a:-0x0p+0:0:-1: ++# BZ12701 %*5a:-0x0p+0:0:-1: ++# BZ12701 %5a:-0x0p0:0:-1: ++# BZ12701 %*5a:-0x0p0:0:-1: ++%5a:-nan(09A_Zaz):0:-1: ++%*5a:-nan(09A_Zaz):0:-1: ++%5a:-nan():0:-1: ++%*5a:-nan():0:-1: ++%5a:nan():1:5:nan: ++%*5a:nan():0:5: ++%5a:nan(09A_Zaz):0:-1: ++%*5a:nan(09A_Zaz):0:-1: ++%5a:0x0p0:1:5:0x0: ++%*5a:0x0p0:0:5: ++# BZ12701 %5a:0x0p+0:0:-1: ++# BZ12701 %*5a:0x0p+0:0:-1: ++# BZ12701 %5a:0x8p-129:0:-1: ++# BZ12701 %*5a:0x8p-129:0:-1: ++%5a:0x2.345678p0123:1:5:0x1.18p1: ++%*5a:0x2.345678p0123:0:5: ++%5a:0x2.345678p+123:1:5:0x1.18p1: ++%*5a:0x2.345678p+123:0:5: ++%5a:0x7.fffff8p125:1:5:0x1.fcp2: ++%*5a:0x7.fffff8p125:0:5: ++%5a:0xf.fffffp+124:1:5:0x1.fep3: ++%*5a:0xf.fffffp+124:0:5: ++%5a:infinity:0:-1: ++%*5a:infinity:0:-1: ++%5a:+nan():0:-1: ++%*5a:+nan():0:-1: ++%5a:+nan(09A_Zaz):0:-1: ++%*5a:+nan(09A_Zaz):0:-1: ++# BZ12701 %5a:+0x0p0:0:-1: ++# BZ12701 %*5a:+0x0p0:0:-1: ++# BZ12701 %5a:+0x0p+0:0:-1: ++# BZ12701 %*5a:+0x0p+0:0:-1: ++# BZ12701 %5a:+0x8p-129:0:-1: ++# BZ12701 %*5a:+0x8p-129:0:-1: ++%5a:+0x2.345678p0123:1:5:0x1p1: ++%*5a:+0x2.345678p0123:0:5: ++%5a:+0x2.345678p+123:1:5:0x1p1: ++%*5a:+0x2.345678p+123:0:5: ++%5a:+0x7.fffff8p125:1:5:0x1.cp2: ++%*5a:+0x7.fffff8p125:0:5: ++%5a:+0xf.fffffp+124:1:5:0x1.ep3: ++%*5a:+0xf.fffffp+124:0:5: ++%5a:+infinity:0:-1: ++%*5a:+infinity:0:-1: ++%6a::0:-1: ++%*6a::0:-1: ++%6a:-infinity:0:-1: ++%*6a:-infinity:0:-1: ++%6a:-0xf.fffffp+124:1:6:-0x1.fep3: ++%*6a:-0xf.fffffp+124:0:6: ++%6a:-0x7.fffff8p125:1:6:-0x1.fcp2: ++%*6a:-0x7.fffff8p125:0:6: ++%6a:-0x2.345678p+123:1:6:-0x1.18p1: ++%*6a:-0x2.345678p+123:0:6: ++%6a:-0x2.345678p0123:1:6:-0x1.18p1: ++%*6a:-0x2.345678p0123:0:6: ++# BZ12701 %6a:-0x8p-129:0:-1: ++# BZ12701 %*6a:-0x8p-129:0:-1: ++# BZ12701 %6a:-0x0p+0:0:-1: ++# BZ12701 %*6a:-0x0p+0:0:-1: ++%6a:-0x0p0:1:6:-0x0: ++%*6a:-0x0p0:0:6: ++%6a:-nan(09A_Zaz):0:-1: ++%*6a:-nan(09A_Zaz):0:-1: ++%6a:-nan():1:6:-nan: ++%*6a:-nan():0:6: ++%6a:nan():1:5:nan: ++%*6a:nan():0:5: ++%6a:nan(09A_Zaz):0:-1: ++%*6a:nan(09A_Zaz):0:-1: ++%6a:0x0p0:1:5:0x0: ++%*6a:0x0p0:0:5: ++%6a:0x0p+0:1:6:0x0: ++%*6a:0x0p+0:0:6: ++%6a:0x8p-129:1:6:0x1p2: ++%*6a:0x8p-129:0:6: ++%6a:0x2.345678p0123:1:6:0x1.1ap1: ++%*6a:0x2.345678p0123:0:6: ++%6a:0x2.345678p+123:1:6:0x1.1ap1: ++%*6a:0x2.345678p+123:0:6: ++%6a:0x7.fffff8p125:1:6:0x1.ffcp2: ++%*6a:0x7.fffff8p125:0:6: ++%6a:0xf.fffffp+124:1:6:0x1.ffep3: ++%*6a:0xf.fffffp+124:0:6: ++%6a:infinity:0:-1: ++%*6a:infinity:0:-1: ++%6a:+nan():1:6:nan: ++%*6a:+nan():0:6: ++%6a:+nan(09A_Zaz):0:-1: ++%*6a:+nan(09A_Zaz):0:-1: ++%6a:+0x0p0:1:6:0x0: ++%*6a:+0x0p0:0:6: ++# BZ12701 %6a:+0x0p+0:0:-1: ++# BZ12701 %*6a:+0x0p+0:0:-1: ++# BZ12701 %6a:+0x8p-129:0:-1: ++# BZ12701 %*6a:+0x8p-129:0:-1: ++%6a:+0x2.345678p0123:1:6:0x1.18p1: ++%*6a:+0x2.345678p0123:0:6: ++%6a:+0x2.345678p+123:1:6:0x1.18p1: ++%*6a:+0x2.345678p+123:0:6: ++%6a:+0x7.fffff8p125:1:6:0x1.fcp2: ++%*6a:+0x7.fffff8p125:0:6: ++%6a:+0xf.fffffp+124:1:6:0x1.fep3: ++%*6a:+0xf.fffffp+124:0:6: ++%6a:+infinity:0:-1: ++%*6a:+infinity:0:-1: ++%12a::0:-1: ++%*12a::0:-1: ++%12a:-infinity:1:9:-inf: ++%*12a:-infinity:0:9: ++# BZ12701 %12a:-0xf.fffffp+124:0:-1: ++# BZ12701 %*12a:-0xf.fffffp+124:0:-1: ++# BZ12701 %12a:-0x7.fffff8p125:0:-1: ++# BZ12701 %*12a:-0x7.fffff8p125:0:-1: ++# BZ12701 %12a:-0x2.345678p+123:0:-1: ++# BZ12701 %*12a:-0x2.345678p+123:0:-1: ++# BZ12701 %12a:-0x2.345678p0123:0:-1: ++# BZ12701 %*12a:-0x2.345678p0123:0:-1: ++%12a:-0x8p-129:1:9:-0x1p-126: ++%*12a:-0x8p-129:0:9: ++%12a:-0x0p+0:1:7:-0x0: ++%*12a:-0x0p+0:0:7: ++%12a:-0x0p0:1:6:-0x0: ++%*12a:-0x0p0:0:6: ++%12a:-nan(09A_Zaz):0:-1: ++%*12a:-nan(09A_Zaz):0:-1: ++%12a:-nan():1:6:-nan: ++%*12a:-nan():0:6: ++%12a:nan():1:5:nan: ++%*12a:nan():0:5: ++%12a:nan(09A_Zaz):1:12:nan: ++%*12a:nan(09A_Zaz):0:12: ++%12a:0x0p0:1:5:0x0: ++%*12a:0x0p0:0:5: ++%12a:0x0p+0:1:6:0x0: ++%*12a:0x0p+0:0:6: ++%12a:0x8p-129:1:8:0x1p-126: ++%*12a:0x8p-129:0:8: ++%12a:0x2.345678p0123:1:12:0x1.1a2b3cp1: ++%*12a:0x2.345678p0123:0:12: ++# BZ12701 %12a:0x2.345678p+123:0:-1: ++# BZ12701 %*12a:0x2.345678p+123:0:-1: ++%12a:0x7.fffff8p125:1:12:0x1.fffffep3: ++%*12a:0x7.fffff8p125:0:12: ++%12a:0xf.fffffp+124:1:12:0x1.fffffep4: ++%*12a:0xf.fffffp+124:0:12: ++%12a:infinity:1:8:inf: ++%*12a:infinity:0:8: ++%12a:+nan():1:6:nan: ++%*12a:+nan():0:6: ++%12a:+nan(09A_Zaz):0:-1: ++%*12a:+nan(09A_Zaz):0:-1: ++%12a:+0x0p0:1:6:0x0: ++%*12a:+0x0p0:0:6: ++%12a:+0x0p+0:1:7:0x0: ++%*12a:+0x0p+0:0:7: ++%12a:+0x8p-129:1:9:0x1p-126: ++%*12a:+0x8p-129:0:9: ++# BZ12701 %12a:+0x2.345678p0123:0:-1: ++# BZ12701 %*12a:+0x2.345678p0123:0:-1: ++# BZ12701 %12a:+0x2.345678p+123:0:-1: ++# BZ12701 %*12a:+0x2.345678p+123:0:-1: ++# BZ12701 %12a:+0x7.fffff8p125:0:-1: ++# BZ12701 %*12a:+0x7.fffff8p125:0:-1: ++# BZ12701 %12a:+0xf.fffffp+124:0:-1: ++# BZ12701 %*12a:+0xf.fffffp+124:0:-1: ++%12a:+infinity:1:9:inf: ++%*12a:+infinity:0:9: ++%18a::0:-1: ++%*18a::0:-1: ++%18a:-infinity:1:9:-inf: ++%*18a:-infinity:0:9: ++%18a:-0xf.fffffp+124:1:15:-0x1.fffffep127: ++%*18a:-0xf.fffffp+124:0:15: ++%18a:-0x7.fffff8p125:1:15:-0x1.fffffep127: ++%*18a:-0x7.fffff8p125:0:15: ++%18a:-0x2.345678p+123:1:16:-0x1.1a2b3cp124: ++%*18a:-0x2.345678p+123:0:16: ++%18a:-0x2.345678p0123:1:16:-0x1.1a2b3cp124: ++%*18a:-0x2.345678p0123:0:16: ++%18a:-0x8p-129:1:9:-0x1p-126: ++%*18a:-0x8p-129:0:9: ++%18a:-0x0p+0:1:7:-0x0: ++%*18a:-0x0p+0:0:7: ++%18a:-0x0p0:1:6:-0x0: ++%*18a:-0x0p0:0:6: ++%18a:-nan(09A_Zaz):1:13:-nan: ++%*18a:-nan(09A_Zaz):0:13: ++%18a:-nan():1:6:-nan: ++%*18a:-nan():0:6: ++%18a:nan():1:5:nan: ++%*18a:nan():0:5: ++%18a:nan(09A_Zaz):1:12:nan: ++%*18a:nan(09A_Zaz):0:12: ++%18a:0x0p0:1:5:0x0: ++%*18a:0x0p0:0:5: ++%18a:0x0p+0:1:6:0x0: ++%*18a:0x0p+0:0:6: ++%18a:0x8p-129:1:8:0x1p-126: ++%*18a:0x8p-129:0:8: ++%18a:0x2.345678p0123:1:15:0x1.1a2b3cp124: ++%*18a:0x2.345678p0123:0:15: ++%18a:0x2.345678p+123:1:15:0x1.1a2b3cp124: ++%*18a:0x2.345678p+123:0:15: ++%18a:0x7.fffff8p125:1:14:0x1.fffffep127: ++%*18a:0x7.fffff8p125:0:14: ++%18a:0xf.fffffp+124:1:14:0x1.fffffep127: ++%*18a:0xf.fffffp+124:0:14: ++%18a:infinity:1:8:inf: ++%*18a:infinity:0:8: ++%18a:+nan():1:6:nan: ++%*18a:+nan():0:6: ++%18a:+nan(09A_Zaz):1:13:nan: ++%*18a:+nan(09A_Zaz):0:13: ++%18a:+0x0p0:1:6:0x0: ++%*18a:+0x0p0:0:6: ++%18a:+0x0p+0:1:7:0x0: ++%*18a:+0x0p+0:0:7: ++%18a:+0x8p-129:1:9:0x1p-126: ++%*18a:+0x8p-129:0:9: ++%18a:+0x2.345678p0123:1:16:0x1.1a2b3cp124: ++%*18a:+0x2.345678p0123:0:16: ++%18a:+0x2.345678p+123:1:16:0x1.1a2b3cp124: ++%*18a:+0x2.345678p+123:0:16: ++%18a:+0x7.fffff8p125:1:15:0x1.fffffep127: ++%*18a:+0x7.fffff8p125:0:15: ++%18a:+0xf.fffffp+124:1:15:0x1.fffffep127: ++%*18a:+0xf.fffffp+124:0:15: ++%18a:+infinity:1:9:inf: ++%*18a:+infinity:0:9: ++%5a: :0:-1: ++%*5a: :0:-1: ++%5a: -infinity:0:-1: ++%*5a: -infinity:0:-1: ++%5a: -0xf.fffffp+124:1:6:-0x1.ep3: ++%*5a: -0xf.fffffp+124:0:6: ++%5a: -0x7.fffff8p125:1:6:-0x1.cp2: ++%*5a: -0x7.fffff8p125:0:6: ++%5a: -0x2.345678p+123:1:6:-0x1p1: ++%*5a: -0x2.345678p+123:0:6: ++%5a: -0x2.345678p0123:1:6:-0x1p1: ++%*5a: -0x2.345678p0123:0:6: ++# BZ12701 %5a: -0x8p-129:0:-1: ++# BZ12701 %*5a: -0x8p-129:0:-1: ++# BZ12701 %5a: -0x0p+0:0:-1: ++# BZ12701 %*5a: -0x0p+0:0:-1: ++# BZ12701 %5a: -0x0p0:0:-1: ++# BZ12701 %*5a: -0x0p0:0:-1: ++%5a: -nan(09A_Zaz):0:-1: ++%*5a: -nan(09A_Zaz):0:-1: ++%5a: -nan():0:-1: ++%*5a: -nan():0:-1: ++%5a: nan():1:6:nan: ++%*5a: nan():0:6: ++%5a: nan(09A_Zaz):0:-1: ++%*5a: nan(09A_Zaz):0:-1: ++%5a: 0x0p0:1:6:0x0: ++%*5a: 0x0p0:0:6: ++# BZ12701 %5a: 0x0p+0:0:-1: ++# BZ12701 %*5a: 0x0p+0:0:-1: ++# BZ12701 %5a: 0x8p-129:0:-1: ++# BZ12701 %*5a: 0x8p-129:0:-1: ++%5a: 0x2.345678p0123:1:6:0x1.18p1: ++%*5a: 0x2.345678p0123:0:6: ++%5a: 0x2.345678p+123:1:6:0x1.18p1: ++%*5a: 0x2.345678p+123:0:6: ++%5a: 0x7.fffff8p125:1:6:0x1.fcp2: ++%*5a: 0x7.fffff8p125:0:6: ++%5a: 0xf.fffffp+124:1:6:0x1.fep3: ++%*5a: 0xf.fffffp+124:0:6: ++%5a: infinity:0:-1: ++%*5a: infinity:0:-1: ++%5a: +nan():0:-1: ++%*5a: +nan():0:-1: ++%5a: +nan(09A_Zaz):0:-1: ++%*5a: +nan(09A_Zaz):0:-1: ++# BZ12701 %5a: +0x0p0:0:-1: ++# BZ12701 %*5a: +0x0p0:0:-1: ++# BZ12701 %5a: +0x0p+0:0:-1: ++# BZ12701 %*5a: +0x0p+0:0:-1: ++# BZ12701 %5a: +0x8p-129:0:-1: ++# BZ12701 %*5a: +0x8p-129:0:-1: ++%5a: +0x2.345678p0123:1:6:0x1p1: ++%*5a: +0x2.345678p0123:0:6: ++%5a: +0x2.345678p+123:1:6:0x1p1: ++%*5a: +0x2.345678p+123:0:6: ++%5a: +0x7.fffff8p125:1:6:0x1.cp2: ++%*5a: +0x7.fffff8p125:0:6: ++%5a: +0xf.fffffp+124:1:6:0x1.ep3: ++%*5a: +0xf.fffffp+124:0:6: ++%5a: +infinity:0:-1: ++%*5a: +infinity:0:-1: ++%18a: :0:-1: ++%*18a: :0:-1: ++%18a: -infinity:1:10:-inf: ++%*18a: -infinity:0:10: ++%18a: -0xf.fffffp+124:1:16:-0x1.fffffep127: ++%*18a: -0xf.fffffp+124:0:16: ++%18a: -0x7.fffff8p125:1:16:-0x1.fffffep127: ++%*18a: -0x7.fffff8p125:0:16: ++%18a: -0x2.345678p+123:1:17:-0x1.1a2b3cp124: ++%*18a: -0x2.345678p+123:0:17: ++%18a: -0x2.345678p0123:1:17:-0x1.1a2b3cp124: ++%*18a: -0x2.345678p0123:0:17: ++%18a: -0x8p-129:1:10:-0x1p-126: ++%*18a: -0x8p-129:0:10: ++%18a: -0x0p+0:1:8:-0x0: ++%*18a: -0x0p+0:0:8: ++%18a: -0x0p0:1:7:-0x0: ++%*18a: -0x0p0:0:7: ++%18a: -nan(09A_Zaz):1:14:-nan: ++%*18a: -nan(09A_Zaz):0:14: ++%18a: -nan():1:7:-nan: ++%*18a: -nan():0:7: ++%18a: nan():1:6:nan: ++%*18a: nan():0:6: ++%18a: nan(09A_Zaz):1:13:nan: ++%*18a: nan(09A_Zaz):0:13: ++%18a: 0x0p0:1:6:0x0: ++%*18a: 0x0p0:0:6: ++%18a: 0x0p+0:1:7:0x0: ++%*18a: 0x0p+0:0:7: ++%18a: 0x8p-129:1:9:0x1p-126: ++%*18a: 0x8p-129:0:9: ++%18a: 0x2.345678p0123:1:16:0x1.1a2b3cp124: ++%*18a: 0x2.345678p0123:0:16: ++%18a: 0x2.345678p+123:1:16:0x1.1a2b3cp124: ++%*18a: 0x2.345678p+123:0:16: ++%18a: 0x7.fffff8p125:1:15:0x1.fffffep127: ++%*18a: 0x7.fffff8p125:0:15: ++%18a: 0xf.fffffp+124:1:15:0x1.fffffep127: ++%*18a: 0xf.fffffp+124:0:15: ++%18a: infinity:1:9:inf: ++%*18a: infinity:0:9: ++%18a: +nan():1:7:nan: ++%*18a: +nan():0:7: ++%18a: +nan(09A_Zaz):1:14:nan: ++%*18a: +nan(09A_Zaz):0:14: ++%18a: +0x0p0:1:7:0x0: ++%*18a: +0x0p0:0:7: ++%18a: +0x0p+0:1:8:0x0: ++%*18a: +0x0p+0:0:8: ++%18a: +0x8p-129:1:10:0x1p-126: ++%*18a: +0x8p-129:0:10: ++%18a: +0x2.345678p0123:1:17:0x1.1a2b3cp124: ++%*18a: +0x2.345678p0123:0:17: ++%18a: +0x2.345678p+123:1:17:0x1.1a2b3cp124: ++%*18a: +0x2.345678p+123:0:17: ++%18a: +0x7.fffff8p125:1:16:0x1.fffffep127: ++%*18a: +0x7.fffff8p125:0:16: ++%18a: +0xf.fffffp+124:1:16:0x1.fffffep127: ++%*18a: +0xf.fffffp+124:0:16: ++%18a: +infinity:1:10:inf: ++%*18a: +infinity:0:10: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-aa.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-aa.input +new file mode 100644 +index 0000000000000000..9f541217605c0b7a +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-aa.input +@@ -0,0 +1,682 @@ ++%A::0:-1: ++%*A::0:-1: ++%A:-INFINITY:1:9:-inf: ++%*A:-INFINITY:0:9: ++%A:-0XF.FFFFFP+124:1:15:-0x1.fffffep127: ++%*A:-0XF.FFFFFP+124:0:15: ++%A:-0X7.FFFFF8P125:1:15:-0x1.fffffep127: ++%*A:-0X7.FFFFF8P125:0:15: ++%A:-0X2.345678P+123:1:16:-0x1.1a2b3cp124: ++%*A:-0X2.345678P+123:0:16: ++%A:-0X2.345678P0123:1:16:-0x1.1a2b3cp124: ++%*A:-0X2.345678P0123:0:16: ++%A:-0X8P-129:1:9:-0x1p-126: ++%*A:-0X8P-129:0:9: ++%A:-0X0P+0:1:7:-0x0: ++%*A:-0X0P+0:0:7: ++%A:-0X0P0:1:6:-0x0: ++%*A:-0X0P0:0:6: ++%A:-NAN(09A_Zaz):1:13:-nan: ++%*A:-NAN(09A_Zaz):0:13: ++%A:-NAN():1:6:-nan: ++%*A:-NAN():0:6: ++%A:NAN():1:5:nan: ++%*A:NAN():0:5: ++%A:NAN(09A_Zaz):1:12:nan: ++%*A:NAN(09A_Zaz):0:12: ++%A:0X0P0:1:5:0x0: ++%*A:0X0P0:0:5: ++%A:0X0P+0:1:6:0x0: ++%*A:0X0P+0:0:6: ++%A:0X8P-129:1:8:0x1p-126: ++%*A:0X8P-129:0:8: ++%A:0X2.345678P0123:1:15:0x1.1a2b3cp124: ++%*A:0X2.345678P0123:0:15: ++%A:0X2.345678P+123:1:15:0x1.1a2b3cp124: ++%*A:0X2.345678P+123:0:15: ++%A:0X7.FFFFF8P125:1:14:0x1.fffffep127: ++%*A:0X7.FFFFF8P125:0:14: ++%A:0XF.FFFFFP+124:1:14:0x1.fffffep127: ++%*A:0XF.FFFFFP+124:0:14: ++%A:INFINITY:1:8:inf: ++%*A:INFINITY:0:8: ++%A:+NAN():1:6:nan: ++%*A:+NAN():0:6: ++%A:+NAN(09A_Zaz):1:13:nan: ++%*A:+NAN(09A_Zaz):0:13: ++%A:+0X0P0:1:6:0x0: ++%*A:+0X0P0:0:6: ++%A:+0X0P+0:1:7:0x0: ++%*A:+0X0P+0:0:7: ++%A:+0X8P-129:1:9:0x1p-126: ++%*A:+0X8P-129:0:9: ++%A:+0X2.345678P0123:1:16:0x1.1a2b3cp124: ++%*A:+0X2.345678P0123:0:16: ++%A:+0X2.345678P+123:1:16:0x1.1a2b3cp124: ++%*A:+0X2.345678P+123:0:16: ++%A:+0X7.FFFFF8P125:1:15:0x1.fffffep127: ++%*A:+0X7.FFFFF8P125:0:15: ++%A:+0XF.FFFFFP+124:1:15:0x1.fffffep127: ++%*A:+0XF.FFFFFP+124:0:15: ++%A:+INFINITY:1:9:inf: ++%*A:+INFINITY:0:9: ++%1A::0:-1: ++%*1A::0:-1: ++%1A:-INFINITY:0:-1: ++%*1A:-INFINITY:0:-1: ++%1A:-0XF.FFFFFP+124:0:-1: ++%*1A:-0XF.FFFFFP+124:0:-1: ++%1A:-0X7.FFFFF8P125:0:-1: ++%*1A:-0X7.FFFFF8P125:0:-1: ++%1A:-0X2.345678P+123:0:-1: ++%*1A:-0X2.345678P+123:0:-1: ++%1A:-0X2.345678P0123:0:-1: ++%*1A:-0X2.345678P0123:0:-1: ++%1A:-0X8P-129:0:-1: ++%*1A:-0X8P-129:0:-1: ++%1A:-0X0P+0:0:-1: ++%*1A:-0X0P+0:0:-1: ++%1A:-0X0P0:0:-1: ++%*1A:-0X0P0:0:-1: ++%1A:-NAN(09A_Zaz):0:-1: ++%*1A:-NAN(09A_Zaz):0:-1: ++%1A:-NAN():0:-1: ++%*1A:-NAN():0:-1: ++%1A:NAN():0:-1: ++%*1A:NAN():0:-1: ++%1A:NAN(09A_Zaz):0:-1: ++%*1A:NAN(09A_Zaz):0:-1: ++%1A:0X0P0:1:1:0x0: ++%*1A:0X0P0:0:1: ++%1A:0X0P+0:1:1:0x0: ++%*1A:0X0P+0:0:1: ++%1A:0X8P-129:1:1:0x0: ++%*1A:0X8P-129:0:1: ++%1A:0X2.345678P0123:1:1:0x0: ++%*1A:0X2.345678P0123:0:1: ++%1A:0X2.345678P+123:1:1:0x0: ++%*1A:0X2.345678P+123:0:1: ++%1A:0X7.FFFFF8P125:1:1:0x0: ++%*1A:0X7.FFFFF8P125:0:1: ++%1A:0XF.FFFFFP+124:1:1:0x0: ++%*1A:0XF.FFFFFP+124:0:1: ++%1A:INFINITY:0:-1: ++%*1A:INFINITY:0:-1: ++%1A:+NAN():0:-1: ++%*1A:+NAN():0:-1: ++%1A:+NAN(09A_Zaz):0:-1: ++%*1A:+NAN(09A_Zaz):0:-1: ++%1A:+0X0P0:0:-1: ++%*1A:+0X0P0:0:-1: ++%1A:+0X0P+0:0:-1: ++%*1A:+0X0P+0:0:-1: ++%1A:+0X8P-129:0:-1: ++%*1A:+0X8P-129:0:-1: ++%1A:+0X2.345678P0123:0:-1: ++%*1A:+0X2.345678P0123:0:-1: ++%1A:+0X2.345678P+123:0:-1: ++%*1A:+0X2.345678P+123:0:-1: ++%1A:+0X7.FFFFF8P125:0:-1: ++%*1A:+0X7.FFFFF8P125:0:-1: ++%1A:+0XF.FFFFFP+124:0:-1: ++%*1A:+0XF.FFFFFP+124:0:-1: ++%1A:+INFINITY:0:-1: ++%*1A:+INFINITY:0:-1: ++%2A::0:-1: ++%*2A::0:-1: ++%2A:-INFINITY:0:-1: ++%*2A:-INFINITY:0:-1: ++%2A:-0XF.FFFFFP+124:1:2:-0x0: ++%*2A:-0XF.FFFFFP+124:0:2: ++%2A:-0X7.FFFFF8P125:1:2:-0x0: ++%*2A:-0X7.FFFFF8P125:0:2: ++%2A:-0X2.345678P+123:1:2:-0x0: ++%*2A:-0X2.345678P+123:0:2: ++%2A:-0X2.345678P0123:1:2:-0x0: ++%*2A:-0X2.345678P0123:0:2: ++%2A:-0X8P-129:1:2:-0x0: ++%*2A:-0X8P-129:0:2: ++%2A:-0X0P+0:1:2:-0x0: ++%*2A:-0X0P+0:0:2: ++%2A:-0X0P0:1:2:-0x0: ++%*2A:-0X0P0:0:2: ++%2A:-NAN(09A_Zaz):0:-1: ++%*2A:-NAN(09A_Zaz):0:-1: ++%2A:-NAN():0:-1: ++%*2A:-NAN():0:-1: ++%2A:NAN():0:-1: ++%*2A:NAN():0:-1: ++%2A:NAN(09A_Zaz):0:-1: ++%*2A:NAN(09A_Zaz):0:-1: ++# BZ12701 %2A:0X0P0:0:-1: ++# BZ12701 %*2A:0X0P0:0:-1: ++# BZ12701 %2A:0X0P+0:0:-1: ++# BZ12701 %*2A:0X0P+0:0:-1: ++# BZ12701 %2A:0X8P-129:0:-1: ++# BZ12701 %*2A:0X8P-129:0:-1: ++# BZ12701 %2A:0X2.345678P0123:0:-1: ++# BZ12701 %*2A:0X2.345678P0123:0:-1: ++# BZ12701 %2A:0X2.345678P+123:0:-1: ++# BZ12701 %*2A:0X2.345678P+123:0:-1: ++# BZ12701 %2A:0X7.FFFFF8P125:0:-1: ++# BZ12701 %*2A:0X7.FFFFF8P125:0:-1: ++# BZ12701 %2A:0XF.FFFFFP+124:0:-1: ++# BZ12701 %*2A:0XF.FFFFFP+124:0:-1: ++%2A:INFINITY:0:-1: ++%*2A:INFINITY:0:-1: ++%2A:+NAN():0:-1: ++%*2A:+NAN():0:-1: ++%2A:+NAN(09A_Zaz):0:-1: ++%*2A:+NAN(09A_Zaz):0:-1: ++%2A:+0X0P0:1:2:0x0: ++%*2A:+0X0P0:0:2: ++%2A:+0X0P+0:1:2:0x0: ++%*2A:+0X0P+0:0:2: ++%2A:+0X8P-129:1:2:0x0: ++%*2A:+0X8P-129:0:2: ++%2A:+0X2.345678P0123:1:2:0x0: ++%*2A:+0X2.345678P0123:0:2: ++%2A:+0X2.345678P+123:1:2:0x0: ++%*2A:+0X2.345678P+123:0:2: ++%2A:+0X7.FFFFF8P125:1:2:0x0: ++%*2A:+0X7.FFFFF8P125:0:2: ++%2A:+0XF.FFFFFP+124:1:2:0x0: ++%*2A:+0XF.FFFFFP+124:0:2: ++%2A:+INFINITY:0:-1: ++%*2A:+INFINITY:0:-1: ++%3A::0:-1: ++%*3A::0:-1: ++%3A:-INFINITY:0:-1: ++%*3A:-INFINITY:0:-1: ++# BZ12701 %3A:-0XF.FFFFFP+124:0:-1: ++# BZ12701 %*3A:-0XF.FFFFFP+124:0:-1: ++# BZ12701 %3A:-0X7.FFFFF8P125:0:-1: ++# BZ12701 %*3A:-0X7.FFFFF8P125:0:-1: ++# BZ12701 %3A:-0X2.345678P+123:0:-1: ++# BZ12701 %*3A:-0X2.345678P+123:0:-1: ++# BZ12701 %3A:-0X2.345678P0123:0:-1: ++# BZ12701 %*3A:-0X2.345678P0123:0:-1: ++# BZ12701 %3A:-0X8P-129:0:-1: ++# BZ12701 %*3A:-0X8P-129:0:-1: ++# BZ12701 %3A:-0X0P+0:0:-1: ++# BZ12701 %*3A:-0X0P+0:0:-1: ++# BZ12701 %3A:-0X0P0:0:-1: ++# BZ12701 %*3A:-0X0P0:0:-1: ++%3A:-NAN(09A_Zaz):0:-1: ++%*3A:-NAN(09A_Zaz):0:-1: ++%3A:-NAN():0:-1: ++%*3A:-NAN():0:-1: ++%3A:NAN():1:3:nan: ++%*3A:NAN():0:3: ++%3A:NAN(09A_Zaz):1:3:nan: ++%*3A:NAN(09A_Zaz):0:3: ++%3A:0X0P0:1:3:0x0: ++%*3A:0X0P0:0:3: ++%3A:0X0P+0:1:3:0x0: ++%*3A:0X0P+0:0:3: ++%3A:0X8P-129:1:3:0x1p3: ++%*3A:0X8P-129:0:3: ++%3A:0X2.345678P0123:1:3:0x1p1: ++%*3A:0X2.345678P0123:0:3: ++%3A:0X2.345678P+123:1:3:0x1p1: ++%*3A:0X2.345678P+123:0:3: ++%3A:0X7.FFFFF8P125:1:3:0x1.cp2: ++%*3A:0X7.FFFFF8P125:0:3: ++%3A:0XF.FFFFFP+124:1:3:0x1.ep3: ++%*3A:0XF.FFFFFP+124:0:3: ++%3A:INFINITY:1:3:inf: ++%*3A:INFINITY:0:3: ++%3A:+NAN():0:-1: ++%*3A:+NAN():0:-1: ++%3A:+NAN(09A_Zaz):0:-1: ++%*3A:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3A:+0X0P0:0:-1: ++# BZ12701 %*3A:+0X0P0:0:-1: ++# BZ12701 %3A:+0X0P+0:0:-1: ++# BZ12701 %*3A:+0X0P+0:0:-1: ++# BZ12701 %3A:+0X8P-129:0:-1: ++# BZ12701 %*3A:+0X8P-129:0:-1: ++# BZ12701 %3A:+0X2.345678P0123:0:-1: ++# BZ12701 %*3A:+0X2.345678P0123:0:-1: ++# BZ12701 %3A:+0X2.345678P+123:0:-1: ++# BZ12701 %*3A:+0X2.345678P+123:0:-1: ++# BZ12701 %3A:+0X7.FFFFF8P125:0:-1: ++# BZ12701 %*3A:+0X7.FFFFF8P125:0:-1: ++# BZ12701 %3A:+0XF.FFFFFP+124:0:-1: ++# BZ12701 %*3A:+0XF.FFFFFP+124:0:-1: ++%3A:+INFINITY:0:-1: ++%*3A:+INFINITY:0:-1: ++%4A::0:-1: ++%*4A::0:-1: ++%4A:-INFINITY:1:4:-inf: ++%*4A:-INFINITY:0:4: ++%4A:-0XF.FFFFFP+124:1:4:-0x1.ep3: ++%*4A:-0XF.FFFFFP+124:0:4: ++%4A:-0X7.FFFFF8P125:1:4:-0x1.cp2: ++%*4A:-0X7.FFFFF8P125:0:4: ++%4A:-0X2.345678P+123:1:4:-0x1p1: ++%*4A:-0X2.345678P+123:0:4: ++%4A:-0X2.345678P0123:1:4:-0x1p1: ++%*4A:-0X2.345678P0123:0:4: ++%4A:-0X8P-129:1:4:-0x1p3: ++%*4A:-0X8P-129:0:4: ++%4A:-0X0P+0:1:4:-0x0: ++%*4A:-0X0P+0:0:4: ++%4A:-0X0P0:1:4:-0x0: ++%*4A:-0X0P0:0:4: ++%4A:-NAN(09A_Zaz):1:4:-nan: ++%*4A:-NAN(09A_Zaz):0:4: ++%4A:-NAN():1:4:-nan: ++%*4A:-NAN():0:4: ++%4A:NAN():0:-1: ++%*4A:NAN():0:-1: ++%4A:NAN(09A_Zaz):0:-1: ++%*4A:NAN(09A_Zaz):0:-1: ++# BZ12701 %4A:0X0P0:0:-1: ++# BZ12701 %*4A:0X0P0:0:-1: ++# BZ12701 %4A:0X0P+0:0:-1: ++# BZ12701 %*4A:0X0P+0:0:-1: ++# BZ12701 %4A:0X8P-129:0:-1: ++# BZ12701 %*4A:0X8P-129:0:-1: ++%4A:0X2.345678P0123:1:4:0x1p1: ++%*4A:0X2.345678P0123:0:4: ++%4A:0X2.345678P+123:1:4:0x1p1: ++%*4A:0X2.345678P+123:0:4: ++%4A:0X7.FFFFF8P125:1:4:0x1.cp2: ++%*4A:0X7.FFFFF8P125:0:4: ++%4A:0XF.FFFFFP+124:1:4:0x1.ep3: ++%*4A:0XF.FFFFFP+124:0:4: ++%4A:INFINITY:0:-1: ++%*4A:INFINITY:0:-1: ++%4A:+NAN():1:4:nan: ++%*4A:+NAN():0:4: ++%4A:+NAN(09A_Zaz):1:4:nan: ++%*4A:+NAN(09A_Zaz):0:4: ++%4A:+0X0P0:1:4:0x0: ++%*4A:+0X0P0:0:4: ++%4A:+0X0P+0:1:4:0x0: ++%*4A:+0X0P+0:0:4: ++%4A:+0X8P-129:1:4:0x1p3: ++%*4A:+0X8P-129:0:4: ++%4A:+0X2.345678P0123:1:4:0x1p1: ++%*4A:+0X2.345678P0123:0:4: ++%4A:+0X2.345678P+123:1:4:0x1p1: ++%*4A:+0X2.345678P+123:0:4: ++%4A:+0X7.FFFFF8P125:1:4:0x1.cp2: ++%*4A:+0X7.FFFFF8P125:0:4: ++%4A:+0XF.FFFFFP+124:1:4:0x1.ep3: ++%*4A:+0XF.FFFFFP+124:0:4: ++%4A:+INFINITY:1:4:inf: ++%*4A:+INFINITY:0:4: ++%5A::0:-1: ++%*5A::0:-1: ++%5A:-INFINITY:0:-1: ++%*5A:-INFINITY:0:-1: ++%5A:-0XF.FFFFFP+124:1:5:-0x1.ep3: ++%*5A:-0XF.FFFFFP+124:0:5: ++%5A:-0X7.FFFFF8P125:1:5:-0x1.cp2: ++%*5A:-0X7.FFFFF8P125:0:5: ++%5A:-0X2.345678P+123:1:5:-0x1p1: ++%*5A:-0X2.345678P+123:0:5: ++%5A:-0X2.345678P0123:1:5:-0x1p1: ++%*5A:-0X2.345678P0123:0:5: ++# BZ12701 %5A:-0X8P-129:0:-1: ++# BZ12701 %*5A:-0X8P-129:0:-1: ++# BZ12701 %5A:-0X0P+0:0:-1: ++# BZ12701 %*5A:-0X0P+0:0:-1: ++# BZ12701 %5A:-0X0P0:0:-1: ++# BZ12701 %*5A:-0X0P0:0:-1: ++%5A:-NAN(09A_Zaz):0:-1: ++%*5A:-NAN(09A_Zaz):0:-1: ++%5A:-NAN():0:-1: ++%*5A:-NAN():0:-1: ++%5A:NAN():1:5:nan: ++%*5A:NAN():0:5: ++%5A:NAN(09A_Zaz):0:-1: ++%*5A:NAN(09A_Zaz):0:-1: ++%5A:0X0P0:1:5:0x0: ++%*5A:0X0P0:0:5: ++# BZ12701 %5A:0X0P+0:0:-1: ++# BZ12701 %*5A:0X0P+0:0:-1: ++# BZ12701 %5A:0X8P-129:0:-1: ++# BZ12701 %*5A:0X8P-129:0:-1: ++%5A:0X2.345678P0123:1:5:0x1.18p1: ++%*5A:0X2.345678P0123:0:5: ++%5A:0X2.345678P+123:1:5:0x1.18p1: ++%*5A:0X2.345678P+123:0:5: ++%5A:0X7.FFFFF8P125:1:5:0x1.fcp2: ++%*5A:0X7.FFFFF8P125:0:5: ++%5A:0XF.FFFFFP+124:1:5:0x1.fep3: ++%*5A:0XF.FFFFFP+124:0:5: ++%5A:INFINITY:0:-1: ++%*5A:INFINITY:0:-1: ++%5A:+NAN():0:-1: ++%*5A:+NAN():0:-1: ++%5A:+NAN(09A_Zaz):0:-1: ++%*5A:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5A:+0X0P0:0:-1: ++# BZ12701 %*5A:+0X0P0:0:-1: ++# BZ12701 %5A:+0X0P+0:0:-1: ++# BZ12701 %*5A:+0X0P+0:0:-1: ++# BZ12701 %5A:+0X8P-129:0:-1: ++# BZ12701 %*5A:+0X8P-129:0:-1: ++%5A:+0X2.345678P0123:1:5:0x1p1: ++%*5A:+0X2.345678P0123:0:5: ++%5A:+0X2.345678P+123:1:5:0x1p1: ++%*5A:+0X2.345678P+123:0:5: ++%5A:+0X7.FFFFF8P125:1:5:0x1.cp2: ++%*5A:+0X7.FFFFF8P125:0:5: ++%5A:+0XF.FFFFFP+124:1:5:0x1.ep3: ++%*5A:+0XF.FFFFFP+124:0:5: ++%5A:+INFINITY:0:-1: ++%*5A:+INFINITY:0:-1: ++%6A::0:-1: ++%*6A::0:-1: ++%6A:-INFINITY:0:-1: ++%*6A:-INFINITY:0:-1: ++%6A:-0XF.FFFFFP+124:1:6:-0x1.fep3: ++%*6A:-0XF.FFFFFP+124:0:6: ++%6A:-0X7.FFFFF8P125:1:6:-0x1.fcp2: ++%*6A:-0X7.FFFFF8P125:0:6: ++%6A:-0X2.345678P+123:1:6:-0x1.18p1: ++%*6A:-0X2.345678P+123:0:6: ++%6A:-0X2.345678P0123:1:6:-0x1.18p1: ++%*6A:-0X2.345678P0123:0:6: ++# BZ12701 %6A:-0X8P-129:0:-1: ++# BZ12701 %*6A:-0X8P-129:0:-1: ++# BZ12701 %6A:-0X0P+0:0:-1: ++# BZ12701 %*6A:-0X0P+0:0:-1: ++%6A:-0X0P0:1:6:-0x0: ++%*6A:-0X0P0:0:6: ++%6A:-NAN(09A_Zaz):0:-1: ++%*6A:-NAN(09A_Zaz):0:-1: ++%6A:-NAN():1:6:-nan: ++%*6A:-NAN():0:6: ++%6A:NAN():1:5:nan: ++%*6A:NAN():0:5: ++%6A:NAN(09A_Zaz):0:-1: ++%*6A:NAN(09A_Zaz):0:-1: ++%6A:0X0P0:1:5:0x0: ++%*6A:0X0P0:0:5: ++%6A:0X0P+0:1:6:0x0: ++%*6A:0X0P+0:0:6: ++%6A:0X8P-129:1:6:0x1p2: ++%*6A:0X8P-129:0:6: ++%6A:0X2.345678P0123:1:6:0x1.1ap1: ++%*6A:0X2.345678P0123:0:6: ++%6A:0X2.345678P+123:1:6:0x1.1ap1: ++%*6A:0X2.345678P+123:0:6: ++%6A:0X7.FFFFF8P125:1:6:0x1.ffcp2: ++%*6A:0X7.FFFFF8P125:0:6: ++%6A:0XF.FFFFFP+124:1:6:0x1.ffep3: ++%*6A:0XF.FFFFFP+124:0:6: ++%6A:INFINITY:0:-1: ++%*6A:INFINITY:0:-1: ++%6A:+NAN():1:6:nan: ++%*6A:+NAN():0:6: ++%6A:+NAN(09A_Zaz):0:-1: ++%*6A:+NAN(09A_Zaz):0:-1: ++%6A:+0X0P0:1:6:0x0: ++%*6A:+0X0P0:0:6: ++# BZ12701 %6A:+0X0P+0:0:-1: ++# BZ12701 %*6A:+0X0P+0:0:-1: ++# BZ12701 %6A:+0X8P-129:0:-1: ++# BZ12701 %*6A:+0X8P-129:0:-1: ++%6A:+0X2.345678P0123:1:6:0x1.18p1: ++%*6A:+0X2.345678P0123:0:6: ++%6A:+0X2.345678P+123:1:6:0x1.18p1: ++%*6A:+0X2.345678P+123:0:6: ++%6A:+0X7.FFFFF8P125:1:6:0x1.fcp2: ++%*6A:+0X7.FFFFF8P125:0:6: ++%6A:+0XF.FFFFFP+124:1:6:0x1.fep3: ++%*6A:+0XF.FFFFFP+124:0:6: ++%6A:+INFINITY:0:-1: ++%*6A:+INFINITY:0:-1: ++%12A::0:-1: ++%*12A::0:-1: ++%12A:-INFINITY:1:9:-inf: ++%*12A:-INFINITY:0:9: ++# BZ12701 %12A:-0XF.FFFFFP+124:0:-1: ++# BZ12701 %*12A:-0XF.FFFFFP+124:0:-1: ++# BZ12701 %12A:-0X7.FFFFF8P125:0:-1: ++# BZ12701 %*12A:-0X7.FFFFF8P125:0:-1: ++# BZ12701 %12A:-0X2.345678P+123:0:-1: ++# BZ12701 %*12A:-0X2.345678P+123:0:-1: ++# BZ12701 %12A:-0X2.345678P0123:0:-1: ++# BZ12701 %*12A:-0X2.345678P0123:0:-1: ++%12A:-0X8P-129:1:9:-0x1p-126: ++%*12A:-0X8P-129:0:9: ++%12A:-0X0P+0:1:7:-0x0: ++%*12A:-0X0P+0:0:7: ++%12A:-0X0P0:1:6:-0x0: ++%*12A:-0X0P0:0:6: ++%12A:-NAN(09A_Zaz):0:-1: ++%*12A:-NAN(09A_Zaz):0:-1: ++%12A:-NAN():1:6:-nan: ++%*12A:-NAN():0:6: ++%12A:NAN():1:5:nan: ++%*12A:NAN():0:5: ++%12A:NAN(09A_Zaz):1:12:nan: ++%*12A:NAN(09A_Zaz):0:12: ++%12A:0X0P0:1:5:0x0: ++%*12A:0X0P0:0:5: ++%12A:0X0P+0:1:6:0x0: ++%*12A:0X0P+0:0:6: ++%12A:0X8P-129:1:8:0x1p-126: ++%*12A:0X8P-129:0:8: ++%12A:0X2.345678P0123:1:12:0x1.1a2b3cp1: ++%*12A:0X2.345678P0123:0:12: ++# BZ12701 %12A:0X2.345678P+123:0:-1: ++# BZ12701 %*12A:0X2.345678P+123:0:-1: ++%12A:0X7.FFFFF8P125:1:12:0x1.fffffep3: ++%*12A:0X7.FFFFF8P125:0:12: ++%12A:0XF.FFFFFP+124:1:12:0x1.fffffep4: ++%*12A:0XF.FFFFFP+124:0:12: ++%12A:INFINITY:1:8:inf: ++%*12A:INFINITY:0:8: ++%12A:+NAN():1:6:nan: ++%*12A:+NAN():0:6: ++%12A:+NAN(09A_Zaz):0:-1: ++%*12A:+NAN(09A_Zaz):0:-1: ++%12A:+0X0P0:1:6:0x0: ++%*12A:+0X0P0:0:6: ++%12A:+0X0P+0:1:7:0x0: ++%*12A:+0X0P+0:0:7: ++%12A:+0X8P-129:1:9:0x1p-126: ++%*12A:+0X8P-129:0:9: ++# BZ12701 %12A:+0X2.345678P0123:0:-1: ++# BZ12701 %*12A:+0X2.345678P0123:0:-1: ++# BZ12701 %12A:+0X2.345678P+123:0:-1: ++# BZ12701 %*12A:+0X2.345678P+123:0:-1: ++# BZ12701 %12A:+0X7.FFFFF8P125:0:-1: ++# BZ12701 %*12A:+0X7.FFFFF8P125:0:-1: ++# BZ12701 %12A:+0XF.FFFFFP+124:0:-1: ++# BZ12701 %*12A:+0XF.FFFFFP+124:0:-1: ++%12A:+INFINITY:1:9:inf: ++%*12A:+INFINITY:0:9: ++%18A::0:-1: ++%*18A::0:-1: ++%18A:-INFINITY:1:9:-inf: ++%*18A:-INFINITY:0:9: ++%18A:-0XF.FFFFFP+124:1:15:-0x1.fffffep127: ++%*18A:-0XF.FFFFFP+124:0:15: ++%18A:-0X7.FFFFF8P125:1:15:-0x1.fffffep127: ++%*18A:-0X7.FFFFF8P125:0:15: ++%18A:-0X2.345678P+123:1:16:-0x1.1a2b3cp124: ++%*18A:-0X2.345678P+123:0:16: ++%18A:-0X2.345678P0123:1:16:-0x1.1a2b3cp124: ++%*18A:-0X2.345678P0123:0:16: ++%18A:-0X8P-129:1:9:-0x1p-126: ++%*18A:-0X8P-129:0:9: ++%18A:-0X0P+0:1:7:-0x0: ++%*18A:-0X0P+0:0:7: ++%18A:-0X0P0:1:6:-0x0: ++%*18A:-0X0P0:0:6: ++%18A:-NAN(09A_Zaz):1:13:-nan: ++%*18A:-NAN(09A_Zaz):0:13: ++%18A:-NAN():1:6:-nan: ++%*18A:-NAN():0:6: ++%18A:NAN():1:5:nan: ++%*18A:NAN():0:5: ++%18A:NAN(09A_Zaz):1:12:nan: ++%*18A:NAN(09A_Zaz):0:12: ++%18A:0X0P0:1:5:0x0: ++%*18A:0X0P0:0:5: ++%18A:0X0P+0:1:6:0x0: ++%*18A:0X0P+0:0:6: ++%18A:0X8P-129:1:8:0x1p-126: ++%*18A:0X8P-129:0:8: ++%18A:0X2.345678P0123:1:15:0x1.1a2b3cp124: ++%*18A:0X2.345678P0123:0:15: ++%18A:0X2.345678P+123:1:15:0x1.1a2b3cp124: ++%*18A:0X2.345678P+123:0:15: ++%18A:0X7.FFFFF8P125:1:14:0x1.fffffep127: ++%*18A:0X7.FFFFF8P125:0:14: ++%18A:0XF.FFFFFP+124:1:14:0x1.fffffep127: ++%*18A:0XF.FFFFFP+124:0:14: ++%18A:INFINITY:1:8:inf: ++%*18A:INFINITY:0:8: ++%18A:+NAN():1:6:nan: ++%*18A:+NAN():0:6: ++%18A:+NAN(09A_Zaz):1:13:nan: ++%*18A:+NAN(09A_Zaz):0:13: ++%18A:+0X0P0:1:6:0x0: ++%*18A:+0X0P0:0:6: ++%18A:+0X0P+0:1:7:0x0: ++%*18A:+0X0P+0:0:7: ++%18A:+0X8P-129:1:9:0x1p-126: ++%*18A:+0X8P-129:0:9: ++%18A:+0X2.345678P0123:1:16:0x1.1a2b3cp124: ++%*18A:+0X2.345678P0123:0:16: ++%18A:+0X2.345678P+123:1:16:0x1.1a2b3cp124: ++%*18A:+0X2.345678P+123:0:16: ++%18A:+0X7.FFFFF8P125:1:15:0x1.fffffep127: ++%*18A:+0X7.FFFFF8P125:0:15: ++%18A:+0XF.FFFFFP+124:1:15:0x1.fffffep127: ++%*18A:+0XF.FFFFFP+124:0:15: ++%18A:+INFINITY:1:9:inf: ++%*18A:+INFINITY:0:9: ++%5A: :0:-1: ++%*5A: :0:-1: ++%5A: -INFINITY:0:-1: ++%*5A: -INFINITY:0:-1: ++%5A: -0XF.FFFFFP+124:1:6:-0x1.ep3: ++%*5A: -0XF.FFFFFP+124:0:6: ++%5A: -0X7.FFFFF8P125:1:6:-0x1.cp2: ++%*5A: -0X7.FFFFF8P125:0:6: ++%5A: -0X2.345678P+123:1:6:-0x1p1: ++%*5A: -0X2.345678P+123:0:6: ++%5A: -0X2.345678P0123:1:6:-0x1p1: ++%*5A: -0X2.345678P0123:0:6: ++# BZ12701 %5A: -0X8P-129:0:-1: ++# BZ12701 %*5A: -0X8P-129:0:-1: ++# BZ12701 %5A: -0X0P+0:0:-1: ++# BZ12701 %*5A: -0X0P+0:0:-1: ++# BZ12701 %5A: -0X0P0:0:-1: ++# BZ12701 %*5A: -0X0P0:0:-1: ++%5A: -NAN(09A_Zaz):0:-1: ++%*5A: -NAN(09A_Zaz):0:-1: ++%5A: -NAN():0:-1: ++%*5A: -NAN():0:-1: ++%5A: NAN():1:6:nan: ++%*5A: NAN():0:6: ++%5A: NAN(09A_Zaz):0:-1: ++%*5A: NAN(09A_Zaz):0:-1: ++%5A: 0X0P0:1:6:0x0: ++%*5A: 0X0P0:0:6: ++# BZ12701 %5A: 0X0P+0:0:-1: ++# BZ12701 %*5A: 0X0P+0:0:-1: ++# BZ12701 %5A: 0X8P-129:0:-1: ++# BZ12701 %*5A: 0X8P-129:0:-1: ++%5A: 0X2.345678P0123:1:6:0x1.18p1: ++%*5A: 0X2.345678P0123:0:6: ++%5A: 0X2.345678P+123:1:6:0x1.18p1: ++%*5A: 0X2.345678P+123:0:6: ++%5A: 0X7.FFFFF8P125:1:6:0x1.fcp2: ++%*5A: 0X7.FFFFF8P125:0:6: ++%5A: 0XF.FFFFFP+124:1:6:0x1.fep3: ++%*5A: 0XF.FFFFFP+124:0:6: ++%5A: INFINITY:0:-1: ++%*5A: INFINITY:0:-1: ++%5A: +NAN():0:-1: ++%*5A: +NAN():0:-1: ++%5A: +NAN(09A_Zaz):0:-1: ++%*5A: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5A: +0X0P0:0:-1: ++# BZ12701 %*5A: +0X0P0:0:-1: ++# BZ12701 %5A: +0X0P+0:0:-1: ++# BZ12701 %*5A: +0X0P+0:0:-1: ++# BZ12701 %5A: +0X8P-129:0:-1: ++# BZ12701 %*5A: +0X8P-129:0:-1: ++%5A: +0X2.345678P0123:1:6:0x1p1: ++%*5A: +0X2.345678P0123:0:6: ++%5A: +0X2.345678P+123:1:6:0x1p1: ++%*5A: +0X2.345678P+123:0:6: ++%5A: +0X7.FFFFF8P125:1:6:0x1.cp2: ++%*5A: +0X7.FFFFF8P125:0:6: ++%5A: +0XF.FFFFFP+124:1:6:0x1.ep3: ++%*5A: +0XF.FFFFFP+124:0:6: ++%5A: +INFINITY:0:-1: ++%*5A: +INFINITY:0:-1: ++%18A: :0:-1: ++%*18A: :0:-1: ++%18A: -INFINITY:1:10:-inf: ++%*18A: -INFINITY:0:10: ++%18A: -0XF.FFFFFP+124:1:16:-0x1.fffffep127: ++%*18A: -0XF.FFFFFP+124:0:16: ++%18A: -0X7.FFFFF8P125:1:16:-0x1.fffffep127: ++%*18A: -0X7.FFFFF8P125:0:16: ++%18A: -0X2.345678P+123:1:17:-0x1.1a2b3cp124: ++%*18A: -0X2.345678P+123:0:17: ++%18A: -0X2.345678P0123:1:17:-0x1.1a2b3cp124: ++%*18A: -0X2.345678P0123:0:17: ++%18A: -0X8P-129:1:10:-0x1p-126: ++%*18A: -0X8P-129:0:10: ++%18A: -0X0P+0:1:8:-0x0: ++%*18A: -0X0P+0:0:8: ++%18A: -0X0P0:1:7:-0x0: ++%*18A: -0X0P0:0:7: ++%18A: -NAN(09A_Zaz):1:14:-nan: ++%*18A: -NAN(09A_Zaz):0:14: ++%18A: -NAN():1:7:-nan: ++%*18A: -NAN():0:7: ++%18A: NAN():1:6:nan: ++%*18A: NAN():0:6: ++%18A: NAN(09A_Zaz):1:13:nan: ++%*18A: NAN(09A_Zaz):0:13: ++%18A: 0X0P0:1:6:0x0: ++%*18A: 0X0P0:0:6: ++%18A: 0X0P+0:1:7:0x0: ++%*18A: 0X0P+0:0:7: ++%18A: 0X8P-129:1:9:0x1p-126: ++%*18A: 0X8P-129:0:9: ++%18A: 0X2.345678P0123:1:16:0x1.1a2b3cp124: ++%*18A: 0X2.345678P0123:0:16: ++%18A: 0X2.345678P+123:1:16:0x1.1a2b3cp124: ++%*18A: 0X2.345678P+123:0:16: ++%18A: 0X7.FFFFF8P125:1:15:0x1.fffffep127: ++%*18A: 0X7.FFFFF8P125:0:15: ++%18A: 0XF.FFFFFP+124:1:15:0x1.fffffep127: ++%*18A: 0XF.FFFFFP+124:0:15: ++%18A: INFINITY:1:9:inf: ++%*18A: INFINITY:0:9: ++%18A: +NAN():1:7:nan: ++%*18A: +NAN():0:7: ++%18A: +NAN(09A_Zaz):1:14:nan: ++%*18A: +NAN(09A_Zaz):0:14: ++%18A: +0X0P0:1:7:0x0: ++%*18A: +0X0P0:0:7: ++%18A: +0X0P+0:1:8:0x0: ++%*18A: +0X0P+0:0:8: ++%18A: +0X8P-129:1:10:0x1p-126: ++%*18A: +0X8P-129:0:10: ++%18A: +0X2.345678P0123:1:17:0x1.1a2b3cp124: ++%*18A: +0X2.345678P0123:0:17: ++%18A: +0X2.345678P+123:1:17:0x1.1a2b3cp124: ++%*18A: +0X2.345678P+123:0:17: ++%18A: +0X7.FFFFF8P125:1:16:0x1.fffffep127: ++%*18A: +0X7.FFFFF8P125:0:16: ++%18A: +0XF.FFFFFP+124:1:16:0x1.fffffep127: ++%*18A: +0XF.FFFFFP+124:0:16: ++%18A: +INFINITY:1:10:inf: ++%*18A: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-e.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-e.input +new file mode 100644 +index 0000000000000000..e555bb47b9c86bbe +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-e.input +@@ -0,0 +1,558 @@ ++%e::0:-1: ++%*e::0:-1: ++%e:-infinity:1:9:-inf: ++%*e:-infinity:0:9: ++%e:-3.40282346638528859811704183484516925e+38:1:42:-0x1.fffffep127: ++%*e:-3.40282346638528859811704183484516925e+38:0:42: ++%e:-3.40282346638528859811704183484516925e38:1:41:-0x1.fffffep127: ++%*e:-3.40282346638528859811704183484516925e38:0:41: ++%e:-2.344167378255246830294536494851817472e+37:1:43:-0x1.1a2b3cp124: ++%*e:-2.344167378255246830294536494851817472e+37:0:43: ++%e:-2.344167378255246830294536494851817472e037:1:43:-0x1.1a2b3cp124: ++%*e:-2.344167378255246830294536494851817472e037:0:43: ++%e:-1.17549435082228750796873653722224568e-38:1:42:-0x1p-126: ++%*e:-1.17549435082228750796873653722224568e-38:0:42: ++%e:-0e+0:1:5:-0x0: ++%*e:-0e+0:0:5: ++%e:-0e0:1:4:-0x0: ++%*e:-0e0:0:4: ++%e:-nan(09A_Zaz):1:13:-nan: ++%*e:-nan(09A_Zaz):0:13: ++%e:-nan():1:6:-nan: ++%*e:-nan():0:6: ++%e:nan():1:5:nan: ++%*e:nan():0:5: ++%e:nan(09A_Zaz):1:12:nan: ++%*e:nan(09A_Zaz):0:12: ++%e:0e0:1:3:0x0: ++%*e:0e0:0:3: ++%e:0e+0:1:4:0x0: ++%*e:0e+0:0:4: ++%e:1.17549435082228750796873653722224568e-38:1:41:0x1p-126: ++%*e:1.17549435082228750796873653722224568e-38:0:41: ++%e:2.344167378255246830294536494851817472e037:1:42:0x1.1a2b3cp124: ++%*e:2.344167378255246830294536494851817472e037:0:42: ++%e:2.344167378255246830294536494851817472e+37:1:42:0x1.1a2b3cp124: ++%*e:2.344167378255246830294536494851817472e+37:0:42: ++%e:3.40282346638528859811704183484516925e38:1:40:0x1.fffffep127: ++%*e:3.40282346638528859811704183484516925e38:0:40: ++%e:3.40282346638528859811704183484516925e+38:1:41:0x1.fffffep127: ++%*e:3.40282346638528859811704183484516925e+38:0:41: ++%e:infinity:1:8:inf: ++%*e:infinity:0:8: ++%e:+nan():1:6:nan: ++%*e:+nan():0:6: ++%e:+nan(09A_Zaz):1:13:nan: ++%*e:+nan(09A_Zaz):0:13: ++%e:+0e0:1:4:0x0: ++%*e:+0e0:0:4: ++%e:+0e+0:1:5:0x0: ++%*e:+0e+0:0:5: ++%e:+1.17549435082228750796873653722224568e-38:1:42:0x1p-126: ++%*e:+1.17549435082228750796873653722224568e-38:0:42: ++%e:+2.344167378255246830294536494851817472e037:1:43:0x1.1a2b3cp124: ++%*e:+2.344167378255246830294536494851817472e037:0:43: ++%e:+2.344167378255246830294536494851817472e+37:1:43:0x1.1a2b3cp124: ++%*e:+2.344167378255246830294536494851817472e+37:0:43: ++%e:+3.40282346638528859811704183484516925e38:1:41:0x1.fffffep127: ++%*e:+3.40282346638528859811704183484516925e38:0:41: ++%e:+3.40282346638528859811704183484516925e+38:1:42:0x1.fffffep127: ++%*e:+3.40282346638528859811704183484516925e+38:0:42: ++%e:+infinity:1:9:inf: ++%*e:+infinity:0:9: ++%1e::0:-1: ++%*1e::0:-1: ++%1e:-infinity:0:-1: ++%*1e:-infinity:0:-1: ++%1e:-3.40282346638528859811704183484516925e+38:0:-1: ++%*1e:-3.40282346638528859811704183484516925e+38:0:-1: ++%1e:-3.40282346638528859811704183484516925e38:0:-1: ++%*1e:-3.40282346638528859811704183484516925e38:0:-1: ++%1e:-2.344167378255246830294536494851817472e+37:0:-1: ++%*1e:-2.344167378255246830294536494851817472e+37:0:-1: ++%1e:-2.344167378255246830294536494851817472e037:0:-1: ++%*1e:-2.344167378255246830294536494851817472e037:0:-1: ++%1e:-1.17549435082228750796873653722224568e-38:0:-1: ++%*1e:-1.17549435082228750796873653722224568e-38:0:-1: ++%1e:-0e+0:0:-1: ++%*1e:-0e+0:0:-1: ++%1e:-0e0:0:-1: ++%*1e:-0e0:0:-1: ++%1e:-nan(09A_Zaz):0:-1: ++%*1e:-nan(09A_Zaz):0:-1: ++%1e:-nan():0:-1: ++%*1e:-nan():0:-1: ++%1e:nan():0:-1: ++%*1e:nan():0:-1: ++%1e:nan(09A_Zaz):0:-1: ++%*1e:nan(09A_Zaz):0:-1: ++%1e:0e0:1:1:0x0: ++%*1e:0e0:0:1: ++%1e:0e+0:1:1:0x0: ++%*1e:0e+0:0:1: ++%1e:1.17549435082228750796873653722224568e-38:1:1:0x1: ++%*1e:1.17549435082228750796873653722224568e-38:0:1: ++%1e:2.344167378255246830294536494851817472e037:1:1:0x1p1: ++%*1e:2.344167378255246830294536494851817472e037:0:1: ++%1e:2.344167378255246830294536494851817472e+37:1:1:0x1p1: ++%*1e:2.344167378255246830294536494851817472e+37:0:1: ++%1e:3.40282346638528859811704183484516925e38:1:1:0x1.8p1: ++%*1e:3.40282346638528859811704183484516925e38:0:1: ++%1e:3.40282346638528859811704183484516925e+38:1:1:0x1.8p1: ++%*1e:3.40282346638528859811704183484516925e+38:0:1: ++%1e:infinity:0:-1: ++%*1e:infinity:0:-1: ++%1e:+nan():0:-1: ++%*1e:+nan():0:-1: ++%1e:+nan(09A_Zaz):0:-1: ++%*1e:+nan(09A_Zaz):0:-1: ++%1e:+0e0:0:-1: ++%*1e:+0e0:0:-1: ++%1e:+0e+0:0:-1: ++%*1e:+0e+0:0:-1: ++%1e:+1.17549435082228750796873653722224568e-38:0:-1: ++%*1e:+1.17549435082228750796873653722224568e-38:0:-1: ++%1e:+2.344167378255246830294536494851817472e037:0:-1: ++%*1e:+2.344167378255246830294536494851817472e037:0:-1: ++%1e:+2.344167378255246830294536494851817472e+37:0:-1: ++%*1e:+2.344167378255246830294536494851817472e+37:0:-1: ++%1e:+3.40282346638528859811704183484516925e38:0:-1: ++%*1e:+3.40282346638528859811704183484516925e38:0:-1: ++%1e:+3.40282346638528859811704183484516925e+38:0:-1: ++%*1e:+3.40282346638528859811704183484516925e+38:0:-1: ++%1e:+infinity:0:-1: ++%*1e:+infinity:0:-1: ++%2e::0:-1: ++%*2e::0:-1: ++%2e:-infinity:0:-1: ++%*2e:-infinity:0:-1: ++%2e:-3.40282346638528859811704183484516925e+38:1:2:-0x1.8p1: ++%*2e:-3.40282346638528859811704183484516925e+38:0:2: ++%2e:-3.40282346638528859811704183484516925e38:1:2:-0x1.8p1: ++%*2e:-3.40282346638528859811704183484516925e38:0:2: ++%2e:-2.344167378255246830294536494851817472e+37:1:2:-0x1p1: ++%*2e:-2.344167378255246830294536494851817472e+37:0:2: ++%2e:-2.344167378255246830294536494851817472e037:1:2:-0x1p1: ++%*2e:-2.344167378255246830294536494851817472e037:0:2: ++%2e:-1.17549435082228750796873653722224568e-38:1:2:-0x1: ++%*2e:-1.17549435082228750796873653722224568e-38:0:2: ++%2e:-0e+0:1:2:-0x0: ++%*2e:-0e+0:0:2: ++%2e:-0e0:1:2:-0x0: ++%*2e:-0e0:0:2: ++%2e:-nan(09A_Zaz):0:-1: ++%*2e:-nan(09A_Zaz):0:-1: ++%2e:-nan():0:-1: ++%*2e:-nan():0:-1: ++%2e:nan():0:-1: ++%*2e:nan():0:-1: ++%2e:nan(09A_Zaz):0:-1: ++%*2e:nan(09A_Zaz):0:-1: ++# BZ12701 %2e:0e0:0:-1: ++# BZ12701 %*2e:0e0:0:-1: ++# BZ12701 %2e:0e+0:0:-1: ++# BZ12701 %*2e:0e+0:0:-1: ++%2e:1.17549435082228750796873653722224568e-38:1:2:0x1: ++%*2e:1.17549435082228750796873653722224568e-38:0:2: ++%2e:2.344167378255246830294536494851817472e037:1:2:0x1p1: ++%*2e:2.344167378255246830294536494851817472e037:0:2: ++%2e:2.344167378255246830294536494851817472e+37:1:2:0x1p1: ++%*2e:2.344167378255246830294536494851817472e+37:0:2: ++%2e:3.40282346638528859811704183484516925e38:1:2:0x1.8p1: ++%*2e:3.40282346638528859811704183484516925e38:0:2: ++%2e:3.40282346638528859811704183484516925e+38:1:2:0x1.8p1: ++%*2e:3.40282346638528859811704183484516925e+38:0:2: ++%2e:infinity:0:-1: ++%*2e:infinity:0:-1: ++%2e:+nan():0:-1: ++%*2e:+nan():0:-1: ++%2e:+nan(09A_Zaz):0:-1: ++%*2e:+nan(09A_Zaz):0:-1: ++%2e:+0e0:1:2:0x0: ++%*2e:+0e0:0:2: ++%2e:+0e+0:1:2:0x0: ++%*2e:+0e+0:0:2: ++%2e:+1.17549435082228750796873653722224568e-38:1:2:0x1: ++%*2e:+1.17549435082228750796873653722224568e-38:0:2: ++%2e:+2.344167378255246830294536494851817472e037:1:2:0x1p1: ++%*2e:+2.344167378255246830294536494851817472e037:0:2: ++%2e:+2.344167378255246830294536494851817472e+37:1:2:0x1p1: ++%*2e:+2.344167378255246830294536494851817472e+37:0:2: ++%2e:+3.40282346638528859811704183484516925e38:1:2:0x1.8p1: ++%*2e:+3.40282346638528859811704183484516925e38:0:2: ++%2e:+3.40282346638528859811704183484516925e+38:1:2:0x1.8p1: ++%*2e:+3.40282346638528859811704183484516925e+38:0:2: ++%2e:+infinity:0:-1: ++%*2e:+infinity:0:-1: ++%3e::0:-1: ++%*3e::0:-1: ++%3e:-infinity:0:-1: ++%*3e:-infinity:0:-1: ++%3e:-3.40282346638528859811704183484516925e+38:1:3:-0x1.8p1: ++%*3e:-3.40282346638528859811704183484516925e+38:0:3: ++%3e:-3.40282346638528859811704183484516925e38:1:3:-0x1.8p1: ++%*3e:-3.40282346638528859811704183484516925e38:0:3: ++%3e:-2.344167378255246830294536494851817472e+37:1:3:-0x1p1: ++%*3e:-2.344167378255246830294536494851817472e+37:0:3: ++%3e:-2.344167378255246830294536494851817472e037:1:3:-0x1p1: ++%*3e:-2.344167378255246830294536494851817472e037:0:3: ++%3e:-1.17549435082228750796873653722224568e-38:1:3:-0x1: ++%*3e:-1.17549435082228750796873653722224568e-38:0:3: ++# BZ12701 %3e:-0e+0:0:-1: ++# BZ12701 %*3e:-0e+0:0:-1: ++# BZ12701 %3e:-0e0:0:-1: ++# BZ12701 %*3e:-0e0:0:-1: ++%3e:-nan(09A_Zaz):0:-1: ++%*3e:-nan(09A_Zaz):0:-1: ++%3e:-nan():0:-1: ++%*3e:-nan():0:-1: ++%3e:nan():1:3:nan: ++%*3e:nan():0:3: ++%3e:nan(09A_Zaz):1:3:nan: ++%*3e:nan(09A_Zaz):0:3: ++%3e:0e0:1:3:0x0: ++%*3e:0e0:0:3: ++# BZ12701 %3e:0e+0:0:-1: ++# BZ12701 %*3e:0e+0:0:-1: ++%3e:1.17549435082228750796873653722224568e-38:1:3:0x1.19999a: ++%*3e:1.17549435082228750796873653722224568e-38:0:3: ++%3e:2.344167378255246830294536494851817472e037:1:3:0x1.266666p1: ++%*3e:2.344167378255246830294536494851817472e037:0:3: ++%3e:2.344167378255246830294536494851817472e+37:1:3:0x1.266666p1: ++%*3e:2.344167378255246830294536494851817472e+37:0:3: ++%3e:3.40282346638528859811704183484516925e38:1:3:0x1.b33334p1: ++%*3e:3.40282346638528859811704183484516925e38:0:3: ++%3e:3.40282346638528859811704183484516925e+38:1:3:0x1.b33334p1: ++%*3e:3.40282346638528859811704183484516925e+38:0:3: ++%3e:infinity:1:3:inf: ++%*3e:infinity:0:3: ++%3e:+nan():0:-1: ++%*3e:+nan():0:-1: ++%3e:+nan(09A_Zaz):0:-1: ++%*3e:+nan(09A_Zaz):0:-1: ++# BZ12701 %3e:+0e0:0:-1: ++# BZ12701 %*3e:+0e0:0:-1: ++# BZ12701 %3e:+0e+0:0:-1: ++# BZ12701 %*3e:+0e+0:0:-1: ++%3e:+1.17549435082228750796873653722224568e-38:1:3:0x1: ++%*3e:+1.17549435082228750796873653722224568e-38:0:3: ++%3e:+2.344167378255246830294536494851817472e037:1:3:0x1p1: ++%*3e:+2.344167378255246830294536494851817472e037:0:3: ++%3e:+2.344167378255246830294536494851817472e+37:1:3:0x1p1: ++%*3e:+2.344167378255246830294536494851817472e+37:0:3: ++%3e:+3.40282346638528859811704183484516925e38:1:3:0x1.8p1: ++%*3e:+3.40282346638528859811704183484516925e38:0:3: ++%3e:+3.40282346638528859811704183484516925e+38:1:3:0x1.8p1: ++%*3e:+3.40282346638528859811704183484516925e+38:0:3: ++%3e:+infinity:0:-1: ++%*3e:+infinity:0:-1: ++%4e::0:-1: ++%*4e::0:-1: ++%4e:-infinity:1:4:-inf: ++%*4e:-infinity:0:4: ++%4e:-3.40282346638528859811704183484516925e+38:1:4:-0x1.b33334p1: ++%*4e:-3.40282346638528859811704183484516925e+38:0:4: ++%4e:-3.40282346638528859811704183484516925e38:1:4:-0x1.b33334p1: ++%*4e:-3.40282346638528859811704183484516925e38:0:4: ++%4e:-2.344167378255246830294536494851817472e+37:1:4:-0x1.266666p1: ++%*4e:-2.344167378255246830294536494851817472e+37:0:4: ++%4e:-2.344167378255246830294536494851817472e037:1:4:-0x1.266666p1: ++%*4e:-2.344167378255246830294536494851817472e037:0:4: ++%4e:-1.17549435082228750796873653722224568e-38:1:4:-0x1.19999a: ++%*4e:-1.17549435082228750796873653722224568e-38:0:4: ++# BZ12701 %4e:-0e+0:0:-1: ++# BZ12701 %*4e:-0e+0:0:-1: ++%4e:-0e0:1:4:-0x0: ++%*4e:-0e0:0:4: ++%4e:-nan(09A_Zaz):1:4:-nan: ++%*4e:-nan(09A_Zaz):0:4: ++%4e:-nan():1:4:-nan: ++%*4e:-nan():0:4: ++%4e:nan():0:-1: ++%*4e:nan():0:-1: ++%4e:nan(09A_Zaz):0:-1: ++%*4e:nan(09A_Zaz):0:-1: ++%4e:0e0:1:3:0x0: ++%*4e:0e0:0:3: ++%4e:0e+0:1:4:0x0: ++%*4e:0e+0:0:4: ++%4e:1.17549435082228750796873653722224568e-38:1:4:0x1.2b851e: ++%*4e:1.17549435082228750796873653722224568e-38:0:4: ++%4e:2.344167378255246830294536494851817472e037:1:4:0x1.2b851ep1: ++%*4e:2.344167378255246830294536494851817472e037:0:4: ++%4e:2.344167378255246830294536494851817472e+37:1:4:0x1.2b851ep1: ++%*4e:2.344167378255246830294536494851817472e+37:0:4: ++%4e:3.40282346638528859811704183484516925e38:1:4:0x1.b33334p1: ++%*4e:3.40282346638528859811704183484516925e38:0:4: ++%4e:3.40282346638528859811704183484516925e+38:1:4:0x1.b33334p1: ++%*4e:3.40282346638528859811704183484516925e+38:0:4: ++%4e:infinity:0:-1: ++%*4e:infinity:0:-1: ++%4e:+nan():1:4:nan: ++%*4e:+nan():0:4: ++%4e:+nan(09A_Zaz):1:4:nan: ++%*4e:+nan(09A_Zaz):0:4: ++%4e:+0e0:1:4:0x0: ++%*4e:+0e0:0:4: ++# BZ12701 %4e:+0e+0:0:-1: ++# BZ12701 %*4e:+0e+0:0:-1: ++%4e:+1.17549435082228750796873653722224568e-38:1:4:0x1.19999a: ++%*4e:+1.17549435082228750796873653722224568e-38:0:4: ++%4e:+2.344167378255246830294536494851817472e037:1:4:0x1.266666p1: ++%*4e:+2.344167378255246830294536494851817472e037:0:4: ++%4e:+2.344167378255246830294536494851817472e+37:1:4:0x1.266666p1: ++%*4e:+2.344167378255246830294536494851817472e+37:0:4: ++%4e:+3.40282346638528859811704183484516925e38:1:4:0x1.b33334p1: ++%*4e:+3.40282346638528859811704183484516925e38:0:4: ++%4e:+3.40282346638528859811704183484516925e+38:1:4:0x1.b33334p1: ++%*4e:+3.40282346638528859811704183484516925e+38:0:4: ++%4e:+infinity:1:4:inf: ++%*4e:+infinity:0:4: ++%40e::0:-1: ++%*40e::0:-1: ++%40e:-infinity:1:9:-inf: ++%*40e:-infinity:0:9: ++# BZ12701 %40e:-3.40282346638528859811704183484516925e+38:0:-1: ++# BZ12701 %*40e:-3.40282346638528859811704183484516925e+38:0:-1: ++%40e:-3.40282346638528859811704183484516925e38:1:40:-0x1.a95a5ap11: ++%*40e:-3.40282346638528859811704183484516925e38:0:40: ++# BZ12701 %40e:-2.344167378255246830294536494851817472e+37:0:-1: ++# BZ12701 %*40e:-2.344167378255246830294536494851817472e+37:0:-1: ++# BZ12701 %40e:-2.344167378255246830294536494851817472e037:0:-1: ++# BZ12701 %*40e:-2.344167378255246830294536494851817472e037:0:-1: ++# BZ12701 %40e:-1.17549435082228750796873653722224568e-38:0:-1: ++# BZ12701 %*40e:-1.17549435082228750796873653722224568e-38:0:-1: ++%40e:-0e+0:1:5:-0x0: ++%*40e:-0e+0:0:5: ++%40e:-0e0:1:4:-0x0: ++%*40e:-0e0:0:4: ++%40e:-nan(09A_Zaz):1:13:-nan: ++%*40e:-nan(09A_Zaz):0:13: ++%40e:-nan():1:6:-nan: ++%*40e:-nan():0:6: ++%40e:nan():1:5:nan: ++%*40e:nan():0:5: ++%40e:nan(09A_Zaz):1:12:nan: ++%*40e:nan(09A_Zaz):0:12: ++%40e:0e0:1:3:0x0: ++%*40e:0e0:0:3: ++%40e:0e+0:1:4:0x0: ++%*40e:0e+0:0:4: ++%40e:1.17549435082228750796873653722224568e-38:1:40:0x1.342618p-10: ++%*40e:1.17549435082228750796873653722224568e-38:0:40: ++%40e:2.344167378255246830294536494851817472e037:1:40:0x1.2c0daep1: ++%*40e:2.344167378255246830294536494851817472e037:0:40: ++# BZ12701 %40e:2.344167378255246830294536494851817472e+37:0:-1: ++# BZ12701 %*40e:2.344167378255246830294536494851817472e+37:0:-1: ++%40e:3.40282346638528859811704183484516925e38:1:40:0x1.fffffep127: ++%*40e:3.40282346638528859811704183484516925e38:0:40: ++%40e:3.40282346638528859811704183484516925e+38:1:40:0x1.a95a5ap11: ++%*40e:3.40282346638528859811704183484516925e+38:0:40: ++%40e:infinity:1:8:inf: ++%*40e:infinity:0:8: ++%40e:+nan():1:6:nan: ++%*40e:+nan():0:6: ++%40e:+nan(09A_Zaz):1:13:nan: ++%*40e:+nan(09A_Zaz):0:13: ++%40e:+0e0:1:4:0x0: ++%*40e:+0e0:0:4: ++%40e:+0e+0:1:5:0x0: ++%*40e:+0e+0:0:5: ++# BZ12701 %40e:+1.17549435082228750796873653722224568e-38:0:-1: ++# BZ12701 %*40e:+1.17549435082228750796873653722224568e-38:0:-1: ++# BZ12701 %40e:+2.344167378255246830294536494851817472e037:0:-1: ++# BZ12701 %*40e:+2.344167378255246830294536494851817472e037:0:-1: ++# BZ12701 %40e:+2.344167378255246830294536494851817472e+37:0:-1: ++# BZ12701 %*40e:+2.344167378255246830294536494851817472e+37:0:-1: ++%40e:+3.40282346638528859811704183484516925e38:1:40:0x1.a95a5ap11: ++%*40e:+3.40282346638528859811704183484516925e38:0:40: ++# BZ12701 %40e:+3.40282346638528859811704183484516925e+38:0:-1: ++# BZ12701 %*40e:+3.40282346638528859811704183484516925e+38:0:-1: ++%40e:+infinity:1:9:inf: ++%*40e:+infinity:0:9: ++%48e::0:-1: ++%*48e::0:-1: ++%48e:-infinity:1:9:-inf: ++%*48e:-infinity:0:9: ++%48e:-3.40282346638528859811704183484516925e+38:1:42:-0x1.fffffep127: ++%*48e:-3.40282346638528859811704183484516925e+38:0:42: ++%48e:-3.40282346638528859811704183484516925e38:1:41:-0x1.fffffep127: ++%*48e:-3.40282346638528859811704183484516925e38:0:41: ++%48e:-2.344167378255246830294536494851817472e+37:1:43:-0x1.1a2b3cp124: ++%*48e:-2.344167378255246830294536494851817472e+37:0:43: ++%48e:-2.344167378255246830294536494851817472e037:1:43:-0x1.1a2b3cp124: ++%*48e:-2.344167378255246830294536494851817472e037:0:43: ++%48e:-1.17549435082228750796873653722224568e-38:1:42:-0x1p-126: ++%*48e:-1.17549435082228750796873653722224568e-38:0:42: ++%48e:-0e+0:1:5:-0x0: ++%*48e:-0e+0:0:5: ++%48e:-0e0:1:4:-0x0: ++%*48e:-0e0:0:4: ++%48e:-nan(09A_Zaz):1:13:-nan: ++%*48e:-nan(09A_Zaz):0:13: ++%48e:-nan():1:6:-nan: ++%*48e:-nan():0:6: ++%48e:nan():1:5:nan: ++%*48e:nan():0:5: ++%48e:nan(09A_Zaz):1:12:nan: ++%*48e:nan(09A_Zaz):0:12: ++%48e:0e0:1:3:0x0: ++%*48e:0e0:0:3: ++%48e:0e+0:1:4:0x0: ++%*48e:0e+0:0:4: ++%48e:1.17549435082228750796873653722224568e-38:1:41:0x1p-126: ++%*48e:1.17549435082228750796873653722224568e-38:0:41: ++%48e:2.344167378255246830294536494851817472e037:1:42:0x1.1a2b3cp124: ++%*48e:2.344167378255246830294536494851817472e037:0:42: ++%48e:2.344167378255246830294536494851817472e+37:1:42:0x1.1a2b3cp124: ++%*48e:2.344167378255246830294536494851817472e+37:0:42: ++%48e:3.40282346638528859811704183484516925e38:1:40:0x1.fffffep127: ++%*48e:3.40282346638528859811704183484516925e38:0:40: ++%48e:3.40282346638528859811704183484516925e+38:1:41:0x1.fffffep127: ++%*48e:3.40282346638528859811704183484516925e+38:0:41: ++%48e:infinity:1:8:inf: ++%*48e:infinity:0:8: ++%48e:+nan():1:6:nan: ++%*48e:+nan():0:6: ++%48e:+nan(09A_Zaz):1:13:nan: ++%*48e:+nan(09A_Zaz):0:13: ++%48e:+0e0:1:4:0x0: ++%*48e:+0e0:0:4: ++%48e:+0e+0:1:5:0x0: ++%*48e:+0e+0:0:5: ++%48e:+1.17549435082228750796873653722224568e-38:1:42:0x1p-126: ++%*48e:+1.17549435082228750796873653722224568e-38:0:42: ++%48e:+2.344167378255246830294536494851817472e037:1:43:0x1.1a2b3cp124: ++%*48e:+2.344167378255246830294536494851817472e037:0:43: ++%48e:+2.344167378255246830294536494851817472e+37:1:43:0x1.1a2b3cp124: ++%*48e:+2.344167378255246830294536494851817472e+37:0:43: ++%48e:+3.40282346638528859811704183484516925e38:1:41:0x1.fffffep127: ++%*48e:+3.40282346638528859811704183484516925e38:0:41: ++%48e:+3.40282346638528859811704183484516925e+38:1:42:0x1.fffffep127: ++%*48e:+3.40282346638528859811704183484516925e+38:0:42: ++%48e:+infinity:1:9:inf: ++%*48e:+infinity:0:9: ++%3e: :0:-1: ++%*3e: :0:-1: ++%3e: -infinity:0:-1: ++%*3e: -infinity:0:-1: ++%3e: -3.40282346638528859811704183484516925e+38:1:4:-0x1.8p1: ++%*3e: -3.40282346638528859811704183484516925e+38:0:4: ++%3e: -3.40282346638528859811704183484516925e38:1:4:-0x1.8p1: ++%*3e: -3.40282346638528859811704183484516925e38:0:4: ++%3e: -2.344167378255246830294536494851817472e+37:1:4:-0x1p1: ++%*3e: -2.344167378255246830294536494851817472e+37:0:4: ++%3e: -2.344167378255246830294536494851817472e037:1:4:-0x1p1: ++%*3e: -2.344167378255246830294536494851817472e037:0:4: ++%3e: -1.17549435082228750796873653722224568e-38:1:4:-0x1: ++%*3e: -1.17549435082228750796873653722224568e-38:0:4: ++# BZ12701 %3e: -0e+0:0:-1: ++# BZ12701 %*3e: -0e+0:0:-1: ++# BZ12701 %3e: -0e0:0:-1: ++# BZ12701 %*3e: -0e0:0:-1: ++%3e: -nan(09A_Zaz):0:-1: ++%*3e: -nan(09A_Zaz):0:-1: ++%3e: -nan():0:-1: ++%*3e: -nan():0:-1: ++%3e: nan():1:4:nan: ++%*3e: nan():0:4: ++%3e: nan(09A_Zaz):1:4:nan: ++%*3e: nan(09A_Zaz):0:4: ++%3e: 0e0:1:4:0x0: ++%*3e: 0e0:0:4: ++# BZ12701 %3e: 0e+0:0:-1: ++# BZ12701 %*3e: 0e+0:0:-1: ++%3e: 1.17549435082228750796873653722224568e-38:1:4:0x1.19999a: ++%*3e: 1.17549435082228750796873653722224568e-38:0:4: ++%3e: 2.344167378255246830294536494851817472e037:1:4:0x1.266666p1: ++%*3e: 2.344167378255246830294536494851817472e037:0:4: ++%3e: 2.344167378255246830294536494851817472e+37:1:4:0x1.266666p1: ++%*3e: 2.344167378255246830294536494851817472e+37:0:4: ++%3e: 3.40282346638528859811704183484516925e38:1:4:0x1.b33334p1: ++%*3e: 3.40282346638528859811704183484516925e38:0:4: ++%3e: 3.40282346638528859811704183484516925e+38:1:4:0x1.b33334p1: ++%*3e: 3.40282346638528859811704183484516925e+38:0:4: ++%3e: infinity:1:4:inf: ++%*3e: infinity:0:4: ++%3e: +nan():0:-1: ++%*3e: +nan():0:-1: ++%3e: +nan(09A_Zaz):0:-1: ++%*3e: +nan(09A_Zaz):0:-1: ++# BZ12701 %3e: +0e0:0:-1: ++# BZ12701 %*3e: +0e0:0:-1: ++# BZ12701 %3e: +0e+0:0:-1: ++# BZ12701 %*3e: +0e+0:0:-1: ++%3e: +1.17549435082228750796873653722224568e-38:1:4:0x1: ++%*3e: +1.17549435082228750796873653722224568e-38:0:4: ++%3e: +2.344167378255246830294536494851817472e037:1:4:0x1p1: ++%*3e: +2.344167378255246830294536494851817472e037:0:4: ++%3e: +2.344167378255246830294536494851817472e+37:1:4:0x1p1: ++%*3e: +2.344167378255246830294536494851817472e+37:0:4: ++%3e: +3.40282346638528859811704183484516925e38:1:4:0x1.8p1: ++%*3e: +3.40282346638528859811704183484516925e38:0:4: ++%3e: +3.40282346638528859811704183484516925e+38:1:4:0x1.8p1: ++%*3e: +3.40282346638528859811704183484516925e+38:0:4: ++%3e: +infinity:0:-1: ++%*3e: +infinity:0:-1: ++%48e: :0:-1: ++%*48e: :0:-1: ++%48e: -infinity:1:10:-inf: ++%*48e: -infinity:0:10: ++%48e: -3.40282346638528859811704183484516925e+38:1:43:-0x1.fffffep127: ++%*48e: -3.40282346638528859811704183484516925e+38:0:43: ++%48e: -3.40282346638528859811704183484516925e38:1:42:-0x1.fffffep127: ++%*48e: -3.40282346638528859811704183484516925e38:0:42: ++%48e: -2.344167378255246830294536494851817472e+37:1:44:-0x1.1a2b3cp124: ++%*48e: -2.344167378255246830294536494851817472e+37:0:44: ++%48e: -2.344167378255246830294536494851817472e037:1:44:-0x1.1a2b3cp124: ++%*48e: -2.344167378255246830294536494851817472e037:0:44: ++%48e: -1.17549435082228750796873653722224568e-38:1:43:-0x1p-126: ++%*48e: -1.17549435082228750796873653722224568e-38:0:43: ++%48e: -0e+0:1:6:-0x0: ++%*48e: -0e+0:0:6: ++%48e: -0e0:1:5:-0x0: ++%*48e: -0e0:0:5: ++%48e: -nan(09A_Zaz):1:14:-nan: ++%*48e: -nan(09A_Zaz):0:14: ++%48e: -nan():1:7:-nan: ++%*48e: -nan():0:7: ++%48e: nan():1:6:nan: ++%*48e: nan():0:6: ++%48e: nan(09A_Zaz):1:13:nan: ++%*48e: nan(09A_Zaz):0:13: ++%48e: 0e0:1:4:0x0: ++%*48e: 0e0:0:4: ++%48e: 0e+0:1:5:0x0: ++%*48e: 0e+0:0:5: ++%48e: 1.17549435082228750796873653722224568e-38:1:42:0x1p-126: ++%*48e: 1.17549435082228750796873653722224568e-38:0:42: ++%48e: 2.344167378255246830294536494851817472e037:1:43:0x1.1a2b3cp124: ++%*48e: 2.344167378255246830294536494851817472e037:0:43: ++%48e: 2.344167378255246830294536494851817472e+37:1:43:0x1.1a2b3cp124: ++%*48e: 2.344167378255246830294536494851817472e+37:0:43: ++%48e: 3.40282346638528859811704183484516925e38:1:41:0x1.fffffep127: ++%*48e: 3.40282346638528859811704183484516925e38:0:41: ++%48e: 3.40282346638528859811704183484516925e+38:1:42:0x1.fffffep127: ++%*48e: 3.40282346638528859811704183484516925e+38:0:42: ++%48e: infinity:1:9:inf: ++%*48e: infinity:0:9: ++%48e: +nan():1:7:nan: ++%*48e: +nan():0:7: ++%48e: +nan(09A_Zaz):1:14:nan: ++%*48e: +nan(09A_Zaz):0:14: ++%48e: +0e0:1:5:0x0: ++%*48e: +0e0:0:5: ++%48e: +0e+0:1:6:0x0: ++%*48e: +0e+0:0:6: ++%48e: +1.17549435082228750796873653722224568e-38:1:43:0x1p-126: ++%*48e: +1.17549435082228750796873653722224568e-38:0:43: ++%48e: +2.344167378255246830294536494851817472e037:1:44:0x1.1a2b3cp124: ++%*48e: +2.344167378255246830294536494851817472e037:0:44: ++%48e: +2.344167378255246830294536494851817472e+37:1:44:0x1.1a2b3cp124: ++%*48e: +2.344167378255246830294536494851817472e+37:0:44: ++%48e: +3.40282346638528859811704183484516925e38:1:42:0x1.fffffep127: ++%*48e: +3.40282346638528859811704183484516925e38:0:42: ++%48e: +3.40282346638528859811704183484516925e+38:1:43:0x1.fffffep127: ++%*48e: +3.40282346638528859811704183484516925e+38:0:43: ++%48e: +infinity:1:10:inf: ++%*48e: +infinity:0:10: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-ee.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ee.input +new file mode 100644 +index 0000000000000000..a5aa4175ee0a4641 +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ee.input +@@ -0,0 +1,558 @@ ++%E::0:-1: ++%*E::0:-1: ++%E:-INFINITY:1:9:-inf: ++%*E:-INFINITY:0:9: ++%E:-3.40282346638528859811704183484516925E+38:1:42:-0x1.fffffep127: ++%*E:-3.40282346638528859811704183484516925E+38:0:42: ++%E:-3.40282346638528859811704183484516925E38:1:41:-0x1.fffffep127: ++%*E:-3.40282346638528859811704183484516925E38:0:41: ++%E:-2.344167378255246830294536494851817472E+37:1:43:-0x1.1a2b3cp124: ++%*E:-2.344167378255246830294536494851817472E+37:0:43: ++%E:-2.344167378255246830294536494851817472E037:1:43:-0x1.1a2b3cp124: ++%*E:-2.344167378255246830294536494851817472E037:0:43: ++%E:-1.17549435082228750796873653722224568E-38:1:42:-0x1p-126: ++%*E:-1.17549435082228750796873653722224568E-38:0:42: ++%E:-0E+0:1:5:-0x0: ++%*E:-0E+0:0:5: ++%E:-0E0:1:4:-0x0: ++%*E:-0E0:0:4: ++%E:-NAN(09A_Zaz):1:13:-nan: ++%*E:-NAN(09A_Zaz):0:13: ++%E:-NAN():1:6:-nan: ++%*E:-NAN():0:6: ++%E:NAN():1:5:nan: ++%*E:NAN():0:5: ++%E:NAN(09A_Zaz):1:12:nan: ++%*E:NAN(09A_Zaz):0:12: ++%E:0E0:1:3:0x0: ++%*E:0E0:0:3: ++%E:0E+0:1:4:0x0: ++%*E:0E+0:0:4: ++%E:1.17549435082228750796873653722224568E-38:1:41:0x1p-126: ++%*E:1.17549435082228750796873653722224568E-38:0:41: ++%E:2.344167378255246830294536494851817472E037:1:42:0x1.1a2b3cp124: ++%*E:2.344167378255246830294536494851817472E037:0:42: ++%E:2.344167378255246830294536494851817472E+37:1:42:0x1.1a2b3cp124: ++%*E:2.344167378255246830294536494851817472E+37:0:42: ++%E:3.40282346638528859811704183484516925E38:1:40:0x1.fffffep127: ++%*E:3.40282346638528859811704183484516925E38:0:40: ++%E:3.40282346638528859811704183484516925E+38:1:41:0x1.fffffep127: ++%*E:3.40282346638528859811704183484516925E+38:0:41: ++%E:INFINITY:1:8:inf: ++%*E:INFINITY:0:8: ++%E:+NAN():1:6:nan: ++%*E:+NAN():0:6: ++%E:+NAN(09A_Zaz):1:13:nan: ++%*E:+NAN(09A_Zaz):0:13: ++%E:+0E0:1:4:0x0: ++%*E:+0E0:0:4: ++%E:+0E+0:1:5:0x0: ++%*E:+0E+0:0:5: ++%E:+1.17549435082228750796873653722224568E-38:1:42:0x1p-126: ++%*E:+1.17549435082228750796873653722224568E-38:0:42: ++%E:+2.344167378255246830294536494851817472E037:1:43:0x1.1a2b3cp124: ++%*E:+2.344167378255246830294536494851817472E037:0:43: ++%E:+2.344167378255246830294536494851817472E+37:1:43:0x1.1a2b3cp124: ++%*E:+2.344167378255246830294536494851817472E+37:0:43: ++%E:+3.40282346638528859811704183484516925E38:1:41:0x1.fffffep127: ++%*E:+3.40282346638528859811704183484516925E38:0:41: ++%E:+3.40282346638528859811704183484516925E+38:1:42:0x1.fffffep127: ++%*E:+3.40282346638528859811704183484516925E+38:0:42: ++%E:+INFINITY:1:9:inf: ++%*E:+INFINITY:0:9: ++%1E::0:-1: ++%*1E::0:-1: ++%1E:-INFINITY:0:-1: ++%*1E:-INFINITY:0:-1: ++%1E:-3.40282346638528859811704183484516925E+38:0:-1: ++%*1E:-3.40282346638528859811704183484516925E+38:0:-1: ++%1E:-3.40282346638528859811704183484516925E38:0:-1: ++%*1E:-3.40282346638528859811704183484516925E38:0:-1: ++%1E:-2.344167378255246830294536494851817472E+37:0:-1: ++%*1E:-2.344167378255246830294536494851817472E+37:0:-1: ++%1E:-2.344167378255246830294536494851817472E037:0:-1: ++%*1E:-2.344167378255246830294536494851817472E037:0:-1: ++%1E:-1.17549435082228750796873653722224568E-38:0:-1: ++%*1E:-1.17549435082228750796873653722224568E-38:0:-1: ++%1E:-0E+0:0:-1: ++%*1E:-0E+0:0:-1: ++%1E:-0E0:0:-1: ++%*1E:-0E0:0:-1: ++%1E:-NAN(09A_Zaz):0:-1: ++%*1E:-NAN(09A_Zaz):0:-1: ++%1E:-NAN():0:-1: ++%*1E:-NAN():0:-1: ++%1E:NAN():0:-1: ++%*1E:NAN():0:-1: ++%1E:NAN(09A_Zaz):0:-1: ++%*1E:NAN(09A_Zaz):0:-1: ++%1E:0E0:1:1:0x0: ++%*1E:0E0:0:1: ++%1E:0E+0:1:1:0x0: ++%*1E:0E+0:0:1: ++%1E:1.17549435082228750796873653722224568E-38:1:1:0x1: ++%*1E:1.17549435082228750796873653722224568E-38:0:1: ++%1E:2.344167378255246830294536494851817472E037:1:1:0x1p1: ++%*1E:2.344167378255246830294536494851817472E037:0:1: ++%1E:2.344167378255246830294536494851817472E+37:1:1:0x1p1: ++%*1E:2.344167378255246830294536494851817472E+37:0:1: ++%1E:3.40282346638528859811704183484516925E38:1:1:0x1.8p1: ++%*1E:3.40282346638528859811704183484516925E38:0:1: ++%1E:3.40282346638528859811704183484516925E+38:1:1:0x1.8p1: ++%*1E:3.40282346638528859811704183484516925E+38:0:1: ++%1E:INFINITY:0:-1: ++%*1E:INFINITY:0:-1: ++%1E:+NAN():0:-1: ++%*1E:+NAN():0:-1: ++%1E:+NAN(09A_Zaz):0:-1: ++%*1E:+NAN(09A_Zaz):0:-1: ++%1E:+0E0:0:-1: ++%*1E:+0E0:0:-1: ++%1E:+0E+0:0:-1: ++%*1E:+0E+0:0:-1: ++%1E:+1.17549435082228750796873653722224568E-38:0:-1: ++%*1E:+1.17549435082228750796873653722224568E-38:0:-1: ++%1E:+2.344167378255246830294536494851817472E037:0:-1: ++%*1E:+2.344167378255246830294536494851817472E037:0:-1: ++%1E:+2.344167378255246830294536494851817472E+37:0:-1: ++%*1E:+2.344167378255246830294536494851817472E+37:0:-1: ++%1E:+3.40282346638528859811704183484516925E38:0:-1: ++%*1E:+3.40282346638528859811704183484516925E38:0:-1: ++%1E:+3.40282346638528859811704183484516925E+38:0:-1: ++%*1E:+3.40282346638528859811704183484516925E+38:0:-1: ++%1E:+INFINITY:0:-1: ++%*1E:+INFINITY:0:-1: ++%2E::0:-1: ++%*2E::0:-1: ++%2E:-INFINITY:0:-1: ++%*2E:-INFINITY:0:-1: ++%2E:-3.40282346638528859811704183484516925E+38:1:2:-0x1.8p1: ++%*2E:-3.40282346638528859811704183484516925E+38:0:2: ++%2E:-3.40282346638528859811704183484516925E38:1:2:-0x1.8p1: ++%*2E:-3.40282346638528859811704183484516925E38:0:2: ++%2E:-2.344167378255246830294536494851817472E+37:1:2:-0x1p1: ++%*2E:-2.344167378255246830294536494851817472E+37:0:2: ++%2E:-2.344167378255246830294536494851817472E037:1:2:-0x1p1: ++%*2E:-2.344167378255246830294536494851817472E037:0:2: ++%2E:-1.17549435082228750796873653722224568E-38:1:2:-0x1: ++%*2E:-1.17549435082228750796873653722224568E-38:0:2: ++%2E:-0E+0:1:2:-0x0: ++%*2E:-0E+0:0:2: ++%2E:-0E0:1:2:-0x0: ++%*2E:-0E0:0:2: ++%2E:-NAN(09A_Zaz):0:-1: ++%*2E:-NAN(09A_Zaz):0:-1: ++%2E:-NAN():0:-1: ++%*2E:-NAN():0:-1: ++%2E:NAN():0:-1: ++%*2E:NAN():0:-1: ++%2E:NAN(09A_Zaz):0:-1: ++%*2E:NAN(09A_Zaz):0:-1: ++# BZ12701 %2E:0E0:0:-1: ++# BZ12701 %*2E:0E0:0:-1: ++# BZ12701 %2E:0E+0:0:-1: ++# BZ12701 %*2E:0E+0:0:-1: ++%2E:1.17549435082228750796873653722224568E-38:1:2:0x1: ++%*2E:1.17549435082228750796873653722224568E-38:0:2: ++%2E:2.344167378255246830294536494851817472E037:1:2:0x1p1: ++%*2E:2.344167378255246830294536494851817472E037:0:2: ++%2E:2.344167378255246830294536494851817472E+37:1:2:0x1p1: ++%*2E:2.344167378255246830294536494851817472E+37:0:2: ++%2E:3.40282346638528859811704183484516925E38:1:2:0x1.8p1: ++%*2E:3.40282346638528859811704183484516925E38:0:2: ++%2E:3.40282346638528859811704183484516925E+38:1:2:0x1.8p1: ++%*2E:3.40282346638528859811704183484516925E+38:0:2: ++%2E:INFINITY:0:-1: ++%*2E:INFINITY:0:-1: ++%2E:+NAN():0:-1: ++%*2E:+NAN():0:-1: ++%2E:+NAN(09A_Zaz):0:-1: ++%*2E:+NAN(09A_Zaz):0:-1: ++%2E:+0E0:1:2:0x0: ++%*2E:+0E0:0:2: ++%2E:+0E+0:1:2:0x0: ++%*2E:+0E+0:0:2: ++%2E:+1.17549435082228750796873653722224568E-38:1:2:0x1: ++%*2E:+1.17549435082228750796873653722224568E-38:0:2: ++%2E:+2.344167378255246830294536494851817472E037:1:2:0x1p1: ++%*2E:+2.344167378255246830294536494851817472E037:0:2: ++%2E:+2.344167378255246830294536494851817472E+37:1:2:0x1p1: ++%*2E:+2.344167378255246830294536494851817472E+37:0:2: ++%2E:+3.40282346638528859811704183484516925E38:1:2:0x1.8p1: ++%*2E:+3.40282346638528859811704183484516925E38:0:2: ++%2E:+3.40282346638528859811704183484516925E+38:1:2:0x1.8p1: ++%*2E:+3.40282346638528859811704183484516925E+38:0:2: ++%2E:+INFINITY:0:-1: ++%*2E:+INFINITY:0:-1: ++%3E::0:-1: ++%*3E::0:-1: ++%3E:-INFINITY:0:-1: ++%*3E:-INFINITY:0:-1: ++%3E:-3.40282346638528859811704183484516925E+38:1:3:-0x1.8p1: ++%*3E:-3.40282346638528859811704183484516925E+38:0:3: ++%3E:-3.40282346638528859811704183484516925E38:1:3:-0x1.8p1: ++%*3E:-3.40282346638528859811704183484516925E38:0:3: ++%3E:-2.344167378255246830294536494851817472E+37:1:3:-0x1p1: ++%*3E:-2.344167378255246830294536494851817472E+37:0:3: ++%3E:-2.344167378255246830294536494851817472E037:1:3:-0x1p1: ++%*3E:-2.344167378255246830294536494851817472E037:0:3: ++%3E:-1.17549435082228750796873653722224568E-38:1:3:-0x1: ++%*3E:-1.17549435082228750796873653722224568E-38:0:3: ++# BZ12701 %3E:-0E+0:0:-1: ++# BZ12701 %*3E:-0E+0:0:-1: ++# BZ12701 %3E:-0E0:0:-1: ++# BZ12701 %*3E:-0E0:0:-1: ++%3E:-NAN(09A_Zaz):0:-1: ++%*3E:-NAN(09A_Zaz):0:-1: ++%3E:-NAN():0:-1: ++%*3E:-NAN():0:-1: ++%3E:NAN():1:3:nan: ++%*3E:NAN():0:3: ++%3E:NAN(09A_Zaz):1:3:nan: ++%*3E:NAN(09A_Zaz):0:3: ++%3E:0E0:1:3:0x0: ++%*3E:0E0:0:3: ++# BZ12701 %3E:0E+0:0:-1: ++# BZ12701 %*3E:0E+0:0:-1: ++%3E:1.17549435082228750796873653722224568E-38:1:3:0x1.19999a: ++%*3E:1.17549435082228750796873653722224568E-38:0:3: ++%3E:2.344167378255246830294536494851817472E037:1:3:0x1.266666p1: ++%*3E:2.344167378255246830294536494851817472E037:0:3: ++%3E:2.344167378255246830294536494851817472E+37:1:3:0x1.266666p1: ++%*3E:2.344167378255246830294536494851817472E+37:0:3: ++%3E:3.40282346638528859811704183484516925E38:1:3:0x1.b33334p1: ++%*3E:3.40282346638528859811704183484516925E38:0:3: ++%3E:3.40282346638528859811704183484516925E+38:1:3:0x1.b33334p1: ++%*3E:3.40282346638528859811704183484516925E+38:0:3: ++%3E:INFINITY:1:3:inf: ++%*3E:INFINITY:0:3: ++%3E:+NAN():0:-1: ++%*3E:+NAN():0:-1: ++%3E:+NAN(09A_Zaz):0:-1: ++%*3E:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3E:+0E0:0:-1: ++# BZ12701 %*3E:+0E0:0:-1: ++# BZ12701 %3E:+0E+0:0:-1: ++# BZ12701 %*3E:+0E+0:0:-1: ++%3E:+1.17549435082228750796873653722224568E-38:1:3:0x1: ++%*3E:+1.17549435082228750796873653722224568E-38:0:3: ++%3E:+2.344167378255246830294536494851817472E037:1:3:0x1p1: ++%*3E:+2.344167378255246830294536494851817472E037:0:3: ++%3E:+2.344167378255246830294536494851817472E+37:1:3:0x1p1: ++%*3E:+2.344167378255246830294536494851817472E+37:0:3: ++%3E:+3.40282346638528859811704183484516925E38:1:3:0x1.8p1: ++%*3E:+3.40282346638528859811704183484516925E38:0:3: ++%3E:+3.40282346638528859811704183484516925E+38:1:3:0x1.8p1: ++%*3E:+3.40282346638528859811704183484516925E+38:0:3: ++%3E:+INFINITY:0:-1: ++%*3E:+INFINITY:0:-1: ++%4E::0:-1: ++%*4E::0:-1: ++%4E:-INFINITY:1:4:-inf: ++%*4E:-INFINITY:0:4: ++%4E:-3.40282346638528859811704183484516925E+38:1:4:-0x1.b33334p1: ++%*4E:-3.40282346638528859811704183484516925E+38:0:4: ++%4E:-3.40282346638528859811704183484516925E38:1:4:-0x1.b33334p1: ++%*4E:-3.40282346638528859811704183484516925E38:0:4: ++%4E:-2.344167378255246830294536494851817472E+37:1:4:-0x1.266666p1: ++%*4E:-2.344167378255246830294536494851817472E+37:0:4: ++%4E:-2.344167378255246830294536494851817472E037:1:4:-0x1.266666p1: ++%*4E:-2.344167378255246830294536494851817472E037:0:4: ++%4E:-1.17549435082228750796873653722224568E-38:1:4:-0x1.19999a: ++%*4E:-1.17549435082228750796873653722224568E-38:0:4: ++# BZ12701 %4E:-0E+0:0:-1: ++# BZ12701 %*4E:-0E+0:0:-1: ++%4E:-0E0:1:4:-0x0: ++%*4E:-0E0:0:4: ++%4E:-NAN(09A_Zaz):1:4:-nan: ++%*4E:-NAN(09A_Zaz):0:4: ++%4E:-NAN():1:4:-nan: ++%*4E:-NAN():0:4: ++%4E:NAN():0:-1: ++%*4E:NAN():0:-1: ++%4E:NAN(09A_Zaz):0:-1: ++%*4E:NAN(09A_Zaz):0:-1: ++%4E:0E0:1:3:0x0: ++%*4E:0E0:0:3: ++%4E:0E+0:1:4:0x0: ++%*4E:0E+0:0:4: ++%4E:1.17549435082228750796873653722224568E-38:1:4:0x1.2b851e: ++%*4E:1.17549435082228750796873653722224568E-38:0:4: ++%4E:2.344167378255246830294536494851817472E037:1:4:0x1.2b851ep1: ++%*4E:2.344167378255246830294536494851817472E037:0:4: ++%4E:2.344167378255246830294536494851817472E+37:1:4:0x1.2b851ep1: ++%*4E:2.344167378255246830294536494851817472E+37:0:4: ++%4E:3.40282346638528859811704183484516925E38:1:4:0x1.b33334p1: ++%*4E:3.40282346638528859811704183484516925E38:0:4: ++%4E:3.40282346638528859811704183484516925E+38:1:4:0x1.b33334p1: ++%*4E:3.40282346638528859811704183484516925E+38:0:4: ++%4E:INFINITY:0:-1: ++%*4E:INFINITY:0:-1: ++%4E:+NAN():1:4:nan: ++%*4E:+NAN():0:4: ++%4E:+NAN(09A_Zaz):1:4:nan: ++%*4E:+NAN(09A_Zaz):0:4: ++%4E:+0E0:1:4:0x0: ++%*4E:+0E0:0:4: ++# BZ12701 %4E:+0E+0:0:-1: ++# BZ12701 %*4E:+0E+0:0:-1: ++%4E:+1.17549435082228750796873653722224568E-38:1:4:0x1.19999a: ++%*4E:+1.17549435082228750796873653722224568E-38:0:4: ++%4E:+2.344167378255246830294536494851817472E037:1:4:0x1.266666p1: ++%*4E:+2.344167378255246830294536494851817472E037:0:4: ++%4E:+2.344167378255246830294536494851817472E+37:1:4:0x1.266666p1: ++%*4E:+2.344167378255246830294536494851817472E+37:0:4: ++%4E:+3.40282346638528859811704183484516925E38:1:4:0x1.b33334p1: ++%*4E:+3.40282346638528859811704183484516925E38:0:4: ++%4E:+3.40282346638528859811704183484516925E+38:1:4:0x1.b33334p1: ++%*4E:+3.40282346638528859811704183484516925E+38:0:4: ++%4E:+INFINITY:1:4:inf: ++%*4E:+INFINITY:0:4: ++%40E::0:-1: ++%*40E::0:-1: ++%40E:-INFINITY:1:9:-inf: ++%*40E:-INFINITY:0:9: ++# BZ12701 %40E:-3.40282346638528859811704183484516925E+38:0:-1: ++# BZ12701 %*40E:-3.40282346638528859811704183484516925E+38:0:-1: ++%40E:-3.40282346638528859811704183484516925E38:1:40:-0x1.a95a5ap11: ++%*40E:-3.40282346638528859811704183484516925E38:0:40: ++# BZ12701 %40E:-2.344167378255246830294536494851817472E+37:0:-1: ++# BZ12701 %*40E:-2.344167378255246830294536494851817472E+37:0:-1: ++# BZ12701 %40E:-2.344167378255246830294536494851817472E037:0:-1: ++# BZ12701 %*40E:-2.344167378255246830294536494851817472E037:0:-1: ++# BZ12701 %40E:-1.17549435082228750796873653722224568E-38:0:-1: ++# BZ12701 %*40E:-1.17549435082228750796873653722224568E-38:0:-1: ++%40E:-0E+0:1:5:-0x0: ++%*40E:-0E+0:0:5: ++%40E:-0E0:1:4:-0x0: ++%*40E:-0E0:0:4: ++%40E:-NAN(09A_Zaz):1:13:-nan: ++%*40E:-NAN(09A_Zaz):0:13: ++%40E:-NAN():1:6:-nan: ++%*40E:-NAN():0:6: ++%40E:NAN():1:5:nan: ++%*40E:NAN():0:5: ++%40E:NAN(09A_Zaz):1:12:nan: ++%*40E:NAN(09A_Zaz):0:12: ++%40E:0E0:1:3:0x0: ++%*40E:0E0:0:3: ++%40E:0E+0:1:4:0x0: ++%*40E:0E+0:0:4: ++%40E:1.17549435082228750796873653722224568E-38:1:40:0x1.342618p-10: ++%*40E:1.17549435082228750796873653722224568E-38:0:40: ++%40E:2.344167378255246830294536494851817472E037:1:40:0x1.2c0daep1: ++%*40E:2.344167378255246830294536494851817472E037:0:40: ++# BZ12701 %40E:2.344167378255246830294536494851817472E+37:0:-1: ++# BZ12701 %*40E:2.344167378255246830294536494851817472E+37:0:-1: ++%40E:3.40282346638528859811704183484516925E38:1:40:0x1.fffffep127: ++%*40E:3.40282346638528859811704183484516925E38:0:40: ++%40E:3.40282346638528859811704183484516925E+38:1:40:0x1.a95a5ap11: ++%*40E:3.40282346638528859811704183484516925E+38:0:40: ++%40E:INFINITY:1:8:inf: ++%*40E:INFINITY:0:8: ++%40E:+NAN():1:6:nan: ++%*40E:+NAN():0:6: ++%40E:+NAN(09A_Zaz):1:13:nan: ++%*40E:+NAN(09A_Zaz):0:13: ++%40E:+0E0:1:4:0x0: ++%*40E:+0E0:0:4: ++%40E:+0E+0:1:5:0x0: ++%*40E:+0E+0:0:5: ++# BZ12701 %40E:+1.17549435082228750796873653722224568E-38:0:-1: ++# BZ12701 %*40E:+1.17549435082228750796873653722224568E-38:0:-1: ++# BZ12701 %40E:+2.344167378255246830294536494851817472E037:0:-1: ++# BZ12701 %*40E:+2.344167378255246830294536494851817472E037:0:-1: ++# BZ12701 %40E:+2.344167378255246830294536494851817472E+37:0:-1: ++# BZ12701 %*40E:+2.344167378255246830294536494851817472E+37:0:-1: ++%40E:+3.40282346638528859811704183484516925E38:1:40:0x1.a95a5ap11: ++%*40E:+3.40282346638528859811704183484516925E38:0:40: ++# BZ12701 %40E:+3.40282346638528859811704183484516925E+38:0:-1: ++# BZ12701 %*40E:+3.40282346638528859811704183484516925E+38:0:-1: ++%40E:+INFINITY:1:9:inf: ++%*40E:+INFINITY:0:9: ++%48E::0:-1: ++%*48E::0:-1: ++%48E:-INFINITY:1:9:-inf: ++%*48E:-INFINITY:0:9: ++%48E:-3.40282346638528859811704183484516925E+38:1:42:-0x1.fffffep127: ++%*48E:-3.40282346638528859811704183484516925E+38:0:42: ++%48E:-3.40282346638528859811704183484516925E38:1:41:-0x1.fffffep127: ++%*48E:-3.40282346638528859811704183484516925E38:0:41: ++%48E:-2.344167378255246830294536494851817472E+37:1:43:-0x1.1a2b3cp124: ++%*48E:-2.344167378255246830294536494851817472E+37:0:43: ++%48E:-2.344167378255246830294536494851817472E037:1:43:-0x1.1a2b3cp124: ++%*48E:-2.344167378255246830294536494851817472E037:0:43: ++%48E:-1.17549435082228750796873653722224568E-38:1:42:-0x1p-126: ++%*48E:-1.17549435082228750796873653722224568E-38:0:42: ++%48E:-0E+0:1:5:-0x0: ++%*48E:-0E+0:0:5: ++%48E:-0E0:1:4:-0x0: ++%*48E:-0E0:0:4: ++%48E:-NAN(09A_Zaz):1:13:-nan: ++%*48E:-NAN(09A_Zaz):0:13: ++%48E:-NAN():1:6:-nan: ++%*48E:-NAN():0:6: ++%48E:NAN():1:5:nan: ++%*48E:NAN():0:5: ++%48E:NAN(09A_Zaz):1:12:nan: ++%*48E:NAN(09A_Zaz):0:12: ++%48E:0E0:1:3:0x0: ++%*48E:0E0:0:3: ++%48E:0E+0:1:4:0x0: ++%*48E:0E+0:0:4: ++%48E:1.17549435082228750796873653722224568E-38:1:41:0x1p-126: ++%*48E:1.17549435082228750796873653722224568E-38:0:41: ++%48E:2.344167378255246830294536494851817472E037:1:42:0x1.1a2b3cp124: ++%*48E:2.344167378255246830294536494851817472E037:0:42: ++%48E:2.344167378255246830294536494851817472E+37:1:42:0x1.1a2b3cp124: ++%*48E:2.344167378255246830294536494851817472E+37:0:42: ++%48E:3.40282346638528859811704183484516925E38:1:40:0x1.fffffep127: ++%*48E:3.40282346638528859811704183484516925E38:0:40: ++%48E:3.40282346638528859811704183484516925E+38:1:41:0x1.fffffep127: ++%*48E:3.40282346638528859811704183484516925E+38:0:41: ++%48E:INFINITY:1:8:inf: ++%*48E:INFINITY:0:8: ++%48E:+NAN():1:6:nan: ++%*48E:+NAN():0:6: ++%48E:+NAN(09A_Zaz):1:13:nan: ++%*48E:+NAN(09A_Zaz):0:13: ++%48E:+0E0:1:4:0x0: ++%*48E:+0E0:0:4: ++%48E:+0E+0:1:5:0x0: ++%*48E:+0E+0:0:5: ++%48E:+1.17549435082228750796873653722224568E-38:1:42:0x1p-126: ++%*48E:+1.17549435082228750796873653722224568E-38:0:42: ++%48E:+2.344167378255246830294536494851817472E037:1:43:0x1.1a2b3cp124: ++%*48E:+2.344167378255246830294536494851817472E037:0:43: ++%48E:+2.344167378255246830294536494851817472E+37:1:43:0x1.1a2b3cp124: ++%*48E:+2.344167378255246830294536494851817472E+37:0:43: ++%48E:+3.40282346638528859811704183484516925E38:1:41:0x1.fffffep127: ++%*48E:+3.40282346638528859811704183484516925E38:0:41: ++%48E:+3.40282346638528859811704183484516925E+38:1:42:0x1.fffffep127: ++%*48E:+3.40282346638528859811704183484516925E+38:0:42: ++%48E:+INFINITY:1:9:inf: ++%*48E:+INFINITY:0:9: ++%3E: :0:-1: ++%*3E: :0:-1: ++%3E: -INFINITY:0:-1: ++%*3E: -INFINITY:0:-1: ++%3E: -3.40282346638528859811704183484516925E+38:1:4:-0x1.8p1: ++%*3E: -3.40282346638528859811704183484516925E+38:0:4: ++%3E: -3.40282346638528859811704183484516925E38:1:4:-0x1.8p1: ++%*3E: -3.40282346638528859811704183484516925E38:0:4: ++%3E: -2.344167378255246830294536494851817472E+37:1:4:-0x1p1: ++%*3E: -2.344167378255246830294536494851817472E+37:0:4: ++%3E: -2.344167378255246830294536494851817472E037:1:4:-0x1p1: ++%*3E: -2.344167378255246830294536494851817472E037:0:4: ++%3E: -1.17549435082228750796873653722224568E-38:1:4:-0x1: ++%*3E: -1.17549435082228750796873653722224568E-38:0:4: ++# BZ12701 %3E: -0E+0:0:-1: ++# BZ12701 %*3E: -0E+0:0:-1: ++# BZ12701 %3E: -0E0:0:-1: ++# BZ12701 %*3E: -0E0:0:-1: ++%3E: -NAN(09A_Zaz):0:-1: ++%*3E: -NAN(09A_Zaz):0:-1: ++%3E: -NAN():0:-1: ++%*3E: -NAN():0:-1: ++%3E: NAN():1:4:nan: ++%*3E: NAN():0:4: ++%3E: NAN(09A_Zaz):1:4:nan: ++%*3E: NAN(09A_Zaz):0:4: ++%3E: 0E0:1:4:0x0: ++%*3E: 0E0:0:4: ++# BZ12701 %3E: 0E+0:0:-1: ++# BZ12701 %*3E: 0E+0:0:-1: ++%3E: 1.17549435082228750796873653722224568E-38:1:4:0x1.19999a: ++%*3E: 1.17549435082228750796873653722224568E-38:0:4: ++%3E: 2.344167378255246830294536494851817472E037:1:4:0x1.266666p1: ++%*3E: 2.344167378255246830294536494851817472E037:0:4: ++%3E: 2.344167378255246830294536494851817472E+37:1:4:0x1.266666p1: ++%*3E: 2.344167378255246830294536494851817472E+37:0:4: ++%3E: 3.40282346638528859811704183484516925E38:1:4:0x1.b33334p1: ++%*3E: 3.40282346638528859811704183484516925E38:0:4: ++%3E: 3.40282346638528859811704183484516925E+38:1:4:0x1.b33334p1: ++%*3E: 3.40282346638528859811704183484516925E+38:0:4: ++%3E: INFINITY:1:4:inf: ++%*3E: INFINITY:0:4: ++%3E: +NAN():0:-1: ++%*3E: +NAN():0:-1: ++%3E: +NAN(09A_Zaz):0:-1: ++%*3E: +NAN(09A_Zaz):0:-1: ++# BZ12701 %3E: +0E0:0:-1: ++# BZ12701 %*3E: +0E0:0:-1: ++# BZ12701 %3E: +0E+0:0:-1: ++# BZ12701 %*3E: +0E+0:0:-1: ++%3E: +1.17549435082228750796873653722224568E-38:1:4:0x1: ++%*3E: +1.17549435082228750796873653722224568E-38:0:4: ++%3E: +2.344167378255246830294536494851817472E037:1:4:0x1p1: ++%*3E: +2.344167378255246830294536494851817472E037:0:4: ++%3E: +2.344167378255246830294536494851817472E+37:1:4:0x1p1: ++%*3E: +2.344167378255246830294536494851817472E+37:0:4: ++%3E: +3.40282346638528859811704183484516925E38:1:4:0x1.8p1: ++%*3E: +3.40282346638528859811704183484516925E38:0:4: ++%3E: +3.40282346638528859811704183484516925E+38:1:4:0x1.8p1: ++%*3E: +3.40282346638528859811704183484516925E+38:0:4: ++%3E: +INFINITY:0:-1: ++%*3E: +INFINITY:0:-1: ++%48E: :0:-1: ++%*48E: :0:-1: ++%48E: -INFINITY:1:10:-inf: ++%*48E: -INFINITY:0:10: ++%48E: -3.40282346638528859811704183484516925E+38:1:43:-0x1.fffffep127: ++%*48E: -3.40282346638528859811704183484516925E+38:0:43: ++%48E: -3.40282346638528859811704183484516925E38:1:42:-0x1.fffffep127: ++%*48E: -3.40282346638528859811704183484516925E38:0:42: ++%48E: -2.344167378255246830294536494851817472E+37:1:44:-0x1.1a2b3cp124: ++%*48E: -2.344167378255246830294536494851817472E+37:0:44: ++%48E: -2.344167378255246830294536494851817472E037:1:44:-0x1.1a2b3cp124: ++%*48E: -2.344167378255246830294536494851817472E037:0:44: ++%48E: -1.17549435082228750796873653722224568E-38:1:43:-0x1p-126: ++%*48E: -1.17549435082228750796873653722224568E-38:0:43: ++%48E: -0E+0:1:6:-0x0: ++%*48E: -0E+0:0:6: ++%48E: -0E0:1:5:-0x0: ++%*48E: -0E0:0:5: ++%48E: -NAN(09A_Zaz):1:14:-nan: ++%*48E: -NAN(09A_Zaz):0:14: ++%48E: -NAN():1:7:-nan: ++%*48E: -NAN():0:7: ++%48E: NAN():1:6:nan: ++%*48E: NAN():0:6: ++%48E: NAN(09A_Zaz):1:13:nan: ++%*48E: NAN(09A_Zaz):0:13: ++%48E: 0E0:1:4:0x0: ++%*48E: 0E0:0:4: ++%48E: 0E+0:1:5:0x0: ++%*48E: 0E+0:0:5: ++%48E: 1.17549435082228750796873653722224568E-38:1:42:0x1p-126: ++%*48E: 1.17549435082228750796873653722224568E-38:0:42: ++%48E: 2.344167378255246830294536494851817472E037:1:43:0x1.1a2b3cp124: ++%*48E: 2.344167378255246830294536494851817472E037:0:43: ++%48E: 2.344167378255246830294536494851817472E+37:1:43:0x1.1a2b3cp124: ++%*48E: 2.344167378255246830294536494851817472E+37:0:43: ++%48E: 3.40282346638528859811704183484516925E38:1:41:0x1.fffffep127: ++%*48E: 3.40282346638528859811704183484516925E38:0:41: ++%48E: 3.40282346638528859811704183484516925E+38:1:42:0x1.fffffep127: ++%*48E: 3.40282346638528859811704183484516925E+38:0:42: ++%48E: INFINITY:1:9:inf: ++%*48E: INFINITY:0:9: ++%48E: +NAN():1:7:nan: ++%*48E: +NAN():0:7: ++%48E: +NAN(09A_Zaz):1:14:nan: ++%*48E: +NAN(09A_Zaz):0:14: ++%48E: +0E0:1:5:0x0: ++%*48E: +0E0:0:5: ++%48E: +0E+0:1:6:0x0: ++%*48E: +0E+0:0:6: ++%48E: +1.17549435082228750796873653722224568E-38:1:43:0x1p-126: ++%*48E: +1.17549435082228750796873653722224568E-38:0:43: ++%48E: +2.344167378255246830294536494851817472E037:1:44:0x1.1a2b3cp124: ++%*48E: +2.344167378255246830294536494851817472E037:0:44: ++%48E: +2.344167378255246830294536494851817472E+37:1:44:0x1.1a2b3cp124: ++%*48E: +2.344167378255246830294536494851817472E+37:0:44: ++%48E: +3.40282346638528859811704183484516925E38:1:42:0x1.fffffep127: ++%*48E: +3.40282346638528859811704183484516925E38:0:42: ++%48E: +3.40282346638528859811704183484516925E+38:1:43:0x1.fffffep127: ++%*48E: +3.40282346638528859811704183484516925E+38:0:43: ++%48E: +INFINITY:1:10:inf: ++%*48E: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-f.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-f.input +new file mode 100644 +index 0000000000000000..57d9677b1b9650db +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-f.input +@@ -0,0 +1,558 @@ ++%f::0:-1: ++%*f::0:-1: ++%f:-infinity:1:9:-inf: ++%*f:-infinity:0:9: ++%f:-0340282346638528859811704183484516925440.0:1:43:-0x1.fffffep127: ++%*f:-0340282346638528859811704183484516925440.0:0:43: ++%f:-340282346638528859811704183484516925440:1:40:-0x1.fffffep127: ++%*f:-340282346638528859811704183484516925440:0:40: ++%f:-023441673782552468302945364948518174720.0:1:42:-0x1.1a2b3cp124: ++%*f:-023441673782552468302945364948518174720.0:0:42: ++%f:-23441673782552468302945364948518174720:1:39:-0x1.1a2b3cp124: ++%*f:-23441673782552468302945364948518174720:0:39: ++%f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:-0x1p-126: ++%*f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%f:-0.0:1:4:-0x0: ++%*f:-0.0:0:4: ++%f:-0:1:2:-0x0: ++%*f:-0:0:2: ++%f:-nan(09A_Zaz):1:13:-nan: ++%*f:-nan(09A_Zaz):0:13: ++%f:-nan():1:6:-nan: ++%*f:-nan():0:6: ++%f:nan():1:5:nan: ++%*f:nan():0:5: ++%f:nan(09A_Zaz):1:12:nan: ++%*f:nan(09A_Zaz):0:12: ++%f:0:1:1:0x0: ++%*f:0:0:1: ++%f:0.0:1:3:0x0: ++%*f:0.0:0:3: ++%f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:75:0x1p-126: ++%*f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:75: ++%f:23441673782552468302945364948518174720:1:38:0x1.1a2b3cp124: ++%*f:23441673782552468302945364948518174720:0:38: ++%f:023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124: ++%*f:023441673782552468302945364948518174720.0:0:41: ++%f:340282346638528859811704183484516925440:1:39:0x1.fffffep127: ++%*f:340282346638528859811704183484516925440:0:39: ++%f:0340282346638528859811704183484516925440.0:1:42:0x1.fffffep127: ++%*f:0340282346638528859811704183484516925440.0:0:42: ++%f:infinity:1:8:inf: ++%*f:infinity:0:8: ++%f:+nan():1:6:nan: ++%*f:+nan():0:6: ++%f:+nan(09A_Zaz):1:13:nan: ++%*f:+nan(09A_Zaz):0:13: ++%f:+0:1:2:0x0: ++%*f:+0:0:2: ++%f:+0.0:1:4:0x0: ++%*f:+0.0:0:4: ++%f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:0x1p-126: ++%*f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%f:+23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124: ++%*f:+23441673782552468302945364948518174720:0:39: ++%f:+023441673782552468302945364948518174720.0:1:42:0x1.1a2b3cp124: ++%*f:+023441673782552468302945364948518174720.0:0:42: ++%f:+340282346638528859811704183484516925440:1:40:0x1.fffffep127: ++%*f:+340282346638528859811704183484516925440:0:40: ++%f:+0340282346638528859811704183484516925440.0:1:43:0x1.fffffep127: ++%*f:+0340282346638528859811704183484516925440.0:0:43: ++%f:+infinity:1:9:inf: ++%*f:+infinity:0:9: ++%1f::0:-1: ++%*1f::0:-1: ++%1f:-infinity:0:-1: ++%*1f:-infinity:0:-1: ++%1f:-0340282346638528859811704183484516925440.0:0:-1: ++%*1f:-0340282346638528859811704183484516925440.0:0:-1: ++%1f:-340282346638528859811704183484516925440:0:-1: ++%*1f:-340282346638528859811704183484516925440:0:-1: ++%1f:-023441673782552468302945364948518174720.0:0:-1: ++%*1f:-023441673782552468302945364948518174720.0:0:-1: ++%1f:-23441673782552468302945364948518174720:0:-1: ++%*1f:-23441673782552468302945364948518174720:0:-1: ++%1f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1: ++%*1f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1: ++%1f:-0.0:0:-1: ++%*1f:-0.0:0:-1: ++%1f:-0:0:-1: ++%*1f:-0:0:-1: ++%1f:-nan(09A_Zaz):0:-1: ++%*1f:-nan(09A_Zaz):0:-1: ++%1f:-nan():0:-1: ++%*1f:-nan():0:-1: ++%1f:nan():0:-1: ++%*1f:nan():0:-1: ++%1f:nan(09A_Zaz):0:-1: ++%*1f:nan(09A_Zaz):0:-1: ++%1f:0:1:1:0x0: ++%*1f:0:0:1: ++%1f:0.0:1:1:0x0: ++%*1f:0.0:0:1: ++%1f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:1:0x0: ++%*1f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:1: ++%1f:23441673782552468302945364948518174720:1:1:0x1p1: ++%*1f:23441673782552468302945364948518174720:0:1: ++%1f:023441673782552468302945364948518174720.0:1:1:0x0: ++%*1f:023441673782552468302945364948518174720.0:0:1: ++%1f:340282346638528859811704183484516925440:1:1:0x1.8p1: ++%*1f:340282346638528859811704183484516925440:0:1: ++%1f:0340282346638528859811704183484516925440.0:1:1:0x0: ++%*1f:0340282346638528859811704183484516925440.0:0:1: ++%1f:infinity:0:-1: ++%*1f:infinity:0:-1: ++%1f:+nan():0:-1: ++%*1f:+nan():0:-1: ++%1f:+nan(09A_Zaz):0:-1: ++%*1f:+nan(09A_Zaz):0:-1: ++%1f:+0:0:-1: ++%*1f:+0:0:-1: ++%1f:+0.0:0:-1: ++%*1f:+0.0:0:-1: ++%1f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1: ++%*1f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1: ++%1f:+23441673782552468302945364948518174720:0:-1: ++%*1f:+23441673782552468302945364948518174720:0:-1: ++%1f:+023441673782552468302945364948518174720.0:0:-1: ++%*1f:+023441673782552468302945364948518174720.0:0:-1: ++%1f:+340282346638528859811704183484516925440:0:-1: ++%*1f:+340282346638528859811704183484516925440:0:-1: ++%1f:+0340282346638528859811704183484516925440.0:0:-1: ++%*1f:+0340282346638528859811704183484516925440.0:0:-1: ++%1f:+infinity:0:-1: ++%*1f:+infinity:0:-1: ++%2f::0:-1: ++%*2f::0:-1: ++%2f:-infinity:0:-1: ++%*2f:-infinity:0:-1: ++%2f:-0340282346638528859811704183484516925440.0:1:2:-0x0: ++%*2f:-0340282346638528859811704183484516925440.0:0:2: ++%2f:-340282346638528859811704183484516925440:1:2:-0x1.8p1: ++%*2f:-340282346638528859811704183484516925440:0:2: ++%2f:-023441673782552468302945364948518174720.0:1:2:-0x0: ++%*2f:-023441673782552468302945364948518174720.0:0:2: ++%2f:-23441673782552468302945364948518174720:1:2:-0x1p1: ++%*2f:-23441673782552468302945364948518174720:0:2: ++%2f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:2:-0x0: ++%*2f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:2: ++%2f:-0.0:1:2:-0x0: ++%*2f:-0.0:0:2: ++%2f:-0:1:2:-0x0: ++%*2f:-0:0:2: ++%2f:-nan(09A_Zaz):0:-1: ++%*2f:-nan(09A_Zaz):0:-1: ++%2f:-nan():0:-1: ++%*2f:-nan():0:-1: ++%2f:nan():0:-1: ++%*2f:nan():0:-1: ++%2f:nan(09A_Zaz):0:-1: ++%*2f:nan(09A_Zaz):0:-1: ++%2f:0:1:1:0x0: ++%*2f:0:0:1: ++%2f:0.0:1:2:0x0: ++%*2f:0.0:0:2: ++%2f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:2:0x0: ++%*2f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:2: ++%2f:23441673782552468302945364948518174720:1:2:0x1.7p4: ++%*2f:23441673782552468302945364948518174720:0:2: ++%2f:023441673782552468302945364948518174720.0:1:2:0x1p1: ++%*2f:023441673782552468302945364948518174720.0:0:2: ++%2f:340282346638528859811704183484516925440:1:2:0x1.1p5: ++%*2f:340282346638528859811704183484516925440:0:2: ++%2f:0340282346638528859811704183484516925440.0:1:2:0x1.8p1: ++%*2f:0340282346638528859811704183484516925440.0:0:2: ++%2f:infinity:0:-1: ++%*2f:infinity:0:-1: ++%2f:+nan():0:-1: ++%*2f:+nan():0:-1: ++%2f:+nan(09A_Zaz):0:-1: ++%*2f:+nan(09A_Zaz):0:-1: ++%2f:+0:1:2:0x0: ++%*2f:+0:0:2: ++%2f:+0.0:1:2:0x0: ++%*2f:+0.0:0:2: ++%2f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:2:0x0: ++%*2f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:2: ++%2f:+23441673782552468302945364948518174720:1:2:0x1p1: ++%*2f:+23441673782552468302945364948518174720:0:2: ++%2f:+023441673782552468302945364948518174720.0:1:2:0x0: ++%*2f:+023441673782552468302945364948518174720.0:0:2: ++%2f:+340282346638528859811704183484516925440:1:2:0x1.8p1: ++%*2f:+340282346638528859811704183484516925440:0:2: ++%2f:+0340282346638528859811704183484516925440.0:1:2:0x0: ++%*2f:+0340282346638528859811704183484516925440.0:0:2: ++%2f:+infinity:0:-1: ++%*2f:+infinity:0:-1: ++%3f::0:-1: ++%*3f::0:-1: ++%3f:-infinity:0:-1: ++%*3f:-infinity:0:-1: ++%3f:-0340282346638528859811704183484516925440.0:1:3:-0x1.8p1: ++%*3f:-0340282346638528859811704183484516925440.0:0:3: ++%3f:-340282346638528859811704183484516925440:1:3:-0x1.1p5: ++%*3f:-340282346638528859811704183484516925440:0:3: ++%3f:-023441673782552468302945364948518174720.0:1:3:-0x1p1: ++%*3f:-023441673782552468302945364948518174720.0:0:3: ++%3f:-23441673782552468302945364948518174720:1:3:-0x1.7p4: ++%*3f:-23441673782552468302945364948518174720:0:3: ++%3f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:3:-0x0: ++%*3f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:3: ++%3f:-0.0:1:3:-0x0: ++%*3f:-0.0:0:3: ++%3f:-0:1:2:-0x0: ++%*3f:-0:0:2: ++%3f:-nan(09A_Zaz):0:-1: ++%*3f:-nan(09A_Zaz):0:-1: ++%3f:-nan():0:-1: ++%*3f:-nan():0:-1: ++%3f:nan():1:3:nan: ++%*3f:nan():0:3: ++%3f:nan(09A_Zaz):1:3:nan: ++%*3f:nan(09A_Zaz):0:3: ++%3f:0:1:1:0x0: ++%*3f:0:0:1: ++%3f:0.0:1:3:0x0: ++%*3f:0.0:0:3: ++%3f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:3:0x0: ++%*3f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:3: ++%3f:23441673782552468302945364948518174720:1:3:0x1.d4p7: ++%*3f:23441673782552468302945364948518174720:0:3: ++%3f:023441673782552468302945364948518174720.0:1:3:0x1.7p4: ++%*3f:023441673782552468302945364948518174720.0:0:3: ++%3f:340282346638528859811704183484516925440:1:3:0x1.54p8: ++%*3f:340282346638528859811704183484516925440:0:3: ++%3f:0340282346638528859811704183484516925440.0:1:3:0x1.1p5: ++%*3f:0340282346638528859811704183484516925440.0:0:3: ++%3f:infinity:1:3:inf: ++%*3f:infinity:0:3: ++%3f:+nan():0:-1: ++%*3f:+nan():0:-1: ++%3f:+nan(09A_Zaz):0:-1: ++%*3f:+nan(09A_Zaz):0:-1: ++%3f:+0:1:2:0x0: ++%*3f:+0:0:2: ++%3f:+0.0:1:3:0x0: ++%*3f:+0.0:0:3: ++%3f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:3:0x0: ++%*3f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:3: ++%3f:+23441673782552468302945364948518174720:1:3:0x1.7p4: ++%*3f:+23441673782552468302945364948518174720:0:3: ++%3f:+023441673782552468302945364948518174720.0:1:3:0x1p1: ++%*3f:+023441673782552468302945364948518174720.0:0:3: ++%3f:+340282346638528859811704183484516925440:1:3:0x1.1p5: ++%*3f:+340282346638528859811704183484516925440:0:3: ++%3f:+0340282346638528859811704183484516925440.0:1:3:0x1.8p1: ++%*3f:+0340282346638528859811704183484516925440.0:0:3: ++%3f:+infinity:0:-1: ++%*3f:+infinity:0:-1: ++%4f::0:-1: ++%*4f::0:-1: ++%4f:-infinity:1:4:-inf: ++%*4f:-infinity:0:4: ++%4f:-0340282346638528859811704183484516925440.0:1:4:-0x1.1p5: ++%*4f:-0340282346638528859811704183484516925440.0:0:4: ++%4f:-340282346638528859811704183484516925440:1:4:-0x1.54p8: ++%*4f:-340282346638528859811704183484516925440:0:4: ++%4f:-023441673782552468302945364948518174720.0:1:4:-0x1.7p4: ++%*4f:-023441673782552468302945364948518174720.0:0:4: ++%4f:-23441673782552468302945364948518174720:1:4:-0x1.d4p7: ++%*4f:-23441673782552468302945364948518174720:0:4: ++%4f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:-0x0: ++%*4f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%4f:-0.0:1:4:-0x0: ++%*4f:-0.0:0:4: ++%4f:-0:1:2:-0x0: ++%*4f:-0:0:2: ++%4f:-nan(09A_Zaz):1:4:-nan: ++%*4f:-nan(09A_Zaz):0:4: ++%4f:-nan():1:4:-nan: ++%*4f:-nan():0:4: ++%4f:nan():0:-1: ++%*4f:nan():0:-1: ++%4f:nan(09A_Zaz):0:-1: ++%*4f:nan(09A_Zaz):0:-1: ++%4f:0:1:1:0x0: ++%*4f:0:0:1: ++%4f:0.0:1:3:0x0: ++%*4f:0.0:0:3: ++%4f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0: ++%*4f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%4f:23441673782552468302945364948518174720:1:4:0x1.25p11: ++%*4f:23441673782552468302945364948518174720:0:4: ++%4f:023441673782552468302945364948518174720.0:1:4:0x1.d4p7: ++%*4f:023441673782552468302945364948518174720.0:0:4: ++%4f:340282346638528859811704183484516925440:1:4:0x1.a94p11: ++%*4f:340282346638528859811704183484516925440:0:4: ++%4f:0340282346638528859811704183484516925440.0:1:4:0x1.54p8: ++%*4f:0340282346638528859811704183484516925440.0:0:4: ++%4f:infinity:0:-1: ++%*4f:infinity:0:-1: ++%4f:+nan():1:4:nan: ++%*4f:+nan():0:4: ++%4f:+nan(09A_Zaz):1:4:nan: ++%*4f:+nan(09A_Zaz):0:4: ++%4f:+0:1:2:0x0: ++%*4f:+0:0:2: ++%4f:+0.0:1:4:0x0: ++%*4f:+0.0:0:4: ++%4f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0: ++%*4f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%4f:+23441673782552468302945364948518174720:1:4:0x1.d4p7: ++%*4f:+23441673782552468302945364948518174720:0:4: ++%4f:+023441673782552468302945364948518174720.0:1:4:0x1.7p4: ++%*4f:+023441673782552468302945364948518174720.0:0:4: ++%4f:+340282346638528859811704183484516925440:1:4:0x1.54p8: ++%*4f:+340282346638528859811704183484516925440:0:4: ++%4f:+0340282346638528859811704183484516925440.0:1:4:0x1.1p5: ++%*4f:+0340282346638528859811704183484516925440.0:0:4: ++%4f:+infinity:1:4:inf: ++%*4f:+infinity:0:4: ++%41f::0:-1: ++%*41f::0:-1: ++%41f:-infinity:1:9:-inf: ++%*41f:-infinity:0:9: ++%41f:-0340282346638528859811704183484516925440.0:1:41:-0x1.fffffep127: ++%*41f:-0340282346638528859811704183484516925440.0:0:41: ++%41f:-340282346638528859811704183484516925440:1:40:-0x1.fffffep127: ++%*41f:-340282346638528859811704183484516925440:0:40: ++%41f:-023441673782552468302945364948518174720.0:1:41:-0x1.1a2b3cp124: ++%*41f:-023441673782552468302945364948518174720.0:0:41: ++%41f:-23441673782552468302945364948518174720:1:39:-0x1.1a2b3cp124: ++%*41f:-23441673782552468302945364948518174720:0:39: ++%41f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:41:-0x1.b38fbap-127: ++%*41f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:41: ++%41f:-0.0:1:4:-0x0: ++%*41f:-0.0:0:4: ++%41f:-0:1:2:-0x0: ++%*41f:-0:0:2: ++%41f:-nan(09A_Zaz):1:13:-nan: ++%*41f:-nan(09A_Zaz):0:13: ++%41f:-nan():1:6:-nan: ++%*41f:-nan():0:6: ++%41f:nan():1:5:nan: ++%*41f:nan():0:5: ++%41f:nan(09A_Zaz):1:12:nan: ++%*41f:nan(09A_Zaz):0:12: ++%41f:0:1:1:0x0: ++%*41f:0:0:1: ++%41f:0.0:1:3:0x0: ++%*41f:0.0:0:3: ++%41f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:41:0x1.df1e1ap-127: ++%*41f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:41: ++%41f:23441673782552468302945364948518174720:1:38:0x1.1a2b3cp124: ++%*41f:23441673782552468302945364948518174720:0:38: ++%41f:023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124: ++%*41f:023441673782552468302945364948518174720.0:0:41: ++%41f:340282346638528859811704183484516925440:1:39:0x1.fffffep127: ++%*41f:340282346638528859811704183484516925440:0:39: ++%41f:0340282346638528859811704183484516925440.0:1:41:0x1.fffffep127: ++%*41f:0340282346638528859811704183484516925440.0:0:41: ++%41f:infinity:1:8:inf: ++%*41f:infinity:0:8: ++%41f:+nan():1:6:nan: ++%*41f:+nan():0:6: ++%41f:+nan(09A_Zaz):1:13:nan: ++%*41f:+nan(09A_Zaz):0:13: ++%41f:+0:1:2:0x0: ++%*41f:+0:0:2: ++%41f:+0.0:1:4:0x0: ++%*41f:+0.0:0:4: ++%41f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:41:0x1.b38fbap-127: ++%*41f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:41: ++%41f:+23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124: ++%*41f:+23441673782552468302945364948518174720:0:39: ++%41f:+023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124: ++%*41f:+023441673782552468302945364948518174720.0:0:41: ++%41f:+340282346638528859811704183484516925440:1:40:0x1.fffffep127: ++%*41f:+340282346638528859811704183484516925440:0:40: ++%41f:+0340282346638528859811704183484516925440.0:1:41:0x1.fffffep127: ++%*41f:+0340282346638528859811704183484516925440.0:0:41: ++%41f:+infinity:1:9:inf: ++%*41f:+infinity:0:9: ++%80f::0:-1: ++%*80f::0:-1: ++%80f:-infinity:1:9:-inf: ++%*80f:-infinity:0:9: ++%80f:-0340282346638528859811704183484516925440.0:1:43:-0x1.fffffep127: ++%*80f:-0340282346638528859811704183484516925440.0:0:43: ++%80f:-340282346638528859811704183484516925440:1:40:-0x1.fffffep127: ++%*80f:-340282346638528859811704183484516925440:0:40: ++%80f:-023441673782552468302945364948518174720.0:1:42:-0x1.1a2b3cp124: ++%*80f:-023441673782552468302945364948518174720.0:0:42: ++%80f:-23441673782552468302945364948518174720:1:39:-0x1.1a2b3cp124: ++%*80f:-23441673782552468302945364948518174720:0:39: ++%80f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:-0x1p-126: ++%*80f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%80f:-0.0:1:4:-0x0: ++%*80f:-0.0:0:4: ++%80f:-0:1:2:-0x0: ++%*80f:-0:0:2: ++%80f:-nan(09A_Zaz):1:13:-nan: ++%*80f:-nan(09A_Zaz):0:13: ++%80f:-nan():1:6:-nan: ++%*80f:-nan():0:6: ++%80f:nan():1:5:nan: ++%*80f:nan():0:5: ++%80f:nan(09A_Zaz):1:12:nan: ++%*80f:nan(09A_Zaz):0:12: ++%80f:0:1:1:0x0: ++%*80f:0:0:1: ++%80f:0.0:1:3:0x0: ++%*80f:0.0:0:3: ++%80f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:75:0x1p-126: ++%*80f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:75: ++%80f:23441673782552468302945364948518174720:1:38:0x1.1a2b3cp124: ++%*80f:23441673782552468302945364948518174720:0:38: ++%80f:023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124: ++%*80f:023441673782552468302945364948518174720.0:0:41: ++%80f:340282346638528859811704183484516925440:1:39:0x1.fffffep127: ++%*80f:340282346638528859811704183484516925440:0:39: ++%80f:0340282346638528859811704183484516925440.0:1:42:0x1.fffffep127: ++%*80f:0340282346638528859811704183484516925440.0:0:42: ++%80f:infinity:1:8:inf: ++%*80f:infinity:0:8: ++%80f:+nan():1:6:nan: ++%*80f:+nan():0:6: ++%80f:+nan(09A_Zaz):1:13:nan: ++%*80f:+nan(09A_Zaz):0:13: ++%80f:+0:1:2:0x0: ++%*80f:+0:0:2: ++%80f:+0.0:1:4:0x0: ++%*80f:+0.0:0:4: ++%80f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:0x1p-126: ++%*80f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%80f:+23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124: ++%*80f:+23441673782552468302945364948518174720:0:39: ++%80f:+023441673782552468302945364948518174720.0:1:42:0x1.1a2b3cp124: ++%*80f:+023441673782552468302945364948518174720.0:0:42: ++%80f:+340282346638528859811704183484516925440:1:40:0x1.fffffep127: ++%*80f:+340282346638528859811704183484516925440:0:40: ++%80f:+0340282346638528859811704183484516925440.0:1:43:0x1.fffffep127: ++%*80f:+0340282346638528859811704183484516925440.0:0:43: ++%80f:+infinity:1:9:inf: ++%*80f:+infinity:0:9: ++%3f: :0:-1: ++%*3f: :0:-1: ++%3f: -infinity:0:-1: ++%*3f: -infinity:0:-1: ++%3f: -0340282346638528859811704183484516925440.0:1:4:-0x1.8p1: ++%*3f: -0340282346638528859811704183484516925440.0:0:4: ++%3f: -340282346638528859811704183484516925440:1:4:-0x1.1p5: ++%*3f: -340282346638528859811704183484516925440:0:4: ++%3f: -023441673782552468302945364948518174720.0:1:4:-0x1p1: ++%*3f: -023441673782552468302945364948518174720.0:0:4: ++%3f: -23441673782552468302945364948518174720:1:4:-0x1.7p4: ++%*3f: -23441673782552468302945364948518174720:0:4: ++%3f: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:-0x0: ++%*3f: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%3f: -0.0:1:4:-0x0: ++%*3f: -0.0:0:4: ++%3f: -0:1:3:-0x0: ++%*3f: -0:0:3: ++%3f: -nan(09A_Zaz):0:-1: ++%*3f: -nan(09A_Zaz):0:-1: ++%3f: -nan():0:-1: ++%*3f: -nan():0:-1: ++%3f: nan():1:4:nan: ++%*3f: nan():0:4: ++%3f: nan(09A_Zaz):1:4:nan: ++%*3f: nan(09A_Zaz):0:4: ++%3f: 0:1:2:0x0: ++%*3f: 0:0:2: ++%3f: 0.0:1:4:0x0: ++%*3f: 0.0:0:4: ++%3f: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0: ++%*3f: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%3f: 23441673782552468302945364948518174720:1:4:0x1.d4p7: ++%*3f: 23441673782552468302945364948518174720:0:4: ++%3f: 023441673782552468302945364948518174720.0:1:4:0x1.7p4: ++%*3f: 023441673782552468302945364948518174720.0:0:4: ++%3f: 340282346638528859811704183484516925440:1:4:0x1.54p8: ++%*3f: 340282346638528859811704183484516925440:0:4: ++%3f: 0340282346638528859811704183484516925440.0:1:4:0x1.1p5: ++%*3f: 0340282346638528859811704183484516925440.0:0:4: ++%3f: infinity:1:4:inf: ++%*3f: infinity:0:4: ++%3f: +nan():0:-1: ++%*3f: +nan():0:-1: ++%3f: +nan(09A_Zaz):0:-1: ++%*3f: +nan(09A_Zaz):0:-1: ++%3f: +0:1:3:0x0: ++%*3f: +0:0:3: ++%3f: +0.0:1:4:0x0: ++%*3f: +0.0:0:4: ++%3f: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0: ++%*3f: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%3f: +23441673782552468302945364948518174720:1:4:0x1.7p4: ++%*3f: +23441673782552468302945364948518174720:0:4: ++%3f: +023441673782552468302945364948518174720.0:1:4:0x1p1: ++%*3f: +023441673782552468302945364948518174720.0:0:4: ++%3f: +340282346638528859811704183484516925440:1:4:0x1.1p5: ++%*3f: +340282346638528859811704183484516925440:0:4: ++%3f: +0340282346638528859811704183484516925440.0:1:4:0x1.8p1: ++%*3f: +0340282346638528859811704183484516925440.0:0:4: ++%3f: +infinity:0:-1: ++%*3f: +infinity:0:-1: ++%80f: :0:-1: ++%*80f: :0:-1: ++%80f: -infinity:1:10:-inf: ++%*80f: -infinity:0:10: ++%80f: -0340282346638528859811704183484516925440.0:1:44:-0x1.fffffep127: ++%*80f: -0340282346638528859811704183484516925440.0:0:44: ++%80f: -340282346638528859811704183484516925440:1:41:-0x1.fffffep127: ++%*80f: -340282346638528859811704183484516925440:0:41: ++%80f: -023441673782552468302945364948518174720.0:1:43:-0x1.1a2b3cp124: ++%*80f: -023441673782552468302945364948518174720.0:0:43: ++%80f: -23441673782552468302945364948518174720:1:40:-0x1.1a2b3cp124: ++%*80f: -23441673782552468302945364948518174720:0:40: ++%80f: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:77:-0x1p-126: ++%*80f: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:77: ++%80f: -0.0:1:5:-0x0: ++%*80f: -0.0:0:5: ++%80f: -0:1:3:-0x0: ++%*80f: -0:0:3: ++%80f: -nan(09A_Zaz):1:14:-nan: ++%*80f: -nan(09A_Zaz):0:14: ++%80f: -nan():1:7:-nan: ++%*80f: -nan():0:7: ++%80f: nan():1:6:nan: ++%*80f: nan():0:6: ++%80f: nan(09A_Zaz):1:13:nan: ++%*80f: nan(09A_Zaz):0:13: ++%80f: 0:1:2:0x0: ++%*80f: 0:0:2: ++%80f: 0.0:1:4:0x0: ++%*80f: 0.0:0:4: ++%80f: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:0x1p-126: ++%*80f: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%80f: 23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124: ++%*80f: 23441673782552468302945364948518174720:0:39: ++%80f: 023441673782552468302945364948518174720.0:1:42:0x1.1a2b3cp124: ++%*80f: 023441673782552468302945364948518174720.0:0:42: ++%80f: 340282346638528859811704183484516925440:1:40:0x1.fffffep127: ++%*80f: 340282346638528859811704183484516925440:0:40: ++%80f: 0340282346638528859811704183484516925440.0:1:43:0x1.fffffep127: ++%*80f: 0340282346638528859811704183484516925440.0:0:43: ++%80f: infinity:1:9:inf: ++%*80f: infinity:0:9: ++%80f: +nan():1:7:nan: ++%*80f: +nan():0:7: ++%80f: +nan(09A_Zaz):1:14:nan: ++%*80f: +nan(09A_Zaz):0:14: ++%80f: +0:1:3:0x0: ++%*80f: +0:0:3: ++%80f: +0.0:1:5:0x0: ++%*80f: +0.0:0:5: ++%80f: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:77:0x1p-126: ++%*80f: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:77: ++%80f: +23441673782552468302945364948518174720:1:40:0x1.1a2b3cp124: ++%*80f: +23441673782552468302945364948518174720:0:40: ++%80f: +023441673782552468302945364948518174720.0:1:43:0x1.1a2b3cp124: ++%*80f: +023441673782552468302945364948518174720.0:0:43: ++%80f: +340282346638528859811704183484516925440:1:41:0x1.fffffep127: ++%*80f: +340282346638528859811704183484516925440:0:41: ++%80f: +0340282346638528859811704183484516925440.0:1:44:0x1.fffffep127: ++%*80f: +0340282346638528859811704183484516925440.0:0:44: ++%80f: +infinity:1:10:inf: ++%*80f: +infinity:0:10: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-ff.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ff.input +new file mode 100644 +index 0000000000000000..3ec8ed0e8f7069be +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ff.input +@@ -0,0 +1,558 @@ ++%F::0:-1: ++%*F::0:-1: ++%F:-INFINITY:1:9:-inf: ++%*F:-INFINITY:0:9: ++%F:-0340282346638528859811704183484516925440.0:1:43:-0x1.fffffep127: ++%*F:-0340282346638528859811704183484516925440.0:0:43: ++%F:-340282346638528859811704183484516925440:1:40:-0x1.fffffep127: ++%*F:-340282346638528859811704183484516925440:0:40: ++%F:-023441673782552468302945364948518174720.0:1:42:-0x1.1a2b3cp124: ++%*F:-023441673782552468302945364948518174720.0:0:42: ++%F:-23441673782552468302945364948518174720:1:39:-0x1.1a2b3cp124: ++%*F:-23441673782552468302945364948518174720:0:39: ++%F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:-0x1p-126: ++%*F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%F:-0.0:1:4:-0x0: ++%*F:-0.0:0:4: ++%F:-0:1:2:-0x0: ++%*F:-0:0:2: ++%F:-NAN(09A_Zaz):1:13:-nan: ++%*F:-NAN(09A_Zaz):0:13: ++%F:-NAN():1:6:-nan: ++%*F:-NAN():0:6: ++%F:NAN():1:5:nan: ++%*F:NAN():0:5: ++%F:NAN(09A_Zaz):1:12:nan: ++%*F:NAN(09A_Zaz):0:12: ++%F:0:1:1:0x0: ++%*F:0:0:1: ++%F:0.0:1:3:0x0: ++%*F:0.0:0:3: ++%F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:75:0x1p-126: ++%*F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:75: ++%F:23441673782552468302945364948518174720:1:38:0x1.1a2b3cp124: ++%*F:23441673782552468302945364948518174720:0:38: ++%F:023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124: ++%*F:023441673782552468302945364948518174720.0:0:41: ++%F:340282346638528859811704183484516925440:1:39:0x1.fffffep127: ++%*F:340282346638528859811704183484516925440:0:39: ++%F:0340282346638528859811704183484516925440.0:1:42:0x1.fffffep127: ++%*F:0340282346638528859811704183484516925440.0:0:42: ++%F:INFINITY:1:8:inf: ++%*F:INFINITY:0:8: ++%F:+NAN():1:6:nan: ++%*F:+NAN():0:6: ++%F:+NAN(09A_Zaz):1:13:nan: ++%*F:+NAN(09A_Zaz):0:13: ++%F:+0:1:2:0x0: ++%*F:+0:0:2: ++%F:+0.0:1:4:0x0: ++%*F:+0.0:0:4: ++%F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:0x1p-126: ++%*F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%F:+23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124: ++%*F:+23441673782552468302945364948518174720:0:39: ++%F:+023441673782552468302945364948518174720.0:1:42:0x1.1a2b3cp124: ++%*F:+023441673782552468302945364948518174720.0:0:42: ++%F:+340282346638528859811704183484516925440:1:40:0x1.fffffep127: ++%*F:+340282346638528859811704183484516925440:0:40: ++%F:+0340282346638528859811704183484516925440.0:1:43:0x1.fffffep127: ++%*F:+0340282346638528859811704183484516925440.0:0:43: ++%F:+INFINITY:1:9:inf: ++%*F:+INFINITY:0:9: ++%1F::0:-1: ++%*1F::0:-1: ++%1F:-INFINITY:0:-1: ++%*1F:-INFINITY:0:-1: ++%1F:-0340282346638528859811704183484516925440.0:0:-1: ++%*1F:-0340282346638528859811704183484516925440.0:0:-1: ++%1F:-340282346638528859811704183484516925440:0:-1: ++%*1F:-340282346638528859811704183484516925440:0:-1: ++%1F:-023441673782552468302945364948518174720.0:0:-1: ++%*1F:-023441673782552468302945364948518174720.0:0:-1: ++%1F:-23441673782552468302945364948518174720:0:-1: ++%*1F:-23441673782552468302945364948518174720:0:-1: ++%1F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1: ++%*1F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1: ++%1F:-0.0:0:-1: ++%*1F:-0.0:0:-1: ++%1F:-0:0:-1: ++%*1F:-0:0:-1: ++%1F:-NAN(09A_Zaz):0:-1: ++%*1F:-NAN(09A_Zaz):0:-1: ++%1F:-NAN():0:-1: ++%*1F:-NAN():0:-1: ++%1F:NAN():0:-1: ++%*1F:NAN():0:-1: ++%1F:NAN(09A_Zaz):0:-1: ++%*1F:NAN(09A_Zaz):0:-1: ++%1F:0:1:1:0x0: ++%*1F:0:0:1: ++%1F:0.0:1:1:0x0: ++%*1F:0.0:0:1: ++%1F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:1:0x0: ++%*1F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:1: ++%1F:23441673782552468302945364948518174720:1:1:0x1p1: ++%*1F:23441673782552468302945364948518174720:0:1: ++%1F:023441673782552468302945364948518174720.0:1:1:0x0: ++%*1F:023441673782552468302945364948518174720.0:0:1: ++%1F:340282346638528859811704183484516925440:1:1:0x1.8p1: ++%*1F:340282346638528859811704183484516925440:0:1: ++%1F:0340282346638528859811704183484516925440.0:1:1:0x0: ++%*1F:0340282346638528859811704183484516925440.0:0:1: ++%1F:INFINITY:0:-1: ++%*1F:INFINITY:0:-1: ++%1F:+NAN():0:-1: ++%*1F:+NAN():0:-1: ++%1F:+NAN(09A_Zaz):0:-1: ++%*1F:+NAN(09A_Zaz):0:-1: ++%1F:+0:0:-1: ++%*1F:+0:0:-1: ++%1F:+0.0:0:-1: ++%*1F:+0.0:0:-1: ++%1F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1: ++%*1F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1: ++%1F:+23441673782552468302945364948518174720:0:-1: ++%*1F:+23441673782552468302945364948518174720:0:-1: ++%1F:+023441673782552468302945364948518174720.0:0:-1: ++%*1F:+023441673782552468302945364948518174720.0:0:-1: ++%1F:+340282346638528859811704183484516925440:0:-1: ++%*1F:+340282346638528859811704183484516925440:0:-1: ++%1F:+0340282346638528859811704183484516925440.0:0:-1: ++%*1F:+0340282346638528859811704183484516925440.0:0:-1: ++%1F:+INFINITY:0:-1: ++%*1F:+INFINITY:0:-1: ++%2F::0:-1: ++%*2F::0:-1: ++%2F:-INFINITY:0:-1: ++%*2F:-INFINITY:0:-1: ++%2F:-0340282346638528859811704183484516925440.0:1:2:-0x0: ++%*2F:-0340282346638528859811704183484516925440.0:0:2: ++%2F:-340282346638528859811704183484516925440:1:2:-0x1.8p1: ++%*2F:-340282346638528859811704183484516925440:0:2: ++%2F:-023441673782552468302945364948518174720.0:1:2:-0x0: ++%*2F:-023441673782552468302945364948518174720.0:0:2: ++%2F:-23441673782552468302945364948518174720:1:2:-0x1p1: ++%*2F:-23441673782552468302945364948518174720:0:2: ++%2F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:2:-0x0: ++%*2F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:2: ++%2F:-0.0:1:2:-0x0: ++%*2F:-0.0:0:2: ++%2F:-0:1:2:-0x0: ++%*2F:-0:0:2: ++%2F:-NAN(09A_Zaz):0:-1: ++%*2F:-NAN(09A_Zaz):0:-1: ++%2F:-NAN():0:-1: ++%*2F:-NAN():0:-1: ++%2F:NAN():0:-1: ++%*2F:NAN():0:-1: ++%2F:NAN(09A_Zaz):0:-1: ++%*2F:NAN(09A_Zaz):0:-1: ++%2F:0:1:1:0x0: ++%*2F:0:0:1: ++%2F:0.0:1:2:0x0: ++%*2F:0.0:0:2: ++%2F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:2:0x0: ++%*2F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:2: ++%2F:23441673782552468302945364948518174720:1:2:0x1.7p4: ++%*2F:23441673782552468302945364948518174720:0:2: ++%2F:023441673782552468302945364948518174720.0:1:2:0x1p1: ++%*2F:023441673782552468302945364948518174720.0:0:2: ++%2F:340282346638528859811704183484516925440:1:2:0x1.1p5: ++%*2F:340282346638528859811704183484516925440:0:2: ++%2F:0340282346638528859811704183484516925440.0:1:2:0x1.8p1: ++%*2F:0340282346638528859811704183484516925440.0:0:2: ++%2F:INFINITY:0:-1: ++%*2F:INFINITY:0:-1: ++%2F:+NAN():0:-1: ++%*2F:+NAN():0:-1: ++%2F:+NAN(09A_Zaz):0:-1: ++%*2F:+NAN(09A_Zaz):0:-1: ++%2F:+0:1:2:0x0: ++%*2F:+0:0:2: ++%2F:+0.0:1:2:0x0: ++%*2F:+0.0:0:2: ++%2F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:2:0x0: ++%*2F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:2: ++%2F:+23441673782552468302945364948518174720:1:2:0x1p1: ++%*2F:+23441673782552468302945364948518174720:0:2: ++%2F:+023441673782552468302945364948518174720.0:1:2:0x0: ++%*2F:+023441673782552468302945364948518174720.0:0:2: ++%2F:+340282346638528859811704183484516925440:1:2:0x1.8p1: ++%*2F:+340282346638528859811704183484516925440:0:2: ++%2F:+0340282346638528859811704183484516925440.0:1:2:0x0: ++%*2F:+0340282346638528859811704183484516925440.0:0:2: ++%2F:+INFINITY:0:-1: ++%*2F:+INFINITY:0:-1: ++%3F::0:-1: ++%*3F::0:-1: ++%3F:-INFINITY:0:-1: ++%*3F:-INFINITY:0:-1: ++%3F:-0340282346638528859811704183484516925440.0:1:3:-0x1.8p1: ++%*3F:-0340282346638528859811704183484516925440.0:0:3: ++%3F:-340282346638528859811704183484516925440:1:3:-0x1.1p5: ++%*3F:-340282346638528859811704183484516925440:0:3: ++%3F:-023441673782552468302945364948518174720.0:1:3:-0x1p1: ++%*3F:-023441673782552468302945364948518174720.0:0:3: ++%3F:-23441673782552468302945364948518174720:1:3:-0x1.7p4: ++%*3F:-23441673782552468302945364948518174720:0:3: ++%3F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:3:-0x0: ++%*3F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:3: ++%3F:-0.0:1:3:-0x0: ++%*3F:-0.0:0:3: ++%3F:-0:1:2:-0x0: ++%*3F:-0:0:2: ++%3F:-NAN(09A_Zaz):0:-1: ++%*3F:-NAN(09A_Zaz):0:-1: ++%3F:-NAN():0:-1: ++%*3F:-NAN():0:-1: ++%3F:NAN():1:3:nan: ++%*3F:NAN():0:3: ++%3F:NAN(09A_Zaz):1:3:nan: ++%*3F:NAN(09A_Zaz):0:3: ++%3F:0:1:1:0x0: ++%*3F:0:0:1: ++%3F:0.0:1:3:0x0: ++%*3F:0.0:0:3: ++%3F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:3:0x0: ++%*3F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:3: ++%3F:23441673782552468302945364948518174720:1:3:0x1.d4p7: ++%*3F:23441673782552468302945364948518174720:0:3: ++%3F:023441673782552468302945364948518174720.0:1:3:0x1.7p4: ++%*3F:023441673782552468302945364948518174720.0:0:3: ++%3F:340282346638528859811704183484516925440:1:3:0x1.54p8: ++%*3F:340282346638528859811704183484516925440:0:3: ++%3F:0340282346638528859811704183484516925440.0:1:3:0x1.1p5: ++%*3F:0340282346638528859811704183484516925440.0:0:3: ++%3F:INFINITY:1:3:inf: ++%*3F:INFINITY:0:3: ++%3F:+NAN():0:-1: ++%*3F:+NAN():0:-1: ++%3F:+NAN(09A_Zaz):0:-1: ++%*3F:+NAN(09A_Zaz):0:-1: ++%3F:+0:1:2:0x0: ++%*3F:+0:0:2: ++%3F:+0.0:1:3:0x0: ++%*3F:+0.0:0:3: ++%3F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:3:0x0: ++%*3F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:3: ++%3F:+23441673782552468302945364948518174720:1:3:0x1.7p4: ++%*3F:+23441673782552468302945364948518174720:0:3: ++%3F:+023441673782552468302945364948518174720.0:1:3:0x1p1: ++%*3F:+023441673782552468302945364948518174720.0:0:3: ++%3F:+340282346638528859811704183484516925440:1:3:0x1.1p5: ++%*3F:+340282346638528859811704183484516925440:0:3: ++%3F:+0340282346638528859811704183484516925440.0:1:3:0x1.8p1: ++%*3F:+0340282346638528859811704183484516925440.0:0:3: ++%3F:+INFINITY:0:-1: ++%*3F:+INFINITY:0:-1: ++%4F::0:-1: ++%*4F::0:-1: ++%4F:-INFINITY:1:4:-inf: ++%*4F:-INFINITY:0:4: ++%4F:-0340282346638528859811704183484516925440.0:1:4:-0x1.1p5: ++%*4F:-0340282346638528859811704183484516925440.0:0:4: ++%4F:-340282346638528859811704183484516925440:1:4:-0x1.54p8: ++%*4F:-340282346638528859811704183484516925440:0:4: ++%4F:-023441673782552468302945364948518174720.0:1:4:-0x1.7p4: ++%*4F:-023441673782552468302945364948518174720.0:0:4: ++%4F:-23441673782552468302945364948518174720:1:4:-0x1.d4p7: ++%*4F:-23441673782552468302945364948518174720:0:4: ++%4F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:-0x0: ++%*4F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%4F:-0.0:1:4:-0x0: ++%*4F:-0.0:0:4: ++%4F:-0:1:2:-0x0: ++%*4F:-0:0:2: ++%4F:-NAN(09A_Zaz):1:4:-nan: ++%*4F:-NAN(09A_Zaz):0:4: ++%4F:-NAN():1:4:-nan: ++%*4F:-NAN():0:4: ++%4F:NAN():0:-1: ++%*4F:NAN():0:-1: ++%4F:NAN(09A_Zaz):0:-1: ++%*4F:NAN(09A_Zaz):0:-1: ++%4F:0:1:1:0x0: ++%*4F:0:0:1: ++%4F:0.0:1:3:0x0: ++%*4F:0.0:0:3: ++%4F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0: ++%*4F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%4F:23441673782552468302945364948518174720:1:4:0x1.25p11: ++%*4F:23441673782552468302945364948518174720:0:4: ++%4F:023441673782552468302945364948518174720.0:1:4:0x1.d4p7: ++%*4F:023441673782552468302945364948518174720.0:0:4: ++%4F:340282346638528859811704183484516925440:1:4:0x1.a94p11: ++%*4F:340282346638528859811704183484516925440:0:4: ++%4F:0340282346638528859811704183484516925440.0:1:4:0x1.54p8: ++%*4F:0340282346638528859811704183484516925440.0:0:4: ++%4F:INFINITY:0:-1: ++%*4F:INFINITY:0:-1: ++%4F:+NAN():1:4:nan: ++%*4F:+NAN():0:4: ++%4F:+NAN(09A_Zaz):1:4:nan: ++%*4F:+NAN(09A_Zaz):0:4: ++%4F:+0:1:2:0x0: ++%*4F:+0:0:2: ++%4F:+0.0:1:4:0x0: ++%*4F:+0.0:0:4: ++%4F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0: ++%*4F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%4F:+23441673782552468302945364948518174720:1:4:0x1.d4p7: ++%*4F:+23441673782552468302945364948518174720:0:4: ++%4F:+023441673782552468302945364948518174720.0:1:4:0x1.7p4: ++%*4F:+023441673782552468302945364948518174720.0:0:4: ++%4F:+340282346638528859811704183484516925440:1:4:0x1.54p8: ++%*4F:+340282346638528859811704183484516925440:0:4: ++%4F:+0340282346638528859811704183484516925440.0:1:4:0x1.1p5: ++%*4F:+0340282346638528859811704183484516925440.0:0:4: ++%4F:+INFINITY:1:4:inf: ++%*4F:+INFINITY:0:4: ++%41F::0:-1: ++%*41F::0:-1: ++%41F:-INFINITY:1:9:-inf: ++%*41F:-INFINITY:0:9: ++%41F:-0340282346638528859811704183484516925440.0:1:41:-0x1.fffffep127: ++%*41F:-0340282346638528859811704183484516925440.0:0:41: ++%41F:-340282346638528859811704183484516925440:1:40:-0x1.fffffep127: ++%*41F:-340282346638528859811704183484516925440:0:40: ++%41F:-023441673782552468302945364948518174720.0:1:41:-0x1.1a2b3cp124: ++%*41F:-023441673782552468302945364948518174720.0:0:41: ++%41F:-23441673782552468302945364948518174720:1:39:-0x1.1a2b3cp124: ++%*41F:-23441673782552468302945364948518174720:0:39: ++%41F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:41:-0x1.b38fbap-127: ++%*41F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:41: ++%41F:-0.0:1:4:-0x0: ++%*41F:-0.0:0:4: ++%41F:-0:1:2:-0x0: ++%*41F:-0:0:2: ++%41F:-NAN(09A_Zaz):1:13:-nan: ++%*41F:-NAN(09A_Zaz):0:13: ++%41F:-NAN():1:6:-nan: ++%*41F:-NAN():0:6: ++%41F:NAN():1:5:nan: ++%*41F:NAN():0:5: ++%41F:NAN(09A_Zaz):1:12:nan: ++%*41F:NAN(09A_Zaz):0:12: ++%41F:0:1:1:0x0: ++%*41F:0:0:1: ++%41F:0.0:1:3:0x0: ++%*41F:0.0:0:3: ++%41F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:41:0x1.df1e1ap-127: ++%*41F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:41: ++%41F:23441673782552468302945364948518174720:1:38:0x1.1a2b3cp124: ++%*41F:23441673782552468302945364948518174720:0:38: ++%41F:023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124: ++%*41F:023441673782552468302945364948518174720.0:0:41: ++%41F:340282346638528859811704183484516925440:1:39:0x1.fffffep127: ++%*41F:340282346638528859811704183484516925440:0:39: ++%41F:0340282346638528859811704183484516925440.0:1:41:0x1.fffffep127: ++%*41F:0340282346638528859811704183484516925440.0:0:41: ++%41F:INFINITY:1:8:inf: ++%*41F:INFINITY:0:8: ++%41F:+NAN():1:6:nan: ++%*41F:+NAN():0:6: ++%41F:+NAN(09A_Zaz):1:13:nan: ++%*41F:+NAN(09A_Zaz):0:13: ++%41F:+0:1:2:0x0: ++%*41F:+0:0:2: ++%41F:+0.0:1:4:0x0: ++%*41F:+0.0:0:4: ++%41F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:41:0x1.b38fbap-127: ++%*41F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:41: ++%41F:+23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124: ++%*41F:+23441673782552468302945364948518174720:0:39: ++%41F:+023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124: ++%*41F:+023441673782552468302945364948518174720.0:0:41: ++%41F:+340282346638528859811704183484516925440:1:40:0x1.fffffep127: ++%*41F:+340282346638528859811704183484516925440:0:40: ++%41F:+0340282346638528859811704183484516925440.0:1:41:0x1.fffffep127: ++%*41F:+0340282346638528859811704183484516925440.0:0:41: ++%41F:+INFINITY:1:9:inf: ++%*41F:+INFINITY:0:9: ++%80F::0:-1: ++%*80F::0:-1: ++%80F:-INFINITY:1:9:-inf: ++%*80F:-INFINITY:0:9: ++%80F:-0340282346638528859811704183484516925440.0:1:43:-0x1.fffffep127: ++%*80F:-0340282346638528859811704183484516925440.0:0:43: ++%80F:-340282346638528859811704183484516925440:1:40:-0x1.fffffep127: ++%*80F:-340282346638528859811704183484516925440:0:40: ++%80F:-023441673782552468302945364948518174720.0:1:42:-0x1.1a2b3cp124: ++%*80F:-023441673782552468302945364948518174720.0:0:42: ++%80F:-23441673782552468302945364948518174720:1:39:-0x1.1a2b3cp124: ++%*80F:-23441673782552468302945364948518174720:0:39: ++%80F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:-0x1p-126: ++%*80F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%80F:-0.0:1:4:-0x0: ++%*80F:-0.0:0:4: ++%80F:-0:1:2:-0x0: ++%*80F:-0:0:2: ++%80F:-NAN(09A_Zaz):1:13:-nan: ++%*80F:-NAN(09A_Zaz):0:13: ++%80F:-NAN():1:6:-nan: ++%*80F:-NAN():0:6: ++%80F:NAN():1:5:nan: ++%*80F:NAN():0:5: ++%80F:NAN(09A_Zaz):1:12:nan: ++%*80F:NAN(09A_Zaz):0:12: ++%80F:0:1:1:0x0: ++%*80F:0:0:1: ++%80F:0.0:1:3:0x0: ++%*80F:0.0:0:3: ++%80F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:75:0x1p-126: ++%*80F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:75: ++%80F:23441673782552468302945364948518174720:1:38:0x1.1a2b3cp124: ++%*80F:23441673782552468302945364948518174720:0:38: ++%80F:023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124: ++%*80F:023441673782552468302945364948518174720.0:0:41: ++%80F:340282346638528859811704183484516925440:1:39:0x1.fffffep127: ++%*80F:340282346638528859811704183484516925440:0:39: ++%80F:0340282346638528859811704183484516925440.0:1:42:0x1.fffffep127: ++%*80F:0340282346638528859811704183484516925440.0:0:42: ++%80F:INFINITY:1:8:inf: ++%*80F:INFINITY:0:8: ++%80F:+NAN():1:6:nan: ++%*80F:+NAN():0:6: ++%80F:+NAN(09A_Zaz):1:13:nan: ++%*80F:+NAN(09A_Zaz):0:13: ++%80F:+0:1:2:0x0: ++%*80F:+0:0:2: ++%80F:+0.0:1:4:0x0: ++%*80F:+0.0:0:4: ++%80F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:0x1p-126: ++%*80F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%80F:+23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124: ++%*80F:+23441673782552468302945364948518174720:0:39: ++%80F:+023441673782552468302945364948518174720.0:1:42:0x1.1a2b3cp124: ++%*80F:+023441673782552468302945364948518174720.0:0:42: ++%80F:+340282346638528859811704183484516925440:1:40:0x1.fffffep127: ++%*80F:+340282346638528859811704183484516925440:0:40: ++%80F:+0340282346638528859811704183484516925440.0:1:43:0x1.fffffep127: ++%*80F:+0340282346638528859811704183484516925440.0:0:43: ++%80F:+INFINITY:1:9:inf: ++%*80F:+INFINITY:0:9: ++%3F: :0:-1: ++%*3F: :0:-1: ++%3F: -INFINITY:0:-1: ++%*3F: -INFINITY:0:-1: ++%3F: -0340282346638528859811704183484516925440.0:1:4:-0x1.8p1: ++%*3F: -0340282346638528859811704183484516925440.0:0:4: ++%3F: -340282346638528859811704183484516925440:1:4:-0x1.1p5: ++%*3F: -340282346638528859811704183484516925440:0:4: ++%3F: -023441673782552468302945364948518174720.0:1:4:-0x1p1: ++%*3F: -023441673782552468302945364948518174720.0:0:4: ++%3F: -23441673782552468302945364948518174720:1:4:-0x1.7p4: ++%*3F: -23441673782552468302945364948518174720:0:4: ++%3F: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:-0x0: ++%*3F: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%3F: -0.0:1:4:-0x0: ++%*3F: -0.0:0:4: ++%3F: -0:1:3:-0x0: ++%*3F: -0:0:3: ++%3F: -NAN(09A_Zaz):0:-1: ++%*3F: -NAN(09A_Zaz):0:-1: ++%3F: -NAN():0:-1: ++%*3F: -NAN():0:-1: ++%3F: NAN():1:4:nan: ++%*3F: NAN():0:4: ++%3F: NAN(09A_Zaz):1:4:nan: ++%*3F: NAN(09A_Zaz):0:4: ++%3F: 0:1:2:0x0: ++%*3F: 0:0:2: ++%3F: 0.0:1:4:0x0: ++%*3F: 0.0:0:4: ++%3F: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0: ++%*3F: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%3F: 23441673782552468302945364948518174720:1:4:0x1.d4p7: ++%*3F: 23441673782552468302945364948518174720:0:4: ++%3F: 023441673782552468302945364948518174720.0:1:4:0x1.7p4: ++%*3F: 023441673782552468302945364948518174720.0:0:4: ++%3F: 340282346638528859811704183484516925440:1:4:0x1.54p8: ++%*3F: 340282346638528859811704183484516925440:0:4: ++%3F: 0340282346638528859811704183484516925440.0:1:4:0x1.1p5: ++%*3F: 0340282346638528859811704183484516925440.0:0:4: ++%3F: INFINITY:1:4:inf: ++%*3F: INFINITY:0:4: ++%3F: +NAN():0:-1: ++%*3F: +NAN():0:-1: ++%3F: +NAN(09A_Zaz):0:-1: ++%*3F: +NAN(09A_Zaz):0:-1: ++%3F: +0:1:3:0x0: ++%*3F: +0:0:3: ++%3F: +0.0:1:4:0x0: ++%*3F: +0.0:0:4: ++%3F: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0: ++%*3F: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%3F: +23441673782552468302945364948518174720:1:4:0x1.7p4: ++%*3F: +23441673782552468302945364948518174720:0:4: ++%3F: +023441673782552468302945364948518174720.0:1:4:0x1p1: ++%*3F: +023441673782552468302945364948518174720.0:0:4: ++%3F: +340282346638528859811704183484516925440:1:4:0x1.1p5: ++%*3F: +340282346638528859811704183484516925440:0:4: ++%3F: +0340282346638528859811704183484516925440.0:1:4:0x1.8p1: ++%*3F: +0340282346638528859811704183484516925440.0:0:4: ++%3F: +INFINITY:0:-1: ++%*3F: +INFINITY:0:-1: ++%80F: :0:-1: ++%*80F: :0:-1: ++%80F: -INFINITY:1:10:-inf: ++%*80F: -INFINITY:0:10: ++%80F: -0340282346638528859811704183484516925440.0:1:44:-0x1.fffffep127: ++%*80F: -0340282346638528859811704183484516925440.0:0:44: ++%80F: -340282346638528859811704183484516925440:1:41:-0x1.fffffep127: ++%*80F: -340282346638528859811704183484516925440:0:41: ++%80F: -023441673782552468302945364948518174720.0:1:43:-0x1.1a2b3cp124: ++%*80F: -023441673782552468302945364948518174720.0:0:43: ++%80F: -23441673782552468302945364948518174720:1:40:-0x1.1a2b3cp124: ++%*80F: -23441673782552468302945364948518174720:0:40: ++%80F: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:77:-0x1p-126: ++%*80F: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:77: ++%80F: -0.0:1:5:-0x0: ++%*80F: -0.0:0:5: ++%80F: -0:1:3:-0x0: ++%*80F: -0:0:3: ++%80F: -NAN(09A_Zaz):1:14:-nan: ++%*80F: -NAN(09A_Zaz):0:14: ++%80F: -NAN():1:7:-nan: ++%*80F: -NAN():0:7: ++%80F: NAN():1:6:nan: ++%*80F: NAN():0:6: ++%80F: NAN(09A_Zaz):1:13:nan: ++%*80F: NAN(09A_Zaz):0:13: ++%80F: 0:1:2:0x0: ++%*80F: 0:0:2: ++%80F: 0.0:1:4:0x0: ++%*80F: 0.0:0:4: ++%80F: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:0x1p-126: ++%*80F: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%80F: 23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124: ++%*80F: 23441673782552468302945364948518174720:0:39: ++%80F: 023441673782552468302945364948518174720.0:1:42:0x1.1a2b3cp124: ++%*80F: 023441673782552468302945364948518174720.0:0:42: ++%80F: 340282346638528859811704183484516925440:1:40:0x1.fffffep127: ++%*80F: 340282346638528859811704183484516925440:0:40: ++%80F: 0340282346638528859811704183484516925440.0:1:43:0x1.fffffep127: ++%*80F: 0340282346638528859811704183484516925440.0:0:43: ++%80F: INFINITY:1:9:inf: ++%*80F: INFINITY:0:9: ++%80F: +NAN():1:7:nan: ++%*80F: +NAN():0:7: ++%80F: +NAN(09A_Zaz):1:14:nan: ++%*80F: +NAN(09A_Zaz):0:14: ++%80F: +0:1:3:0x0: ++%*80F: +0:0:3: ++%80F: +0.0:1:5:0x0: ++%*80F: +0.0:0:5: ++%80F: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:77:0x1p-126: ++%*80F: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:77: ++%80F: +23441673782552468302945364948518174720:1:40:0x1.1a2b3cp124: ++%*80F: +23441673782552468302945364948518174720:0:40: ++%80F: +023441673782552468302945364948518174720.0:1:43:0x1.1a2b3cp124: ++%*80F: +023441673782552468302945364948518174720.0:0:43: ++%80F: +340282346638528859811704183484516925440:1:41:0x1.fffffep127: ++%*80F: +340282346638528859811704183484516925440:0:41: ++%80F: +0340282346638528859811704183484516925440.0:1:44:0x1.fffffep127: ++%*80F: +0340282346638528859811704183484516925440.0:0:44: ++%80F: +INFINITY:1:10:inf: ++%*80F: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-g.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-g.input +new file mode 100644 +index 0000000000000000..81462cd764def99b +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-g.input +@@ -0,0 +1,682 @@ ++%g::0:-1: ++%*g::0:-1: ++%g:-infinity:1:9:-inf: ++%*g:-infinity:0:9: ++%g:-0xf.fffffp+124:1:15:-0x1.fffffep127: ++%*g:-0xf.fffffp+124:0:15: ++%g:-0x7.fffff8p125:1:15:-0x1.fffffep127: ++%*g:-0x7.fffff8p125:0:15: ++%g:-0x2.345678p+123:1:16:-0x1.1a2b3cp124: ++%*g:-0x2.345678p+123:0:16: ++%g:-0x2.345678p0123:1:16:-0x1.1a2b3cp124: ++%*g:-0x2.345678p0123:0:16: ++%g:-0x8p-129:1:9:-0x1p-126: ++%*g:-0x8p-129:0:9: ++%g:-0x0p+0:1:7:-0x0: ++%*g:-0x0p+0:0:7: ++%g:-0x0p0:1:6:-0x0: ++%*g:-0x0p0:0:6: ++%g:-nan(09A_Zaz):1:13:-nan: ++%*g:-nan(09A_Zaz):0:13: ++%g:-nan():1:6:-nan: ++%*g:-nan():0:6: ++%g:nan():1:5:nan: ++%*g:nan():0:5: ++%g:nan(09A_Zaz):1:12:nan: ++%*g:nan(09A_Zaz):0:12: ++%g:0x0p0:1:5:0x0: ++%*g:0x0p0:0:5: ++%g:0x0p+0:1:6:0x0: ++%*g:0x0p+0:0:6: ++%g:0x8p-129:1:8:0x1p-126: ++%*g:0x8p-129:0:8: ++%g:0x2.345678p0123:1:15:0x1.1a2b3cp124: ++%*g:0x2.345678p0123:0:15: ++%g:0x2.345678p+123:1:15:0x1.1a2b3cp124: ++%*g:0x2.345678p+123:0:15: ++%g:0x7.fffff8p125:1:14:0x1.fffffep127: ++%*g:0x7.fffff8p125:0:14: ++%g:0xf.fffffp+124:1:14:0x1.fffffep127: ++%*g:0xf.fffffp+124:0:14: ++%g:infinity:1:8:inf: ++%*g:infinity:0:8: ++%g:+nan():1:6:nan: ++%*g:+nan():0:6: ++%g:+nan(09A_Zaz):1:13:nan: ++%*g:+nan(09A_Zaz):0:13: ++%g:+0x0p0:1:6:0x0: ++%*g:+0x0p0:0:6: ++%g:+0x0p+0:1:7:0x0: ++%*g:+0x0p+0:0:7: ++%g:+0x8p-129:1:9:0x1p-126: ++%*g:+0x8p-129:0:9: ++%g:+0x2.345678p0123:1:16:0x1.1a2b3cp124: ++%*g:+0x2.345678p0123:0:16: ++%g:+0x2.345678p+123:1:16:0x1.1a2b3cp124: ++%*g:+0x2.345678p+123:0:16: ++%g:+0x7.fffff8p125:1:15:0x1.fffffep127: ++%*g:+0x7.fffff8p125:0:15: ++%g:+0xf.fffffp+124:1:15:0x1.fffffep127: ++%*g:+0xf.fffffp+124:0:15: ++%g:+infinity:1:9:inf: ++%*g:+infinity:0:9: ++%1g::0:-1: ++%*1g::0:-1: ++%1g:-infinity:0:-1: ++%*1g:-infinity:0:-1: ++%1g:-0xf.fffffp+124:0:-1: ++%*1g:-0xf.fffffp+124:0:-1: ++%1g:-0x7.fffff8p125:0:-1: ++%*1g:-0x7.fffff8p125:0:-1: ++%1g:-0x2.345678p+123:0:-1: ++%*1g:-0x2.345678p+123:0:-1: ++%1g:-0x2.345678p0123:0:-1: ++%*1g:-0x2.345678p0123:0:-1: ++%1g:-0x8p-129:0:-1: ++%*1g:-0x8p-129:0:-1: ++%1g:-0x0p+0:0:-1: ++%*1g:-0x0p+0:0:-1: ++%1g:-0x0p0:0:-1: ++%*1g:-0x0p0:0:-1: ++%1g:-nan(09A_Zaz):0:-1: ++%*1g:-nan(09A_Zaz):0:-1: ++%1g:-nan():0:-1: ++%*1g:-nan():0:-1: ++%1g:nan():0:-1: ++%*1g:nan():0:-1: ++%1g:nan(09A_Zaz):0:-1: ++%*1g:nan(09A_Zaz):0:-1: ++%1g:0x0p0:1:1:0x0: ++%*1g:0x0p0:0:1: ++%1g:0x0p+0:1:1:0x0: ++%*1g:0x0p+0:0:1: ++%1g:0x8p-129:1:1:0x0: ++%*1g:0x8p-129:0:1: ++%1g:0x2.345678p0123:1:1:0x0: ++%*1g:0x2.345678p0123:0:1: ++%1g:0x2.345678p+123:1:1:0x0: ++%*1g:0x2.345678p+123:0:1: ++%1g:0x7.fffff8p125:1:1:0x0: ++%*1g:0x7.fffff8p125:0:1: ++%1g:0xf.fffffp+124:1:1:0x0: ++%*1g:0xf.fffffp+124:0:1: ++%1g:infinity:0:-1: ++%*1g:infinity:0:-1: ++%1g:+nan():0:-1: ++%*1g:+nan():0:-1: ++%1g:+nan(09A_Zaz):0:-1: ++%*1g:+nan(09A_Zaz):0:-1: ++%1g:+0x0p0:0:-1: ++%*1g:+0x0p0:0:-1: ++%1g:+0x0p+0:0:-1: ++%*1g:+0x0p+0:0:-1: ++%1g:+0x8p-129:0:-1: ++%*1g:+0x8p-129:0:-1: ++%1g:+0x2.345678p0123:0:-1: ++%*1g:+0x2.345678p0123:0:-1: ++%1g:+0x2.345678p+123:0:-1: ++%*1g:+0x2.345678p+123:0:-1: ++%1g:+0x7.fffff8p125:0:-1: ++%*1g:+0x7.fffff8p125:0:-1: ++%1g:+0xf.fffffp+124:0:-1: ++%*1g:+0xf.fffffp+124:0:-1: ++%1g:+infinity:0:-1: ++%*1g:+infinity:0:-1: ++%2g::0:-1: ++%*2g::0:-1: ++%2g:-infinity:0:-1: ++%*2g:-infinity:0:-1: ++%2g:-0xf.fffffp+124:1:2:-0x0: ++%*2g:-0xf.fffffp+124:0:2: ++%2g:-0x7.fffff8p125:1:2:-0x0: ++%*2g:-0x7.fffff8p125:0:2: ++%2g:-0x2.345678p+123:1:2:-0x0: ++%*2g:-0x2.345678p+123:0:2: ++%2g:-0x2.345678p0123:1:2:-0x0: ++%*2g:-0x2.345678p0123:0:2: ++%2g:-0x8p-129:1:2:-0x0: ++%*2g:-0x8p-129:0:2: ++%2g:-0x0p+0:1:2:-0x0: ++%*2g:-0x0p+0:0:2: ++%2g:-0x0p0:1:2:-0x0: ++%*2g:-0x0p0:0:2: ++%2g:-nan(09A_Zaz):0:-1: ++%*2g:-nan(09A_Zaz):0:-1: ++%2g:-nan():0:-1: ++%*2g:-nan():0:-1: ++%2g:nan():0:-1: ++%*2g:nan():0:-1: ++%2g:nan(09A_Zaz):0:-1: ++%*2g:nan(09A_Zaz):0:-1: ++# BZ12701 %2g:0x0p0:0:-1: ++# BZ12701 %*2g:0x0p0:0:-1: ++# BZ12701 %2g:0x0p+0:0:-1: ++# BZ12701 %*2g:0x0p+0:0:-1: ++# BZ12701 %2g:0x8p-129:0:-1: ++# BZ12701 %*2g:0x8p-129:0:-1: ++# BZ12701 %2g:0x2.345678p0123:0:-1: ++# BZ12701 %*2g:0x2.345678p0123:0:-1: ++# BZ12701 %2g:0x2.345678p+123:0:-1: ++# BZ12701 %*2g:0x2.345678p+123:0:-1: ++# BZ12701 %2g:0x7.fffff8p125:0:-1: ++# BZ12701 %*2g:0x7.fffff8p125:0:-1: ++# BZ12701 %2g:0xf.fffffp+124:0:-1: ++# BZ12701 %*2g:0xf.fffffp+124:0:-1: ++%2g:infinity:0:-1: ++%*2g:infinity:0:-1: ++%2g:+nan():0:-1: ++%*2g:+nan():0:-1: ++%2g:+nan(09A_Zaz):0:-1: ++%*2g:+nan(09A_Zaz):0:-1: ++%2g:+0x0p0:1:2:0x0: ++%*2g:+0x0p0:0:2: ++%2g:+0x0p+0:1:2:0x0: ++%*2g:+0x0p+0:0:2: ++%2g:+0x8p-129:1:2:0x0: ++%*2g:+0x8p-129:0:2: ++%2g:+0x2.345678p0123:1:2:0x0: ++%*2g:+0x2.345678p0123:0:2: ++%2g:+0x2.345678p+123:1:2:0x0: ++%*2g:+0x2.345678p+123:0:2: ++%2g:+0x7.fffff8p125:1:2:0x0: ++%*2g:+0x7.fffff8p125:0:2: ++%2g:+0xf.fffffp+124:1:2:0x0: ++%*2g:+0xf.fffffp+124:0:2: ++%2g:+infinity:0:-1: ++%*2g:+infinity:0:-1: ++%3g::0:-1: ++%*3g::0:-1: ++%3g:-infinity:0:-1: ++%*3g:-infinity:0:-1: ++# BZ12701 %3g:-0xf.fffffp+124:0:-1: ++# BZ12701 %*3g:-0xf.fffffp+124:0:-1: ++# BZ12701 %3g:-0x7.fffff8p125:0:-1: ++# BZ12701 %*3g:-0x7.fffff8p125:0:-1: ++# BZ12701 %3g:-0x2.345678p+123:0:-1: ++# BZ12701 %*3g:-0x2.345678p+123:0:-1: ++# BZ12701 %3g:-0x2.345678p0123:0:-1: ++# BZ12701 %*3g:-0x2.345678p0123:0:-1: ++# BZ12701 %3g:-0x8p-129:0:-1: ++# BZ12701 %*3g:-0x8p-129:0:-1: ++# BZ12701 %3g:-0x0p+0:0:-1: ++# BZ12701 %*3g:-0x0p+0:0:-1: ++# BZ12701 %3g:-0x0p0:0:-1: ++# BZ12701 %*3g:-0x0p0:0:-1: ++%3g:-nan(09A_Zaz):0:-1: ++%*3g:-nan(09A_Zaz):0:-1: ++%3g:-nan():0:-1: ++%*3g:-nan():0:-1: ++%3g:nan():1:3:nan: ++%*3g:nan():0:3: ++%3g:nan(09A_Zaz):1:3:nan: ++%*3g:nan(09A_Zaz):0:3: ++%3g:0x0p0:1:3:0x0: ++%*3g:0x0p0:0:3: ++%3g:0x0p+0:1:3:0x0: ++%*3g:0x0p+0:0:3: ++%3g:0x8p-129:1:3:0x1p3: ++%*3g:0x8p-129:0:3: ++%3g:0x2.345678p0123:1:3:0x1p1: ++%*3g:0x2.345678p0123:0:3: ++%3g:0x2.345678p+123:1:3:0x1p1: ++%*3g:0x2.345678p+123:0:3: ++%3g:0x7.fffff8p125:1:3:0x1.cp2: ++%*3g:0x7.fffff8p125:0:3: ++%3g:0xf.fffffp+124:1:3:0x1.ep3: ++%*3g:0xf.fffffp+124:0:3: ++%3g:infinity:1:3:inf: ++%*3g:infinity:0:3: ++%3g:+nan():0:-1: ++%*3g:+nan():0:-1: ++%3g:+nan(09A_Zaz):0:-1: ++%*3g:+nan(09A_Zaz):0:-1: ++# BZ12701 %3g:+0x0p0:0:-1: ++# BZ12701 %*3g:+0x0p0:0:-1: ++# BZ12701 %3g:+0x0p+0:0:-1: ++# BZ12701 %*3g:+0x0p+0:0:-1: ++# BZ12701 %3g:+0x8p-129:0:-1: ++# BZ12701 %*3g:+0x8p-129:0:-1: ++# BZ12701 %3g:+0x2.345678p0123:0:-1: ++# BZ12701 %*3g:+0x2.345678p0123:0:-1: ++# BZ12701 %3g:+0x2.345678p+123:0:-1: ++# BZ12701 %*3g:+0x2.345678p+123:0:-1: ++# BZ12701 %3g:+0x7.fffff8p125:0:-1: ++# BZ12701 %*3g:+0x7.fffff8p125:0:-1: ++# BZ12701 %3g:+0xf.fffffp+124:0:-1: ++# BZ12701 %*3g:+0xf.fffffp+124:0:-1: ++%3g:+infinity:0:-1: ++%*3g:+infinity:0:-1: ++%4g::0:-1: ++%*4g::0:-1: ++%4g:-infinity:1:4:-inf: ++%*4g:-infinity:0:4: ++%4g:-0xf.fffffp+124:1:4:-0x1.ep3: ++%*4g:-0xf.fffffp+124:0:4: ++%4g:-0x7.fffff8p125:1:4:-0x1.cp2: ++%*4g:-0x7.fffff8p125:0:4: ++%4g:-0x2.345678p+123:1:4:-0x1p1: ++%*4g:-0x2.345678p+123:0:4: ++%4g:-0x2.345678p0123:1:4:-0x1p1: ++%*4g:-0x2.345678p0123:0:4: ++%4g:-0x8p-129:1:4:-0x1p3: ++%*4g:-0x8p-129:0:4: ++%4g:-0x0p+0:1:4:-0x0: ++%*4g:-0x0p+0:0:4: ++%4g:-0x0p0:1:4:-0x0: ++%*4g:-0x0p0:0:4: ++%4g:-nan(09A_Zaz):1:4:-nan: ++%*4g:-nan(09A_Zaz):0:4: ++%4g:-nan():1:4:-nan: ++%*4g:-nan():0:4: ++%4g:nan():0:-1: ++%*4g:nan():0:-1: ++%4g:nan(09A_Zaz):0:-1: ++%*4g:nan(09A_Zaz):0:-1: ++# BZ12701 %4g:0x0p0:0:-1: ++# BZ12701 %*4g:0x0p0:0:-1: ++# BZ12701 %4g:0x0p+0:0:-1: ++# BZ12701 %*4g:0x0p+0:0:-1: ++# BZ12701 %4g:0x8p-129:0:-1: ++# BZ12701 %*4g:0x8p-129:0:-1: ++%4g:0x2.345678p0123:1:4:0x1p1: ++%*4g:0x2.345678p0123:0:4: ++%4g:0x2.345678p+123:1:4:0x1p1: ++%*4g:0x2.345678p+123:0:4: ++%4g:0x7.fffff8p125:1:4:0x1.cp2: ++%*4g:0x7.fffff8p125:0:4: ++%4g:0xf.fffffp+124:1:4:0x1.ep3: ++%*4g:0xf.fffffp+124:0:4: ++%4g:infinity:0:-1: ++%*4g:infinity:0:-1: ++%4g:+nan():1:4:nan: ++%*4g:+nan():0:4: ++%4g:+nan(09A_Zaz):1:4:nan: ++%*4g:+nan(09A_Zaz):0:4: ++%4g:+0x0p0:1:4:0x0: ++%*4g:+0x0p0:0:4: ++%4g:+0x0p+0:1:4:0x0: ++%*4g:+0x0p+0:0:4: ++%4g:+0x8p-129:1:4:0x1p3: ++%*4g:+0x8p-129:0:4: ++%4g:+0x2.345678p0123:1:4:0x1p1: ++%*4g:+0x2.345678p0123:0:4: ++%4g:+0x2.345678p+123:1:4:0x1p1: ++%*4g:+0x2.345678p+123:0:4: ++%4g:+0x7.fffff8p125:1:4:0x1.cp2: ++%*4g:+0x7.fffff8p125:0:4: ++%4g:+0xf.fffffp+124:1:4:0x1.ep3: ++%*4g:+0xf.fffffp+124:0:4: ++%4g:+infinity:1:4:inf: ++%*4g:+infinity:0:4: ++%5g::0:-1: ++%*5g::0:-1: ++%5g:-infinity:0:-1: ++%*5g:-infinity:0:-1: ++%5g:-0xf.fffffp+124:1:5:-0x1.ep3: ++%*5g:-0xf.fffffp+124:0:5: ++%5g:-0x7.fffff8p125:1:5:-0x1.cp2: ++%*5g:-0x7.fffff8p125:0:5: ++%5g:-0x2.345678p+123:1:5:-0x1p1: ++%*5g:-0x2.345678p+123:0:5: ++%5g:-0x2.345678p0123:1:5:-0x1p1: ++%*5g:-0x2.345678p0123:0:5: ++# BZ12701 %5g:-0x8p-129:0:-1: ++# BZ12701 %*5g:-0x8p-129:0:-1: ++# BZ12701 %5g:-0x0p+0:0:-1: ++# BZ12701 %*5g:-0x0p+0:0:-1: ++# BZ12701 %5g:-0x0p0:0:-1: ++# BZ12701 %*5g:-0x0p0:0:-1: ++%5g:-nan(09A_Zaz):0:-1: ++%*5g:-nan(09A_Zaz):0:-1: ++%5g:-nan():0:-1: ++%*5g:-nan():0:-1: ++%5g:nan():1:5:nan: ++%*5g:nan():0:5: ++%5g:nan(09A_Zaz):0:-1: ++%*5g:nan(09A_Zaz):0:-1: ++%5g:0x0p0:1:5:0x0: ++%*5g:0x0p0:0:5: ++# BZ12701 %5g:0x0p+0:0:-1: ++# BZ12701 %*5g:0x0p+0:0:-1: ++# BZ12701 %5g:0x8p-129:0:-1: ++# BZ12701 %*5g:0x8p-129:0:-1: ++%5g:0x2.345678p0123:1:5:0x1.18p1: ++%*5g:0x2.345678p0123:0:5: ++%5g:0x2.345678p+123:1:5:0x1.18p1: ++%*5g:0x2.345678p+123:0:5: ++%5g:0x7.fffff8p125:1:5:0x1.fcp2: ++%*5g:0x7.fffff8p125:0:5: ++%5g:0xf.fffffp+124:1:5:0x1.fep3: ++%*5g:0xf.fffffp+124:0:5: ++%5g:infinity:0:-1: ++%*5g:infinity:0:-1: ++%5g:+nan():0:-1: ++%*5g:+nan():0:-1: ++%5g:+nan(09A_Zaz):0:-1: ++%*5g:+nan(09A_Zaz):0:-1: ++# BZ12701 %5g:+0x0p0:0:-1: ++# BZ12701 %*5g:+0x0p0:0:-1: ++# BZ12701 %5g:+0x0p+0:0:-1: ++# BZ12701 %*5g:+0x0p+0:0:-1: ++# BZ12701 %5g:+0x8p-129:0:-1: ++# BZ12701 %*5g:+0x8p-129:0:-1: ++%5g:+0x2.345678p0123:1:5:0x1p1: ++%*5g:+0x2.345678p0123:0:5: ++%5g:+0x2.345678p+123:1:5:0x1p1: ++%*5g:+0x2.345678p+123:0:5: ++%5g:+0x7.fffff8p125:1:5:0x1.cp2: ++%*5g:+0x7.fffff8p125:0:5: ++%5g:+0xf.fffffp+124:1:5:0x1.ep3: ++%*5g:+0xf.fffffp+124:0:5: ++%5g:+infinity:0:-1: ++%*5g:+infinity:0:-1: ++%6g::0:-1: ++%*6g::0:-1: ++%6g:-infinity:0:-1: ++%*6g:-infinity:0:-1: ++%6g:-0xf.fffffp+124:1:6:-0x1.fep3: ++%*6g:-0xf.fffffp+124:0:6: ++%6g:-0x7.fffff8p125:1:6:-0x1.fcp2: ++%*6g:-0x7.fffff8p125:0:6: ++%6g:-0x2.345678p+123:1:6:-0x1.18p1: ++%*6g:-0x2.345678p+123:0:6: ++%6g:-0x2.345678p0123:1:6:-0x1.18p1: ++%*6g:-0x2.345678p0123:0:6: ++# BZ12701 %6g:-0x8p-129:0:-1: ++# BZ12701 %*6g:-0x8p-129:0:-1: ++# BZ12701 %6g:-0x0p+0:0:-1: ++# BZ12701 %*6g:-0x0p+0:0:-1: ++%6g:-0x0p0:1:6:-0x0: ++%*6g:-0x0p0:0:6: ++%6g:-nan(09A_Zaz):0:-1: ++%*6g:-nan(09A_Zaz):0:-1: ++%6g:-nan():1:6:-nan: ++%*6g:-nan():0:6: ++%6g:nan():1:5:nan: ++%*6g:nan():0:5: ++%6g:nan(09A_Zaz):0:-1: ++%*6g:nan(09A_Zaz):0:-1: ++%6g:0x0p0:1:5:0x0: ++%*6g:0x0p0:0:5: ++%6g:0x0p+0:1:6:0x0: ++%*6g:0x0p+0:0:6: ++%6g:0x8p-129:1:6:0x1p2: ++%*6g:0x8p-129:0:6: ++%6g:0x2.345678p0123:1:6:0x1.1ap1: ++%*6g:0x2.345678p0123:0:6: ++%6g:0x2.345678p+123:1:6:0x1.1ap1: ++%*6g:0x2.345678p+123:0:6: ++%6g:0x7.fffff8p125:1:6:0x1.ffcp2: ++%*6g:0x7.fffff8p125:0:6: ++%6g:0xf.fffffp+124:1:6:0x1.ffep3: ++%*6g:0xf.fffffp+124:0:6: ++%6g:infinity:0:-1: ++%*6g:infinity:0:-1: ++%6g:+nan():1:6:nan: ++%*6g:+nan():0:6: ++%6g:+nan(09A_Zaz):0:-1: ++%*6g:+nan(09A_Zaz):0:-1: ++%6g:+0x0p0:1:6:0x0: ++%*6g:+0x0p0:0:6: ++# BZ12701 %6g:+0x0p+0:0:-1: ++# BZ12701 %*6g:+0x0p+0:0:-1: ++# BZ12701 %6g:+0x8p-129:0:-1: ++# BZ12701 %*6g:+0x8p-129:0:-1: ++%6g:+0x2.345678p0123:1:6:0x1.18p1: ++%*6g:+0x2.345678p0123:0:6: ++%6g:+0x2.345678p+123:1:6:0x1.18p1: ++%*6g:+0x2.345678p+123:0:6: ++%6g:+0x7.fffff8p125:1:6:0x1.fcp2: ++%*6g:+0x7.fffff8p125:0:6: ++%6g:+0xf.fffffp+124:1:6:0x1.fep3: ++%*6g:+0xf.fffffp+124:0:6: ++%6g:+infinity:0:-1: ++%*6g:+infinity:0:-1: ++%12g::0:-1: ++%*12g::0:-1: ++%12g:-infinity:1:9:-inf: ++%*12g:-infinity:0:9: ++# BZ12701 %12g:-0xf.fffffp+124:0:-1: ++# BZ12701 %*12g:-0xf.fffffp+124:0:-1: ++# BZ12701 %12g:-0x7.fffff8p125:0:-1: ++# BZ12701 %*12g:-0x7.fffff8p125:0:-1: ++# BZ12701 %12g:-0x2.345678p+123:0:-1: ++# BZ12701 %*12g:-0x2.345678p+123:0:-1: ++# BZ12701 %12g:-0x2.345678p0123:0:-1: ++# BZ12701 %*12g:-0x2.345678p0123:0:-1: ++%12g:-0x8p-129:1:9:-0x1p-126: ++%*12g:-0x8p-129:0:9: ++%12g:-0x0p+0:1:7:-0x0: ++%*12g:-0x0p+0:0:7: ++%12g:-0x0p0:1:6:-0x0: ++%*12g:-0x0p0:0:6: ++%12g:-nan(09A_Zaz):0:-1: ++%*12g:-nan(09A_Zaz):0:-1: ++%12g:-nan():1:6:-nan: ++%*12g:-nan():0:6: ++%12g:nan():1:5:nan: ++%*12g:nan():0:5: ++%12g:nan(09A_Zaz):1:12:nan: ++%*12g:nan(09A_Zaz):0:12: ++%12g:0x0p0:1:5:0x0: ++%*12g:0x0p0:0:5: ++%12g:0x0p+0:1:6:0x0: ++%*12g:0x0p+0:0:6: ++%12g:0x8p-129:1:8:0x1p-126: ++%*12g:0x8p-129:0:8: ++%12g:0x2.345678p0123:1:12:0x1.1a2b3cp1: ++%*12g:0x2.345678p0123:0:12: ++# BZ12701 %12g:0x2.345678p+123:0:-1: ++# BZ12701 %*12g:0x2.345678p+123:0:-1: ++%12g:0x7.fffff8p125:1:12:0x1.fffffep3: ++%*12g:0x7.fffff8p125:0:12: ++%12g:0xf.fffffp+124:1:12:0x1.fffffep4: ++%*12g:0xf.fffffp+124:0:12: ++%12g:infinity:1:8:inf: ++%*12g:infinity:0:8: ++%12g:+nan():1:6:nan: ++%*12g:+nan():0:6: ++%12g:+nan(09A_Zaz):0:-1: ++%*12g:+nan(09A_Zaz):0:-1: ++%12g:+0x0p0:1:6:0x0: ++%*12g:+0x0p0:0:6: ++%12g:+0x0p+0:1:7:0x0: ++%*12g:+0x0p+0:0:7: ++%12g:+0x8p-129:1:9:0x1p-126: ++%*12g:+0x8p-129:0:9: ++# BZ12701 %12g:+0x2.345678p0123:0:-1: ++# BZ12701 %*12g:+0x2.345678p0123:0:-1: ++# BZ12701 %12g:+0x2.345678p+123:0:-1: ++# BZ12701 %*12g:+0x2.345678p+123:0:-1: ++# BZ12701 %12g:+0x7.fffff8p125:0:-1: ++# BZ12701 %*12g:+0x7.fffff8p125:0:-1: ++# BZ12701 %12g:+0xf.fffffp+124:0:-1: ++# BZ12701 %*12g:+0xf.fffffp+124:0:-1: ++%12g:+infinity:1:9:inf: ++%*12g:+infinity:0:9: ++%18g::0:-1: ++%*18g::0:-1: ++%18g:-infinity:1:9:-inf: ++%*18g:-infinity:0:9: ++%18g:-0xf.fffffp+124:1:15:-0x1.fffffep127: ++%*18g:-0xf.fffffp+124:0:15: ++%18g:-0x7.fffff8p125:1:15:-0x1.fffffep127: ++%*18g:-0x7.fffff8p125:0:15: ++%18g:-0x2.345678p+123:1:16:-0x1.1a2b3cp124: ++%*18g:-0x2.345678p+123:0:16: ++%18g:-0x2.345678p0123:1:16:-0x1.1a2b3cp124: ++%*18g:-0x2.345678p0123:0:16: ++%18g:-0x8p-129:1:9:-0x1p-126: ++%*18g:-0x8p-129:0:9: ++%18g:-0x0p+0:1:7:-0x0: ++%*18g:-0x0p+0:0:7: ++%18g:-0x0p0:1:6:-0x0: ++%*18g:-0x0p0:0:6: ++%18g:-nan(09A_Zaz):1:13:-nan: ++%*18g:-nan(09A_Zaz):0:13: ++%18g:-nan():1:6:-nan: ++%*18g:-nan():0:6: ++%18g:nan():1:5:nan: ++%*18g:nan():0:5: ++%18g:nan(09A_Zaz):1:12:nan: ++%*18g:nan(09A_Zaz):0:12: ++%18g:0x0p0:1:5:0x0: ++%*18g:0x0p0:0:5: ++%18g:0x0p+0:1:6:0x0: ++%*18g:0x0p+0:0:6: ++%18g:0x8p-129:1:8:0x1p-126: ++%*18g:0x8p-129:0:8: ++%18g:0x2.345678p0123:1:15:0x1.1a2b3cp124: ++%*18g:0x2.345678p0123:0:15: ++%18g:0x2.345678p+123:1:15:0x1.1a2b3cp124: ++%*18g:0x2.345678p+123:0:15: ++%18g:0x7.fffff8p125:1:14:0x1.fffffep127: ++%*18g:0x7.fffff8p125:0:14: ++%18g:0xf.fffffp+124:1:14:0x1.fffffep127: ++%*18g:0xf.fffffp+124:0:14: ++%18g:infinity:1:8:inf: ++%*18g:infinity:0:8: ++%18g:+nan():1:6:nan: ++%*18g:+nan():0:6: ++%18g:+nan(09A_Zaz):1:13:nan: ++%*18g:+nan(09A_Zaz):0:13: ++%18g:+0x0p0:1:6:0x0: ++%*18g:+0x0p0:0:6: ++%18g:+0x0p+0:1:7:0x0: ++%*18g:+0x0p+0:0:7: ++%18g:+0x8p-129:1:9:0x1p-126: ++%*18g:+0x8p-129:0:9: ++%18g:+0x2.345678p0123:1:16:0x1.1a2b3cp124: ++%*18g:+0x2.345678p0123:0:16: ++%18g:+0x2.345678p+123:1:16:0x1.1a2b3cp124: ++%*18g:+0x2.345678p+123:0:16: ++%18g:+0x7.fffff8p125:1:15:0x1.fffffep127: ++%*18g:+0x7.fffff8p125:0:15: ++%18g:+0xf.fffffp+124:1:15:0x1.fffffep127: ++%*18g:+0xf.fffffp+124:0:15: ++%18g:+infinity:1:9:inf: ++%*18g:+infinity:0:9: ++%5g: :0:-1: ++%*5g: :0:-1: ++%5g: -infinity:0:-1: ++%*5g: -infinity:0:-1: ++%5g: -0xf.fffffp+124:1:6:-0x1.ep3: ++%*5g: -0xf.fffffp+124:0:6: ++%5g: -0x7.fffff8p125:1:6:-0x1.cp2: ++%*5g: -0x7.fffff8p125:0:6: ++%5g: -0x2.345678p+123:1:6:-0x1p1: ++%*5g: -0x2.345678p+123:0:6: ++%5g: -0x2.345678p0123:1:6:-0x1p1: ++%*5g: -0x2.345678p0123:0:6: ++# BZ12701 %5g: -0x8p-129:0:-1: ++# BZ12701 %*5g: -0x8p-129:0:-1: ++# BZ12701 %5g: -0x0p+0:0:-1: ++# BZ12701 %*5g: -0x0p+0:0:-1: ++# BZ12701 %5g: -0x0p0:0:-1: ++# BZ12701 %*5g: -0x0p0:0:-1: ++%5g: -nan(09A_Zaz):0:-1: ++%*5g: -nan(09A_Zaz):0:-1: ++%5g: -nan():0:-1: ++%*5g: -nan():0:-1: ++%5g: nan():1:6:nan: ++%*5g: nan():0:6: ++%5g: nan(09A_Zaz):0:-1: ++%*5g: nan(09A_Zaz):0:-1: ++%5g: 0x0p0:1:6:0x0: ++%*5g: 0x0p0:0:6: ++# BZ12701 %5g: 0x0p+0:0:-1: ++# BZ12701 %*5g: 0x0p+0:0:-1: ++# BZ12701 %5g: 0x8p-129:0:-1: ++# BZ12701 %*5g: 0x8p-129:0:-1: ++%5g: 0x2.345678p0123:1:6:0x1.18p1: ++%*5g: 0x2.345678p0123:0:6: ++%5g: 0x2.345678p+123:1:6:0x1.18p1: ++%*5g: 0x2.345678p+123:0:6: ++%5g: 0x7.fffff8p125:1:6:0x1.fcp2: ++%*5g: 0x7.fffff8p125:0:6: ++%5g: 0xf.fffffp+124:1:6:0x1.fep3: ++%*5g: 0xf.fffffp+124:0:6: ++%5g: infinity:0:-1: ++%*5g: infinity:0:-1: ++%5g: +nan():0:-1: ++%*5g: +nan():0:-1: ++%5g: +nan(09A_Zaz):0:-1: ++%*5g: +nan(09A_Zaz):0:-1: ++# BZ12701 %5g: +0x0p0:0:-1: ++# BZ12701 %*5g: +0x0p0:0:-1: ++# BZ12701 %5g: +0x0p+0:0:-1: ++# BZ12701 %*5g: +0x0p+0:0:-1: ++# BZ12701 %5g: +0x8p-129:0:-1: ++# BZ12701 %*5g: +0x8p-129:0:-1: ++%5g: +0x2.345678p0123:1:6:0x1p1: ++%*5g: +0x2.345678p0123:0:6: ++%5g: +0x2.345678p+123:1:6:0x1p1: ++%*5g: +0x2.345678p+123:0:6: ++%5g: +0x7.fffff8p125:1:6:0x1.cp2: ++%*5g: +0x7.fffff8p125:0:6: ++%5g: +0xf.fffffp+124:1:6:0x1.ep3: ++%*5g: +0xf.fffffp+124:0:6: ++%5g: +infinity:0:-1: ++%*5g: +infinity:0:-1: ++%18g: :0:-1: ++%*18g: :0:-1: ++%18g: -infinity:1:10:-inf: ++%*18g: -infinity:0:10: ++%18g: -0xf.fffffp+124:1:16:-0x1.fffffep127: ++%*18g: -0xf.fffffp+124:0:16: ++%18g: -0x7.fffff8p125:1:16:-0x1.fffffep127: ++%*18g: -0x7.fffff8p125:0:16: ++%18g: -0x2.345678p+123:1:17:-0x1.1a2b3cp124: ++%*18g: -0x2.345678p+123:0:17: ++%18g: -0x2.345678p0123:1:17:-0x1.1a2b3cp124: ++%*18g: -0x2.345678p0123:0:17: ++%18g: -0x8p-129:1:10:-0x1p-126: ++%*18g: -0x8p-129:0:10: ++%18g: -0x0p+0:1:8:-0x0: ++%*18g: -0x0p+0:0:8: ++%18g: -0x0p0:1:7:-0x0: ++%*18g: -0x0p0:0:7: ++%18g: -nan(09A_Zaz):1:14:-nan: ++%*18g: -nan(09A_Zaz):0:14: ++%18g: -nan():1:7:-nan: ++%*18g: -nan():0:7: ++%18g: nan():1:6:nan: ++%*18g: nan():0:6: ++%18g: nan(09A_Zaz):1:13:nan: ++%*18g: nan(09A_Zaz):0:13: ++%18g: 0x0p0:1:6:0x0: ++%*18g: 0x0p0:0:6: ++%18g: 0x0p+0:1:7:0x0: ++%*18g: 0x0p+0:0:7: ++%18g: 0x8p-129:1:9:0x1p-126: ++%*18g: 0x8p-129:0:9: ++%18g: 0x2.345678p0123:1:16:0x1.1a2b3cp124: ++%*18g: 0x2.345678p0123:0:16: ++%18g: 0x2.345678p+123:1:16:0x1.1a2b3cp124: ++%*18g: 0x2.345678p+123:0:16: ++%18g: 0x7.fffff8p125:1:15:0x1.fffffep127: ++%*18g: 0x7.fffff8p125:0:15: ++%18g: 0xf.fffffp+124:1:15:0x1.fffffep127: ++%*18g: 0xf.fffffp+124:0:15: ++%18g: infinity:1:9:inf: ++%*18g: infinity:0:9: ++%18g: +nan():1:7:nan: ++%*18g: +nan():0:7: ++%18g: +nan(09A_Zaz):1:14:nan: ++%*18g: +nan(09A_Zaz):0:14: ++%18g: +0x0p0:1:7:0x0: ++%*18g: +0x0p0:0:7: ++%18g: +0x0p+0:1:8:0x0: ++%*18g: +0x0p+0:0:8: ++%18g: +0x8p-129:1:10:0x1p-126: ++%*18g: +0x8p-129:0:10: ++%18g: +0x2.345678p0123:1:17:0x1.1a2b3cp124: ++%*18g: +0x2.345678p0123:0:17: ++%18g: +0x2.345678p+123:1:17:0x1.1a2b3cp124: ++%*18g: +0x2.345678p+123:0:17: ++%18g: +0x7.fffff8p125:1:16:0x1.fffffep127: ++%*18g: +0x7.fffff8p125:0:16: ++%18g: +0xf.fffffp+124:1:16:0x1.fffffep127: ++%*18g: +0xf.fffffp+124:0:16: ++%18g: +infinity:1:10:inf: ++%*18g: +infinity:0:10: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-gg.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-gg.input +new file mode 100644 +index 0000000000000000..4236ea9f247c13cc +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-gg.input +@@ -0,0 +1,682 @@ ++%G::0:-1: ++%*G::0:-1: ++%G:-INFINITY:1:9:-inf: ++%*G:-INFINITY:0:9: ++%G:-0XF.FFFFFP+124:1:15:-0x1.fffffep127: ++%*G:-0XF.FFFFFP+124:0:15: ++%G:-0X7.FFFFF8P125:1:15:-0x1.fffffep127: ++%*G:-0X7.FFFFF8P125:0:15: ++%G:-0X2.345678P+123:1:16:-0x1.1a2b3cp124: ++%*G:-0X2.345678P+123:0:16: ++%G:-0X2.345678P0123:1:16:-0x1.1a2b3cp124: ++%*G:-0X2.345678P0123:0:16: ++%G:-0X8P-129:1:9:-0x1p-126: ++%*G:-0X8P-129:0:9: ++%G:-0X0P+0:1:7:-0x0: ++%*G:-0X0P+0:0:7: ++%G:-0X0P0:1:6:-0x0: ++%*G:-0X0P0:0:6: ++%G:-NAN(09A_Zaz):1:13:-nan: ++%*G:-NAN(09A_Zaz):0:13: ++%G:-NAN():1:6:-nan: ++%*G:-NAN():0:6: ++%G:NAN():1:5:nan: ++%*G:NAN():0:5: ++%G:NAN(09A_Zaz):1:12:nan: ++%*G:NAN(09A_Zaz):0:12: ++%G:0X0P0:1:5:0x0: ++%*G:0X0P0:0:5: ++%G:0X0P+0:1:6:0x0: ++%*G:0X0P+0:0:6: ++%G:0X8P-129:1:8:0x1p-126: ++%*G:0X8P-129:0:8: ++%G:0X2.345678P0123:1:15:0x1.1a2b3cp124: ++%*G:0X2.345678P0123:0:15: ++%G:0X2.345678P+123:1:15:0x1.1a2b3cp124: ++%*G:0X2.345678P+123:0:15: ++%G:0X7.FFFFF8P125:1:14:0x1.fffffep127: ++%*G:0X7.FFFFF8P125:0:14: ++%G:0XF.FFFFFP+124:1:14:0x1.fffffep127: ++%*G:0XF.FFFFFP+124:0:14: ++%G:INFINITY:1:8:inf: ++%*G:INFINITY:0:8: ++%G:+NAN():1:6:nan: ++%*G:+NAN():0:6: ++%G:+NAN(09A_Zaz):1:13:nan: ++%*G:+NAN(09A_Zaz):0:13: ++%G:+0X0P0:1:6:0x0: ++%*G:+0X0P0:0:6: ++%G:+0X0P+0:1:7:0x0: ++%*G:+0X0P+0:0:7: ++%G:+0X8P-129:1:9:0x1p-126: ++%*G:+0X8P-129:0:9: ++%G:+0X2.345678P0123:1:16:0x1.1a2b3cp124: ++%*G:+0X2.345678P0123:0:16: ++%G:+0X2.345678P+123:1:16:0x1.1a2b3cp124: ++%*G:+0X2.345678P+123:0:16: ++%G:+0X7.FFFFF8P125:1:15:0x1.fffffep127: ++%*G:+0X7.FFFFF8P125:0:15: ++%G:+0XF.FFFFFP+124:1:15:0x1.fffffep127: ++%*G:+0XF.FFFFFP+124:0:15: ++%G:+INFINITY:1:9:inf: ++%*G:+INFINITY:0:9: ++%1G::0:-1: ++%*1G::0:-1: ++%1G:-INFINITY:0:-1: ++%*1G:-INFINITY:0:-1: ++%1G:-0XF.FFFFFP+124:0:-1: ++%*1G:-0XF.FFFFFP+124:0:-1: ++%1G:-0X7.FFFFF8P125:0:-1: ++%*1G:-0X7.FFFFF8P125:0:-1: ++%1G:-0X2.345678P+123:0:-1: ++%*1G:-0X2.345678P+123:0:-1: ++%1G:-0X2.345678P0123:0:-1: ++%*1G:-0X2.345678P0123:0:-1: ++%1G:-0X8P-129:0:-1: ++%*1G:-0X8P-129:0:-1: ++%1G:-0X0P+0:0:-1: ++%*1G:-0X0P+0:0:-1: ++%1G:-0X0P0:0:-1: ++%*1G:-0X0P0:0:-1: ++%1G:-NAN(09A_Zaz):0:-1: ++%*1G:-NAN(09A_Zaz):0:-1: ++%1G:-NAN():0:-1: ++%*1G:-NAN():0:-1: ++%1G:NAN():0:-1: ++%*1G:NAN():0:-1: ++%1G:NAN(09A_Zaz):0:-1: ++%*1G:NAN(09A_Zaz):0:-1: ++%1G:0X0P0:1:1:0x0: ++%*1G:0X0P0:0:1: ++%1G:0X0P+0:1:1:0x0: ++%*1G:0X0P+0:0:1: ++%1G:0X8P-129:1:1:0x0: ++%*1G:0X8P-129:0:1: ++%1G:0X2.345678P0123:1:1:0x0: ++%*1G:0X2.345678P0123:0:1: ++%1G:0X2.345678P+123:1:1:0x0: ++%*1G:0X2.345678P+123:0:1: ++%1G:0X7.FFFFF8P125:1:1:0x0: ++%*1G:0X7.FFFFF8P125:0:1: ++%1G:0XF.FFFFFP+124:1:1:0x0: ++%*1G:0XF.FFFFFP+124:0:1: ++%1G:INFINITY:0:-1: ++%*1G:INFINITY:0:-1: ++%1G:+NAN():0:-1: ++%*1G:+NAN():0:-1: ++%1G:+NAN(09A_Zaz):0:-1: ++%*1G:+NAN(09A_Zaz):0:-1: ++%1G:+0X0P0:0:-1: ++%*1G:+0X0P0:0:-1: ++%1G:+0X0P+0:0:-1: ++%*1G:+0X0P+0:0:-1: ++%1G:+0X8P-129:0:-1: ++%*1G:+0X8P-129:0:-1: ++%1G:+0X2.345678P0123:0:-1: ++%*1G:+0X2.345678P0123:0:-1: ++%1G:+0X2.345678P+123:0:-1: ++%*1G:+0X2.345678P+123:0:-1: ++%1G:+0X7.FFFFF8P125:0:-1: ++%*1G:+0X7.FFFFF8P125:0:-1: ++%1G:+0XF.FFFFFP+124:0:-1: ++%*1G:+0XF.FFFFFP+124:0:-1: ++%1G:+INFINITY:0:-1: ++%*1G:+INFINITY:0:-1: ++%2G::0:-1: ++%*2G::0:-1: ++%2G:-INFINITY:0:-1: ++%*2G:-INFINITY:0:-1: ++%2G:-0XF.FFFFFP+124:1:2:-0x0: ++%*2G:-0XF.FFFFFP+124:0:2: ++%2G:-0X7.FFFFF8P125:1:2:-0x0: ++%*2G:-0X7.FFFFF8P125:0:2: ++%2G:-0X2.345678P+123:1:2:-0x0: ++%*2G:-0X2.345678P+123:0:2: ++%2G:-0X2.345678P0123:1:2:-0x0: ++%*2G:-0X2.345678P0123:0:2: ++%2G:-0X8P-129:1:2:-0x0: ++%*2G:-0X8P-129:0:2: ++%2G:-0X0P+0:1:2:-0x0: ++%*2G:-0X0P+0:0:2: ++%2G:-0X0P0:1:2:-0x0: ++%*2G:-0X0P0:0:2: ++%2G:-NAN(09A_Zaz):0:-1: ++%*2G:-NAN(09A_Zaz):0:-1: ++%2G:-NAN():0:-1: ++%*2G:-NAN():0:-1: ++%2G:NAN():0:-1: ++%*2G:NAN():0:-1: ++%2G:NAN(09A_Zaz):0:-1: ++%*2G:NAN(09A_Zaz):0:-1: ++# BZ12701 %2G:0X0P0:0:-1: ++# BZ12701 %*2G:0X0P0:0:-1: ++# BZ12701 %2G:0X0P+0:0:-1: ++# BZ12701 %*2G:0X0P+0:0:-1: ++# BZ12701 %2G:0X8P-129:0:-1: ++# BZ12701 %*2G:0X8P-129:0:-1: ++# BZ12701 %2G:0X2.345678P0123:0:-1: ++# BZ12701 %*2G:0X2.345678P0123:0:-1: ++# BZ12701 %2G:0X2.345678P+123:0:-1: ++# BZ12701 %*2G:0X2.345678P+123:0:-1: ++# BZ12701 %2G:0X7.FFFFF8P125:0:-1: ++# BZ12701 %*2G:0X7.FFFFF8P125:0:-1: ++# BZ12701 %2G:0XF.FFFFFP+124:0:-1: ++# BZ12701 %*2G:0XF.FFFFFP+124:0:-1: ++%2G:INFINITY:0:-1: ++%*2G:INFINITY:0:-1: ++%2G:+NAN():0:-1: ++%*2G:+NAN():0:-1: ++%2G:+NAN(09A_Zaz):0:-1: ++%*2G:+NAN(09A_Zaz):0:-1: ++%2G:+0X0P0:1:2:0x0: ++%*2G:+0X0P0:0:2: ++%2G:+0X0P+0:1:2:0x0: ++%*2G:+0X0P+0:0:2: ++%2G:+0X8P-129:1:2:0x0: ++%*2G:+0X8P-129:0:2: ++%2G:+0X2.345678P0123:1:2:0x0: ++%*2G:+0X2.345678P0123:0:2: ++%2G:+0X2.345678P+123:1:2:0x0: ++%*2G:+0X2.345678P+123:0:2: ++%2G:+0X7.FFFFF8P125:1:2:0x0: ++%*2G:+0X7.FFFFF8P125:0:2: ++%2G:+0XF.FFFFFP+124:1:2:0x0: ++%*2G:+0XF.FFFFFP+124:0:2: ++%2G:+INFINITY:0:-1: ++%*2G:+INFINITY:0:-1: ++%3G::0:-1: ++%*3G::0:-1: ++%3G:-INFINITY:0:-1: ++%*3G:-INFINITY:0:-1: ++# BZ12701 %3G:-0XF.FFFFFP+124:0:-1: ++# BZ12701 %*3G:-0XF.FFFFFP+124:0:-1: ++# BZ12701 %3G:-0X7.FFFFF8P125:0:-1: ++# BZ12701 %*3G:-0X7.FFFFF8P125:0:-1: ++# BZ12701 %3G:-0X2.345678P+123:0:-1: ++# BZ12701 %*3G:-0X2.345678P+123:0:-1: ++# BZ12701 %3G:-0X2.345678P0123:0:-1: ++# BZ12701 %*3G:-0X2.345678P0123:0:-1: ++# BZ12701 %3G:-0X8P-129:0:-1: ++# BZ12701 %*3G:-0X8P-129:0:-1: ++# BZ12701 %3G:-0X0P+0:0:-1: ++# BZ12701 %*3G:-0X0P+0:0:-1: ++# BZ12701 %3G:-0X0P0:0:-1: ++# BZ12701 %*3G:-0X0P0:0:-1: ++%3G:-NAN(09A_Zaz):0:-1: ++%*3G:-NAN(09A_Zaz):0:-1: ++%3G:-NAN():0:-1: ++%*3G:-NAN():0:-1: ++%3G:NAN():1:3:nan: ++%*3G:NAN():0:3: ++%3G:NAN(09A_Zaz):1:3:nan: ++%*3G:NAN(09A_Zaz):0:3: ++%3G:0X0P0:1:3:0x0: ++%*3G:0X0P0:0:3: ++%3G:0X0P+0:1:3:0x0: ++%*3G:0X0P+0:0:3: ++%3G:0X8P-129:1:3:0x1p3: ++%*3G:0X8P-129:0:3: ++%3G:0X2.345678P0123:1:3:0x1p1: ++%*3G:0X2.345678P0123:0:3: ++%3G:0X2.345678P+123:1:3:0x1p1: ++%*3G:0X2.345678P+123:0:3: ++%3G:0X7.FFFFF8P125:1:3:0x1.cp2: ++%*3G:0X7.FFFFF8P125:0:3: ++%3G:0XF.FFFFFP+124:1:3:0x1.ep3: ++%*3G:0XF.FFFFFP+124:0:3: ++%3G:INFINITY:1:3:inf: ++%*3G:INFINITY:0:3: ++%3G:+NAN():0:-1: ++%*3G:+NAN():0:-1: ++%3G:+NAN(09A_Zaz):0:-1: ++%*3G:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3G:+0X0P0:0:-1: ++# BZ12701 %*3G:+0X0P0:0:-1: ++# BZ12701 %3G:+0X0P+0:0:-1: ++# BZ12701 %*3G:+0X0P+0:0:-1: ++# BZ12701 %3G:+0X8P-129:0:-1: ++# BZ12701 %*3G:+0X8P-129:0:-1: ++# BZ12701 %3G:+0X2.345678P0123:0:-1: ++# BZ12701 %*3G:+0X2.345678P0123:0:-1: ++# BZ12701 %3G:+0X2.345678P+123:0:-1: ++# BZ12701 %*3G:+0X2.345678P+123:0:-1: ++# BZ12701 %3G:+0X7.FFFFF8P125:0:-1: ++# BZ12701 %*3G:+0X7.FFFFF8P125:0:-1: ++# BZ12701 %3G:+0XF.FFFFFP+124:0:-1: ++# BZ12701 %*3G:+0XF.FFFFFP+124:0:-1: ++%3G:+INFINITY:0:-1: ++%*3G:+INFINITY:0:-1: ++%4G::0:-1: ++%*4G::0:-1: ++%4G:-INFINITY:1:4:-inf: ++%*4G:-INFINITY:0:4: ++%4G:-0XF.FFFFFP+124:1:4:-0x1.ep3: ++%*4G:-0XF.FFFFFP+124:0:4: ++%4G:-0X7.FFFFF8P125:1:4:-0x1.cp2: ++%*4G:-0X7.FFFFF8P125:0:4: ++%4G:-0X2.345678P+123:1:4:-0x1p1: ++%*4G:-0X2.345678P+123:0:4: ++%4G:-0X2.345678P0123:1:4:-0x1p1: ++%*4G:-0X2.345678P0123:0:4: ++%4G:-0X8P-129:1:4:-0x1p3: ++%*4G:-0X8P-129:0:4: ++%4G:-0X0P+0:1:4:-0x0: ++%*4G:-0X0P+0:0:4: ++%4G:-0X0P0:1:4:-0x0: ++%*4G:-0X0P0:0:4: ++%4G:-NAN(09A_Zaz):1:4:-nan: ++%*4G:-NAN(09A_Zaz):0:4: ++%4G:-NAN():1:4:-nan: ++%*4G:-NAN():0:4: ++%4G:NAN():0:-1: ++%*4G:NAN():0:-1: ++%4G:NAN(09A_Zaz):0:-1: ++%*4G:NAN(09A_Zaz):0:-1: ++# BZ12701 %4G:0X0P0:0:-1: ++# BZ12701 %*4G:0X0P0:0:-1: ++# BZ12701 %4G:0X0P+0:0:-1: ++# BZ12701 %*4G:0X0P+0:0:-1: ++# BZ12701 %4G:0X8P-129:0:-1: ++# BZ12701 %*4G:0X8P-129:0:-1: ++%4G:0X2.345678P0123:1:4:0x1p1: ++%*4G:0X2.345678P0123:0:4: ++%4G:0X2.345678P+123:1:4:0x1p1: ++%*4G:0X2.345678P+123:0:4: ++%4G:0X7.FFFFF8P125:1:4:0x1.cp2: ++%*4G:0X7.FFFFF8P125:0:4: ++%4G:0XF.FFFFFP+124:1:4:0x1.ep3: ++%*4G:0XF.FFFFFP+124:0:4: ++%4G:INFINITY:0:-1: ++%*4G:INFINITY:0:-1: ++%4G:+NAN():1:4:nan: ++%*4G:+NAN():0:4: ++%4G:+NAN(09A_Zaz):1:4:nan: ++%*4G:+NAN(09A_Zaz):0:4: ++%4G:+0X0P0:1:4:0x0: ++%*4G:+0X0P0:0:4: ++%4G:+0X0P+0:1:4:0x0: ++%*4G:+0X0P+0:0:4: ++%4G:+0X8P-129:1:4:0x1p3: ++%*4G:+0X8P-129:0:4: ++%4G:+0X2.345678P0123:1:4:0x1p1: ++%*4G:+0X2.345678P0123:0:4: ++%4G:+0X2.345678P+123:1:4:0x1p1: ++%*4G:+0X2.345678P+123:0:4: ++%4G:+0X7.FFFFF8P125:1:4:0x1.cp2: ++%*4G:+0X7.FFFFF8P125:0:4: ++%4G:+0XF.FFFFFP+124:1:4:0x1.ep3: ++%*4G:+0XF.FFFFFP+124:0:4: ++%4G:+INFINITY:1:4:inf: ++%*4G:+INFINITY:0:4: ++%5G::0:-1: ++%*5G::0:-1: ++%5G:-INFINITY:0:-1: ++%*5G:-INFINITY:0:-1: ++%5G:-0XF.FFFFFP+124:1:5:-0x1.ep3: ++%*5G:-0XF.FFFFFP+124:0:5: ++%5G:-0X7.FFFFF8P125:1:5:-0x1.cp2: ++%*5G:-0X7.FFFFF8P125:0:5: ++%5G:-0X2.345678P+123:1:5:-0x1p1: ++%*5G:-0X2.345678P+123:0:5: ++%5G:-0X2.345678P0123:1:5:-0x1p1: ++%*5G:-0X2.345678P0123:0:5: ++# BZ12701 %5G:-0X8P-129:0:-1: ++# BZ12701 %*5G:-0X8P-129:0:-1: ++# BZ12701 %5G:-0X0P+0:0:-1: ++# BZ12701 %*5G:-0X0P+0:0:-1: ++# BZ12701 %5G:-0X0P0:0:-1: ++# BZ12701 %*5G:-0X0P0:0:-1: ++%5G:-NAN(09A_Zaz):0:-1: ++%*5G:-NAN(09A_Zaz):0:-1: ++%5G:-NAN():0:-1: ++%*5G:-NAN():0:-1: ++%5G:NAN():1:5:nan: ++%*5G:NAN():0:5: ++%5G:NAN(09A_Zaz):0:-1: ++%*5G:NAN(09A_Zaz):0:-1: ++%5G:0X0P0:1:5:0x0: ++%*5G:0X0P0:0:5: ++# BZ12701 %5G:0X0P+0:0:-1: ++# BZ12701 %*5G:0X0P+0:0:-1: ++# BZ12701 %5G:0X8P-129:0:-1: ++# BZ12701 %*5G:0X8P-129:0:-1: ++%5G:0X2.345678P0123:1:5:0x1.18p1: ++%*5G:0X2.345678P0123:0:5: ++%5G:0X2.345678P+123:1:5:0x1.18p1: ++%*5G:0X2.345678P+123:0:5: ++%5G:0X7.FFFFF8P125:1:5:0x1.fcp2: ++%*5G:0X7.FFFFF8P125:0:5: ++%5G:0XF.FFFFFP+124:1:5:0x1.fep3: ++%*5G:0XF.FFFFFP+124:0:5: ++%5G:INFINITY:0:-1: ++%*5G:INFINITY:0:-1: ++%5G:+NAN():0:-1: ++%*5G:+NAN():0:-1: ++%5G:+NAN(09A_Zaz):0:-1: ++%*5G:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5G:+0X0P0:0:-1: ++# BZ12701 %*5G:+0X0P0:0:-1: ++# BZ12701 %5G:+0X0P+0:0:-1: ++# BZ12701 %*5G:+0X0P+0:0:-1: ++# BZ12701 %5G:+0X8P-129:0:-1: ++# BZ12701 %*5G:+0X8P-129:0:-1: ++%5G:+0X2.345678P0123:1:5:0x1p1: ++%*5G:+0X2.345678P0123:0:5: ++%5G:+0X2.345678P+123:1:5:0x1p1: ++%*5G:+0X2.345678P+123:0:5: ++%5G:+0X7.FFFFF8P125:1:5:0x1.cp2: ++%*5G:+0X7.FFFFF8P125:0:5: ++%5G:+0XF.FFFFFP+124:1:5:0x1.ep3: ++%*5G:+0XF.FFFFFP+124:0:5: ++%5G:+INFINITY:0:-1: ++%*5G:+INFINITY:0:-1: ++%6G::0:-1: ++%*6G::0:-1: ++%6G:-INFINITY:0:-1: ++%*6G:-INFINITY:0:-1: ++%6G:-0XF.FFFFFP+124:1:6:-0x1.fep3: ++%*6G:-0XF.FFFFFP+124:0:6: ++%6G:-0X7.FFFFF8P125:1:6:-0x1.fcp2: ++%*6G:-0X7.FFFFF8P125:0:6: ++%6G:-0X2.345678P+123:1:6:-0x1.18p1: ++%*6G:-0X2.345678P+123:0:6: ++%6G:-0X2.345678P0123:1:6:-0x1.18p1: ++%*6G:-0X2.345678P0123:0:6: ++# BZ12701 %6G:-0X8P-129:0:-1: ++# BZ12701 %*6G:-0X8P-129:0:-1: ++# BZ12701 %6G:-0X0P+0:0:-1: ++# BZ12701 %*6G:-0X0P+0:0:-1: ++%6G:-0X0P0:1:6:-0x0: ++%*6G:-0X0P0:0:6: ++%6G:-NAN(09A_Zaz):0:-1: ++%*6G:-NAN(09A_Zaz):0:-1: ++%6G:-NAN():1:6:-nan: ++%*6G:-NAN():0:6: ++%6G:NAN():1:5:nan: ++%*6G:NAN():0:5: ++%6G:NAN(09A_Zaz):0:-1: ++%*6G:NAN(09A_Zaz):0:-1: ++%6G:0X0P0:1:5:0x0: ++%*6G:0X0P0:0:5: ++%6G:0X0P+0:1:6:0x0: ++%*6G:0X0P+0:0:6: ++%6G:0X8P-129:1:6:0x1p2: ++%*6G:0X8P-129:0:6: ++%6G:0X2.345678P0123:1:6:0x1.1ap1: ++%*6G:0X2.345678P0123:0:6: ++%6G:0X2.345678P+123:1:6:0x1.1ap1: ++%*6G:0X2.345678P+123:0:6: ++%6G:0X7.FFFFF8P125:1:6:0x1.ffcp2: ++%*6G:0X7.FFFFF8P125:0:6: ++%6G:0XF.FFFFFP+124:1:6:0x1.ffep3: ++%*6G:0XF.FFFFFP+124:0:6: ++%6G:INFINITY:0:-1: ++%*6G:INFINITY:0:-1: ++%6G:+NAN():1:6:nan: ++%*6G:+NAN():0:6: ++%6G:+NAN(09A_Zaz):0:-1: ++%*6G:+NAN(09A_Zaz):0:-1: ++%6G:+0X0P0:1:6:0x0: ++%*6G:+0X0P0:0:6: ++# BZ12701 %6G:+0X0P+0:0:-1: ++# BZ12701 %*6G:+0X0P+0:0:-1: ++# BZ12701 %6G:+0X8P-129:0:-1: ++# BZ12701 %*6G:+0X8P-129:0:-1: ++%6G:+0X2.345678P0123:1:6:0x1.18p1: ++%*6G:+0X2.345678P0123:0:6: ++%6G:+0X2.345678P+123:1:6:0x1.18p1: ++%*6G:+0X2.345678P+123:0:6: ++%6G:+0X7.FFFFF8P125:1:6:0x1.fcp2: ++%*6G:+0X7.FFFFF8P125:0:6: ++%6G:+0XF.FFFFFP+124:1:6:0x1.fep3: ++%*6G:+0XF.FFFFFP+124:0:6: ++%6G:+INFINITY:0:-1: ++%*6G:+INFINITY:0:-1: ++%12G::0:-1: ++%*12G::0:-1: ++%12G:-INFINITY:1:9:-inf: ++%*12G:-INFINITY:0:9: ++# BZ12701 %12G:-0XF.FFFFFP+124:0:-1: ++# BZ12701 %*12G:-0XF.FFFFFP+124:0:-1: ++# BZ12701 %12G:-0X7.FFFFF8P125:0:-1: ++# BZ12701 %*12G:-0X7.FFFFF8P125:0:-1: ++# BZ12701 %12G:-0X2.345678P+123:0:-1: ++# BZ12701 %*12G:-0X2.345678P+123:0:-1: ++# BZ12701 %12G:-0X2.345678P0123:0:-1: ++# BZ12701 %*12G:-0X2.345678P0123:0:-1: ++%12G:-0X8P-129:1:9:-0x1p-126: ++%*12G:-0X8P-129:0:9: ++%12G:-0X0P+0:1:7:-0x0: ++%*12G:-0X0P+0:0:7: ++%12G:-0X0P0:1:6:-0x0: ++%*12G:-0X0P0:0:6: ++%12G:-NAN(09A_Zaz):0:-1: ++%*12G:-NAN(09A_Zaz):0:-1: ++%12G:-NAN():1:6:-nan: ++%*12G:-NAN():0:6: ++%12G:NAN():1:5:nan: ++%*12G:NAN():0:5: ++%12G:NAN(09A_Zaz):1:12:nan: ++%*12G:NAN(09A_Zaz):0:12: ++%12G:0X0P0:1:5:0x0: ++%*12G:0X0P0:0:5: ++%12G:0X0P+0:1:6:0x0: ++%*12G:0X0P+0:0:6: ++%12G:0X8P-129:1:8:0x1p-126: ++%*12G:0X8P-129:0:8: ++%12G:0X2.345678P0123:1:12:0x1.1a2b3cp1: ++%*12G:0X2.345678P0123:0:12: ++# BZ12701 %12G:0X2.345678P+123:0:-1: ++# BZ12701 %*12G:0X2.345678P+123:0:-1: ++%12G:0X7.FFFFF8P125:1:12:0x1.fffffep3: ++%*12G:0X7.FFFFF8P125:0:12: ++%12G:0XF.FFFFFP+124:1:12:0x1.fffffep4: ++%*12G:0XF.FFFFFP+124:0:12: ++%12G:INFINITY:1:8:inf: ++%*12G:INFINITY:0:8: ++%12G:+NAN():1:6:nan: ++%*12G:+NAN():0:6: ++%12G:+NAN(09A_Zaz):0:-1: ++%*12G:+NAN(09A_Zaz):0:-1: ++%12G:+0X0P0:1:6:0x0: ++%*12G:+0X0P0:0:6: ++%12G:+0X0P+0:1:7:0x0: ++%*12G:+0X0P+0:0:7: ++%12G:+0X8P-129:1:9:0x1p-126: ++%*12G:+0X8P-129:0:9: ++# BZ12701 %12G:+0X2.345678P0123:0:-1: ++# BZ12701 %*12G:+0X2.345678P0123:0:-1: ++# BZ12701 %12G:+0X2.345678P+123:0:-1: ++# BZ12701 %*12G:+0X2.345678P+123:0:-1: ++# BZ12701 %12G:+0X7.FFFFF8P125:0:-1: ++# BZ12701 %*12G:+0X7.FFFFF8P125:0:-1: ++# BZ12701 %12G:+0XF.FFFFFP+124:0:-1: ++# BZ12701 %*12G:+0XF.FFFFFP+124:0:-1: ++%12G:+INFINITY:1:9:inf: ++%*12G:+INFINITY:0:9: ++%18G::0:-1: ++%*18G::0:-1: ++%18G:-INFINITY:1:9:-inf: ++%*18G:-INFINITY:0:9: ++%18G:-0XF.FFFFFP+124:1:15:-0x1.fffffep127: ++%*18G:-0XF.FFFFFP+124:0:15: ++%18G:-0X7.FFFFF8P125:1:15:-0x1.fffffep127: ++%*18G:-0X7.FFFFF8P125:0:15: ++%18G:-0X2.345678P+123:1:16:-0x1.1a2b3cp124: ++%*18G:-0X2.345678P+123:0:16: ++%18G:-0X2.345678P0123:1:16:-0x1.1a2b3cp124: ++%*18G:-0X2.345678P0123:0:16: ++%18G:-0X8P-129:1:9:-0x1p-126: ++%*18G:-0X8P-129:0:9: ++%18G:-0X0P+0:1:7:-0x0: ++%*18G:-0X0P+0:0:7: ++%18G:-0X0P0:1:6:-0x0: ++%*18G:-0X0P0:0:6: ++%18G:-NAN(09A_Zaz):1:13:-nan: ++%*18G:-NAN(09A_Zaz):0:13: ++%18G:-NAN():1:6:-nan: ++%*18G:-NAN():0:6: ++%18G:NAN():1:5:nan: ++%*18G:NAN():0:5: ++%18G:NAN(09A_Zaz):1:12:nan: ++%*18G:NAN(09A_Zaz):0:12: ++%18G:0X0P0:1:5:0x0: ++%*18G:0X0P0:0:5: ++%18G:0X0P+0:1:6:0x0: ++%*18G:0X0P+0:0:6: ++%18G:0X8P-129:1:8:0x1p-126: ++%*18G:0X8P-129:0:8: ++%18G:0X2.345678P0123:1:15:0x1.1a2b3cp124: ++%*18G:0X2.345678P0123:0:15: ++%18G:0X2.345678P+123:1:15:0x1.1a2b3cp124: ++%*18G:0X2.345678P+123:0:15: ++%18G:0X7.FFFFF8P125:1:14:0x1.fffffep127: ++%*18G:0X7.FFFFF8P125:0:14: ++%18G:0XF.FFFFFP+124:1:14:0x1.fffffep127: ++%*18G:0XF.FFFFFP+124:0:14: ++%18G:INFINITY:1:8:inf: ++%*18G:INFINITY:0:8: ++%18G:+NAN():1:6:nan: ++%*18G:+NAN():0:6: ++%18G:+NAN(09A_Zaz):1:13:nan: ++%*18G:+NAN(09A_Zaz):0:13: ++%18G:+0X0P0:1:6:0x0: ++%*18G:+0X0P0:0:6: ++%18G:+0X0P+0:1:7:0x0: ++%*18G:+0X0P+0:0:7: ++%18G:+0X8P-129:1:9:0x1p-126: ++%*18G:+0X8P-129:0:9: ++%18G:+0X2.345678P0123:1:16:0x1.1a2b3cp124: ++%*18G:+0X2.345678P0123:0:16: ++%18G:+0X2.345678P+123:1:16:0x1.1a2b3cp124: ++%*18G:+0X2.345678P+123:0:16: ++%18G:+0X7.FFFFF8P125:1:15:0x1.fffffep127: ++%*18G:+0X7.FFFFF8P125:0:15: ++%18G:+0XF.FFFFFP+124:1:15:0x1.fffffep127: ++%*18G:+0XF.FFFFFP+124:0:15: ++%18G:+INFINITY:1:9:inf: ++%*18G:+INFINITY:0:9: ++%5G: :0:-1: ++%*5G: :0:-1: ++%5G: -INFINITY:0:-1: ++%*5G: -INFINITY:0:-1: ++%5G: -0XF.FFFFFP+124:1:6:-0x1.ep3: ++%*5G: -0XF.FFFFFP+124:0:6: ++%5G: -0X7.FFFFF8P125:1:6:-0x1.cp2: ++%*5G: -0X7.FFFFF8P125:0:6: ++%5G: -0X2.345678P+123:1:6:-0x1p1: ++%*5G: -0X2.345678P+123:0:6: ++%5G: -0X2.345678P0123:1:6:-0x1p1: ++%*5G: -0X2.345678P0123:0:6: ++# BZ12701 %5G: -0X8P-129:0:-1: ++# BZ12701 %*5G: -0X8P-129:0:-1: ++# BZ12701 %5G: -0X0P+0:0:-1: ++# BZ12701 %*5G: -0X0P+0:0:-1: ++# BZ12701 %5G: -0X0P0:0:-1: ++# BZ12701 %*5G: -0X0P0:0:-1: ++%5G: -NAN(09A_Zaz):0:-1: ++%*5G: -NAN(09A_Zaz):0:-1: ++%5G: -NAN():0:-1: ++%*5G: -NAN():0:-1: ++%5G: NAN():1:6:nan: ++%*5G: NAN():0:6: ++%5G: NAN(09A_Zaz):0:-1: ++%*5G: NAN(09A_Zaz):0:-1: ++%5G: 0X0P0:1:6:0x0: ++%*5G: 0X0P0:0:6: ++# BZ12701 %5G: 0X0P+0:0:-1: ++# BZ12701 %*5G: 0X0P+0:0:-1: ++# BZ12701 %5G: 0X8P-129:0:-1: ++# BZ12701 %*5G: 0X8P-129:0:-1: ++%5G: 0X2.345678P0123:1:6:0x1.18p1: ++%*5G: 0X2.345678P0123:0:6: ++%5G: 0X2.345678P+123:1:6:0x1.18p1: ++%*5G: 0X2.345678P+123:0:6: ++%5G: 0X7.FFFFF8P125:1:6:0x1.fcp2: ++%*5G: 0X7.FFFFF8P125:0:6: ++%5G: 0XF.FFFFFP+124:1:6:0x1.fep3: ++%*5G: 0XF.FFFFFP+124:0:6: ++%5G: INFINITY:0:-1: ++%*5G: INFINITY:0:-1: ++%5G: +NAN():0:-1: ++%*5G: +NAN():0:-1: ++%5G: +NAN(09A_Zaz):0:-1: ++%*5G: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5G: +0X0P0:0:-1: ++# BZ12701 %*5G: +0X0P0:0:-1: ++# BZ12701 %5G: +0X0P+0:0:-1: ++# BZ12701 %*5G: +0X0P+0:0:-1: ++# BZ12701 %5G: +0X8P-129:0:-1: ++# BZ12701 %*5G: +0X8P-129:0:-1: ++%5G: +0X2.345678P0123:1:6:0x1p1: ++%*5G: +0X2.345678P0123:0:6: ++%5G: +0X2.345678P+123:1:6:0x1p1: ++%*5G: +0X2.345678P+123:0:6: ++%5G: +0X7.FFFFF8P125:1:6:0x1.cp2: ++%*5G: +0X7.FFFFF8P125:0:6: ++%5G: +0XF.FFFFFP+124:1:6:0x1.ep3: ++%*5G: +0XF.FFFFFP+124:0:6: ++%5G: +INFINITY:0:-1: ++%*5G: +INFINITY:0:-1: ++%18G: :0:-1: ++%*18G: :0:-1: ++%18G: -INFINITY:1:10:-inf: ++%*18G: -INFINITY:0:10: ++%18G: -0XF.FFFFFP+124:1:16:-0x1.fffffep127: ++%*18G: -0XF.FFFFFP+124:0:16: ++%18G: -0X7.FFFFF8P125:1:16:-0x1.fffffep127: ++%*18G: -0X7.FFFFF8P125:0:16: ++%18G: -0X2.345678P+123:1:17:-0x1.1a2b3cp124: ++%*18G: -0X2.345678P+123:0:17: ++%18G: -0X2.345678P0123:1:17:-0x1.1a2b3cp124: ++%*18G: -0X2.345678P0123:0:17: ++%18G: -0X8P-129:1:10:-0x1p-126: ++%*18G: -0X8P-129:0:10: ++%18G: -0X0P+0:1:8:-0x0: ++%*18G: -0X0P+0:0:8: ++%18G: -0X0P0:1:7:-0x0: ++%*18G: -0X0P0:0:7: ++%18G: -NAN(09A_Zaz):1:14:-nan: ++%*18G: -NAN(09A_Zaz):0:14: ++%18G: -NAN():1:7:-nan: ++%*18G: -NAN():0:7: ++%18G: NAN():1:6:nan: ++%*18G: NAN():0:6: ++%18G: NAN(09A_Zaz):1:13:nan: ++%*18G: NAN(09A_Zaz):0:13: ++%18G: 0X0P0:1:6:0x0: ++%*18G: 0X0P0:0:6: ++%18G: 0X0P+0:1:7:0x0: ++%*18G: 0X0P+0:0:7: ++%18G: 0X8P-129:1:9:0x1p-126: ++%*18G: 0X8P-129:0:9: ++%18G: 0X2.345678P0123:1:16:0x1.1a2b3cp124: ++%*18G: 0X2.345678P0123:0:16: ++%18G: 0X2.345678P+123:1:16:0x1.1a2b3cp124: ++%*18G: 0X2.345678P+123:0:16: ++%18G: 0X7.FFFFF8P125:1:15:0x1.fffffep127: ++%*18G: 0X7.FFFFF8P125:0:15: ++%18G: 0XF.FFFFFP+124:1:15:0x1.fffffep127: ++%*18G: 0XF.FFFFFP+124:0:15: ++%18G: INFINITY:1:9:inf: ++%*18G: INFINITY:0:9: ++%18G: +NAN():1:7:nan: ++%*18G: +NAN():0:7: ++%18G: +NAN(09A_Zaz):1:14:nan: ++%*18G: +NAN(09A_Zaz):0:14: ++%18G: +0X0P0:1:7:0x0: ++%*18G: +0X0P0:0:7: ++%18G: +0X0P+0:1:8:0x0: ++%*18G: +0X0P+0:0:8: ++%18G: +0X8P-129:1:10:0x1p-126: ++%*18G: +0X8P-129:0:10: ++%18G: +0X2.345678P0123:1:17:0x1.1a2b3cp124: ++%*18G: +0X2.345678P0123:0:17: ++%18G: +0X2.345678P+123:1:17:0x1.1a2b3cp124: ++%*18G: +0X2.345678P+123:0:17: ++%18G: +0X7.FFFFF8P125:1:16:0x1.fffffep127: ++%*18G: +0X7.FFFFF8P125:0:16: ++%18G: +0XF.FFFFFP+124:1:16:0x1.fffffep127: ++%*18G: +0XF.FFFFFP+124:0:16: ++%18G: +INFINITY:1:10:inf: ++%*18G: +INFINITY:0:10: diff --git a/SOURCES/glibc-RHEL-46726-5.patch b/SOURCES/glibc-RHEL-46726-5.patch new file mode 100644 index 0000000..f0899bf --- /dev/null +++ b/SOURCES/glibc-RHEL-46726-5.patch @@ -0,0 +1,5035 @@ +commit 0b311614395586608b5433dc8151e098d1906446 +Author: Maciej W. Rozycki +Date: Tue Mar 25 09:40:20 2025 +0000 + + stdio-common: Add scanf double data for IEEE 754 binary64 format + + Add Makefile infrastructure and `double' real input data for targets + using the IEEE 754 binary64 format. + + Keep input data disabled and referring to BZ #12701 for entries that are + are currently incorrectly accepted as valid data, such as '0e', '0e+', + '0x', '0x8p', '0x0p-', etc. + + Reviewed-by: Joseph Myers + +diff --git a/sysdeps/ieee754/dbl-64/Makefile b/sysdeps/ieee754/dbl-64/Makefile +index 78530b5966017d03..766bef4a35d01d3d 100644 +--- a/sysdeps/ieee754/dbl-64/Makefile ++++ b/sysdeps/ieee754/dbl-64/Makefile +@@ -3,3 +3,7 @@ ifeq ($(subdir),math) + CFLAGS-branred.c += $(config-cflags-nofma) + CFLAGS-e_sqrt.c += $(config-cflags-nofma) + endif ++ ++ifeq ($(subdir),stdio-common) ++fmt-xscanf-real-convs += double ++endif +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input +new file mode 100644 +index 0000000000000000..9d50b08b0b7aed3a +--- /dev/null ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input +@@ -0,0 +1,682 @@ ++%la::0:-1: ++%*la::0:-1: ++%la:-infinity:1:9:-inf: ++%*la:-infinity:0:9: ++%la:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023: ++%*la:-0xf.ffffffffffff8p+1020:0:24: ++%la:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023: ++%*la:-0x7.ffffffffffffcp1021:0:23: ++%la:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*la:-0x2.3456789abcdfep+123:0:23: ++%la:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*la:-0x2.3456789abcdfep0123:0:23: ++%la:-0x8p-1025:1:10:-0x1p-1022: ++%*la:-0x8p-1025:0:10: ++%la:-0x0p+0:1:7:-0x0: ++%*la:-0x0p+0:0:7: ++%la:-0x0p0:1:6:-0x0: ++%*la:-0x0p0:0:6: ++%la:-nan(09A_Zaz):1:13:-nan: ++%*la:-nan(09A_Zaz):0:13: ++%la:-nan():1:6:-nan: ++%*la:-nan():0:6: ++%la:nan():1:5:nan: ++%*la:nan():0:5: ++%la:nan(09A_Zaz):1:12:nan: ++%*la:nan(09A_Zaz):0:12: ++%la:0x0p0:1:5:0x0: ++%*la:0x0p0:0:5: ++%la:0x0p+0:1:6:0x0: ++%*la:0x0p+0:0:6: ++%la:0x8p-1025:1:9:0x1p-1022: ++%*la:0x8p-1025:0:9: ++%la:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*la:0x2.3456789abcdfep0123:0:22: ++%la:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*la:0x2.3456789abcdfep+123:0:22: ++%la:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023: ++%*la:0x7.ffffffffffffcp1021:0:22: ++%la:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023: ++%*la:0xf.ffffffffffff8p+1020:0:23: ++%la:infinity:1:8:inf: ++%*la:infinity:0:8: ++%la:+nan():1:6:nan: ++%*la:+nan():0:6: ++%la:+nan(09A_Zaz):1:13:nan: ++%*la:+nan(09A_Zaz):0:13: ++%la:+0x0p0:1:6:0x0: ++%*la:+0x0p0:0:6: ++%la:+0x0p+0:1:7:0x0: ++%*la:+0x0p+0:0:7: ++%la:+0x8p-1025:1:10:0x1p-1022: ++%*la:+0x8p-1025:0:10: ++%la:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*la:+0x2.3456789abcdfep0123:0:23: ++%la:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*la:+0x2.3456789abcdfep+123:0:23: ++%la:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*la:+0x7.ffffffffffffcp1021:0:23: ++%la:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*la:+0xf.ffffffffffff8p+1020:0:24: ++%la:+infinity:1:9:inf: ++%*la:+infinity:0:9: ++%1la::0:-1: ++%*1la::0:-1: ++%1la:-infinity:0:-1: ++%*1la:-infinity:0:-1: ++%1la:-0xf.ffffffffffff8p+1020:0:-1: ++%*1la:-0xf.ffffffffffff8p+1020:0:-1: ++%1la:-0x7.ffffffffffffcp1021:0:-1: ++%*1la:-0x7.ffffffffffffcp1021:0:-1: ++%1la:-0x2.3456789abcdfep+123:0:-1: ++%*1la:-0x2.3456789abcdfep+123:0:-1: ++%1la:-0x2.3456789abcdfep0123:0:-1: ++%*1la:-0x2.3456789abcdfep0123:0:-1: ++%1la:-0x8p-1025:0:-1: ++%*1la:-0x8p-1025:0:-1: ++%1la:-0x0p+0:0:-1: ++%*1la:-0x0p+0:0:-1: ++%1la:-0x0p0:0:-1: ++%*1la:-0x0p0:0:-1: ++%1la:-nan(09A_Zaz):0:-1: ++%*1la:-nan(09A_Zaz):0:-1: ++%1la:-nan():0:-1: ++%*1la:-nan():0:-1: ++%1la:nan():0:-1: ++%*1la:nan():0:-1: ++%1la:nan(09A_Zaz):0:-1: ++%*1la:nan(09A_Zaz):0:-1: ++%1la:0x0p0:1:1:0x0: ++%*1la:0x0p0:0:1: ++%1la:0x0p+0:1:1:0x0: ++%*1la:0x0p+0:0:1: ++%1la:0x8p-1025:1:1:0x0: ++%*1la:0x8p-1025:0:1: ++%1la:0x2.3456789abcdfep0123:1:1:0x0: ++%*1la:0x2.3456789abcdfep0123:0:1: ++%1la:0x2.3456789abcdfep+123:1:1:0x0: ++%*1la:0x2.3456789abcdfep+123:0:1: ++%1la:0x7.ffffffffffffcp1021:1:1:0x0: ++%*1la:0x7.ffffffffffffcp1021:0:1: ++%1la:0xf.ffffffffffff8p+1020:1:1:0x0: ++%*1la:0xf.ffffffffffff8p+1020:0:1: ++%1la:infinity:0:-1: ++%*1la:infinity:0:-1: ++%1la:+nan():0:-1: ++%*1la:+nan():0:-1: ++%1la:+nan(09A_Zaz):0:-1: ++%*1la:+nan(09A_Zaz):0:-1: ++%1la:+0x0p0:0:-1: ++%*1la:+0x0p0:0:-1: ++%1la:+0x0p+0:0:-1: ++%*1la:+0x0p+0:0:-1: ++%1la:+0x8p-1025:0:-1: ++%*1la:+0x8p-1025:0:-1: ++%1la:+0x2.3456789abcdfep0123:0:-1: ++%*1la:+0x2.3456789abcdfep0123:0:-1: ++%1la:+0x2.3456789abcdfep+123:0:-1: ++%*1la:+0x2.3456789abcdfep+123:0:-1: ++%1la:+0x7.ffffffffffffcp1021:0:-1: ++%*1la:+0x7.ffffffffffffcp1021:0:-1: ++%1la:+0xf.ffffffffffff8p+1020:0:-1: ++%*1la:+0xf.ffffffffffff8p+1020:0:-1: ++%1la:+infinity:0:-1: ++%*1la:+infinity:0:-1: ++%2la::0:-1: ++%*2la::0:-1: ++%2la:-infinity:0:-1: ++%*2la:-infinity:0:-1: ++%2la:-0xf.ffffffffffff8p+1020:1:2:-0x0: ++%*2la:-0xf.ffffffffffff8p+1020:0:2: ++%2la:-0x7.ffffffffffffcp1021:1:2:-0x0: ++%*2la:-0x7.ffffffffffffcp1021:0:2: ++%2la:-0x2.3456789abcdfep+123:1:2:-0x0: ++%*2la:-0x2.3456789abcdfep+123:0:2: ++%2la:-0x2.3456789abcdfep0123:1:2:-0x0: ++%*2la:-0x2.3456789abcdfep0123:0:2: ++%2la:-0x8p-1025:1:2:-0x0: ++%*2la:-0x8p-1025:0:2: ++%2la:-0x0p+0:1:2:-0x0: ++%*2la:-0x0p+0:0:2: ++%2la:-0x0p0:1:2:-0x0: ++%*2la:-0x0p0:0:2: ++%2la:-nan(09A_Zaz):0:-1: ++%*2la:-nan(09A_Zaz):0:-1: ++%2la:-nan():0:-1: ++%*2la:-nan():0:-1: ++%2la:nan():0:-1: ++%*2la:nan():0:-1: ++%2la:nan(09A_Zaz):0:-1: ++%*2la:nan(09A_Zaz):0:-1: ++# BZ12701 %2la:0x0p0:0:-1: ++# BZ12701 %*2la:0x0p0:0:-1: ++# BZ12701 %2la:0x0p+0:0:-1: ++# BZ12701 %*2la:0x0p+0:0:-1: ++# BZ12701 %2la:0x8p-1025:0:-1: ++# BZ12701 %*2la:0x8p-1025:0:-1: ++# BZ12701 %2la:0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*2la:0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %2la:0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*2la:0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %2la:0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*2la:0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %2la:0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*2la:0xf.ffffffffffff8p+1020:0:-1: ++%2la:infinity:0:-1: ++%*2la:infinity:0:-1: ++%2la:+nan():0:-1: ++%*2la:+nan():0:-1: ++%2la:+nan(09A_Zaz):0:-1: ++%*2la:+nan(09A_Zaz):0:-1: ++%2la:+0x0p0:1:2:0x0: ++%*2la:+0x0p0:0:2: ++%2la:+0x0p+0:1:2:0x0: ++%*2la:+0x0p+0:0:2: ++%2la:+0x8p-1025:1:2:0x0: ++%*2la:+0x8p-1025:0:2: ++%2la:+0x2.3456789abcdfep0123:1:2:0x0: ++%*2la:+0x2.3456789abcdfep0123:0:2: ++%2la:+0x2.3456789abcdfep+123:1:2:0x0: ++%*2la:+0x2.3456789abcdfep+123:0:2: ++%2la:+0x7.ffffffffffffcp1021:1:2:0x0: ++%*2la:+0x7.ffffffffffffcp1021:0:2: ++%2la:+0xf.ffffffffffff8p+1020:1:2:0x0: ++%*2la:+0xf.ffffffffffff8p+1020:0:2: ++%2la:+infinity:0:-1: ++%*2la:+infinity:0:-1: ++%3la::0:-1: ++%*3la::0:-1: ++%3la:-infinity:0:-1: ++%*3la:-infinity:0:-1: ++# BZ12701 %3la:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*3la:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %3la:-0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*3la:-0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %3la:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*3la:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %3la:-0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*3la:-0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %3la:-0x8p-1025:0:-1: ++# BZ12701 %*3la:-0x8p-1025:0:-1: ++# BZ12701 %3la:-0x0p+0:0:-1: ++# BZ12701 %*3la:-0x0p+0:0:-1: ++# BZ12701 %3la:-0x0p0:0:-1: ++# BZ12701 %*3la:-0x0p0:0:-1: ++%3la:-nan(09A_Zaz):0:-1: ++%*3la:-nan(09A_Zaz):0:-1: ++%3la:-nan():0:-1: ++%*3la:-nan():0:-1: ++%3la:nan():1:3:nan: ++%*3la:nan():0:3: ++%3la:nan(09A_Zaz):1:3:nan: ++%*3la:nan(09A_Zaz):0:3: ++%3la:0x0p0:1:3:0x0: ++%*3la:0x0p0:0:3: ++%3la:0x0p+0:1:3:0x0: ++%*3la:0x0p+0:0:3: ++%3la:0x8p-1025:1:3:0x1p3: ++%*3la:0x8p-1025:0:3: ++%3la:0x2.3456789abcdfep0123:1:3:0x1p1: ++%*3la:0x2.3456789abcdfep0123:0:3: ++%3la:0x2.3456789abcdfep+123:1:3:0x1p1: ++%*3la:0x2.3456789abcdfep+123:0:3: ++%3la:0x7.ffffffffffffcp1021:1:3:0x1.cp2: ++%*3la:0x7.ffffffffffffcp1021:0:3: ++%3la:0xf.ffffffffffff8p+1020:1:3:0x1.ep3: ++%*3la:0xf.ffffffffffff8p+1020:0:3: ++%3la:infinity:1:3:inf: ++%*3la:infinity:0:3: ++%3la:+nan():0:-1: ++%*3la:+nan():0:-1: ++%3la:+nan(09A_Zaz):0:-1: ++%*3la:+nan(09A_Zaz):0:-1: ++# BZ12701 %3la:+0x0p0:0:-1: ++# BZ12701 %*3la:+0x0p0:0:-1: ++# BZ12701 %3la:+0x0p+0:0:-1: ++# BZ12701 %*3la:+0x0p+0:0:-1: ++# BZ12701 %3la:+0x8p-1025:0:-1: ++# BZ12701 %*3la:+0x8p-1025:0:-1: ++# BZ12701 %3la:+0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*3la:+0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %3la:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*3la:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %3la:+0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*3la:+0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %3la:+0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*3la:+0xf.ffffffffffff8p+1020:0:-1: ++%3la:+infinity:0:-1: ++%*3la:+infinity:0:-1: ++%4la::0:-1: ++%*4la::0:-1: ++%4la:-infinity:1:4:-inf: ++%*4la:-infinity:0:4: ++%4la:-0xf.ffffffffffff8p+1020:1:4:-0x1.ep3: ++%*4la:-0xf.ffffffffffff8p+1020:0:4: ++%4la:-0x7.ffffffffffffcp1021:1:4:-0x1.cp2: ++%*4la:-0x7.ffffffffffffcp1021:0:4: ++%4la:-0x2.3456789abcdfep+123:1:4:-0x1p1: ++%*4la:-0x2.3456789abcdfep+123:0:4: ++%4la:-0x2.3456789abcdfep0123:1:4:-0x1p1: ++%*4la:-0x2.3456789abcdfep0123:0:4: ++%4la:-0x8p-1025:1:4:-0x1p3: ++%*4la:-0x8p-1025:0:4: ++%4la:-0x0p+0:1:4:-0x0: ++%*4la:-0x0p+0:0:4: ++%4la:-0x0p0:1:4:-0x0: ++%*4la:-0x0p0:0:4: ++%4la:-nan(09A_Zaz):1:4:-nan: ++%*4la:-nan(09A_Zaz):0:4: ++%4la:-nan():1:4:-nan: ++%*4la:-nan():0:4: ++%4la:nan():0:-1: ++%*4la:nan():0:-1: ++%4la:nan(09A_Zaz):0:-1: ++%*4la:nan(09A_Zaz):0:-1: ++# BZ12701 %4la:0x0p0:0:-1: ++# BZ12701 %*4la:0x0p0:0:-1: ++# BZ12701 %4la:0x0p+0:0:-1: ++# BZ12701 %*4la:0x0p+0:0:-1: ++# BZ12701 %4la:0x8p-1025:0:-1: ++# BZ12701 %*4la:0x8p-1025:0:-1: ++%4la:0x2.3456789abcdfep0123:1:4:0x1p1: ++%*4la:0x2.3456789abcdfep0123:0:4: ++%4la:0x2.3456789abcdfep+123:1:4:0x1p1: ++%*4la:0x2.3456789abcdfep+123:0:4: ++%4la:0x7.ffffffffffffcp1021:1:4:0x1.cp2: ++%*4la:0x7.ffffffffffffcp1021:0:4: ++%4la:0xf.ffffffffffff8p+1020:1:4:0x1.ep3: ++%*4la:0xf.ffffffffffff8p+1020:0:4: ++%4la:infinity:0:-1: ++%*4la:infinity:0:-1: ++%4la:+nan():1:4:nan: ++%*4la:+nan():0:4: ++%4la:+nan(09A_Zaz):1:4:nan: ++%*4la:+nan(09A_Zaz):0:4: ++%4la:+0x0p0:1:4:0x0: ++%*4la:+0x0p0:0:4: ++%4la:+0x0p+0:1:4:0x0: ++%*4la:+0x0p+0:0:4: ++%4la:+0x8p-1025:1:4:0x1p3: ++%*4la:+0x8p-1025:0:4: ++%4la:+0x2.3456789abcdfep0123:1:4:0x1p1: ++%*4la:+0x2.3456789abcdfep0123:0:4: ++%4la:+0x2.3456789abcdfep+123:1:4:0x1p1: ++%*4la:+0x2.3456789abcdfep+123:0:4: ++%4la:+0x7.ffffffffffffcp1021:1:4:0x1.cp2: ++%*4la:+0x7.ffffffffffffcp1021:0:4: ++%4la:+0xf.ffffffffffff8p+1020:1:4:0x1.ep3: ++%*4la:+0xf.ffffffffffff8p+1020:0:4: ++%4la:+infinity:1:4:inf: ++%*4la:+infinity:0:4: ++%5la::0:-1: ++%*5la::0:-1: ++%5la:-infinity:0:-1: ++%*5la:-infinity:0:-1: ++%5la:-0xf.ffffffffffff8p+1020:1:5:-0x1.ep3: ++%*5la:-0xf.ffffffffffff8p+1020:0:5: ++%5la:-0x7.ffffffffffffcp1021:1:5:-0x1.cp2: ++%*5la:-0x7.ffffffffffffcp1021:0:5: ++%5la:-0x2.3456789abcdfep+123:1:5:-0x1p1: ++%*5la:-0x2.3456789abcdfep+123:0:5: ++%5la:-0x2.3456789abcdfep0123:1:5:-0x1p1: ++%*5la:-0x2.3456789abcdfep0123:0:5: ++# BZ12701 %5la:-0x8p-1025:0:-1: ++# BZ12701 %*5la:-0x8p-1025:0:-1: ++# BZ12701 %5la:-0x0p+0:0:-1: ++# BZ12701 %*5la:-0x0p+0:0:-1: ++# BZ12701 %5la:-0x0p0:0:-1: ++# BZ12701 %*5la:-0x0p0:0:-1: ++%5la:-nan(09A_Zaz):0:-1: ++%*5la:-nan(09A_Zaz):0:-1: ++%5la:-nan():0:-1: ++%*5la:-nan():0:-1: ++%5la:nan():1:5:nan: ++%*5la:nan():0:5: ++%5la:nan(09A_Zaz):0:-1: ++%*5la:nan(09A_Zaz):0:-1: ++%5la:0x0p0:1:5:0x0: ++%*5la:0x0p0:0:5: ++# BZ12701 %5la:0x0p+0:0:-1: ++# BZ12701 %*5la:0x0p+0:0:-1: ++# BZ12701 %5la:0x8p-1025:0:-1: ++# BZ12701 %*5la:0x8p-1025:0:-1: ++%5la:0x2.3456789abcdfep0123:1:5:0x1.18p1: ++%*5la:0x2.3456789abcdfep0123:0:5: ++%5la:0x2.3456789abcdfep+123:1:5:0x1.18p1: ++%*5la:0x2.3456789abcdfep+123:0:5: ++%5la:0x7.ffffffffffffcp1021:1:5:0x1.fcp2: ++%*5la:0x7.ffffffffffffcp1021:0:5: ++%5la:0xf.ffffffffffff8p+1020:1:5:0x1.fep3: ++%*5la:0xf.ffffffffffff8p+1020:0:5: ++%5la:infinity:0:-1: ++%*5la:infinity:0:-1: ++%5la:+nan():0:-1: ++%*5la:+nan():0:-1: ++%5la:+nan(09A_Zaz):0:-1: ++%*5la:+nan(09A_Zaz):0:-1: ++# BZ12701 %5la:+0x0p0:0:-1: ++# BZ12701 %*5la:+0x0p0:0:-1: ++# BZ12701 %5la:+0x0p+0:0:-1: ++# BZ12701 %*5la:+0x0p+0:0:-1: ++# BZ12701 %5la:+0x8p-1025:0:-1: ++# BZ12701 %*5la:+0x8p-1025:0:-1: ++%5la:+0x2.3456789abcdfep0123:1:5:0x1p1: ++%*5la:+0x2.3456789abcdfep0123:0:5: ++%5la:+0x2.3456789abcdfep+123:1:5:0x1p1: ++%*5la:+0x2.3456789abcdfep+123:0:5: ++%5la:+0x7.ffffffffffffcp1021:1:5:0x1.cp2: ++%*5la:+0x7.ffffffffffffcp1021:0:5: ++%5la:+0xf.ffffffffffff8p+1020:1:5:0x1.ep3: ++%*5la:+0xf.ffffffffffff8p+1020:0:5: ++%5la:+infinity:0:-1: ++%*5la:+infinity:0:-1: ++%6la::0:-1: ++%*6la::0:-1: ++%6la:-infinity:0:-1: ++%*6la:-infinity:0:-1: ++%6la:-0xf.ffffffffffff8p+1020:1:6:-0x1.fep3: ++%*6la:-0xf.ffffffffffff8p+1020:0:6: ++%6la:-0x7.ffffffffffffcp1021:1:6:-0x1.fcp2: ++%*6la:-0x7.ffffffffffffcp1021:0:6: ++%6la:-0x2.3456789abcdfep+123:1:6:-0x1.18p1: ++%*6la:-0x2.3456789abcdfep+123:0:6: ++%6la:-0x2.3456789abcdfep0123:1:6:-0x1.18p1: ++%*6la:-0x2.3456789abcdfep0123:0:6: ++# BZ12701 %6la:-0x8p-1025:0:-1: ++# BZ12701 %*6la:-0x8p-1025:0:-1: ++# BZ12701 %6la:-0x0p+0:0:-1: ++# BZ12701 %*6la:-0x0p+0:0:-1: ++%6la:-0x0p0:1:6:-0x0: ++%*6la:-0x0p0:0:6: ++%6la:-nan(09A_Zaz):0:-1: ++%*6la:-nan(09A_Zaz):0:-1: ++%6la:-nan():1:6:-nan: ++%*6la:-nan():0:6: ++%6la:nan():1:5:nan: ++%*6la:nan():0:5: ++%6la:nan(09A_Zaz):0:-1: ++%*6la:nan(09A_Zaz):0:-1: ++%6la:0x0p0:1:5:0x0: ++%*6la:0x0p0:0:5: ++%6la:0x0p+0:1:6:0x0: ++%*6la:0x0p+0:0:6: ++%6la:0x8p-1025:1:6:0x1p2: ++%*6la:0x8p-1025:0:6: ++%6la:0x2.3456789abcdfep0123:1:6:0x1.1ap1: ++%*6la:0x2.3456789abcdfep0123:0:6: ++%6la:0x2.3456789abcdfep+123:1:6:0x1.1ap1: ++%*6la:0x2.3456789abcdfep+123:0:6: ++%6la:0x7.ffffffffffffcp1021:1:6:0x1.ffcp2: ++%*6la:0x7.ffffffffffffcp1021:0:6: ++%6la:0xf.ffffffffffff8p+1020:1:6:0x1.ffep3: ++%*6la:0xf.ffffffffffff8p+1020:0:6: ++%6la:infinity:0:-1: ++%*6la:infinity:0:-1: ++%6la:+nan():1:6:nan: ++%*6la:+nan():0:6: ++%6la:+nan(09A_Zaz):0:-1: ++%*6la:+nan(09A_Zaz):0:-1: ++%6la:+0x0p0:1:6:0x0: ++%*6la:+0x0p0:0:6: ++# BZ12701 %6la:+0x0p+0:0:-1: ++# BZ12701 %*6la:+0x0p+0:0:-1: ++# BZ12701 %6la:+0x8p-1025:0:-1: ++# BZ12701 %*6la:+0x8p-1025:0:-1: ++%6la:+0x2.3456789abcdfep0123:1:6:0x1.18p1: ++%*6la:+0x2.3456789abcdfep0123:0:6: ++%6la:+0x2.3456789abcdfep+123:1:6:0x1.18p1: ++%*6la:+0x2.3456789abcdfep+123:0:6: ++%6la:+0x7.ffffffffffffcp1021:1:6:0x1.fcp2: ++%*6la:+0x7.ffffffffffffcp1021:0:6: ++%6la:+0xf.ffffffffffff8p+1020:1:6:0x1.fep3: ++%*6la:+0xf.ffffffffffff8p+1020:0:6: ++%6la:+infinity:0:-1: ++%*6la:+infinity:0:-1: ++%20la::0:-1: ++%*20la::0:-1: ++%20la:-infinity:1:9:-inf: ++%*20la:-infinity:0:9: ++# BZ12701 %20la:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*20la:-0xf.ffffffffffff8p+1020:0:-1: ++%20la:-0x7.ffffffffffffcp1021:1:20:-0x1.fffffffffffffp3: ++%*20la:-0x7.ffffffffffffcp1021:0:20: ++# BZ12701 %20la:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*20la:-0x2.3456789abcdfep+123:0:-1: ++%20la:-0x2.3456789abcdfep0123:1:20:-0x1.1a2b3c4d5e6ffp1: ++%*20la:-0x2.3456789abcdfep0123:0:20: ++%20la:-0x8p-1025:1:10:-0x1p-1022: ++%*20la:-0x8p-1025:0:10: ++%20la:-0x0p+0:1:7:-0x0: ++%*20la:-0x0p+0:0:7: ++%20la:-0x0p0:1:6:-0x0: ++%*20la:-0x0p0:0:6: ++%20la:-nan(09A_Zaz):1:13:-nan: ++%*20la:-nan(09A_Zaz):0:13: ++%20la:-nan():1:6:-nan: ++%*20la:-nan():0:6: ++%20la:nan():1:5:nan: ++%*20la:nan():0:5: ++%20la:nan(09A_Zaz):1:12:nan: ++%*20la:nan(09A_Zaz):0:12: ++%20la:0x0p0:1:5:0x0: ++%*20la:0x0p0:0:5: ++%20la:0x0p+0:1:6:0x0: ++%*20la:0x0p+0:0:6: ++%20la:0x8p-1025:1:9:0x1p-1022: ++%*20la:0x8p-1025:0:9: ++%20la:0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20la:0x2.3456789abcdfep0123:0:20: ++%20la:0x2.3456789abcdfep+123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20la:0x2.3456789abcdfep+123:0:20: ++%20la:0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp12: ++%*20la:0x7.ffffffffffffcp1021:0:20: ++%20la:0xf.ffffffffffff8p+1020:1:20:0x1.fffffffffffffp4: ++%*20la:0xf.ffffffffffff8p+1020:0:20: ++%20la:infinity:1:8:inf: ++%*20la:infinity:0:8: ++%20la:+nan():1:6:nan: ++%*20la:+nan():0:6: ++%20la:+nan(09A_Zaz):1:13:nan: ++%*20la:+nan(09A_Zaz):0:13: ++%20la:+0x0p0:1:6:0x0: ++%*20la:+0x0p0:0:6: ++%20la:+0x0p+0:1:7:0x0: ++%*20la:+0x0p+0:0:7: ++%20la:+0x8p-1025:1:10:0x1p-1022: ++%*20la:+0x8p-1025:0:10: ++%20la:+0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp1: ++%*20la:+0x2.3456789abcdfep0123:0:20: ++# BZ12701 %20la:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*20la:+0x2.3456789abcdfep+123:0:-1: ++%20la:+0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp3: ++%*20la:+0x7.ffffffffffffcp1021:0:20: ++# BZ12701 %20la:+0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*20la:+0xf.ffffffffffff8p+1020:0:-1: ++%20la:+infinity:1:9:inf: ++%*20la:+infinity:0:9: ++%32la::0:-1: ++%*32la::0:-1: ++%32la:-infinity:1:9:-inf: ++%*32la:-infinity:0:9: ++%32la:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023: ++%*32la:-0xf.ffffffffffff8p+1020:0:24: ++%32la:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023: ++%*32la:-0x7.ffffffffffffcp1021:0:23: ++%32la:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32la:-0x2.3456789abcdfep+123:0:23: ++%32la:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32la:-0x2.3456789abcdfep0123:0:23: ++%32la:-0x8p-1025:1:10:-0x1p-1022: ++%*32la:-0x8p-1025:0:10: ++%32la:-0x0p+0:1:7:-0x0: ++%*32la:-0x0p+0:0:7: ++%32la:-0x0p0:1:6:-0x0: ++%*32la:-0x0p0:0:6: ++%32la:-nan(09A_Zaz):1:13:-nan: ++%*32la:-nan(09A_Zaz):0:13: ++%32la:-nan():1:6:-nan: ++%*32la:-nan():0:6: ++%32la:nan():1:5:nan: ++%*32la:nan():0:5: ++%32la:nan(09A_Zaz):1:12:nan: ++%*32la:nan(09A_Zaz):0:12: ++%32la:0x0p0:1:5:0x0: ++%*32la:0x0p0:0:5: ++%32la:0x0p+0:1:6:0x0: ++%*32la:0x0p+0:0:6: ++%32la:0x8p-1025:1:9:0x1p-1022: ++%*32la:0x8p-1025:0:9: ++%32la:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32la:0x2.3456789abcdfep0123:0:22: ++%32la:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32la:0x2.3456789abcdfep+123:0:22: ++%32la:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023: ++%*32la:0x7.ffffffffffffcp1021:0:22: ++%32la:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023: ++%*32la:0xf.ffffffffffff8p+1020:0:23: ++%32la:infinity:1:8:inf: ++%*32la:infinity:0:8: ++%32la:+nan():1:6:nan: ++%*32la:+nan():0:6: ++%32la:+nan(09A_Zaz):1:13:nan: ++%*32la:+nan(09A_Zaz):0:13: ++%32la:+0x0p0:1:6:0x0: ++%*32la:+0x0p0:0:6: ++%32la:+0x0p+0:1:7:0x0: ++%*32la:+0x0p+0:0:7: ++%32la:+0x8p-1025:1:10:0x1p-1022: ++%*32la:+0x8p-1025:0:10: ++%32la:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32la:+0x2.3456789abcdfep0123:0:23: ++%32la:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32la:+0x2.3456789abcdfep+123:0:23: ++%32la:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*32la:+0x7.ffffffffffffcp1021:0:23: ++%32la:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*32la:+0xf.ffffffffffff8p+1020:0:24: ++%32la:+infinity:1:9:inf: ++%*32la:+infinity:0:9: ++%5la: :0:-1: ++%*5la: :0:-1: ++%5la: -infinity:0:-1: ++%*5la: -infinity:0:-1: ++%5la: -0xf.ffffffffffff8p+1020:1:6:-0x1.ep3: ++%*5la: -0xf.ffffffffffff8p+1020:0:6: ++%5la: -0x7.ffffffffffffcp1021:1:6:-0x1.cp2: ++%*5la: -0x7.ffffffffffffcp1021:0:6: ++%5la: -0x2.3456789abcdfep+123:1:6:-0x1p1: ++%*5la: -0x2.3456789abcdfep+123:0:6: ++%5la: -0x2.3456789abcdfep0123:1:6:-0x1p1: ++%*5la: -0x2.3456789abcdfep0123:0:6: ++# BZ12701 %5la: -0x8p-1025:0:-1: ++# BZ12701 %*5la: -0x8p-1025:0:-1: ++# BZ12701 %5la: -0x0p+0:0:-1: ++# BZ12701 %*5la: -0x0p+0:0:-1: ++# BZ12701 %5la: -0x0p0:0:-1: ++# BZ12701 %*5la: -0x0p0:0:-1: ++%5la: -nan(09A_Zaz):0:-1: ++%*5la: -nan(09A_Zaz):0:-1: ++%5la: -nan():0:-1: ++%*5la: -nan():0:-1: ++%5la: nan():1:6:nan: ++%*5la: nan():0:6: ++%5la: nan(09A_Zaz):0:-1: ++%*5la: nan(09A_Zaz):0:-1: ++%5la: 0x0p0:1:6:0x0: ++%*5la: 0x0p0:0:6: ++# BZ12701 %5la: 0x0p+0:0:-1: ++# BZ12701 %*5la: 0x0p+0:0:-1: ++# BZ12701 %5la: 0x8p-1025:0:-1: ++# BZ12701 %*5la: 0x8p-1025:0:-1: ++%5la: 0x2.3456789abcdfep0123:1:6:0x1.18p1: ++%*5la: 0x2.3456789abcdfep0123:0:6: ++%5la: 0x2.3456789abcdfep+123:1:6:0x1.18p1: ++%*5la: 0x2.3456789abcdfep+123:0:6: ++%5la: 0x7.ffffffffffffcp1021:1:6:0x1.fcp2: ++%*5la: 0x7.ffffffffffffcp1021:0:6: ++%5la: 0xf.ffffffffffff8p+1020:1:6:0x1.fep3: ++%*5la: 0xf.ffffffffffff8p+1020:0:6: ++%5la: infinity:0:-1: ++%*5la: infinity:0:-1: ++%5la: +nan():0:-1: ++%*5la: +nan():0:-1: ++%5la: +nan(09A_Zaz):0:-1: ++%*5la: +nan(09A_Zaz):0:-1: ++# BZ12701 %5la: +0x0p0:0:-1: ++# BZ12701 %*5la: +0x0p0:0:-1: ++# BZ12701 %5la: +0x0p+0:0:-1: ++# BZ12701 %*5la: +0x0p+0:0:-1: ++# BZ12701 %5la: +0x8p-1025:0:-1: ++# BZ12701 %*5la: +0x8p-1025:0:-1: ++%5la: +0x2.3456789abcdfep0123:1:6:0x1p1: ++%*5la: +0x2.3456789abcdfep0123:0:6: ++%5la: +0x2.3456789abcdfep+123:1:6:0x1p1: ++%*5la: +0x2.3456789abcdfep+123:0:6: ++%5la: +0x7.ffffffffffffcp1021:1:6:0x1.cp2: ++%*5la: +0x7.ffffffffffffcp1021:0:6: ++%5la: +0xf.ffffffffffff8p+1020:1:6:0x1.ep3: ++%*5la: +0xf.ffffffffffff8p+1020:0:6: ++%5la: +infinity:0:-1: ++%*5la: +infinity:0:-1: ++%32la: :0:-1: ++%*32la: :0:-1: ++%32la: -infinity:1:10:-inf: ++%*32la: -infinity:0:10: ++%32la: -0xf.ffffffffffff8p+1020:1:25:-0x1.fffffffffffffp1023: ++%*32la: -0xf.ffffffffffff8p+1020:0:25: ++%32la: -0x7.ffffffffffffcp1021:1:24:-0x1.fffffffffffffp1023: ++%*32la: -0x7.ffffffffffffcp1021:0:24: ++%32la: -0x2.3456789abcdfep+123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32la: -0x2.3456789abcdfep+123:0:24: ++%32la: -0x2.3456789abcdfep0123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32la: -0x2.3456789abcdfep0123:0:24: ++%32la: -0x8p-1025:1:11:-0x1p-1022: ++%*32la: -0x8p-1025:0:11: ++%32la: -0x0p+0:1:8:-0x0: ++%*32la: -0x0p+0:0:8: ++%32la: -0x0p0:1:7:-0x0: ++%*32la: -0x0p0:0:7: ++%32la: -nan(09A_Zaz):1:14:-nan: ++%*32la: -nan(09A_Zaz):0:14: ++%32la: -nan():1:7:-nan: ++%*32la: -nan():0:7: ++%32la: nan():1:6:nan: ++%*32la: nan():0:6: ++%32la: nan(09A_Zaz):1:13:nan: ++%*32la: nan(09A_Zaz):0:13: ++%32la: 0x0p0:1:6:0x0: ++%*32la: 0x0p0:0:6: ++%32la: 0x0p+0:1:7:0x0: ++%*32la: 0x0p+0:0:7: ++%32la: 0x8p-1025:1:10:0x1p-1022: ++%*32la: 0x8p-1025:0:10: ++%32la: 0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32la: 0x2.3456789abcdfep0123:0:23: ++%32la: 0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32la: 0x2.3456789abcdfep+123:0:23: ++%32la: 0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*32la: 0x7.ffffffffffffcp1021:0:23: ++%32la: 0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*32la: 0xf.ffffffffffff8p+1020:0:24: ++%32la: infinity:1:9:inf: ++%*32la: infinity:0:9: ++%32la: +nan():1:7:nan: ++%*32la: +nan():0:7: ++%32la: +nan(09A_Zaz):1:14:nan: ++%*32la: +nan(09A_Zaz):0:14: ++%32la: +0x0p0:1:7:0x0: ++%*32la: +0x0p0:0:7: ++%32la: +0x0p+0:1:8:0x0: ++%*32la: +0x0p+0:0:8: ++%32la: +0x8p-1025:1:11:0x1p-1022: ++%*32la: +0x8p-1025:0:11: ++%32la: +0x2.3456789abcdfep0123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32la: +0x2.3456789abcdfep0123:0:24: ++%32la: +0x2.3456789abcdfep+123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32la: +0x2.3456789abcdfep+123:0:24: ++%32la: +0x7.ffffffffffffcp1021:1:24:0x1.fffffffffffffp1023: ++%*32la: +0x7.ffffffffffffcp1021:0:24: ++%32la: +0xf.ffffffffffff8p+1020:1:25:0x1.fffffffffffffp1023: ++%*32la: +0xf.ffffffffffff8p+1020:0:25: ++%32la: +infinity:1:10:inf: ++%*32la: +infinity:0:10: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input +new file mode 100644 +index 0000000000000000..3b5a4fe81268339e +--- /dev/null ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input +@@ -0,0 +1,682 @@ ++%lA::0:-1: ++%*lA::0:-1: ++%lA:-INFINITY:1:9:-inf: ++%*lA:-INFINITY:0:9: ++%lA:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023: ++%*lA:-0XF.FFFFFFFFFFFF8P+1020:0:24: ++%lA:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023: ++%*lA:-0X7.FFFFFFFFFFFFCP1021:0:23: ++%lA:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*lA:-0X2.3456789ABCDFEP+123:0:23: ++%lA:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*lA:-0X2.3456789ABCDFEP0123:0:23: ++%lA:-0X8P-1025:1:10:-0x1p-1022: ++%*lA:-0X8P-1025:0:10: ++%lA:-0X0P+0:1:7:-0x0: ++%*lA:-0X0P+0:0:7: ++%lA:-0X0P0:1:6:-0x0: ++%*lA:-0X0P0:0:6: ++%lA:-NAN(09A_Zaz):1:13:-nan: ++%*lA:-NAN(09A_Zaz):0:13: ++%lA:-NAN():1:6:-nan: ++%*lA:-NAN():0:6: ++%lA:NAN():1:5:nan: ++%*lA:NAN():0:5: ++%lA:NAN(09A_Zaz):1:12:nan: ++%*lA:NAN(09A_Zaz):0:12: ++%lA:0X0P0:1:5:0x0: ++%*lA:0X0P0:0:5: ++%lA:0X0P+0:1:6:0x0: ++%*lA:0X0P+0:0:6: ++%lA:0X8P-1025:1:9:0x1p-1022: ++%*lA:0X8P-1025:0:9: ++%lA:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*lA:0X2.3456789ABCDFEP0123:0:22: ++%lA:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*lA:0X2.3456789ABCDFEP+123:0:22: ++%lA:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023: ++%*lA:0X7.FFFFFFFFFFFFCP1021:0:22: ++%lA:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023: ++%*lA:0XF.FFFFFFFFFFFF8P+1020:0:23: ++%lA:INFINITY:1:8:inf: ++%*lA:INFINITY:0:8: ++%lA:+NAN():1:6:nan: ++%*lA:+NAN():0:6: ++%lA:+NAN(09A_Zaz):1:13:nan: ++%*lA:+NAN(09A_Zaz):0:13: ++%lA:+0X0P0:1:6:0x0: ++%*lA:+0X0P0:0:6: ++%lA:+0X0P+0:1:7:0x0: ++%*lA:+0X0P+0:0:7: ++%lA:+0X8P-1025:1:10:0x1p-1022: ++%*lA:+0X8P-1025:0:10: ++%lA:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*lA:+0X2.3456789ABCDFEP0123:0:23: ++%lA:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*lA:+0X2.3456789ABCDFEP+123:0:23: ++%lA:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*lA:+0X7.FFFFFFFFFFFFCP1021:0:23: ++%lA:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*lA:+0XF.FFFFFFFFFFFF8P+1020:0:24: ++%lA:+INFINITY:1:9:inf: ++%*lA:+INFINITY:0:9: ++%1lA::0:-1: ++%*1lA::0:-1: ++%1lA:-INFINITY:0:-1: ++%*1lA:-INFINITY:0:-1: ++%1lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%*1lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%1lA:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++%*1lA:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++%1lA:-0X2.3456789ABCDFEP+123:0:-1: ++%*1lA:-0X2.3456789ABCDFEP+123:0:-1: ++%1lA:-0X2.3456789ABCDFEP0123:0:-1: ++%*1lA:-0X2.3456789ABCDFEP0123:0:-1: ++%1lA:-0X8P-1025:0:-1: ++%*1lA:-0X8P-1025:0:-1: ++%1lA:-0X0P+0:0:-1: ++%*1lA:-0X0P+0:0:-1: ++%1lA:-0X0P0:0:-1: ++%*1lA:-0X0P0:0:-1: ++%1lA:-NAN(09A_Zaz):0:-1: ++%*1lA:-NAN(09A_Zaz):0:-1: ++%1lA:-NAN():0:-1: ++%*1lA:-NAN():0:-1: ++%1lA:NAN():0:-1: ++%*1lA:NAN():0:-1: ++%1lA:NAN(09A_Zaz):0:-1: ++%*1lA:NAN(09A_Zaz):0:-1: ++%1lA:0X0P0:1:1:0x0: ++%*1lA:0X0P0:0:1: ++%1lA:0X0P+0:1:1:0x0: ++%*1lA:0X0P+0:0:1: ++%1lA:0X8P-1025:1:1:0x0: ++%*1lA:0X8P-1025:0:1: ++%1lA:0X2.3456789ABCDFEP0123:1:1:0x0: ++%*1lA:0X2.3456789ABCDFEP0123:0:1: ++%1lA:0X2.3456789ABCDFEP+123:1:1:0x0: ++%*1lA:0X2.3456789ABCDFEP+123:0:1: ++%1lA:0X7.FFFFFFFFFFFFCP1021:1:1:0x0: ++%*1lA:0X7.FFFFFFFFFFFFCP1021:0:1: ++%1lA:0XF.FFFFFFFFFFFF8P+1020:1:1:0x0: ++%*1lA:0XF.FFFFFFFFFFFF8P+1020:0:1: ++%1lA:INFINITY:0:-1: ++%*1lA:INFINITY:0:-1: ++%1lA:+NAN():0:-1: ++%*1lA:+NAN():0:-1: ++%1lA:+NAN(09A_Zaz):0:-1: ++%*1lA:+NAN(09A_Zaz):0:-1: ++%1lA:+0X0P0:0:-1: ++%*1lA:+0X0P0:0:-1: ++%1lA:+0X0P+0:0:-1: ++%*1lA:+0X0P+0:0:-1: ++%1lA:+0X8P-1025:0:-1: ++%*1lA:+0X8P-1025:0:-1: ++%1lA:+0X2.3456789ABCDFEP0123:0:-1: ++%*1lA:+0X2.3456789ABCDFEP0123:0:-1: ++%1lA:+0X2.3456789ABCDFEP+123:0:-1: ++%*1lA:+0X2.3456789ABCDFEP+123:0:-1: ++%1lA:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++%*1lA:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++%1lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%*1lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%1lA:+INFINITY:0:-1: ++%*1lA:+INFINITY:0:-1: ++%2lA::0:-1: ++%*2lA::0:-1: ++%2lA:-INFINITY:0:-1: ++%*2lA:-INFINITY:0:-1: ++%2lA:-0XF.FFFFFFFFFFFF8P+1020:1:2:-0x0: ++%*2lA:-0XF.FFFFFFFFFFFF8P+1020:0:2: ++%2lA:-0X7.FFFFFFFFFFFFCP1021:1:2:-0x0: ++%*2lA:-0X7.FFFFFFFFFFFFCP1021:0:2: ++%2lA:-0X2.3456789ABCDFEP+123:1:2:-0x0: ++%*2lA:-0X2.3456789ABCDFEP+123:0:2: ++%2lA:-0X2.3456789ABCDFEP0123:1:2:-0x0: ++%*2lA:-0X2.3456789ABCDFEP0123:0:2: ++%2lA:-0X8P-1025:1:2:-0x0: ++%*2lA:-0X8P-1025:0:2: ++%2lA:-0X0P+0:1:2:-0x0: ++%*2lA:-0X0P+0:0:2: ++%2lA:-0X0P0:1:2:-0x0: ++%*2lA:-0X0P0:0:2: ++%2lA:-NAN(09A_Zaz):0:-1: ++%*2lA:-NAN(09A_Zaz):0:-1: ++%2lA:-NAN():0:-1: ++%*2lA:-NAN():0:-1: ++%2lA:NAN():0:-1: ++%*2lA:NAN():0:-1: ++%2lA:NAN(09A_Zaz):0:-1: ++%*2lA:NAN(09A_Zaz):0:-1: ++# BZ12701 %2lA:0X0P0:0:-1: ++# BZ12701 %*2lA:0X0P0:0:-1: ++# BZ12701 %2lA:0X0P+0:0:-1: ++# BZ12701 %*2lA:0X0P+0:0:-1: ++# BZ12701 %2lA:0X8P-1025:0:-1: ++# BZ12701 %*2lA:0X8P-1025:0:-1: ++# BZ12701 %2lA:0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*2lA:0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %2lA:0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*2lA:0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %2lA:0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*2lA:0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %2lA:0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*2lA:0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%2lA:INFINITY:0:-1: ++%*2lA:INFINITY:0:-1: ++%2lA:+NAN():0:-1: ++%*2lA:+NAN():0:-1: ++%2lA:+NAN(09A_Zaz):0:-1: ++%*2lA:+NAN(09A_Zaz):0:-1: ++%2lA:+0X0P0:1:2:0x0: ++%*2lA:+0X0P0:0:2: ++%2lA:+0X0P+0:1:2:0x0: ++%*2lA:+0X0P+0:0:2: ++%2lA:+0X8P-1025:1:2:0x0: ++%*2lA:+0X8P-1025:0:2: ++%2lA:+0X2.3456789ABCDFEP0123:1:2:0x0: ++%*2lA:+0X2.3456789ABCDFEP0123:0:2: ++%2lA:+0X2.3456789ABCDFEP+123:1:2:0x0: ++%*2lA:+0X2.3456789ABCDFEP+123:0:2: ++%2lA:+0X7.FFFFFFFFFFFFCP1021:1:2:0x0: ++%*2lA:+0X7.FFFFFFFFFFFFCP1021:0:2: ++%2lA:+0XF.FFFFFFFFFFFF8P+1020:1:2:0x0: ++%*2lA:+0XF.FFFFFFFFFFFF8P+1020:0:2: ++%2lA:+INFINITY:0:-1: ++%*2lA:+INFINITY:0:-1: ++%3lA::0:-1: ++%*3lA::0:-1: ++%3lA:-INFINITY:0:-1: ++%*3lA:-INFINITY:0:-1: ++# BZ12701 %3lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*3lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %3lA:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*3lA:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %3lA:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*3lA:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %3lA:-0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*3lA:-0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %3lA:-0X8P-1025:0:-1: ++# BZ12701 %*3lA:-0X8P-1025:0:-1: ++# BZ12701 %3lA:-0X0P+0:0:-1: ++# BZ12701 %*3lA:-0X0P+0:0:-1: ++# BZ12701 %3lA:-0X0P0:0:-1: ++# BZ12701 %*3lA:-0X0P0:0:-1: ++%3lA:-NAN(09A_Zaz):0:-1: ++%*3lA:-NAN(09A_Zaz):0:-1: ++%3lA:-NAN():0:-1: ++%*3lA:-NAN():0:-1: ++%3lA:NAN():1:3:nan: ++%*3lA:NAN():0:3: ++%3lA:NAN(09A_Zaz):1:3:nan: ++%*3lA:NAN(09A_Zaz):0:3: ++%3lA:0X0P0:1:3:0x0: ++%*3lA:0X0P0:0:3: ++%3lA:0X0P+0:1:3:0x0: ++%*3lA:0X0P+0:0:3: ++%3lA:0X8P-1025:1:3:0x1p3: ++%*3lA:0X8P-1025:0:3: ++%3lA:0X2.3456789ABCDFEP0123:1:3:0x1p1: ++%*3lA:0X2.3456789ABCDFEP0123:0:3: ++%3lA:0X2.3456789ABCDFEP+123:1:3:0x1p1: ++%*3lA:0X2.3456789ABCDFEP+123:0:3: ++%3lA:0X7.FFFFFFFFFFFFCP1021:1:3:0x1.cp2: ++%*3lA:0X7.FFFFFFFFFFFFCP1021:0:3: ++%3lA:0XF.FFFFFFFFFFFF8P+1020:1:3:0x1.ep3: ++%*3lA:0XF.FFFFFFFFFFFF8P+1020:0:3: ++%3lA:INFINITY:1:3:inf: ++%*3lA:INFINITY:0:3: ++%3lA:+NAN():0:-1: ++%*3lA:+NAN():0:-1: ++%3lA:+NAN(09A_Zaz):0:-1: ++%*3lA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3lA:+0X0P0:0:-1: ++# BZ12701 %*3lA:+0X0P0:0:-1: ++# BZ12701 %3lA:+0X0P+0:0:-1: ++# BZ12701 %*3lA:+0X0P+0:0:-1: ++# BZ12701 %3lA:+0X8P-1025:0:-1: ++# BZ12701 %*3lA:+0X8P-1025:0:-1: ++# BZ12701 %3lA:+0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*3lA:+0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %3lA:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*3lA:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %3lA:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*3lA:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %3lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*3lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%3lA:+INFINITY:0:-1: ++%*3lA:+INFINITY:0:-1: ++%4lA::0:-1: ++%*4lA::0:-1: ++%4lA:-INFINITY:1:4:-inf: ++%*4lA:-INFINITY:0:4: ++%4lA:-0XF.FFFFFFFFFFFF8P+1020:1:4:-0x1.ep3: ++%*4lA:-0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4lA:-0X7.FFFFFFFFFFFFCP1021:1:4:-0x1.cp2: ++%*4lA:-0X7.FFFFFFFFFFFFCP1021:0:4: ++%4lA:-0X2.3456789ABCDFEP+123:1:4:-0x1p1: ++%*4lA:-0X2.3456789ABCDFEP+123:0:4: ++%4lA:-0X2.3456789ABCDFEP0123:1:4:-0x1p1: ++%*4lA:-0X2.3456789ABCDFEP0123:0:4: ++%4lA:-0X8P-1025:1:4:-0x1p3: ++%*4lA:-0X8P-1025:0:4: ++%4lA:-0X0P+0:1:4:-0x0: ++%*4lA:-0X0P+0:0:4: ++%4lA:-0X0P0:1:4:-0x0: ++%*4lA:-0X0P0:0:4: ++%4lA:-NAN(09A_Zaz):1:4:-nan: ++%*4lA:-NAN(09A_Zaz):0:4: ++%4lA:-NAN():1:4:-nan: ++%*4lA:-NAN():0:4: ++%4lA:NAN():0:-1: ++%*4lA:NAN():0:-1: ++%4lA:NAN(09A_Zaz):0:-1: ++%*4lA:NAN(09A_Zaz):0:-1: ++# BZ12701 %4lA:0X0P0:0:-1: ++# BZ12701 %*4lA:0X0P0:0:-1: ++# BZ12701 %4lA:0X0P+0:0:-1: ++# BZ12701 %*4lA:0X0P+0:0:-1: ++# BZ12701 %4lA:0X8P-1025:0:-1: ++# BZ12701 %*4lA:0X8P-1025:0:-1: ++%4lA:0X2.3456789ABCDFEP0123:1:4:0x1p1: ++%*4lA:0X2.3456789ABCDFEP0123:0:4: ++%4lA:0X2.3456789ABCDFEP+123:1:4:0x1p1: ++%*4lA:0X2.3456789ABCDFEP+123:0:4: ++%4lA:0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2: ++%*4lA:0X7.FFFFFFFFFFFFCP1021:0:4: ++%4lA:0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3: ++%*4lA:0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4lA:INFINITY:0:-1: ++%*4lA:INFINITY:0:-1: ++%4lA:+NAN():1:4:nan: ++%*4lA:+NAN():0:4: ++%4lA:+NAN(09A_Zaz):1:4:nan: ++%*4lA:+NAN(09A_Zaz):0:4: ++%4lA:+0X0P0:1:4:0x0: ++%*4lA:+0X0P0:0:4: ++%4lA:+0X0P+0:1:4:0x0: ++%*4lA:+0X0P+0:0:4: ++%4lA:+0X8P-1025:1:4:0x1p3: ++%*4lA:+0X8P-1025:0:4: ++%4lA:+0X2.3456789ABCDFEP0123:1:4:0x1p1: ++%*4lA:+0X2.3456789ABCDFEP0123:0:4: ++%4lA:+0X2.3456789ABCDFEP+123:1:4:0x1p1: ++%*4lA:+0X2.3456789ABCDFEP+123:0:4: ++%4lA:+0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2: ++%*4lA:+0X7.FFFFFFFFFFFFCP1021:0:4: ++%4lA:+0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3: ++%*4lA:+0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4lA:+INFINITY:1:4:inf: ++%*4lA:+INFINITY:0:4: ++%5lA::0:-1: ++%*5lA::0:-1: ++%5lA:-INFINITY:0:-1: ++%*5lA:-INFINITY:0:-1: ++%5lA:-0XF.FFFFFFFFFFFF8P+1020:1:5:-0x1.ep3: ++%*5lA:-0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5lA:-0X7.FFFFFFFFFFFFCP1021:1:5:-0x1.cp2: ++%*5lA:-0X7.FFFFFFFFFFFFCP1021:0:5: ++%5lA:-0X2.3456789ABCDFEP+123:1:5:-0x1p1: ++%*5lA:-0X2.3456789ABCDFEP+123:0:5: ++%5lA:-0X2.3456789ABCDFEP0123:1:5:-0x1p1: ++%*5lA:-0X2.3456789ABCDFEP0123:0:5: ++# BZ12701 %5lA:-0X8P-1025:0:-1: ++# BZ12701 %*5lA:-0X8P-1025:0:-1: ++# BZ12701 %5lA:-0X0P+0:0:-1: ++# BZ12701 %*5lA:-0X0P+0:0:-1: ++# BZ12701 %5lA:-0X0P0:0:-1: ++# BZ12701 %*5lA:-0X0P0:0:-1: ++%5lA:-NAN(09A_Zaz):0:-1: ++%*5lA:-NAN(09A_Zaz):0:-1: ++%5lA:-NAN():0:-1: ++%*5lA:-NAN():0:-1: ++%5lA:NAN():1:5:nan: ++%*5lA:NAN():0:5: ++%5lA:NAN(09A_Zaz):0:-1: ++%*5lA:NAN(09A_Zaz):0:-1: ++%5lA:0X0P0:1:5:0x0: ++%*5lA:0X0P0:0:5: ++# BZ12701 %5lA:0X0P+0:0:-1: ++# BZ12701 %*5lA:0X0P+0:0:-1: ++# BZ12701 %5lA:0X8P-1025:0:-1: ++# BZ12701 %*5lA:0X8P-1025:0:-1: ++%5lA:0X2.3456789ABCDFEP0123:1:5:0x1.18p1: ++%*5lA:0X2.3456789ABCDFEP0123:0:5: ++%5lA:0X2.3456789ABCDFEP+123:1:5:0x1.18p1: ++%*5lA:0X2.3456789ABCDFEP+123:0:5: ++%5lA:0X7.FFFFFFFFFFFFCP1021:1:5:0x1.fcp2: ++%*5lA:0X7.FFFFFFFFFFFFCP1021:0:5: ++%5lA:0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.fep3: ++%*5lA:0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5lA:INFINITY:0:-1: ++%*5lA:INFINITY:0:-1: ++%5lA:+NAN():0:-1: ++%*5lA:+NAN():0:-1: ++%5lA:+NAN(09A_Zaz):0:-1: ++%*5lA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5lA:+0X0P0:0:-1: ++# BZ12701 %*5lA:+0X0P0:0:-1: ++# BZ12701 %5lA:+0X0P+0:0:-1: ++# BZ12701 %*5lA:+0X0P+0:0:-1: ++# BZ12701 %5lA:+0X8P-1025:0:-1: ++# BZ12701 %*5lA:+0X8P-1025:0:-1: ++%5lA:+0X2.3456789ABCDFEP0123:1:5:0x1p1: ++%*5lA:+0X2.3456789ABCDFEP0123:0:5: ++%5lA:+0X2.3456789ABCDFEP+123:1:5:0x1p1: ++%*5lA:+0X2.3456789ABCDFEP+123:0:5: ++%5lA:+0X7.FFFFFFFFFFFFCP1021:1:5:0x1.cp2: ++%*5lA:+0X7.FFFFFFFFFFFFCP1021:0:5: ++%5lA:+0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.ep3: ++%*5lA:+0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5lA:+INFINITY:0:-1: ++%*5lA:+INFINITY:0:-1: ++%6lA::0:-1: ++%*6lA::0:-1: ++%6lA:-INFINITY:0:-1: ++%*6lA:-INFINITY:0:-1: ++%6lA:-0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.fep3: ++%*6lA:-0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6lA:-0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.fcp2: ++%*6lA:-0X7.FFFFFFFFFFFFCP1021:0:6: ++%6lA:-0X2.3456789ABCDFEP+123:1:6:-0x1.18p1: ++%*6lA:-0X2.3456789ABCDFEP+123:0:6: ++%6lA:-0X2.3456789ABCDFEP0123:1:6:-0x1.18p1: ++%*6lA:-0X2.3456789ABCDFEP0123:0:6: ++# BZ12701 %6lA:-0X8P-1025:0:-1: ++# BZ12701 %*6lA:-0X8P-1025:0:-1: ++# BZ12701 %6lA:-0X0P+0:0:-1: ++# BZ12701 %*6lA:-0X0P+0:0:-1: ++%6lA:-0X0P0:1:6:-0x0: ++%*6lA:-0X0P0:0:6: ++%6lA:-NAN(09A_Zaz):0:-1: ++%*6lA:-NAN(09A_Zaz):0:-1: ++%6lA:-NAN():1:6:-nan: ++%*6lA:-NAN():0:6: ++%6lA:NAN():1:5:nan: ++%*6lA:NAN():0:5: ++%6lA:NAN(09A_Zaz):0:-1: ++%*6lA:NAN(09A_Zaz):0:-1: ++%6lA:0X0P0:1:5:0x0: ++%*6lA:0X0P0:0:5: ++%6lA:0X0P+0:1:6:0x0: ++%*6lA:0X0P+0:0:6: ++%6lA:0X8P-1025:1:6:0x1p2: ++%*6lA:0X8P-1025:0:6: ++%6lA:0X2.3456789ABCDFEP0123:1:6:0x1.1ap1: ++%*6lA:0X2.3456789ABCDFEP0123:0:6: ++%6lA:0X2.3456789ABCDFEP+123:1:6:0x1.1ap1: ++%*6lA:0X2.3456789ABCDFEP+123:0:6: ++%6lA:0X7.FFFFFFFFFFFFCP1021:1:6:0x1.ffcp2: ++%*6lA:0X7.FFFFFFFFFFFFCP1021:0:6: ++%6lA:0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ffep3: ++%*6lA:0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6lA:INFINITY:0:-1: ++%*6lA:INFINITY:0:-1: ++%6lA:+NAN():1:6:nan: ++%*6lA:+NAN():0:6: ++%6lA:+NAN(09A_Zaz):0:-1: ++%*6lA:+NAN(09A_Zaz):0:-1: ++%6lA:+0X0P0:1:6:0x0: ++%*6lA:+0X0P0:0:6: ++# BZ12701 %6lA:+0X0P+0:0:-1: ++# BZ12701 %*6lA:+0X0P+0:0:-1: ++# BZ12701 %6lA:+0X8P-1025:0:-1: ++# BZ12701 %*6lA:+0X8P-1025:0:-1: ++%6lA:+0X2.3456789ABCDFEP0123:1:6:0x1.18p1: ++%*6lA:+0X2.3456789ABCDFEP0123:0:6: ++%6lA:+0X2.3456789ABCDFEP+123:1:6:0x1.18p1: ++%*6lA:+0X2.3456789ABCDFEP+123:0:6: ++%6lA:+0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2: ++%*6lA:+0X7.FFFFFFFFFFFFCP1021:0:6: ++%6lA:+0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3: ++%*6lA:+0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6lA:+INFINITY:0:-1: ++%*6lA:+INFINITY:0:-1: ++%20lA::0:-1: ++%*20lA::0:-1: ++%20lA:-INFINITY:1:9:-inf: ++%*20lA:-INFINITY:0:9: ++# BZ12701 %20lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*20lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%20lA:-0X7.FFFFFFFFFFFFCP1021:1:20:-0x1.fffffffffffffp3: ++%*20lA:-0X7.FFFFFFFFFFFFCP1021:0:20: ++# BZ12701 %20lA:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*20lA:-0X2.3456789ABCDFEP+123:0:-1: ++%20lA:-0X2.3456789ABCDFEP0123:1:20:-0x1.1a2b3c4d5e6ffp1: ++%*20lA:-0X2.3456789ABCDFEP0123:0:20: ++%20lA:-0X8P-1025:1:10:-0x1p-1022: ++%*20lA:-0X8P-1025:0:10: ++%20lA:-0X0P+0:1:7:-0x0: ++%*20lA:-0X0P+0:0:7: ++%20lA:-0X0P0:1:6:-0x0: ++%*20lA:-0X0P0:0:6: ++%20lA:-NAN(09A_Zaz):1:13:-nan: ++%*20lA:-NAN(09A_Zaz):0:13: ++%20lA:-NAN():1:6:-nan: ++%*20lA:-NAN():0:6: ++%20lA:NAN():1:5:nan: ++%*20lA:NAN():0:5: ++%20lA:NAN(09A_Zaz):1:12:nan: ++%*20lA:NAN(09A_Zaz):0:12: ++%20lA:0X0P0:1:5:0x0: ++%*20lA:0X0P0:0:5: ++%20lA:0X0P+0:1:6:0x0: ++%*20lA:0X0P+0:0:6: ++%20lA:0X8P-1025:1:9:0x1p-1022: ++%*20lA:0X8P-1025:0:9: ++%20lA:0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20lA:0X2.3456789ABCDFEP0123:0:20: ++%20lA:0X2.3456789ABCDFEP+123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20lA:0X2.3456789ABCDFEP+123:0:20: ++%20lA:0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp12: ++%*20lA:0X7.FFFFFFFFFFFFCP1021:0:20: ++%20lA:0XF.FFFFFFFFFFFF8P+1020:1:20:0x1.fffffffffffffp4: ++%*20lA:0XF.FFFFFFFFFFFF8P+1020:0:20: ++%20lA:INFINITY:1:8:inf: ++%*20lA:INFINITY:0:8: ++%20lA:+NAN():1:6:nan: ++%*20lA:+NAN():0:6: ++%20lA:+NAN(09A_Zaz):1:13:nan: ++%*20lA:+NAN(09A_Zaz):0:13: ++%20lA:+0X0P0:1:6:0x0: ++%*20lA:+0X0P0:0:6: ++%20lA:+0X0P+0:1:7:0x0: ++%*20lA:+0X0P+0:0:7: ++%20lA:+0X8P-1025:1:10:0x1p-1022: ++%*20lA:+0X8P-1025:0:10: ++%20lA:+0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp1: ++%*20lA:+0X2.3456789ABCDFEP0123:0:20: ++# BZ12701 %20lA:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*20lA:+0X2.3456789ABCDFEP+123:0:-1: ++%20lA:+0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp3: ++%*20lA:+0X7.FFFFFFFFFFFFCP1021:0:20: ++# BZ12701 %20lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*20lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%20lA:+INFINITY:1:9:inf: ++%*20lA:+INFINITY:0:9: ++%32lA::0:-1: ++%*32lA::0:-1: ++%32lA:-INFINITY:1:9:-inf: ++%*32lA:-INFINITY:0:9: ++%32lA:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023: ++%*32lA:-0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32lA:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023: ++%*32lA:-0X7.FFFFFFFFFFFFCP1021:0:23: ++%32lA:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32lA:-0X2.3456789ABCDFEP+123:0:23: ++%32lA:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32lA:-0X2.3456789ABCDFEP0123:0:23: ++%32lA:-0X8P-1025:1:10:-0x1p-1022: ++%*32lA:-0X8P-1025:0:10: ++%32lA:-0X0P+0:1:7:-0x0: ++%*32lA:-0X0P+0:0:7: ++%32lA:-0X0P0:1:6:-0x0: ++%*32lA:-0X0P0:0:6: ++%32lA:-NAN(09A_Zaz):1:13:-nan: ++%*32lA:-NAN(09A_Zaz):0:13: ++%32lA:-NAN():1:6:-nan: ++%*32lA:-NAN():0:6: ++%32lA:NAN():1:5:nan: ++%*32lA:NAN():0:5: ++%32lA:NAN(09A_Zaz):1:12:nan: ++%*32lA:NAN(09A_Zaz):0:12: ++%32lA:0X0P0:1:5:0x0: ++%*32lA:0X0P0:0:5: ++%32lA:0X0P+0:1:6:0x0: ++%*32lA:0X0P+0:0:6: ++%32lA:0X8P-1025:1:9:0x1p-1022: ++%*32lA:0X8P-1025:0:9: ++%32lA:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32lA:0X2.3456789ABCDFEP0123:0:22: ++%32lA:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32lA:0X2.3456789ABCDFEP+123:0:22: ++%32lA:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023: ++%*32lA:0X7.FFFFFFFFFFFFCP1021:0:22: ++%32lA:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023: ++%*32lA:0XF.FFFFFFFFFFFF8P+1020:0:23: ++%32lA:INFINITY:1:8:inf: ++%*32lA:INFINITY:0:8: ++%32lA:+NAN():1:6:nan: ++%*32lA:+NAN():0:6: ++%32lA:+NAN(09A_Zaz):1:13:nan: ++%*32lA:+NAN(09A_Zaz):0:13: ++%32lA:+0X0P0:1:6:0x0: ++%*32lA:+0X0P0:0:6: ++%32lA:+0X0P+0:1:7:0x0: ++%*32lA:+0X0P+0:0:7: ++%32lA:+0X8P-1025:1:10:0x1p-1022: ++%*32lA:+0X8P-1025:0:10: ++%32lA:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lA:+0X2.3456789ABCDFEP0123:0:23: ++%32lA:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lA:+0X2.3456789ABCDFEP+123:0:23: ++%32lA:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*32lA:+0X7.FFFFFFFFFFFFCP1021:0:23: ++%32lA:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*32lA:+0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32lA:+INFINITY:1:9:inf: ++%*32lA:+INFINITY:0:9: ++%5lA: :0:-1: ++%*5lA: :0:-1: ++%5lA: -INFINITY:0:-1: ++%*5lA: -INFINITY:0:-1: ++%5lA: -0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.ep3: ++%*5lA: -0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5lA: -0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.cp2: ++%*5lA: -0X7.FFFFFFFFFFFFCP1021:0:6: ++%5lA: -0X2.3456789ABCDFEP+123:1:6:-0x1p1: ++%*5lA: -0X2.3456789ABCDFEP+123:0:6: ++%5lA: -0X2.3456789ABCDFEP0123:1:6:-0x1p1: ++%*5lA: -0X2.3456789ABCDFEP0123:0:6: ++# BZ12701 %5lA: -0X8P-1025:0:-1: ++# BZ12701 %*5lA: -0X8P-1025:0:-1: ++# BZ12701 %5lA: -0X0P+0:0:-1: ++# BZ12701 %*5lA: -0X0P+0:0:-1: ++# BZ12701 %5lA: -0X0P0:0:-1: ++# BZ12701 %*5lA: -0X0P0:0:-1: ++%5lA: -NAN(09A_Zaz):0:-1: ++%*5lA: -NAN(09A_Zaz):0:-1: ++%5lA: -NAN():0:-1: ++%*5lA: -NAN():0:-1: ++%5lA: NAN():1:6:nan: ++%*5lA: NAN():0:6: ++%5lA: NAN(09A_Zaz):0:-1: ++%*5lA: NAN(09A_Zaz):0:-1: ++%5lA: 0X0P0:1:6:0x0: ++%*5lA: 0X0P0:0:6: ++# BZ12701 %5lA: 0X0P+0:0:-1: ++# BZ12701 %*5lA: 0X0P+0:0:-1: ++# BZ12701 %5lA: 0X8P-1025:0:-1: ++# BZ12701 %*5lA: 0X8P-1025:0:-1: ++%5lA: 0X2.3456789ABCDFEP0123:1:6:0x1.18p1: ++%*5lA: 0X2.3456789ABCDFEP0123:0:6: ++%5lA: 0X2.3456789ABCDFEP+123:1:6:0x1.18p1: ++%*5lA: 0X2.3456789ABCDFEP+123:0:6: ++%5lA: 0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2: ++%*5lA: 0X7.FFFFFFFFFFFFCP1021:0:6: ++%5lA: 0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3: ++%*5lA: 0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5lA: INFINITY:0:-1: ++%*5lA: INFINITY:0:-1: ++%5lA: +NAN():0:-1: ++%*5lA: +NAN():0:-1: ++%5lA: +NAN(09A_Zaz):0:-1: ++%*5lA: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5lA: +0X0P0:0:-1: ++# BZ12701 %*5lA: +0X0P0:0:-1: ++# BZ12701 %5lA: +0X0P+0:0:-1: ++# BZ12701 %*5lA: +0X0P+0:0:-1: ++# BZ12701 %5lA: +0X8P-1025:0:-1: ++# BZ12701 %*5lA: +0X8P-1025:0:-1: ++%5lA: +0X2.3456789ABCDFEP0123:1:6:0x1p1: ++%*5lA: +0X2.3456789ABCDFEP0123:0:6: ++%5lA: +0X2.3456789ABCDFEP+123:1:6:0x1p1: ++%*5lA: +0X2.3456789ABCDFEP+123:0:6: ++%5lA: +0X7.FFFFFFFFFFFFCP1021:1:6:0x1.cp2: ++%*5lA: +0X7.FFFFFFFFFFFFCP1021:0:6: ++%5lA: +0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ep3: ++%*5lA: +0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5lA: +INFINITY:0:-1: ++%*5lA: +INFINITY:0:-1: ++%32lA: :0:-1: ++%*32lA: :0:-1: ++%32lA: -INFINITY:1:10:-inf: ++%*32lA: -INFINITY:0:10: ++%32lA: -0XF.FFFFFFFFFFFF8P+1020:1:25:-0x1.fffffffffffffp1023: ++%*32lA: -0XF.FFFFFFFFFFFF8P+1020:0:25: ++%32lA: -0X7.FFFFFFFFFFFFCP1021:1:24:-0x1.fffffffffffffp1023: ++%*32lA: -0X7.FFFFFFFFFFFFCP1021:0:24: ++%32lA: -0X2.3456789ABCDFEP+123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32lA: -0X2.3456789ABCDFEP+123:0:24: ++%32lA: -0X2.3456789ABCDFEP0123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32lA: -0X2.3456789ABCDFEP0123:0:24: ++%32lA: -0X8P-1025:1:11:-0x1p-1022: ++%*32lA: -0X8P-1025:0:11: ++%32lA: -0X0P+0:1:8:-0x0: ++%*32lA: -0X0P+0:0:8: ++%32lA: -0X0P0:1:7:-0x0: ++%*32lA: -0X0P0:0:7: ++%32lA: -NAN(09A_Zaz):1:14:-nan: ++%*32lA: -NAN(09A_Zaz):0:14: ++%32lA: -NAN():1:7:-nan: ++%*32lA: -NAN():0:7: ++%32lA: NAN():1:6:nan: ++%*32lA: NAN():0:6: ++%32lA: NAN(09A_Zaz):1:13:nan: ++%*32lA: NAN(09A_Zaz):0:13: ++%32lA: 0X0P0:1:6:0x0: ++%*32lA: 0X0P0:0:6: ++%32lA: 0X0P+0:1:7:0x0: ++%*32lA: 0X0P+0:0:7: ++%32lA: 0X8P-1025:1:10:0x1p-1022: ++%*32lA: 0X8P-1025:0:10: ++%32lA: 0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lA: 0X2.3456789ABCDFEP0123:0:23: ++%32lA: 0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lA: 0X2.3456789ABCDFEP+123:0:23: ++%32lA: 0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*32lA: 0X7.FFFFFFFFFFFFCP1021:0:23: ++%32lA: 0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*32lA: 0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32lA: INFINITY:1:9:inf: ++%*32lA: INFINITY:0:9: ++%32lA: +NAN():1:7:nan: ++%*32lA: +NAN():0:7: ++%32lA: +NAN(09A_Zaz):1:14:nan: ++%*32lA: +NAN(09A_Zaz):0:14: ++%32lA: +0X0P0:1:7:0x0: ++%*32lA: +0X0P0:0:7: ++%32lA: +0X0P+0:1:8:0x0: ++%*32lA: +0X0P+0:0:8: ++%32lA: +0X8P-1025:1:11:0x1p-1022: ++%*32lA: +0X8P-1025:0:11: ++%32lA: +0X2.3456789ABCDFEP0123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32lA: +0X2.3456789ABCDFEP0123:0:24: ++%32lA: +0X2.3456789ABCDFEP+123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32lA: +0X2.3456789ABCDFEP+123:0:24: ++%32lA: +0X7.FFFFFFFFFFFFCP1021:1:24:0x1.fffffffffffffp1023: ++%*32lA: +0X7.FFFFFFFFFFFFCP1021:0:24: ++%32lA: +0XF.FFFFFFFFFFFF8P+1020:1:25:0x1.fffffffffffffp1023: ++%*32lA: +0XF.FFFFFFFFFFFF8P+1020:0:25: ++%32lA: +INFINITY:1:10:inf: ++%*32lA: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input +new file mode 100644 +index 0000000000000000..cf1ea542c94e4082 +--- /dev/null ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input +@@ -0,0 +1,558 @@ ++%le::0:-1: ++%*le::0:-1: ++%le:-infinity:1:9:-inf: ++%*le:-infinity:0:9: ++%le:-1.79769313486231570814527423731704357e+308:1:43:-0x1.fffffffffffffp1023: ++%*le:-1.79769313486231570814527423731704357e+308:0:43: ++%le:-1.79769313486231570814527423731704357e308:1:42:-0x1.fffffffffffffp1023: ++%*le:-1.79769313486231570814527423731704357e308:0:42: ++%le:-2.3441674165664682593913711430784253952e+37:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*le:-2.3441674165664682593913711430784253952e+37:0:44: ++%le:-2.3441674165664682593913711430784253952e037:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*le:-2.3441674165664682593913711430784253952e037:0:44: ++%le:-2.22507385850720138309023271733240406e-308:1:43:-0x1p-1022: ++%*le:-2.22507385850720138309023271733240406e-308:0:43: ++%le:-0e+0:1:5:-0x0: ++%*le:-0e+0:0:5: ++%le:-0e0:1:4:-0x0: ++%*le:-0e0:0:4: ++%le:-nan(09A_Zaz):1:13:-nan: ++%*le:-nan(09A_Zaz):0:13: ++%le:-nan():1:6:-nan: ++%*le:-nan():0:6: ++%le:nan():1:5:nan: ++%*le:nan():0:5: ++%le:nan(09A_Zaz):1:12:nan: ++%*le:nan(09A_Zaz):0:12: ++%le:0e0:1:3:0x0: ++%*le:0e0:0:3: ++%le:0e+0:1:4:0x0: ++%*le:0e+0:0:4: ++%le:2.22507385850720138309023271733240406e-308:1:42:0x1p-1022: ++%*le:2.22507385850720138309023271733240406e-308:0:42: ++%le:2.3441674165664682593913711430784253952e037:1:43:0x1.1a2b3c4d5e6ffp124: ++%*le:2.3441674165664682593913711430784253952e037:0:43: ++%le:2.3441674165664682593913711430784253952e+37:1:43:0x1.1a2b3c4d5e6ffp124: ++%*le:2.3441674165664682593913711430784253952e+37:0:43: ++%le:1.79769313486231570814527423731704357e308:1:41:0x1.fffffffffffffp1023: ++%*le:1.79769313486231570814527423731704357e308:0:41: ++%le:1.79769313486231570814527423731704357e+308:1:42:0x1.fffffffffffffp1023: ++%*le:1.79769313486231570814527423731704357e+308:0:42: ++%le:infinity:1:8:inf: ++%*le:infinity:0:8: ++%le:+nan():1:6:nan: ++%*le:+nan():0:6: ++%le:+nan(09A_Zaz):1:13:nan: ++%*le:+nan(09A_Zaz):0:13: ++%le:+0e0:1:4:0x0: ++%*le:+0e0:0:4: ++%le:+0e+0:1:5:0x0: ++%*le:+0e+0:0:5: ++%le:+2.22507385850720138309023271733240406e-308:1:43:0x1p-1022: ++%*le:+2.22507385850720138309023271733240406e-308:0:43: ++%le:+2.3441674165664682593913711430784253952e037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*le:+2.3441674165664682593913711430784253952e037:0:44: ++%le:+2.3441674165664682593913711430784253952e+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*le:+2.3441674165664682593913711430784253952e+37:0:44: ++%le:+1.79769313486231570814527423731704357e308:1:42:0x1.fffffffffffffp1023: ++%*le:+1.79769313486231570814527423731704357e308:0:42: ++%le:+1.79769313486231570814527423731704357e+308:1:43:0x1.fffffffffffffp1023: ++%*le:+1.79769313486231570814527423731704357e+308:0:43: ++%le:+infinity:1:9:inf: ++%*le:+infinity:0:9: ++%1le::0:-1: ++%*1le::0:-1: ++%1le:-infinity:0:-1: ++%*1le:-infinity:0:-1: ++%1le:-1.79769313486231570814527423731704357e+308:0:-1: ++%*1le:-1.79769313486231570814527423731704357e+308:0:-1: ++%1le:-1.79769313486231570814527423731704357e308:0:-1: ++%*1le:-1.79769313486231570814527423731704357e308:0:-1: ++%1le:-2.3441674165664682593913711430784253952e+37:0:-1: ++%*1le:-2.3441674165664682593913711430784253952e+37:0:-1: ++%1le:-2.3441674165664682593913711430784253952e037:0:-1: ++%*1le:-2.3441674165664682593913711430784253952e037:0:-1: ++%1le:-2.22507385850720138309023271733240406e-308:0:-1: ++%*1le:-2.22507385850720138309023271733240406e-308:0:-1: ++%1le:-0e+0:0:-1: ++%*1le:-0e+0:0:-1: ++%1le:-0e0:0:-1: ++%*1le:-0e0:0:-1: ++%1le:-nan(09A_Zaz):0:-1: ++%*1le:-nan(09A_Zaz):0:-1: ++%1le:-nan():0:-1: ++%*1le:-nan():0:-1: ++%1le:nan():0:-1: ++%*1le:nan():0:-1: ++%1le:nan(09A_Zaz):0:-1: ++%*1le:nan(09A_Zaz):0:-1: ++%1le:0e0:1:1:0x0: ++%*1le:0e0:0:1: ++%1le:0e+0:1:1:0x0: ++%*1le:0e+0:0:1: ++%1le:2.22507385850720138309023271733240406e-308:1:1:0x1p1: ++%*1le:2.22507385850720138309023271733240406e-308:0:1: ++%1le:2.3441674165664682593913711430784253952e037:1:1:0x1p1: ++%*1le:2.3441674165664682593913711430784253952e037:0:1: ++%1le:2.3441674165664682593913711430784253952e+37:1:1:0x1p1: ++%*1le:2.3441674165664682593913711430784253952e+37:0:1: ++%1le:1.79769313486231570814527423731704357e308:1:1:0x1: ++%*1le:1.79769313486231570814527423731704357e308:0:1: ++%1le:1.79769313486231570814527423731704357e+308:1:1:0x1: ++%*1le:1.79769313486231570814527423731704357e+308:0:1: ++%1le:infinity:0:-1: ++%*1le:infinity:0:-1: ++%1le:+nan():0:-1: ++%*1le:+nan():0:-1: ++%1le:+nan(09A_Zaz):0:-1: ++%*1le:+nan(09A_Zaz):0:-1: ++%1le:+0e0:0:-1: ++%*1le:+0e0:0:-1: ++%1le:+0e+0:0:-1: ++%*1le:+0e+0:0:-1: ++%1le:+2.22507385850720138309023271733240406e-308:0:-1: ++%*1le:+2.22507385850720138309023271733240406e-308:0:-1: ++%1le:+2.3441674165664682593913711430784253952e037:0:-1: ++%*1le:+2.3441674165664682593913711430784253952e037:0:-1: ++%1le:+2.3441674165664682593913711430784253952e+37:0:-1: ++%*1le:+2.3441674165664682593913711430784253952e+37:0:-1: ++%1le:+1.79769313486231570814527423731704357e308:0:-1: ++%*1le:+1.79769313486231570814527423731704357e308:0:-1: ++%1le:+1.79769313486231570814527423731704357e+308:0:-1: ++%*1le:+1.79769313486231570814527423731704357e+308:0:-1: ++%1le:+infinity:0:-1: ++%*1le:+infinity:0:-1: ++%2le::0:-1: ++%*2le::0:-1: ++%2le:-infinity:0:-1: ++%*2le:-infinity:0:-1: ++%2le:-1.79769313486231570814527423731704357e+308:1:2:-0x1: ++%*2le:-1.79769313486231570814527423731704357e+308:0:2: ++%2le:-1.79769313486231570814527423731704357e308:1:2:-0x1: ++%*2le:-1.79769313486231570814527423731704357e308:0:2: ++%2le:-2.3441674165664682593913711430784253952e+37:1:2:-0x1p1: ++%*2le:-2.3441674165664682593913711430784253952e+37:0:2: ++%2le:-2.3441674165664682593913711430784253952e037:1:2:-0x1p1: ++%*2le:-2.3441674165664682593913711430784253952e037:0:2: ++%2le:-2.22507385850720138309023271733240406e-308:1:2:-0x1p1: ++%*2le:-2.22507385850720138309023271733240406e-308:0:2: ++%2le:-0e+0:1:2:-0x0: ++%*2le:-0e+0:0:2: ++%2le:-0e0:1:2:-0x0: ++%*2le:-0e0:0:2: ++%2le:-nan(09A_Zaz):0:-1: ++%*2le:-nan(09A_Zaz):0:-1: ++%2le:-nan():0:-1: ++%*2le:-nan():0:-1: ++%2le:nan():0:-1: ++%*2le:nan():0:-1: ++%2le:nan(09A_Zaz):0:-1: ++%*2le:nan(09A_Zaz):0:-1: ++# BZ12701 %2le:0e0:0:-1: ++# BZ12701 %*2le:0e0:0:-1: ++# BZ12701 %2le:0e+0:0:-1: ++# BZ12701 %*2le:0e+0:0:-1: ++%2le:2.22507385850720138309023271733240406e-308:1:2:0x1p1: ++%*2le:2.22507385850720138309023271733240406e-308:0:2: ++%2le:2.3441674165664682593913711430784253952e037:1:2:0x1p1: ++%*2le:2.3441674165664682593913711430784253952e037:0:2: ++%2le:2.3441674165664682593913711430784253952e+37:1:2:0x1p1: ++%*2le:2.3441674165664682593913711430784253952e+37:0:2: ++%2le:1.79769313486231570814527423731704357e308:1:2:0x1: ++%*2le:1.79769313486231570814527423731704357e308:0:2: ++%2le:1.79769313486231570814527423731704357e+308:1:2:0x1: ++%*2le:1.79769313486231570814527423731704357e+308:0:2: ++%2le:infinity:0:-1: ++%*2le:infinity:0:-1: ++%2le:+nan():0:-1: ++%*2le:+nan():0:-1: ++%2le:+nan(09A_Zaz):0:-1: ++%*2le:+nan(09A_Zaz):0:-1: ++%2le:+0e0:1:2:0x0: ++%*2le:+0e0:0:2: ++%2le:+0e+0:1:2:0x0: ++%*2le:+0e+0:0:2: ++%2le:+2.22507385850720138309023271733240406e-308:1:2:0x1p1: ++%*2le:+2.22507385850720138309023271733240406e-308:0:2: ++%2le:+2.3441674165664682593913711430784253952e037:1:2:0x1p1: ++%*2le:+2.3441674165664682593913711430784253952e037:0:2: ++%2le:+2.3441674165664682593913711430784253952e+37:1:2:0x1p1: ++%*2le:+2.3441674165664682593913711430784253952e+37:0:2: ++%2le:+1.79769313486231570814527423731704357e308:1:2:0x1: ++%*2le:+1.79769313486231570814527423731704357e308:0:2: ++%2le:+1.79769313486231570814527423731704357e+308:1:2:0x1: ++%*2le:+1.79769313486231570814527423731704357e+308:0:2: ++%2le:+infinity:0:-1: ++%*2le:+infinity:0:-1: ++%3le::0:-1: ++%*3le::0:-1: ++%3le:-infinity:0:-1: ++%*3le:-infinity:0:-1: ++%3le:-1.79769313486231570814527423731704357e+308:1:3:-0x1: ++%*3le:-1.79769313486231570814527423731704357e+308:0:3: ++%3le:-1.79769313486231570814527423731704357e308:1:3:-0x1: ++%*3le:-1.79769313486231570814527423731704357e308:0:3: ++%3le:-2.3441674165664682593913711430784253952e+37:1:3:-0x1p1: ++%*3le:-2.3441674165664682593913711430784253952e+37:0:3: ++%3le:-2.3441674165664682593913711430784253952e037:1:3:-0x1p1: ++%*3le:-2.3441674165664682593913711430784253952e037:0:3: ++%3le:-2.22507385850720138309023271733240406e-308:1:3:-0x1p1: ++%*3le:-2.22507385850720138309023271733240406e-308:0:3: ++# BZ12701 %3le:-0e+0:0:-1: ++# BZ12701 %*3le:-0e+0:0:-1: ++# BZ12701 %3le:-0e0:0:-1: ++# BZ12701 %*3le:-0e0:0:-1: ++%3le:-nan(09A_Zaz):0:-1: ++%*3le:-nan(09A_Zaz):0:-1: ++%3le:-nan():0:-1: ++%*3le:-nan():0:-1: ++%3le:nan():1:3:nan: ++%*3le:nan():0:3: ++%3le:nan(09A_Zaz):1:3:nan: ++%*3le:nan(09A_Zaz):0:3: ++%3le:0e0:1:3:0x0: ++%*3le:0e0:0:3: ++# BZ12701 %3le:0e+0:0:-1: ++# BZ12701 %*3le:0e+0:0:-1: ++%3le:2.22507385850720138309023271733240406e-308:1:3:0x1.199999999999ap1: ++%*3le:2.22507385850720138309023271733240406e-308:0:3: ++%3le:2.3441674165664682593913711430784253952e037:1:3:0x1.2666666666666p1: ++%*3le:2.3441674165664682593913711430784253952e037:0:3: ++%3le:2.3441674165664682593913711430784253952e+37:1:3:0x1.2666666666666p1: ++%*3le:2.3441674165664682593913711430784253952e+37:0:3: ++%3le:1.79769313486231570814527423731704357e308:1:3:0x1.b333333333333: ++%*3le:1.79769313486231570814527423731704357e308:0:3: ++%3le:1.79769313486231570814527423731704357e+308:1:3:0x1.b333333333333: ++%*3le:1.79769313486231570814527423731704357e+308:0:3: ++%3le:infinity:1:3:inf: ++%*3le:infinity:0:3: ++%3le:+nan():0:-1: ++%*3le:+nan():0:-1: ++%3le:+nan(09A_Zaz):0:-1: ++%*3le:+nan(09A_Zaz):0:-1: ++# BZ12701 %3le:+0e0:0:-1: ++# BZ12701 %*3le:+0e0:0:-1: ++# BZ12701 %3le:+0e+0:0:-1: ++# BZ12701 %*3le:+0e+0:0:-1: ++%3le:+2.22507385850720138309023271733240406e-308:1:3:0x1p1: ++%*3le:+2.22507385850720138309023271733240406e-308:0:3: ++%3le:+2.3441674165664682593913711430784253952e037:1:3:0x1p1: ++%*3le:+2.3441674165664682593913711430784253952e037:0:3: ++%3le:+2.3441674165664682593913711430784253952e+37:1:3:0x1p1: ++%*3le:+2.3441674165664682593913711430784253952e+37:0:3: ++%3le:+1.79769313486231570814527423731704357e308:1:3:0x1: ++%*3le:+1.79769313486231570814527423731704357e308:0:3: ++%3le:+1.79769313486231570814527423731704357e+308:1:3:0x1: ++%*3le:+1.79769313486231570814527423731704357e+308:0:3: ++%3le:+infinity:0:-1: ++%*3le:+infinity:0:-1: ++%4le::0:-1: ++%*4le::0:-1: ++%4le:-infinity:1:4:-inf: ++%*4le:-infinity:0:4: ++%4le:-1.79769313486231570814527423731704357e+308:1:4:-0x1.b333333333333: ++%*4le:-1.79769313486231570814527423731704357e+308:0:4: ++%4le:-1.79769313486231570814527423731704357e308:1:4:-0x1.b333333333333: ++%*4le:-1.79769313486231570814527423731704357e308:0:4: ++%4le:-2.3441674165664682593913711430784253952e+37:1:4:-0x1.2666666666666p1: ++%*4le:-2.3441674165664682593913711430784253952e+37:0:4: ++%4le:-2.3441674165664682593913711430784253952e037:1:4:-0x1.2666666666666p1: ++%*4le:-2.3441674165664682593913711430784253952e037:0:4: ++%4le:-2.22507385850720138309023271733240406e-308:1:4:-0x1.199999999999ap1: ++%*4le:-2.22507385850720138309023271733240406e-308:0:4: ++# BZ12701 %4le:-0e+0:0:-1: ++# BZ12701 %*4le:-0e+0:0:-1: ++%4le:-0e0:1:4:-0x0: ++%*4le:-0e0:0:4: ++%4le:-nan(09A_Zaz):1:4:-nan: ++%*4le:-nan(09A_Zaz):0:4: ++%4le:-nan():1:4:-nan: ++%*4le:-nan():0:4: ++%4le:nan():0:-1: ++%*4le:nan():0:-1: ++%4le:nan(09A_Zaz):0:-1: ++%*4le:nan(09A_Zaz):0:-1: ++%4le:0e0:1:3:0x0: ++%*4le:0e0:0:3: ++%4le:0e+0:1:4:0x0: ++%*4le:0e+0:0:4: ++%4le:2.22507385850720138309023271733240406e-308:1:4:0x1.1c28f5c28f5c3p1: ++%*4le:2.22507385850720138309023271733240406e-308:0:4: ++%4le:2.3441674165664682593913711430784253952e037:1:4:0x1.2b851eb851eb8p1: ++%*4le:2.3441674165664682593913711430784253952e037:0:4: ++%4le:2.3441674165664682593913711430784253952e+37:1:4:0x1.2b851eb851eb8p1: ++%*4le:2.3441674165664682593913711430784253952e+37:0:4: ++%4le:1.79769313486231570814527423731704357e308:1:4:0x1.ca3d70a3d70a4: ++%*4le:1.79769313486231570814527423731704357e308:0:4: ++%4le:1.79769313486231570814527423731704357e+308:1:4:0x1.ca3d70a3d70a4: ++%*4le:1.79769313486231570814527423731704357e+308:0:4: ++%4le:infinity:0:-1: ++%*4le:infinity:0:-1: ++%4le:+nan():1:4:nan: ++%*4le:+nan():0:4: ++%4le:+nan(09A_Zaz):1:4:nan: ++%*4le:+nan(09A_Zaz):0:4: ++%4le:+0e0:1:4:0x0: ++%*4le:+0e0:0:4: ++# BZ12701 %4le:+0e+0:0:-1: ++# BZ12701 %*4le:+0e+0:0:-1: ++%4le:+2.22507385850720138309023271733240406e-308:1:4:0x1.199999999999ap1: ++%*4le:+2.22507385850720138309023271733240406e-308:0:4: ++%4le:+2.3441674165664682593913711430784253952e037:1:4:0x1.2666666666666p1: ++%*4le:+2.3441674165664682593913711430784253952e037:0:4: ++%4le:+2.3441674165664682593913711430784253952e+37:1:4:0x1.2666666666666p1: ++%*4le:+2.3441674165664682593913711430784253952e+37:0:4: ++%4le:+1.79769313486231570814527423731704357e308:1:4:0x1.b333333333333: ++%*4le:+1.79769313486231570814527423731704357e308:0:4: ++%4le:+1.79769313486231570814527423731704357e+308:1:4:0x1.b333333333333: ++%*4le:+1.79769313486231570814527423731704357e+308:0:4: ++%4le:+infinity:1:4:inf: ++%*4le:+infinity:0:4: ++%40le::0:-1: ++%*40le::0:-1: ++%40le:-infinity:1:9:-inf: ++%*40le:-infinity:0:9: ++# BZ12701 %40le:-1.79769313486231570814527423731704357e+308:0:-1: ++# BZ12701 %*40le:-1.79769313486231570814527423731704357e+308:0:-1: ++%40le:-1.79769313486231570814527423731704357e308:1:40:-0x1.c16c5c5253574p10: ++%*40le:-1.79769313486231570814527423731704357e308:0:40: ++%40le:-2.3441674165664682593913711430784253952e+37:1:40:-0x1.2c0dad8b403aap1: ++%*40le:-2.3441674165664682593913711430784253952e+37:0:40: ++%40le:-2.3441674165664682593913711430784253952e037:1:40:-0x1.2c0dad8b403aap1: ++%*40le:-2.3441674165664682593913711430784253952e037:0:40: ++# BZ12701 %40le:-2.22507385850720138309023271733240406e-308:0:-1: ++# BZ12701 %*40le:-2.22507385850720138309023271733240406e-308:0:-1: ++%40le:-0e+0:1:5:-0x0: ++%*40le:-0e+0:0:5: ++%40le:-0e0:1:4:-0x0: ++%*40le:-0e0:0:4: ++%40le:-nan(09A_Zaz):1:13:-nan: ++%*40le:-nan(09A_Zaz):0:13: ++%40le:-nan():1:6:-nan: ++%*40le:-nan():0:6: ++%40le:nan():1:5:nan: ++%*40le:nan():0:5: ++%40le:nan(09A_Zaz):1:12:nan: ++%*40le:nan(09A_Zaz):0:12: ++%40le:0e0:1:3:0x0: ++%*40le:0e0:0:3: ++%40le:0e+0:1:4:0x0: ++%*40le:0e+0:0:4: ++%40le:2.22507385850720138309023271733240406e-308:1:40:0x1.23a516e82d9bap-9: ++%*40le:2.22507385850720138309023271733240406e-308:0:40: ++# BZ12701 %40le:2.3441674165664682593913711430784253952e037:0:-1: ++# BZ12701 %*40le:2.3441674165664682593913711430784253952e037:0:-1: ++# BZ12701 %40le:2.3441674165664682593913711430784253952e+37:0:-1: ++# BZ12701 %*40le:2.3441674165664682593913711430784253952e+37:0:-1: ++%40le:1.79769313486231570814527423731704357e308:1:40:0x1.6b0a8e891ffffp100: ++%*40le:1.79769313486231570814527423731704357e308:0:40: ++%40le:1.79769313486231570814527423731704357e+308:1:40:0x1.c16c5c5253574p10: ++%*40le:1.79769313486231570814527423731704357e+308:0:40: ++%40le:infinity:1:8:inf: ++%*40le:infinity:0:8: ++%40le:+nan():1:6:nan: ++%*40le:+nan():0:6: ++%40le:+nan(09A_Zaz):1:13:nan: ++%*40le:+nan(09A_Zaz):0:13: ++%40le:+0e0:1:4:0x0: ++%*40le:+0e0:0:4: ++%40le:+0e+0:1:5:0x0: ++%*40le:+0e+0:0:5: ++# BZ12701 %40le:+2.22507385850720138309023271733240406e-308:0:-1: ++# BZ12701 %*40le:+2.22507385850720138309023271733240406e-308:0:-1: ++%40le:+2.3441674165664682593913711430784253952e037:1:40:0x1.2c0dad8b403aap1: ++%*40le:+2.3441674165664682593913711430784253952e037:0:40: ++%40le:+2.3441674165664682593913711430784253952e+37:1:40:0x1.2c0dad8b403aap1: ++%*40le:+2.3441674165664682593913711430784253952e+37:0:40: ++%40le:+1.79769313486231570814527423731704357e308:1:40:0x1.c16c5c5253574p10: ++%*40le:+1.79769313486231570814527423731704357e308:0:40: ++# BZ12701 %40le:+1.79769313486231570814527423731704357e+308:0:-1: ++# BZ12701 %*40le:+1.79769313486231570814527423731704357e+308:0:-1: ++%40le:+infinity:1:9:inf: ++%*40le:+infinity:0:9: ++%48le::0:-1: ++%*48le::0:-1: ++%48le:-infinity:1:9:-inf: ++%*48le:-infinity:0:9: ++%48le:-1.79769313486231570814527423731704357e+308:1:43:-0x1.fffffffffffffp1023: ++%*48le:-1.79769313486231570814527423731704357e+308:0:43: ++%48le:-1.79769313486231570814527423731704357e308:1:42:-0x1.fffffffffffffp1023: ++%*48le:-1.79769313486231570814527423731704357e308:0:42: ++%48le:-2.3441674165664682593913711430784253952e+37:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*48le:-2.3441674165664682593913711430784253952e+37:0:44: ++%48le:-2.3441674165664682593913711430784253952e037:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*48le:-2.3441674165664682593913711430784253952e037:0:44: ++%48le:-2.22507385850720138309023271733240406e-308:1:43:-0x1p-1022: ++%*48le:-2.22507385850720138309023271733240406e-308:0:43: ++%48le:-0e+0:1:5:-0x0: ++%*48le:-0e+0:0:5: ++%48le:-0e0:1:4:-0x0: ++%*48le:-0e0:0:4: ++%48le:-nan(09A_Zaz):1:13:-nan: ++%*48le:-nan(09A_Zaz):0:13: ++%48le:-nan():1:6:-nan: ++%*48le:-nan():0:6: ++%48le:nan():1:5:nan: ++%*48le:nan():0:5: ++%48le:nan(09A_Zaz):1:12:nan: ++%*48le:nan(09A_Zaz):0:12: ++%48le:0e0:1:3:0x0: ++%*48le:0e0:0:3: ++%48le:0e+0:1:4:0x0: ++%*48le:0e+0:0:4: ++%48le:2.22507385850720138309023271733240406e-308:1:42:0x1p-1022: ++%*48le:2.22507385850720138309023271733240406e-308:0:42: ++%48le:2.3441674165664682593913711430784253952e037:1:43:0x1.1a2b3c4d5e6ffp124: ++%*48le:2.3441674165664682593913711430784253952e037:0:43: ++%48le:2.3441674165664682593913711430784253952e+37:1:43:0x1.1a2b3c4d5e6ffp124: ++%*48le:2.3441674165664682593913711430784253952e+37:0:43: ++%48le:1.79769313486231570814527423731704357e308:1:41:0x1.fffffffffffffp1023: ++%*48le:1.79769313486231570814527423731704357e308:0:41: ++%48le:1.79769313486231570814527423731704357e+308:1:42:0x1.fffffffffffffp1023: ++%*48le:1.79769313486231570814527423731704357e+308:0:42: ++%48le:infinity:1:8:inf: ++%*48le:infinity:0:8: ++%48le:+nan():1:6:nan: ++%*48le:+nan():0:6: ++%48le:+nan(09A_Zaz):1:13:nan: ++%*48le:+nan(09A_Zaz):0:13: ++%48le:+0e0:1:4:0x0: ++%*48le:+0e0:0:4: ++%48le:+0e+0:1:5:0x0: ++%*48le:+0e+0:0:5: ++%48le:+2.22507385850720138309023271733240406e-308:1:43:0x1p-1022: ++%*48le:+2.22507385850720138309023271733240406e-308:0:43: ++%48le:+2.3441674165664682593913711430784253952e037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48le:+2.3441674165664682593913711430784253952e037:0:44: ++%48le:+2.3441674165664682593913711430784253952e+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48le:+2.3441674165664682593913711430784253952e+37:0:44: ++%48le:+1.79769313486231570814527423731704357e308:1:42:0x1.fffffffffffffp1023: ++%*48le:+1.79769313486231570814527423731704357e308:0:42: ++%48le:+1.79769313486231570814527423731704357e+308:1:43:0x1.fffffffffffffp1023: ++%*48le:+1.79769313486231570814527423731704357e+308:0:43: ++%48le:+infinity:1:9:inf: ++%*48le:+infinity:0:9: ++%3le: :0:-1: ++%*3le: :0:-1: ++%3le: -infinity:0:-1: ++%*3le: -infinity:0:-1: ++%3le: -1.79769313486231570814527423731704357e+308:1:4:-0x1: ++%*3le: -1.79769313486231570814527423731704357e+308:0:4: ++%3le: -1.79769313486231570814527423731704357e308:1:4:-0x1: ++%*3le: -1.79769313486231570814527423731704357e308:0:4: ++%3le: -2.3441674165664682593913711430784253952e+37:1:4:-0x1p1: ++%*3le: -2.3441674165664682593913711430784253952e+37:0:4: ++%3le: -2.3441674165664682593913711430784253952e037:1:4:-0x1p1: ++%*3le: -2.3441674165664682593913711430784253952e037:0:4: ++%3le: -2.22507385850720138309023271733240406e-308:1:4:-0x1p1: ++%*3le: -2.22507385850720138309023271733240406e-308:0:4: ++# BZ12701 %3le: -0e+0:0:-1: ++# BZ12701 %*3le: -0e+0:0:-1: ++# BZ12701 %3le: -0e0:0:-1: ++# BZ12701 %*3le: -0e0:0:-1: ++%3le: -nan(09A_Zaz):0:-1: ++%*3le: -nan(09A_Zaz):0:-1: ++%3le: -nan():0:-1: ++%*3le: -nan():0:-1: ++%3le: nan():1:4:nan: ++%*3le: nan():0:4: ++%3le: nan(09A_Zaz):1:4:nan: ++%*3le: nan(09A_Zaz):0:4: ++%3le: 0e0:1:4:0x0: ++%*3le: 0e0:0:4: ++# BZ12701 %3le: 0e+0:0:-1: ++# BZ12701 %*3le: 0e+0:0:-1: ++%3le: 2.22507385850720138309023271733240406e-308:1:4:0x1.199999999999ap1: ++%*3le: 2.22507385850720138309023271733240406e-308:0:4: ++%3le: 2.3441674165664682593913711430784253952e037:1:4:0x1.2666666666666p1: ++%*3le: 2.3441674165664682593913711430784253952e037:0:4: ++%3le: 2.3441674165664682593913711430784253952e+37:1:4:0x1.2666666666666p1: ++%*3le: 2.3441674165664682593913711430784253952e+37:0:4: ++%3le: 1.79769313486231570814527423731704357e308:1:4:0x1.b333333333333: ++%*3le: 1.79769313486231570814527423731704357e308:0:4: ++%3le: 1.79769313486231570814527423731704357e+308:1:4:0x1.b333333333333: ++%*3le: 1.79769313486231570814527423731704357e+308:0:4: ++%3le: infinity:1:4:inf: ++%*3le: infinity:0:4: ++%3le: +nan():0:-1: ++%*3le: +nan():0:-1: ++%3le: +nan(09A_Zaz):0:-1: ++%*3le: +nan(09A_Zaz):0:-1: ++# BZ12701 %3le: +0e0:0:-1: ++# BZ12701 %*3le: +0e0:0:-1: ++# BZ12701 %3le: +0e+0:0:-1: ++# BZ12701 %*3le: +0e+0:0:-1: ++%3le: +2.22507385850720138309023271733240406e-308:1:4:0x1p1: ++%*3le: +2.22507385850720138309023271733240406e-308:0:4: ++%3le: +2.3441674165664682593913711430784253952e037:1:4:0x1p1: ++%*3le: +2.3441674165664682593913711430784253952e037:0:4: ++%3le: +2.3441674165664682593913711430784253952e+37:1:4:0x1p1: ++%*3le: +2.3441674165664682593913711430784253952e+37:0:4: ++%3le: +1.79769313486231570814527423731704357e308:1:4:0x1: ++%*3le: +1.79769313486231570814527423731704357e308:0:4: ++%3le: +1.79769313486231570814527423731704357e+308:1:4:0x1: ++%*3le: +1.79769313486231570814527423731704357e+308:0:4: ++%3le: +infinity:0:-1: ++%*3le: +infinity:0:-1: ++%48le: :0:-1: ++%*48le: :0:-1: ++%48le: -infinity:1:10:-inf: ++%*48le: -infinity:0:10: ++%48le: -1.79769313486231570814527423731704357e+308:1:44:-0x1.fffffffffffffp1023: ++%*48le: -1.79769313486231570814527423731704357e+308:0:44: ++%48le: -1.79769313486231570814527423731704357e308:1:43:-0x1.fffffffffffffp1023: ++%*48le: -1.79769313486231570814527423731704357e308:0:43: ++%48le: -2.3441674165664682593913711430784253952e+37:1:45:-0x1.1a2b3c4d5e6ffp124: ++%*48le: -2.3441674165664682593913711430784253952e+37:0:45: ++%48le: -2.3441674165664682593913711430784253952e037:1:45:-0x1.1a2b3c4d5e6ffp124: ++%*48le: -2.3441674165664682593913711430784253952e037:0:45: ++%48le: -2.22507385850720138309023271733240406e-308:1:44:-0x1p-1022: ++%*48le: -2.22507385850720138309023271733240406e-308:0:44: ++%48le: -0e+0:1:6:-0x0: ++%*48le: -0e+0:0:6: ++%48le: -0e0:1:5:-0x0: ++%*48le: -0e0:0:5: ++%48le: -nan(09A_Zaz):1:14:-nan: ++%*48le: -nan(09A_Zaz):0:14: ++%48le: -nan():1:7:-nan: ++%*48le: -nan():0:7: ++%48le: nan():1:6:nan: ++%*48le: nan():0:6: ++%48le: nan(09A_Zaz):1:13:nan: ++%*48le: nan(09A_Zaz):0:13: ++%48le: 0e0:1:4:0x0: ++%*48le: 0e0:0:4: ++%48le: 0e+0:1:5:0x0: ++%*48le: 0e+0:0:5: ++%48le: 2.22507385850720138309023271733240406e-308:1:43:0x1p-1022: ++%*48le: 2.22507385850720138309023271733240406e-308:0:43: ++%48le: 2.3441674165664682593913711430784253952e037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48le: 2.3441674165664682593913711430784253952e037:0:44: ++%48le: 2.3441674165664682593913711430784253952e+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48le: 2.3441674165664682593913711430784253952e+37:0:44: ++%48le: 1.79769313486231570814527423731704357e308:1:42:0x1.fffffffffffffp1023: ++%*48le: 1.79769313486231570814527423731704357e308:0:42: ++%48le: 1.79769313486231570814527423731704357e+308:1:43:0x1.fffffffffffffp1023: ++%*48le: 1.79769313486231570814527423731704357e+308:0:43: ++%48le: infinity:1:9:inf: ++%*48le: infinity:0:9: ++%48le: +nan():1:7:nan: ++%*48le: +nan():0:7: ++%48le: +nan(09A_Zaz):1:14:nan: ++%*48le: +nan(09A_Zaz):0:14: ++%48le: +0e0:1:5:0x0: ++%*48le: +0e0:0:5: ++%48le: +0e+0:1:6:0x0: ++%*48le: +0e+0:0:6: ++%48le: +2.22507385850720138309023271733240406e-308:1:44:0x1p-1022: ++%*48le: +2.22507385850720138309023271733240406e-308:0:44: ++%48le: +2.3441674165664682593913711430784253952e037:1:45:0x1.1a2b3c4d5e6ffp124: ++%*48le: +2.3441674165664682593913711430784253952e037:0:45: ++%48le: +2.3441674165664682593913711430784253952e+37:1:45:0x1.1a2b3c4d5e6ffp124: ++%*48le: +2.3441674165664682593913711430784253952e+37:0:45: ++%48le: +1.79769313486231570814527423731704357e308:1:43:0x1.fffffffffffffp1023: ++%*48le: +1.79769313486231570814527423731704357e308:0:43: ++%48le: +1.79769313486231570814527423731704357e+308:1:44:0x1.fffffffffffffp1023: ++%*48le: +1.79769313486231570814527423731704357e+308:0:44: ++%48le: +infinity:1:10:inf: ++%*48le: +infinity:0:10: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ee.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ee.input +new file mode 100644 +index 0000000000000000..ba9d5cbb45cfb659 +--- /dev/null ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ee.input +@@ -0,0 +1,558 @@ ++%lE::0:-1: ++%*lE::0:-1: ++%lE:-INFINITY:1:9:-inf: ++%*lE:-INFINITY:0:9: ++%lE:-1.79769313486231570814527423731704357E+308:1:43:-0x1.fffffffffffffp1023: ++%*lE:-1.79769313486231570814527423731704357E+308:0:43: ++%lE:-1.79769313486231570814527423731704357E308:1:42:-0x1.fffffffffffffp1023: ++%*lE:-1.79769313486231570814527423731704357E308:0:42: ++%lE:-2.3441674165664682593913711430784253952E+37:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*lE:-2.3441674165664682593913711430784253952E+37:0:44: ++%lE:-2.3441674165664682593913711430784253952E037:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*lE:-2.3441674165664682593913711430784253952E037:0:44: ++%lE:-2.22507385850720138309023271733240406E-308:1:43:-0x1p-1022: ++%*lE:-2.22507385850720138309023271733240406E-308:0:43: ++%lE:-0E+0:1:5:-0x0: ++%*lE:-0E+0:0:5: ++%lE:-0E0:1:4:-0x0: ++%*lE:-0E0:0:4: ++%lE:-NAN(09A_Zaz):1:13:-nan: ++%*lE:-NAN(09A_Zaz):0:13: ++%lE:-NAN():1:6:-nan: ++%*lE:-NAN():0:6: ++%lE:NAN():1:5:nan: ++%*lE:NAN():0:5: ++%lE:NAN(09A_Zaz):1:12:nan: ++%*lE:NAN(09A_Zaz):0:12: ++%lE:0E0:1:3:0x0: ++%*lE:0E0:0:3: ++%lE:0E+0:1:4:0x0: ++%*lE:0E+0:0:4: ++%lE:2.22507385850720138309023271733240406E-308:1:42:0x1p-1022: ++%*lE:2.22507385850720138309023271733240406E-308:0:42: ++%lE:2.3441674165664682593913711430784253952E037:1:43:0x1.1a2b3c4d5e6ffp124: ++%*lE:2.3441674165664682593913711430784253952E037:0:43: ++%lE:2.3441674165664682593913711430784253952E+37:1:43:0x1.1a2b3c4d5e6ffp124: ++%*lE:2.3441674165664682593913711430784253952E+37:0:43: ++%lE:1.79769313486231570814527423731704357E308:1:41:0x1.fffffffffffffp1023: ++%*lE:1.79769313486231570814527423731704357E308:0:41: ++%lE:1.79769313486231570814527423731704357E+308:1:42:0x1.fffffffffffffp1023: ++%*lE:1.79769313486231570814527423731704357E+308:0:42: ++%lE:INFINITY:1:8:inf: ++%*lE:INFINITY:0:8: ++%lE:+NAN():1:6:nan: ++%*lE:+NAN():0:6: ++%lE:+NAN(09A_Zaz):1:13:nan: ++%*lE:+NAN(09A_Zaz):0:13: ++%lE:+0E0:1:4:0x0: ++%*lE:+0E0:0:4: ++%lE:+0E+0:1:5:0x0: ++%*lE:+0E+0:0:5: ++%lE:+2.22507385850720138309023271733240406E-308:1:43:0x1p-1022: ++%*lE:+2.22507385850720138309023271733240406E-308:0:43: ++%lE:+2.3441674165664682593913711430784253952E037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*lE:+2.3441674165664682593913711430784253952E037:0:44: ++%lE:+2.3441674165664682593913711430784253952E+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*lE:+2.3441674165664682593913711430784253952E+37:0:44: ++%lE:+1.79769313486231570814527423731704357E308:1:42:0x1.fffffffffffffp1023: ++%*lE:+1.79769313486231570814527423731704357E308:0:42: ++%lE:+1.79769313486231570814527423731704357E+308:1:43:0x1.fffffffffffffp1023: ++%*lE:+1.79769313486231570814527423731704357E+308:0:43: ++%lE:+INFINITY:1:9:inf: ++%*lE:+INFINITY:0:9: ++%1lE::0:-1: ++%*1lE::0:-1: ++%1lE:-INFINITY:0:-1: ++%*1lE:-INFINITY:0:-1: ++%1lE:-1.79769313486231570814527423731704357E+308:0:-1: ++%*1lE:-1.79769313486231570814527423731704357E+308:0:-1: ++%1lE:-1.79769313486231570814527423731704357E308:0:-1: ++%*1lE:-1.79769313486231570814527423731704357E308:0:-1: ++%1lE:-2.3441674165664682593913711430784253952E+37:0:-1: ++%*1lE:-2.3441674165664682593913711430784253952E+37:0:-1: ++%1lE:-2.3441674165664682593913711430784253952E037:0:-1: ++%*1lE:-2.3441674165664682593913711430784253952E037:0:-1: ++%1lE:-2.22507385850720138309023271733240406E-308:0:-1: ++%*1lE:-2.22507385850720138309023271733240406E-308:0:-1: ++%1lE:-0E+0:0:-1: ++%*1lE:-0E+0:0:-1: ++%1lE:-0E0:0:-1: ++%*1lE:-0E0:0:-1: ++%1lE:-NAN(09A_Zaz):0:-1: ++%*1lE:-NAN(09A_Zaz):0:-1: ++%1lE:-NAN():0:-1: ++%*1lE:-NAN():0:-1: ++%1lE:NAN():0:-1: ++%*1lE:NAN():0:-1: ++%1lE:NAN(09A_Zaz):0:-1: ++%*1lE:NAN(09A_Zaz):0:-1: ++%1lE:0E0:1:1:0x0: ++%*1lE:0E0:0:1: ++%1lE:0E+0:1:1:0x0: ++%*1lE:0E+0:0:1: ++%1lE:2.22507385850720138309023271733240406E-308:1:1:0x1p1: ++%*1lE:2.22507385850720138309023271733240406E-308:0:1: ++%1lE:2.3441674165664682593913711430784253952E037:1:1:0x1p1: ++%*1lE:2.3441674165664682593913711430784253952E037:0:1: ++%1lE:2.3441674165664682593913711430784253952E+37:1:1:0x1p1: ++%*1lE:2.3441674165664682593913711430784253952E+37:0:1: ++%1lE:1.79769313486231570814527423731704357E308:1:1:0x1: ++%*1lE:1.79769313486231570814527423731704357E308:0:1: ++%1lE:1.79769313486231570814527423731704357E+308:1:1:0x1: ++%*1lE:1.79769313486231570814527423731704357E+308:0:1: ++%1lE:INFINITY:0:-1: ++%*1lE:INFINITY:0:-1: ++%1lE:+NAN():0:-1: ++%*1lE:+NAN():0:-1: ++%1lE:+NAN(09A_Zaz):0:-1: ++%*1lE:+NAN(09A_Zaz):0:-1: ++%1lE:+0E0:0:-1: ++%*1lE:+0E0:0:-1: ++%1lE:+0E+0:0:-1: ++%*1lE:+0E+0:0:-1: ++%1lE:+2.22507385850720138309023271733240406E-308:0:-1: ++%*1lE:+2.22507385850720138309023271733240406E-308:0:-1: ++%1lE:+2.3441674165664682593913711430784253952E037:0:-1: ++%*1lE:+2.3441674165664682593913711430784253952E037:0:-1: ++%1lE:+2.3441674165664682593913711430784253952E+37:0:-1: ++%*1lE:+2.3441674165664682593913711430784253952E+37:0:-1: ++%1lE:+1.79769313486231570814527423731704357E308:0:-1: ++%*1lE:+1.79769313486231570814527423731704357E308:0:-1: ++%1lE:+1.79769313486231570814527423731704357E+308:0:-1: ++%*1lE:+1.79769313486231570814527423731704357E+308:0:-1: ++%1lE:+INFINITY:0:-1: ++%*1lE:+INFINITY:0:-1: ++%2lE::0:-1: ++%*2lE::0:-1: ++%2lE:-INFINITY:0:-1: ++%*2lE:-INFINITY:0:-1: ++%2lE:-1.79769313486231570814527423731704357E+308:1:2:-0x1: ++%*2lE:-1.79769313486231570814527423731704357E+308:0:2: ++%2lE:-1.79769313486231570814527423731704357E308:1:2:-0x1: ++%*2lE:-1.79769313486231570814527423731704357E308:0:2: ++%2lE:-2.3441674165664682593913711430784253952E+37:1:2:-0x1p1: ++%*2lE:-2.3441674165664682593913711430784253952E+37:0:2: ++%2lE:-2.3441674165664682593913711430784253952E037:1:2:-0x1p1: ++%*2lE:-2.3441674165664682593913711430784253952E037:0:2: ++%2lE:-2.22507385850720138309023271733240406E-308:1:2:-0x1p1: ++%*2lE:-2.22507385850720138309023271733240406E-308:0:2: ++%2lE:-0E+0:1:2:-0x0: ++%*2lE:-0E+0:0:2: ++%2lE:-0E0:1:2:-0x0: ++%*2lE:-0E0:0:2: ++%2lE:-NAN(09A_Zaz):0:-1: ++%*2lE:-NAN(09A_Zaz):0:-1: ++%2lE:-NAN():0:-1: ++%*2lE:-NAN():0:-1: ++%2lE:NAN():0:-1: ++%*2lE:NAN():0:-1: ++%2lE:NAN(09A_Zaz):0:-1: ++%*2lE:NAN(09A_Zaz):0:-1: ++# BZ12701 %2lE:0E0:0:-1: ++# BZ12701 %*2lE:0E0:0:-1: ++# BZ12701 %2lE:0E+0:0:-1: ++# BZ12701 %*2lE:0E+0:0:-1: ++%2lE:2.22507385850720138309023271733240406E-308:1:2:0x1p1: ++%*2lE:2.22507385850720138309023271733240406E-308:0:2: ++%2lE:2.3441674165664682593913711430784253952E037:1:2:0x1p1: ++%*2lE:2.3441674165664682593913711430784253952E037:0:2: ++%2lE:2.3441674165664682593913711430784253952E+37:1:2:0x1p1: ++%*2lE:2.3441674165664682593913711430784253952E+37:0:2: ++%2lE:1.79769313486231570814527423731704357E308:1:2:0x1: ++%*2lE:1.79769313486231570814527423731704357E308:0:2: ++%2lE:1.79769313486231570814527423731704357E+308:1:2:0x1: ++%*2lE:1.79769313486231570814527423731704357E+308:0:2: ++%2lE:INFINITY:0:-1: ++%*2lE:INFINITY:0:-1: ++%2lE:+NAN():0:-1: ++%*2lE:+NAN():0:-1: ++%2lE:+NAN(09A_Zaz):0:-1: ++%*2lE:+NAN(09A_Zaz):0:-1: ++%2lE:+0E0:1:2:0x0: ++%*2lE:+0E0:0:2: ++%2lE:+0E+0:1:2:0x0: ++%*2lE:+0E+0:0:2: ++%2lE:+2.22507385850720138309023271733240406E-308:1:2:0x1p1: ++%*2lE:+2.22507385850720138309023271733240406E-308:0:2: ++%2lE:+2.3441674165664682593913711430784253952E037:1:2:0x1p1: ++%*2lE:+2.3441674165664682593913711430784253952E037:0:2: ++%2lE:+2.3441674165664682593913711430784253952E+37:1:2:0x1p1: ++%*2lE:+2.3441674165664682593913711430784253952E+37:0:2: ++%2lE:+1.79769313486231570814527423731704357E308:1:2:0x1: ++%*2lE:+1.79769313486231570814527423731704357E308:0:2: ++%2lE:+1.79769313486231570814527423731704357E+308:1:2:0x1: ++%*2lE:+1.79769313486231570814527423731704357E+308:0:2: ++%2lE:+INFINITY:0:-1: ++%*2lE:+INFINITY:0:-1: ++%3lE::0:-1: ++%*3lE::0:-1: ++%3lE:-INFINITY:0:-1: ++%*3lE:-INFINITY:0:-1: ++%3lE:-1.79769313486231570814527423731704357E+308:1:3:-0x1: ++%*3lE:-1.79769313486231570814527423731704357E+308:0:3: ++%3lE:-1.79769313486231570814527423731704357E308:1:3:-0x1: ++%*3lE:-1.79769313486231570814527423731704357E308:0:3: ++%3lE:-2.3441674165664682593913711430784253952E+37:1:3:-0x1p1: ++%*3lE:-2.3441674165664682593913711430784253952E+37:0:3: ++%3lE:-2.3441674165664682593913711430784253952E037:1:3:-0x1p1: ++%*3lE:-2.3441674165664682593913711430784253952E037:0:3: ++%3lE:-2.22507385850720138309023271733240406E-308:1:3:-0x1p1: ++%*3lE:-2.22507385850720138309023271733240406E-308:0:3: ++# BZ12701 %3lE:-0E+0:0:-1: ++# BZ12701 %*3lE:-0E+0:0:-1: ++# BZ12701 %3lE:-0E0:0:-1: ++# BZ12701 %*3lE:-0E0:0:-1: ++%3lE:-NAN(09A_Zaz):0:-1: ++%*3lE:-NAN(09A_Zaz):0:-1: ++%3lE:-NAN():0:-1: ++%*3lE:-NAN():0:-1: ++%3lE:NAN():1:3:nan: ++%*3lE:NAN():0:3: ++%3lE:NAN(09A_Zaz):1:3:nan: ++%*3lE:NAN(09A_Zaz):0:3: ++%3lE:0E0:1:3:0x0: ++%*3lE:0E0:0:3: ++# BZ12701 %3lE:0E+0:0:-1: ++# BZ12701 %*3lE:0E+0:0:-1: ++%3lE:2.22507385850720138309023271733240406E-308:1:3:0x1.199999999999ap1: ++%*3lE:2.22507385850720138309023271733240406E-308:0:3: ++%3lE:2.3441674165664682593913711430784253952E037:1:3:0x1.2666666666666p1: ++%*3lE:2.3441674165664682593913711430784253952E037:0:3: ++%3lE:2.3441674165664682593913711430784253952E+37:1:3:0x1.2666666666666p1: ++%*3lE:2.3441674165664682593913711430784253952E+37:0:3: ++%3lE:1.79769313486231570814527423731704357E308:1:3:0x1.b333333333333: ++%*3lE:1.79769313486231570814527423731704357E308:0:3: ++%3lE:1.79769313486231570814527423731704357E+308:1:3:0x1.b333333333333: ++%*3lE:1.79769313486231570814527423731704357E+308:0:3: ++%3lE:INFINITY:1:3:inf: ++%*3lE:INFINITY:0:3: ++%3lE:+NAN():0:-1: ++%*3lE:+NAN():0:-1: ++%3lE:+NAN(09A_Zaz):0:-1: ++%*3lE:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3lE:+0E0:0:-1: ++# BZ12701 %*3lE:+0E0:0:-1: ++# BZ12701 %3lE:+0E+0:0:-1: ++# BZ12701 %*3lE:+0E+0:0:-1: ++%3lE:+2.22507385850720138309023271733240406E-308:1:3:0x1p1: ++%*3lE:+2.22507385850720138309023271733240406E-308:0:3: ++%3lE:+2.3441674165664682593913711430784253952E037:1:3:0x1p1: ++%*3lE:+2.3441674165664682593913711430784253952E037:0:3: ++%3lE:+2.3441674165664682593913711430784253952E+37:1:3:0x1p1: ++%*3lE:+2.3441674165664682593913711430784253952E+37:0:3: ++%3lE:+1.79769313486231570814527423731704357E308:1:3:0x1: ++%*3lE:+1.79769313486231570814527423731704357E308:0:3: ++%3lE:+1.79769313486231570814527423731704357E+308:1:3:0x1: ++%*3lE:+1.79769313486231570814527423731704357E+308:0:3: ++%3lE:+INFINITY:0:-1: ++%*3lE:+INFINITY:0:-1: ++%4lE::0:-1: ++%*4lE::0:-1: ++%4lE:-INFINITY:1:4:-inf: ++%*4lE:-INFINITY:0:4: ++%4lE:-1.79769313486231570814527423731704357E+308:1:4:-0x1.b333333333333: ++%*4lE:-1.79769313486231570814527423731704357E+308:0:4: ++%4lE:-1.79769313486231570814527423731704357E308:1:4:-0x1.b333333333333: ++%*4lE:-1.79769313486231570814527423731704357E308:0:4: ++%4lE:-2.3441674165664682593913711430784253952E+37:1:4:-0x1.2666666666666p1: ++%*4lE:-2.3441674165664682593913711430784253952E+37:0:4: ++%4lE:-2.3441674165664682593913711430784253952E037:1:4:-0x1.2666666666666p1: ++%*4lE:-2.3441674165664682593913711430784253952E037:0:4: ++%4lE:-2.22507385850720138309023271733240406E-308:1:4:-0x1.199999999999ap1: ++%*4lE:-2.22507385850720138309023271733240406E-308:0:4: ++# BZ12701 %4lE:-0E+0:0:-1: ++# BZ12701 %*4lE:-0E+0:0:-1: ++%4lE:-0E0:1:4:-0x0: ++%*4lE:-0E0:0:4: ++%4lE:-NAN(09A_Zaz):1:4:-nan: ++%*4lE:-NAN(09A_Zaz):0:4: ++%4lE:-NAN():1:4:-nan: ++%*4lE:-NAN():0:4: ++%4lE:NAN():0:-1: ++%*4lE:NAN():0:-1: ++%4lE:NAN(09A_Zaz):0:-1: ++%*4lE:NAN(09A_Zaz):0:-1: ++%4lE:0E0:1:3:0x0: ++%*4lE:0E0:0:3: ++%4lE:0E+0:1:4:0x0: ++%*4lE:0E+0:0:4: ++%4lE:2.22507385850720138309023271733240406E-308:1:4:0x1.1c28f5c28f5c3p1: ++%*4lE:2.22507385850720138309023271733240406E-308:0:4: ++%4lE:2.3441674165664682593913711430784253952E037:1:4:0x1.2b851eb851eb8p1: ++%*4lE:2.3441674165664682593913711430784253952E037:0:4: ++%4lE:2.3441674165664682593913711430784253952E+37:1:4:0x1.2b851eb851eb8p1: ++%*4lE:2.3441674165664682593913711430784253952E+37:0:4: ++%4lE:1.79769313486231570814527423731704357E308:1:4:0x1.ca3d70a3d70a4: ++%*4lE:1.79769313486231570814527423731704357E308:0:4: ++%4lE:1.79769313486231570814527423731704357E+308:1:4:0x1.ca3d70a3d70a4: ++%*4lE:1.79769313486231570814527423731704357E+308:0:4: ++%4lE:INFINITY:0:-1: ++%*4lE:INFINITY:0:-1: ++%4lE:+NAN():1:4:nan: ++%*4lE:+NAN():0:4: ++%4lE:+NAN(09A_Zaz):1:4:nan: ++%*4lE:+NAN(09A_Zaz):0:4: ++%4lE:+0E0:1:4:0x0: ++%*4lE:+0E0:0:4: ++# BZ12701 %4lE:+0E+0:0:-1: ++# BZ12701 %*4lE:+0E+0:0:-1: ++%4lE:+2.22507385850720138309023271733240406E-308:1:4:0x1.199999999999ap1: ++%*4lE:+2.22507385850720138309023271733240406E-308:0:4: ++%4lE:+2.3441674165664682593913711430784253952E037:1:4:0x1.2666666666666p1: ++%*4lE:+2.3441674165664682593913711430784253952E037:0:4: ++%4lE:+2.3441674165664682593913711430784253952E+37:1:4:0x1.2666666666666p1: ++%*4lE:+2.3441674165664682593913711430784253952E+37:0:4: ++%4lE:+1.79769313486231570814527423731704357E308:1:4:0x1.b333333333333: ++%*4lE:+1.79769313486231570814527423731704357E308:0:4: ++%4lE:+1.79769313486231570814527423731704357E+308:1:4:0x1.b333333333333: ++%*4lE:+1.79769313486231570814527423731704357E+308:0:4: ++%4lE:+INFINITY:1:4:inf: ++%*4lE:+INFINITY:0:4: ++%40lE::0:-1: ++%*40lE::0:-1: ++%40lE:-INFINITY:1:9:-inf: ++%*40lE:-INFINITY:0:9: ++# BZ12701 %40lE:-1.79769313486231570814527423731704357E+308:0:-1: ++# BZ12701 %*40lE:-1.79769313486231570814527423731704357E+308:0:-1: ++%40lE:-1.79769313486231570814527423731704357E308:1:40:-0x1.c16c5c5253574p10: ++%*40lE:-1.79769313486231570814527423731704357E308:0:40: ++%40lE:-2.3441674165664682593913711430784253952E+37:1:40:-0x1.2c0dad8b403aap1: ++%*40lE:-2.3441674165664682593913711430784253952E+37:0:40: ++%40lE:-2.3441674165664682593913711430784253952E037:1:40:-0x1.2c0dad8b403aap1: ++%*40lE:-2.3441674165664682593913711430784253952E037:0:40: ++# BZ12701 %40lE:-2.22507385850720138309023271733240406E-308:0:-1: ++# BZ12701 %*40lE:-2.22507385850720138309023271733240406E-308:0:-1: ++%40lE:-0E+0:1:5:-0x0: ++%*40lE:-0E+0:0:5: ++%40lE:-0E0:1:4:-0x0: ++%*40lE:-0E0:0:4: ++%40lE:-NAN(09A_Zaz):1:13:-nan: ++%*40lE:-NAN(09A_Zaz):0:13: ++%40lE:-NAN():1:6:-nan: ++%*40lE:-NAN():0:6: ++%40lE:NAN():1:5:nan: ++%*40lE:NAN():0:5: ++%40lE:NAN(09A_Zaz):1:12:nan: ++%*40lE:NAN(09A_Zaz):0:12: ++%40lE:0E0:1:3:0x0: ++%*40lE:0E0:0:3: ++%40lE:0E+0:1:4:0x0: ++%*40lE:0E+0:0:4: ++%40lE:2.22507385850720138309023271733240406E-308:1:40:0x1.23a516e82d9bap-9: ++%*40lE:2.22507385850720138309023271733240406E-308:0:40: ++# BZ12701 %40lE:2.3441674165664682593913711430784253952E037:0:-1: ++# BZ12701 %*40lE:2.3441674165664682593913711430784253952E037:0:-1: ++# BZ12701 %40lE:2.3441674165664682593913711430784253952E+37:0:-1: ++# BZ12701 %*40lE:2.3441674165664682593913711430784253952E+37:0:-1: ++%40lE:1.79769313486231570814527423731704357E308:1:40:0x1.6b0a8e891ffffp100: ++%*40lE:1.79769313486231570814527423731704357E308:0:40: ++%40lE:1.79769313486231570814527423731704357E+308:1:40:0x1.c16c5c5253574p10: ++%*40lE:1.79769313486231570814527423731704357E+308:0:40: ++%40lE:INFINITY:1:8:inf: ++%*40lE:INFINITY:0:8: ++%40lE:+NAN():1:6:nan: ++%*40lE:+NAN():0:6: ++%40lE:+NAN(09A_Zaz):1:13:nan: ++%*40lE:+NAN(09A_Zaz):0:13: ++%40lE:+0E0:1:4:0x0: ++%*40lE:+0E0:0:4: ++%40lE:+0E+0:1:5:0x0: ++%*40lE:+0E+0:0:5: ++# BZ12701 %40lE:+2.22507385850720138309023271733240406E-308:0:-1: ++# BZ12701 %*40lE:+2.22507385850720138309023271733240406E-308:0:-1: ++%40lE:+2.3441674165664682593913711430784253952E037:1:40:0x1.2c0dad8b403aap1: ++%*40lE:+2.3441674165664682593913711430784253952E037:0:40: ++%40lE:+2.3441674165664682593913711430784253952E+37:1:40:0x1.2c0dad8b403aap1: ++%*40lE:+2.3441674165664682593913711430784253952E+37:0:40: ++%40lE:+1.79769313486231570814527423731704357E308:1:40:0x1.c16c5c5253574p10: ++%*40lE:+1.79769313486231570814527423731704357E308:0:40: ++# BZ12701 %40lE:+1.79769313486231570814527423731704357E+308:0:-1: ++# BZ12701 %*40lE:+1.79769313486231570814527423731704357E+308:0:-1: ++%40lE:+INFINITY:1:9:inf: ++%*40lE:+INFINITY:0:9: ++%48lE::0:-1: ++%*48lE::0:-1: ++%48lE:-INFINITY:1:9:-inf: ++%*48lE:-INFINITY:0:9: ++%48lE:-1.79769313486231570814527423731704357E+308:1:43:-0x1.fffffffffffffp1023: ++%*48lE:-1.79769313486231570814527423731704357E+308:0:43: ++%48lE:-1.79769313486231570814527423731704357E308:1:42:-0x1.fffffffffffffp1023: ++%*48lE:-1.79769313486231570814527423731704357E308:0:42: ++%48lE:-2.3441674165664682593913711430784253952E+37:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*48lE:-2.3441674165664682593913711430784253952E+37:0:44: ++%48lE:-2.3441674165664682593913711430784253952E037:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*48lE:-2.3441674165664682593913711430784253952E037:0:44: ++%48lE:-2.22507385850720138309023271733240406E-308:1:43:-0x1p-1022: ++%*48lE:-2.22507385850720138309023271733240406E-308:0:43: ++%48lE:-0E+0:1:5:-0x0: ++%*48lE:-0E+0:0:5: ++%48lE:-0E0:1:4:-0x0: ++%*48lE:-0E0:0:4: ++%48lE:-NAN(09A_Zaz):1:13:-nan: ++%*48lE:-NAN(09A_Zaz):0:13: ++%48lE:-NAN():1:6:-nan: ++%*48lE:-NAN():0:6: ++%48lE:NAN():1:5:nan: ++%*48lE:NAN():0:5: ++%48lE:NAN(09A_Zaz):1:12:nan: ++%*48lE:NAN(09A_Zaz):0:12: ++%48lE:0E0:1:3:0x0: ++%*48lE:0E0:0:3: ++%48lE:0E+0:1:4:0x0: ++%*48lE:0E+0:0:4: ++%48lE:2.22507385850720138309023271733240406E-308:1:42:0x1p-1022: ++%*48lE:2.22507385850720138309023271733240406E-308:0:42: ++%48lE:2.3441674165664682593913711430784253952E037:1:43:0x1.1a2b3c4d5e6ffp124: ++%*48lE:2.3441674165664682593913711430784253952E037:0:43: ++%48lE:2.3441674165664682593913711430784253952E+37:1:43:0x1.1a2b3c4d5e6ffp124: ++%*48lE:2.3441674165664682593913711430784253952E+37:0:43: ++%48lE:1.79769313486231570814527423731704357E308:1:41:0x1.fffffffffffffp1023: ++%*48lE:1.79769313486231570814527423731704357E308:0:41: ++%48lE:1.79769313486231570814527423731704357E+308:1:42:0x1.fffffffffffffp1023: ++%*48lE:1.79769313486231570814527423731704357E+308:0:42: ++%48lE:INFINITY:1:8:inf: ++%*48lE:INFINITY:0:8: ++%48lE:+NAN():1:6:nan: ++%*48lE:+NAN():0:6: ++%48lE:+NAN(09A_Zaz):1:13:nan: ++%*48lE:+NAN(09A_Zaz):0:13: ++%48lE:+0E0:1:4:0x0: ++%*48lE:+0E0:0:4: ++%48lE:+0E+0:1:5:0x0: ++%*48lE:+0E+0:0:5: ++%48lE:+2.22507385850720138309023271733240406E-308:1:43:0x1p-1022: ++%*48lE:+2.22507385850720138309023271733240406E-308:0:43: ++%48lE:+2.3441674165664682593913711430784253952E037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48lE:+2.3441674165664682593913711430784253952E037:0:44: ++%48lE:+2.3441674165664682593913711430784253952E+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48lE:+2.3441674165664682593913711430784253952E+37:0:44: ++%48lE:+1.79769313486231570814527423731704357E308:1:42:0x1.fffffffffffffp1023: ++%*48lE:+1.79769313486231570814527423731704357E308:0:42: ++%48lE:+1.79769313486231570814527423731704357E+308:1:43:0x1.fffffffffffffp1023: ++%*48lE:+1.79769313486231570814527423731704357E+308:0:43: ++%48lE:+INFINITY:1:9:inf: ++%*48lE:+INFINITY:0:9: ++%3lE: :0:-1: ++%*3lE: :0:-1: ++%3lE: -INFINITY:0:-1: ++%*3lE: -INFINITY:0:-1: ++%3lE: -1.79769313486231570814527423731704357E+308:1:4:-0x1: ++%*3lE: -1.79769313486231570814527423731704357E+308:0:4: ++%3lE: -1.79769313486231570814527423731704357E308:1:4:-0x1: ++%*3lE: -1.79769313486231570814527423731704357E308:0:4: ++%3lE: -2.3441674165664682593913711430784253952E+37:1:4:-0x1p1: ++%*3lE: -2.3441674165664682593913711430784253952E+37:0:4: ++%3lE: -2.3441674165664682593913711430784253952E037:1:4:-0x1p1: ++%*3lE: -2.3441674165664682593913711430784253952E037:0:4: ++%3lE: -2.22507385850720138309023271733240406E-308:1:4:-0x1p1: ++%*3lE: -2.22507385850720138309023271733240406E-308:0:4: ++# BZ12701 %3lE: -0E+0:0:-1: ++# BZ12701 %*3lE: -0E+0:0:-1: ++# BZ12701 %3lE: -0E0:0:-1: ++# BZ12701 %*3lE: -0E0:0:-1: ++%3lE: -NAN(09A_Zaz):0:-1: ++%*3lE: -NAN(09A_Zaz):0:-1: ++%3lE: -NAN():0:-1: ++%*3lE: -NAN():0:-1: ++%3lE: NAN():1:4:nan: ++%*3lE: NAN():0:4: ++%3lE: NAN(09A_Zaz):1:4:nan: ++%*3lE: NAN(09A_Zaz):0:4: ++%3lE: 0E0:1:4:0x0: ++%*3lE: 0E0:0:4: ++# BZ12701 %3lE: 0E+0:0:-1: ++# BZ12701 %*3lE: 0E+0:0:-1: ++%3lE: 2.22507385850720138309023271733240406E-308:1:4:0x1.199999999999ap1: ++%*3lE: 2.22507385850720138309023271733240406E-308:0:4: ++%3lE: 2.3441674165664682593913711430784253952E037:1:4:0x1.2666666666666p1: ++%*3lE: 2.3441674165664682593913711430784253952E037:0:4: ++%3lE: 2.3441674165664682593913711430784253952E+37:1:4:0x1.2666666666666p1: ++%*3lE: 2.3441674165664682593913711430784253952E+37:0:4: ++%3lE: 1.79769313486231570814527423731704357E308:1:4:0x1.b333333333333: ++%*3lE: 1.79769313486231570814527423731704357E308:0:4: ++%3lE: 1.79769313486231570814527423731704357E+308:1:4:0x1.b333333333333: ++%*3lE: 1.79769313486231570814527423731704357E+308:0:4: ++%3lE: INFINITY:1:4:inf: ++%*3lE: INFINITY:0:4: ++%3lE: +NAN():0:-1: ++%*3lE: +NAN():0:-1: ++%3lE: +NAN(09A_Zaz):0:-1: ++%*3lE: +NAN(09A_Zaz):0:-1: ++# BZ12701 %3lE: +0E0:0:-1: ++# BZ12701 %*3lE: +0E0:0:-1: ++# BZ12701 %3lE: +0E+0:0:-1: ++# BZ12701 %*3lE: +0E+0:0:-1: ++%3lE: +2.22507385850720138309023271733240406E-308:1:4:0x1p1: ++%*3lE: +2.22507385850720138309023271733240406E-308:0:4: ++%3lE: +2.3441674165664682593913711430784253952E037:1:4:0x1p1: ++%*3lE: +2.3441674165664682593913711430784253952E037:0:4: ++%3lE: +2.3441674165664682593913711430784253952E+37:1:4:0x1p1: ++%*3lE: +2.3441674165664682593913711430784253952E+37:0:4: ++%3lE: +1.79769313486231570814527423731704357E308:1:4:0x1: ++%*3lE: +1.79769313486231570814527423731704357E308:0:4: ++%3lE: +1.79769313486231570814527423731704357E+308:1:4:0x1: ++%*3lE: +1.79769313486231570814527423731704357E+308:0:4: ++%3lE: +INFINITY:0:-1: ++%*3lE: +INFINITY:0:-1: ++%48lE: :0:-1: ++%*48lE: :0:-1: ++%48lE: -INFINITY:1:10:-inf: ++%*48lE: -INFINITY:0:10: ++%48lE: -1.79769313486231570814527423731704357E+308:1:44:-0x1.fffffffffffffp1023: ++%*48lE: -1.79769313486231570814527423731704357E+308:0:44: ++%48lE: -1.79769313486231570814527423731704357E308:1:43:-0x1.fffffffffffffp1023: ++%*48lE: -1.79769313486231570814527423731704357E308:0:43: ++%48lE: -2.3441674165664682593913711430784253952E+37:1:45:-0x1.1a2b3c4d5e6ffp124: ++%*48lE: -2.3441674165664682593913711430784253952E+37:0:45: ++%48lE: -2.3441674165664682593913711430784253952E037:1:45:-0x1.1a2b3c4d5e6ffp124: ++%*48lE: -2.3441674165664682593913711430784253952E037:0:45: ++%48lE: -2.22507385850720138309023271733240406E-308:1:44:-0x1p-1022: ++%*48lE: -2.22507385850720138309023271733240406E-308:0:44: ++%48lE: -0E+0:1:6:-0x0: ++%*48lE: -0E+0:0:6: ++%48lE: -0E0:1:5:-0x0: ++%*48lE: -0E0:0:5: ++%48lE: -NAN(09A_Zaz):1:14:-nan: ++%*48lE: -NAN(09A_Zaz):0:14: ++%48lE: -NAN():1:7:-nan: ++%*48lE: -NAN():0:7: ++%48lE: NAN():1:6:nan: ++%*48lE: NAN():0:6: ++%48lE: NAN(09A_Zaz):1:13:nan: ++%*48lE: NAN(09A_Zaz):0:13: ++%48lE: 0E0:1:4:0x0: ++%*48lE: 0E0:0:4: ++%48lE: 0E+0:1:5:0x0: ++%*48lE: 0E+0:0:5: ++%48lE: 2.22507385850720138309023271733240406E-308:1:43:0x1p-1022: ++%*48lE: 2.22507385850720138309023271733240406E-308:0:43: ++%48lE: 2.3441674165664682593913711430784253952E037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48lE: 2.3441674165664682593913711430784253952E037:0:44: ++%48lE: 2.3441674165664682593913711430784253952E+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48lE: 2.3441674165664682593913711430784253952E+37:0:44: ++%48lE: 1.79769313486231570814527423731704357E308:1:42:0x1.fffffffffffffp1023: ++%*48lE: 1.79769313486231570814527423731704357E308:0:42: ++%48lE: 1.79769313486231570814527423731704357E+308:1:43:0x1.fffffffffffffp1023: ++%*48lE: 1.79769313486231570814527423731704357E+308:0:43: ++%48lE: INFINITY:1:9:inf: ++%*48lE: INFINITY:0:9: ++%48lE: +NAN():1:7:nan: ++%*48lE: +NAN():0:7: ++%48lE: +NAN(09A_Zaz):1:14:nan: ++%*48lE: +NAN(09A_Zaz):0:14: ++%48lE: +0E0:1:5:0x0: ++%*48lE: +0E0:0:5: ++%48lE: +0E+0:1:6:0x0: ++%*48lE: +0E+0:0:6: ++%48lE: +2.22507385850720138309023271733240406E-308:1:44:0x1p-1022: ++%*48lE: +2.22507385850720138309023271733240406E-308:0:44: ++%48lE: +2.3441674165664682593913711430784253952E037:1:45:0x1.1a2b3c4d5e6ffp124: ++%*48lE: +2.3441674165664682593913711430784253952E037:0:45: ++%48lE: +2.3441674165664682593913711430784253952E+37:1:45:0x1.1a2b3c4d5e6ffp124: ++%*48lE: +2.3441674165664682593913711430784253952E+37:0:45: ++%48lE: +1.79769313486231570814527423731704357E308:1:43:0x1.fffffffffffffp1023: ++%*48lE: +1.79769313486231570814527423731704357E308:0:43: ++%48lE: +1.79769313486231570814527423731704357E+308:1:44:0x1.fffffffffffffp1023: ++%*48lE: +1.79769313486231570814527423731704357E+308:0:44: ++%48lE: +INFINITY:1:10:inf: ++%*48lE: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-f.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-f.input +new file mode 100644 +index 0000000000000000..22b9fdc4f62cfa08 +--- /dev/null ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-f.input +@@ -0,0 +1,558 @@ ++%lf::0:-1: ++%*lf::0:-1: ++%lf:-infinity:1:9:-inf: ++%*lf:-infinity:0:9: ++%lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023: ++%*lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%lf:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*lf:-023441674165664682593913711430784253952.0:0:42: ++%lf:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*lf:-23441674165664682593913711430784253952:0:39: ++%lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022: ++%*lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%lf:-0.0:1:4:-0x0: ++%*lf:-0.0:0:4: ++%lf:-0:1:2:-0x0: ++%*lf:-0:0:2: ++%lf:-nan(09A_Zaz):1:13:-nan: ++%*lf:-nan(09A_Zaz):0:13: ++%lf:-nan():1:6:-nan: ++%*lf:-nan():0:6: ++%lf:nan():1:5:nan: ++%*lf:nan():0:5: ++%lf:nan(09A_Zaz):1:12:nan: ++%*lf:nan(09A_Zaz):0:12: ++%lf:0:1:1:0x0: ++%*lf:0:0:1: ++%lf:0.0:1:3:0x0: ++%*lf:0.0:0:3: ++%lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022: ++%*lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341: ++%lf:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*lf:23441674165664682593913711430784253952:0:38: ++%lf:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*lf:023441674165664682593913711430784253952.0:0:41: ++%lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023: ++%*lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: ++%lf:infinity:1:8:inf: ++%*lf:infinity:0:8: ++%lf:+nan():1:6:nan: ++%*lf:+nan():0:6: ++%lf:+nan(09A_Zaz):1:13:nan: ++%*lf:+nan(09A_Zaz):0:13: ++%lf:+0:1:2:0x0: ++%*lf:+0:0:2: ++%lf:+0.0:1:4:0x0: ++%*lf:+0.0:0:4: ++%lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%lf:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*lf:+23441674165664682593913711430784253952:0:39: ++%lf:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*lf:+023441674165664682593913711430784253952.0:0:42: ++%lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%lf:+infinity:1:9:inf: ++%*lf:+infinity:0:9: ++%1lf::0:-1: ++%*1lf::0:-1: ++%1lf:-infinity:0:-1: ++%*1lf:-infinity:0:-1: ++%1lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%*1lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%1lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%*1lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%1lf:-023441674165664682593913711430784253952.0:0:-1: ++%*1lf:-023441674165664682593913711430784253952.0:0:-1: ++%1lf:-23441674165664682593913711430784253952:0:-1: ++%*1lf:-23441674165664682593913711430784253952:0:-1: ++%1lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%*1lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%1lf:-0.0:0:-1: ++%*1lf:-0.0:0:-1: ++%1lf:-0:0:-1: ++%*1lf:-0:0:-1: ++%1lf:-nan(09A_Zaz):0:-1: ++%*1lf:-nan(09A_Zaz):0:-1: ++%1lf:-nan():0:-1: ++%*1lf:-nan():0:-1: ++%1lf:nan():0:-1: ++%*1lf:nan():0:-1: ++%1lf:nan(09A_Zaz):0:-1: ++%*1lf:nan(09A_Zaz):0:-1: ++%1lf:0:1:1:0x0: ++%*1lf:0:0:1: ++%1lf:0.0:1:1:0x0: ++%*1lf:0.0:0:1: ++%1lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:1:0x0: ++%*1lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:1: ++%1lf:23441674165664682593913711430784253952:1:1:0x1p1: ++%*1lf:23441674165664682593913711430784253952:0:1: ++%1lf:023441674165664682593913711430784253952.0:1:1:0x0: ++%*1lf:023441674165664682593913711430784253952.0:0:1: ++%1lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:1:0x1: ++%*1lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:1: ++%1lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:1:0x0: ++%*1lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1: ++%1lf:infinity:0:-1: ++%*1lf:infinity:0:-1: ++%1lf:+nan():0:-1: ++%*1lf:+nan():0:-1: ++%1lf:+nan(09A_Zaz):0:-1: ++%*1lf:+nan(09A_Zaz):0:-1: ++%1lf:+0:0:-1: ++%*1lf:+0:0:-1: ++%1lf:+0.0:0:-1: ++%*1lf:+0.0:0:-1: ++%1lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%*1lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%1lf:+23441674165664682593913711430784253952:0:-1: ++%*1lf:+23441674165664682593913711430784253952:0:-1: ++%1lf:+023441674165664682593913711430784253952.0:0:-1: ++%*1lf:+023441674165664682593913711430784253952.0:0:-1: ++%1lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%*1lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%1lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%*1lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%1lf:+infinity:0:-1: ++%*1lf:+infinity:0:-1: ++%2lf::0:-1: ++%*2lf::0:-1: ++%2lf:-infinity:0:-1: ++%*2lf:-infinity:0:-1: ++%2lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:-0x0: ++%*2lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:-0x1: ++%*2lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2lf:-023441674165664682593913711430784253952.0:1:2:-0x0: ++%*2lf:-023441674165664682593913711430784253952.0:0:2: ++%2lf:-23441674165664682593913711430784253952:1:2:-0x1p1: ++%*2lf:-23441674165664682593913711430784253952:0:2: ++%2lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:-0x0: ++%*2lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2lf:-0.0:1:2:-0x0: ++%*2lf:-0.0:0:2: ++%2lf:-0:1:2:-0x0: ++%*2lf:-0:0:2: ++%2lf:-nan(09A_Zaz):0:-1: ++%*2lf:-nan(09A_Zaz):0:-1: ++%2lf:-nan():0:-1: ++%*2lf:-nan():0:-1: ++%2lf:nan():0:-1: ++%*2lf:nan():0:-1: ++%2lf:nan(09A_Zaz):0:-1: ++%*2lf:nan(09A_Zaz):0:-1: ++%2lf:0:1:1:0x0: ++%*2lf:0:0:1: ++%2lf:0.0:1:2:0x0: ++%*2lf:0.0:0:2: ++%2lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0: ++%*2lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2lf:23441674165664682593913711430784253952:1:2:0x1.7p+4: ++%*2lf:23441674165664682593913711430784253952:0:2: ++%2lf:023441674165664682593913711430784253952.0:1:2:0x1p1: ++%*2lf:023441674165664682593913711430784253952.0:0:2: ++%2lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1.1p+4: ++%*2lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x1: ++%*2lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2lf:infinity:0:-1: ++%*2lf:infinity:0:-1: ++%2lf:+nan():0:-1: ++%*2lf:+nan():0:-1: ++%2lf:+nan(09A_Zaz):0:-1: ++%*2lf:+nan(09A_Zaz):0:-1: ++%2lf:+0:1:2:0x0: ++%*2lf:+0:0:2: ++%2lf:+0.0:1:2:0x0: ++%*2lf:+0.0:0:2: ++%2lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0: ++%*2lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2lf:+23441674165664682593913711430784253952:1:2:0x1p1: ++%*2lf:+23441674165664682593913711430784253952:0:2: ++%2lf:+023441674165664682593913711430784253952.0:1:2:0x0: ++%*2lf:+023441674165664682593913711430784253952.0:0:2: ++%2lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1: ++%*2lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x0: ++%*2lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2lf:+infinity:0:-1: ++%*2lf:+infinity:0:-1: ++%3lf::0:-1: ++%*3lf::0:-1: ++%3lf:-infinity:0:-1: ++%*3lf:-infinity:0:-1: ++%3lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:-0x1: ++%*3lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:-0x1.1p+4: ++%*3lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3lf:-023441674165664682593913711430784253952.0:1:3:-0x1p1: ++%*3lf:-023441674165664682593913711430784253952.0:0:3: ++%3lf:-23441674165664682593913711430784253952:1:3:-0x1.7p+4: ++%*3lf:-23441674165664682593913711430784253952:0:3: ++%3lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:-0x0: ++%*3lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3lf:-0.0:1:3:-0x0: ++%*3lf:-0.0:0:3: ++%3lf:-0:1:2:-0x0: ++%*3lf:-0:0:2: ++%3lf:-nan(09A_Zaz):0:-1: ++%*3lf:-nan(09A_Zaz):0:-1: ++%3lf:-nan():0:-1: ++%*3lf:-nan():0:-1: ++%3lf:nan():1:3:nan: ++%*3lf:nan():0:3: ++%3lf:nan(09A_Zaz):1:3:nan: ++%*3lf:nan(09A_Zaz):0:3: ++%3lf:0:1:1:0x0: ++%*3lf:0:0:1: ++%3lf:0.0:1:3:0x0: ++%*3lf:0.0:0:3: ++%3lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0: ++%*3lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3lf:23441674165664682593913711430784253952:1:3:0x1.d4p+7: ++%*3lf:23441674165664682593913711430784253952:0:3: ++%3lf:023441674165664682593913711430784253952.0:1:3:0x1.7p+4: ++%*3lf:023441674165664682593913711430784253952.0:0:3: ++%3lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.66p+7: ++%*3lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1.1p4: ++%*3lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3lf:infinity:1:3:inf: ++%*3lf:infinity:0:3: ++%3lf:+nan():0:-1: ++%*3lf:+nan():0:-1: ++%3lf:+nan(09A_Zaz):0:-1: ++%*3lf:+nan(09A_Zaz):0:-1: ++%3lf:+0:1:2:0x0: ++%*3lf:+0:0:2: ++%3lf:+0.0:1:3:0x0: ++%*3lf:+0.0:0:3: ++%3lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0: ++%*3lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3lf:+23441674165664682593913711430784253952:1:3:0x1.7p+4: ++%*3lf:+23441674165664682593913711430784253952:0:3: ++%3lf:+023441674165664682593913711430784253952.0:1:3:0x1p1: ++%*3lf:+023441674165664682593913711430784253952.0:0:3: ++%3lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.1p4: ++%*3lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1: ++%*3lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3lf:+infinity:0:-1: ++%*3lf:+infinity:0:-1: ++%4lf::0:-1: ++%*4lf::0:-1: ++%4lf:-infinity:1:4:-inf: ++%*4lf:-infinity:0:4: ++%4lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1.1p4: ++%*4lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.66p+7: ++%*4lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4lf:-023441674165664682593913711430784253952.0:1:4:-0x1.7p+4: ++%*4lf:-023441674165664682593913711430784253952.0:0:4: ++%4lf:-23441674165664682593913711430784253952:1:4:-0x1.d4p+7: ++%*4lf:-23441674165664682593913711430784253952:0:4: ++%4lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0: ++%*4lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4lf:-0.0:1:4:-0x0: ++%*4lf:-0.0:0:4: ++%4lf:-0:1:2:-0x0: ++%*4lf:-0:0:2: ++%4lf:-nan(09A_Zaz):1:4:-nan: ++%*4lf:-nan(09A_Zaz):0:4: ++%4lf:-nan():1:4:-nan: ++%*4lf:-nan():0:4: ++%4lf:nan():0:-1: ++%*4lf:nan():0:-1: ++%4lf:nan(09A_Zaz):0:-1: ++%*4lf:nan(09A_Zaz):0:-1: ++%4lf:0:1:1:0x0: ++%*4lf:0:0:1: ++%4lf:0.0:1:3:0x0: ++%*4lf:0.0:0:3: ++%4lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*4lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4lf:23441674165664682593913711430784253952:1:4:0x1.25p11: ++%*4lf:23441674165664682593913711430784253952:0:4: ++%4lf:023441674165664682593913711430784253952.0:1:4:0x1.d4p+7: ++%*4lf:023441674165664682593913711430784253952.0:0:4: ++%4lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.c14p+10: ++%*4lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.66p+7: ++%*4lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4lf:infinity:0:-1: ++%*4lf:infinity:0:-1: ++%4lf:+nan():1:4:nan: ++%*4lf:+nan():0:4: ++%4lf:+nan(09A_Zaz):1:4:nan: ++%*4lf:+nan(09A_Zaz):0:4: ++%4lf:+0:1:2:0x0: ++%*4lf:+0:0:2: ++%4lf:+0.0:1:4:0x0: ++%*4lf:+0.0:0:4: ++%4lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*4lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4lf:+23441674165664682593913711430784253952:1:4:0x1.d4p+7: ++%*4lf:+23441674165664682593913711430784253952:0:4: ++%4lf:+023441674165664682593913711430784253952.0:1:4:0x1.7p+4: ++%*4lf:+023441674165664682593913711430784253952.0:0:4: ++%4lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7: ++%*4lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4: ++%*4lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4lf:+infinity:1:4:inf: ++%*4lf:+infinity:0:4: ++%311lf::0:-1: ++%*311lf::0:-1: ++%311lf:-infinity:1:9:-inf: ++%*311lf:-infinity:0:9: ++%311lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:-0x1.fffffffffffffp1023: ++%*311lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*311lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%311lf:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*311lf:-023441674165664682593913711430784253952.0:0:42: ++%311lf:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*311lf:-23441674165664682593913711430784253952:0:39: ++%311lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:-0x1.cc359e067a348p-1023: ++%*311lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311lf:-0.0:1:4:-0x0: ++%*311lf:-0.0:0:4: ++%311lf:-0:1:2:-0x0: ++%*311lf:-0:0:2: ++%311lf:-nan(09A_Zaz):1:13:-nan: ++%*311lf:-nan(09A_Zaz):0:13: ++%311lf:-nan():1:6:-nan: ++%*311lf:-nan():0:6: ++%311lf:nan():1:5:nan: ++%*311lf:nan():0:5: ++%311lf:nan(09A_Zaz):1:12:nan: ++%*311lf:nan(09A_Zaz):0:12: ++%311lf:0:1:1:0x0: ++%*311lf:0:0:1: ++%311lf:0.0:1:3:0x0: ++%*311lf:0.0:0:3: ++%311lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.fa3afaa0b9a04p-1023: ++%*311lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311lf:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*311lf:23441674165664682593913711430784253952:0:38: ++%311lf:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*311lf:023441674165664682593913711430784253952.0:0:41: ++%311lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*311lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%311lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023: ++%*311lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311lf:infinity:1:8:inf: ++%*311lf:infinity:0:8: ++%311lf:+nan():1:6:nan: ++%*311lf:+nan():0:6: ++%311lf:+nan(09A_Zaz):1:13:nan: ++%*311lf:+nan(09A_Zaz):0:13: ++%311lf:+0:1:2:0x0: ++%*311lf:+0:0:2: ++%311lf:+0.0:1:4:0x0: ++%*311lf:+0.0:0:4: ++%311lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.cc359e067a348p-1023: ++%*311lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311lf:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*311lf:+23441674165664682593913711430784253952:0:39: ++%311lf:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*311lf:+023441674165664682593913711430784253952.0:0:42: ++%311lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*311lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%311lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023: ++%*311lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311lf:+infinity:1:9:inf: ++%*311lf:+infinity:0:9: ++%350lf::0:-1: ++%*350lf::0:-1: ++%350lf:-infinity:1:9:-inf: ++%*350lf:-infinity:0:9: ++%350lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023: ++%*350lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*350lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350lf:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*350lf:-023441674165664682593913711430784253952.0:0:42: ++%350lf:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*350lf:-23441674165664682593913711430784253952:0:39: ++%350lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022: ++%*350lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350lf:-0.0:1:4:-0x0: ++%*350lf:-0.0:0:4: ++%350lf:-0:1:2:-0x0: ++%*350lf:-0:0:2: ++%350lf:-nan(09A_Zaz):1:13:-nan: ++%*350lf:-nan(09A_Zaz):0:13: ++%350lf:-nan():1:6:-nan: ++%*350lf:-nan():0:6: ++%350lf:nan():1:5:nan: ++%*350lf:nan():0:5: ++%350lf:nan(09A_Zaz):1:12:nan: ++%*350lf:nan(09A_Zaz):0:12: ++%350lf:0:1:1:0x0: ++%*350lf:0:0:1: ++%350lf:0.0:1:3:0x0: ++%*350lf:0.0:0:3: ++%350lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022: ++%*350lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341: ++%350lf:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*350lf:23441674165664682593913711430784253952:0:38: ++%350lf:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*350lf:023441674165664682593913711430784253952.0:0:41: ++%350lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*350lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%350lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023: ++%*350lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: ++%350lf:infinity:1:8:inf: ++%*350lf:infinity:0:8: ++%350lf:+nan():1:6:nan: ++%*350lf:+nan():0:6: ++%350lf:+nan(09A_Zaz):1:13:nan: ++%*350lf:+nan(09A_Zaz):0:13: ++%350lf:+0:1:2:0x0: ++%*350lf:+0:0:2: ++%350lf:+0.0:1:4:0x0: ++%*350lf:+0.0:0:4: ++%350lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*350lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350lf:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*350lf:+23441674165664682593913711430784253952:0:39: ++%350lf:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*350lf:+023441674165664682593913711430784253952.0:0:42: ++%350lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*350lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*350lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350lf:+infinity:1:9:inf: ++%*350lf:+infinity:0:9: ++%3lf: :0:-1: ++%*3lf: :0:-1: ++%3lf: -infinity:0:-1: ++%*3lf: -infinity:0:-1: ++%3lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1: ++%*3lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.1p+4: ++%*3lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3lf: -023441674165664682593913711430784253952.0:1:4:-0x1p1: ++%*3lf: -023441674165664682593913711430784253952.0:0:4: ++%3lf: -23441674165664682593913711430784253952:1:4:-0x1.7p+4: ++%*3lf: -23441674165664682593913711430784253952:0:4: ++%3lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0: ++%*3lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3lf: -0.0:1:4:-0x0: ++%*3lf: -0.0:0:4: ++%3lf: -0:1:3:-0x0: ++%*3lf: -0:0:3: ++%3lf: -nan(09A_Zaz):0:-1: ++%*3lf: -nan(09A_Zaz):0:-1: ++%3lf: -nan():0:-1: ++%*3lf: -nan():0:-1: ++%3lf: nan():1:4:nan: ++%*3lf: nan():0:4: ++%3lf: nan(09A_Zaz):1:4:nan: ++%*3lf: nan(09A_Zaz):0:4: ++%3lf: 0:1:2:0x0: ++%*3lf: 0:0:2: ++%3lf: 0.0:1:4:0x0: ++%*3lf: 0.0:0:4: ++%3lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*3lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3lf: 23441674165664682593913711430784253952:1:4:0x1.d4p+7: ++%*3lf: 23441674165664682593913711430784253952:0:4: ++%3lf: 023441674165664682593913711430784253952.0:1:4:0x1.7p+4: ++%*3lf: 023441674165664682593913711430784253952.0:0:4: ++%3lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7: ++%*3lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4: ++%*3lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3lf: infinity:1:4:inf: ++%*3lf: infinity:0:4: ++%3lf: +nan():0:-1: ++%*3lf: +nan():0:-1: ++%3lf: +nan(09A_Zaz):0:-1: ++%*3lf: +nan(09A_Zaz):0:-1: ++%3lf: +0:1:3:0x0: ++%*3lf: +0:0:3: ++%3lf: +0.0:1:4:0x0: ++%*3lf: +0.0:0:4: ++%3lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*3lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3lf: +23441674165664682593913711430784253952:1:4:0x1.7p+4: ++%*3lf: +23441674165664682593913711430784253952:0:4: ++%3lf: +023441674165664682593913711430784253952.0:1:4:0x1p1: ++%*3lf: +023441674165664682593913711430784253952.0:0:4: ++%3lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.1p4: ++%*3lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1: ++%*3lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3lf: +infinity:0:-1: ++%*3lf: +infinity:0:-1: ++%350lf: :0:-1: ++%*350lf: :0:-1: ++%350lf: -infinity:1:10:-inf: ++%*350lf: -infinity:0:10: ++%350lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:-0x1.fffffffffffffp1023: ++%*350lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314: ++%350lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:-0x1.fffffffffffffp1023: ++%*350lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311: ++%350lf: -023441674165664682593913711430784253952.0:1:43:-0x1.1a2b3c4d5e6ffp124: ++%*350lf: -023441674165664682593913711430784253952.0:0:43: ++%350lf: -23441674165664682593913711430784253952:1:40:-0x1.1a2b3c4d5e6ffp124: ++%*350lf: -23441674165664682593913711430784253952:0:40: ++%350lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:-0x1p-1022: ++%*350lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343: ++%350lf: -0.0:1:5:-0x0: ++%*350lf: -0.0:0:5: ++%350lf: -0:1:3:-0x0: ++%*350lf: -0:0:3: ++%350lf: -nan(09A_Zaz):1:14:-nan: ++%*350lf: -nan(09A_Zaz):0:14: ++%350lf: -nan():1:7:-nan: ++%*350lf: -nan():0:7: ++%350lf: nan():1:6:nan: ++%*350lf: nan():0:6: ++%350lf: nan(09A_Zaz):1:13:nan: ++%*350lf: nan(09A_Zaz):0:13: ++%350lf: 0:1:2:0x0: ++%*350lf: 0:0:2: ++%350lf: 0.0:1:4:0x0: ++%*350lf: 0.0:0:4: ++%350lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*350lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350lf: 23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*350lf: 23441674165664682593913711430784253952:0:39: ++%350lf: 023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*350lf: 023441674165664682593913711430784253952.0:0:42: ++%350lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*350lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*350lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350lf: infinity:1:9:inf: ++%*350lf: infinity:0:9: ++%350lf: +nan():1:7:nan: ++%*350lf: +nan():0:7: ++%350lf: +nan(09A_Zaz):1:14:nan: ++%*350lf: +nan(09A_Zaz):0:14: ++%350lf: +0:1:3:0x0: ++%*350lf: +0:0:3: ++%350lf: +0.0:1:5:0x0: ++%*350lf: +0.0:0:5: ++%350lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:0x1p-1022: ++%*350lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343: ++%350lf: +23441674165664682593913711430784253952:1:40:0x1.1a2b3c4d5e6ffp124: ++%*350lf: +23441674165664682593913711430784253952:0:40: ++%350lf: +023441674165664682593913711430784253952.0:1:43:0x1.1a2b3c4d5e6ffp124: ++%*350lf: +023441674165664682593913711430784253952.0:0:43: ++%350lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:0x1.fffffffffffffp1023: ++%*350lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311: ++%350lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:0x1.fffffffffffffp1023: ++%*350lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314: ++%350lf: +infinity:1:10:inf: ++%*350lf: +infinity:0:10: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ff.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ff.input +new file mode 100644 +index 0000000000000000..6168884e133d78d3 +--- /dev/null ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ff.input +@@ -0,0 +1,558 @@ ++%lF::0:-1: ++%*lF::0:-1: ++%lF:-INFINITY:1:9:-inf: ++%*lF:-INFINITY:0:9: ++%lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023: ++%*lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%lF:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*lF:-023441674165664682593913711430784253952.0:0:42: ++%lF:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*lF:-23441674165664682593913711430784253952:0:39: ++%lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022: ++%*lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%lF:-0.0:1:4:-0x0: ++%*lF:-0.0:0:4: ++%lF:-0:1:2:-0x0: ++%*lF:-0:0:2: ++%lF:-NAN(09A_Zaz):1:13:-nan: ++%*lF:-NAN(09A_Zaz):0:13: ++%lF:-NAN():1:6:-nan: ++%*lF:-NAN():0:6: ++%lF:NAN():1:5:nan: ++%*lF:NAN():0:5: ++%lF:NAN(09A_Zaz):1:12:nan: ++%*lF:NAN(09A_Zaz):0:12: ++%lF:0:1:1:0x0: ++%*lF:0:0:1: ++%lF:0.0:1:3:0x0: ++%*lF:0.0:0:3: ++%lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022: ++%*lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341: ++%lF:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*lF:23441674165664682593913711430784253952:0:38: ++%lF:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*lF:023441674165664682593913711430784253952.0:0:41: ++%lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023: ++%*lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: ++%lF:INFINITY:1:8:inf: ++%*lF:INFINITY:0:8: ++%lF:+NAN():1:6:nan: ++%*lF:+NAN():0:6: ++%lF:+NAN(09A_Zaz):1:13:nan: ++%*lF:+NAN(09A_Zaz):0:13: ++%lF:+0:1:2:0x0: ++%*lF:+0:0:2: ++%lF:+0.0:1:4:0x0: ++%*lF:+0.0:0:4: ++%lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%lF:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*lF:+23441674165664682593913711430784253952:0:39: ++%lF:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*lF:+023441674165664682593913711430784253952.0:0:42: ++%lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%lF:+INFINITY:1:9:inf: ++%*lF:+INFINITY:0:9: ++%1lF::0:-1: ++%*1lF::0:-1: ++%1lF:-INFINITY:0:-1: ++%*1lF:-INFINITY:0:-1: ++%1lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%*1lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%1lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%*1lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%1lF:-023441674165664682593913711430784253952.0:0:-1: ++%*1lF:-023441674165664682593913711430784253952.0:0:-1: ++%1lF:-23441674165664682593913711430784253952:0:-1: ++%*1lF:-23441674165664682593913711430784253952:0:-1: ++%1lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%*1lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%1lF:-0.0:0:-1: ++%*1lF:-0.0:0:-1: ++%1lF:-0:0:-1: ++%*1lF:-0:0:-1: ++%1lF:-NAN(09A_Zaz):0:-1: ++%*1lF:-NAN(09A_Zaz):0:-1: ++%1lF:-NAN():0:-1: ++%*1lF:-NAN():0:-1: ++%1lF:NAN():0:-1: ++%*1lF:NAN():0:-1: ++%1lF:NAN(09A_Zaz):0:-1: ++%*1lF:NAN(09A_Zaz):0:-1: ++%1lF:0:1:1:0x0: ++%*1lF:0:0:1: ++%1lF:0.0:1:1:0x0: ++%*1lF:0.0:0:1: ++%1lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:1:0x0: ++%*1lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:1: ++%1lF:23441674165664682593913711430784253952:1:1:0x1p1: ++%*1lF:23441674165664682593913711430784253952:0:1: ++%1lF:023441674165664682593913711430784253952.0:1:1:0x0: ++%*1lF:023441674165664682593913711430784253952.0:0:1: ++%1lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:1:0x1: ++%*1lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:1: ++%1lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:1:0x0: ++%*1lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1: ++%1lF:INFINITY:0:-1: ++%*1lF:INFINITY:0:-1: ++%1lF:+NAN():0:-1: ++%*1lF:+NAN():0:-1: ++%1lF:+NAN(09A_Zaz):0:-1: ++%*1lF:+NAN(09A_Zaz):0:-1: ++%1lF:+0:0:-1: ++%*1lF:+0:0:-1: ++%1lF:+0.0:0:-1: ++%*1lF:+0.0:0:-1: ++%1lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%*1lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%1lF:+23441674165664682593913711430784253952:0:-1: ++%*1lF:+23441674165664682593913711430784253952:0:-1: ++%1lF:+023441674165664682593913711430784253952.0:0:-1: ++%*1lF:+023441674165664682593913711430784253952.0:0:-1: ++%1lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%*1lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%1lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%*1lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%1lF:+INFINITY:0:-1: ++%*1lF:+INFINITY:0:-1: ++%2lF::0:-1: ++%*2lF::0:-1: ++%2lF:-INFINITY:0:-1: ++%*2lF:-INFINITY:0:-1: ++%2lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:-0x0: ++%*2lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:-0x1: ++%*2lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2lF:-023441674165664682593913711430784253952.0:1:2:-0x0: ++%*2lF:-023441674165664682593913711430784253952.0:0:2: ++%2lF:-23441674165664682593913711430784253952:1:2:-0x1p1: ++%*2lF:-23441674165664682593913711430784253952:0:2: ++%2lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:-0x0: ++%*2lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2lF:-0.0:1:2:-0x0: ++%*2lF:-0.0:0:2: ++%2lF:-0:1:2:-0x0: ++%*2lF:-0:0:2: ++%2lF:-NAN(09A_Zaz):0:-1: ++%*2lF:-NAN(09A_Zaz):0:-1: ++%2lF:-NAN():0:-1: ++%*2lF:-NAN():0:-1: ++%2lF:NAN():0:-1: ++%*2lF:NAN():0:-1: ++%2lF:NAN(09A_Zaz):0:-1: ++%*2lF:NAN(09A_Zaz):0:-1: ++%2lF:0:1:1:0x0: ++%*2lF:0:0:1: ++%2lF:0.0:1:2:0x0: ++%*2lF:0.0:0:2: ++%2lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0: ++%*2lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2lF:23441674165664682593913711430784253952:1:2:0x1.7p+4: ++%*2lF:23441674165664682593913711430784253952:0:2: ++%2lF:023441674165664682593913711430784253952.0:1:2:0x1p1: ++%*2lF:023441674165664682593913711430784253952.0:0:2: ++%2lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1.1p+4: ++%*2lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x1: ++%*2lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2lF:INFINITY:0:-1: ++%*2lF:INFINITY:0:-1: ++%2lF:+NAN():0:-1: ++%*2lF:+NAN():0:-1: ++%2lF:+NAN(09A_Zaz):0:-1: ++%*2lF:+NAN(09A_Zaz):0:-1: ++%2lF:+0:1:2:0x0: ++%*2lF:+0:0:2: ++%2lF:+0.0:1:2:0x0: ++%*2lF:+0.0:0:2: ++%2lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0: ++%*2lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2lF:+23441674165664682593913711430784253952:1:2:0x1p1: ++%*2lF:+23441674165664682593913711430784253952:0:2: ++%2lF:+023441674165664682593913711430784253952.0:1:2:0x0: ++%*2lF:+023441674165664682593913711430784253952.0:0:2: ++%2lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1: ++%*2lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x0: ++%*2lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2lF:+INFINITY:0:-1: ++%*2lF:+INFINITY:0:-1: ++%3lF::0:-1: ++%*3lF::0:-1: ++%3lF:-INFINITY:0:-1: ++%*3lF:-INFINITY:0:-1: ++%3lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:-0x1: ++%*3lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:-0x1.1p+4: ++%*3lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3lF:-023441674165664682593913711430784253952.0:1:3:-0x1p1: ++%*3lF:-023441674165664682593913711430784253952.0:0:3: ++%3lF:-23441674165664682593913711430784253952:1:3:-0x1.7p+4: ++%*3lF:-23441674165664682593913711430784253952:0:3: ++%3lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:-0x0: ++%*3lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3lF:-0.0:1:3:-0x0: ++%*3lF:-0.0:0:3: ++%3lF:-0:1:2:-0x0: ++%*3lF:-0:0:2: ++%3lF:-NAN(09A_Zaz):0:-1: ++%*3lF:-NAN(09A_Zaz):0:-1: ++%3lF:-NAN():0:-1: ++%*3lF:-NAN():0:-1: ++%3lF:NAN():1:3:nan: ++%*3lF:NAN():0:3: ++%3lF:NAN(09A_Zaz):1:3:nan: ++%*3lF:NAN(09A_Zaz):0:3: ++%3lF:0:1:1:0x0: ++%*3lF:0:0:1: ++%3lF:0.0:1:3:0x0: ++%*3lF:0.0:0:3: ++%3lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0: ++%*3lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3lF:23441674165664682593913711430784253952:1:3:0x1.d4p+7: ++%*3lF:23441674165664682593913711430784253952:0:3: ++%3lF:023441674165664682593913711430784253952.0:1:3:0x1.7p+4: ++%*3lF:023441674165664682593913711430784253952.0:0:3: ++%3lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.66p+7: ++%*3lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1.1p4: ++%*3lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3lF:INFINITY:1:3:inf: ++%*3lF:INFINITY:0:3: ++%3lF:+NAN():0:-1: ++%*3lF:+NAN():0:-1: ++%3lF:+NAN(09A_Zaz):0:-1: ++%*3lF:+NAN(09A_Zaz):0:-1: ++%3lF:+0:1:2:0x0: ++%*3lF:+0:0:2: ++%3lF:+0.0:1:3:0x0: ++%*3lF:+0.0:0:3: ++%3lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0: ++%*3lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3lF:+23441674165664682593913711430784253952:1:3:0x1.7p+4: ++%*3lF:+23441674165664682593913711430784253952:0:3: ++%3lF:+023441674165664682593913711430784253952.0:1:3:0x1p1: ++%*3lF:+023441674165664682593913711430784253952.0:0:3: ++%3lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.1p4: ++%*3lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1: ++%*3lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3lF:+INFINITY:0:-1: ++%*3lF:+INFINITY:0:-1: ++%4lF::0:-1: ++%*4lF::0:-1: ++%4lF:-INFINITY:1:4:-inf: ++%*4lF:-INFINITY:0:4: ++%4lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1.1p4: ++%*4lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.66p+7: ++%*4lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4lF:-023441674165664682593913711430784253952.0:1:4:-0x1.7p+4: ++%*4lF:-023441674165664682593913711430784253952.0:0:4: ++%4lF:-23441674165664682593913711430784253952:1:4:-0x1.d4p+7: ++%*4lF:-23441674165664682593913711430784253952:0:4: ++%4lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0: ++%*4lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4lF:-0.0:1:4:-0x0: ++%*4lF:-0.0:0:4: ++%4lF:-0:1:2:-0x0: ++%*4lF:-0:0:2: ++%4lF:-NAN(09A_Zaz):1:4:-nan: ++%*4lF:-NAN(09A_Zaz):0:4: ++%4lF:-NAN():1:4:-nan: ++%*4lF:-NAN():0:4: ++%4lF:NAN():0:-1: ++%*4lF:NAN():0:-1: ++%4lF:NAN(09A_Zaz):0:-1: ++%*4lF:NAN(09A_Zaz):0:-1: ++%4lF:0:1:1:0x0: ++%*4lF:0:0:1: ++%4lF:0.0:1:3:0x0: ++%*4lF:0.0:0:3: ++%4lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*4lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4lF:23441674165664682593913711430784253952:1:4:0x1.25p11: ++%*4lF:23441674165664682593913711430784253952:0:4: ++%4lF:023441674165664682593913711430784253952.0:1:4:0x1.d4p+7: ++%*4lF:023441674165664682593913711430784253952.0:0:4: ++%4lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.c14p+10: ++%*4lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.66p+7: ++%*4lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4lF:INFINITY:0:-1: ++%*4lF:INFINITY:0:-1: ++%4lF:+NAN():1:4:nan: ++%*4lF:+NAN():0:4: ++%4lF:+NAN(09A_Zaz):1:4:nan: ++%*4lF:+NAN(09A_Zaz):0:4: ++%4lF:+0:1:2:0x0: ++%*4lF:+0:0:2: ++%4lF:+0.0:1:4:0x0: ++%*4lF:+0.0:0:4: ++%4lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*4lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4lF:+23441674165664682593913711430784253952:1:4:0x1.d4p+7: ++%*4lF:+23441674165664682593913711430784253952:0:4: ++%4lF:+023441674165664682593913711430784253952.0:1:4:0x1.7p+4: ++%*4lF:+023441674165664682593913711430784253952.0:0:4: ++%4lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7: ++%*4lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4: ++%*4lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4lF:+INFINITY:1:4:inf: ++%*4lF:+INFINITY:0:4: ++%311lF::0:-1: ++%*311lF::0:-1: ++%311lF:-INFINITY:1:9:-inf: ++%*311lF:-INFINITY:0:9: ++%311lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:-0x1.fffffffffffffp1023: ++%*311lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*311lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%311lF:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*311lF:-023441674165664682593913711430784253952.0:0:42: ++%311lF:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*311lF:-23441674165664682593913711430784253952:0:39: ++%311lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:-0x1.cc359e067a348p-1023: ++%*311lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311lF:-0.0:1:4:-0x0: ++%*311lF:-0.0:0:4: ++%311lF:-0:1:2:-0x0: ++%*311lF:-0:0:2: ++%311lF:-NAN(09A_Zaz):1:13:-nan: ++%*311lF:-NAN(09A_Zaz):0:13: ++%311lF:-NAN():1:6:-nan: ++%*311lF:-NAN():0:6: ++%311lF:NAN():1:5:nan: ++%*311lF:NAN():0:5: ++%311lF:NAN(09A_Zaz):1:12:nan: ++%*311lF:NAN(09A_Zaz):0:12: ++%311lF:0:1:1:0x0: ++%*311lF:0:0:1: ++%311lF:0.0:1:3:0x0: ++%*311lF:0.0:0:3: ++%311lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.fa3afaa0b9a04p-1023: ++%*311lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311lF:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*311lF:23441674165664682593913711430784253952:0:38: ++%311lF:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*311lF:023441674165664682593913711430784253952.0:0:41: ++%311lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*311lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%311lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023: ++%*311lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311lF:INFINITY:1:8:inf: ++%*311lF:INFINITY:0:8: ++%311lF:+NAN():1:6:nan: ++%*311lF:+NAN():0:6: ++%311lF:+NAN(09A_Zaz):1:13:nan: ++%*311lF:+NAN(09A_Zaz):0:13: ++%311lF:+0:1:2:0x0: ++%*311lF:+0:0:2: ++%311lF:+0.0:1:4:0x0: ++%*311lF:+0.0:0:4: ++%311lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.cc359e067a348p-1023: ++%*311lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311lF:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*311lF:+23441674165664682593913711430784253952:0:39: ++%311lF:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*311lF:+023441674165664682593913711430784253952.0:0:42: ++%311lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*311lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%311lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023: ++%*311lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311lF:+INFINITY:1:9:inf: ++%*311lF:+INFINITY:0:9: ++%350lF::0:-1: ++%*350lF::0:-1: ++%350lF:-INFINITY:1:9:-inf: ++%*350lF:-INFINITY:0:9: ++%350lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023: ++%*350lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*350lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350lF:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*350lF:-023441674165664682593913711430784253952.0:0:42: ++%350lF:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*350lF:-23441674165664682593913711430784253952:0:39: ++%350lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022: ++%*350lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350lF:-0.0:1:4:-0x0: ++%*350lF:-0.0:0:4: ++%350lF:-0:1:2:-0x0: ++%*350lF:-0:0:2: ++%350lF:-NAN(09A_Zaz):1:13:-nan: ++%*350lF:-NAN(09A_Zaz):0:13: ++%350lF:-NAN():1:6:-nan: ++%*350lF:-NAN():0:6: ++%350lF:NAN():1:5:nan: ++%*350lF:NAN():0:5: ++%350lF:NAN(09A_Zaz):1:12:nan: ++%*350lF:NAN(09A_Zaz):0:12: ++%350lF:0:1:1:0x0: ++%*350lF:0:0:1: ++%350lF:0.0:1:3:0x0: ++%*350lF:0.0:0:3: ++%350lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022: ++%*350lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341: ++%350lF:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*350lF:23441674165664682593913711430784253952:0:38: ++%350lF:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*350lF:023441674165664682593913711430784253952.0:0:41: ++%350lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*350lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%350lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023: ++%*350lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: ++%350lF:INFINITY:1:8:inf: ++%*350lF:INFINITY:0:8: ++%350lF:+NAN():1:6:nan: ++%*350lF:+NAN():0:6: ++%350lF:+NAN(09A_Zaz):1:13:nan: ++%*350lF:+NAN(09A_Zaz):0:13: ++%350lF:+0:1:2:0x0: ++%*350lF:+0:0:2: ++%350lF:+0.0:1:4:0x0: ++%*350lF:+0.0:0:4: ++%350lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*350lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350lF:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*350lF:+23441674165664682593913711430784253952:0:39: ++%350lF:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*350lF:+023441674165664682593913711430784253952.0:0:42: ++%350lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*350lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*350lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350lF:+INFINITY:1:9:inf: ++%*350lF:+INFINITY:0:9: ++%3lF: :0:-1: ++%*3lF: :0:-1: ++%3lF: -INFINITY:0:-1: ++%*3lF: -INFINITY:0:-1: ++%3lF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1: ++%*3lF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3lF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.1p+4: ++%*3lF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3lF: -023441674165664682593913711430784253952.0:1:4:-0x1p1: ++%*3lF: -023441674165664682593913711430784253952.0:0:4: ++%3lF: -23441674165664682593913711430784253952:1:4:-0x1.7p+4: ++%*3lF: -23441674165664682593913711430784253952:0:4: ++%3lF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0: ++%*3lF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3lF: -0.0:1:4:-0x0: ++%*3lF: -0.0:0:4: ++%3lF: -0:1:3:-0x0: ++%*3lF: -0:0:3: ++%3lF: -NAN(09A_Zaz):0:-1: ++%*3lF: -NAN(09A_Zaz):0:-1: ++%3lF: -NAN():0:-1: ++%*3lF: -NAN():0:-1: ++%3lF: NAN():1:4:nan: ++%*3lF: NAN():0:4: ++%3lF: NAN(09A_Zaz):1:4:nan: ++%*3lF: NAN(09A_Zaz):0:4: ++%3lF: 0:1:2:0x0: ++%*3lF: 0:0:2: ++%3lF: 0.0:1:4:0x0: ++%*3lF: 0.0:0:4: ++%3lF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*3lF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3lF: 23441674165664682593913711430784253952:1:4:0x1.d4p+7: ++%*3lF: 23441674165664682593913711430784253952:0:4: ++%3lF: 023441674165664682593913711430784253952.0:1:4:0x1.7p+4: ++%*3lF: 023441674165664682593913711430784253952.0:0:4: ++%3lF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7: ++%*3lF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3lF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4: ++%*3lF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3lF: INFINITY:1:4:inf: ++%*3lF: INFINITY:0:4: ++%3lF: +NAN():0:-1: ++%*3lF: +NAN():0:-1: ++%3lF: +NAN(09A_Zaz):0:-1: ++%*3lF: +NAN(09A_Zaz):0:-1: ++%3lF: +0:1:3:0x0: ++%*3lF: +0:0:3: ++%3lF: +0.0:1:4:0x0: ++%*3lF: +0.0:0:4: ++%3lF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*3lF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3lF: +23441674165664682593913711430784253952:1:4:0x1.7p+4: ++%*3lF: +23441674165664682593913711430784253952:0:4: ++%3lF: +023441674165664682593913711430784253952.0:1:4:0x1p1: ++%*3lF: +023441674165664682593913711430784253952.0:0:4: ++%3lF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.1p4: ++%*3lF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3lF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1: ++%*3lF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3lF: +INFINITY:0:-1: ++%*3lF: +INFINITY:0:-1: ++%350lF: :0:-1: ++%*350lF: :0:-1: ++%350lF: -INFINITY:1:10:-inf: ++%*350lF: -INFINITY:0:10: ++%350lF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:-0x1.fffffffffffffp1023: ++%*350lF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314: ++%350lF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:-0x1.fffffffffffffp1023: ++%*350lF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311: ++%350lF: -023441674165664682593913711430784253952.0:1:43:-0x1.1a2b3c4d5e6ffp124: ++%*350lF: -023441674165664682593913711430784253952.0:0:43: ++%350lF: -23441674165664682593913711430784253952:1:40:-0x1.1a2b3c4d5e6ffp124: ++%*350lF: -23441674165664682593913711430784253952:0:40: ++%350lF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:-0x1p-1022: ++%*350lF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343: ++%350lF: -0.0:1:5:-0x0: ++%*350lF: -0.0:0:5: ++%350lF: -0:1:3:-0x0: ++%*350lF: -0:0:3: ++%350lF: -NAN(09A_Zaz):1:14:-nan: ++%*350lF: -NAN(09A_Zaz):0:14: ++%350lF: -NAN():1:7:-nan: ++%*350lF: -NAN():0:7: ++%350lF: NAN():1:6:nan: ++%*350lF: NAN():0:6: ++%350lF: NAN(09A_Zaz):1:13:nan: ++%*350lF: NAN(09A_Zaz):0:13: ++%350lF: 0:1:2:0x0: ++%*350lF: 0:0:2: ++%350lF: 0.0:1:4:0x0: ++%*350lF: 0.0:0:4: ++%350lF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*350lF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350lF: 23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*350lF: 23441674165664682593913711430784253952:0:39: ++%350lF: 023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*350lF: 023441674165664682593913711430784253952.0:0:42: ++%350lF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*350lF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350lF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*350lF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350lF: INFINITY:1:9:inf: ++%*350lF: INFINITY:0:9: ++%350lF: +NAN():1:7:nan: ++%*350lF: +NAN():0:7: ++%350lF: +NAN(09A_Zaz):1:14:nan: ++%*350lF: +NAN(09A_Zaz):0:14: ++%350lF: +0:1:3:0x0: ++%*350lF: +0:0:3: ++%350lF: +0.0:1:5:0x0: ++%*350lF: +0.0:0:5: ++%350lF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:0x1p-1022: ++%*350lF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343: ++%350lF: +23441674165664682593913711430784253952:1:40:0x1.1a2b3c4d5e6ffp124: ++%*350lF: +23441674165664682593913711430784253952:0:40: ++%350lF: +023441674165664682593913711430784253952.0:1:43:0x1.1a2b3c4d5e6ffp124: ++%*350lF: +023441674165664682593913711430784253952.0:0:43: ++%350lF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:0x1.fffffffffffffp1023: ++%*350lF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311: ++%350lF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:0x1.fffffffffffffp1023: ++%*350lF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314: ++%350lF: +INFINITY:1:10:inf: ++%*350lF: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-g.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-g.input +new file mode 100644 +index 0000000000000000..d499303451083898 +--- /dev/null ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-g.input +@@ -0,0 +1,682 @@ ++%lg::0:-1: ++%*lg::0:-1: ++%lg:-infinity:1:9:-inf: ++%*lg:-infinity:0:9: ++%lg:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023: ++%*lg:-0xf.ffffffffffff8p+1020:0:24: ++%lg:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023: ++%*lg:-0x7.ffffffffffffcp1021:0:23: ++%lg:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*lg:-0x2.3456789abcdfep+123:0:23: ++%lg:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*lg:-0x2.3456789abcdfep0123:0:23: ++%lg:-0x8p-1025:1:10:-0x1p-1022: ++%*lg:-0x8p-1025:0:10: ++%lg:-0x0p+0:1:7:-0x0: ++%*lg:-0x0p+0:0:7: ++%lg:-0x0p0:1:6:-0x0: ++%*lg:-0x0p0:0:6: ++%lg:-nan(09A_Zaz):1:13:-nan: ++%*lg:-nan(09A_Zaz):0:13: ++%lg:-nan():1:6:-nan: ++%*lg:-nan():0:6: ++%lg:nan():1:5:nan: ++%*lg:nan():0:5: ++%lg:nan(09A_Zaz):1:12:nan: ++%*lg:nan(09A_Zaz):0:12: ++%lg:0x0p0:1:5:0x0: ++%*lg:0x0p0:0:5: ++%lg:0x0p+0:1:6:0x0: ++%*lg:0x0p+0:0:6: ++%lg:0x8p-1025:1:9:0x1p-1022: ++%*lg:0x8p-1025:0:9: ++%lg:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*lg:0x2.3456789abcdfep0123:0:22: ++%lg:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*lg:0x2.3456789abcdfep+123:0:22: ++%lg:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023: ++%*lg:0x7.ffffffffffffcp1021:0:22: ++%lg:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023: ++%*lg:0xf.ffffffffffff8p+1020:0:23: ++%lg:infinity:1:8:inf: ++%*lg:infinity:0:8: ++%lg:+nan():1:6:nan: ++%*lg:+nan():0:6: ++%lg:+nan(09A_Zaz):1:13:nan: ++%*lg:+nan(09A_Zaz):0:13: ++%lg:+0x0p0:1:6:0x0: ++%*lg:+0x0p0:0:6: ++%lg:+0x0p+0:1:7:0x0: ++%*lg:+0x0p+0:0:7: ++%lg:+0x8p-1025:1:10:0x1p-1022: ++%*lg:+0x8p-1025:0:10: ++%lg:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*lg:+0x2.3456789abcdfep0123:0:23: ++%lg:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*lg:+0x2.3456789abcdfep+123:0:23: ++%lg:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*lg:+0x7.ffffffffffffcp1021:0:23: ++%lg:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*lg:+0xf.ffffffffffff8p+1020:0:24: ++%lg:+infinity:1:9:inf: ++%*lg:+infinity:0:9: ++%1lg::0:-1: ++%*1lg::0:-1: ++%1lg:-infinity:0:-1: ++%*1lg:-infinity:0:-1: ++%1lg:-0xf.ffffffffffff8p+1020:0:-1: ++%*1lg:-0xf.ffffffffffff8p+1020:0:-1: ++%1lg:-0x7.ffffffffffffcp1021:0:-1: ++%*1lg:-0x7.ffffffffffffcp1021:0:-1: ++%1lg:-0x2.3456789abcdfep+123:0:-1: ++%*1lg:-0x2.3456789abcdfep+123:0:-1: ++%1lg:-0x2.3456789abcdfep0123:0:-1: ++%*1lg:-0x2.3456789abcdfep0123:0:-1: ++%1lg:-0x8p-1025:0:-1: ++%*1lg:-0x8p-1025:0:-1: ++%1lg:-0x0p+0:0:-1: ++%*1lg:-0x0p+0:0:-1: ++%1lg:-0x0p0:0:-1: ++%*1lg:-0x0p0:0:-1: ++%1lg:-nan(09A_Zaz):0:-1: ++%*1lg:-nan(09A_Zaz):0:-1: ++%1lg:-nan():0:-1: ++%*1lg:-nan():0:-1: ++%1lg:nan():0:-1: ++%*1lg:nan():0:-1: ++%1lg:nan(09A_Zaz):0:-1: ++%*1lg:nan(09A_Zaz):0:-1: ++%1lg:0x0p0:1:1:0x0: ++%*1lg:0x0p0:0:1: ++%1lg:0x0p+0:1:1:0x0: ++%*1lg:0x0p+0:0:1: ++%1lg:0x8p-1025:1:1:0x0: ++%*1lg:0x8p-1025:0:1: ++%1lg:0x2.3456789abcdfep0123:1:1:0x0: ++%*1lg:0x2.3456789abcdfep0123:0:1: ++%1lg:0x2.3456789abcdfep+123:1:1:0x0: ++%*1lg:0x2.3456789abcdfep+123:0:1: ++%1lg:0x7.ffffffffffffcp1021:1:1:0x0: ++%*1lg:0x7.ffffffffffffcp1021:0:1: ++%1lg:0xf.ffffffffffff8p+1020:1:1:0x0: ++%*1lg:0xf.ffffffffffff8p+1020:0:1: ++%1lg:infinity:0:-1: ++%*1lg:infinity:0:-1: ++%1lg:+nan():0:-1: ++%*1lg:+nan():0:-1: ++%1lg:+nan(09A_Zaz):0:-1: ++%*1lg:+nan(09A_Zaz):0:-1: ++%1lg:+0x0p0:0:-1: ++%*1lg:+0x0p0:0:-1: ++%1lg:+0x0p+0:0:-1: ++%*1lg:+0x0p+0:0:-1: ++%1lg:+0x8p-1025:0:-1: ++%*1lg:+0x8p-1025:0:-1: ++%1lg:+0x2.3456789abcdfep0123:0:-1: ++%*1lg:+0x2.3456789abcdfep0123:0:-1: ++%1lg:+0x2.3456789abcdfep+123:0:-1: ++%*1lg:+0x2.3456789abcdfep+123:0:-1: ++%1lg:+0x7.ffffffffffffcp1021:0:-1: ++%*1lg:+0x7.ffffffffffffcp1021:0:-1: ++%1lg:+0xf.ffffffffffff8p+1020:0:-1: ++%*1lg:+0xf.ffffffffffff8p+1020:0:-1: ++%1lg:+infinity:0:-1: ++%*1lg:+infinity:0:-1: ++%2lg::0:-1: ++%*2lg::0:-1: ++%2lg:-infinity:0:-1: ++%*2lg:-infinity:0:-1: ++%2lg:-0xf.ffffffffffff8p+1020:1:2:-0x0: ++%*2lg:-0xf.ffffffffffff8p+1020:0:2: ++%2lg:-0x7.ffffffffffffcp1021:1:2:-0x0: ++%*2lg:-0x7.ffffffffffffcp1021:0:2: ++%2lg:-0x2.3456789abcdfep+123:1:2:-0x0: ++%*2lg:-0x2.3456789abcdfep+123:0:2: ++%2lg:-0x2.3456789abcdfep0123:1:2:-0x0: ++%*2lg:-0x2.3456789abcdfep0123:0:2: ++%2lg:-0x8p-1025:1:2:-0x0: ++%*2lg:-0x8p-1025:0:2: ++%2lg:-0x0p+0:1:2:-0x0: ++%*2lg:-0x0p+0:0:2: ++%2lg:-0x0p0:1:2:-0x0: ++%*2lg:-0x0p0:0:2: ++%2lg:-nan(09A_Zaz):0:-1: ++%*2lg:-nan(09A_Zaz):0:-1: ++%2lg:-nan():0:-1: ++%*2lg:-nan():0:-1: ++%2lg:nan():0:-1: ++%*2lg:nan():0:-1: ++%2lg:nan(09A_Zaz):0:-1: ++%*2lg:nan(09A_Zaz):0:-1: ++# BZ12701 %2lg:0x0p0:0:-1: ++# BZ12701 %*2lg:0x0p0:0:-1: ++# BZ12701 %2lg:0x0p+0:0:-1: ++# BZ12701 %*2lg:0x0p+0:0:-1: ++# BZ12701 %2lg:0x8p-1025:0:-1: ++# BZ12701 %*2lg:0x8p-1025:0:-1: ++# BZ12701 %2lg:0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*2lg:0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %2lg:0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*2lg:0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %2lg:0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*2lg:0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %2lg:0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*2lg:0xf.ffffffffffff8p+1020:0:-1: ++%2lg:infinity:0:-1: ++%*2lg:infinity:0:-1: ++%2lg:+nan():0:-1: ++%*2lg:+nan():0:-1: ++%2lg:+nan(09A_Zaz):0:-1: ++%*2lg:+nan(09A_Zaz):0:-1: ++%2lg:+0x0p0:1:2:0x0: ++%*2lg:+0x0p0:0:2: ++%2lg:+0x0p+0:1:2:0x0: ++%*2lg:+0x0p+0:0:2: ++%2lg:+0x8p-1025:1:2:0x0: ++%*2lg:+0x8p-1025:0:2: ++%2lg:+0x2.3456789abcdfep0123:1:2:0x0: ++%*2lg:+0x2.3456789abcdfep0123:0:2: ++%2lg:+0x2.3456789abcdfep+123:1:2:0x0: ++%*2lg:+0x2.3456789abcdfep+123:0:2: ++%2lg:+0x7.ffffffffffffcp1021:1:2:0x0: ++%*2lg:+0x7.ffffffffffffcp1021:0:2: ++%2lg:+0xf.ffffffffffff8p+1020:1:2:0x0: ++%*2lg:+0xf.ffffffffffff8p+1020:0:2: ++%2lg:+infinity:0:-1: ++%*2lg:+infinity:0:-1: ++%3lg::0:-1: ++%*3lg::0:-1: ++%3lg:-infinity:0:-1: ++%*3lg:-infinity:0:-1: ++# BZ12701 %3lg:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*3lg:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %3lg:-0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*3lg:-0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %3lg:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*3lg:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %3lg:-0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*3lg:-0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %3lg:-0x8p-1025:0:-1: ++# BZ12701 %*3lg:-0x8p-1025:0:-1: ++# BZ12701 %3lg:-0x0p+0:0:-1: ++# BZ12701 %*3lg:-0x0p+0:0:-1: ++# BZ12701 %3lg:-0x0p0:0:-1: ++# BZ12701 %*3lg:-0x0p0:0:-1: ++%3lg:-nan(09A_Zaz):0:-1: ++%*3lg:-nan(09A_Zaz):0:-1: ++%3lg:-nan():0:-1: ++%*3lg:-nan():0:-1: ++%3lg:nan():1:3:nan: ++%*3lg:nan():0:3: ++%3lg:nan(09A_Zaz):1:3:nan: ++%*3lg:nan(09A_Zaz):0:3: ++%3lg:0x0p0:1:3:0x0: ++%*3lg:0x0p0:0:3: ++%3lg:0x0p+0:1:3:0x0: ++%*3lg:0x0p+0:0:3: ++%3lg:0x8p-1025:1:3:0x1p3: ++%*3lg:0x8p-1025:0:3: ++%3lg:0x2.3456789abcdfep0123:1:3:0x1p1: ++%*3lg:0x2.3456789abcdfep0123:0:3: ++%3lg:0x2.3456789abcdfep+123:1:3:0x1p1: ++%*3lg:0x2.3456789abcdfep+123:0:3: ++%3lg:0x7.ffffffffffffcp1021:1:3:0x1.cp2: ++%*3lg:0x7.ffffffffffffcp1021:0:3: ++%3lg:0xf.ffffffffffff8p+1020:1:3:0x1.ep3: ++%*3lg:0xf.ffffffffffff8p+1020:0:3: ++%3lg:infinity:1:3:inf: ++%*3lg:infinity:0:3: ++%3lg:+nan():0:-1: ++%*3lg:+nan():0:-1: ++%3lg:+nan(09A_Zaz):0:-1: ++%*3lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %3lg:+0x0p0:0:-1: ++# BZ12701 %*3lg:+0x0p0:0:-1: ++# BZ12701 %3lg:+0x0p+0:0:-1: ++# BZ12701 %*3lg:+0x0p+0:0:-1: ++# BZ12701 %3lg:+0x8p-1025:0:-1: ++# BZ12701 %*3lg:+0x8p-1025:0:-1: ++# BZ12701 %3lg:+0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*3lg:+0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %3lg:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*3lg:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %3lg:+0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*3lg:+0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %3lg:+0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*3lg:+0xf.ffffffffffff8p+1020:0:-1: ++%3lg:+infinity:0:-1: ++%*3lg:+infinity:0:-1: ++%4lg::0:-1: ++%*4lg::0:-1: ++%4lg:-infinity:1:4:-inf: ++%*4lg:-infinity:0:4: ++%4lg:-0xf.ffffffffffff8p+1020:1:4:-0x1.ep3: ++%*4lg:-0xf.ffffffffffff8p+1020:0:4: ++%4lg:-0x7.ffffffffffffcp1021:1:4:-0x1.cp2: ++%*4lg:-0x7.ffffffffffffcp1021:0:4: ++%4lg:-0x2.3456789abcdfep+123:1:4:-0x1p1: ++%*4lg:-0x2.3456789abcdfep+123:0:4: ++%4lg:-0x2.3456789abcdfep0123:1:4:-0x1p1: ++%*4lg:-0x2.3456789abcdfep0123:0:4: ++%4lg:-0x8p-1025:1:4:-0x1p3: ++%*4lg:-0x8p-1025:0:4: ++%4lg:-0x0p+0:1:4:-0x0: ++%*4lg:-0x0p+0:0:4: ++%4lg:-0x0p0:1:4:-0x0: ++%*4lg:-0x0p0:0:4: ++%4lg:-nan(09A_Zaz):1:4:-nan: ++%*4lg:-nan(09A_Zaz):0:4: ++%4lg:-nan():1:4:-nan: ++%*4lg:-nan():0:4: ++%4lg:nan():0:-1: ++%*4lg:nan():0:-1: ++%4lg:nan(09A_Zaz):0:-1: ++%*4lg:nan(09A_Zaz):0:-1: ++# BZ12701 %4lg:0x0p0:0:-1: ++# BZ12701 %*4lg:0x0p0:0:-1: ++# BZ12701 %4lg:0x0p+0:0:-1: ++# BZ12701 %*4lg:0x0p+0:0:-1: ++# BZ12701 %4lg:0x8p-1025:0:-1: ++# BZ12701 %*4lg:0x8p-1025:0:-1: ++%4lg:0x2.3456789abcdfep0123:1:4:0x1p1: ++%*4lg:0x2.3456789abcdfep0123:0:4: ++%4lg:0x2.3456789abcdfep+123:1:4:0x1p1: ++%*4lg:0x2.3456789abcdfep+123:0:4: ++%4lg:0x7.ffffffffffffcp1021:1:4:0x1.cp2: ++%*4lg:0x7.ffffffffffffcp1021:0:4: ++%4lg:0xf.ffffffffffff8p+1020:1:4:0x1.ep3: ++%*4lg:0xf.ffffffffffff8p+1020:0:4: ++%4lg:infinity:0:-1: ++%*4lg:infinity:0:-1: ++%4lg:+nan():1:4:nan: ++%*4lg:+nan():0:4: ++%4lg:+nan(09A_Zaz):1:4:nan: ++%*4lg:+nan(09A_Zaz):0:4: ++%4lg:+0x0p0:1:4:0x0: ++%*4lg:+0x0p0:0:4: ++%4lg:+0x0p+0:1:4:0x0: ++%*4lg:+0x0p+0:0:4: ++%4lg:+0x8p-1025:1:4:0x1p3: ++%*4lg:+0x8p-1025:0:4: ++%4lg:+0x2.3456789abcdfep0123:1:4:0x1p1: ++%*4lg:+0x2.3456789abcdfep0123:0:4: ++%4lg:+0x2.3456789abcdfep+123:1:4:0x1p1: ++%*4lg:+0x2.3456789abcdfep+123:0:4: ++%4lg:+0x7.ffffffffffffcp1021:1:4:0x1.cp2: ++%*4lg:+0x7.ffffffffffffcp1021:0:4: ++%4lg:+0xf.ffffffffffff8p+1020:1:4:0x1.ep3: ++%*4lg:+0xf.ffffffffffff8p+1020:0:4: ++%4lg:+infinity:1:4:inf: ++%*4lg:+infinity:0:4: ++%5lg::0:-1: ++%*5lg::0:-1: ++%5lg:-infinity:0:-1: ++%*5lg:-infinity:0:-1: ++%5lg:-0xf.ffffffffffff8p+1020:1:5:-0x1.ep3: ++%*5lg:-0xf.ffffffffffff8p+1020:0:5: ++%5lg:-0x7.ffffffffffffcp1021:1:5:-0x1.cp2: ++%*5lg:-0x7.ffffffffffffcp1021:0:5: ++%5lg:-0x2.3456789abcdfep+123:1:5:-0x1p1: ++%*5lg:-0x2.3456789abcdfep+123:0:5: ++%5lg:-0x2.3456789abcdfep0123:1:5:-0x1p1: ++%*5lg:-0x2.3456789abcdfep0123:0:5: ++# BZ12701 %5lg:-0x8p-1025:0:-1: ++# BZ12701 %*5lg:-0x8p-1025:0:-1: ++# BZ12701 %5lg:-0x0p+0:0:-1: ++# BZ12701 %*5lg:-0x0p+0:0:-1: ++# BZ12701 %5lg:-0x0p0:0:-1: ++# BZ12701 %*5lg:-0x0p0:0:-1: ++%5lg:-nan(09A_Zaz):0:-1: ++%*5lg:-nan(09A_Zaz):0:-1: ++%5lg:-nan():0:-1: ++%*5lg:-nan():0:-1: ++%5lg:nan():1:5:nan: ++%*5lg:nan():0:5: ++%5lg:nan(09A_Zaz):0:-1: ++%*5lg:nan(09A_Zaz):0:-1: ++%5lg:0x0p0:1:5:0x0: ++%*5lg:0x0p0:0:5: ++# BZ12701 %5lg:0x0p+0:0:-1: ++# BZ12701 %*5lg:0x0p+0:0:-1: ++# BZ12701 %5lg:0x8p-1025:0:-1: ++# BZ12701 %*5lg:0x8p-1025:0:-1: ++%5lg:0x2.3456789abcdfep0123:1:5:0x1.18p1: ++%*5lg:0x2.3456789abcdfep0123:0:5: ++%5lg:0x2.3456789abcdfep+123:1:5:0x1.18p1: ++%*5lg:0x2.3456789abcdfep+123:0:5: ++%5lg:0x7.ffffffffffffcp1021:1:5:0x1.fcp2: ++%*5lg:0x7.ffffffffffffcp1021:0:5: ++%5lg:0xf.ffffffffffff8p+1020:1:5:0x1.fep3: ++%*5lg:0xf.ffffffffffff8p+1020:0:5: ++%5lg:infinity:0:-1: ++%*5lg:infinity:0:-1: ++%5lg:+nan():0:-1: ++%*5lg:+nan():0:-1: ++%5lg:+nan(09A_Zaz):0:-1: ++%*5lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %5lg:+0x0p0:0:-1: ++# BZ12701 %*5lg:+0x0p0:0:-1: ++# BZ12701 %5lg:+0x0p+0:0:-1: ++# BZ12701 %*5lg:+0x0p+0:0:-1: ++# BZ12701 %5lg:+0x8p-1025:0:-1: ++# BZ12701 %*5lg:+0x8p-1025:0:-1: ++%5lg:+0x2.3456789abcdfep0123:1:5:0x1p1: ++%*5lg:+0x2.3456789abcdfep0123:0:5: ++%5lg:+0x2.3456789abcdfep+123:1:5:0x1p1: ++%*5lg:+0x2.3456789abcdfep+123:0:5: ++%5lg:+0x7.ffffffffffffcp1021:1:5:0x1.cp2: ++%*5lg:+0x7.ffffffffffffcp1021:0:5: ++%5lg:+0xf.ffffffffffff8p+1020:1:5:0x1.ep3: ++%*5lg:+0xf.ffffffffffff8p+1020:0:5: ++%5lg:+infinity:0:-1: ++%*5lg:+infinity:0:-1: ++%6lg::0:-1: ++%*6lg::0:-1: ++%6lg:-infinity:0:-1: ++%*6lg:-infinity:0:-1: ++%6lg:-0xf.ffffffffffff8p+1020:1:6:-0x1.fep3: ++%*6lg:-0xf.ffffffffffff8p+1020:0:6: ++%6lg:-0x7.ffffffffffffcp1021:1:6:-0x1.fcp2: ++%*6lg:-0x7.ffffffffffffcp1021:0:6: ++%6lg:-0x2.3456789abcdfep+123:1:6:-0x1.18p1: ++%*6lg:-0x2.3456789abcdfep+123:0:6: ++%6lg:-0x2.3456789abcdfep0123:1:6:-0x1.18p1: ++%*6lg:-0x2.3456789abcdfep0123:0:6: ++# BZ12701 %6lg:-0x8p-1025:0:-1: ++# BZ12701 %*6lg:-0x8p-1025:0:-1: ++# BZ12701 %6lg:-0x0p+0:0:-1: ++# BZ12701 %*6lg:-0x0p+0:0:-1: ++%6lg:-0x0p0:1:6:-0x0: ++%*6lg:-0x0p0:0:6: ++%6lg:-nan(09A_Zaz):0:-1: ++%*6lg:-nan(09A_Zaz):0:-1: ++%6lg:-nan():1:6:-nan: ++%*6lg:-nan():0:6: ++%6lg:nan():1:5:nan: ++%*6lg:nan():0:5: ++%6lg:nan(09A_Zaz):0:-1: ++%*6lg:nan(09A_Zaz):0:-1: ++%6lg:0x0p0:1:5:0x0: ++%*6lg:0x0p0:0:5: ++%6lg:0x0p+0:1:6:0x0: ++%*6lg:0x0p+0:0:6: ++%6lg:0x8p-1025:1:6:0x1p2: ++%*6lg:0x8p-1025:0:6: ++%6lg:0x2.3456789abcdfep0123:1:6:0x1.1ap1: ++%*6lg:0x2.3456789abcdfep0123:0:6: ++%6lg:0x2.3456789abcdfep+123:1:6:0x1.1ap1: ++%*6lg:0x2.3456789abcdfep+123:0:6: ++%6lg:0x7.ffffffffffffcp1021:1:6:0x1.ffcp2: ++%*6lg:0x7.ffffffffffffcp1021:0:6: ++%6lg:0xf.ffffffffffff8p+1020:1:6:0x1.ffep3: ++%*6lg:0xf.ffffffffffff8p+1020:0:6: ++%6lg:infinity:0:-1: ++%*6lg:infinity:0:-1: ++%6lg:+nan():1:6:nan: ++%*6lg:+nan():0:6: ++%6lg:+nan(09A_Zaz):0:-1: ++%*6lg:+nan(09A_Zaz):0:-1: ++%6lg:+0x0p0:1:6:0x0: ++%*6lg:+0x0p0:0:6: ++# BZ12701 %6lg:+0x0p+0:0:-1: ++# BZ12701 %*6lg:+0x0p+0:0:-1: ++# BZ12701 %6lg:+0x8p-1025:0:-1: ++# BZ12701 %*6lg:+0x8p-1025:0:-1: ++%6lg:+0x2.3456789abcdfep0123:1:6:0x1.18p1: ++%*6lg:+0x2.3456789abcdfep0123:0:6: ++%6lg:+0x2.3456789abcdfep+123:1:6:0x1.18p1: ++%*6lg:+0x2.3456789abcdfep+123:0:6: ++%6lg:+0x7.ffffffffffffcp1021:1:6:0x1.fcp2: ++%*6lg:+0x7.ffffffffffffcp1021:0:6: ++%6lg:+0xf.ffffffffffff8p+1020:1:6:0x1.fep3: ++%*6lg:+0xf.ffffffffffff8p+1020:0:6: ++%6lg:+infinity:0:-1: ++%*6lg:+infinity:0:-1: ++%20lg::0:-1: ++%*20lg::0:-1: ++%20lg:-infinity:1:9:-inf: ++%*20lg:-infinity:0:9: ++# BZ12701 %20lg:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*20lg:-0xf.ffffffffffff8p+1020:0:-1: ++%20lg:-0x7.ffffffffffffcp1021:1:20:-0x1.fffffffffffffp3: ++%*20lg:-0x7.ffffffffffffcp1021:0:20: ++# BZ12701 %20lg:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*20lg:-0x2.3456789abcdfep+123:0:-1: ++%20lg:-0x2.3456789abcdfep0123:1:20:-0x1.1a2b3c4d5e6ffp1: ++%*20lg:-0x2.3456789abcdfep0123:0:20: ++%20lg:-0x8p-1025:1:10:-0x1p-1022: ++%*20lg:-0x8p-1025:0:10: ++%20lg:-0x0p+0:1:7:-0x0: ++%*20lg:-0x0p+0:0:7: ++%20lg:-0x0p0:1:6:-0x0: ++%*20lg:-0x0p0:0:6: ++%20lg:-nan(09A_Zaz):1:13:-nan: ++%*20lg:-nan(09A_Zaz):0:13: ++%20lg:-nan():1:6:-nan: ++%*20lg:-nan():0:6: ++%20lg:nan():1:5:nan: ++%*20lg:nan():0:5: ++%20lg:nan(09A_Zaz):1:12:nan: ++%*20lg:nan(09A_Zaz):0:12: ++%20lg:0x0p0:1:5:0x0: ++%*20lg:0x0p0:0:5: ++%20lg:0x0p+0:1:6:0x0: ++%*20lg:0x0p+0:0:6: ++%20lg:0x8p-1025:1:9:0x1p-1022: ++%*20lg:0x8p-1025:0:9: ++%20lg:0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20lg:0x2.3456789abcdfep0123:0:20: ++%20lg:0x2.3456789abcdfep+123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20lg:0x2.3456789abcdfep+123:0:20: ++%20lg:0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp12: ++%*20lg:0x7.ffffffffffffcp1021:0:20: ++%20lg:0xf.ffffffffffff8p+1020:1:20:0x1.fffffffffffffp4: ++%*20lg:0xf.ffffffffffff8p+1020:0:20: ++%20lg:infinity:1:8:inf: ++%*20lg:infinity:0:8: ++%20lg:+nan():1:6:nan: ++%*20lg:+nan():0:6: ++%20lg:+nan(09A_Zaz):1:13:nan: ++%*20lg:+nan(09A_Zaz):0:13: ++%20lg:+0x0p0:1:6:0x0: ++%*20lg:+0x0p0:0:6: ++%20lg:+0x0p+0:1:7:0x0: ++%*20lg:+0x0p+0:0:7: ++%20lg:+0x8p-1025:1:10:0x1p-1022: ++%*20lg:+0x8p-1025:0:10: ++%20lg:+0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp1: ++%*20lg:+0x2.3456789abcdfep0123:0:20: ++# BZ12701 %20lg:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*20lg:+0x2.3456789abcdfep+123:0:-1: ++%20lg:+0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp3: ++%*20lg:+0x7.ffffffffffffcp1021:0:20: ++# BZ12701 %20lg:+0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*20lg:+0xf.ffffffffffff8p+1020:0:-1: ++%20lg:+infinity:1:9:inf: ++%*20lg:+infinity:0:9: ++%32lg::0:-1: ++%*32lg::0:-1: ++%32lg:-infinity:1:9:-inf: ++%*32lg:-infinity:0:9: ++%32lg:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023: ++%*32lg:-0xf.ffffffffffff8p+1020:0:24: ++%32lg:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023: ++%*32lg:-0x7.ffffffffffffcp1021:0:23: ++%32lg:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32lg:-0x2.3456789abcdfep+123:0:23: ++%32lg:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32lg:-0x2.3456789abcdfep0123:0:23: ++%32lg:-0x8p-1025:1:10:-0x1p-1022: ++%*32lg:-0x8p-1025:0:10: ++%32lg:-0x0p+0:1:7:-0x0: ++%*32lg:-0x0p+0:0:7: ++%32lg:-0x0p0:1:6:-0x0: ++%*32lg:-0x0p0:0:6: ++%32lg:-nan(09A_Zaz):1:13:-nan: ++%*32lg:-nan(09A_Zaz):0:13: ++%32lg:-nan():1:6:-nan: ++%*32lg:-nan():0:6: ++%32lg:nan():1:5:nan: ++%*32lg:nan():0:5: ++%32lg:nan(09A_Zaz):1:12:nan: ++%*32lg:nan(09A_Zaz):0:12: ++%32lg:0x0p0:1:5:0x0: ++%*32lg:0x0p0:0:5: ++%32lg:0x0p+0:1:6:0x0: ++%*32lg:0x0p+0:0:6: ++%32lg:0x8p-1025:1:9:0x1p-1022: ++%*32lg:0x8p-1025:0:9: ++%32lg:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32lg:0x2.3456789abcdfep0123:0:22: ++%32lg:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32lg:0x2.3456789abcdfep+123:0:22: ++%32lg:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023: ++%*32lg:0x7.ffffffffffffcp1021:0:22: ++%32lg:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023: ++%*32lg:0xf.ffffffffffff8p+1020:0:23: ++%32lg:infinity:1:8:inf: ++%*32lg:infinity:0:8: ++%32lg:+nan():1:6:nan: ++%*32lg:+nan():0:6: ++%32lg:+nan(09A_Zaz):1:13:nan: ++%*32lg:+nan(09A_Zaz):0:13: ++%32lg:+0x0p0:1:6:0x0: ++%*32lg:+0x0p0:0:6: ++%32lg:+0x0p+0:1:7:0x0: ++%*32lg:+0x0p+0:0:7: ++%32lg:+0x8p-1025:1:10:0x1p-1022: ++%*32lg:+0x8p-1025:0:10: ++%32lg:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lg:+0x2.3456789abcdfep0123:0:23: ++%32lg:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lg:+0x2.3456789abcdfep+123:0:23: ++%32lg:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*32lg:+0x7.ffffffffffffcp1021:0:23: ++%32lg:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*32lg:+0xf.ffffffffffff8p+1020:0:24: ++%32lg:+infinity:1:9:inf: ++%*32lg:+infinity:0:9: ++%5lg: :0:-1: ++%*5lg: :0:-1: ++%5lg: -infinity:0:-1: ++%*5lg: -infinity:0:-1: ++%5lg: -0xf.ffffffffffff8p+1020:1:6:-0x1.ep3: ++%*5lg: -0xf.ffffffffffff8p+1020:0:6: ++%5lg: -0x7.ffffffffffffcp1021:1:6:-0x1.cp2: ++%*5lg: -0x7.ffffffffffffcp1021:0:6: ++%5lg: -0x2.3456789abcdfep+123:1:6:-0x1p1: ++%*5lg: -0x2.3456789abcdfep+123:0:6: ++%5lg: -0x2.3456789abcdfep0123:1:6:-0x1p1: ++%*5lg: -0x2.3456789abcdfep0123:0:6: ++# BZ12701 %5lg: -0x8p-1025:0:-1: ++# BZ12701 %*5lg: -0x8p-1025:0:-1: ++# BZ12701 %5lg: -0x0p+0:0:-1: ++# BZ12701 %*5lg: -0x0p+0:0:-1: ++# BZ12701 %5lg: -0x0p0:0:-1: ++# BZ12701 %*5lg: -0x0p0:0:-1: ++%5lg: -nan(09A_Zaz):0:-1: ++%*5lg: -nan(09A_Zaz):0:-1: ++%5lg: -nan():0:-1: ++%*5lg: -nan():0:-1: ++%5lg: nan():1:6:nan: ++%*5lg: nan():0:6: ++%5lg: nan(09A_Zaz):0:-1: ++%*5lg: nan(09A_Zaz):0:-1: ++%5lg: 0x0p0:1:6:0x0: ++%*5lg: 0x0p0:0:6: ++# BZ12701 %5lg: 0x0p+0:0:-1: ++# BZ12701 %*5lg: 0x0p+0:0:-1: ++# BZ12701 %5lg: 0x8p-1025:0:-1: ++# BZ12701 %*5lg: 0x8p-1025:0:-1: ++%5lg: 0x2.3456789abcdfep0123:1:6:0x1.18p1: ++%*5lg: 0x2.3456789abcdfep0123:0:6: ++%5lg: 0x2.3456789abcdfep+123:1:6:0x1.18p1: ++%*5lg: 0x2.3456789abcdfep+123:0:6: ++%5lg: 0x7.ffffffffffffcp1021:1:6:0x1.fcp2: ++%*5lg: 0x7.ffffffffffffcp1021:0:6: ++%5lg: 0xf.ffffffffffff8p+1020:1:6:0x1.fep3: ++%*5lg: 0xf.ffffffffffff8p+1020:0:6: ++%5lg: infinity:0:-1: ++%*5lg: infinity:0:-1: ++%5lg: +nan():0:-1: ++%*5lg: +nan():0:-1: ++%5lg: +nan(09A_Zaz):0:-1: ++%*5lg: +nan(09A_Zaz):0:-1: ++# BZ12701 %5lg: +0x0p0:0:-1: ++# BZ12701 %*5lg: +0x0p0:0:-1: ++# BZ12701 %5lg: +0x0p+0:0:-1: ++# BZ12701 %*5lg: +0x0p+0:0:-1: ++# BZ12701 %5lg: +0x8p-1025:0:-1: ++# BZ12701 %*5lg: +0x8p-1025:0:-1: ++%5lg: +0x2.3456789abcdfep0123:1:6:0x1p1: ++%*5lg: +0x2.3456789abcdfep0123:0:6: ++%5lg: +0x2.3456789abcdfep+123:1:6:0x1p1: ++%*5lg: +0x2.3456789abcdfep+123:0:6: ++%5lg: +0x7.ffffffffffffcp1021:1:6:0x1.cp2: ++%*5lg: +0x7.ffffffffffffcp1021:0:6: ++%5lg: +0xf.ffffffffffff8p+1020:1:6:0x1.ep3: ++%*5lg: +0xf.ffffffffffff8p+1020:0:6: ++%5lg: +infinity:0:-1: ++%*5lg: +infinity:0:-1: ++%32lg: :0:-1: ++%*32lg: :0:-1: ++%32lg: -infinity:1:10:-inf: ++%*32lg: -infinity:0:10: ++%32lg: -0xf.ffffffffffff8p+1020:1:25:-0x1.fffffffffffffp1023: ++%*32lg: -0xf.ffffffffffff8p+1020:0:25: ++%32lg: -0x7.ffffffffffffcp1021:1:24:-0x1.fffffffffffffp1023: ++%*32lg: -0x7.ffffffffffffcp1021:0:24: ++%32lg: -0x2.3456789abcdfep+123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32lg: -0x2.3456789abcdfep+123:0:24: ++%32lg: -0x2.3456789abcdfep0123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32lg: -0x2.3456789abcdfep0123:0:24: ++%32lg: -0x8p-1025:1:11:-0x1p-1022: ++%*32lg: -0x8p-1025:0:11: ++%32lg: -0x0p+0:1:8:-0x0: ++%*32lg: -0x0p+0:0:8: ++%32lg: -0x0p0:1:7:-0x0: ++%*32lg: -0x0p0:0:7: ++%32lg: -nan(09A_Zaz):1:14:-nan: ++%*32lg: -nan(09A_Zaz):0:14: ++%32lg: -nan():1:7:-nan: ++%*32lg: -nan():0:7: ++%32lg: nan():1:6:nan: ++%*32lg: nan():0:6: ++%32lg: nan(09A_Zaz):1:13:nan: ++%*32lg: nan(09A_Zaz):0:13: ++%32lg: 0x0p0:1:6:0x0: ++%*32lg: 0x0p0:0:6: ++%32lg: 0x0p+0:1:7:0x0: ++%*32lg: 0x0p+0:0:7: ++%32lg: 0x8p-1025:1:10:0x1p-1022: ++%*32lg: 0x8p-1025:0:10: ++%32lg: 0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lg: 0x2.3456789abcdfep0123:0:23: ++%32lg: 0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lg: 0x2.3456789abcdfep+123:0:23: ++%32lg: 0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*32lg: 0x7.ffffffffffffcp1021:0:23: ++%32lg: 0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*32lg: 0xf.ffffffffffff8p+1020:0:24: ++%32lg: infinity:1:9:inf: ++%*32lg: infinity:0:9: ++%32lg: +nan():1:7:nan: ++%*32lg: +nan():0:7: ++%32lg: +nan(09A_Zaz):1:14:nan: ++%*32lg: +nan(09A_Zaz):0:14: ++%32lg: +0x0p0:1:7:0x0: ++%*32lg: +0x0p0:0:7: ++%32lg: +0x0p+0:1:8:0x0: ++%*32lg: +0x0p+0:0:8: ++%32lg: +0x8p-1025:1:11:0x1p-1022: ++%*32lg: +0x8p-1025:0:11: ++%32lg: +0x2.3456789abcdfep0123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32lg: +0x2.3456789abcdfep0123:0:24: ++%32lg: +0x2.3456789abcdfep+123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32lg: +0x2.3456789abcdfep+123:0:24: ++%32lg: +0x7.ffffffffffffcp1021:1:24:0x1.fffffffffffffp1023: ++%*32lg: +0x7.ffffffffffffcp1021:0:24: ++%32lg: +0xf.ffffffffffff8p+1020:1:25:0x1.fffffffffffffp1023: ++%*32lg: +0xf.ffffffffffff8p+1020:0:25: ++%32lg: +infinity:1:10:inf: ++%*32lg: +infinity:0:10: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-gg.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-gg.input +new file mode 100644 +index 0000000000000000..eb8bb9f48ebddc7c +--- /dev/null ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-gg.input +@@ -0,0 +1,682 @@ ++%lG::0:-1: ++%*lG::0:-1: ++%lG:-INFINITY:1:9:-inf: ++%*lG:-INFINITY:0:9: ++%lG:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023: ++%*lG:-0XF.FFFFFFFFFFFF8P+1020:0:24: ++%lG:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023: ++%*lG:-0X7.FFFFFFFFFFFFCP1021:0:23: ++%lG:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*lG:-0X2.3456789ABCDFEP+123:0:23: ++%lG:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*lG:-0X2.3456789ABCDFEP0123:0:23: ++%lG:-0X8P-1025:1:10:-0x1p-1022: ++%*lG:-0X8P-1025:0:10: ++%lG:-0X0P+0:1:7:-0x0: ++%*lG:-0X0P+0:0:7: ++%lG:-0X0P0:1:6:-0x0: ++%*lG:-0X0P0:0:6: ++%lG:-NAN(09A_Zaz):1:13:-nan: ++%*lG:-NAN(09A_Zaz):0:13: ++%lG:-NAN():1:6:-nan: ++%*lG:-NAN():0:6: ++%lG:NAN():1:5:nan: ++%*lG:NAN():0:5: ++%lG:NAN(09A_Zaz):1:12:nan: ++%*lG:NAN(09A_Zaz):0:12: ++%lG:0X0P0:1:5:0x0: ++%*lG:0X0P0:0:5: ++%lG:0X0P+0:1:6:0x0: ++%*lG:0X0P+0:0:6: ++%lG:0X8P-1025:1:9:0x1p-1022: ++%*lG:0X8P-1025:0:9: ++%lG:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*lG:0X2.3456789ABCDFEP0123:0:22: ++%lG:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*lG:0X2.3456789ABCDFEP+123:0:22: ++%lG:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023: ++%*lG:0X7.FFFFFFFFFFFFCP1021:0:22: ++%lG:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023: ++%*lG:0XF.FFFFFFFFFFFF8P+1020:0:23: ++%lG:INFINITY:1:8:inf: ++%*lG:INFINITY:0:8: ++%lG:+NAN():1:6:nan: ++%*lG:+NAN():0:6: ++%lG:+NAN(09A_Zaz):1:13:nan: ++%*lG:+NAN(09A_Zaz):0:13: ++%lG:+0X0P0:1:6:0x0: ++%*lG:+0X0P0:0:6: ++%lG:+0X0P+0:1:7:0x0: ++%*lG:+0X0P+0:0:7: ++%lG:+0X8P-1025:1:10:0x1p-1022: ++%*lG:+0X8P-1025:0:10: ++%lG:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*lG:+0X2.3456789ABCDFEP0123:0:23: ++%lG:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*lG:+0X2.3456789ABCDFEP+123:0:23: ++%lG:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*lG:+0X7.FFFFFFFFFFFFCP1021:0:23: ++%lG:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*lG:+0XF.FFFFFFFFFFFF8P+1020:0:24: ++%lG:+INFINITY:1:9:inf: ++%*lG:+INFINITY:0:9: ++%1lG::0:-1: ++%*1lG::0:-1: ++%1lG:-INFINITY:0:-1: ++%*1lG:-INFINITY:0:-1: ++%1lG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%*1lG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%1lG:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++%*1lG:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++%1lG:-0X2.3456789ABCDFEP+123:0:-1: ++%*1lG:-0X2.3456789ABCDFEP+123:0:-1: ++%1lG:-0X2.3456789ABCDFEP0123:0:-1: ++%*1lG:-0X2.3456789ABCDFEP0123:0:-1: ++%1lG:-0X8P-1025:0:-1: ++%*1lG:-0X8P-1025:0:-1: ++%1lG:-0X0P+0:0:-1: ++%*1lG:-0X0P+0:0:-1: ++%1lG:-0X0P0:0:-1: ++%*1lG:-0X0P0:0:-1: ++%1lG:-NAN(09A_Zaz):0:-1: ++%*1lG:-NAN(09A_Zaz):0:-1: ++%1lG:-NAN():0:-1: ++%*1lG:-NAN():0:-1: ++%1lG:NAN():0:-1: ++%*1lG:NAN():0:-1: ++%1lG:NAN(09A_Zaz):0:-1: ++%*1lG:NAN(09A_Zaz):0:-1: ++%1lG:0X0P0:1:1:0x0: ++%*1lG:0X0P0:0:1: ++%1lG:0X0P+0:1:1:0x0: ++%*1lG:0X0P+0:0:1: ++%1lG:0X8P-1025:1:1:0x0: ++%*1lG:0X8P-1025:0:1: ++%1lG:0X2.3456789ABCDFEP0123:1:1:0x0: ++%*1lG:0X2.3456789ABCDFEP0123:0:1: ++%1lG:0X2.3456789ABCDFEP+123:1:1:0x0: ++%*1lG:0X2.3456789ABCDFEP+123:0:1: ++%1lG:0X7.FFFFFFFFFFFFCP1021:1:1:0x0: ++%*1lG:0X7.FFFFFFFFFFFFCP1021:0:1: ++%1lG:0XF.FFFFFFFFFFFF8P+1020:1:1:0x0: ++%*1lG:0XF.FFFFFFFFFFFF8P+1020:0:1: ++%1lG:INFINITY:0:-1: ++%*1lG:INFINITY:0:-1: ++%1lG:+NAN():0:-1: ++%*1lG:+NAN():0:-1: ++%1lG:+NAN(09A_Zaz):0:-1: ++%*1lG:+NAN(09A_Zaz):0:-1: ++%1lG:+0X0P0:0:-1: ++%*1lG:+0X0P0:0:-1: ++%1lG:+0X0P+0:0:-1: ++%*1lG:+0X0P+0:0:-1: ++%1lG:+0X8P-1025:0:-1: ++%*1lG:+0X8P-1025:0:-1: ++%1lG:+0X2.3456789ABCDFEP0123:0:-1: ++%*1lG:+0X2.3456789ABCDFEP0123:0:-1: ++%1lG:+0X2.3456789ABCDFEP+123:0:-1: ++%*1lG:+0X2.3456789ABCDFEP+123:0:-1: ++%1lG:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++%*1lG:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++%1lG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%*1lG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%1lG:+INFINITY:0:-1: ++%*1lG:+INFINITY:0:-1: ++%2lG::0:-1: ++%*2lG::0:-1: ++%2lG:-INFINITY:0:-1: ++%*2lG:-INFINITY:0:-1: ++%2lG:-0XF.FFFFFFFFFFFF8P+1020:1:2:-0x0: ++%*2lG:-0XF.FFFFFFFFFFFF8P+1020:0:2: ++%2lG:-0X7.FFFFFFFFFFFFCP1021:1:2:-0x0: ++%*2lG:-0X7.FFFFFFFFFFFFCP1021:0:2: ++%2lG:-0X2.3456789ABCDFEP+123:1:2:-0x0: ++%*2lG:-0X2.3456789ABCDFEP+123:0:2: ++%2lG:-0X2.3456789ABCDFEP0123:1:2:-0x0: ++%*2lG:-0X2.3456789ABCDFEP0123:0:2: ++%2lG:-0X8P-1025:1:2:-0x0: ++%*2lG:-0X8P-1025:0:2: ++%2lG:-0X0P+0:1:2:-0x0: ++%*2lG:-0X0P+0:0:2: ++%2lG:-0X0P0:1:2:-0x0: ++%*2lG:-0X0P0:0:2: ++%2lG:-NAN(09A_Zaz):0:-1: ++%*2lG:-NAN(09A_Zaz):0:-1: ++%2lG:-NAN():0:-1: ++%*2lG:-NAN():0:-1: ++%2lG:NAN():0:-1: ++%*2lG:NAN():0:-1: ++%2lG:NAN(09A_Zaz):0:-1: ++%*2lG:NAN(09A_Zaz):0:-1: ++# BZ12701 %2lG:0X0P0:0:-1: ++# BZ12701 %*2lG:0X0P0:0:-1: ++# BZ12701 %2lG:0X0P+0:0:-1: ++# BZ12701 %*2lG:0X0P+0:0:-1: ++# BZ12701 %2lG:0X8P-1025:0:-1: ++# BZ12701 %*2lG:0X8P-1025:0:-1: ++# BZ12701 %2lG:0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*2lG:0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %2lG:0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*2lG:0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %2lG:0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*2lG:0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %2lG:0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*2lG:0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%2lG:INFINITY:0:-1: ++%*2lG:INFINITY:0:-1: ++%2lG:+NAN():0:-1: ++%*2lG:+NAN():0:-1: ++%2lG:+NAN(09A_Zaz):0:-1: ++%*2lG:+NAN(09A_Zaz):0:-1: ++%2lG:+0X0P0:1:2:0x0: ++%*2lG:+0X0P0:0:2: ++%2lG:+0X0P+0:1:2:0x0: ++%*2lG:+0X0P+0:0:2: ++%2lG:+0X8P-1025:1:2:0x0: ++%*2lG:+0X8P-1025:0:2: ++%2lG:+0X2.3456789ABCDFEP0123:1:2:0x0: ++%*2lG:+0X2.3456789ABCDFEP0123:0:2: ++%2lG:+0X2.3456789ABCDFEP+123:1:2:0x0: ++%*2lG:+0X2.3456789ABCDFEP+123:0:2: ++%2lG:+0X7.FFFFFFFFFFFFCP1021:1:2:0x0: ++%*2lG:+0X7.FFFFFFFFFFFFCP1021:0:2: ++%2lG:+0XF.FFFFFFFFFFFF8P+1020:1:2:0x0: ++%*2lG:+0XF.FFFFFFFFFFFF8P+1020:0:2: ++%2lG:+INFINITY:0:-1: ++%*2lG:+INFINITY:0:-1: ++%3lG::0:-1: ++%*3lG::0:-1: ++%3lG:-INFINITY:0:-1: ++%*3lG:-INFINITY:0:-1: ++# BZ12701 %3lG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*3lG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %3lG:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*3lG:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %3lG:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*3lG:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %3lG:-0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*3lG:-0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %3lG:-0X8P-1025:0:-1: ++# BZ12701 %*3lG:-0X8P-1025:0:-1: ++# BZ12701 %3lG:-0X0P+0:0:-1: ++# BZ12701 %*3lG:-0X0P+0:0:-1: ++# BZ12701 %3lG:-0X0P0:0:-1: ++# BZ12701 %*3lG:-0X0P0:0:-1: ++%3lG:-NAN(09A_Zaz):0:-1: ++%*3lG:-NAN(09A_Zaz):0:-1: ++%3lG:-NAN():0:-1: ++%*3lG:-NAN():0:-1: ++%3lG:NAN():1:3:nan: ++%*3lG:NAN():0:3: ++%3lG:NAN(09A_Zaz):1:3:nan: ++%*3lG:NAN(09A_Zaz):0:3: ++%3lG:0X0P0:1:3:0x0: ++%*3lG:0X0P0:0:3: ++%3lG:0X0P+0:1:3:0x0: ++%*3lG:0X0P+0:0:3: ++%3lG:0X8P-1025:1:3:0x1p3: ++%*3lG:0X8P-1025:0:3: ++%3lG:0X2.3456789ABCDFEP0123:1:3:0x1p1: ++%*3lG:0X2.3456789ABCDFEP0123:0:3: ++%3lG:0X2.3456789ABCDFEP+123:1:3:0x1p1: ++%*3lG:0X2.3456789ABCDFEP+123:0:3: ++%3lG:0X7.FFFFFFFFFFFFCP1021:1:3:0x1.cp2: ++%*3lG:0X7.FFFFFFFFFFFFCP1021:0:3: ++%3lG:0XF.FFFFFFFFFFFF8P+1020:1:3:0x1.ep3: ++%*3lG:0XF.FFFFFFFFFFFF8P+1020:0:3: ++%3lG:INFINITY:1:3:inf: ++%*3lG:INFINITY:0:3: ++%3lG:+NAN():0:-1: ++%*3lG:+NAN():0:-1: ++%3lG:+NAN(09A_Zaz):0:-1: ++%*3lG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3lG:+0X0P0:0:-1: ++# BZ12701 %*3lG:+0X0P0:0:-1: ++# BZ12701 %3lG:+0X0P+0:0:-1: ++# BZ12701 %*3lG:+0X0P+0:0:-1: ++# BZ12701 %3lG:+0X8P-1025:0:-1: ++# BZ12701 %*3lG:+0X8P-1025:0:-1: ++# BZ12701 %3lG:+0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*3lG:+0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %3lG:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*3lG:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %3lG:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*3lG:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %3lG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*3lG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%3lG:+INFINITY:0:-1: ++%*3lG:+INFINITY:0:-1: ++%4lG::0:-1: ++%*4lG::0:-1: ++%4lG:-INFINITY:1:4:-inf: ++%*4lG:-INFINITY:0:4: ++%4lG:-0XF.FFFFFFFFFFFF8P+1020:1:4:-0x1.ep3: ++%*4lG:-0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4lG:-0X7.FFFFFFFFFFFFCP1021:1:4:-0x1.cp2: ++%*4lG:-0X7.FFFFFFFFFFFFCP1021:0:4: ++%4lG:-0X2.3456789ABCDFEP+123:1:4:-0x1p1: ++%*4lG:-0X2.3456789ABCDFEP+123:0:4: ++%4lG:-0X2.3456789ABCDFEP0123:1:4:-0x1p1: ++%*4lG:-0X2.3456789ABCDFEP0123:0:4: ++%4lG:-0X8P-1025:1:4:-0x1p3: ++%*4lG:-0X8P-1025:0:4: ++%4lG:-0X0P+0:1:4:-0x0: ++%*4lG:-0X0P+0:0:4: ++%4lG:-0X0P0:1:4:-0x0: ++%*4lG:-0X0P0:0:4: ++%4lG:-NAN(09A_Zaz):1:4:-nan: ++%*4lG:-NAN(09A_Zaz):0:4: ++%4lG:-NAN():1:4:-nan: ++%*4lG:-NAN():0:4: ++%4lG:NAN():0:-1: ++%*4lG:NAN():0:-1: ++%4lG:NAN(09A_Zaz):0:-1: ++%*4lG:NAN(09A_Zaz):0:-1: ++# BZ12701 %4lG:0X0P0:0:-1: ++# BZ12701 %*4lG:0X0P0:0:-1: ++# BZ12701 %4lG:0X0P+0:0:-1: ++# BZ12701 %*4lG:0X0P+0:0:-1: ++# BZ12701 %4lG:0X8P-1025:0:-1: ++# BZ12701 %*4lG:0X8P-1025:0:-1: ++%4lG:0X2.3456789ABCDFEP0123:1:4:0x1p1: ++%*4lG:0X2.3456789ABCDFEP0123:0:4: ++%4lG:0X2.3456789ABCDFEP+123:1:4:0x1p1: ++%*4lG:0X2.3456789ABCDFEP+123:0:4: ++%4lG:0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2: ++%*4lG:0X7.FFFFFFFFFFFFCP1021:0:4: ++%4lG:0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3: ++%*4lG:0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4lG:INFINITY:0:-1: ++%*4lG:INFINITY:0:-1: ++%4lG:+NAN():1:4:nan: ++%*4lG:+NAN():0:4: ++%4lG:+NAN(09A_Zaz):1:4:nan: ++%*4lG:+NAN(09A_Zaz):0:4: ++%4lG:+0X0P0:1:4:0x0: ++%*4lG:+0X0P0:0:4: ++%4lG:+0X0P+0:1:4:0x0: ++%*4lG:+0X0P+0:0:4: ++%4lG:+0X8P-1025:1:4:0x1p3: ++%*4lG:+0X8P-1025:0:4: ++%4lG:+0X2.3456789ABCDFEP0123:1:4:0x1p1: ++%*4lG:+0X2.3456789ABCDFEP0123:0:4: ++%4lG:+0X2.3456789ABCDFEP+123:1:4:0x1p1: ++%*4lG:+0X2.3456789ABCDFEP+123:0:4: ++%4lG:+0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2: ++%*4lG:+0X7.FFFFFFFFFFFFCP1021:0:4: ++%4lG:+0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3: ++%*4lG:+0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4lG:+INFINITY:1:4:inf: ++%*4lG:+INFINITY:0:4: ++%5lG::0:-1: ++%*5lG::0:-1: ++%5lG:-INFINITY:0:-1: ++%*5lG:-INFINITY:0:-1: ++%5lG:-0XF.FFFFFFFFFFFF8P+1020:1:5:-0x1.ep3: ++%*5lG:-0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5lG:-0X7.FFFFFFFFFFFFCP1021:1:5:-0x1.cp2: ++%*5lG:-0X7.FFFFFFFFFFFFCP1021:0:5: ++%5lG:-0X2.3456789ABCDFEP+123:1:5:-0x1p1: ++%*5lG:-0X2.3456789ABCDFEP+123:0:5: ++%5lG:-0X2.3456789ABCDFEP0123:1:5:-0x1p1: ++%*5lG:-0X2.3456789ABCDFEP0123:0:5: ++# BZ12701 %5lG:-0X8P-1025:0:-1: ++# BZ12701 %*5lG:-0X8P-1025:0:-1: ++# BZ12701 %5lG:-0X0P+0:0:-1: ++# BZ12701 %*5lG:-0X0P+0:0:-1: ++# BZ12701 %5lG:-0X0P0:0:-1: ++# BZ12701 %*5lG:-0X0P0:0:-1: ++%5lG:-NAN(09A_Zaz):0:-1: ++%*5lG:-NAN(09A_Zaz):0:-1: ++%5lG:-NAN():0:-1: ++%*5lG:-NAN():0:-1: ++%5lG:NAN():1:5:nan: ++%*5lG:NAN():0:5: ++%5lG:NAN(09A_Zaz):0:-1: ++%*5lG:NAN(09A_Zaz):0:-1: ++%5lG:0X0P0:1:5:0x0: ++%*5lG:0X0P0:0:5: ++# BZ12701 %5lG:0X0P+0:0:-1: ++# BZ12701 %*5lG:0X0P+0:0:-1: ++# BZ12701 %5lG:0X8P-1025:0:-1: ++# BZ12701 %*5lG:0X8P-1025:0:-1: ++%5lG:0X2.3456789ABCDFEP0123:1:5:0x1.18p1: ++%*5lG:0X2.3456789ABCDFEP0123:0:5: ++%5lG:0X2.3456789ABCDFEP+123:1:5:0x1.18p1: ++%*5lG:0X2.3456789ABCDFEP+123:0:5: ++%5lG:0X7.FFFFFFFFFFFFCP1021:1:5:0x1.fcp2: ++%*5lG:0X7.FFFFFFFFFFFFCP1021:0:5: ++%5lG:0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.fep3: ++%*5lG:0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5lG:INFINITY:0:-1: ++%*5lG:INFINITY:0:-1: ++%5lG:+NAN():0:-1: ++%*5lG:+NAN():0:-1: ++%5lG:+NAN(09A_Zaz):0:-1: ++%*5lG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5lG:+0X0P0:0:-1: ++# BZ12701 %*5lG:+0X0P0:0:-1: ++# BZ12701 %5lG:+0X0P+0:0:-1: ++# BZ12701 %*5lG:+0X0P+0:0:-1: ++# BZ12701 %5lG:+0X8P-1025:0:-1: ++# BZ12701 %*5lG:+0X8P-1025:0:-1: ++%5lG:+0X2.3456789ABCDFEP0123:1:5:0x1p1: ++%*5lG:+0X2.3456789ABCDFEP0123:0:5: ++%5lG:+0X2.3456789ABCDFEP+123:1:5:0x1p1: ++%*5lG:+0X2.3456789ABCDFEP+123:0:5: ++%5lG:+0X7.FFFFFFFFFFFFCP1021:1:5:0x1.cp2: ++%*5lG:+0X7.FFFFFFFFFFFFCP1021:0:5: ++%5lG:+0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.ep3: ++%*5lG:+0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5lG:+INFINITY:0:-1: ++%*5lG:+INFINITY:0:-1: ++%6lG::0:-1: ++%*6lG::0:-1: ++%6lG:-INFINITY:0:-1: ++%*6lG:-INFINITY:0:-1: ++%6lG:-0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.fep3: ++%*6lG:-0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6lG:-0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.fcp2: ++%*6lG:-0X7.FFFFFFFFFFFFCP1021:0:6: ++%6lG:-0X2.3456789ABCDFEP+123:1:6:-0x1.18p1: ++%*6lG:-0X2.3456789ABCDFEP+123:0:6: ++%6lG:-0X2.3456789ABCDFEP0123:1:6:-0x1.18p1: ++%*6lG:-0X2.3456789ABCDFEP0123:0:6: ++# BZ12701 %6lG:-0X8P-1025:0:-1: ++# BZ12701 %*6lG:-0X8P-1025:0:-1: ++# BZ12701 %6lG:-0X0P+0:0:-1: ++# BZ12701 %*6lG:-0X0P+0:0:-1: ++%6lG:-0X0P0:1:6:-0x0: ++%*6lG:-0X0P0:0:6: ++%6lG:-NAN(09A_Zaz):0:-1: ++%*6lG:-NAN(09A_Zaz):0:-1: ++%6lG:-NAN():1:6:-nan: ++%*6lG:-NAN():0:6: ++%6lG:NAN():1:5:nan: ++%*6lG:NAN():0:5: ++%6lG:NAN(09A_Zaz):0:-1: ++%*6lG:NAN(09A_Zaz):0:-1: ++%6lG:0X0P0:1:5:0x0: ++%*6lG:0X0P0:0:5: ++%6lG:0X0P+0:1:6:0x0: ++%*6lG:0X0P+0:0:6: ++%6lG:0X8P-1025:1:6:0x1p2: ++%*6lG:0X8P-1025:0:6: ++%6lG:0X2.3456789ABCDFEP0123:1:6:0x1.1ap1: ++%*6lG:0X2.3456789ABCDFEP0123:0:6: ++%6lG:0X2.3456789ABCDFEP+123:1:6:0x1.1ap1: ++%*6lG:0X2.3456789ABCDFEP+123:0:6: ++%6lG:0X7.FFFFFFFFFFFFCP1021:1:6:0x1.ffcp2: ++%*6lG:0X7.FFFFFFFFFFFFCP1021:0:6: ++%6lG:0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ffep3: ++%*6lG:0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6lG:INFINITY:0:-1: ++%*6lG:INFINITY:0:-1: ++%6lG:+NAN():1:6:nan: ++%*6lG:+NAN():0:6: ++%6lG:+NAN(09A_Zaz):0:-1: ++%*6lG:+NAN(09A_Zaz):0:-1: ++%6lG:+0X0P0:1:6:0x0: ++%*6lG:+0X0P0:0:6: ++# BZ12701 %6lG:+0X0P+0:0:-1: ++# BZ12701 %*6lG:+0X0P+0:0:-1: ++# BZ12701 %6lG:+0X8P-1025:0:-1: ++# BZ12701 %*6lG:+0X8P-1025:0:-1: ++%6lG:+0X2.3456789ABCDFEP0123:1:6:0x1.18p1: ++%*6lG:+0X2.3456789ABCDFEP0123:0:6: ++%6lG:+0X2.3456789ABCDFEP+123:1:6:0x1.18p1: ++%*6lG:+0X2.3456789ABCDFEP+123:0:6: ++%6lG:+0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2: ++%*6lG:+0X7.FFFFFFFFFFFFCP1021:0:6: ++%6lG:+0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3: ++%*6lG:+0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6lG:+INFINITY:0:-1: ++%*6lG:+INFINITY:0:-1: ++%20lG::0:-1: ++%*20lG::0:-1: ++%20lG:-INFINITY:1:9:-inf: ++%*20lG:-INFINITY:0:9: ++# BZ12701 %20lG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*20lG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%20lG:-0X7.FFFFFFFFFFFFCP1021:1:20:-0x1.fffffffffffffp3: ++%*20lG:-0X7.FFFFFFFFFFFFCP1021:0:20: ++# BZ12701 %20lG:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*20lG:-0X2.3456789ABCDFEP+123:0:-1: ++%20lG:-0X2.3456789ABCDFEP0123:1:20:-0x1.1a2b3c4d5e6ffp1: ++%*20lG:-0X2.3456789ABCDFEP0123:0:20: ++%20lG:-0X8P-1025:1:10:-0x1p-1022: ++%*20lG:-0X8P-1025:0:10: ++%20lG:-0X0P+0:1:7:-0x0: ++%*20lG:-0X0P+0:0:7: ++%20lG:-0X0P0:1:6:-0x0: ++%*20lG:-0X0P0:0:6: ++%20lG:-NAN(09A_Zaz):1:13:-nan: ++%*20lG:-NAN(09A_Zaz):0:13: ++%20lG:-NAN():1:6:-nan: ++%*20lG:-NAN():0:6: ++%20lG:NAN():1:5:nan: ++%*20lG:NAN():0:5: ++%20lG:NAN(09A_Zaz):1:12:nan: ++%*20lG:NAN(09A_Zaz):0:12: ++%20lG:0X0P0:1:5:0x0: ++%*20lG:0X0P0:0:5: ++%20lG:0X0P+0:1:6:0x0: ++%*20lG:0X0P+0:0:6: ++%20lG:0X8P-1025:1:9:0x1p-1022: ++%*20lG:0X8P-1025:0:9: ++%20lG:0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20lG:0X2.3456789ABCDFEP0123:0:20: ++%20lG:0X2.3456789ABCDFEP+123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20lG:0X2.3456789ABCDFEP+123:0:20: ++%20lG:0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp12: ++%*20lG:0X7.FFFFFFFFFFFFCP1021:0:20: ++%20lG:0XF.FFFFFFFFFFFF8P+1020:1:20:0x1.fffffffffffffp4: ++%*20lG:0XF.FFFFFFFFFFFF8P+1020:0:20: ++%20lG:INFINITY:1:8:inf: ++%*20lG:INFINITY:0:8: ++%20lG:+NAN():1:6:nan: ++%*20lG:+NAN():0:6: ++%20lG:+NAN(09A_Zaz):1:13:nan: ++%*20lG:+NAN(09A_Zaz):0:13: ++%20lG:+0X0P0:1:6:0x0: ++%*20lG:+0X0P0:0:6: ++%20lG:+0X0P+0:1:7:0x0: ++%*20lG:+0X0P+0:0:7: ++%20lG:+0X8P-1025:1:10:0x1p-1022: ++%*20lG:+0X8P-1025:0:10: ++%20lG:+0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp1: ++%*20lG:+0X2.3456789ABCDFEP0123:0:20: ++# BZ12701 %20lG:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*20lG:+0X2.3456789ABCDFEP+123:0:-1: ++%20lG:+0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp3: ++%*20lG:+0X7.FFFFFFFFFFFFCP1021:0:20: ++# BZ12701 %20lG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*20lG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%20lG:+INFINITY:1:9:inf: ++%*20lG:+INFINITY:0:9: ++%32lG::0:-1: ++%*32lG::0:-1: ++%32lG:-INFINITY:1:9:-inf: ++%*32lG:-INFINITY:0:9: ++%32lG:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023: ++%*32lG:-0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32lG:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023: ++%*32lG:-0X7.FFFFFFFFFFFFCP1021:0:23: ++%32lG:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32lG:-0X2.3456789ABCDFEP+123:0:23: ++%32lG:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32lG:-0X2.3456789ABCDFEP0123:0:23: ++%32lG:-0X8P-1025:1:10:-0x1p-1022: ++%*32lG:-0X8P-1025:0:10: ++%32lG:-0X0P+0:1:7:-0x0: ++%*32lG:-0X0P+0:0:7: ++%32lG:-0X0P0:1:6:-0x0: ++%*32lG:-0X0P0:0:6: ++%32lG:-NAN(09A_Zaz):1:13:-nan: ++%*32lG:-NAN(09A_Zaz):0:13: ++%32lG:-NAN():1:6:-nan: ++%*32lG:-NAN():0:6: ++%32lG:NAN():1:5:nan: ++%*32lG:NAN():0:5: ++%32lG:NAN(09A_Zaz):1:12:nan: ++%*32lG:NAN(09A_Zaz):0:12: ++%32lG:0X0P0:1:5:0x0: ++%*32lG:0X0P0:0:5: ++%32lG:0X0P+0:1:6:0x0: ++%*32lG:0X0P+0:0:6: ++%32lG:0X8P-1025:1:9:0x1p-1022: ++%*32lG:0X8P-1025:0:9: ++%32lG:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32lG:0X2.3456789ABCDFEP0123:0:22: ++%32lG:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32lG:0X2.3456789ABCDFEP+123:0:22: ++%32lG:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023: ++%*32lG:0X7.FFFFFFFFFFFFCP1021:0:22: ++%32lG:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023: ++%*32lG:0XF.FFFFFFFFFFFF8P+1020:0:23: ++%32lG:INFINITY:1:8:inf: ++%*32lG:INFINITY:0:8: ++%32lG:+NAN():1:6:nan: ++%*32lG:+NAN():0:6: ++%32lG:+NAN(09A_Zaz):1:13:nan: ++%*32lG:+NAN(09A_Zaz):0:13: ++%32lG:+0X0P0:1:6:0x0: ++%*32lG:+0X0P0:0:6: ++%32lG:+0X0P+0:1:7:0x0: ++%*32lG:+0X0P+0:0:7: ++%32lG:+0X8P-1025:1:10:0x1p-1022: ++%*32lG:+0X8P-1025:0:10: ++%32lG:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lG:+0X2.3456789ABCDFEP0123:0:23: ++%32lG:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lG:+0X2.3456789ABCDFEP+123:0:23: ++%32lG:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*32lG:+0X7.FFFFFFFFFFFFCP1021:0:23: ++%32lG:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*32lG:+0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32lG:+INFINITY:1:9:inf: ++%*32lG:+INFINITY:0:9: ++%5lG: :0:-1: ++%*5lG: :0:-1: ++%5lG: -INFINITY:0:-1: ++%*5lG: -INFINITY:0:-1: ++%5lG: -0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.ep3: ++%*5lG: -0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5lG: -0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.cp2: ++%*5lG: -0X7.FFFFFFFFFFFFCP1021:0:6: ++%5lG: -0X2.3456789ABCDFEP+123:1:6:-0x1p1: ++%*5lG: -0X2.3456789ABCDFEP+123:0:6: ++%5lG: -0X2.3456789ABCDFEP0123:1:6:-0x1p1: ++%*5lG: -0X2.3456789ABCDFEP0123:0:6: ++# BZ12701 %5lG: -0X8P-1025:0:-1: ++# BZ12701 %*5lG: -0X8P-1025:0:-1: ++# BZ12701 %5lG: -0X0P+0:0:-1: ++# BZ12701 %*5lG: -0X0P+0:0:-1: ++# BZ12701 %5lG: -0X0P0:0:-1: ++# BZ12701 %*5lG: -0X0P0:0:-1: ++%5lG: -NAN(09A_Zaz):0:-1: ++%*5lG: -NAN(09A_Zaz):0:-1: ++%5lG: -NAN():0:-1: ++%*5lG: -NAN():0:-1: ++%5lG: NAN():1:6:nan: ++%*5lG: NAN():0:6: ++%5lG: NAN(09A_Zaz):0:-1: ++%*5lG: NAN(09A_Zaz):0:-1: ++%5lG: 0X0P0:1:6:0x0: ++%*5lG: 0X0P0:0:6: ++# BZ12701 %5lG: 0X0P+0:0:-1: ++# BZ12701 %*5lG: 0X0P+0:0:-1: ++# BZ12701 %5lG: 0X8P-1025:0:-1: ++# BZ12701 %*5lG: 0X8P-1025:0:-1: ++%5lG: 0X2.3456789ABCDFEP0123:1:6:0x1.18p1: ++%*5lG: 0X2.3456789ABCDFEP0123:0:6: ++%5lG: 0X2.3456789ABCDFEP+123:1:6:0x1.18p1: ++%*5lG: 0X2.3456789ABCDFEP+123:0:6: ++%5lG: 0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2: ++%*5lG: 0X7.FFFFFFFFFFFFCP1021:0:6: ++%5lG: 0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3: ++%*5lG: 0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5lG: INFINITY:0:-1: ++%*5lG: INFINITY:0:-1: ++%5lG: +NAN():0:-1: ++%*5lG: +NAN():0:-1: ++%5lG: +NAN(09A_Zaz):0:-1: ++%*5lG: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5lG: +0X0P0:0:-1: ++# BZ12701 %*5lG: +0X0P0:0:-1: ++# BZ12701 %5lG: +0X0P+0:0:-1: ++# BZ12701 %*5lG: +0X0P+0:0:-1: ++# BZ12701 %5lG: +0X8P-1025:0:-1: ++# BZ12701 %*5lG: +0X8P-1025:0:-1: ++%5lG: +0X2.3456789ABCDFEP0123:1:6:0x1p1: ++%*5lG: +0X2.3456789ABCDFEP0123:0:6: ++%5lG: +0X2.3456789ABCDFEP+123:1:6:0x1p1: ++%*5lG: +0X2.3456789ABCDFEP+123:0:6: ++%5lG: +0X7.FFFFFFFFFFFFCP1021:1:6:0x1.cp2: ++%*5lG: +0X7.FFFFFFFFFFFFCP1021:0:6: ++%5lG: +0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ep3: ++%*5lG: +0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5lG: +INFINITY:0:-1: ++%*5lG: +INFINITY:0:-1: ++%32lG: :0:-1: ++%*32lG: :0:-1: ++%32lG: -INFINITY:1:10:-inf: ++%*32lG: -INFINITY:0:10: ++%32lG: -0XF.FFFFFFFFFFFF8P+1020:1:25:-0x1.fffffffffffffp1023: ++%*32lG: -0XF.FFFFFFFFFFFF8P+1020:0:25: ++%32lG: -0X7.FFFFFFFFFFFFCP1021:1:24:-0x1.fffffffffffffp1023: ++%*32lG: -0X7.FFFFFFFFFFFFCP1021:0:24: ++%32lG: -0X2.3456789ABCDFEP+123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32lG: -0X2.3456789ABCDFEP+123:0:24: ++%32lG: -0X2.3456789ABCDFEP0123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32lG: -0X2.3456789ABCDFEP0123:0:24: ++%32lG: -0X8P-1025:1:11:-0x1p-1022: ++%*32lG: -0X8P-1025:0:11: ++%32lG: -0X0P+0:1:8:-0x0: ++%*32lG: -0X0P+0:0:8: ++%32lG: -0X0P0:1:7:-0x0: ++%*32lG: -0X0P0:0:7: ++%32lG: -NAN(09A_Zaz):1:14:-nan: ++%*32lG: -NAN(09A_Zaz):0:14: ++%32lG: -NAN():1:7:-nan: ++%*32lG: -NAN():0:7: ++%32lG: NAN():1:6:nan: ++%*32lG: NAN():0:6: ++%32lG: NAN(09A_Zaz):1:13:nan: ++%*32lG: NAN(09A_Zaz):0:13: ++%32lG: 0X0P0:1:6:0x0: ++%*32lG: 0X0P0:0:6: ++%32lG: 0X0P+0:1:7:0x0: ++%*32lG: 0X0P+0:0:7: ++%32lG: 0X8P-1025:1:10:0x1p-1022: ++%*32lG: 0X8P-1025:0:10: ++%32lG: 0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lG: 0X2.3456789ABCDFEP0123:0:23: ++%32lG: 0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lG: 0X2.3456789ABCDFEP+123:0:23: ++%32lG: 0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*32lG: 0X7.FFFFFFFFFFFFCP1021:0:23: ++%32lG: 0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*32lG: 0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32lG: INFINITY:1:9:inf: ++%*32lG: INFINITY:0:9: ++%32lG: +NAN():1:7:nan: ++%*32lG: +NAN():0:7: ++%32lG: +NAN(09A_Zaz):1:14:nan: ++%*32lG: +NAN(09A_Zaz):0:14: ++%32lG: +0X0P0:1:7:0x0: ++%*32lG: +0X0P0:0:7: ++%32lG: +0X0P+0:1:8:0x0: ++%*32lG: +0X0P+0:0:8: ++%32lG: +0X8P-1025:1:11:0x1p-1022: ++%*32lG: +0X8P-1025:0:11: ++%32lG: +0X2.3456789ABCDFEP0123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32lG: +0X2.3456789ABCDFEP0123:0:24: ++%32lG: +0X2.3456789ABCDFEP+123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32lG: +0X2.3456789ABCDFEP+123:0:24: ++%32lG: +0X7.FFFFFFFFFFFFCP1021:1:24:0x1.fffffffffffffp1023: ++%*32lG: +0X7.FFFFFFFFFFFFCP1021:0:24: ++%32lG: +0XF.FFFFFFFFFFFF8P+1020:1:25:0x1.fffffffffffffp1023: ++%*32lG: +0XF.FFFFFFFFFFFF8P+1020:0:25: ++%32lG: +INFINITY:1:10:inf: ++%*32lG: +INFINITY:0:10: diff --git a/SOURCES/glibc-RHEL-46726-6.patch b/SOURCES/glibc-RHEL-46726-6.patch new file mode 100644 index 0000000..a328cbc --- /dev/null +++ b/SOURCES/glibc-RHEL-46726-6.patch @@ -0,0 +1,4911 @@ +commit 1890e63c86ceb04a49a914dc2cafa9862e938ef6 +Author: Maciej W. Rozycki +Date: Tue Mar 25 09:40:20 2025 +0000 + + stdio-common: Add scanf long double data for IEEE 754 binary128 format + + Add Makefile infrastructure and `long double' real input data for + targets using the IEEE 754 binary128 format. + + Keep input data disabled and referring to BZ #12701 for entries that are + are currently incorrectly accepted as valid data, such as '0e', '0e+', + '0x', '0x8p', '0x0p-', etc. + + Reviewed-by: Joseph Myers + +diff --git a/sysdeps/ieee754/ldbl-128/Makefile b/sysdeps/ieee754/ldbl-128/Makefile +index 9cbfc7ff6e8cd6f7..7741f1eef4524b6f 100644 +--- a/sysdeps/ieee754/ldbl-128/Makefile ++++ b/sysdeps/ieee754/ldbl-128/Makefile +@@ -126,3 +126,7 @@ CFLAGS-s_y0l.c += -fno-builtin-y0f64x -fno-builtin-y0f128 + CFLAGS-s_y1l.c += -fno-builtin-y1f64x -fno-builtin-y1f128 + CFLAGS-s_ynl.c += -fno-builtin-ynf64x -fno-builtin-ynf128 + endif ++ ++ifeq ($(subdir),stdio-common) ++fmt-xscanf-real-convs += ldouble ++endif +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-a.input +new file mode 100644 +index 0000000000000000..41fe52ffa0e50613 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-a.input +@@ -0,0 +1,682 @@ ++%La::0:-1: ++%*La::0:-1: ++%La:-infinity:1:9:-inf: ++%*La:-infinity:0:9: ++%La:-0xf.fffffffffffffffffffffffffff8p+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*La:-0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%La:-0x7.fffffffffffffffffffffffffffcp16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383: ++%*La:-0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%La:-0x2.3456789abcdef0123456789abcdep+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*La:-0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%La:-0x2.3456789abcdef0123456789abcdep012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*La:-0x2.3456789abcdef0123456789abcdep012345:0:40: ++%La:-0x8p-16385:1:11:-0x1p-16382: ++%*La:-0x8p-16385:0:11: ++%La:-0x0p+0:1:7:-0x0: ++%*La:-0x0p+0:0:7: ++%La:-0x0p0:1:6:-0x0: ++%*La:-0x0p0:0:6: ++%La:-nan(09A_Zaz):1:13:-nan: ++%*La:-nan(09A_Zaz):0:13: ++%La:-nan():1:6:-nan: ++%*La:-nan():0:6: ++%La:nan():1:5:nan: ++%*La:nan():0:5: ++%La:nan(09A_Zaz):1:12:nan: ++%*La:nan(09A_Zaz):0:12: ++%La:0x0p0:1:5:0x0: ++%*La:0x0p0:0:5: ++%La:0x0p+0:1:6:0x0: ++%*La:0x0p+0:0:6: ++%La:0x8p-16385:1:10:0x1p-16382: ++%*La:0x8p-16385:0:10: ++%La:0x2.3456789abcdef0123456789abcdep012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*La:0x2.3456789abcdef0123456789abcdep012345:0:39: ++%La:0x2.3456789abcdef0123456789abcdep+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*La:0x2.3456789abcdef0123456789abcdep+12345:0:39: ++%La:0x7.fffffffffffffffffffffffffffcp16381:1:38:0x1.ffffffffffffffffffffffffffffp16383: ++%*La:0x7.fffffffffffffffffffffffffffcp16381:0:38: ++%La:0xf.fffffffffffffffffffffffffff8p+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*La:0xf.fffffffffffffffffffffffffff8p+16380:0:39: ++%La:infinity:1:8:inf: ++%*La:infinity:0:8: ++%La:+nan():1:6:nan: ++%*La:+nan():0:6: ++%La:+nan(09A_Zaz):1:13:nan: ++%*La:+nan(09A_Zaz):0:13: ++%La:+0x0p0:1:6:0x0: ++%*La:+0x0p0:0:6: ++%La:+0x0p+0:1:7:0x0: ++%*La:+0x0p+0:0:7: ++%La:+0x8p-16385:1:11:0x1p-16382: ++%*La:+0x8p-16385:0:11: ++%La:+0x2.3456789abcdef0123456789abcdep012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*La:+0x2.3456789abcdef0123456789abcdep012345:0:40: ++%La:+0x2.3456789abcdef0123456789abcdep+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*La:+0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%La:+0x7.fffffffffffffffffffffffffffcp16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*La:+0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%La:+0xf.fffffffffffffffffffffffffff8p+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*La:+0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%La:+infinity:1:9:inf: ++%*La:+infinity:0:9: ++%1La::0:-1: ++%*1La::0:-1: ++%1La:-infinity:0:-1: ++%*1La:-infinity:0:-1: ++%1La:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%*1La:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%1La:-0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++%*1La:-0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++%1La:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%*1La:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%1La:-0x2.3456789abcdef0123456789abcdep012345:0:-1: ++%*1La:-0x2.3456789abcdef0123456789abcdep012345:0:-1: ++%1La:-0x8p-16385:0:-1: ++%*1La:-0x8p-16385:0:-1: ++%1La:-0x0p+0:0:-1: ++%*1La:-0x0p+0:0:-1: ++%1La:-0x0p0:0:-1: ++%*1La:-0x0p0:0:-1: ++%1La:-nan(09A_Zaz):0:-1: ++%*1La:-nan(09A_Zaz):0:-1: ++%1La:-nan():0:-1: ++%*1La:-nan():0:-1: ++%1La:nan():0:-1: ++%*1La:nan():0:-1: ++%1La:nan(09A_Zaz):0:-1: ++%*1La:nan(09A_Zaz):0:-1: ++%1La:0x0p0:1:1:0x0: ++%*1La:0x0p0:0:1: ++%1La:0x0p+0:1:1:0x0: ++%*1La:0x0p+0:0:1: ++%1La:0x8p-16385:1:1:0x0: ++%*1La:0x8p-16385:0:1: ++%1La:0x2.3456789abcdef0123456789abcdep012345:1:1:0x0: ++%*1La:0x2.3456789abcdef0123456789abcdep012345:0:1: ++%1La:0x2.3456789abcdef0123456789abcdep+12345:1:1:0x0: ++%*1La:0x2.3456789abcdef0123456789abcdep+12345:0:1: ++%1La:0x7.fffffffffffffffffffffffffffcp16381:1:1:0x0: ++%*1La:0x7.fffffffffffffffffffffffffffcp16381:0:1: ++%1La:0xf.fffffffffffffffffffffffffff8p+16380:1:1:0x0: ++%*1La:0xf.fffffffffffffffffffffffffff8p+16380:0:1: ++%1La:infinity:0:-1: ++%*1La:infinity:0:-1: ++%1La:+nan():0:-1: ++%*1La:+nan():0:-1: ++%1La:+nan(09A_Zaz):0:-1: ++%*1La:+nan(09A_Zaz):0:-1: ++%1La:+0x0p0:0:-1: ++%*1La:+0x0p0:0:-1: ++%1La:+0x0p+0:0:-1: ++%*1La:+0x0p+0:0:-1: ++%1La:+0x8p-16385:0:-1: ++%*1La:+0x8p-16385:0:-1: ++%1La:+0x2.3456789abcdef0123456789abcdep012345:0:-1: ++%*1La:+0x2.3456789abcdef0123456789abcdep012345:0:-1: ++%1La:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%*1La:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%1La:+0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++%*1La:+0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++%1La:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%*1La:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%1La:+infinity:0:-1: ++%*1La:+infinity:0:-1: ++%2La::0:-1: ++%*2La::0:-1: ++%2La:-infinity:0:-1: ++%*2La:-infinity:0:-1: ++%2La:-0xf.fffffffffffffffffffffffffff8p+16380:1:2:-0x0: ++%*2La:-0xf.fffffffffffffffffffffffffff8p+16380:0:2: ++%2La:-0x7.fffffffffffffffffffffffffffcp16381:1:2:-0x0: ++%*2La:-0x7.fffffffffffffffffffffffffffcp16381:0:2: ++%2La:-0x2.3456789abcdef0123456789abcdep+12345:1:2:-0x0: ++%*2La:-0x2.3456789abcdef0123456789abcdep+12345:0:2: ++%2La:-0x2.3456789abcdef0123456789abcdep012345:1:2:-0x0: ++%*2La:-0x2.3456789abcdef0123456789abcdep012345:0:2: ++%2La:-0x8p-16385:1:2:-0x0: ++%*2La:-0x8p-16385:0:2: ++%2La:-0x0p+0:1:2:-0x0: ++%*2La:-0x0p+0:0:2: ++%2La:-0x0p0:1:2:-0x0: ++%*2La:-0x0p0:0:2: ++%2La:-nan(09A_Zaz):0:-1: ++%*2La:-nan(09A_Zaz):0:-1: ++%2La:-nan():0:-1: ++%*2La:-nan():0:-1: ++%2La:nan():0:-1: ++%*2La:nan():0:-1: ++%2La:nan(09A_Zaz):0:-1: ++%*2La:nan(09A_Zaz):0:-1: ++# BZ12701 %2La:0x0p0:0:-1: ++# BZ12701 %*2La:0x0p0:0:-1: ++# BZ12701 %2La:0x0p+0:0:-1: ++# BZ12701 %*2La:0x0p+0:0:-1: ++# BZ12701 %2La:0x8p-16385:0:-1: ++# BZ12701 %*2La:0x8p-16385:0:-1: ++# BZ12701 %2La:0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %*2La:0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %2La:0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*2La:0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %2La:0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %*2La:0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %2La:0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*2La:0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%2La:infinity:0:-1: ++%*2La:infinity:0:-1: ++%2La:+nan():0:-1: ++%*2La:+nan():0:-1: ++%2La:+nan(09A_Zaz):0:-1: ++%*2La:+nan(09A_Zaz):0:-1: ++%2La:+0x0p0:1:2:0x0: ++%*2La:+0x0p0:0:2: ++%2La:+0x0p+0:1:2:0x0: ++%*2La:+0x0p+0:0:2: ++%2La:+0x8p-16385:1:2:0x0: ++%*2La:+0x8p-16385:0:2: ++%2La:+0x2.3456789abcdef0123456789abcdep012345:1:2:0x0: ++%*2La:+0x2.3456789abcdef0123456789abcdep012345:0:2: ++%2La:+0x2.3456789abcdef0123456789abcdep+12345:1:2:0x0: ++%*2La:+0x2.3456789abcdef0123456789abcdep+12345:0:2: ++%2La:+0x7.fffffffffffffffffffffffffffcp16381:1:2:0x0: ++%*2La:+0x7.fffffffffffffffffffffffffffcp16381:0:2: ++%2La:+0xf.fffffffffffffffffffffffffff8p+16380:1:2:0x0: ++%*2La:+0xf.fffffffffffffffffffffffffff8p+16380:0:2: ++%2La:+infinity:0:-1: ++%*2La:+infinity:0:-1: ++%3La::0:-1: ++%*3La::0:-1: ++%3La:-infinity:0:-1: ++%*3La:-infinity:0:-1: ++# BZ12701 %3La:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*3La:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %3La:-0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %*3La:-0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %3La:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*3La:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %3La:-0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %*3La:-0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %3La:-0x8p-16385:0:-1: ++# BZ12701 %*3La:-0x8p-16385:0:-1: ++# BZ12701 %3La:-0x0p+0:0:-1: ++# BZ12701 %*3La:-0x0p+0:0:-1: ++# BZ12701 %3La:-0x0p0:0:-1: ++# BZ12701 %*3La:-0x0p0:0:-1: ++%3La:-nan(09A_Zaz):0:-1: ++%*3La:-nan(09A_Zaz):0:-1: ++%3La:-nan():0:-1: ++%*3La:-nan():0:-1: ++%3La:nan():1:3:nan: ++%*3La:nan():0:3: ++%3La:nan(09A_Zaz):1:3:nan: ++%*3La:nan(09A_Zaz):0:3: ++%3La:0x0p0:1:3:0x0: ++%*3La:0x0p0:0:3: ++%3La:0x0p+0:1:3:0x0: ++%*3La:0x0p+0:0:3: ++%3La:0x8p-16385:1:3:0x1p3: ++%*3La:0x8p-16385:0:3: ++%3La:0x2.3456789abcdef0123456789abcdep012345:1:3:0x1p1: ++%*3La:0x2.3456789abcdef0123456789abcdep012345:0:3: ++%3La:0x2.3456789abcdef0123456789abcdep+12345:1:3:0x1p1: ++%*3La:0x2.3456789abcdef0123456789abcdep+12345:0:3: ++%3La:0x7.fffffffffffffffffffffffffffcp16381:1:3:0x1.cp2: ++%*3La:0x7.fffffffffffffffffffffffffffcp16381:0:3: ++%3La:0xf.fffffffffffffffffffffffffff8p+16380:1:3:0x1.ep3: ++%*3La:0xf.fffffffffffffffffffffffffff8p+16380:0:3: ++%3La:infinity:1:3:inf: ++%*3La:infinity:0:3: ++%3La:+nan():0:-1: ++%*3La:+nan():0:-1: ++%3La:+nan(09A_Zaz):0:-1: ++%*3La:+nan(09A_Zaz):0:-1: ++# BZ12701 %3La:+0x0p0:0:-1: ++# BZ12701 %*3La:+0x0p0:0:-1: ++# BZ12701 %3La:+0x0p+0:0:-1: ++# BZ12701 %*3La:+0x0p+0:0:-1: ++# BZ12701 %3La:+0x8p-16385:0:-1: ++# BZ12701 %*3La:+0x8p-16385:0:-1: ++# BZ12701 %3La:+0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %*3La:+0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %3La:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*3La:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %3La:+0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %*3La:+0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %3La:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*3La:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%3La:+infinity:0:-1: ++%*3La:+infinity:0:-1: ++%4La::0:-1: ++%*4La::0:-1: ++%4La:-infinity:1:4:-inf: ++%*4La:-infinity:0:4: ++%4La:-0xf.fffffffffffffffffffffffffff8p+16380:1:4:-0x1.ep3: ++%*4La:-0xf.fffffffffffffffffffffffffff8p+16380:0:4: ++%4La:-0x7.fffffffffffffffffffffffffffcp16381:1:4:-0x1.cp2: ++%*4La:-0x7.fffffffffffffffffffffffffffcp16381:0:4: ++%4La:-0x2.3456789abcdef0123456789abcdep+12345:1:4:-0x1p1: ++%*4La:-0x2.3456789abcdef0123456789abcdep+12345:0:4: ++%4La:-0x2.3456789abcdef0123456789abcdep012345:1:4:-0x1p1: ++%*4La:-0x2.3456789abcdef0123456789abcdep012345:0:4: ++%4La:-0x8p-16385:1:4:-0x1p3: ++%*4La:-0x8p-16385:0:4: ++%4La:-0x0p+0:1:4:-0x0: ++%*4La:-0x0p+0:0:4: ++%4La:-0x0p0:1:4:-0x0: ++%*4La:-0x0p0:0:4: ++%4La:-nan(09A_Zaz):1:4:-nan: ++%*4La:-nan(09A_Zaz):0:4: ++%4La:-nan():1:4:-nan: ++%*4La:-nan():0:4: ++%4La:nan():0:-1: ++%*4La:nan():0:-1: ++%4La:nan(09A_Zaz):0:-1: ++%*4La:nan(09A_Zaz):0:-1: ++# BZ12701 %4La:0x0p0:0:-1: ++# BZ12701 %*4La:0x0p0:0:-1: ++# BZ12701 %4La:0x0p+0:0:-1: ++# BZ12701 %*4La:0x0p+0:0:-1: ++# BZ12701 %4La:0x8p-16385:0:-1: ++# BZ12701 %*4La:0x8p-16385:0:-1: ++%4La:0x2.3456789abcdef0123456789abcdep012345:1:4:0x1p1: ++%*4La:0x2.3456789abcdef0123456789abcdep012345:0:4: ++%4La:0x2.3456789abcdef0123456789abcdep+12345:1:4:0x1p1: ++%*4La:0x2.3456789abcdef0123456789abcdep+12345:0:4: ++%4La:0x7.fffffffffffffffffffffffffffcp16381:1:4:0x1.cp2: ++%*4La:0x7.fffffffffffffffffffffffffffcp16381:0:4: ++%4La:0xf.fffffffffffffffffffffffffff8p+16380:1:4:0x1.ep3: ++%*4La:0xf.fffffffffffffffffffffffffff8p+16380:0:4: ++%4La:infinity:0:-1: ++%*4La:infinity:0:-1: ++%4La:+nan():1:4:nan: ++%*4La:+nan():0:4: ++%4La:+nan(09A_Zaz):1:4:nan: ++%*4La:+nan(09A_Zaz):0:4: ++%4La:+0x0p0:1:4:0x0: ++%*4La:+0x0p0:0:4: ++%4La:+0x0p+0:1:4:0x0: ++%*4La:+0x0p+0:0:4: ++%4La:+0x8p-16385:1:4:0x1p3: ++%*4La:+0x8p-16385:0:4: ++%4La:+0x2.3456789abcdef0123456789abcdep012345:1:4:0x1p1: ++%*4La:+0x2.3456789abcdef0123456789abcdep012345:0:4: ++%4La:+0x2.3456789abcdef0123456789abcdep+12345:1:4:0x1p1: ++%*4La:+0x2.3456789abcdef0123456789abcdep+12345:0:4: ++%4La:+0x7.fffffffffffffffffffffffffffcp16381:1:4:0x1.cp2: ++%*4La:+0x7.fffffffffffffffffffffffffffcp16381:0:4: ++%4La:+0xf.fffffffffffffffffffffffffff8p+16380:1:4:0x1.ep3: ++%*4La:+0xf.fffffffffffffffffffffffffff8p+16380:0:4: ++%4La:+infinity:1:4:inf: ++%*4La:+infinity:0:4: ++%5La::0:-1: ++%*5La::0:-1: ++%5La:-infinity:0:-1: ++%*5La:-infinity:0:-1: ++%5La:-0xf.fffffffffffffffffffffffffff8p+16380:1:5:-0x1.ep3: ++%*5La:-0xf.fffffffffffffffffffffffffff8p+16380:0:5: ++%5La:-0x7.fffffffffffffffffffffffffffcp16381:1:5:-0x1.cp2: ++%*5La:-0x7.fffffffffffffffffffffffffffcp16381:0:5: ++%5La:-0x2.3456789abcdef0123456789abcdep+12345:1:5:-0x1p1: ++%*5La:-0x2.3456789abcdef0123456789abcdep+12345:0:5: ++%5La:-0x2.3456789abcdef0123456789abcdep012345:1:5:-0x1p1: ++%*5La:-0x2.3456789abcdef0123456789abcdep012345:0:5: ++# BZ12701 %5La:-0x8p-16385:0:-1: ++# BZ12701 %*5La:-0x8p-16385:0:-1: ++# BZ12701 %5La:-0x0p+0:0:-1: ++# BZ12701 %*5La:-0x0p+0:0:-1: ++# BZ12701 %5La:-0x0p0:0:-1: ++# BZ12701 %*5La:-0x0p0:0:-1: ++%5La:-nan(09A_Zaz):0:-1: ++%*5La:-nan(09A_Zaz):0:-1: ++%5La:-nan():0:-1: ++%*5La:-nan():0:-1: ++%5La:nan():1:5:nan: ++%*5La:nan():0:5: ++%5La:nan(09A_Zaz):0:-1: ++%*5La:nan(09A_Zaz):0:-1: ++%5La:0x0p0:1:5:0x0: ++%*5La:0x0p0:0:5: ++# BZ12701 %5La:0x0p+0:0:-1: ++# BZ12701 %*5La:0x0p+0:0:-1: ++# BZ12701 %5La:0x8p-16385:0:-1: ++# BZ12701 %*5La:0x8p-16385:0:-1: ++%5La:0x2.3456789abcdef0123456789abcdep012345:1:5:0x1.18p1: ++%*5La:0x2.3456789abcdef0123456789abcdep012345:0:5: ++%5La:0x2.3456789abcdef0123456789abcdep+12345:1:5:0x1.18p1: ++%*5La:0x2.3456789abcdef0123456789abcdep+12345:0:5: ++%5La:0x7.fffffffffffffffffffffffffffcp16381:1:5:0x1.fcp2: ++%*5La:0x7.fffffffffffffffffffffffffffcp16381:0:5: ++%5La:0xf.fffffffffffffffffffffffffff8p+16380:1:5:0x1.fep3: ++%*5La:0xf.fffffffffffffffffffffffffff8p+16380:0:5: ++%5La:infinity:0:-1: ++%*5La:infinity:0:-1: ++%5La:+nan():0:-1: ++%*5La:+nan():0:-1: ++%5La:+nan(09A_Zaz):0:-1: ++%*5La:+nan(09A_Zaz):0:-1: ++# BZ12701 %5La:+0x0p0:0:-1: ++# BZ12701 %*5La:+0x0p0:0:-1: ++# BZ12701 %5La:+0x0p+0:0:-1: ++# BZ12701 %*5La:+0x0p+0:0:-1: ++# BZ12701 %5La:+0x8p-16385:0:-1: ++# BZ12701 %*5La:+0x8p-16385:0:-1: ++%5La:+0x2.3456789abcdef0123456789abcdep012345:1:5:0x1p1: ++%*5La:+0x2.3456789abcdef0123456789abcdep012345:0:5: ++%5La:+0x2.3456789abcdef0123456789abcdep+12345:1:5:0x1p1: ++%*5La:+0x2.3456789abcdef0123456789abcdep+12345:0:5: ++%5La:+0x7.fffffffffffffffffffffffffffcp16381:1:5:0x1.cp2: ++%*5La:+0x7.fffffffffffffffffffffffffffcp16381:0:5: ++%5La:+0xf.fffffffffffffffffffffffffff8p+16380:1:5:0x1.ep3: ++%*5La:+0xf.fffffffffffffffffffffffffff8p+16380:0:5: ++%5La:+infinity:0:-1: ++%*5La:+infinity:0:-1: ++%6La::0:-1: ++%*6La::0:-1: ++%6La:-infinity:0:-1: ++%*6La:-infinity:0:-1: ++%6La:-0xf.fffffffffffffffffffffffffff8p+16380:1:6:-0x1.fep3: ++%*6La:-0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%6La:-0x7.fffffffffffffffffffffffffffcp16381:1:6:-0x1.fcp2: ++%*6La:-0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%6La:-0x2.3456789abcdef0123456789abcdep+12345:1:6:-0x1.18p1: ++%*6La:-0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%6La:-0x2.3456789abcdef0123456789abcdep012345:1:6:-0x1.18p1: ++%*6La:-0x2.3456789abcdef0123456789abcdep012345:0:6: ++# BZ12701 %6La:-0x8p-16385:0:-1: ++# BZ12701 %*6La:-0x8p-16385:0:-1: ++# BZ12701 %6La:-0x0p+0:0:-1: ++# BZ12701 %*6La:-0x0p+0:0:-1: ++%6La:-0x0p0:1:6:-0x0: ++%*6La:-0x0p0:0:6: ++%6La:-nan(09A_Zaz):0:-1: ++%*6La:-nan(09A_Zaz):0:-1: ++%6La:-nan():1:6:-nan: ++%*6La:-nan():0:6: ++%6La:nan():1:5:nan: ++%*6La:nan():0:5: ++%6La:nan(09A_Zaz):0:-1: ++%*6La:nan(09A_Zaz):0:-1: ++%6La:0x0p0:1:5:0x0: ++%*6La:0x0p0:0:5: ++%6La:0x0p+0:1:6:0x0: ++%*6La:0x0p+0:0:6: ++%6La:0x8p-16385:1:6:0x1p2: ++%*6La:0x8p-16385:0:6: ++%6La:0x2.3456789abcdef0123456789abcdep012345:1:6:0x1.1ap1: ++%*6La:0x2.3456789abcdef0123456789abcdep012345:0:6: ++%6La:0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1.1ap1: ++%*6La:0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%6La:0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.ffcp2: ++%*6La:0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%6La:0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.ffep3: ++%*6La:0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%6La:infinity:0:-1: ++%*6La:infinity:0:-1: ++%6La:+nan():1:6:nan: ++%*6La:+nan():0:6: ++%6La:+nan(09A_Zaz):0:-1: ++%*6La:+nan(09A_Zaz):0:-1: ++%6La:+0x0p0:1:6:0x0: ++%*6La:+0x0p0:0:6: ++# BZ12701 %6La:+0x0p+0:0:-1: ++# BZ12701 %*6La:+0x0p+0:0:-1: ++# BZ12701 %6La:+0x8p-16385:0:-1: ++# BZ12701 %*6La:+0x8p-16385:0:-1: ++%6La:+0x2.3456789abcdef0123456789abcdep012345:1:6:0x1.18p1: ++%*6La:+0x2.3456789abcdef0123456789abcdep012345:0:6: ++%6La:+0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1.18p1: ++%*6La:+0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%6La:+0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.fcp2: ++%*6La:+0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%6La:+0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.fep3: ++%*6La:+0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%6La:+infinity:0:-1: ++%*6La:+infinity:0:-1: ++%35La::0:-1: ++%*35La::0:-1: ++%35La:-infinity:1:9:-inf: ++%*35La:-infinity:0:9: ++# BZ12701 %35La:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*35La:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%35La:-0x7.fffffffffffffffffffffffffffcp16381:1:35:-0x1.ffffffffffffffffffffffffffffp3: ++%*35La:-0x7.fffffffffffffffffffffffffffcp16381:0:35: ++# BZ12701 %35La:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*35La:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%35La:-0x2.3456789abcdef0123456789abcdep012345:1:35:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1: ++%*35La:-0x2.3456789abcdef0123456789abcdep012345:0:35: ++%35La:-0x8p-16385:1:11:-0x1p-16382: ++%*35La:-0x8p-16385:0:11: ++%35La:-0x0p+0:1:7:-0x0: ++%*35La:-0x0p+0:0:7: ++%35La:-0x0p0:1:6:-0x0: ++%*35La:-0x0p0:0:6: ++%35La:-nan(09A_Zaz):1:13:-nan: ++%*35La:-nan(09A_Zaz):0:13: ++%35La:-nan():1:6:-nan: ++%*35La:-nan():0:6: ++%35La:nan():1:5:nan: ++%*35La:nan():0:5: ++%35La:nan(09A_Zaz):1:12:nan: ++%*35La:nan(09A_Zaz):0:12: ++%35La:0x0p0:1:5:0x0: ++%*35La:0x0p0:0:5: ++%35La:0x0p+0:1:6:0x0: ++%*35La:0x0p+0:0:6: ++%35La:0x8p-16385:1:10:0x1p-16382: ++%*35La:0x8p-16385:0:10: ++%35La:0x2.3456789abcdef0123456789abcdep012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2: ++%*35La:0x2.3456789abcdef0123456789abcdep012345:0:35: ++%35La:0x2.3456789abcdef0123456789abcdep+12345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2: ++%*35La:0x2.3456789abcdef0123456789abcdep+12345:0:35: ++%35La:0x7.fffffffffffffffffffffffffffcp16381:1:35:0x1.ffffffffffffffffffffffffffffp18: ++%*35La:0x7.fffffffffffffffffffffffffffcp16381:0:35: ++%35La:0xf.fffffffffffffffffffffffffff8p+16380:1:35:0x1.ffffffffffffffffffffffffffffp4: ++%*35La:0xf.fffffffffffffffffffffffffff8p+16380:0:35: ++%35La:infinity:1:8:inf: ++%*35La:infinity:0:8: ++%35La:+nan():1:6:nan: ++%*35La:+nan():0:6: ++%35La:+nan(09A_Zaz):1:13:nan: ++%*35La:+nan(09A_Zaz):0:13: ++%35La:+0x0p0:1:6:0x0: ++%*35La:+0x0p0:0:6: ++%35La:+0x0p+0:1:7:0x0: ++%*35La:+0x0p+0:0:7: ++%35La:+0x8p-16385:1:11:0x1p-16382: ++%*35La:+0x8p-16385:0:11: ++%35La:+0x2.3456789abcdef0123456789abcdep012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1: ++%*35La:+0x2.3456789abcdef0123456789abcdep012345:0:35: ++# BZ12701 %35La:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*35La:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%35La:+0x7.fffffffffffffffffffffffffffcp16381:1:35:0x1.ffffffffffffffffffffffffffffp3: ++%*35La:+0x7.fffffffffffffffffffffffffffcp16381:0:35: ++# BZ12701 %35La:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*35La:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%35La:+infinity:1:9:inf: ++%*35La:+infinity:0:9: ++%53La::0:-1: ++%*53La::0:-1: ++%53La:-infinity:1:9:-inf: ++%*53La:-infinity:0:9: ++%53La:-0xf.fffffffffffffffffffffffffff8p+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53La:-0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%53La:-0x7.fffffffffffffffffffffffffffcp16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53La:-0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%53La:-0x2.3456789abcdef0123456789abcdep+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La:-0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%53La:-0x2.3456789abcdef0123456789abcdep012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La:-0x2.3456789abcdef0123456789abcdep012345:0:40: ++%53La:-0x8p-16385:1:11:-0x1p-16382: ++%*53La:-0x8p-16385:0:11: ++%53La:-0x0p+0:1:7:-0x0: ++%*53La:-0x0p+0:0:7: ++%53La:-0x0p0:1:6:-0x0: ++%*53La:-0x0p0:0:6: ++%53La:-nan(09A_Zaz):1:13:-nan: ++%*53La:-nan(09A_Zaz):0:13: ++%53La:-nan():1:6:-nan: ++%*53La:-nan():0:6: ++%53La:nan():1:5:nan: ++%*53La:nan():0:5: ++%53La:nan(09A_Zaz):1:12:nan: ++%*53La:nan(09A_Zaz):0:12: ++%53La:0x0p0:1:5:0x0: ++%*53La:0x0p0:0:5: ++%53La:0x0p+0:1:6:0x0: ++%*53La:0x0p+0:0:6: ++%53La:0x8p-16385:1:10:0x1p-16382: ++%*53La:0x8p-16385:0:10: ++%53La:0x2.3456789abcdef0123456789abcdep012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La:0x2.3456789abcdef0123456789abcdep012345:0:39: ++%53La:0x2.3456789abcdef0123456789abcdep+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La:0x2.3456789abcdef0123456789abcdep+12345:0:39: ++%53La:0x7.fffffffffffffffffffffffffffcp16381:1:38:0x1.ffffffffffffffffffffffffffffp16383: ++%*53La:0x7.fffffffffffffffffffffffffffcp16381:0:38: ++%53La:0xf.fffffffffffffffffffffffffff8p+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53La:0xf.fffffffffffffffffffffffffff8p+16380:0:39: ++%53La:infinity:1:8:inf: ++%*53La:infinity:0:8: ++%53La:+nan():1:6:nan: ++%*53La:+nan():0:6: ++%53La:+nan(09A_Zaz):1:13:nan: ++%*53La:+nan(09A_Zaz):0:13: ++%53La:+0x0p0:1:6:0x0: ++%*53La:+0x0p0:0:6: ++%53La:+0x0p+0:1:7:0x0: ++%*53La:+0x0p+0:0:7: ++%53La:+0x8p-16385:1:11:0x1p-16382: ++%*53La:+0x8p-16385:0:11: ++%53La:+0x2.3456789abcdef0123456789abcdep012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La:+0x2.3456789abcdef0123456789abcdep012345:0:40: ++%53La:+0x2.3456789abcdef0123456789abcdep+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La:+0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%53La:+0x7.fffffffffffffffffffffffffffcp16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53La:+0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%53La:+0xf.fffffffffffffffffffffffffff8p+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53La:+0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%53La:+infinity:1:9:inf: ++%*53La:+infinity:0:9: ++%5La: :0:-1: ++%*5La: :0:-1: ++%5La: -infinity:0:-1: ++%*5La: -infinity:0:-1: ++%5La: -0xf.fffffffffffffffffffffffffff8p+16380:1:6:-0x1.ep3: ++%*5La: -0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%5La: -0x7.fffffffffffffffffffffffffffcp16381:1:6:-0x1.cp2: ++%*5La: -0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%5La: -0x2.3456789abcdef0123456789abcdep+12345:1:6:-0x1p1: ++%*5La: -0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%5La: -0x2.3456789abcdef0123456789abcdep012345:1:6:-0x1p1: ++%*5La: -0x2.3456789abcdef0123456789abcdep012345:0:6: ++# BZ12701 %5La: -0x8p-16385:0:-1: ++# BZ12701 %*5La: -0x8p-16385:0:-1: ++# BZ12701 %5La: -0x0p+0:0:-1: ++# BZ12701 %*5La: -0x0p+0:0:-1: ++# BZ12701 %5La: -0x0p0:0:-1: ++# BZ12701 %*5La: -0x0p0:0:-1: ++%5La: -nan(09A_Zaz):0:-1: ++%*5La: -nan(09A_Zaz):0:-1: ++%5La: -nan():0:-1: ++%*5La: -nan():0:-1: ++%5La: nan():1:6:nan: ++%*5La: nan():0:6: ++%5La: nan(09A_Zaz):0:-1: ++%*5La: nan(09A_Zaz):0:-1: ++%5La: 0x0p0:1:6:0x0: ++%*5La: 0x0p0:0:6: ++# BZ12701 %5La: 0x0p+0:0:-1: ++# BZ12701 %*5La: 0x0p+0:0:-1: ++# BZ12701 %5La: 0x8p-16385:0:-1: ++# BZ12701 %*5La: 0x8p-16385:0:-1: ++%5La: 0x2.3456789abcdef0123456789abcdep012345:1:6:0x1.18p1: ++%*5La: 0x2.3456789abcdef0123456789abcdep012345:0:6: ++%5La: 0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1.18p1: ++%*5La: 0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%5La: 0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.fcp2: ++%*5La: 0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%5La: 0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.fep3: ++%*5La: 0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%5La: infinity:0:-1: ++%*5La: infinity:0:-1: ++%5La: +nan():0:-1: ++%*5La: +nan():0:-1: ++%5La: +nan(09A_Zaz):0:-1: ++%*5La: +nan(09A_Zaz):0:-1: ++# BZ12701 %5La: +0x0p0:0:-1: ++# BZ12701 %*5La: +0x0p0:0:-1: ++# BZ12701 %5La: +0x0p+0:0:-1: ++# BZ12701 %*5La: +0x0p+0:0:-1: ++# BZ12701 %5La: +0x8p-16385:0:-1: ++# BZ12701 %*5La: +0x8p-16385:0:-1: ++%5La: +0x2.3456789abcdef0123456789abcdep012345:1:6:0x1p1: ++%*5La: +0x2.3456789abcdef0123456789abcdep012345:0:6: ++%5La: +0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1p1: ++%*5La: +0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%5La: +0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.cp2: ++%*5La: +0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%5La: +0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.ep3: ++%*5La: +0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%5La: +infinity:0:-1: ++%*5La: +infinity:0:-1: ++%53La: :0:-1: ++%*53La: :0:-1: ++%53La: -infinity:1:10:-inf: ++%*53La: -infinity:0:10: ++%53La: -0xf.fffffffffffffffffffffffffff8p+16380:1:41:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53La: -0xf.fffffffffffffffffffffffffff8p+16380:0:41: ++%53La: -0x7.fffffffffffffffffffffffffffcp16381:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53La: -0x7.fffffffffffffffffffffffffffcp16381:0:40: ++%53La: -0x2.3456789abcdef0123456789abcdep+12345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La: -0x2.3456789abcdef0123456789abcdep+12345:0:41: ++%53La: -0x2.3456789abcdef0123456789abcdep012345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La: -0x2.3456789abcdef0123456789abcdep012345:0:41: ++%53La: -0x8p-16385:1:12:-0x1p-16382: ++%*53La: -0x8p-16385:0:12: ++%53La: -0x0p+0:1:8:-0x0: ++%*53La: -0x0p+0:0:8: ++%53La: -0x0p0:1:7:-0x0: ++%*53La: -0x0p0:0:7: ++%53La: -nan(09A_Zaz):1:14:-nan: ++%*53La: -nan(09A_Zaz):0:14: ++%53La: -nan():1:7:-nan: ++%*53La: -nan():0:7: ++%53La: nan():1:6:nan: ++%*53La: nan():0:6: ++%53La: nan(09A_Zaz):1:13:nan: ++%*53La: nan(09A_Zaz):0:13: ++%53La: 0x0p0:1:6:0x0: ++%*53La: 0x0p0:0:6: ++%53La: 0x0p+0:1:7:0x0: ++%*53La: 0x0p+0:0:7: ++%53La: 0x8p-16385:1:11:0x1p-16382: ++%*53La: 0x8p-16385:0:11: ++%53La: 0x2.3456789abcdef0123456789abcdep012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La: 0x2.3456789abcdef0123456789abcdep012345:0:40: ++%53La: 0x2.3456789abcdef0123456789abcdep+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La: 0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%53La: 0x7.fffffffffffffffffffffffffffcp16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53La: 0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%53La: 0xf.fffffffffffffffffffffffffff8p+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53La: 0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%53La: infinity:1:9:inf: ++%*53La: infinity:0:9: ++%53La: +nan():1:7:nan: ++%*53La: +nan():0:7: ++%53La: +nan(09A_Zaz):1:14:nan: ++%*53La: +nan(09A_Zaz):0:14: ++%53La: +0x0p0:1:7:0x0: ++%*53La: +0x0p0:0:7: ++%53La: +0x0p+0:1:8:0x0: ++%*53La: +0x0p+0:0:8: ++%53La: +0x8p-16385:1:12:0x1p-16382: ++%*53La: +0x8p-16385:0:12: ++%53La: +0x2.3456789abcdef0123456789abcdep012345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La: +0x2.3456789abcdef0123456789abcdep012345:0:41: ++%53La: +0x2.3456789abcdef0123456789abcdep+12345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La: +0x2.3456789abcdef0123456789abcdep+12345:0:41: ++%53La: +0x7.fffffffffffffffffffffffffffcp16381:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53La: +0x7.fffffffffffffffffffffffffffcp16381:0:40: ++%53La: +0xf.fffffffffffffffffffffffffff8p+16380:1:41:0x1.ffffffffffffffffffffffffffffp16383: ++%*53La: +0xf.fffffffffffffffffffffffffff8p+16380:0:41: ++%53La: +infinity:1:10:inf: ++%*53La: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-aa.input +new file mode 100644 +index 0000000000000000..7208c6e37b10942d +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-aa.input +@@ -0,0 +1,682 @@ ++%LA::0:-1: ++%*LA::0:-1: ++%LA:-INFINITY:1:9:-inf: ++%*LA:-INFINITY:0:9: ++%LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383: ++%*LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%LA:-0X8P-16385:1:11:-0x1p-16382: ++%*LA:-0X8P-16385:0:11: ++%LA:-0X0P+0:1:7:-0x0: ++%*LA:-0X0P+0:0:7: ++%LA:-0X0P0:1:6:-0x0: ++%*LA:-0X0P0:0:6: ++%LA:-NAN(09A_Zaz):1:13:-nan: ++%*LA:-NAN(09A_Zaz):0:13: ++%LA:-NAN():1:6:-nan: ++%*LA:-NAN():0:6: ++%LA:NAN():1:5:nan: ++%*LA:NAN():0:5: ++%LA:NAN(09A_Zaz):1:12:nan: ++%*LA:NAN(09A_Zaz):0:12: ++%LA:0X0P0:1:5:0x0: ++%*LA:0X0P0:0:5: ++%LA:0X0P+0:1:6:0x0: ++%*LA:0X0P+0:0:6: ++%LA:0X8P-16385:1:10:0x1p-16382: ++%*LA:0X8P-16385:0:10: ++%LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:39: ++%LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:39: ++%LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:38:0x1.ffffffffffffffffffffffffffffp16383: ++%*LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:38: ++%LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39: ++%LA:INFINITY:1:8:inf: ++%*LA:INFINITY:0:8: ++%LA:+NAN():1:6:nan: ++%*LA:+NAN():0:6: ++%LA:+NAN(09A_Zaz):1:13:nan: ++%*LA:+NAN(09A_Zaz):0:13: ++%LA:+0X0P0:1:6:0x0: ++%*LA:+0X0P0:0:6: ++%LA:+0X0P+0:1:7:0x0: ++%*LA:+0X0P+0:0:7: ++%LA:+0X8P-16385:1:11:0x1p-16382: ++%*LA:+0X8P-16385:0:11: ++%LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%LA:+INFINITY:1:9:inf: ++%*LA:+INFINITY:0:9: ++%1LA::0:-1: ++%*1LA::0:-1: ++%1LA:-INFINITY:0:-1: ++%*1LA:-INFINITY:0:-1: ++%1LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%*1LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%1LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++%*1LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++%1LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%*1LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%1LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++%*1LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++%1LA:-0X8P-16385:0:-1: ++%*1LA:-0X8P-16385:0:-1: ++%1LA:-0X0P+0:0:-1: ++%*1LA:-0X0P+0:0:-1: ++%1LA:-0X0P0:0:-1: ++%*1LA:-0X0P0:0:-1: ++%1LA:-NAN(09A_Zaz):0:-1: ++%*1LA:-NAN(09A_Zaz):0:-1: ++%1LA:-NAN():0:-1: ++%*1LA:-NAN():0:-1: ++%1LA:NAN():0:-1: ++%*1LA:NAN():0:-1: ++%1LA:NAN(09A_Zaz):0:-1: ++%*1LA:NAN(09A_Zaz):0:-1: ++%1LA:0X0P0:1:1:0x0: ++%*1LA:0X0P0:0:1: ++%1LA:0X0P+0:1:1:0x0: ++%*1LA:0X0P+0:0:1: ++%1LA:0X8P-16385:1:1:0x0: ++%*1LA:0X8P-16385:0:1: ++%1LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:1:0x0: ++%*1LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:1: ++%1LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:1:0x0: ++%*1LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:1: ++%1LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:1:0x0: ++%*1LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:1: ++%1LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:1:0x0: ++%*1LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:1: ++%1LA:INFINITY:0:-1: ++%*1LA:INFINITY:0:-1: ++%1LA:+NAN():0:-1: ++%*1LA:+NAN():0:-1: ++%1LA:+NAN(09A_Zaz):0:-1: ++%*1LA:+NAN(09A_Zaz):0:-1: ++%1LA:+0X0P0:0:-1: ++%*1LA:+0X0P0:0:-1: ++%1LA:+0X0P+0:0:-1: ++%*1LA:+0X0P+0:0:-1: ++%1LA:+0X8P-16385:0:-1: ++%*1LA:+0X8P-16385:0:-1: ++%1LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++%*1LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++%1LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%*1LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%1LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++%*1LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++%1LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%*1LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%1LA:+INFINITY:0:-1: ++%*1LA:+INFINITY:0:-1: ++%2LA::0:-1: ++%*2LA::0:-1: ++%2LA:-INFINITY:0:-1: ++%*2LA:-INFINITY:0:-1: ++%2LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:2:-0x0: ++%*2LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:2: ++%2LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:2:-0x0: ++%*2LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:2: ++%2LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:2:-0x0: ++%*2LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:2: ++%2LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:2:-0x0: ++%*2LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:2: ++%2LA:-0X8P-16385:1:2:-0x0: ++%*2LA:-0X8P-16385:0:2: ++%2LA:-0X0P+0:1:2:-0x0: ++%*2LA:-0X0P+0:0:2: ++%2LA:-0X0P0:1:2:-0x0: ++%*2LA:-0X0P0:0:2: ++%2LA:-NAN(09A_Zaz):0:-1: ++%*2LA:-NAN(09A_Zaz):0:-1: ++%2LA:-NAN():0:-1: ++%*2LA:-NAN():0:-1: ++%2LA:NAN():0:-1: ++%*2LA:NAN():0:-1: ++%2LA:NAN(09A_Zaz):0:-1: ++%*2LA:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LA:0X0P0:0:-1: ++# BZ12701 %*2LA:0X0P0:0:-1: ++# BZ12701 %2LA:0X0P+0:0:-1: ++# BZ12701 %*2LA:0X0P+0:0:-1: ++# BZ12701 %2LA:0X8P-16385:0:-1: ++# BZ12701 %*2LA:0X8P-16385:0:-1: ++# BZ12701 %2LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %*2LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %2LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*2LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %2LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %*2LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %2LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*2LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%2LA:INFINITY:0:-1: ++%*2LA:INFINITY:0:-1: ++%2LA:+NAN():0:-1: ++%*2LA:+NAN():0:-1: ++%2LA:+NAN(09A_Zaz):0:-1: ++%*2LA:+NAN(09A_Zaz):0:-1: ++%2LA:+0X0P0:1:2:0x0: ++%*2LA:+0X0P0:0:2: ++%2LA:+0X0P+0:1:2:0x0: ++%*2LA:+0X0P+0:0:2: ++%2LA:+0X8P-16385:1:2:0x0: ++%*2LA:+0X8P-16385:0:2: ++%2LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:2:0x0: ++%*2LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:2: ++%2LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:2:0x0: ++%*2LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:2: ++%2LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:2:0x0: ++%*2LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:2: ++%2LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:2:0x0: ++%*2LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:2: ++%2LA:+INFINITY:0:-1: ++%*2LA:+INFINITY:0:-1: ++%3LA::0:-1: ++%*3LA::0:-1: ++%3LA:-INFINITY:0:-1: ++%*3LA:-INFINITY:0:-1: ++# BZ12701 %3LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*3LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %3LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %*3LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %3LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*3LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %3LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %*3LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %3LA:-0X8P-16385:0:-1: ++# BZ12701 %*3LA:-0X8P-16385:0:-1: ++# BZ12701 %3LA:-0X0P+0:0:-1: ++# BZ12701 %*3LA:-0X0P+0:0:-1: ++# BZ12701 %3LA:-0X0P0:0:-1: ++# BZ12701 %*3LA:-0X0P0:0:-1: ++%3LA:-NAN(09A_Zaz):0:-1: ++%*3LA:-NAN(09A_Zaz):0:-1: ++%3LA:-NAN():0:-1: ++%*3LA:-NAN():0:-1: ++%3LA:NAN():1:3:nan: ++%*3LA:NAN():0:3: ++%3LA:NAN(09A_Zaz):1:3:nan: ++%*3LA:NAN(09A_Zaz):0:3: ++%3LA:0X0P0:1:3:0x0: ++%*3LA:0X0P0:0:3: ++%3LA:0X0P+0:1:3:0x0: ++%*3LA:0X0P+0:0:3: ++%3LA:0X8P-16385:1:3:0x1p3: ++%*3LA:0X8P-16385:0:3: ++%3LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:3:0x1p1: ++%*3LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:3: ++%3LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:3:0x1p1: ++%*3LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:3: ++%3LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:3:0x1.cp2: ++%*3LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:3: ++%3LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:3:0x1.ep3: ++%*3LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:3: ++%3LA:INFINITY:1:3:inf: ++%*3LA:INFINITY:0:3: ++%3LA:+NAN():0:-1: ++%*3LA:+NAN():0:-1: ++%3LA:+NAN(09A_Zaz):0:-1: ++%*3LA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LA:+0X0P0:0:-1: ++# BZ12701 %*3LA:+0X0P0:0:-1: ++# BZ12701 %3LA:+0X0P+0:0:-1: ++# BZ12701 %*3LA:+0X0P+0:0:-1: ++# BZ12701 %3LA:+0X8P-16385:0:-1: ++# BZ12701 %*3LA:+0X8P-16385:0:-1: ++# BZ12701 %3LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %*3LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %3LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*3LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %3LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %*3LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %3LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*3LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%3LA:+INFINITY:0:-1: ++%*3LA:+INFINITY:0:-1: ++%4LA::0:-1: ++%*4LA::0:-1: ++%4LA:-INFINITY:1:4:-inf: ++%*4LA:-INFINITY:0:4: ++%4LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:4:-0x1.ep3: ++%*4LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4: ++%4LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:4:-0x1.cp2: ++%*4LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:4: ++%4LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:4:-0x1p1: ++%*4LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:4: ++%4LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:4:-0x1p1: ++%*4LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:4: ++%4LA:-0X8P-16385:1:4:-0x1p3: ++%*4LA:-0X8P-16385:0:4: ++%4LA:-0X0P+0:1:4:-0x0: ++%*4LA:-0X0P+0:0:4: ++%4LA:-0X0P0:1:4:-0x0: ++%*4LA:-0X0P0:0:4: ++%4LA:-NAN(09A_Zaz):1:4:-nan: ++%*4LA:-NAN(09A_Zaz):0:4: ++%4LA:-NAN():1:4:-nan: ++%*4LA:-NAN():0:4: ++%4LA:NAN():0:-1: ++%*4LA:NAN():0:-1: ++%4LA:NAN(09A_Zaz):0:-1: ++%*4LA:NAN(09A_Zaz):0:-1: ++# BZ12701 %4LA:0X0P0:0:-1: ++# BZ12701 %*4LA:0X0P0:0:-1: ++# BZ12701 %4LA:0X0P+0:0:-1: ++# BZ12701 %*4LA:0X0P+0:0:-1: ++# BZ12701 %4LA:0X8P-16385:0:-1: ++# BZ12701 %*4LA:0X8P-16385:0:-1: ++%4LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:4:0x1p1: ++%*4LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:4: ++%4LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:4:0x1p1: ++%*4LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:4: ++%4LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:4:0x1.cp2: ++%*4LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:4: ++%4LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:4:0x1.ep3: ++%*4LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4: ++%4LA:INFINITY:0:-1: ++%*4LA:INFINITY:0:-1: ++%4LA:+NAN():1:4:nan: ++%*4LA:+NAN():0:4: ++%4LA:+NAN(09A_Zaz):1:4:nan: ++%*4LA:+NAN(09A_Zaz):0:4: ++%4LA:+0X0P0:1:4:0x0: ++%*4LA:+0X0P0:0:4: ++%4LA:+0X0P+0:1:4:0x0: ++%*4LA:+0X0P+0:0:4: ++%4LA:+0X8P-16385:1:4:0x1p3: ++%*4LA:+0X8P-16385:0:4: ++%4LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:4:0x1p1: ++%*4LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:4: ++%4LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:4:0x1p1: ++%*4LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:4: ++%4LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:4:0x1.cp2: ++%*4LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:4: ++%4LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:4:0x1.ep3: ++%*4LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4: ++%4LA:+INFINITY:1:4:inf: ++%*4LA:+INFINITY:0:4: ++%5LA::0:-1: ++%*5LA::0:-1: ++%5LA:-INFINITY:0:-1: ++%*5LA:-INFINITY:0:-1: ++%5LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:5:-0x1.ep3: ++%*5LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5: ++%5LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:5:-0x1.cp2: ++%*5LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:5: ++%5LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:5:-0x1p1: ++%*5LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:5: ++%5LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:5:-0x1p1: ++%*5LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:5: ++# BZ12701 %5LA:-0X8P-16385:0:-1: ++# BZ12701 %*5LA:-0X8P-16385:0:-1: ++# BZ12701 %5LA:-0X0P+0:0:-1: ++# BZ12701 %*5LA:-0X0P+0:0:-1: ++# BZ12701 %5LA:-0X0P0:0:-1: ++# BZ12701 %*5LA:-0X0P0:0:-1: ++%5LA:-NAN(09A_Zaz):0:-1: ++%*5LA:-NAN(09A_Zaz):0:-1: ++%5LA:-NAN():0:-1: ++%*5LA:-NAN():0:-1: ++%5LA:NAN():1:5:nan: ++%*5LA:NAN():0:5: ++%5LA:NAN(09A_Zaz):0:-1: ++%*5LA:NAN(09A_Zaz):0:-1: ++%5LA:0X0P0:1:5:0x0: ++%*5LA:0X0P0:0:5: ++# BZ12701 %5LA:0X0P+0:0:-1: ++# BZ12701 %*5LA:0X0P+0:0:-1: ++# BZ12701 %5LA:0X8P-16385:0:-1: ++# BZ12701 %*5LA:0X8P-16385:0:-1: ++%5LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:5:0x1.18p1: ++%*5LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:5: ++%5LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:5:0x1.18p1: ++%*5LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:5: ++%5LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:5:0x1.fcp2: ++%*5LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:5: ++%5LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:5:0x1.fep3: ++%*5LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5: ++%5LA:INFINITY:0:-1: ++%*5LA:INFINITY:0:-1: ++%5LA:+NAN():0:-1: ++%*5LA:+NAN():0:-1: ++%5LA:+NAN(09A_Zaz):0:-1: ++%*5LA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5LA:+0X0P0:0:-1: ++# BZ12701 %*5LA:+0X0P0:0:-1: ++# BZ12701 %5LA:+0X0P+0:0:-1: ++# BZ12701 %*5LA:+0X0P+0:0:-1: ++# BZ12701 %5LA:+0X8P-16385:0:-1: ++# BZ12701 %*5LA:+0X8P-16385:0:-1: ++%5LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:5:0x1p1: ++%*5LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:5: ++%5LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:5:0x1p1: ++%*5LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:5: ++%5LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:5:0x1.cp2: ++%*5LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:5: ++%5LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:5:0x1.ep3: ++%*5LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5: ++%5LA:+INFINITY:0:-1: ++%*5LA:+INFINITY:0:-1: ++%6LA::0:-1: ++%*6LA::0:-1: ++%6LA:-INFINITY:0:-1: ++%*6LA:-INFINITY:0:-1: ++%6LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:-0x1.fep3: ++%*6LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%6LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:-0x1.fcp2: ++%*6LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%6LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:-0x1.18p1: ++%*6LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%6LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:-0x1.18p1: ++%*6LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++# BZ12701 %6LA:-0X8P-16385:0:-1: ++# BZ12701 %*6LA:-0X8P-16385:0:-1: ++# BZ12701 %6LA:-0X0P+0:0:-1: ++# BZ12701 %*6LA:-0X0P+0:0:-1: ++%6LA:-0X0P0:1:6:-0x0: ++%*6LA:-0X0P0:0:6: ++%6LA:-NAN(09A_Zaz):0:-1: ++%*6LA:-NAN(09A_Zaz):0:-1: ++%6LA:-NAN():1:6:-nan: ++%*6LA:-NAN():0:6: ++%6LA:NAN():1:5:nan: ++%*6LA:NAN():0:5: ++%6LA:NAN(09A_Zaz):0:-1: ++%*6LA:NAN(09A_Zaz):0:-1: ++%6LA:0X0P0:1:5:0x0: ++%*6LA:0X0P0:0:5: ++%6LA:0X0P+0:1:6:0x0: ++%*6LA:0X0P+0:0:6: ++%6LA:0X8P-16385:1:6:0x1p2: ++%*6LA:0X8P-16385:0:6: ++%6LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1.1ap1: ++%*6LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++%6LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1.1ap1: ++%*6LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%6LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.ffcp2: ++%*6LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%6LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.ffep3: ++%*6LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%6LA:INFINITY:0:-1: ++%*6LA:INFINITY:0:-1: ++%6LA:+NAN():1:6:nan: ++%*6LA:+NAN():0:6: ++%6LA:+NAN(09A_Zaz):0:-1: ++%*6LA:+NAN(09A_Zaz):0:-1: ++%6LA:+0X0P0:1:6:0x0: ++%*6LA:+0X0P0:0:6: ++# BZ12701 %6LA:+0X0P+0:0:-1: ++# BZ12701 %*6LA:+0X0P+0:0:-1: ++# BZ12701 %6LA:+0X8P-16385:0:-1: ++# BZ12701 %*6LA:+0X8P-16385:0:-1: ++%6LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1.18p1: ++%*6LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++%6LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1.18p1: ++%*6LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%6LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.fcp2: ++%*6LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%6LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.fep3: ++%*6LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%6LA:+INFINITY:0:-1: ++%*6LA:+INFINITY:0:-1: ++%35LA::0:-1: ++%*35LA::0:-1: ++%35LA:-INFINITY:1:9:-inf: ++%*35LA:-INFINITY:0:9: ++# BZ12701 %35LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*35LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%35LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:35:-0x1.ffffffffffffffffffffffffffffp3: ++%*35LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:35: ++# BZ12701 %35LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*35LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%35LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:35:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1: ++%*35LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:35: ++%35LA:-0X8P-16385:1:11:-0x1p-16382: ++%*35LA:-0X8P-16385:0:11: ++%35LA:-0X0P+0:1:7:-0x0: ++%*35LA:-0X0P+0:0:7: ++%35LA:-0X0P0:1:6:-0x0: ++%*35LA:-0X0P0:0:6: ++%35LA:-NAN(09A_Zaz):1:13:-nan: ++%*35LA:-NAN(09A_Zaz):0:13: ++%35LA:-NAN():1:6:-nan: ++%*35LA:-NAN():0:6: ++%35LA:NAN():1:5:nan: ++%*35LA:NAN():0:5: ++%35LA:NAN(09A_Zaz):1:12:nan: ++%*35LA:NAN(09A_Zaz):0:12: ++%35LA:0X0P0:1:5:0x0: ++%*35LA:0X0P0:0:5: ++%35LA:0X0P+0:1:6:0x0: ++%*35LA:0X0P+0:0:6: ++%35LA:0X8P-16385:1:10:0x1p-16382: ++%*35LA:0X8P-16385:0:10: ++%35LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2: ++%*35LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:35: ++%35LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2: ++%*35LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:35: ++%35LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:35:0x1.ffffffffffffffffffffffffffffp18: ++%*35LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:35: ++%35LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:35:0x1.ffffffffffffffffffffffffffffp4: ++%*35LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:35: ++%35LA:INFINITY:1:8:inf: ++%*35LA:INFINITY:0:8: ++%35LA:+NAN():1:6:nan: ++%*35LA:+NAN():0:6: ++%35LA:+NAN(09A_Zaz):1:13:nan: ++%*35LA:+NAN(09A_Zaz):0:13: ++%35LA:+0X0P0:1:6:0x0: ++%*35LA:+0X0P0:0:6: ++%35LA:+0X0P+0:1:7:0x0: ++%*35LA:+0X0P+0:0:7: ++%35LA:+0X8P-16385:1:11:0x1p-16382: ++%*35LA:+0X8P-16385:0:11: ++%35LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1: ++%*35LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:35: ++# BZ12701 %35LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*35LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%35LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:35:0x1.ffffffffffffffffffffffffffffp3: ++%*35LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:35: ++# BZ12701 %35LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*35LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%35LA:+INFINITY:1:9:inf: ++%*35LA:+INFINITY:0:9: ++%53LA::0:-1: ++%*53LA::0:-1: ++%53LA:-INFINITY:1:9:-inf: ++%*53LA:-INFINITY:0:9: ++%53LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%53LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%53LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%53LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%53LA:-0X8P-16385:1:11:-0x1p-16382: ++%*53LA:-0X8P-16385:0:11: ++%53LA:-0X0P+0:1:7:-0x0: ++%*53LA:-0X0P+0:0:7: ++%53LA:-0X0P0:1:6:-0x0: ++%*53LA:-0X0P0:0:6: ++%53LA:-NAN(09A_Zaz):1:13:-nan: ++%*53LA:-NAN(09A_Zaz):0:13: ++%53LA:-NAN():1:6:-nan: ++%*53LA:-NAN():0:6: ++%53LA:NAN():1:5:nan: ++%*53LA:NAN():0:5: ++%53LA:NAN(09A_Zaz):1:12:nan: ++%*53LA:NAN(09A_Zaz):0:12: ++%53LA:0X0P0:1:5:0x0: ++%*53LA:0X0P0:0:5: ++%53LA:0X0P+0:1:6:0x0: ++%*53LA:0X0P+0:0:6: ++%53LA:0X8P-16385:1:10:0x1p-16382: ++%*53LA:0X8P-16385:0:10: ++%53LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:39: ++%53LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:39: ++%53LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:38:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:38: ++%53LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39: ++%53LA:INFINITY:1:8:inf: ++%*53LA:INFINITY:0:8: ++%53LA:+NAN():1:6:nan: ++%*53LA:+NAN():0:6: ++%53LA:+NAN(09A_Zaz):1:13:nan: ++%*53LA:+NAN(09A_Zaz):0:13: ++%53LA:+0X0P0:1:6:0x0: ++%*53LA:+0X0P0:0:6: ++%53LA:+0X0P+0:1:7:0x0: ++%*53LA:+0X0P+0:0:7: ++%53LA:+0X8P-16385:1:11:0x1p-16382: ++%*53LA:+0X8P-16385:0:11: ++%53LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%53LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%53LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%53LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%53LA:+INFINITY:1:9:inf: ++%*53LA:+INFINITY:0:9: ++%5LA: :0:-1: ++%*5LA: :0:-1: ++%5LA: -INFINITY:0:-1: ++%*5LA: -INFINITY:0:-1: ++%5LA: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:-0x1.ep3: ++%*5LA: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%5LA: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:-0x1.cp2: ++%*5LA: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%5LA: -0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:-0x1p1: ++%*5LA: -0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%5LA: -0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:-0x1p1: ++%*5LA: -0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++# BZ12701 %5LA: -0X8P-16385:0:-1: ++# BZ12701 %*5LA: -0X8P-16385:0:-1: ++# BZ12701 %5LA: -0X0P+0:0:-1: ++# BZ12701 %*5LA: -0X0P+0:0:-1: ++# BZ12701 %5LA: -0X0P0:0:-1: ++# BZ12701 %*5LA: -0X0P0:0:-1: ++%5LA: -NAN(09A_Zaz):0:-1: ++%*5LA: -NAN(09A_Zaz):0:-1: ++%5LA: -NAN():0:-1: ++%*5LA: -NAN():0:-1: ++%5LA: NAN():1:6:nan: ++%*5LA: NAN():0:6: ++%5LA: NAN(09A_Zaz):0:-1: ++%*5LA: NAN(09A_Zaz):0:-1: ++%5LA: 0X0P0:1:6:0x0: ++%*5LA: 0X0P0:0:6: ++# BZ12701 %5LA: 0X0P+0:0:-1: ++# BZ12701 %*5LA: 0X0P+0:0:-1: ++# BZ12701 %5LA: 0X8P-16385:0:-1: ++# BZ12701 %*5LA: 0X8P-16385:0:-1: ++%5LA: 0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1.18p1: ++%*5LA: 0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++%5LA: 0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1.18p1: ++%*5LA: 0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%5LA: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.fcp2: ++%*5LA: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%5LA: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.fep3: ++%*5LA: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%5LA: INFINITY:0:-1: ++%*5LA: INFINITY:0:-1: ++%5LA: +NAN():0:-1: ++%*5LA: +NAN():0:-1: ++%5LA: +NAN(09A_Zaz):0:-1: ++%*5LA: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5LA: +0X0P0:0:-1: ++# BZ12701 %*5LA: +0X0P0:0:-1: ++# BZ12701 %5LA: +0X0P+0:0:-1: ++# BZ12701 %*5LA: +0X0P+0:0:-1: ++# BZ12701 %5LA: +0X8P-16385:0:-1: ++# BZ12701 %*5LA: +0X8P-16385:0:-1: ++%5LA: +0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1p1: ++%*5LA: +0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++%5LA: +0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1p1: ++%*5LA: +0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%5LA: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.cp2: ++%*5LA: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%5LA: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.ep3: ++%*5LA: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%5LA: +INFINITY:0:-1: ++%*5LA: +INFINITY:0:-1: ++%53LA: :0:-1: ++%*53LA: :0:-1: ++%53LA: -INFINITY:1:10:-inf: ++%*53LA: -INFINITY:0:10: ++%53LA: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:41:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:41: ++%53LA: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:40: ++%53LA: -0X2.3456789ABCDEF0123456789ABCDEP+12345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA: -0X2.3456789ABCDEF0123456789ABCDEP+12345:0:41: ++%53LA: -0X2.3456789ABCDEF0123456789ABCDEP012345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA: -0X2.3456789ABCDEF0123456789ABCDEP012345:0:41: ++%53LA: -0X8P-16385:1:12:-0x1p-16382: ++%*53LA: -0X8P-16385:0:12: ++%53LA: -0X0P+0:1:8:-0x0: ++%*53LA: -0X0P+0:0:8: ++%53LA: -0X0P0:1:7:-0x0: ++%*53LA: -0X0P0:0:7: ++%53LA: -NAN(09A_Zaz):1:14:-nan: ++%*53LA: -NAN(09A_Zaz):0:14: ++%53LA: -NAN():1:7:-nan: ++%*53LA: -NAN():0:7: ++%53LA: NAN():1:6:nan: ++%*53LA: NAN():0:6: ++%53LA: NAN(09A_Zaz):1:13:nan: ++%*53LA: NAN(09A_Zaz):0:13: ++%53LA: 0X0P0:1:6:0x0: ++%*53LA: 0X0P0:0:6: ++%53LA: 0X0P+0:1:7:0x0: ++%*53LA: 0X0P+0:0:7: ++%53LA: 0X8P-16385:1:11:0x1p-16382: ++%*53LA: 0X8P-16385:0:11: ++%53LA: 0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA: 0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%53LA: 0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA: 0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%53LA: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%53LA: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%53LA: INFINITY:1:9:inf: ++%*53LA: INFINITY:0:9: ++%53LA: +NAN():1:7:nan: ++%*53LA: +NAN():0:7: ++%53LA: +NAN(09A_Zaz):1:14:nan: ++%*53LA: +NAN(09A_Zaz):0:14: ++%53LA: +0X0P0:1:7:0x0: ++%*53LA: +0X0P0:0:7: ++%53LA: +0X0P+0:1:8:0x0: ++%*53LA: +0X0P+0:0:8: ++%53LA: +0X8P-16385:1:12:0x1p-16382: ++%*53LA: +0X8P-16385:0:12: ++%53LA: +0X2.3456789ABCDEF0123456789ABCDEP012345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA: +0X2.3456789ABCDEF0123456789ABCDEP012345:0:41: ++%53LA: +0X2.3456789ABCDEF0123456789ABCDEP+12345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA: +0X2.3456789ABCDEF0123456789ABCDEP+12345:0:41: ++%53LA: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:40: ++%53LA: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:41:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:41: ++%53LA: +INFINITY:1:10:inf: ++%*53LA: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-e.input +new file mode 100644 +index 0000000000000000..0e65a3706cce1ce0 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-e.input +@@ -0,0 +1,558 @@ ++%Le::0:-1: ++%*Le::0:-1: ++%Le:-infinity:1:9:-inf: ++%*Le:-infinity:0:9: ++%Le:-1.18973149535723176508575932662800702e+4932:1:44:-0x1.ffffffffffffffffffffffffffffp16383: ++%*Le:-1.18973149535723176508575932662800702e+4932:0:44: ++%Le:-1.18973149535723176508575932662800702e4932:1:43:-0x1.ffffffffffffffffffffffffffffp16383: ++%*Le:-1.18973149535723176508575932662800702e4932:0:43: ++%Le:-3.6190587245056029583909936820055344e+3716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Le:-3.6190587245056029583909936820055344e+3716:0:43: ++%Le:-3.6190587245056029583909936820055344e03716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Le:-3.6190587245056029583909936820055344e03716:0:43: ++%Le:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382: ++%*Le:-3.36210314311209350626267781732175260e-4932:0:44: ++%Le:-0e+0:1:5:-0x0: ++%*Le:-0e+0:0:5: ++%Le:-0e0:1:4:-0x0: ++%*Le:-0e0:0:4: ++%Le:-nan(09A_Zaz):1:13:-nan: ++%*Le:-nan(09A_Zaz):0:13: ++%Le:-nan():1:6:-nan: ++%*Le:-nan():0:6: ++%Le:nan():1:5:nan: ++%*Le:nan():0:5: ++%Le:nan(09A_Zaz):1:12:nan: ++%*Le:nan(09A_Zaz):0:12: ++%Le:0e0:1:3:0x0: ++%*Le:0e0:0:3: ++%Le:0e+0:1:4:0x0: ++%*Le:0e+0:0:4: ++%Le:3.36210314311209350626267781732175260e-4932:1:43:0x1p-16382: ++%*Le:3.36210314311209350626267781732175260e-4932:0:43: ++%Le:3.6190587245056029583909936820055344e03716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Le:3.6190587245056029583909936820055344e03716:0:42: ++%Le:3.6190587245056029583909936820055344e+3716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Le:3.6190587245056029583909936820055344e+3716:0:42: ++%Le:1.18973149535723176508575932662800702e4932:1:42:0x1.ffffffffffffffffffffffffffffp16383: ++%*Le:1.18973149535723176508575932662800702e4932:0:42: ++%Le:1.18973149535723176508575932662800702e+4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*Le:1.18973149535723176508575932662800702e+4932:0:43: ++%Le:infinity:1:8:inf: ++%*Le:infinity:0:8: ++%Le:+nan():1:6:nan: ++%*Le:+nan():0:6: ++%Le:+nan(09A_Zaz):1:13:nan: ++%*Le:+nan(09A_Zaz):0:13: ++%Le:+0e0:1:4:0x0: ++%*Le:+0e0:0:4: ++%Le:+0e+0:1:5:0x0: ++%*Le:+0e+0:0:5: ++%Le:+3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*Le:+3.36210314311209350626267781732175260e-4932:0:44: ++%Le:+3.6190587245056029583909936820055344e03716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Le:+3.6190587245056029583909936820055344e03716:0:43: ++%Le:+3.6190587245056029583909936820055344e+3716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Le:+3.6190587245056029583909936820055344e+3716:0:43: ++%Le:+1.18973149535723176508575932662800702e4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*Le:+1.18973149535723176508575932662800702e4932:0:43: ++%Le:+1.18973149535723176508575932662800702e+4932:1:44:0x1.ffffffffffffffffffffffffffffp16383: ++%*Le:+1.18973149535723176508575932662800702e+4932:0:44: ++%Le:+infinity:1:9:inf: ++%*Le:+infinity:0:9: ++%1Le::0:-1: ++%*1Le::0:-1: ++%1Le:-infinity:0:-1: ++%*1Le:-infinity:0:-1: ++%1Le:-1.18973149535723176508575932662800702e+4932:0:-1: ++%*1Le:-1.18973149535723176508575932662800702e+4932:0:-1: ++%1Le:-1.18973149535723176508575932662800702e4932:0:-1: ++%*1Le:-1.18973149535723176508575932662800702e4932:0:-1: ++%1Le:-3.6190587245056029583909936820055344e+3716:0:-1: ++%*1Le:-3.6190587245056029583909936820055344e+3716:0:-1: ++%1Le:-3.6190587245056029583909936820055344e03716:0:-1: ++%*1Le:-3.6190587245056029583909936820055344e03716:0:-1: ++%1Le:-3.36210314311209350626267781732175260e-4932:0:-1: ++%*1Le:-3.36210314311209350626267781732175260e-4932:0:-1: ++%1Le:-0e+0:0:-1: ++%*1Le:-0e+0:0:-1: ++%1Le:-0e0:0:-1: ++%*1Le:-0e0:0:-1: ++%1Le:-nan(09A_Zaz):0:-1: ++%*1Le:-nan(09A_Zaz):0:-1: ++%1Le:-nan():0:-1: ++%*1Le:-nan():0:-1: ++%1Le:nan():0:-1: ++%*1Le:nan():0:-1: ++%1Le:nan(09A_Zaz):0:-1: ++%*1Le:nan(09A_Zaz):0:-1: ++%1Le:0e0:1:1:0x0: ++%*1Le:0e0:0:1: ++%1Le:0e+0:1:1:0x0: ++%*1Le:0e+0:0:1: ++%1Le:3.36210314311209350626267781732175260e-4932:1:1:0x1.8p1: ++%*1Le:3.36210314311209350626267781732175260e-4932:0:1: ++%1Le:3.6190587245056029583909936820055344e03716:1:1:0x1.8p1: ++%*1Le:3.6190587245056029583909936820055344e03716:0:1: ++%1Le:3.6190587245056029583909936820055344e+3716:1:1:0x1.8p1: ++%*1Le:3.6190587245056029583909936820055344e+3716:0:1: ++%1Le:1.18973149535723176508575932662800702e4932:1:1:0x1: ++%*1Le:1.18973149535723176508575932662800702e4932:0:1: ++%1Le:1.18973149535723176508575932662800702e+4932:1:1:0x1: ++%*1Le:1.18973149535723176508575932662800702e+4932:0:1: ++%1Le:infinity:0:-1: ++%*1Le:infinity:0:-1: ++%1Le:+nan():0:-1: ++%*1Le:+nan():0:-1: ++%1Le:+nan(09A_Zaz):0:-1: ++%*1Le:+nan(09A_Zaz):0:-1: ++%1Le:+0e0:0:-1: ++%*1Le:+0e0:0:-1: ++%1Le:+0e+0:0:-1: ++%*1Le:+0e+0:0:-1: ++%1Le:+3.36210314311209350626267781732175260e-4932:0:-1: ++%*1Le:+3.36210314311209350626267781732175260e-4932:0:-1: ++%1Le:+3.6190587245056029583909936820055344e03716:0:-1: ++%*1Le:+3.6190587245056029583909936820055344e03716:0:-1: ++%1Le:+3.6190587245056029583909936820055344e+3716:0:-1: ++%*1Le:+3.6190587245056029583909936820055344e+3716:0:-1: ++%1Le:+1.18973149535723176508575932662800702e4932:0:-1: ++%*1Le:+1.18973149535723176508575932662800702e4932:0:-1: ++%1Le:+1.18973149535723176508575932662800702e+4932:0:-1: ++%*1Le:+1.18973149535723176508575932662800702e+4932:0:-1: ++%1Le:+infinity:0:-1: ++%*1Le:+infinity:0:-1: ++%2Le::0:-1: ++%*2Le::0:-1: ++%2Le:-infinity:0:-1: ++%*2Le:-infinity:0:-1: ++%2Le:-1.18973149535723176508575932662800702e+4932:1:2:-0x1: ++%*2Le:-1.18973149535723176508575932662800702e+4932:0:2: ++%2Le:-1.18973149535723176508575932662800702e4932:1:2:-0x1: ++%*2Le:-1.18973149535723176508575932662800702e4932:0:2: ++%2Le:-3.6190587245056029583909936820055344e+3716:1:2:-0x1.8p1: ++%*2Le:-3.6190587245056029583909936820055344e+3716:0:2: ++%2Le:-3.6190587245056029583909936820055344e03716:1:2:-0x1.8p1: ++%*2Le:-3.6190587245056029583909936820055344e03716:0:2: ++%2Le:-3.36210314311209350626267781732175260e-4932:1:2:-0x1.8p1: ++%*2Le:-3.36210314311209350626267781732175260e-4932:0:2: ++%2Le:-0e+0:1:2:-0x0: ++%*2Le:-0e+0:0:2: ++%2Le:-0e0:1:2:-0x0: ++%*2Le:-0e0:0:2: ++%2Le:-nan(09A_Zaz):0:-1: ++%*2Le:-nan(09A_Zaz):0:-1: ++%2Le:-nan():0:-1: ++%*2Le:-nan():0:-1: ++%2Le:nan():0:-1: ++%*2Le:nan():0:-1: ++%2Le:nan(09A_Zaz):0:-1: ++%*2Le:nan(09A_Zaz):0:-1: ++# BZ12701 %2Le:0e0:0:-1: ++# BZ12701 %*2Le:0e0:0:-1: ++# BZ12701 %2Le:0e+0:0:-1: ++# BZ12701 %*2Le:0e+0:0:-1: ++%2Le:3.36210314311209350626267781732175260e-4932:1:2:0x1.8p1: ++%*2Le:3.36210314311209350626267781732175260e-4932:0:2: ++%2Le:3.6190587245056029583909936820055344e03716:1:2:0x1.8p1: ++%*2Le:3.6190587245056029583909936820055344e03716:0:2: ++%2Le:3.6190587245056029583909936820055344e+3716:1:2:0x1.8p1: ++%*2Le:3.6190587245056029583909936820055344e+3716:0:2: ++%2Le:1.18973149535723176508575932662800702e4932:1:2:0x1: ++%*2Le:1.18973149535723176508575932662800702e4932:0:2: ++%2Le:1.18973149535723176508575932662800702e+4932:1:2:0x1: ++%*2Le:1.18973149535723176508575932662800702e+4932:0:2: ++%2Le:infinity:0:-1: ++%*2Le:infinity:0:-1: ++%2Le:+nan():0:-1: ++%*2Le:+nan():0:-1: ++%2Le:+nan(09A_Zaz):0:-1: ++%*2Le:+nan(09A_Zaz):0:-1: ++%2Le:+0e0:1:2:0x0: ++%*2Le:+0e0:0:2: ++%2Le:+0e+0:1:2:0x0: ++%*2Le:+0e+0:0:2: ++%2Le:+3.36210314311209350626267781732175260e-4932:1:2:0x1.8p1: ++%*2Le:+3.36210314311209350626267781732175260e-4932:0:2: ++%2Le:+3.6190587245056029583909936820055344e03716:1:2:0x1.8p1: ++%*2Le:+3.6190587245056029583909936820055344e03716:0:2: ++%2Le:+3.6190587245056029583909936820055344e+3716:1:2:0x1.8p1: ++%*2Le:+3.6190587245056029583909936820055344e+3716:0:2: ++%2Le:+1.18973149535723176508575932662800702e4932:1:2:0x1: ++%*2Le:+1.18973149535723176508575932662800702e4932:0:2: ++%2Le:+1.18973149535723176508575932662800702e+4932:1:2:0x1: ++%*2Le:+1.18973149535723176508575932662800702e+4932:0:2: ++%2Le:+infinity:0:-1: ++%*2Le:+infinity:0:-1: ++%3Le::0:-1: ++%*3Le::0:-1: ++%3Le:-infinity:0:-1: ++%*3Le:-infinity:0:-1: ++%3Le:-1.18973149535723176508575932662800702e+4932:1:3:-0x1: ++%*3Le:-1.18973149535723176508575932662800702e+4932:0:3: ++%3Le:-1.18973149535723176508575932662800702e4932:1:3:-0x1: ++%*3Le:-1.18973149535723176508575932662800702e4932:0:3: ++%3Le:-3.6190587245056029583909936820055344e+3716:1:3:-0x1.8p1: ++%*3Le:-3.6190587245056029583909936820055344e+3716:0:3: ++%3Le:-3.6190587245056029583909936820055344e03716:1:3:-0x1.8p1: ++%*3Le:-3.6190587245056029583909936820055344e03716:0:3: ++%3Le:-3.36210314311209350626267781732175260e-4932:1:3:-0x1.8p1: ++%*3Le:-3.36210314311209350626267781732175260e-4932:0:3: ++# BZ12701 %3Le:-0e+0:0:-1: ++# BZ12701 %*3Le:-0e+0:0:-1: ++# BZ12701 %3Le:-0e0:0:-1: ++# BZ12701 %*3Le:-0e0:0:-1: ++%3Le:-nan(09A_Zaz):0:-1: ++%*3Le:-nan(09A_Zaz):0:-1: ++%3Le:-nan():0:-1: ++%*3Le:-nan():0:-1: ++%3Le:nan():1:3:nan: ++%*3Le:nan():0:3: ++%3Le:nan(09A_Zaz):1:3:nan: ++%*3Le:nan(09A_Zaz):0:3: ++%3Le:0e0:1:3:0x0: ++%*3Le:0e0:0:3: ++# BZ12701 %3Le:0e+0:0:-1: ++# BZ12701 %*3Le:0e+0:0:-1: ++%3Le:3.36210314311209350626267781732175260e-4932:1:3:0x1.a666666666666666666666666666p1: ++%*3Le:3.36210314311209350626267781732175260e-4932:0:3: ++%3Le:3.6190587245056029583909936820055344e03716:1:3:0x1.cccccccccccccccccccccccccccdp1: ++%*3Le:3.6190587245056029583909936820055344e03716:0:3: ++%3Le:3.6190587245056029583909936820055344e+3716:1:3:0x1.cccccccccccccccccccccccccccdp1: ++%*3Le:3.6190587245056029583909936820055344e+3716:0:3: ++%3Le:1.18973149535723176508575932662800702e4932:1:3:0x1.199999999999999999999999999a: ++%*3Le:1.18973149535723176508575932662800702e4932:0:3: ++%3Le:1.18973149535723176508575932662800702e+4932:1:3:0x1.199999999999999999999999999a: ++%*3Le:1.18973149535723176508575932662800702e+4932:0:3: ++%3Le:infinity:1:3:inf: ++%*3Le:infinity:0:3: ++%3Le:+nan():0:-1: ++%*3Le:+nan():0:-1: ++%3Le:+nan(09A_Zaz):0:-1: ++%*3Le:+nan(09A_Zaz):0:-1: ++# BZ12701 %3Le:+0e0:0:-1: ++# BZ12701 %*3Le:+0e0:0:-1: ++# BZ12701 %3Le:+0e+0:0:-1: ++# BZ12701 %*3Le:+0e+0:0:-1: ++%3Le:+3.36210314311209350626267781732175260e-4932:1:3:0x1.8p1: ++%*3Le:+3.36210314311209350626267781732175260e-4932:0:3: ++%3Le:+3.6190587245056029583909936820055344e03716:1:3:0x1.8p1: ++%*3Le:+3.6190587245056029583909936820055344e03716:0:3: ++%3Le:+3.6190587245056029583909936820055344e+3716:1:3:0x1.8p1: ++%*3Le:+3.6190587245056029583909936820055344e+3716:0:3: ++%3Le:+1.18973149535723176508575932662800702e4932:1:3:0x1: ++%*3Le:+1.18973149535723176508575932662800702e4932:0:3: ++%3Le:+1.18973149535723176508575932662800702e+4932:1:3:0x1: ++%*3Le:+1.18973149535723176508575932662800702e+4932:0:3: ++%3Le:+infinity:0:-1: ++%*3Le:+infinity:0:-1: ++%4Le::0:-1: ++%*4Le::0:-1: ++%4Le:-infinity:1:4:-inf: ++%*4Le:-infinity:0:4: ++%4Le:-1.18973149535723176508575932662800702e+4932:1:4:-0x1.199999999999999999999999999a: ++%*4Le:-1.18973149535723176508575932662800702e+4932:0:4: ++%4Le:-1.18973149535723176508575932662800702e4932:1:4:-0x1.199999999999999999999999999a: ++%*4Le:-1.18973149535723176508575932662800702e4932:0:4: ++%4Le:-3.6190587245056029583909936820055344e+3716:1:4:-0x1.cccccccccccccccccccccccccccdp1: ++%*4Le:-3.6190587245056029583909936820055344e+3716:0:4: ++%4Le:-3.6190587245056029583909936820055344e03716:1:4:-0x1.cccccccccccccccccccccccccccdp1: ++%*4Le:-3.6190587245056029583909936820055344e03716:0:4: ++%4Le:-3.36210314311209350626267781732175260e-4932:1:4:-0x1.a666666666666666666666666666p1: ++%*4Le:-3.36210314311209350626267781732175260e-4932:0:4: ++# BZ12701 %4Le:-0e+0:0:-1: ++# BZ12701 %*4Le:-0e+0:0:-1: ++%4Le:-0e0:1:4:-0x0: ++%*4Le:-0e0:0:4: ++%4Le:-nan(09A_Zaz):1:4:-nan: ++%*4Le:-nan(09A_Zaz):0:4: ++%4Le:-nan():1:4:-nan: ++%*4Le:-nan():0:4: ++%4Le:nan():0:-1: ++%*4Le:nan():0:-1: ++%4Le:nan(09A_Zaz):0:-1: ++%*4Le:nan(09A_Zaz):0:-1: ++%4Le:0e0:1:3:0x0: ++%*4Le:0e0:0:3: ++%4Le:0e+0:1:4:0x0: ++%*4Le:0e+0:0:4: ++%4Le:3.36210314311209350626267781732175260e-4932:1:4:0x1.ae147ae147ae147ae147ae147ae1p1: ++%*4Le:3.36210314311209350626267781732175260e-4932:0:4: ++%4Le:3.6190587245056029583909936820055344e03716:1:4:0x1.ce147ae147ae147ae147ae147ae1p1: ++%*4Le:3.6190587245056029583909936820055344e03716:0:4: ++%4Le:3.6190587245056029583909936820055344e+3716:1:4:0x1.ce147ae147ae147ae147ae147ae1p1: ++%*4Le:3.6190587245056029583909936820055344e+3716:0:4: ++%4Le:1.18973149535723176508575932662800702e4932:1:4:0x1.2e147ae147ae147ae147ae147ae1: ++%*4Le:1.18973149535723176508575932662800702e4932:0:4: ++%4Le:1.18973149535723176508575932662800702e+4932:1:4:0x1.2e147ae147ae147ae147ae147ae1: ++%*4Le:1.18973149535723176508575932662800702e+4932:0:4: ++%4Le:infinity:0:-1: ++%*4Le:infinity:0:-1: ++%4Le:+nan():1:4:nan: ++%*4Le:+nan():0:4: ++%4Le:+nan(09A_Zaz):1:4:nan: ++%*4Le:+nan(09A_Zaz):0:4: ++%4Le:+0e0:1:4:0x0: ++%*4Le:+0e0:0:4: ++# BZ12701 %4Le:+0e+0:0:-1: ++# BZ12701 %*4Le:+0e+0:0:-1: ++%4Le:+3.36210314311209350626267781732175260e-4932:1:4:0x1.a666666666666666666666666666p1: ++%*4Le:+3.36210314311209350626267781732175260e-4932:0:4: ++%4Le:+3.6190587245056029583909936820055344e03716:1:4:0x1.cccccccccccccccccccccccccccdp1: ++%*4Le:+3.6190587245056029583909936820055344e03716:0:4: ++%4Le:+3.6190587245056029583909936820055344e+3716:1:4:0x1.cccccccccccccccccccccccccccdp1: ++%*4Le:+3.6190587245056029583909936820055344e+3716:0:4: ++%4Le:+1.18973149535723176508575932662800702e4932:1:4:0x1.199999999999999999999999999a: ++%*4Le:+1.18973149535723176508575932662800702e4932:0:4: ++%4Le:+1.18973149535723176508575932662800702e+4932:1:4:0x1.199999999999999999999999999a: ++%*4Le:+1.18973149535723176508575932662800702e+4932:0:4: ++%4Le:+infinity:1:4:inf: ++%*4Le:+infinity:0:4: ++%40Le::0:-1: ++%*40Le::0:-1: ++%40Le:-infinity:1:9:-inf: ++%*40Le:-infinity:0:9: ++# BZ12701 %40Le:-1.18973149535723176508575932662800702e+4932:0:-1: ++# BZ12701 %*40Le:-1.18973149535723176508575932662800702e+4932:0:-1: ++%40Le:-1.18973149535723176508575932662800702e4932:1:40:-0x1.73ca850660e6e6c57bb65bfbc7f1p13: ++%*40Le:-1.18973149535723176508575932662800702e4932:0:40: ++%40Le:-3.6190587245056029583909936820055344e+3716:1:40:-0x1.c461e11236e13b300745afb88861p11: ++%*40Le:-3.6190587245056029583909936820055344e+3716:0:40: ++%40Le:-3.6190587245056029583909936820055344e03716:1:40:-0x1.c461e11236e13b300745afb88861p11: ++%*40Le:-3.6190587245056029583909936820055344e03716:0:40: ++# BZ12701 %40Le:-3.36210314311209350626267781732175260e-4932:0:-1: ++# BZ12701 %*40Le:-3.36210314311209350626267781732175260e-4932:0:-1: ++%40Le:-0e+0:1:5:-0x0: ++%*40Le:-0e+0:0:5: ++%40Le:-0e0:1:4:-0x0: ++%*40Le:-0e0:0:4: ++%40Le:-nan(09A_Zaz):1:13:-nan: ++%*40Le:-nan(09A_Zaz):0:13: ++%40Le:-nan():1:6:-nan: ++%*40Le:-nan():0:6: ++%40Le:nan():1:5:nan: ++%*40Le:nan():0:5: ++%40Le:nan(09A_Zaz):1:12:nan: ++%*40Le:nan(09A_Zaz):0:12: ++%40Le:0e0:1:3:0x0: ++%*40Le:0e0:0:3: ++%40Le:0e+0:1:4:0x0: ++%*40Le:0e+0:0:4: ++%40Le:3.36210314311209350626267781732175260e-4932:1:40:0x1.608ac4df6a146bceb1f1fbc05807p-12: ++%*40Le:3.36210314311209350626267781732175260e-4932:0:40: ++%40Le:3.6190587245056029583909936820055344e03716:1:40:0x1.b3a0db6a2433ca1ab428755ec4e8p124: ++%*40Le:3.6190587245056029583909936820055344e03716:0:40: ++%40Le:3.6190587245056029583909936820055344e+3716:1:40:0x1.b3a0db6a2433ca1ab428755ec4e8p124: ++%*40Le:3.6190587245056029583909936820055344e+3716:0:40: ++%40Le:1.18973149535723176508575932662800702e4932:1:40:0x1.047ec1b6d6390a5ce34fd9d25b88p163: ++%*40Le:1.18973149535723176508575932662800702e4932:0:40: ++%40Le:1.18973149535723176508575932662800702e+4932:1:40:0x1.73ca850660e6e6c57bb65bfbc7f1p13: ++%*40Le:1.18973149535723176508575932662800702e+4932:0:40: ++%40Le:infinity:1:8:inf: ++%*40Le:infinity:0:8: ++%40Le:+nan():1:6:nan: ++%*40Le:+nan():0:6: ++%40Le:+nan(09A_Zaz):1:13:nan: ++%*40Le:+nan(09A_Zaz):0:13: ++%40Le:+0e0:1:4:0x0: ++%*40Le:+0e0:0:4: ++%40Le:+0e+0:1:5:0x0: ++%*40Le:+0e+0:0:5: ++# BZ12701 %40Le:+3.36210314311209350626267781732175260e-4932:0:-1: ++# BZ12701 %*40Le:+3.36210314311209350626267781732175260e-4932:0:-1: ++%40Le:+3.6190587245056029583909936820055344e03716:1:40:0x1.c461e11236e13b300745afb88861p11: ++%*40Le:+3.6190587245056029583909936820055344e03716:0:40: ++%40Le:+3.6190587245056029583909936820055344e+3716:1:40:0x1.c461e11236e13b300745afb88861p11: ++%*40Le:+3.6190587245056029583909936820055344e+3716:0:40: ++%40Le:+1.18973149535723176508575932662800702e4932:1:40:0x1.73ca850660e6e6c57bb65bfbc7f1p13: ++%*40Le:+1.18973149535723176508575932662800702e4932:0:40: ++# BZ12701 %40Le:+1.18973149535723176508575932662800702e+4932:0:-1: ++# BZ12701 %*40Le:+1.18973149535723176508575932662800702e+4932:0:-1: ++%40Le:+infinity:1:9:inf: ++%*40Le:+infinity:0:9: ++%48Le::0:-1: ++%*48Le::0:-1: ++%48Le:-infinity:1:9:-inf: ++%*48Le:-infinity:0:9: ++%48Le:-1.18973149535723176508575932662800702e+4932:1:44:-0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le:-1.18973149535723176508575932662800702e+4932:0:44: ++%48Le:-1.18973149535723176508575932662800702e4932:1:43:-0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le:-1.18973149535723176508575932662800702e4932:0:43: ++%48Le:-3.6190587245056029583909936820055344e+3716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le:-3.6190587245056029583909936820055344e+3716:0:43: ++%48Le:-3.6190587245056029583909936820055344e03716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le:-3.6190587245056029583909936820055344e03716:0:43: ++%48Le:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382: ++%*48Le:-3.36210314311209350626267781732175260e-4932:0:44: ++%48Le:-0e+0:1:5:-0x0: ++%*48Le:-0e+0:0:5: ++%48Le:-0e0:1:4:-0x0: ++%*48Le:-0e0:0:4: ++%48Le:-nan(09A_Zaz):1:13:-nan: ++%*48Le:-nan(09A_Zaz):0:13: ++%48Le:-nan():1:6:-nan: ++%*48Le:-nan():0:6: ++%48Le:nan():1:5:nan: ++%*48Le:nan():0:5: ++%48Le:nan(09A_Zaz):1:12:nan: ++%*48Le:nan(09A_Zaz):0:12: ++%48Le:0e0:1:3:0x0: ++%*48Le:0e0:0:3: ++%48Le:0e+0:1:4:0x0: ++%*48Le:0e+0:0:4: ++%48Le:3.36210314311209350626267781732175260e-4932:1:43:0x1p-16382: ++%*48Le:3.36210314311209350626267781732175260e-4932:0:43: ++%48Le:3.6190587245056029583909936820055344e03716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le:3.6190587245056029583909936820055344e03716:0:42: ++%48Le:3.6190587245056029583909936820055344e+3716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le:3.6190587245056029583909936820055344e+3716:0:42: ++%48Le:1.18973149535723176508575932662800702e4932:1:42:0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le:1.18973149535723176508575932662800702e4932:0:42: ++%48Le:1.18973149535723176508575932662800702e+4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le:1.18973149535723176508575932662800702e+4932:0:43: ++%48Le:infinity:1:8:inf: ++%*48Le:infinity:0:8: ++%48Le:+nan():1:6:nan: ++%*48Le:+nan():0:6: ++%48Le:+nan(09A_Zaz):1:13:nan: ++%*48Le:+nan(09A_Zaz):0:13: ++%48Le:+0e0:1:4:0x0: ++%*48Le:+0e0:0:4: ++%48Le:+0e+0:1:5:0x0: ++%*48Le:+0e+0:0:5: ++%48Le:+3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*48Le:+3.36210314311209350626267781732175260e-4932:0:44: ++%48Le:+3.6190587245056029583909936820055344e03716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le:+3.6190587245056029583909936820055344e03716:0:43: ++%48Le:+3.6190587245056029583909936820055344e+3716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le:+3.6190587245056029583909936820055344e+3716:0:43: ++%48Le:+1.18973149535723176508575932662800702e4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le:+1.18973149535723176508575932662800702e4932:0:43: ++%48Le:+1.18973149535723176508575932662800702e+4932:1:44:0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le:+1.18973149535723176508575932662800702e+4932:0:44: ++%48Le:+infinity:1:9:inf: ++%*48Le:+infinity:0:9: ++%3Le: :0:-1: ++%*3Le: :0:-1: ++%3Le: -infinity:0:-1: ++%*3Le: -infinity:0:-1: ++%3Le: -1.18973149535723176508575932662800702e+4932:1:4:-0x1: ++%*3Le: -1.18973149535723176508575932662800702e+4932:0:4: ++%3Le: -1.18973149535723176508575932662800702e4932:1:4:-0x1: ++%*3Le: -1.18973149535723176508575932662800702e4932:0:4: ++%3Le: -3.6190587245056029583909936820055344e+3716:1:4:-0x1.8p1: ++%*3Le: -3.6190587245056029583909936820055344e+3716:0:4: ++%3Le: -3.6190587245056029583909936820055344e03716:1:4:-0x1.8p1: ++%*3Le: -3.6190587245056029583909936820055344e03716:0:4: ++%3Le: -3.36210314311209350626267781732175260e-4932:1:4:-0x1.8p1: ++%*3Le: -3.36210314311209350626267781732175260e-4932:0:4: ++# BZ12701 %3Le: -0e+0:0:-1: ++# BZ12701 %*3Le: -0e+0:0:-1: ++# BZ12701 %3Le: -0e0:0:-1: ++# BZ12701 %*3Le: -0e0:0:-1: ++%3Le: -nan(09A_Zaz):0:-1: ++%*3Le: -nan(09A_Zaz):0:-1: ++%3Le: -nan():0:-1: ++%*3Le: -nan():0:-1: ++%3Le: nan():1:4:nan: ++%*3Le: nan():0:4: ++%3Le: nan(09A_Zaz):1:4:nan: ++%*3Le: nan(09A_Zaz):0:4: ++%3Le: 0e0:1:4:0x0: ++%*3Le: 0e0:0:4: ++# BZ12701 %3Le: 0e+0:0:-1: ++# BZ12701 %*3Le: 0e+0:0:-1: ++%3Le: 3.36210314311209350626267781732175260e-4932:1:4:0x1.a666666666666666666666666666p1: ++%*3Le: 3.36210314311209350626267781732175260e-4932:0:4: ++%3Le: 3.6190587245056029583909936820055344e03716:1:4:0x1.cccccccccccccccccccccccccccdp1: ++%*3Le: 3.6190587245056029583909936820055344e03716:0:4: ++%3Le: 3.6190587245056029583909936820055344e+3716:1:4:0x1.cccccccccccccccccccccccccccdp1: ++%*3Le: 3.6190587245056029583909936820055344e+3716:0:4: ++%3Le: 1.18973149535723176508575932662800702e4932:1:4:0x1.199999999999999999999999999a: ++%*3Le: 1.18973149535723176508575932662800702e4932:0:4: ++%3Le: 1.18973149535723176508575932662800702e+4932:1:4:0x1.199999999999999999999999999a: ++%*3Le: 1.18973149535723176508575932662800702e+4932:0:4: ++%3Le: infinity:1:4:inf: ++%*3Le: infinity:0:4: ++%3Le: +nan():0:-1: ++%*3Le: +nan():0:-1: ++%3Le: +nan(09A_Zaz):0:-1: ++%*3Le: +nan(09A_Zaz):0:-1: ++# BZ12701 %3Le: +0e0:0:-1: ++# BZ12701 %*3Le: +0e0:0:-1: ++# BZ12701 %3Le: +0e+0:0:-1: ++# BZ12701 %*3Le: +0e+0:0:-1: ++%3Le: +3.36210314311209350626267781732175260e-4932:1:4:0x1.8p1: ++%*3Le: +3.36210314311209350626267781732175260e-4932:0:4: ++%3Le: +3.6190587245056029583909936820055344e03716:1:4:0x1.8p1: ++%*3Le: +3.6190587245056029583909936820055344e03716:0:4: ++%3Le: +3.6190587245056029583909936820055344e+3716:1:4:0x1.8p1: ++%*3Le: +3.6190587245056029583909936820055344e+3716:0:4: ++%3Le: +1.18973149535723176508575932662800702e4932:1:4:0x1: ++%*3Le: +1.18973149535723176508575932662800702e4932:0:4: ++%3Le: +1.18973149535723176508575932662800702e+4932:1:4:0x1: ++%*3Le: +1.18973149535723176508575932662800702e+4932:0:4: ++%3Le: +infinity:0:-1: ++%*3Le: +infinity:0:-1: ++%48Le: :0:-1: ++%*48Le: :0:-1: ++%48Le: -infinity:1:10:-inf: ++%*48Le: -infinity:0:10: ++%48Le: -1.18973149535723176508575932662800702e+4932:1:45:-0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le: -1.18973149535723176508575932662800702e+4932:0:45: ++%48Le: -1.18973149535723176508575932662800702e4932:1:44:-0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le: -1.18973149535723176508575932662800702e4932:0:44: ++%48Le: -3.6190587245056029583909936820055344e+3716:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le: -3.6190587245056029583909936820055344e+3716:0:44: ++%48Le: -3.6190587245056029583909936820055344e03716:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le: -3.6190587245056029583909936820055344e03716:0:44: ++%48Le: -3.36210314311209350626267781732175260e-4932:1:45:-0x1p-16382: ++%*48Le: -3.36210314311209350626267781732175260e-4932:0:45: ++%48Le: -0e+0:1:6:-0x0: ++%*48Le: -0e+0:0:6: ++%48Le: -0e0:1:5:-0x0: ++%*48Le: -0e0:0:5: ++%48Le: -nan(09A_Zaz):1:14:-nan: ++%*48Le: -nan(09A_Zaz):0:14: ++%48Le: -nan():1:7:-nan: ++%*48Le: -nan():0:7: ++%48Le: nan():1:6:nan: ++%*48Le: nan():0:6: ++%48Le: nan(09A_Zaz):1:13:nan: ++%*48Le: nan(09A_Zaz):0:13: ++%48Le: 0e0:1:4:0x0: ++%*48Le: 0e0:0:4: ++%48Le: 0e+0:1:5:0x0: ++%*48Le: 0e+0:0:5: ++%48Le: 3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*48Le: 3.36210314311209350626267781732175260e-4932:0:44: ++%48Le: 3.6190587245056029583909936820055344e03716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le: 3.6190587245056029583909936820055344e03716:0:43: ++%48Le: 3.6190587245056029583909936820055344e+3716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le: 3.6190587245056029583909936820055344e+3716:0:43: ++%48Le: 1.18973149535723176508575932662800702e4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le: 1.18973149535723176508575932662800702e4932:0:43: ++%48Le: 1.18973149535723176508575932662800702e+4932:1:44:0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le: 1.18973149535723176508575932662800702e+4932:0:44: ++%48Le: infinity:1:9:inf: ++%*48Le: infinity:0:9: ++%48Le: +nan():1:7:nan: ++%*48Le: +nan():0:7: ++%48Le: +nan(09A_Zaz):1:14:nan: ++%*48Le: +nan(09A_Zaz):0:14: ++%48Le: +0e0:1:5:0x0: ++%*48Le: +0e0:0:5: ++%48Le: +0e+0:1:6:0x0: ++%*48Le: +0e+0:0:6: ++%48Le: +3.36210314311209350626267781732175260e-4932:1:45:0x1p-16382: ++%*48Le: +3.36210314311209350626267781732175260e-4932:0:45: ++%48Le: +3.6190587245056029583909936820055344e03716:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le: +3.6190587245056029583909936820055344e03716:0:44: ++%48Le: +3.6190587245056029583909936820055344e+3716:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le: +3.6190587245056029583909936820055344e+3716:0:44: ++%48Le: +1.18973149535723176508575932662800702e4932:1:44:0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le: +1.18973149535723176508575932662800702e4932:0:44: ++%48Le: +1.18973149535723176508575932662800702e+4932:1:45:0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le: +1.18973149535723176508575932662800702e+4932:0:45: ++%48Le: +infinity:1:10:inf: ++%*48Le: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ee.input +new file mode 100644 +index 0000000000000000..8992c73c91384735 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ee.input +@@ -0,0 +1,558 @@ ++%LE::0:-1: ++%*LE::0:-1: ++%LE:-INFINITY:1:9:-inf: ++%*LE:-INFINITY:0:9: ++%LE:-1.18973149535723176508575932662800702E+4932:1:44:-0x1.ffffffffffffffffffffffffffffp16383: ++%*LE:-1.18973149535723176508575932662800702E+4932:0:44: ++%LE:-1.18973149535723176508575932662800702E4932:1:43:-0x1.ffffffffffffffffffffffffffffp16383: ++%*LE:-1.18973149535723176508575932662800702E4932:0:43: ++%LE:-3.6190587245056029583909936820055344E+3716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LE:-3.6190587245056029583909936820055344E+3716:0:43: ++%LE:-3.6190587245056029583909936820055344E03716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LE:-3.6190587245056029583909936820055344E03716:0:43: ++%LE:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382: ++%*LE:-3.36210314311209350626267781732175260e-4932:0:44: ++%LE:-0E+0:1:5:-0x0: ++%*LE:-0E+0:0:5: ++%LE:-0E0:1:4:-0x0: ++%*LE:-0E0:0:4: ++%LE:-NAN(09A_Zaz):1:13:-nan: ++%*LE:-NAN(09A_Zaz):0:13: ++%LE:-NAN():1:6:-nan: ++%*LE:-NAN():0:6: ++%LE:NAN():1:5:nan: ++%*LE:NAN():0:5: ++%LE:NAN(09A_Zaz):1:12:nan: ++%*LE:NAN(09A_Zaz):0:12: ++%LE:0E0:1:3:0x0: ++%*LE:0E0:0:3: ++%LE:0E+0:1:4:0x0: ++%*LE:0E+0:0:4: ++%LE:3.36210314311209350626267781732175260e-4932:1:43:0x1p-16382: ++%*LE:3.36210314311209350626267781732175260e-4932:0:43: ++%LE:3.6190587245056029583909936820055344E03716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LE:3.6190587245056029583909936820055344E03716:0:42: ++%LE:3.6190587245056029583909936820055344E+3716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LE:3.6190587245056029583909936820055344E+3716:0:42: ++%LE:1.18973149535723176508575932662800702E4932:1:42:0x1.ffffffffffffffffffffffffffffp16383: ++%*LE:1.18973149535723176508575932662800702E4932:0:42: ++%LE:1.18973149535723176508575932662800702E+4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*LE:1.18973149535723176508575932662800702E+4932:0:43: ++%LE:INFINITY:1:8:inf: ++%*LE:INFINITY:0:8: ++%LE:+NAN():1:6:nan: ++%*LE:+NAN():0:6: ++%LE:+NAN(09A_Zaz):1:13:nan: ++%*LE:+NAN(09A_Zaz):0:13: ++%LE:+0E0:1:4:0x0: ++%*LE:+0E0:0:4: ++%LE:+0E+0:1:5:0x0: ++%*LE:+0E+0:0:5: ++%LE:+3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*LE:+3.36210314311209350626267781732175260e-4932:0:44: ++%LE:+3.6190587245056029583909936820055344E03716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LE:+3.6190587245056029583909936820055344E03716:0:43: ++%LE:+3.6190587245056029583909936820055344E+3716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LE:+3.6190587245056029583909936820055344E+3716:0:43: ++%LE:+1.18973149535723176508575932662800702E4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*LE:+1.18973149535723176508575932662800702E4932:0:43: ++%LE:+1.18973149535723176508575932662800702E+4932:1:44:0x1.ffffffffffffffffffffffffffffp16383: ++%*LE:+1.18973149535723176508575932662800702E+4932:0:44: ++%LE:+INFINITY:1:9:inf: ++%*LE:+INFINITY:0:9: ++%1LE::0:-1: ++%*1LE::0:-1: ++%1LE:-INFINITY:0:-1: ++%*1LE:-INFINITY:0:-1: ++%1LE:-1.18973149535723176508575932662800702E+4932:0:-1: ++%*1LE:-1.18973149535723176508575932662800702E+4932:0:-1: ++%1LE:-1.18973149535723176508575932662800702E4932:0:-1: ++%*1LE:-1.18973149535723176508575932662800702E4932:0:-1: ++%1LE:-3.6190587245056029583909936820055344E+3716:0:-1: ++%*1LE:-3.6190587245056029583909936820055344E+3716:0:-1: ++%1LE:-3.6190587245056029583909936820055344E03716:0:-1: ++%*1LE:-3.6190587245056029583909936820055344E03716:0:-1: ++%1LE:-3.36210314311209350626267781732175260e-4932:0:-1: ++%*1LE:-3.36210314311209350626267781732175260e-4932:0:-1: ++%1LE:-0E+0:0:-1: ++%*1LE:-0E+0:0:-1: ++%1LE:-0E0:0:-1: ++%*1LE:-0E0:0:-1: ++%1LE:-NAN(09A_Zaz):0:-1: ++%*1LE:-NAN(09A_Zaz):0:-1: ++%1LE:-NAN():0:-1: ++%*1LE:-NAN():0:-1: ++%1LE:NAN():0:-1: ++%*1LE:NAN():0:-1: ++%1LE:NAN(09A_Zaz):0:-1: ++%*1LE:NAN(09A_Zaz):0:-1: ++%1LE:0E0:1:1:0x0: ++%*1LE:0E0:0:1: ++%1LE:0E+0:1:1:0x0: ++%*1LE:0E+0:0:1: ++%1LE:3.36210314311209350626267781732175260e-4932:1:1:0x1.8p1: ++%*1LE:3.36210314311209350626267781732175260e-4932:0:1: ++%1LE:3.6190587245056029583909936820055344E03716:1:1:0x1.8p1: ++%*1LE:3.6190587245056029583909936820055344E03716:0:1: ++%1LE:3.6190587245056029583909936820055344E+3716:1:1:0x1.8p1: ++%*1LE:3.6190587245056029583909936820055344E+3716:0:1: ++%1LE:1.18973149535723176508575932662800702E4932:1:1:0x1: ++%*1LE:1.18973149535723176508575932662800702E4932:0:1: ++%1LE:1.18973149535723176508575932662800702E+4932:1:1:0x1: ++%*1LE:1.18973149535723176508575932662800702E+4932:0:1: ++%1LE:INFINITY:0:-1: ++%*1LE:INFINITY:0:-1: ++%1LE:+NAN():0:-1: ++%*1LE:+NAN():0:-1: ++%1LE:+NAN(09A_Zaz):0:-1: ++%*1LE:+NAN(09A_Zaz):0:-1: ++%1LE:+0E0:0:-1: ++%*1LE:+0E0:0:-1: ++%1LE:+0E+0:0:-1: ++%*1LE:+0E+0:0:-1: ++%1LE:+3.36210314311209350626267781732175260e-4932:0:-1: ++%*1LE:+3.36210314311209350626267781732175260e-4932:0:-1: ++%1LE:+3.6190587245056029583909936820055344E03716:0:-1: ++%*1LE:+3.6190587245056029583909936820055344E03716:0:-1: ++%1LE:+3.6190587245056029583909936820055344E+3716:0:-1: ++%*1LE:+3.6190587245056029583909936820055344E+3716:0:-1: ++%1LE:+1.18973149535723176508575932662800702E4932:0:-1: ++%*1LE:+1.18973149535723176508575932662800702E4932:0:-1: ++%1LE:+1.18973149535723176508575932662800702E+4932:0:-1: ++%*1LE:+1.18973149535723176508575932662800702E+4932:0:-1: ++%1LE:+INFINITY:0:-1: ++%*1LE:+INFINITY:0:-1: ++%2LE::0:-1: ++%*2LE::0:-1: ++%2LE:-INFINITY:0:-1: ++%*2LE:-INFINITY:0:-1: ++%2LE:-1.18973149535723176508575932662800702E+4932:1:2:-0x1: ++%*2LE:-1.18973149535723176508575932662800702E+4932:0:2: ++%2LE:-1.18973149535723176508575932662800702E4932:1:2:-0x1: ++%*2LE:-1.18973149535723176508575932662800702E4932:0:2: ++%2LE:-3.6190587245056029583909936820055344E+3716:1:2:-0x1.8p1: ++%*2LE:-3.6190587245056029583909936820055344E+3716:0:2: ++%2LE:-3.6190587245056029583909936820055344E03716:1:2:-0x1.8p1: ++%*2LE:-3.6190587245056029583909936820055344E03716:0:2: ++%2LE:-3.36210314311209350626267781732175260e-4932:1:2:-0x1.8p1: ++%*2LE:-3.36210314311209350626267781732175260e-4932:0:2: ++%2LE:-0E+0:1:2:-0x0: ++%*2LE:-0E+0:0:2: ++%2LE:-0E0:1:2:-0x0: ++%*2LE:-0E0:0:2: ++%2LE:-NAN(09A_Zaz):0:-1: ++%*2LE:-NAN(09A_Zaz):0:-1: ++%2LE:-NAN():0:-1: ++%*2LE:-NAN():0:-1: ++%2LE:NAN():0:-1: ++%*2LE:NAN():0:-1: ++%2LE:NAN(09A_Zaz):0:-1: ++%*2LE:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LE:0E0:0:-1: ++# BZ12701 %*2LE:0E0:0:-1: ++# BZ12701 %2LE:0E+0:0:-1: ++# BZ12701 %*2LE:0E+0:0:-1: ++%2LE:3.36210314311209350626267781732175260e-4932:1:2:0x1.8p1: ++%*2LE:3.36210314311209350626267781732175260e-4932:0:2: ++%2LE:3.6190587245056029583909936820055344E03716:1:2:0x1.8p1: ++%*2LE:3.6190587245056029583909936820055344E03716:0:2: ++%2LE:3.6190587245056029583909936820055344E+3716:1:2:0x1.8p1: ++%*2LE:3.6190587245056029583909936820055344E+3716:0:2: ++%2LE:1.18973149535723176508575932662800702E4932:1:2:0x1: ++%*2LE:1.18973149535723176508575932662800702E4932:0:2: ++%2LE:1.18973149535723176508575932662800702E+4932:1:2:0x1: ++%*2LE:1.18973149535723176508575932662800702E+4932:0:2: ++%2LE:INFINITY:0:-1: ++%*2LE:INFINITY:0:-1: ++%2LE:+NAN():0:-1: ++%*2LE:+NAN():0:-1: ++%2LE:+NAN(09A_Zaz):0:-1: ++%*2LE:+NAN(09A_Zaz):0:-1: ++%2LE:+0E0:1:2:0x0: ++%*2LE:+0E0:0:2: ++%2LE:+0E+0:1:2:0x0: ++%*2LE:+0E+0:0:2: ++%2LE:+3.36210314311209350626267781732175260e-4932:1:2:0x1.8p1: ++%*2LE:+3.36210314311209350626267781732175260e-4932:0:2: ++%2LE:+3.6190587245056029583909936820055344E03716:1:2:0x1.8p1: ++%*2LE:+3.6190587245056029583909936820055344E03716:0:2: ++%2LE:+3.6190587245056029583909936820055344E+3716:1:2:0x1.8p1: ++%*2LE:+3.6190587245056029583909936820055344E+3716:0:2: ++%2LE:+1.18973149535723176508575932662800702E4932:1:2:0x1: ++%*2LE:+1.18973149535723176508575932662800702E4932:0:2: ++%2LE:+1.18973149535723176508575932662800702E+4932:1:2:0x1: ++%*2LE:+1.18973149535723176508575932662800702E+4932:0:2: ++%2LE:+INFINITY:0:-1: ++%*2LE:+INFINITY:0:-1: ++%3LE::0:-1: ++%*3LE::0:-1: ++%3LE:-INFINITY:0:-1: ++%*3LE:-INFINITY:0:-1: ++%3LE:-1.18973149535723176508575932662800702E+4932:1:3:-0x1: ++%*3LE:-1.18973149535723176508575932662800702E+4932:0:3: ++%3LE:-1.18973149535723176508575932662800702E4932:1:3:-0x1: ++%*3LE:-1.18973149535723176508575932662800702E4932:0:3: ++%3LE:-3.6190587245056029583909936820055344E+3716:1:3:-0x1.8p1: ++%*3LE:-3.6190587245056029583909936820055344E+3716:0:3: ++%3LE:-3.6190587245056029583909936820055344E03716:1:3:-0x1.8p1: ++%*3LE:-3.6190587245056029583909936820055344E03716:0:3: ++%3LE:-3.36210314311209350626267781732175260e-4932:1:3:-0x1.8p1: ++%*3LE:-3.36210314311209350626267781732175260e-4932:0:3: ++# BZ12701 %3LE:-0E+0:0:-1: ++# BZ12701 %*3LE:-0E+0:0:-1: ++# BZ12701 %3LE:-0E0:0:-1: ++# BZ12701 %*3LE:-0E0:0:-1: ++%3LE:-NAN(09A_Zaz):0:-1: ++%*3LE:-NAN(09A_Zaz):0:-1: ++%3LE:-NAN():0:-1: ++%*3LE:-NAN():0:-1: ++%3LE:NAN():1:3:nan: ++%*3LE:NAN():0:3: ++%3LE:NAN(09A_Zaz):1:3:nan: ++%*3LE:NAN(09A_Zaz):0:3: ++%3LE:0E0:1:3:0x0: ++%*3LE:0E0:0:3: ++# BZ12701 %3LE:0E+0:0:-1: ++# BZ12701 %*3LE:0E+0:0:-1: ++%3LE:3.36210314311209350626267781732175260e-4932:1:3:0x1.a666666666666666666666666666p1: ++%*3LE:3.36210314311209350626267781732175260e-4932:0:3: ++%3LE:3.6190587245056029583909936820055344E03716:1:3:0x1.cccccccccccccccccccccccccccdp1: ++%*3LE:3.6190587245056029583909936820055344E03716:0:3: ++%3LE:3.6190587245056029583909936820055344E+3716:1:3:0x1.cccccccccccccccccccccccccccdp1: ++%*3LE:3.6190587245056029583909936820055344E+3716:0:3: ++%3LE:1.18973149535723176508575932662800702E4932:1:3:0x1.199999999999999999999999999a: ++%*3LE:1.18973149535723176508575932662800702E4932:0:3: ++%3LE:1.18973149535723176508575932662800702E+4932:1:3:0x1.199999999999999999999999999a: ++%*3LE:1.18973149535723176508575932662800702E+4932:0:3: ++%3LE:INFINITY:1:3:inf: ++%*3LE:INFINITY:0:3: ++%3LE:+NAN():0:-1: ++%*3LE:+NAN():0:-1: ++%3LE:+NAN(09A_Zaz):0:-1: ++%*3LE:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LE:+0E0:0:-1: ++# BZ12701 %*3LE:+0E0:0:-1: ++# BZ12701 %3LE:+0E+0:0:-1: ++# BZ12701 %*3LE:+0E+0:0:-1: ++%3LE:+3.36210314311209350626267781732175260e-4932:1:3:0x1.8p1: ++%*3LE:+3.36210314311209350626267781732175260e-4932:0:3: ++%3LE:+3.6190587245056029583909936820055344E03716:1:3:0x1.8p1: ++%*3LE:+3.6190587245056029583909936820055344E03716:0:3: ++%3LE:+3.6190587245056029583909936820055344E+3716:1:3:0x1.8p1: ++%*3LE:+3.6190587245056029583909936820055344E+3716:0:3: ++%3LE:+1.18973149535723176508575932662800702E4932:1:3:0x1: ++%*3LE:+1.18973149535723176508575932662800702E4932:0:3: ++%3LE:+1.18973149535723176508575932662800702E+4932:1:3:0x1: ++%*3LE:+1.18973149535723176508575932662800702E+4932:0:3: ++%3LE:+INFINITY:0:-1: ++%*3LE:+INFINITY:0:-1: ++%4LE::0:-1: ++%*4LE::0:-1: ++%4LE:-INFINITY:1:4:-inf: ++%*4LE:-INFINITY:0:4: ++%4LE:-1.18973149535723176508575932662800702E+4932:1:4:-0x1.199999999999999999999999999a: ++%*4LE:-1.18973149535723176508575932662800702E+4932:0:4: ++%4LE:-1.18973149535723176508575932662800702E4932:1:4:-0x1.199999999999999999999999999a: ++%*4LE:-1.18973149535723176508575932662800702E4932:0:4: ++%4LE:-3.6190587245056029583909936820055344E+3716:1:4:-0x1.cccccccccccccccccccccccccccdp1: ++%*4LE:-3.6190587245056029583909936820055344E+3716:0:4: ++%4LE:-3.6190587245056029583909936820055344E03716:1:4:-0x1.cccccccccccccccccccccccccccdp1: ++%*4LE:-3.6190587245056029583909936820055344E03716:0:4: ++%4LE:-3.36210314311209350626267781732175260e-4932:1:4:-0x1.a666666666666666666666666666p1: ++%*4LE:-3.36210314311209350626267781732175260e-4932:0:4: ++# BZ12701 %4LE:-0E+0:0:-1: ++# BZ12701 %*4LE:-0E+0:0:-1: ++%4LE:-0E0:1:4:-0x0: ++%*4LE:-0E0:0:4: ++%4LE:-NAN(09A_Zaz):1:4:-nan: ++%*4LE:-NAN(09A_Zaz):0:4: ++%4LE:-NAN():1:4:-nan: ++%*4LE:-NAN():0:4: ++%4LE:NAN():0:-1: ++%*4LE:NAN():0:-1: ++%4LE:NAN(09A_Zaz):0:-1: ++%*4LE:NAN(09A_Zaz):0:-1: ++%4LE:0E0:1:3:0x0: ++%*4LE:0E0:0:3: ++%4LE:0E+0:1:4:0x0: ++%*4LE:0E+0:0:4: ++%4LE:3.36210314311209350626267781732175260e-4932:1:4:0x1.ae147ae147ae147ae147ae147ae1p1: ++%*4LE:3.36210314311209350626267781732175260e-4932:0:4: ++%4LE:3.6190587245056029583909936820055344E03716:1:4:0x1.ce147ae147ae147ae147ae147ae1p1: ++%*4LE:3.6190587245056029583909936820055344E03716:0:4: ++%4LE:3.6190587245056029583909936820055344E+3716:1:4:0x1.ce147ae147ae147ae147ae147ae1p1: ++%*4LE:3.6190587245056029583909936820055344E+3716:0:4: ++%4LE:1.18973149535723176508575932662800702E4932:1:4:0x1.2e147ae147ae147ae147ae147ae1: ++%*4LE:1.18973149535723176508575932662800702E4932:0:4: ++%4LE:1.18973149535723176508575932662800702E+4932:1:4:0x1.2e147ae147ae147ae147ae147ae1: ++%*4LE:1.18973149535723176508575932662800702E+4932:0:4: ++%4LE:INFINITY:0:-1: ++%*4LE:INFINITY:0:-1: ++%4LE:+NAN():1:4:nan: ++%*4LE:+NAN():0:4: ++%4LE:+NAN(09A_Zaz):1:4:nan: ++%*4LE:+NAN(09A_Zaz):0:4: ++%4LE:+0E0:1:4:0x0: ++%*4LE:+0E0:0:4: ++# BZ12701 %4LE:+0E+0:0:-1: ++# BZ12701 %*4LE:+0E+0:0:-1: ++%4LE:+3.36210314311209350626267781732175260e-4932:1:4:0x1.a666666666666666666666666666p1: ++%*4LE:+3.36210314311209350626267781732175260e-4932:0:4: ++%4LE:+3.6190587245056029583909936820055344E03716:1:4:0x1.cccccccccccccccccccccccccccdp1: ++%*4LE:+3.6190587245056029583909936820055344E03716:0:4: ++%4LE:+3.6190587245056029583909936820055344E+3716:1:4:0x1.cccccccccccccccccccccccccccdp1: ++%*4LE:+3.6190587245056029583909936820055344E+3716:0:4: ++%4LE:+1.18973149535723176508575932662800702E4932:1:4:0x1.199999999999999999999999999a: ++%*4LE:+1.18973149535723176508575932662800702E4932:0:4: ++%4LE:+1.18973149535723176508575932662800702E+4932:1:4:0x1.199999999999999999999999999a: ++%*4LE:+1.18973149535723176508575932662800702E+4932:0:4: ++%4LE:+INFINITY:1:4:inf: ++%*4LE:+INFINITY:0:4: ++%40LE::0:-1: ++%*40LE::0:-1: ++%40LE:-INFINITY:1:9:-inf: ++%*40LE:-INFINITY:0:9: ++# BZ12701 %40LE:-1.18973149535723176508575932662800702E+4932:0:-1: ++# BZ12701 %*40LE:-1.18973149535723176508575932662800702E+4932:0:-1: ++%40LE:-1.18973149535723176508575932662800702E4932:1:40:-0x1.73ca850660e6e6c57bb65bfbc7f1p13: ++%*40LE:-1.18973149535723176508575932662800702E4932:0:40: ++%40LE:-3.6190587245056029583909936820055344E+3716:1:40:-0x1.c461e11236e13b300745afb88861p11: ++%*40LE:-3.6190587245056029583909936820055344E+3716:0:40: ++%40LE:-3.6190587245056029583909936820055344E03716:1:40:-0x1.c461e11236e13b300745afb88861p11: ++%*40LE:-3.6190587245056029583909936820055344E03716:0:40: ++# BZ12701 %40LE:-3.36210314311209350626267781732175260e-4932:0:-1: ++# BZ12701 %*40LE:-3.36210314311209350626267781732175260e-4932:0:-1: ++%40LE:-0E+0:1:5:-0x0: ++%*40LE:-0E+0:0:5: ++%40LE:-0E0:1:4:-0x0: ++%*40LE:-0E0:0:4: ++%40LE:-NAN(09A_Zaz):1:13:-nan: ++%*40LE:-NAN(09A_Zaz):0:13: ++%40LE:-NAN():1:6:-nan: ++%*40LE:-NAN():0:6: ++%40LE:NAN():1:5:nan: ++%*40LE:NAN():0:5: ++%40LE:NAN(09A_Zaz):1:12:nan: ++%*40LE:NAN(09A_Zaz):0:12: ++%40LE:0E0:1:3:0x0: ++%*40LE:0E0:0:3: ++%40LE:0E+0:1:4:0x0: ++%*40LE:0E+0:0:4: ++%40LE:3.36210314311209350626267781732175260e-4932:1:40:0x1.608ac4df6a146bceb1f1fbc05807p-12: ++%*40LE:3.36210314311209350626267781732175260e-4932:0:40: ++%40LE:3.6190587245056029583909936820055344E03716:1:40:0x1.b3a0db6a2433ca1ab428755ec4e8p124: ++%*40LE:3.6190587245056029583909936820055344E03716:0:40: ++%40LE:3.6190587245056029583909936820055344E+3716:1:40:0x1.b3a0db6a2433ca1ab428755ec4e8p124: ++%*40LE:3.6190587245056029583909936820055344E+3716:0:40: ++%40LE:1.18973149535723176508575932662800702E4932:1:40:0x1.047ec1b6d6390a5ce34fd9d25b88p163: ++%*40LE:1.18973149535723176508575932662800702E4932:0:40: ++%40LE:1.18973149535723176508575932662800702E+4932:1:40:0x1.73ca850660e6e6c57bb65bfbc7f1p13: ++%*40LE:1.18973149535723176508575932662800702E+4932:0:40: ++%40LE:INFINITY:1:8:inf: ++%*40LE:INFINITY:0:8: ++%40LE:+NAN():1:6:nan: ++%*40LE:+NAN():0:6: ++%40LE:+NAN(09A_Zaz):1:13:nan: ++%*40LE:+NAN(09A_Zaz):0:13: ++%40LE:+0E0:1:4:0x0: ++%*40LE:+0E0:0:4: ++%40LE:+0E+0:1:5:0x0: ++%*40LE:+0E+0:0:5: ++# BZ12701 %40LE:+3.36210314311209350626267781732175260e-4932:0:-1: ++# BZ12701 %*40LE:+3.36210314311209350626267781732175260e-4932:0:-1: ++%40LE:+3.6190587245056029583909936820055344E03716:1:40:0x1.c461e11236e13b300745afb88861p11: ++%*40LE:+3.6190587245056029583909936820055344E03716:0:40: ++%40LE:+3.6190587245056029583909936820055344E+3716:1:40:0x1.c461e11236e13b300745afb88861p11: ++%*40LE:+3.6190587245056029583909936820055344E+3716:0:40: ++%40LE:+1.18973149535723176508575932662800702E4932:1:40:0x1.73ca850660e6e6c57bb65bfbc7f1p13: ++%*40LE:+1.18973149535723176508575932662800702E4932:0:40: ++# BZ12701 %40LE:+1.18973149535723176508575932662800702E+4932:0:-1: ++# BZ12701 %*40LE:+1.18973149535723176508575932662800702E+4932:0:-1: ++%40LE:+INFINITY:1:9:inf: ++%*40LE:+INFINITY:0:9: ++%48LE::0:-1: ++%*48LE::0:-1: ++%48LE:-INFINITY:1:9:-inf: ++%*48LE:-INFINITY:0:9: ++%48LE:-1.18973149535723176508575932662800702E+4932:1:44:-0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE:-1.18973149535723176508575932662800702E+4932:0:44: ++%48LE:-1.18973149535723176508575932662800702E4932:1:43:-0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE:-1.18973149535723176508575932662800702E4932:0:43: ++%48LE:-3.6190587245056029583909936820055344E+3716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE:-3.6190587245056029583909936820055344E+3716:0:43: ++%48LE:-3.6190587245056029583909936820055344E03716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE:-3.6190587245056029583909936820055344E03716:0:43: ++%48LE:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382: ++%*48LE:-3.36210314311209350626267781732175260e-4932:0:44: ++%48LE:-0E+0:1:5:-0x0: ++%*48LE:-0E+0:0:5: ++%48LE:-0E0:1:4:-0x0: ++%*48LE:-0E0:0:4: ++%48LE:-NAN(09A_Zaz):1:13:-nan: ++%*48LE:-NAN(09A_Zaz):0:13: ++%48LE:-NAN():1:6:-nan: ++%*48LE:-NAN():0:6: ++%48LE:NAN():1:5:nan: ++%*48LE:NAN():0:5: ++%48LE:NAN(09A_Zaz):1:12:nan: ++%*48LE:NAN(09A_Zaz):0:12: ++%48LE:0E0:1:3:0x0: ++%*48LE:0E0:0:3: ++%48LE:0E+0:1:4:0x0: ++%*48LE:0E+0:0:4: ++%48LE:3.36210314311209350626267781732175260e-4932:1:43:0x1p-16382: ++%*48LE:3.36210314311209350626267781732175260e-4932:0:43: ++%48LE:3.6190587245056029583909936820055344E03716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE:3.6190587245056029583909936820055344E03716:0:42: ++%48LE:3.6190587245056029583909936820055344E+3716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE:3.6190587245056029583909936820055344E+3716:0:42: ++%48LE:1.18973149535723176508575932662800702E4932:1:42:0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE:1.18973149535723176508575932662800702E4932:0:42: ++%48LE:1.18973149535723176508575932662800702E+4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE:1.18973149535723176508575932662800702E+4932:0:43: ++%48LE:INFINITY:1:8:inf: ++%*48LE:INFINITY:0:8: ++%48LE:+NAN():1:6:nan: ++%*48LE:+NAN():0:6: ++%48LE:+NAN(09A_Zaz):1:13:nan: ++%*48LE:+NAN(09A_Zaz):0:13: ++%48LE:+0E0:1:4:0x0: ++%*48LE:+0E0:0:4: ++%48LE:+0E+0:1:5:0x0: ++%*48LE:+0E+0:0:5: ++%48LE:+3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*48LE:+3.36210314311209350626267781732175260e-4932:0:44: ++%48LE:+3.6190587245056029583909936820055344E03716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE:+3.6190587245056029583909936820055344E03716:0:43: ++%48LE:+3.6190587245056029583909936820055344E+3716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE:+3.6190587245056029583909936820055344E+3716:0:43: ++%48LE:+1.18973149535723176508575932662800702E4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE:+1.18973149535723176508575932662800702E4932:0:43: ++%48LE:+1.18973149535723176508575932662800702E+4932:1:44:0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE:+1.18973149535723176508575932662800702E+4932:0:44: ++%48LE:+INFINITY:1:9:inf: ++%*48LE:+INFINITY:0:9: ++%3LE: :0:-1: ++%*3LE: :0:-1: ++%3LE: -INFINITY:0:-1: ++%*3LE: -INFINITY:0:-1: ++%3LE: -1.18973149535723176508575932662800702E+4932:1:4:-0x1: ++%*3LE: -1.18973149535723176508575932662800702E+4932:0:4: ++%3LE: -1.18973149535723176508575932662800702E4932:1:4:-0x1: ++%*3LE: -1.18973149535723176508575932662800702E4932:0:4: ++%3LE: -3.6190587245056029583909936820055344E+3716:1:4:-0x1.8p1: ++%*3LE: -3.6190587245056029583909936820055344E+3716:0:4: ++%3LE: -3.6190587245056029583909936820055344E03716:1:4:-0x1.8p1: ++%*3LE: -3.6190587245056029583909936820055344E03716:0:4: ++%3LE: -3.36210314311209350626267781732175260e-4932:1:4:-0x1.8p1: ++%*3LE: -3.36210314311209350626267781732175260e-4932:0:4: ++# BZ12701 %3LE: -0E+0:0:-1: ++# BZ12701 %*3LE: -0E+0:0:-1: ++# BZ12701 %3LE: -0E0:0:-1: ++# BZ12701 %*3LE: -0E0:0:-1: ++%3LE: -NAN(09A_Zaz):0:-1: ++%*3LE: -NAN(09A_Zaz):0:-1: ++%3LE: -NAN():0:-1: ++%*3LE: -NAN():0:-1: ++%3LE: NAN():1:4:nan: ++%*3LE: NAN():0:4: ++%3LE: NAN(09A_Zaz):1:4:nan: ++%*3LE: NAN(09A_Zaz):0:4: ++%3LE: 0E0:1:4:0x0: ++%*3LE: 0E0:0:4: ++# BZ12701 %3LE: 0E+0:0:-1: ++# BZ12701 %*3LE: 0E+0:0:-1: ++%3LE: 3.36210314311209350626267781732175260e-4932:1:4:0x1.a666666666666666666666666666p1: ++%*3LE: 3.36210314311209350626267781732175260e-4932:0:4: ++%3LE: 3.6190587245056029583909936820055344E03716:1:4:0x1.cccccccccccccccccccccccccccdp1: ++%*3LE: 3.6190587245056029583909936820055344E03716:0:4: ++%3LE: 3.6190587245056029583909936820055344E+3716:1:4:0x1.cccccccccccccccccccccccccccdp1: ++%*3LE: 3.6190587245056029583909936820055344E+3716:0:4: ++%3LE: 1.18973149535723176508575932662800702E4932:1:4:0x1.199999999999999999999999999a: ++%*3LE: 1.18973149535723176508575932662800702E4932:0:4: ++%3LE: 1.18973149535723176508575932662800702E+4932:1:4:0x1.199999999999999999999999999a: ++%*3LE: 1.18973149535723176508575932662800702E+4932:0:4: ++%3LE: INFINITY:1:4:inf: ++%*3LE: INFINITY:0:4: ++%3LE: +NAN():0:-1: ++%*3LE: +NAN():0:-1: ++%3LE: +NAN(09A_Zaz):0:-1: ++%*3LE: +NAN(09A_Zaz):0:-1: ++# BZ12701 %3LE: +0E0:0:-1: ++# BZ12701 %*3LE: +0E0:0:-1: ++# BZ12701 %3LE: +0E+0:0:-1: ++# BZ12701 %*3LE: +0E+0:0:-1: ++%3LE: +3.36210314311209350626267781732175260e-4932:1:4:0x1.8p1: ++%*3LE: +3.36210314311209350626267781732175260e-4932:0:4: ++%3LE: +3.6190587245056029583909936820055344E03716:1:4:0x1.8p1: ++%*3LE: +3.6190587245056029583909936820055344E03716:0:4: ++%3LE: +3.6190587245056029583909936820055344E+3716:1:4:0x1.8p1: ++%*3LE: +3.6190587245056029583909936820055344E+3716:0:4: ++%3LE: +1.18973149535723176508575932662800702E4932:1:4:0x1: ++%*3LE: +1.18973149535723176508575932662800702E4932:0:4: ++%3LE: +1.18973149535723176508575932662800702E+4932:1:4:0x1: ++%*3LE: +1.18973149535723176508575932662800702E+4932:0:4: ++%3LE: +INFINITY:0:-1: ++%*3LE: +INFINITY:0:-1: ++%48LE: :0:-1: ++%*48LE: :0:-1: ++%48LE: -INFINITY:1:10:-inf: ++%*48LE: -INFINITY:0:10: ++%48LE: -1.18973149535723176508575932662800702E+4932:1:45:-0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE: -1.18973149535723176508575932662800702E+4932:0:45: ++%48LE: -1.18973149535723176508575932662800702E4932:1:44:-0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE: -1.18973149535723176508575932662800702E4932:0:44: ++%48LE: -3.6190587245056029583909936820055344E+3716:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE: -3.6190587245056029583909936820055344E+3716:0:44: ++%48LE: -3.6190587245056029583909936820055344E03716:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE: -3.6190587245056029583909936820055344E03716:0:44: ++%48LE: -3.36210314311209350626267781732175260e-4932:1:45:-0x1p-16382: ++%*48LE: -3.36210314311209350626267781732175260e-4932:0:45: ++%48LE: -0E+0:1:6:-0x0: ++%*48LE: -0E+0:0:6: ++%48LE: -0E0:1:5:-0x0: ++%*48LE: -0E0:0:5: ++%48LE: -NAN(09A_Zaz):1:14:-nan: ++%*48LE: -NAN(09A_Zaz):0:14: ++%48LE: -NAN():1:7:-nan: ++%*48LE: -NAN():0:7: ++%48LE: NAN():1:6:nan: ++%*48LE: NAN():0:6: ++%48LE: NAN(09A_Zaz):1:13:nan: ++%*48LE: NAN(09A_Zaz):0:13: ++%48LE: 0E0:1:4:0x0: ++%*48LE: 0E0:0:4: ++%48LE: 0E+0:1:5:0x0: ++%*48LE: 0E+0:0:5: ++%48LE: 3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*48LE: 3.36210314311209350626267781732175260e-4932:0:44: ++%48LE: 3.6190587245056029583909936820055344E03716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE: 3.6190587245056029583909936820055344E03716:0:43: ++%48LE: 3.6190587245056029583909936820055344E+3716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE: 3.6190587245056029583909936820055344E+3716:0:43: ++%48LE: 1.18973149535723176508575932662800702E4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE: 1.18973149535723176508575932662800702E4932:0:43: ++%48LE: 1.18973149535723176508575932662800702E+4932:1:44:0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE: 1.18973149535723176508575932662800702E+4932:0:44: ++%48LE: INFINITY:1:9:inf: ++%*48LE: INFINITY:0:9: ++%48LE: +NAN():1:7:nan: ++%*48LE: +NAN():0:7: ++%48LE: +NAN(09A_Zaz):1:14:nan: ++%*48LE: +NAN(09A_Zaz):0:14: ++%48LE: +0E0:1:5:0x0: ++%*48LE: +0E0:0:5: ++%48LE: +0E+0:1:6:0x0: ++%*48LE: +0E+0:0:6: ++%48LE: +3.36210314311209350626267781732175260e-4932:1:45:0x1p-16382: ++%*48LE: +3.36210314311209350626267781732175260e-4932:0:45: ++%48LE: +3.6190587245056029583909936820055344E03716:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE: +3.6190587245056029583909936820055344E03716:0:44: ++%48LE: +3.6190587245056029583909936820055344E+3716:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE: +3.6190587245056029583909936820055344E+3716:0:44: ++%48LE: +1.18973149535723176508575932662800702E4932:1:44:0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE: +1.18973149535723176508575932662800702E4932:0:44: ++%48LE: +1.18973149535723176508575932662800702E+4932:1:45:0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE: +1.18973149535723176508575932662800702E+4932:0:45: ++%48LE: +INFINITY:1:10:inf: ++%*48LE: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-f.input +new file mode 100644 +index 0000000000000000..955ef173eb417670 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-f.input +@@ -0,0 +1,496 @@ ++%Lf::0:-1: ++%*Lf::0:-1: ++%Lf:-infinity:1:9:-inf: ++%*Lf:-infinity:0:9: ++%Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:-0x1.ffffffffffffffffffffffffffffp16383: ++%*Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:-0x1.ffffffffffffffffffffffffffffp16383: ++%*Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382: ++%*Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%Lf:-0.0:1:4:-0x0: ++%*Lf:-0.0:0:4: ++%Lf:-0:1:2:-0x0: ++%*Lf:-0:0:2: ++%Lf:-nan(09A_Zaz):1:13:-nan: ++%*Lf:-nan(09A_Zaz):0:13: ++%Lf:-nan():1:6:-nan: ++%*Lf:-nan():0:6: ++%Lf:nan():1:5:nan: ++%*Lf:nan():0:5: ++%Lf:nan(09A_Zaz):1:12:nan: ++%*Lf:nan(09A_Zaz):0:12: ++%Lf:0:1:1:0x0: ++%*Lf:0:0:1: ++%Lf:0.0:1:3:0x0: ++%*Lf:0.0:0:3: ++%Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382: ++%*Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968: ++%Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3717:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3717: ++%Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3720:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3720: ++%Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4933:0x1.ffffffffffffffffffffffffffffp16383: ++%*Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4933: ++%Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4936:0x1.ffffffffffffffffffffffffffffp16383: ++%*Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936: ++%Lf:infinity:1:8:inf: ++%*Lf:infinity:0:8: ++%Lf:+nan():1:6:nan: ++%*Lf:+nan():0:6: ++%Lf:+nan(09A_Zaz):1:13:nan: ++%*Lf:+nan(09A_Zaz):0:13: ++%Lf:+0:1:2:0x0: ++%*Lf:+0:0:2: ++%Lf:+0.0:1:4:0x0: ++%*Lf:+0.0:0:4: ++%Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383: ++%*Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:0x1.ffffffffffffffffffffffffffffp16383: ++%*Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%Lf:+infinity:1:9:inf: ++%*Lf:+infinity:0:9: ++%1Lf::0:-1: ++%*1Lf::0:-1: ++%1Lf:-infinity:0:-1: ++%*1Lf:-infinity:0:-1: ++%1Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1: ++%*1Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1: ++%1Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1: ++%*1Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1: ++%1Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1: ++%*1Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1: ++%1Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1: ++%*1Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1: ++%1Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%*1Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%1Lf:-0.0:0:-1: ++%*1Lf:-0.0:0:-1: ++%1Lf:-0:0:-1: ++%*1Lf:-0:0:-1: ++%1Lf:-nan(09A_Zaz):0:-1: ++%*1Lf:-nan(09A_Zaz):0:-1: ++%1Lf:-nan():0:-1: ++%*1Lf:-nan():0:-1: ++%1Lf:nan():0:-1: ++%*1Lf:nan():0:-1: ++%1Lf:nan(09A_Zaz):0:-1: ++%*1Lf:nan(09A_Zaz):0:-1: ++%1Lf:0:1:1:0x0: ++%*1Lf:0:0:1: ++%1Lf:0.0:1:1:0x0: ++%*1Lf:0.0:0:1: ++%1Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:1:0x0: ++%*1Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:1: ++%1Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:1:0x1.8p1: ++%*1Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:1: ++%1Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:1:0x0: ++%*1Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:1: ++%1Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:1:0x1: ++%*1Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:1: ++%1Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:1:0x0: ++%*1Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:1: ++%1Lf:infinity:0:-1: ++%*1Lf:infinity:0:-1: ++%1Lf:+nan():0:-1: ++%*1Lf:+nan():0:-1: ++%1Lf:+nan(09A_Zaz):0:-1: ++%*1Lf:+nan(09A_Zaz):0:-1: ++%1Lf:+0:0:-1: ++%*1Lf:+0:0:-1: ++%1Lf:+0.0:0:-1: ++%*1Lf:+0.0:0:-1: ++%1Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%*1Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%1Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1: ++%*1Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1: ++%1Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1: ++%*1Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1: ++%1Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1: ++%*1Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1: ++%1Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1: ++%*1Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1: ++%1Lf:+infinity:0:-1: ++%*1Lf:+infinity:0:-1: ++%2Lf::0:-1: ++%*2Lf::0:-1: ++%2Lf:-infinity:0:-1: ++%*2Lf:-infinity:0:-1: ++%2Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:2:-0x0: ++%*2Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2: ++%2Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:2:-0x1: ++%*2Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:2: ++%2Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:2:-0x0: ++%*2Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:2: ++%2Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:2:-0x1.8p1: ++%*2Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:2: ++%2Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:-0x0: ++%*2Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2Lf:-0.0:1:2:-0x0: ++%*2Lf:-0.0:0:2: ++%2Lf:-0:1:2:-0x0: ++%*2Lf:-0:0:2: ++%2Lf:-nan(09A_Zaz):0:-1: ++%*2Lf:-nan(09A_Zaz):0:-1: ++%2Lf:-nan():0:-1: ++%*2Lf:-nan():0:-1: ++%2Lf:nan():0:-1: ++%*2Lf:nan():0:-1: ++%2Lf:nan(09A_Zaz):0:-1: ++%*2Lf:nan(09A_Zaz):0:-1: ++%2Lf:0:1:1:0x0: ++%*2Lf:0:0:1: ++%2Lf:0.0:1:2:0x0: ++%*2Lf:0.0:0:2: ++%2Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0: ++%*2Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:2:0x1.2p5: ++%*2Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:2: ++%2Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:2:0x1.8p1: ++%*2Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:2: ++%2Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:2:0x1.6p3: ++%*2Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:2: ++%2Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:2:0x1: ++%*2Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2: ++%2Lf:infinity:0:-1: ++%*2Lf:infinity:0:-1: ++%2Lf:+nan():0:-1: ++%*2Lf:+nan():0:-1: ++%2Lf:+nan(09A_Zaz):0:-1: ++%*2Lf:+nan(09A_Zaz):0:-1: ++%2Lf:+0:1:2:0x0: ++%*2Lf:+0:0:2: ++%2Lf:+0.0:1:2:0x0: ++%*2Lf:+0.0:0:2: ++%2Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0: ++%*2Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:2:0x1.8p1: ++%*2Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:2: ++%2Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:2:0x0: ++%*2Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:2: ++%2Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:2:0x1: ++%*2Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:2: ++%2Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:2:0x0: ++%*2Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2: ++%2Lf:+infinity:0:-1: ++%*2Lf:+infinity:0:-1: ++%3Lf::0:-1: ++%*3Lf::0:-1: ++%3Lf:-infinity:0:-1: ++%*3Lf:-infinity:0:-1: ++%3Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:3:-0x1: ++%*3Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3: ++%3Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:3:-0x1.6p3: ++%*3Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:3: ++%3Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3:-0x1.8p1: ++%*3Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3: ++%3Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3:-0x1.2p5: ++%*3Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3: ++%3Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:-0x0: ++%*3Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3Lf:-0.0:1:3:-0x0: ++%*3Lf:-0.0:0:3: ++%3Lf:-0:1:2:-0x0: ++%*3Lf:-0:0:2: ++%3Lf:-nan(09A_Zaz):0:-1: ++%*3Lf:-nan(09A_Zaz):0:-1: ++%3Lf:-nan():0:-1: ++%*3Lf:-nan():0:-1: ++%3Lf:nan():1:3:nan: ++%*3Lf:nan():0:3: ++%3Lf:nan(09A_Zaz):1:3:nan: ++%*3Lf:nan(09A_Zaz):0:3: ++%3Lf:0:1:1:0x0: ++%*3Lf:0:0:1: ++%3Lf:0.0:1:3:0x0: ++%*3Lf:0.0:0:3: ++%3Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0: ++%*3Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3:0x1.69p+8: ++%*3Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3: ++%3Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3:0x1.2p5: ++%*3Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3: ++%3Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:3:0x1.d8p6: ++%*3Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:3: ++%3Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:3:0x1.6p3: ++%*3Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3: ++%3Lf:infinity:1:3:inf: ++%*3Lf:infinity:0:3: ++%3Lf:+nan():0:-1: ++%*3Lf:+nan():0:-1: ++%3Lf:+nan(09A_Zaz):0:-1: ++%*3Lf:+nan(09A_Zaz):0:-1: ++%3Lf:+0:1:2:0x0: ++%*3Lf:+0:0:2: ++%3Lf:+0.0:1:3:0x0: ++%*3Lf:+0.0:0:3: ++%3Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0: ++%*3Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3:0x1.2p5: ++%*3Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3: ++%3Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3:0x1.8p1: ++%*3Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3: ++%3Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:3:0x1.6p3: ++%*3Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:3: ++%3Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:3:0x1: ++%*3Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3: ++%3Lf:+infinity:0:-1: ++%*3Lf:+infinity:0:-1: ++%4935Lf::0:-1: ++%*4935Lf::0:-1: ++%4935Lf:-infinity:1:9:-inf: ++%*4935Lf:-infinity:0:9: ++%4935Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4935:-0x1.ffffffffffffffffffffffffffffp16383: ++%*4935Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935: ++%4935Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:-0x1.ffffffffffffffffffffffffffffp16383: ++%*4935Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%4935Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%4935Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%4935Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:-0x1.c8db5d6b5ee81f42213bd561a016p-16383: ++%*4935Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935Lf:-0.0:1:4:-0x0: ++%*4935Lf:-0.0:0:4: ++%4935Lf:-0:1:2:-0x0: ++%*4935Lf:-0:0:2: ++%4935Lf:-nan(09A_Zaz):1:13:-nan: ++%*4935Lf:-nan(09A_Zaz):0:13: ++%4935Lf:-nan():1:6:-nan: ++%*4935Lf:-nan():0:6: ++%4935Lf:nan():1:5:nan: ++%*4935Lf:nan():0:5: ++%4935Lf:nan(09A_Zaz):1:12:nan: ++%*4935Lf:nan(09A_Zaz):0:12: ++%4935Lf:0:1:1:0x0: ++%*4935Lf:0:0:1: ++%4935Lf:0.0:1:3:0x0: ++%*4935Lf:0.0:0:3: ++%4935Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.f68ae6c2e865bbfbf15b6ab83018p-16383: ++%*4935Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3717:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3717: ++%4935Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3720:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3720: ++%4935Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4933:0x1.ffffffffffffffffffffffffffffp16383: ++%*4935Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4933: ++%4935Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4935:0x1.ffffffffffffffffffffffffffffp16383: ++%*4935Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935: ++%4935Lf:infinity:1:8:inf: ++%*4935Lf:infinity:0:8: ++%4935Lf:+nan():1:6:nan: ++%*4935Lf:+nan():0:6: ++%4935Lf:+nan(09A_Zaz):1:13:nan: ++%*4935Lf:+nan(09A_Zaz):0:13: ++%4935Lf:+0:1:2:0x0: ++%*4935Lf:+0:0:2: ++%4935Lf:+0.0:1:4:0x0: ++%*4935Lf:+0.0:0:4: ++%4935Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.c8db5d6b5ee81f42213bd561a016p-16383: ++%*4935Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%4935Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%4935Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383: ++%*4935Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%4935Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4935:0x1.ffffffffffffffffffffffffffffp16383: ++%*4935Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935: ++%4935Lf:+infinity:1:9:inf: ++%*4935Lf:+infinity:0:9: ++%5000Lf::0:-1: ++%*5000Lf::0:-1: ++%5000Lf:-infinity:1:9:-inf: ++%*5000Lf:-infinity:0:9: ++%5000Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:-0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%5000Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:-0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%5000Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%5000Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%5000Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382: ++%*5000Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000Lf:-0.0:1:4:-0x0: ++%*5000Lf:-0.0:0:4: ++%5000Lf:-0:1:2:-0x0: ++%*5000Lf:-0:0:2: ++%5000Lf:-nan(09A_Zaz):1:13:-nan: ++%*5000Lf:-nan(09A_Zaz):0:13: ++%5000Lf:-nan():1:6:-nan: ++%*5000Lf:-nan():0:6: ++%5000Lf:nan():1:5:nan: ++%*5000Lf:nan():0:5: ++%5000Lf:nan(09A_Zaz):1:12:nan: ++%*5000Lf:nan(09A_Zaz):0:12: ++%5000Lf:0:1:1:0x0: ++%*5000Lf:0:0:1: ++%5000Lf:0.0:1:3:0x0: ++%*5000Lf:0.0:0:3: ++%5000Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382: ++%*5000Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968: ++%5000Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3717:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3717: ++%5000Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3720:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3720: ++%5000Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4933:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4933: ++%5000Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4936:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936: ++%5000Lf:infinity:1:8:inf: ++%*5000Lf:infinity:0:8: ++%5000Lf:+nan():1:6:nan: ++%*5000Lf:+nan():0:6: ++%5000Lf:+nan(09A_Zaz):1:13:nan: ++%*5000Lf:+nan(09A_Zaz):0:13: ++%5000Lf:+0:1:2:0x0: ++%*5000Lf:+0:0:2: ++%5000Lf:+0.0:1:4:0x0: ++%*5000Lf:+0.0:0:4: ++%5000Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*5000Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%5000Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%5000Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%5000Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%5000Lf:+infinity:1:9:inf: ++%*5000Lf:+infinity:0:9: ++%3Lf: :0:-1: ++%*3Lf: :0:-1: ++%3Lf: -infinity:0:-1: ++%*3Lf: -infinity:0:-1: ++%3Lf: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4:-0x1: ++%*3Lf: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4: ++%3Lf: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4:-0x1.6p3: ++%*3Lf: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4: ++%3Lf: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:4:-0x1.8p1: ++%*3Lf: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:4: ++%3Lf: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:4:-0x1.2p5: ++%*3Lf: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:4: ++%3Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:-0x0: ++%*3Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3Lf: -0.0:1:4:-0x0: ++%*3Lf: -0.0:0:4: ++%3Lf: -0:1:3:-0x0: ++%*3Lf: -0:0:3: ++%3Lf: -nan(09A_Zaz):0:-1: ++%*3Lf: -nan(09A_Zaz):0:-1: ++%3Lf: -nan():0:-1: ++%*3Lf: -nan():0:-1: ++%3Lf: nan():1:4:nan: ++%*3Lf: nan():0:4: ++%3Lf: nan(09A_Zaz):1:4:nan: ++%*3Lf: nan(09A_Zaz):0:4: ++%3Lf: 0:1:2:0x0: ++%*3Lf: 0:0:2: ++%3Lf: 0.0:1:4:0x0: ++%*3Lf: 0.0:0:4: ++%3Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0: ++%*3Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3Lf: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:4:0x1.69p+8: ++%*3Lf: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:4: ++%3Lf: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:4:0x1.2p5: ++%*3Lf: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:4: ++%3Lf: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4:0x1.d8p6: ++%*3Lf: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4: ++%3Lf: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4:0x1.6p3: ++%*3Lf: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4: ++%3Lf: infinity:1:4:inf: ++%*3Lf: infinity:0:4: ++%3Lf: +nan():0:-1: ++%*3Lf: +nan():0:-1: ++%3Lf: +nan(09A_Zaz):0:-1: ++%*3Lf: +nan(09A_Zaz):0:-1: ++%3Lf: +0:1:3:0x0: ++%*3Lf: +0:0:3: ++%3Lf: +0.0:1:4:0x0: ++%*3Lf: +0.0:0:4: ++%3Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0: ++%*3Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3Lf: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:4:0x1.2p5: ++%*3Lf: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:4: ++%3Lf: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:4:0x1.8p1: ++%*3Lf: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:4: ++%3Lf: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4:0x1.6p3: ++%*3Lf: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4: ++%3Lf: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4:0x1: ++%*3Lf: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4: ++%3Lf: +infinity:0:-1: ++%*3Lf: +infinity:0:-1: ++%5000Lf: :0:-1: ++%*5000Lf: :0:-1: ++%5000Lf: -infinity:1:10:-inf: ++%*5000Lf: -infinity:0:10: ++%5000Lf: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4938:-0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4938: ++%5000Lf: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4935:-0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4935: ++%5000Lf: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3722:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3722: ++%5000Lf: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3719:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3719: ++%5000Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:-0x1p-16382: ++%*5000Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970: ++%5000Lf: -0.0:1:5:-0x0: ++%*5000Lf: -0.0:0:5: ++%5000Lf: -0:1:3:-0x0: ++%*5000Lf: -0:0:3: ++%5000Lf: -nan(09A_Zaz):1:14:-nan: ++%*5000Lf: -nan(09A_Zaz):0:14: ++%5000Lf: -nan():1:7:-nan: ++%*5000Lf: -nan():0:7: ++%5000Lf: nan():1:6:nan: ++%*5000Lf: nan():0:6: ++%5000Lf: nan(09A_Zaz):1:13:nan: ++%*5000Lf: nan(09A_Zaz):0:13: ++%5000Lf: 0:1:2:0x0: ++%*5000Lf: 0:0:2: ++%5000Lf: 0.0:1:4:0x0: ++%*5000Lf: 0.0:0:4: ++%5000Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*5000Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000Lf: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%5000Lf: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%5000Lf: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%5000Lf: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%5000Lf: infinity:1:9:inf: ++%*5000Lf: infinity:0:9: ++%5000Lf: +nan():1:7:nan: ++%*5000Lf: +nan():0:7: ++%5000Lf: +nan(09A_Zaz):1:14:nan: ++%*5000Lf: +nan(09A_Zaz):0:14: ++%5000Lf: +0:1:3:0x0: ++%*5000Lf: +0:0:3: ++%5000Lf: +0.0:1:5:0x0: ++%*5000Lf: +0.0:0:5: ++%5000Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:0x1p-16382: ++%*5000Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970: ++%5000Lf: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3719:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3719: ++%5000Lf: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3722:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3722: ++%5000Lf: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4935:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4935: ++%5000Lf: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4938:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4938: ++%5000Lf: +infinity:1:10:inf: ++%*5000Lf: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ff.input +new file mode 100644 +index 0000000000000000..b3e73df5d359fca7 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ff.input +@@ -0,0 +1,496 @@ ++%LF::0:-1: ++%*LF::0:-1: ++%LF:-INFINITY:1:9:-inf: ++%*LF:-INFINITY:0:9: ++%LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:-0x1.ffffffffffffffffffffffffffffp16383: ++%*LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:-0x1.ffffffffffffffffffffffffffffp16383: ++%*LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382: ++%*LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%LF:-0.0:1:4:-0x0: ++%*LF:-0.0:0:4: ++%LF:-0:1:2:-0x0: ++%*LF:-0:0:2: ++%LF:-NAN(09A_Zaz):1:13:-nan: ++%*LF:-NAN(09A_Zaz):0:13: ++%LF:-NAN():1:6:-nan: ++%*LF:-NAN():0:6: ++%LF:NAN():1:5:nan: ++%*LF:NAN():0:5: ++%LF:NAN(09A_Zaz):1:12:nan: ++%*LF:NAN(09A_Zaz):0:12: ++%LF:0:1:1:0x0: ++%*LF:0:0:1: ++%LF:0.0:1:3:0x0: ++%*LF:0.0:0:3: ++%LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382: ++%*LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968: ++%LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3717:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3717: ++%LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3720:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3720: ++%LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4933:0x1.ffffffffffffffffffffffffffffp16383: ++%*LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4933: ++%LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4936:0x1.ffffffffffffffffffffffffffffp16383: ++%*LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936: ++%LF:INFINITY:1:8:inf: ++%*LF:INFINITY:0:8: ++%LF:+NAN():1:6:nan: ++%*LF:+NAN():0:6: ++%LF:+NAN(09A_Zaz):1:13:nan: ++%*LF:+NAN(09A_Zaz):0:13: ++%LF:+0:1:2:0x0: ++%*LF:+0:0:2: ++%LF:+0.0:1:4:0x0: ++%*LF:+0.0:0:4: ++%LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383: ++%*LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:0x1.ffffffffffffffffffffffffffffp16383: ++%*LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%LF:+INFINITY:1:9:inf: ++%*LF:+INFINITY:0:9: ++%1LF::0:-1: ++%*1LF::0:-1: ++%1LF:-INFINITY:0:-1: ++%*1LF:-INFINITY:0:-1: ++%1LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1: ++%*1LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1: ++%1LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1: ++%*1LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1: ++%1LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1: ++%*1LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1: ++%1LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1: ++%*1LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1: ++%1LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%*1LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%1LF:-0.0:0:-1: ++%*1LF:-0.0:0:-1: ++%1LF:-0:0:-1: ++%*1LF:-0:0:-1: ++%1LF:-NAN(09A_Zaz):0:-1: ++%*1LF:-NAN(09A_Zaz):0:-1: ++%1LF:-NAN():0:-1: ++%*1LF:-NAN():0:-1: ++%1LF:NAN():0:-1: ++%*1LF:NAN():0:-1: ++%1LF:NAN(09A_Zaz):0:-1: ++%*1LF:NAN(09A_Zaz):0:-1: ++%1LF:0:1:1:0x0: ++%*1LF:0:0:1: ++%1LF:0.0:1:1:0x0: ++%*1LF:0.0:0:1: ++%1LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:1:0x0: ++%*1LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:1: ++%1LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:1:0x1.8p1: ++%*1LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:1: ++%1LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:1:0x0: ++%*1LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:1: ++%1LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:1:0x1: ++%*1LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:1: ++%1LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:1:0x0: ++%*1LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:1: ++%1LF:INFINITY:0:-1: ++%*1LF:INFINITY:0:-1: ++%1LF:+NAN():0:-1: ++%*1LF:+NAN():0:-1: ++%1LF:+NAN(09A_Zaz):0:-1: ++%*1LF:+NAN(09A_Zaz):0:-1: ++%1LF:+0:0:-1: ++%*1LF:+0:0:-1: ++%1LF:+0.0:0:-1: ++%*1LF:+0.0:0:-1: ++%1LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%*1LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%1LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1: ++%*1LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1: ++%1LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1: ++%*1LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1: ++%1LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1: ++%*1LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1: ++%1LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1: ++%*1LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1: ++%1LF:+INFINITY:0:-1: ++%*1LF:+INFINITY:0:-1: ++%2LF::0:-1: ++%*2LF::0:-1: ++%2LF:-INFINITY:0:-1: ++%*2LF:-INFINITY:0:-1: ++%2LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:2:-0x0: ++%*2LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2: ++%2LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:2:-0x1: ++%*2LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:2: ++%2LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:2:-0x0: ++%*2LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:2: ++%2LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:2:-0x1.8p1: ++%*2LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:2: ++%2LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:-0x0: ++%*2LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2LF:-0.0:1:2:-0x0: ++%*2LF:-0.0:0:2: ++%2LF:-0:1:2:-0x0: ++%*2LF:-0:0:2: ++%2LF:-NAN(09A_Zaz):0:-1: ++%*2LF:-NAN(09A_Zaz):0:-1: ++%2LF:-NAN():0:-1: ++%*2LF:-NAN():0:-1: ++%2LF:NAN():0:-1: ++%*2LF:NAN():0:-1: ++%2LF:NAN(09A_Zaz):0:-1: ++%*2LF:NAN(09A_Zaz):0:-1: ++%2LF:0:1:1:0x0: ++%*2LF:0:0:1: ++%2LF:0.0:1:2:0x0: ++%*2LF:0.0:0:2: ++%2LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0: ++%*2LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:2:0x1.2p5: ++%*2LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:2: ++%2LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:2:0x1.8p1: ++%*2LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:2: ++%2LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:2:0x1.6p3: ++%*2LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:2: ++%2LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:2:0x1: ++%*2LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2: ++%2LF:INFINITY:0:-1: ++%*2LF:INFINITY:0:-1: ++%2LF:+NAN():0:-1: ++%*2LF:+NAN():0:-1: ++%2LF:+NAN(09A_Zaz):0:-1: ++%*2LF:+NAN(09A_Zaz):0:-1: ++%2LF:+0:1:2:0x0: ++%*2LF:+0:0:2: ++%2LF:+0.0:1:2:0x0: ++%*2LF:+0.0:0:2: ++%2LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0: ++%*2LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:2:0x1.8p1: ++%*2LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:2: ++%2LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:2:0x0: ++%*2LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:2: ++%2LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:2:0x1: ++%*2LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:2: ++%2LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:2:0x0: ++%*2LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2: ++%2LF:+INFINITY:0:-1: ++%*2LF:+INFINITY:0:-1: ++%3LF::0:-1: ++%*3LF::0:-1: ++%3LF:-INFINITY:0:-1: ++%*3LF:-INFINITY:0:-1: ++%3LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:3:-0x1: ++%*3LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3: ++%3LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:3:-0x1.6p3: ++%*3LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:3: ++%3LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3:-0x1.8p1: ++%*3LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3: ++%3LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3:-0x1.2p5: ++%*3LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3: ++%3LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:-0x0: ++%*3LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3LF:-0.0:1:3:-0x0: ++%*3LF:-0.0:0:3: ++%3LF:-0:1:2:-0x0: ++%*3LF:-0:0:2: ++%3LF:-NAN(09A_Zaz):0:-1: ++%*3LF:-NAN(09A_Zaz):0:-1: ++%3LF:-NAN():0:-1: ++%*3LF:-NAN():0:-1: ++%3LF:NAN():1:3:nan: ++%*3LF:NAN():0:3: ++%3LF:NAN(09A_Zaz):1:3:nan: ++%*3LF:NAN(09A_Zaz):0:3: ++%3LF:0:1:1:0x0: ++%*3LF:0:0:1: ++%3LF:0.0:1:3:0x0: ++%*3LF:0.0:0:3: ++%3LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0: ++%*3LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3:0x1.69p+8: ++%*3LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3: ++%3LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3:0x1.2p5: ++%*3LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3: ++%3LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:3:0x1.d8p6: ++%*3LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:3: ++%3LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:3:0x1.6p3: ++%*3LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3: ++%3LF:INFINITY:1:3:inf: ++%*3LF:INFINITY:0:3: ++%3LF:+NAN():0:-1: ++%*3LF:+NAN():0:-1: ++%3LF:+NAN(09A_Zaz):0:-1: ++%*3LF:+NAN(09A_Zaz):0:-1: ++%3LF:+0:1:2:0x0: ++%*3LF:+0:0:2: ++%3LF:+0.0:1:3:0x0: ++%*3LF:+0.0:0:3: ++%3LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0: ++%*3LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3:0x1.2p5: ++%*3LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3: ++%3LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3:0x1.8p1: ++%*3LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3: ++%3LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:3:0x1.6p3: ++%*3LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:3: ++%3LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:3:0x1: ++%*3LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3: ++%3LF:+INFINITY:0:-1: ++%*3LF:+INFINITY:0:-1: ++%4935LF::0:-1: ++%*4935LF::0:-1: ++%4935LF:-INFINITY:1:9:-inf: ++%*4935LF:-INFINITY:0:9: ++%4935LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4935:-0x1.ffffffffffffffffffffffffffffp16383: ++%*4935LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935: ++%4935LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:-0x1.ffffffffffffffffffffffffffffp16383: ++%*4935LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%4935LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%4935LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%4935LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:-0x1.c8db5d6b5ee81f42213bd561a016p-16383: ++%*4935LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935LF:-0.0:1:4:-0x0: ++%*4935LF:-0.0:0:4: ++%4935LF:-0:1:2:-0x0: ++%*4935LF:-0:0:2: ++%4935LF:-NAN(09A_Zaz):1:13:-nan: ++%*4935LF:-NAN(09A_Zaz):0:13: ++%4935LF:-NAN():1:6:-nan: ++%*4935LF:-NAN():0:6: ++%4935LF:NAN():1:5:nan: ++%*4935LF:NAN():0:5: ++%4935LF:NAN(09A_Zaz):1:12:nan: ++%*4935LF:NAN(09A_Zaz):0:12: ++%4935LF:0:1:1:0x0: ++%*4935LF:0:0:1: ++%4935LF:0.0:1:3:0x0: ++%*4935LF:0.0:0:3: ++%4935LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.f68ae6c2e865bbfbf15b6ab83018p-16383: ++%*4935LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3717:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3717: ++%4935LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3720:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3720: ++%4935LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4933:0x1.ffffffffffffffffffffffffffffp16383: ++%*4935LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4933: ++%4935LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4935:0x1.ffffffffffffffffffffffffffffp16383: ++%*4935LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935: ++%4935LF:INFINITY:1:8:inf: ++%*4935LF:INFINITY:0:8: ++%4935LF:+NAN():1:6:nan: ++%*4935LF:+NAN():0:6: ++%4935LF:+NAN(09A_Zaz):1:13:nan: ++%*4935LF:+NAN(09A_Zaz):0:13: ++%4935LF:+0:1:2:0x0: ++%*4935LF:+0:0:2: ++%4935LF:+0.0:1:4:0x0: ++%*4935LF:+0.0:0:4: ++%4935LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.c8db5d6b5ee81f42213bd561a016p-16383: ++%*4935LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%4935LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%4935LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383: ++%*4935LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%4935LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4935:0x1.ffffffffffffffffffffffffffffp16383: ++%*4935LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935: ++%4935LF:+INFINITY:1:9:inf: ++%*4935LF:+INFINITY:0:9: ++%5000LF::0:-1: ++%*5000LF::0:-1: ++%5000LF:-INFINITY:1:9:-inf: ++%*5000LF:-INFINITY:0:9: ++%5000LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:-0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%5000LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:-0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%5000LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%5000LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%5000LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382: ++%*5000LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000LF:-0.0:1:4:-0x0: ++%*5000LF:-0.0:0:4: ++%5000LF:-0:1:2:-0x0: ++%*5000LF:-0:0:2: ++%5000LF:-NAN(09A_Zaz):1:13:-nan: ++%*5000LF:-NAN(09A_Zaz):0:13: ++%5000LF:-NAN():1:6:-nan: ++%*5000LF:-NAN():0:6: ++%5000LF:NAN():1:5:nan: ++%*5000LF:NAN():0:5: ++%5000LF:NAN(09A_Zaz):1:12:nan: ++%*5000LF:NAN(09A_Zaz):0:12: ++%5000LF:0:1:1:0x0: ++%*5000LF:0:0:1: ++%5000LF:0.0:1:3:0x0: ++%*5000LF:0.0:0:3: ++%5000LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382: ++%*5000LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968: ++%5000LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3717:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3717: ++%5000LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3720:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3720: ++%5000LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4933:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4933: ++%5000LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4936:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936: ++%5000LF:INFINITY:1:8:inf: ++%*5000LF:INFINITY:0:8: ++%5000LF:+NAN():1:6:nan: ++%*5000LF:+NAN():0:6: ++%5000LF:+NAN(09A_Zaz):1:13:nan: ++%*5000LF:+NAN(09A_Zaz):0:13: ++%5000LF:+0:1:2:0x0: ++%*5000LF:+0:0:2: ++%5000LF:+0.0:1:4:0x0: ++%*5000LF:+0.0:0:4: ++%5000LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*5000LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%5000LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%5000LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%5000LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%5000LF:+INFINITY:1:9:inf: ++%*5000LF:+INFINITY:0:9: ++%3LF: :0:-1: ++%*3LF: :0:-1: ++%3LF: -INFINITY:0:-1: ++%*3LF: -INFINITY:0:-1: ++%3LF: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4:-0x1: ++%*3LF: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4: ++%3LF: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4:-0x1.6p3: ++%*3LF: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4: ++%3LF: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:4:-0x1.8p1: ++%*3LF: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:4: ++%3LF: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:4:-0x1.2p5: ++%*3LF: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:4: ++%3LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:-0x0: ++%*3LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3LF: -0.0:1:4:-0x0: ++%*3LF: -0.0:0:4: ++%3LF: -0:1:3:-0x0: ++%*3LF: -0:0:3: ++%3LF: -NAN(09A_Zaz):0:-1: ++%*3LF: -NAN(09A_Zaz):0:-1: ++%3LF: -NAN():0:-1: ++%*3LF: -NAN():0:-1: ++%3LF: NAN():1:4:nan: ++%*3LF: NAN():0:4: ++%3LF: NAN(09A_Zaz):1:4:nan: ++%*3LF: NAN(09A_Zaz):0:4: ++%3LF: 0:1:2:0x0: ++%*3LF: 0:0:2: ++%3LF: 0.0:1:4:0x0: ++%*3LF: 0.0:0:4: ++%3LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0: ++%*3LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3LF: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:4:0x1.69p+8: ++%*3LF: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:4: ++%3LF: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:4:0x1.2p5: ++%*3LF: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:4: ++%3LF: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4:0x1.d8p6: ++%*3LF: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4: ++%3LF: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4:0x1.6p3: ++%*3LF: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4: ++%3LF: INFINITY:1:4:inf: ++%*3LF: INFINITY:0:4: ++%3LF: +NAN():0:-1: ++%*3LF: +NAN():0:-1: ++%3LF: +NAN(09A_Zaz):0:-1: ++%*3LF: +NAN(09A_Zaz):0:-1: ++%3LF: +0:1:3:0x0: ++%*3LF: +0:0:3: ++%3LF: +0.0:1:4:0x0: ++%*3LF: +0.0:0:4: ++%3LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0: ++%*3LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3LF: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:4:0x1.2p5: ++%*3LF: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:4: ++%3LF: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:4:0x1.8p1: ++%*3LF: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:4: ++%3LF: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4:0x1.6p3: ++%*3LF: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4: ++%3LF: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4:0x1: ++%*3LF: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4: ++%3LF: +INFINITY:0:-1: ++%*3LF: +INFINITY:0:-1: ++%5000LF: :0:-1: ++%*5000LF: :0:-1: ++%5000LF: -INFINITY:1:10:-inf: ++%*5000LF: -INFINITY:0:10: ++%5000LF: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4938:-0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4938: ++%5000LF: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4935:-0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4935: ++%5000LF: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3722:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3722: ++%5000LF: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3719:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3719: ++%5000LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:-0x1p-16382: ++%*5000LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970: ++%5000LF: -0.0:1:5:-0x0: ++%*5000LF: -0.0:0:5: ++%5000LF: -0:1:3:-0x0: ++%*5000LF: -0:0:3: ++%5000LF: -NAN(09A_Zaz):1:14:-nan: ++%*5000LF: -NAN(09A_Zaz):0:14: ++%5000LF: -NAN():1:7:-nan: ++%*5000LF: -NAN():0:7: ++%5000LF: NAN():1:6:nan: ++%*5000LF: NAN():0:6: ++%5000LF: NAN(09A_Zaz):1:13:nan: ++%*5000LF: NAN(09A_Zaz):0:13: ++%5000LF: 0:1:2:0x0: ++%*5000LF: 0:0:2: ++%5000LF: 0.0:1:4:0x0: ++%*5000LF: 0.0:0:4: ++%5000LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*5000LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000LF: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%5000LF: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%5000LF: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%5000LF: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%5000LF: INFINITY:1:9:inf: ++%*5000LF: INFINITY:0:9: ++%5000LF: +NAN():1:7:nan: ++%*5000LF: +NAN():0:7: ++%5000LF: +NAN(09A_Zaz):1:14:nan: ++%*5000LF: +NAN(09A_Zaz):0:14: ++%5000LF: +0:1:3:0x0: ++%*5000LF: +0:0:3: ++%5000LF: +0.0:1:5:0x0: ++%*5000LF: +0.0:0:5: ++%5000LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:0x1p-16382: ++%*5000LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970: ++%5000LF: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3719:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3719: ++%5000LF: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3722:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3722: ++%5000LF: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4935:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4935: ++%5000LF: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4938:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4938: ++%5000LF: +INFINITY:1:10:inf: ++%*5000LF: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-g.input +new file mode 100644 +index 0000000000000000..64560b8b9900015b +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-g.input +@@ -0,0 +1,682 @@ ++%Lg::0:-1: ++%*Lg::0:-1: ++%Lg:-infinity:1:9:-inf: ++%*Lg:-infinity:0:9: ++%Lg:-0xf.fffffffffffffffffffffffffff8p+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383: ++%*Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%Lg:-0x2.3456789abcdef0123456789abcdep+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%Lg:-0x2.3456789abcdef0123456789abcdep012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lg:-0x2.3456789abcdef0123456789abcdep012345:0:40: ++%Lg:-0x8p-16385:1:11:-0x1p-16382: ++%*Lg:-0x8p-16385:0:11: ++%Lg:-0x0p+0:1:7:-0x0: ++%*Lg:-0x0p+0:0:7: ++%Lg:-0x0p0:1:6:-0x0: ++%*Lg:-0x0p0:0:6: ++%Lg:-nan(09A_Zaz):1:13:-nan: ++%*Lg:-nan(09A_Zaz):0:13: ++%Lg:-nan():1:6:-nan: ++%*Lg:-nan():0:6: ++%Lg:nan():1:5:nan: ++%*Lg:nan():0:5: ++%Lg:nan(09A_Zaz):1:12:nan: ++%*Lg:nan(09A_Zaz):0:12: ++%Lg:0x0p0:1:5:0x0: ++%*Lg:0x0p0:0:5: ++%Lg:0x0p+0:1:6:0x0: ++%*Lg:0x0p+0:0:6: ++%Lg:0x8p-16385:1:10:0x1p-16382: ++%*Lg:0x8p-16385:0:10: ++%Lg:0x2.3456789abcdef0123456789abcdep012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lg:0x2.3456789abcdef0123456789abcdep012345:0:39: ++%Lg:0x2.3456789abcdef0123456789abcdep+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lg:0x2.3456789abcdef0123456789abcdep+12345:0:39: ++%Lg:0x7.fffffffffffffffffffffffffffcp16381:1:38:0x1.ffffffffffffffffffffffffffffp16383: ++%*Lg:0x7.fffffffffffffffffffffffffffcp16381:0:38: ++%Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:39: ++%Lg:infinity:1:8:inf: ++%*Lg:infinity:0:8: ++%Lg:+nan():1:6:nan: ++%*Lg:+nan():0:6: ++%Lg:+nan(09A_Zaz):1:13:nan: ++%*Lg:+nan(09A_Zaz):0:13: ++%Lg:+0x0p0:1:6:0x0: ++%*Lg:+0x0p0:0:6: ++%Lg:+0x0p+0:1:7:0x0: ++%*Lg:+0x0p+0:0:7: ++%Lg:+0x8p-16385:1:11:0x1p-16382: ++%*Lg:+0x8p-16385:0:11: ++%Lg:+0x2.3456789abcdef0123456789abcdep012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lg:+0x2.3456789abcdef0123456789abcdep012345:0:40: ++%Lg:+0x2.3456789abcdef0123456789abcdep+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%Lg:+0xf.fffffffffffffffffffffffffff8p+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%Lg:+infinity:1:9:inf: ++%*Lg:+infinity:0:9: ++%1Lg::0:-1: ++%*1Lg::0:-1: ++%1Lg:-infinity:0:-1: ++%*1Lg:-infinity:0:-1: ++%1Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%*1Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%1Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++%*1Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++%1Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%*1Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%1Lg:-0x2.3456789abcdef0123456789abcdep012345:0:-1: ++%*1Lg:-0x2.3456789abcdef0123456789abcdep012345:0:-1: ++%1Lg:-0x8p-16385:0:-1: ++%*1Lg:-0x8p-16385:0:-1: ++%1Lg:-0x0p+0:0:-1: ++%*1Lg:-0x0p+0:0:-1: ++%1Lg:-0x0p0:0:-1: ++%*1Lg:-0x0p0:0:-1: ++%1Lg:-nan(09A_Zaz):0:-1: ++%*1Lg:-nan(09A_Zaz):0:-1: ++%1Lg:-nan():0:-1: ++%*1Lg:-nan():0:-1: ++%1Lg:nan():0:-1: ++%*1Lg:nan():0:-1: ++%1Lg:nan(09A_Zaz):0:-1: ++%*1Lg:nan(09A_Zaz):0:-1: ++%1Lg:0x0p0:1:1:0x0: ++%*1Lg:0x0p0:0:1: ++%1Lg:0x0p+0:1:1:0x0: ++%*1Lg:0x0p+0:0:1: ++%1Lg:0x8p-16385:1:1:0x0: ++%*1Lg:0x8p-16385:0:1: ++%1Lg:0x2.3456789abcdef0123456789abcdep012345:1:1:0x0: ++%*1Lg:0x2.3456789abcdef0123456789abcdep012345:0:1: ++%1Lg:0x2.3456789abcdef0123456789abcdep+12345:1:1:0x0: ++%*1Lg:0x2.3456789abcdef0123456789abcdep+12345:0:1: ++%1Lg:0x7.fffffffffffffffffffffffffffcp16381:1:1:0x0: ++%*1Lg:0x7.fffffffffffffffffffffffffffcp16381:0:1: ++%1Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:1:0x0: ++%*1Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:1: ++%1Lg:infinity:0:-1: ++%*1Lg:infinity:0:-1: ++%1Lg:+nan():0:-1: ++%*1Lg:+nan():0:-1: ++%1Lg:+nan(09A_Zaz):0:-1: ++%*1Lg:+nan(09A_Zaz):0:-1: ++%1Lg:+0x0p0:0:-1: ++%*1Lg:+0x0p0:0:-1: ++%1Lg:+0x0p+0:0:-1: ++%*1Lg:+0x0p+0:0:-1: ++%1Lg:+0x8p-16385:0:-1: ++%*1Lg:+0x8p-16385:0:-1: ++%1Lg:+0x2.3456789abcdef0123456789abcdep012345:0:-1: ++%*1Lg:+0x2.3456789abcdef0123456789abcdep012345:0:-1: ++%1Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%*1Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%1Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++%*1Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++%1Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%*1Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%1Lg:+infinity:0:-1: ++%*1Lg:+infinity:0:-1: ++%2Lg::0:-1: ++%*2Lg::0:-1: ++%2Lg:-infinity:0:-1: ++%*2Lg:-infinity:0:-1: ++%2Lg:-0xf.fffffffffffffffffffffffffff8p+16380:1:2:-0x0: ++%*2Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:2: ++%2Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:2:-0x0: ++%*2Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:2: ++%2Lg:-0x2.3456789abcdef0123456789abcdep+12345:1:2:-0x0: ++%*2Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:2: ++%2Lg:-0x2.3456789abcdef0123456789abcdep012345:1:2:-0x0: ++%*2Lg:-0x2.3456789abcdef0123456789abcdep012345:0:2: ++%2Lg:-0x8p-16385:1:2:-0x0: ++%*2Lg:-0x8p-16385:0:2: ++%2Lg:-0x0p+0:1:2:-0x0: ++%*2Lg:-0x0p+0:0:2: ++%2Lg:-0x0p0:1:2:-0x0: ++%*2Lg:-0x0p0:0:2: ++%2Lg:-nan(09A_Zaz):0:-1: ++%*2Lg:-nan(09A_Zaz):0:-1: ++%2Lg:-nan():0:-1: ++%*2Lg:-nan():0:-1: ++%2Lg:nan():0:-1: ++%*2Lg:nan():0:-1: ++%2Lg:nan(09A_Zaz):0:-1: ++%*2Lg:nan(09A_Zaz):0:-1: ++# BZ12701 %2Lg:0x0p0:0:-1: ++# BZ12701 %*2Lg:0x0p0:0:-1: ++# BZ12701 %2Lg:0x0p+0:0:-1: ++# BZ12701 %*2Lg:0x0p+0:0:-1: ++# BZ12701 %2Lg:0x8p-16385:0:-1: ++# BZ12701 %*2Lg:0x8p-16385:0:-1: ++# BZ12701 %2Lg:0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %*2Lg:0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %2Lg:0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*2Lg:0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %2Lg:0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %*2Lg:0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %2Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*2Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%2Lg:infinity:0:-1: ++%*2Lg:infinity:0:-1: ++%2Lg:+nan():0:-1: ++%*2Lg:+nan():0:-1: ++%2Lg:+nan(09A_Zaz):0:-1: ++%*2Lg:+nan(09A_Zaz):0:-1: ++%2Lg:+0x0p0:1:2:0x0: ++%*2Lg:+0x0p0:0:2: ++%2Lg:+0x0p+0:1:2:0x0: ++%*2Lg:+0x0p+0:0:2: ++%2Lg:+0x8p-16385:1:2:0x0: ++%*2Lg:+0x8p-16385:0:2: ++%2Lg:+0x2.3456789abcdef0123456789abcdep012345:1:2:0x0: ++%*2Lg:+0x2.3456789abcdef0123456789abcdep012345:0:2: ++%2Lg:+0x2.3456789abcdef0123456789abcdep+12345:1:2:0x0: ++%*2Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:2: ++%2Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:2:0x0: ++%*2Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:2: ++%2Lg:+0xf.fffffffffffffffffffffffffff8p+16380:1:2:0x0: ++%*2Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:2: ++%2Lg:+infinity:0:-1: ++%*2Lg:+infinity:0:-1: ++%3Lg::0:-1: ++%*3Lg::0:-1: ++%3Lg:-infinity:0:-1: ++%*3Lg:-infinity:0:-1: ++# BZ12701 %3Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*3Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %3Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %*3Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %3Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*3Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %3Lg:-0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %*3Lg:-0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %3Lg:-0x8p-16385:0:-1: ++# BZ12701 %*3Lg:-0x8p-16385:0:-1: ++# BZ12701 %3Lg:-0x0p+0:0:-1: ++# BZ12701 %*3Lg:-0x0p+0:0:-1: ++# BZ12701 %3Lg:-0x0p0:0:-1: ++# BZ12701 %*3Lg:-0x0p0:0:-1: ++%3Lg:-nan(09A_Zaz):0:-1: ++%*3Lg:-nan(09A_Zaz):0:-1: ++%3Lg:-nan():0:-1: ++%*3Lg:-nan():0:-1: ++%3Lg:nan():1:3:nan: ++%*3Lg:nan():0:3: ++%3Lg:nan(09A_Zaz):1:3:nan: ++%*3Lg:nan(09A_Zaz):0:3: ++%3Lg:0x0p0:1:3:0x0: ++%*3Lg:0x0p0:0:3: ++%3Lg:0x0p+0:1:3:0x0: ++%*3Lg:0x0p+0:0:3: ++%3Lg:0x8p-16385:1:3:0x1p3: ++%*3Lg:0x8p-16385:0:3: ++%3Lg:0x2.3456789abcdef0123456789abcdep012345:1:3:0x1p1: ++%*3Lg:0x2.3456789abcdef0123456789abcdep012345:0:3: ++%3Lg:0x2.3456789abcdef0123456789abcdep+12345:1:3:0x1p1: ++%*3Lg:0x2.3456789abcdef0123456789abcdep+12345:0:3: ++%3Lg:0x7.fffffffffffffffffffffffffffcp16381:1:3:0x1.cp2: ++%*3Lg:0x7.fffffffffffffffffffffffffffcp16381:0:3: ++%3Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:3:0x1.ep3: ++%*3Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:3: ++%3Lg:infinity:1:3:inf: ++%*3Lg:infinity:0:3: ++%3Lg:+nan():0:-1: ++%*3Lg:+nan():0:-1: ++%3Lg:+nan(09A_Zaz):0:-1: ++%*3Lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %3Lg:+0x0p0:0:-1: ++# BZ12701 %*3Lg:+0x0p0:0:-1: ++# BZ12701 %3Lg:+0x0p+0:0:-1: ++# BZ12701 %*3Lg:+0x0p+0:0:-1: ++# BZ12701 %3Lg:+0x8p-16385:0:-1: ++# BZ12701 %*3Lg:+0x8p-16385:0:-1: ++# BZ12701 %3Lg:+0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %*3Lg:+0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %3Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*3Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %3Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %*3Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %3Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*3Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%3Lg:+infinity:0:-1: ++%*3Lg:+infinity:0:-1: ++%4Lg::0:-1: ++%*4Lg::0:-1: ++%4Lg:-infinity:1:4:-inf: ++%*4Lg:-infinity:0:4: ++%4Lg:-0xf.fffffffffffffffffffffffffff8p+16380:1:4:-0x1.ep3: ++%*4Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:4: ++%4Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:4:-0x1.cp2: ++%*4Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:4: ++%4Lg:-0x2.3456789abcdef0123456789abcdep+12345:1:4:-0x1p1: ++%*4Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:4: ++%4Lg:-0x2.3456789abcdef0123456789abcdep012345:1:4:-0x1p1: ++%*4Lg:-0x2.3456789abcdef0123456789abcdep012345:0:4: ++%4Lg:-0x8p-16385:1:4:-0x1p3: ++%*4Lg:-0x8p-16385:0:4: ++%4Lg:-0x0p+0:1:4:-0x0: ++%*4Lg:-0x0p+0:0:4: ++%4Lg:-0x0p0:1:4:-0x0: ++%*4Lg:-0x0p0:0:4: ++%4Lg:-nan(09A_Zaz):1:4:-nan: ++%*4Lg:-nan(09A_Zaz):0:4: ++%4Lg:-nan():1:4:-nan: ++%*4Lg:-nan():0:4: ++%4Lg:nan():0:-1: ++%*4Lg:nan():0:-1: ++%4Lg:nan(09A_Zaz):0:-1: ++%*4Lg:nan(09A_Zaz):0:-1: ++# BZ12701 %4Lg:0x0p0:0:-1: ++# BZ12701 %*4Lg:0x0p0:0:-1: ++# BZ12701 %4Lg:0x0p+0:0:-1: ++# BZ12701 %*4Lg:0x0p+0:0:-1: ++# BZ12701 %4Lg:0x8p-16385:0:-1: ++# BZ12701 %*4Lg:0x8p-16385:0:-1: ++%4Lg:0x2.3456789abcdef0123456789abcdep012345:1:4:0x1p1: ++%*4Lg:0x2.3456789abcdef0123456789abcdep012345:0:4: ++%4Lg:0x2.3456789abcdef0123456789abcdep+12345:1:4:0x1p1: ++%*4Lg:0x2.3456789abcdef0123456789abcdep+12345:0:4: ++%4Lg:0x7.fffffffffffffffffffffffffffcp16381:1:4:0x1.cp2: ++%*4Lg:0x7.fffffffffffffffffffffffffffcp16381:0:4: ++%4Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:4:0x1.ep3: ++%*4Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:4: ++%4Lg:infinity:0:-1: ++%*4Lg:infinity:0:-1: ++%4Lg:+nan():1:4:nan: ++%*4Lg:+nan():0:4: ++%4Lg:+nan(09A_Zaz):1:4:nan: ++%*4Lg:+nan(09A_Zaz):0:4: ++%4Lg:+0x0p0:1:4:0x0: ++%*4Lg:+0x0p0:0:4: ++%4Lg:+0x0p+0:1:4:0x0: ++%*4Lg:+0x0p+0:0:4: ++%4Lg:+0x8p-16385:1:4:0x1p3: ++%*4Lg:+0x8p-16385:0:4: ++%4Lg:+0x2.3456789abcdef0123456789abcdep012345:1:4:0x1p1: ++%*4Lg:+0x2.3456789abcdef0123456789abcdep012345:0:4: ++%4Lg:+0x2.3456789abcdef0123456789abcdep+12345:1:4:0x1p1: ++%*4Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:4: ++%4Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:4:0x1.cp2: ++%*4Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:4: ++%4Lg:+0xf.fffffffffffffffffffffffffff8p+16380:1:4:0x1.ep3: ++%*4Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:4: ++%4Lg:+infinity:1:4:inf: ++%*4Lg:+infinity:0:4: ++%5Lg::0:-1: ++%*5Lg::0:-1: ++%5Lg:-infinity:0:-1: ++%*5Lg:-infinity:0:-1: ++%5Lg:-0xf.fffffffffffffffffffffffffff8p+16380:1:5:-0x1.ep3: ++%*5Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:5: ++%5Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:5:-0x1.cp2: ++%*5Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:5: ++%5Lg:-0x2.3456789abcdef0123456789abcdep+12345:1:5:-0x1p1: ++%*5Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:5: ++%5Lg:-0x2.3456789abcdef0123456789abcdep012345:1:5:-0x1p1: ++%*5Lg:-0x2.3456789abcdef0123456789abcdep012345:0:5: ++# BZ12701 %5Lg:-0x8p-16385:0:-1: ++# BZ12701 %*5Lg:-0x8p-16385:0:-1: ++# BZ12701 %5Lg:-0x0p+0:0:-1: ++# BZ12701 %*5Lg:-0x0p+0:0:-1: ++# BZ12701 %5Lg:-0x0p0:0:-1: ++# BZ12701 %*5Lg:-0x0p0:0:-1: ++%5Lg:-nan(09A_Zaz):0:-1: ++%*5Lg:-nan(09A_Zaz):0:-1: ++%5Lg:-nan():0:-1: ++%*5Lg:-nan():0:-1: ++%5Lg:nan():1:5:nan: ++%*5Lg:nan():0:5: ++%5Lg:nan(09A_Zaz):0:-1: ++%*5Lg:nan(09A_Zaz):0:-1: ++%5Lg:0x0p0:1:5:0x0: ++%*5Lg:0x0p0:0:5: ++# BZ12701 %5Lg:0x0p+0:0:-1: ++# BZ12701 %*5Lg:0x0p+0:0:-1: ++# BZ12701 %5Lg:0x8p-16385:0:-1: ++# BZ12701 %*5Lg:0x8p-16385:0:-1: ++%5Lg:0x2.3456789abcdef0123456789abcdep012345:1:5:0x1.18p1: ++%*5Lg:0x2.3456789abcdef0123456789abcdep012345:0:5: ++%5Lg:0x2.3456789abcdef0123456789abcdep+12345:1:5:0x1.18p1: ++%*5Lg:0x2.3456789abcdef0123456789abcdep+12345:0:5: ++%5Lg:0x7.fffffffffffffffffffffffffffcp16381:1:5:0x1.fcp2: ++%*5Lg:0x7.fffffffffffffffffffffffffffcp16381:0:5: ++%5Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:5:0x1.fep3: ++%*5Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:5: ++%5Lg:infinity:0:-1: ++%*5Lg:infinity:0:-1: ++%5Lg:+nan():0:-1: ++%*5Lg:+nan():0:-1: ++%5Lg:+nan(09A_Zaz):0:-1: ++%*5Lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %5Lg:+0x0p0:0:-1: ++# BZ12701 %*5Lg:+0x0p0:0:-1: ++# BZ12701 %5Lg:+0x0p+0:0:-1: ++# BZ12701 %*5Lg:+0x0p+0:0:-1: ++# BZ12701 %5Lg:+0x8p-16385:0:-1: ++# BZ12701 %*5Lg:+0x8p-16385:0:-1: ++%5Lg:+0x2.3456789abcdef0123456789abcdep012345:1:5:0x1p1: ++%*5Lg:+0x2.3456789abcdef0123456789abcdep012345:0:5: ++%5Lg:+0x2.3456789abcdef0123456789abcdep+12345:1:5:0x1p1: ++%*5Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:5: ++%5Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:5:0x1.cp2: ++%*5Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:5: ++%5Lg:+0xf.fffffffffffffffffffffffffff8p+16380:1:5:0x1.ep3: ++%*5Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:5: ++%5Lg:+infinity:0:-1: ++%*5Lg:+infinity:0:-1: ++%6Lg::0:-1: ++%*6Lg::0:-1: ++%6Lg:-infinity:0:-1: ++%*6Lg:-infinity:0:-1: ++%6Lg:-0xf.fffffffffffffffffffffffffff8p+16380:1:6:-0x1.fep3: ++%*6Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%6Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:6:-0x1.fcp2: ++%*6Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%6Lg:-0x2.3456789abcdef0123456789abcdep+12345:1:6:-0x1.18p1: ++%*6Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%6Lg:-0x2.3456789abcdef0123456789abcdep012345:1:6:-0x1.18p1: ++%*6Lg:-0x2.3456789abcdef0123456789abcdep012345:0:6: ++# BZ12701 %6Lg:-0x8p-16385:0:-1: ++# BZ12701 %*6Lg:-0x8p-16385:0:-1: ++# BZ12701 %6Lg:-0x0p+0:0:-1: ++# BZ12701 %*6Lg:-0x0p+0:0:-1: ++%6Lg:-0x0p0:1:6:-0x0: ++%*6Lg:-0x0p0:0:6: ++%6Lg:-nan(09A_Zaz):0:-1: ++%*6Lg:-nan(09A_Zaz):0:-1: ++%6Lg:-nan():1:6:-nan: ++%*6Lg:-nan():0:6: ++%6Lg:nan():1:5:nan: ++%*6Lg:nan():0:5: ++%6Lg:nan(09A_Zaz):0:-1: ++%*6Lg:nan(09A_Zaz):0:-1: ++%6Lg:0x0p0:1:5:0x0: ++%*6Lg:0x0p0:0:5: ++%6Lg:0x0p+0:1:6:0x0: ++%*6Lg:0x0p+0:0:6: ++%6Lg:0x8p-16385:1:6:0x1p2: ++%*6Lg:0x8p-16385:0:6: ++%6Lg:0x2.3456789abcdef0123456789abcdep012345:1:6:0x1.1ap1: ++%*6Lg:0x2.3456789abcdef0123456789abcdep012345:0:6: ++%6Lg:0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1.1ap1: ++%*6Lg:0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%6Lg:0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.ffcp2: ++%*6Lg:0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%6Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.ffep3: ++%*6Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%6Lg:infinity:0:-1: ++%*6Lg:infinity:0:-1: ++%6Lg:+nan():1:6:nan: ++%*6Lg:+nan():0:6: ++%6Lg:+nan(09A_Zaz):0:-1: ++%*6Lg:+nan(09A_Zaz):0:-1: ++%6Lg:+0x0p0:1:6:0x0: ++%*6Lg:+0x0p0:0:6: ++# BZ12701 %6Lg:+0x0p+0:0:-1: ++# BZ12701 %*6Lg:+0x0p+0:0:-1: ++# BZ12701 %6Lg:+0x8p-16385:0:-1: ++# BZ12701 %*6Lg:+0x8p-16385:0:-1: ++%6Lg:+0x2.3456789abcdef0123456789abcdep012345:1:6:0x1.18p1: ++%*6Lg:+0x2.3456789abcdef0123456789abcdep012345:0:6: ++%6Lg:+0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1.18p1: ++%*6Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%6Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.fcp2: ++%*6Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%6Lg:+0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.fep3: ++%*6Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%6Lg:+infinity:0:-1: ++%*6Lg:+infinity:0:-1: ++%35Lg::0:-1: ++%*35Lg::0:-1: ++%35Lg:-infinity:1:9:-inf: ++%*35Lg:-infinity:0:9: ++# BZ12701 %35Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*35Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%35Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:35:-0x1.ffffffffffffffffffffffffffffp3: ++%*35Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:35: ++# BZ12701 %35Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*35Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%35Lg:-0x2.3456789abcdef0123456789abcdep012345:1:35:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1: ++%*35Lg:-0x2.3456789abcdef0123456789abcdep012345:0:35: ++%35Lg:-0x8p-16385:1:11:-0x1p-16382: ++%*35Lg:-0x8p-16385:0:11: ++%35Lg:-0x0p+0:1:7:-0x0: ++%*35Lg:-0x0p+0:0:7: ++%35Lg:-0x0p0:1:6:-0x0: ++%*35Lg:-0x0p0:0:6: ++%35Lg:-nan(09A_Zaz):1:13:-nan: ++%*35Lg:-nan(09A_Zaz):0:13: ++%35Lg:-nan():1:6:-nan: ++%*35Lg:-nan():0:6: ++%35Lg:nan():1:5:nan: ++%*35Lg:nan():0:5: ++%35Lg:nan(09A_Zaz):1:12:nan: ++%*35Lg:nan(09A_Zaz):0:12: ++%35Lg:0x0p0:1:5:0x0: ++%*35Lg:0x0p0:0:5: ++%35Lg:0x0p+0:1:6:0x0: ++%*35Lg:0x0p+0:0:6: ++%35Lg:0x8p-16385:1:10:0x1p-16382: ++%*35Lg:0x8p-16385:0:10: ++%35Lg:0x2.3456789abcdef0123456789abcdep012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2: ++%*35Lg:0x2.3456789abcdef0123456789abcdep012345:0:35: ++%35Lg:0x2.3456789abcdef0123456789abcdep+12345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2: ++%*35Lg:0x2.3456789abcdef0123456789abcdep+12345:0:35: ++%35Lg:0x7.fffffffffffffffffffffffffffcp16381:1:35:0x1.ffffffffffffffffffffffffffffp18: ++%*35Lg:0x7.fffffffffffffffffffffffffffcp16381:0:35: ++%35Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:35:0x1.ffffffffffffffffffffffffffffp4: ++%*35Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:35: ++%35Lg:infinity:1:8:inf: ++%*35Lg:infinity:0:8: ++%35Lg:+nan():1:6:nan: ++%*35Lg:+nan():0:6: ++%35Lg:+nan(09A_Zaz):1:13:nan: ++%*35Lg:+nan(09A_Zaz):0:13: ++%35Lg:+0x0p0:1:6:0x0: ++%*35Lg:+0x0p0:0:6: ++%35Lg:+0x0p+0:1:7:0x0: ++%*35Lg:+0x0p+0:0:7: ++%35Lg:+0x8p-16385:1:11:0x1p-16382: ++%*35Lg:+0x8p-16385:0:11: ++%35Lg:+0x2.3456789abcdef0123456789abcdep012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1: ++%*35Lg:+0x2.3456789abcdef0123456789abcdep012345:0:35: ++# BZ12701 %35Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*35Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%35Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:35:0x1.ffffffffffffffffffffffffffffp3: ++%*35Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:35: ++# BZ12701 %35Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*35Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%35Lg:+infinity:1:9:inf: ++%*35Lg:+infinity:0:9: ++%53Lg::0:-1: ++%*53Lg::0:-1: ++%53Lg:-infinity:1:9:-inf: ++%*53Lg:-infinity:0:9: ++%53Lg:-0xf.fffffffffffffffffffffffffff8p+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%53Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%53Lg:-0x2.3456789abcdef0123456789abcdep+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%53Lg:-0x2.3456789abcdef0123456789abcdep012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg:-0x2.3456789abcdef0123456789abcdep012345:0:40: ++%53Lg:-0x8p-16385:1:11:-0x1p-16382: ++%*53Lg:-0x8p-16385:0:11: ++%53Lg:-0x0p+0:1:7:-0x0: ++%*53Lg:-0x0p+0:0:7: ++%53Lg:-0x0p0:1:6:-0x0: ++%*53Lg:-0x0p0:0:6: ++%53Lg:-nan(09A_Zaz):1:13:-nan: ++%*53Lg:-nan(09A_Zaz):0:13: ++%53Lg:-nan():1:6:-nan: ++%*53Lg:-nan():0:6: ++%53Lg:nan():1:5:nan: ++%*53Lg:nan():0:5: ++%53Lg:nan(09A_Zaz):1:12:nan: ++%*53Lg:nan(09A_Zaz):0:12: ++%53Lg:0x0p0:1:5:0x0: ++%*53Lg:0x0p0:0:5: ++%53Lg:0x0p+0:1:6:0x0: ++%*53Lg:0x0p+0:0:6: ++%53Lg:0x8p-16385:1:10:0x1p-16382: ++%*53Lg:0x8p-16385:0:10: ++%53Lg:0x2.3456789abcdef0123456789abcdep012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg:0x2.3456789abcdef0123456789abcdep012345:0:39: ++%53Lg:0x2.3456789abcdef0123456789abcdep+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg:0x2.3456789abcdef0123456789abcdep+12345:0:39: ++%53Lg:0x7.fffffffffffffffffffffffffffcp16381:1:38:0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg:0x7.fffffffffffffffffffffffffffcp16381:0:38: ++%53Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:39: ++%53Lg:infinity:1:8:inf: ++%*53Lg:infinity:0:8: ++%53Lg:+nan():1:6:nan: ++%*53Lg:+nan():0:6: ++%53Lg:+nan(09A_Zaz):1:13:nan: ++%*53Lg:+nan(09A_Zaz):0:13: ++%53Lg:+0x0p0:1:6:0x0: ++%*53Lg:+0x0p0:0:6: ++%53Lg:+0x0p+0:1:7:0x0: ++%*53Lg:+0x0p+0:0:7: ++%53Lg:+0x8p-16385:1:11:0x1p-16382: ++%*53Lg:+0x8p-16385:0:11: ++%53Lg:+0x2.3456789abcdef0123456789abcdep012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg:+0x2.3456789abcdef0123456789abcdep012345:0:40: ++%53Lg:+0x2.3456789abcdef0123456789abcdep+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%53Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%53Lg:+0xf.fffffffffffffffffffffffffff8p+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%53Lg:+infinity:1:9:inf: ++%*53Lg:+infinity:0:9: ++%5Lg: :0:-1: ++%*5Lg: :0:-1: ++%5Lg: -infinity:0:-1: ++%*5Lg: -infinity:0:-1: ++%5Lg: -0xf.fffffffffffffffffffffffffff8p+16380:1:6:-0x1.ep3: ++%*5Lg: -0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%5Lg: -0x7.fffffffffffffffffffffffffffcp16381:1:6:-0x1.cp2: ++%*5Lg: -0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%5Lg: -0x2.3456789abcdef0123456789abcdep+12345:1:6:-0x1p1: ++%*5Lg: -0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%5Lg: -0x2.3456789abcdef0123456789abcdep012345:1:6:-0x1p1: ++%*5Lg: -0x2.3456789abcdef0123456789abcdep012345:0:6: ++# BZ12701 %5Lg: -0x8p-16385:0:-1: ++# BZ12701 %*5Lg: -0x8p-16385:0:-1: ++# BZ12701 %5Lg: -0x0p+0:0:-1: ++# BZ12701 %*5Lg: -0x0p+0:0:-1: ++# BZ12701 %5Lg: -0x0p0:0:-1: ++# BZ12701 %*5Lg: -0x0p0:0:-1: ++%5Lg: -nan(09A_Zaz):0:-1: ++%*5Lg: -nan(09A_Zaz):0:-1: ++%5Lg: -nan():0:-1: ++%*5Lg: -nan():0:-1: ++%5Lg: nan():1:6:nan: ++%*5Lg: nan():0:6: ++%5Lg: nan(09A_Zaz):0:-1: ++%*5Lg: nan(09A_Zaz):0:-1: ++%5Lg: 0x0p0:1:6:0x0: ++%*5Lg: 0x0p0:0:6: ++# BZ12701 %5Lg: 0x0p+0:0:-1: ++# BZ12701 %*5Lg: 0x0p+0:0:-1: ++# BZ12701 %5Lg: 0x8p-16385:0:-1: ++# BZ12701 %*5Lg: 0x8p-16385:0:-1: ++%5Lg: 0x2.3456789abcdef0123456789abcdep012345:1:6:0x1.18p1: ++%*5Lg: 0x2.3456789abcdef0123456789abcdep012345:0:6: ++%5Lg: 0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1.18p1: ++%*5Lg: 0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%5Lg: 0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.fcp2: ++%*5Lg: 0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%5Lg: 0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.fep3: ++%*5Lg: 0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%5Lg: infinity:0:-1: ++%*5Lg: infinity:0:-1: ++%5Lg: +nan():0:-1: ++%*5Lg: +nan():0:-1: ++%5Lg: +nan(09A_Zaz):0:-1: ++%*5Lg: +nan(09A_Zaz):0:-1: ++# BZ12701 %5Lg: +0x0p0:0:-1: ++# BZ12701 %*5Lg: +0x0p0:0:-1: ++# BZ12701 %5Lg: +0x0p+0:0:-1: ++# BZ12701 %*5Lg: +0x0p+0:0:-1: ++# BZ12701 %5Lg: +0x8p-16385:0:-1: ++# BZ12701 %*5Lg: +0x8p-16385:0:-1: ++%5Lg: +0x2.3456789abcdef0123456789abcdep012345:1:6:0x1p1: ++%*5Lg: +0x2.3456789abcdef0123456789abcdep012345:0:6: ++%5Lg: +0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1p1: ++%*5Lg: +0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%5Lg: +0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.cp2: ++%*5Lg: +0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%5Lg: +0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.ep3: ++%*5Lg: +0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%5Lg: +infinity:0:-1: ++%*5Lg: +infinity:0:-1: ++%53Lg: :0:-1: ++%*53Lg: :0:-1: ++%53Lg: -infinity:1:10:-inf: ++%*53Lg: -infinity:0:10: ++%53Lg: -0xf.fffffffffffffffffffffffffff8p+16380:1:41:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg: -0xf.fffffffffffffffffffffffffff8p+16380:0:41: ++%53Lg: -0x7.fffffffffffffffffffffffffffcp16381:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg: -0x7.fffffffffffffffffffffffffffcp16381:0:40: ++%53Lg: -0x2.3456789abcdef0123456789abcdep+12345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg: -0x2.3456789abcdef0123456789abcdep+12345:0:41: ++%53Lg: -0x2.3456789abcdef0123456789abcdep012345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg: -0x2.3456789abcdef0123456789abcdep012345:0:41: ++%53Lg: -0x8p-16385:1:12:-0x1p-16382: ++%*53Lg: -0x8p-16385:0:12: ++%53Lg: -0x0p+0:1:8:-0x0: ++%*53Lg: -0x0p+0:0:8: ++%53Lg: -0x0p0:1:7:-0x0: ++%*53Lg: -0x0p0:0:7: ++%53Lg: -nan(09A_Zaz):1:14:-nan: ++%*53Lg: -nan(09A_Zaz):0:14: ++%53Lg: -nan():1:7:-nan: ++%*53Lg: -nan():0:7: ++%53Lg: nan():1:6:nan: ++%*53Lg: nan():0:6: ++%53Lg: nan(09A_Zaz):1:13:nan: ++%*53Lg: nan(09A_Zaz):0:13: ++%53Lg: 0x0p0:1:6:0x0: ++%*53Lg: 0x0p0:0:6: ++%53Lg: 0x0p+0:1:7:0x0: ++%*53Lg: 0x0p+0:0:7: ++%53Lg: 0x8p-16385:1:11:0x1p-16382: ++%*53Lg: 0x8p-16385:0:11: ++%53Lg: 0x2.3456789abcdef0123456789abcdep012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg: 0x2.3456789abcdef0123456789abcdep012345:0:40: ++%53Lg: 0x2.3456789abcdef0123456789abcdep+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg: 0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%53Lg: 0x7.fffffffffffffffffffffffffffcp16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg: 0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%53Lg: 0xf.fffffffffffffffffffffffffff8p+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg: 0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%53Lg: infinity:1:9:inf: ++%*53Lg: infinity:0:9: ++%53Lg: +nan():1:7:nan: ++%*53Lg: +nan():0:7: ++%53Lg: +nan(09A_Zaz):1:14:nan: ++%*53Lg: +nan(09A_Zaz):0:14: ++%53Lg: +0x0p0:1:7:0x0: ++%*53Lg: +0x0p0:0:7: ++%53Lg: +0x0p+0:1:8:0x0: ++%*53Lg: +0x0p+0:0:8: ++%53Lg: +0x8p-16385:1:12:0x1p-16382: ++%*53Lg: +0x8p-16385:0:12: ++%53Lg: +0x2.3456789abcdef0123456789abcdep012345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg: +0x2.3456789abcdef0123456789abcdep012345:0:41: ++%53Lg: +0x2.3456789abcdef0123456789abcdep+12345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg: +0x2.3456789abcdef0123456789abcdep+12345:0:41: ++%53Lg: +0x7.fffffffffffffffffffffffffffcp16381:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg: +0x7.fffffffffffffffffffffffffffcp16381:0:40: ++%53Lg: +0xf.fffffffffffffffffffffffffff8p+16380:1:41:0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg: +0xf.fffffffffffffffffffffffffff8p+16380:0:41: ++%53Lg: +infinity:1:10:inf: ++%*53Lg: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-gg.input +new file mode 100644 +index 0000000000000000..7b370c54a727857a +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-gg.input +@@ -0,0 +1,682 @@ ++%LG::0:-1: ++%*LG::0:-1: ++%LG:-INFINITY:1:9:-inf: ++%*LG:-INFINITY:0:9: ++%LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383: ++%*LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%LG:-0X8P-16385:1:11:-0x1p-16382: ++%*LG:-0X8P-16385:0:11: ++%LG:-0X0P+0:1:7:-0x0: ++%*LG:-0X0P+0:0:7: ++%LG:-0X0P0:1:6:-0x0: ++%*LG:-0X0P0:0:6: ++%LG:-NAN(09A_Zaz):1:13:-nan: ++%*LG:-NAN(09A_Zaz):0:13: ++%LG:-NAN():1:6:-nan: ++%*LG:-NAN():0:6: ++%LG:NAN():1:5:nan: ++%*LG:NAN():0:5: ++%LG:NAN(09A_Zaz):1:12:nan: ++%*LG:NAN(09A_Zaz):0:12: ++%LG:0X0P0:1:5:0x0: ++%*LG:0X0P0:0:5: ++%LG:0X0P+0:1:6:0x0: ++%*LG:0X0P+0:0:6: ++%LG:0X8P-16385:1:10:0x1p-16382: ++%*LG:0X8P-16385:0:10: ++%LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:39: ++%LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:39: ++%LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:38:0x1.ffffffffffffffffffffffffffffp16383: ++%*LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:38: ++%LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39: ++%LG:INFINITY:1:8:inf: ++%*LG:INFINITY:0:8: ++%LG:+NAN():1:6:nan: ++%*LG:+NAN():0:6: ++%LG:+NAN(09A_Zaz):1:13:nan: ++%*LG:+NAN(09A_Zaz):0:13: ++%LG:+0X0P0:1:6:0x0: ++%*LG:+0X0P0:0:6: ++%LG:+0X0P+0:1:7:0x0: ++%*LG:+0X0P+0:0:7: ++%LG:+0X8P-16385:1:11:0x1p-16382: ++%*LG:+0X8P-16385:0:11: ++%LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%LG:+INFINITY:1:9:inf: ++%*LG:+INFINITY:0:9: ++%1LG::0:-1: ++%*1LG::0:-1: ++%1LG:-INFINITY:0:-1: ++%*1LG:-INFINITY:0:-1: ++%1LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%*1LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%1LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++%*1LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++%1LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%*1LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%1LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++%*1LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++%1LG:-0X8P-16385:0:-1: ++%*1LG:-0X8P-16385:0:-1: ++%1LG:-0X0P+0:0:-1: ++%*1LG:-0X0P+0:0:-1: ++%1LG:-0X0P0:0:-1: ++%*1LG:-0X0P0:0:-1: ++%1LG:-NAN(09A_Zaz):0:-1: ++%*1LG:-NAN(09A_Zaz):0:-1: ++%1LG:-NAN():0:-1: ++%*1LG:-NAN():0:-1: ++%1LG:NAN():0:-1: ++%*1LG:NAN():0:-1: ++%1LG:NAN(09A_Zaz):0:-1: ++%*1LG:NAN(09A_Zaz):0:-1: ++%1LG:0X0P0:1:1:0x0: ++%*1LG:0X0P0:0:1: ++%1LG:0X0P+0:1:1:0x0: ++%*1LG:0X0P+0:0:1: ++%1LG:0X8P-16385:1:1:0x0: ++%*1LG:0X8P-16385:0:1: ++%1LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:1:0x0: ++%*1LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:1: ++%1LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:1:0x0: ++%*1LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:1: ++%1LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:1:0x0: ++%*1LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:1: ++%1LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:1:0x0: ++%*1LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:1: ++%1LG:INFINITY:0:-1: ++%*1LG:INFINITY:0:-1: ++%1LG:+NAN():0:-1: ++%*1LG:+NAN():0:-1: ++%1LG:+NAN(09A_Zaz):0:-1: ++%*1LG:+NAN(09A_Zaz):0:-1: ++%1LG:+0X0P0:0:-1: ++%*1LG:+0X0P0:0:-1: ++%1LG:+0X0P+0:0:-1: ++%*1LG:+0X0P+0:0:-1: ++%1LG:+0X8P-16385:0:-1: ++%*1LG:+0X8P-16385:0:-1: ++%1LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++%*1LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++%1LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%*1LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%1LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++%*1LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++%1LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%*1LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%1LG:+INFINITY:0:-1: ++%*1LG:+INFINITY:0:-1: ++%2LG::0:-1: ++%*2LG::0:-1: ++%2LG:-INFINITY:0:-1: ++%*2LG:-INFINITY:0:-1: ++%2LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:2:-0x0: ++%*2LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:2: ++%2LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:2:-0x0: ++%*2LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:2: ++%2LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:2:-0x0: ++%*2LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:2: ++%2LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:2:-0x0: ++%*2LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:2: ++%2LG:-0X8P-16385:1:2:-0x0: ++%*2LG:-0X8P-16385:0:2: ++%2LG:-0X0P+0:1:2:-0x0: ++%*2LG:-0X0P+0:0:2: ++%2LG:-0X0P0:1:2:-0x0: ++%*2LG:-0X0P0:0:2: ++%2LG:-NAN(09A_Zaz):0:-1: ++%*2LG:-NAN(09A_Zaz):0:-1: ++%2LG:-NAN():0:-1: ++%*2LG:-NAN():0:-1: ++%2LG:NAN():0:-1: ++%*2LG:NAN():0:-1: ++%2LG:NAN(09A_Zaz):0:-1: ++%*2LG:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LG:0X0P0:0:-1: ++# BZ12701 %*2LG:0X0P0:0:-1: ++# BZ12701 %2LG:0X0P+0:0:-1: ++# BZ12701 %*2LG:0X0P+0:0:-1: ++# BZ12701 %2LG:0X8P-16385:0:-1: ++# BZ12701 %*2LG:0X8P-16385:0:-1: ++# BZ12701 %2LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %*2LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %2LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*2LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %2LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %*2LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %2LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*2LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%2LG:INFINITY:0:-1: ++%*2LG:INFINITY:0:-1: ++%2LG:+NAN():0:-1: ++%*2LG:+NAN():0:-1: ++%2LG:+NAN(09A_Zaz):0:-1: ++%*2LG:+NAN(09A_Zaz):0:-1: ++%2LG:+0X0P0:1:2:0x0: ++%*2LG:+0X0P0:0:2: ++%2LG:+0X0P+0:1:2:0x0: ++%*2LG:+0X0P+0:0:2: ++%2LG:+0X8P-16385:1:2:0x0: ++%*2LG:+0X8P-16385:0:2: ++%2LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:2:0x0: ++%*2LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:2: ++%2LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:2:0x0: ++%*2LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:2: ++%2LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:2:0x0: ++%*2LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:2: ++%2LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:2:0x0: ++%*2LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:2: ++%2LG:+INFINITY:0:-1: ++%*2LG:+INFINITY:0:-1: ++%3LG::0:-1: ++%*3LG::0:-1: ++%3LG:-INFINITY:0:-1: ++%*3LG:-INFINITY:0:-1: ++# BZ12701 %3LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*3LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %3LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %*3LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %3LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*3LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %3LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %*3LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %3LG:-0X8P-16385:0:-1: ++# BZ12701 %*3LG:-0X8P-16385:0:-1: ++# BZ12701 %3LG:-0X0P+0:0:-1: ++# BZ12701 %*3LG:-0X0P+0:0:-1: ++# BZ12701 %3LG:-0X0P0:0:-1: ++# BZ12701 %*3LG:-0X0P0:0:-1: ++%3LG:-NAN(09A_Zaz):0:-1: ++%*3LG:-NAN(09A_Zaz):0:-1: ++%3LG:-NAN():0:-1: ++%*3LG:-NAN():0:-1: ++%3LG:NAN():1:3:nan: ++%*3LG:NAN():0:3: ++%3LG:NAN(09A_Zaz):1:3:nan: ++%*3LG:NAN(09A_Zaz):0:3: ++%3LG:0X0P0:1:3:0x0: ++%*3LG:0X0P0:0:3: ++%3LG:0X0P+0:1:3:0x0: ++%*3LG:0X0P+0:0:3: ++%3LG:0X8P-16385:1:3:0x1p3: ++%*3LG:0X8P-16385:0:3: ++%3LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:3:0x1p1: ++%*3LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:3: ++%3LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:3:0x1p1: ++%*3LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:3: ++%3LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:3:0x1.cp2: ++%*3LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:3: ++%3LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:3:0x1.ep3: ++%*3LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:3: ++%3LG:INFINITY:1:3:inf: ++%*3LG:INFINITY:0:3: ++%3LG:+NAN():0:-1: ++%*3LG:+NAN():0:-1: ++%3LG:+NAN(09A_Zaz):0:-1: ++%*3LG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LG:+0X0P0:0:-1: ++# BZ12701 %*3LG:+0X0P0:0:-1: ++# BZ12701 %3LG:+0X0P+0:0:-1: ++# BZ12701 %*3LG:+0X0P+0:0:-1: ++# BZ12701 %3LG:+0X8P-16385:0:-1: ++# BZ12701 %*3LG:+0X8P-16385:0:-1: ++# BZ12701 %3LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %*3LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %3LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*3LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %3LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %*3LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %3LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*3LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%3LG:+INFINITY:0:-1: ++%*3LG:+INFINITY:0:-1: ++%4LG::0:-1: ++%*4LG::0:-1: ++%4LG:-INFINITY:1:4:-inf: ++%*4LG:-INFINITY:0:4: ++%4LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:4:-0x1.ep3: ++%*4LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4: ++%4LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:4:-0x1.cp2: ++%*4LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:4: ++%4LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:4:-0x1p1: ++%*4LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:4: ++%4LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:4:-0x1p1: ++%*4LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:4: ++%4LG:-0X8P-16385:1:4:-0x1p3: ++%*4LG:-0X8P-16385:0:4: ++%4LG:-0X0P+0:1:4:-0x0: ++%*4LG:-0X0P+0:0:4: ++%4LG:-0X0P0:1:4:-0x0: ++%*4LG:-0X0P0:0:4: ++%4LG:-NAN(09A_Zaz):1:4:-nan: ++%*4LG:-NAN(09A_Zaz):0:4: ++%4LG:-NAN():1:4:-nan: ++%*4LG:-NAN():0:4: ++%4LG:NAN():0:-1: ++%*4LG:NAN():0:-1: ++%4LG:NAN(09A_Zaz):0:-1: ++%*4LG:NAN(09A_Zaz):0:-1: ++# BZ12701 %4LG:0X0P0:0:-1: ++# BZ12701 %*4LG:0X0P0:0:-1: ++# BZ12701 %4LG:0X0P+0:0:-1: ++# BZ12701 %*4LG:0X0P+0:0:-1: ++# BZ12701 %4LG:0X8P-16385:0:-1: ++# BZ12701 %*4LG:0X8P-16385:0:-1: ++%4LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:4:0x1p1: ++%*4LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:4: ++%4LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:4:0x1p1: ++%*4LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:4: ++%4LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:4:0x1.cp2: ++%*4LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:4: ++%4LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:4:0x1.ep3: ++%*4LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4: ++%4LG:INFINITY:0:-1: ++%*4LG:INFINITY:0:-1: ++%4LG:+NAN():1:4:nan: ++%*4LG:+NAN():0:4: ++%4LG:+NAN(09A_Zaz):1:4:nan: ++%*4LG:+NAN(09A_Zaz):0:4: ++%4LG:+0X0P0:1:4:0x0: ++%*4LG:+0X0P0:0:4: ++%4LG:+0X0P+0:1:4:0x0: ++%*4LG:+0X0P+0:0:4: ++%4LG:+0X8P-16385:1:4:0x1p3: ++%*4LG:+0X8P-16385:0:4: ++%4LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:4:0x1p1: ++%*4LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:4: ++%4LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:4:0x1p1: ++%*4LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:4: ++%4LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:4:0x1.cp2: ++%*4LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:4: ++%4LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:4:0x1.ep3: ++%*4LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4: ++%4LG:+INFINITY:1:4:inf: ++%*4LG:+INFINITY:0:4: ++%5LG::0:-1: ++%*5LG::0:-1: ++%5LG:-INFINITY:0:-1: ++%*5LG:-INFINITY:0:-1: ++%5LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:5:-0x1.ep3: ++%*5LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5: ++%5LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:5:-0x1.cp2: ++%*5LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:5: ++%5LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:5:-0x1p1: ++%*5LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:5: ++%5LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:5:-0x1p1: ++%*5LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:5: ++# BZ12701 %5LG:-0X8P-16385:0:-1: ++# BZ12701 %*5LG:-0X8P-16385:0:-1: ++# BZ12701 %5LG:-0X0P+0:0:-1: ++# BZ12701 %*5LG:-0X0P+0:0:-1: ++# BZ12701 %5LG:-0X0P0:0:-1: ++# BZ12701 %*5LG:-0X0P0:0:-1: ++%5LG:-NAN(09A_Zaz):0:-1: ++%*5LG:-NAN(09A_Zaz):0:-1: ++%5LG:-NAN():0:-1: ++%*5LG:-NAN():0:-1: ++%5LG:NAN():1:5:nan: ++%*5LG:NAN():0:5: ++%5LG:NAN(09A_Zaz):0:-1: ++%*5LG:NAN(09A_Zaz):0:-1: ++%5LG:0X0P0:1:5:0x0: ++%*5LG:0X0P0:0:5: ++# BZ12701 %5LG:0X0P+0:0:-1: ++# BZ12701 %*5LG:0X0P+0:0:-1: ++# BZ12701 %5LG:0X8P-16385:0:-1: ++# BZ12701 %*5LG:0X8P-16385:0:-1: ++%5LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:5:0x1.18p1: ++%*5LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:5: ++%5LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:5:0x1.18p1: ++%*5LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:5: ++%5LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:5:0x1.fcp2: ++%*5LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:5: ++%5LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:5:0x1.fep3: ++%*5LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5: ++%5LG:INFINITY:0:-1: ++%*5LG:INFINITY:0:-1: ++%5LG:+NAN():0:-1: ++%*5LG:+NAN():0:-1: ++%5LG:+NAN(09A_Zaz):0:-1: ++%*5LG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5LG:+0X0P0:0:-1: ++# BZ12701 %*5LG:+0X0P0:0:-1: ++# BZ12701 %5LG:+0X0P+0:0:-1: ++# BZ12701 %*5LG:+0X0P+0:0:-1: ++# BZ12701 %5LG:+0X8P-16385:0:-1: ++# BZ12701 %*5LG:+0X8P-16385:0:-1: ++%5LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:5:0x1p1: ++%*5LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:5: ++%5LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:5:0x1p1: ++%*5LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:5: ++%5LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:5:0x1.cp2: ++%*5LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:5: ++%5LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:5:0x1.ep3: ++%*5LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5: ++%5LG:+INFINITY:0:-1: ++%*5LG:+INFINITY:0:-1: ++%6LG::0:-1: ++%*6LG::0:-1: ++%6LG:-INFINITY:0:-1: ++%*6LG:-INFINITY:0:-1: ++%6LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:-0x1.fep3: ++%*6LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%6LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:-0x1.fcp2: ++%*6LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%6LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:-0x1.18p1: ++%*6LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%6LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:-0x1.18p1: ++%*6LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++# BZ12701 %6LG:-0X8P-16385:0:-1: ++# BZ12701 %*6LG:-0X8P-16385:0:-1: ++# BZ12701 %6LG:-0X0P+0:0:-1: ++# BZ12701 %*6LG:-0X0P+0:0:-1: ++%6LG:-0X0P0:1:6:-0x0: ++%*6LG:-0X0P0:0:6: ++%6LG:-NAN(09A_Zaz):0:-1: ++%*6LG:-NAN(09A_Zaz):0:-1: ++%6LG:-NAN():1:6:-nan: ++%*6LG:-NAN():0:6: ++%6LG:NAN():1:5:nan: ++%*6LG:NAN():0:5: ++%6LG:NAN(09A_Zaz):0:-1: ++%*6LG:NAN(09A_Zaz):0:-1: ++%6LG:0X0P0:1:5:0x0: ++%*6LG:0X0P0:0:5: ++%6LG:0X0P+0:1:6:0x0: ++%*6LG:0X0P+0:0:6: ++%6LG:0X8P-16385:1:6:0x1p2: ++%*6LG:0X8P-16385:0:6: ++%6LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1.1ap1: ++%*6LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++%6LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1.1ap1: ++%*6LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%6LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.ffcp2: ++%*6LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%6LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.ffep3: ++%*6LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%6LG:INFINITY:0:-1: ++%*6LG:INFINITY:0:-1: ++%6LG:+NAN():1:6:nan: ++%*6LG:+NAN():0:6: ++%6LG:+NAN(09A_Zaz):0:-1: ++%*6LG:+NAN(09A_Zaz):0:-1: ++%6LG:+0X0P0:1:6:0x0: ++%*6LG:+0X0P0:0:6: ++# BZ12701 %6LG:+0X0P+0:0:-1: ++# BZ12701 %*6LG:+0X0P+0:0:-1: ++# BZ12701 %6LG:+0X8P-16385:0:-1: ++# BZ12701 %*6LG:+0X8P-16385:0:-1: ++%6LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1.18p1: ++%*6LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++%6LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1.18p1: ++%*6LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%6LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.fcp2: ++%*6LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%6LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.fep3: ++%*6LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%6LG:+INFINITY:0:-1: ++%*6LG:+INFINITY:0:-1: ++%35LG::0:-1: ++%*35LG::0:-1: ++%35LG:-INFINITY:1:9:-inf: ++%*35LG:-INFINITY:0:9: ++# BZ12701 %35LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*35LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%35LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:35:-0x1.ffffffffffffffffffffffffffffp3: ++%*35LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:35: ++# BZ12701 %35LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*35LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%35LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:35:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1: ++%*35LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:35: ++%35LG:-0X8P-16385:1:11:-0x1p-16382: ++%*35LG:-0X8P-16385:0:11: ++%35LG:-0X0P+0:1:7:-0x0: ++%*35LG:-0X0P+0:0:7: ++%35LG:-0X0P0:1:6:-0x0: ++%*35LG:-0X0P0:0:6: ++%35LG:-NAN(09A_Zaz):1:13:-nan: ++%*35LG:-NAN(09A_Zaz):0:13: ++%35LG:-NAN():1:6:-nan: ++%*35LG:-NAN():0:6: ++%35LG:NAN():1:5:nan: ++%*35LG:NAN():0:5: ++%35LG:NAN(09A_Zaz):1:12:nan: ++%*35LG:NAN(09A_Zaz):0:12: ++%35LG:0X0P0:1:5:0x0: ++%*35LG:0X0P0:0:5: ++%35LG:0X0P+0:1:6:0x0: ++%*35LG:0X0P+0:0:6: ++%35LG:0X8P-16385:1:10:0x1p-16382: ++%*35LG:0X8P-16385:0:10: ++%35LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2: ++%*35LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:35: ++%35LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2: ++%*35LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:35: ++%35LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:35:0x1.ffffffffffffffffffffffffffffp18: ++%*35LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:35: ++%35LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:35:0x1.ffffffffffffffffffffffffffffp4: ++%*35LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:35: ++%35LG:INFINITY:1:8:inf: ++%*35LG:INFINITY:0:8: ++%35LG:+NAN():1:6:nan: ++%*35LG:+NAN():0:6: ++%35LG:+NAN(09A_Zaz):1:13:nan: ++%*35LG:+NAN(09A_Zaz):0:13: ++%35LG:+0X0P0:1:6:0x0: ++%*35LG:+0X0P0:0:6: ++%35LG:+0X0P+0:1:7:0x0: ++%*35LG:+0X0P+0:0:7: ++%35LG:+0X8P-16385:1:11:0x1p-16382: ++%*35LG:+0X8P-16385:0:11: ++%35LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1: ++%*35LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:35: ++# BZ12701 %35LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*35LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%35LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:35:0x1.ffffffffffffffffffffffffffffp3: ++%*35LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:35: ++# BZ12701 %35LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*35LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%35LG:+INFINITY:1:9:inf: ++%*35LG:+INFINITY:0:9: ++%53LG::0:-1: ++%*53LG::0:-1: ++%53LG:-INFINITY:1:9:-inf: ++%*53LG:-INFINITY:0:9: ++%53LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%53LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%53LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%53LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%53LG:-0X8P-16385:1:11:-0x1p-16382: ++%*53LG:-0X8P-16385:0:11: ++%53LG:-0X0P+0:1:7:-0x0: ++%*53LG:-0X0P+0:0:7: ++%53LG:-0X0P0:1:6:-0x0: ++%*53LG:-0X0P0:0:6: ++%53LG:-NAN(09A_Zaz):1:13:-nan: ++%*53LG:-NAN(09A_Zaz):0:13: ++%53LG:-NAN():1:6:-nan: ++%*53LG:-NAN():0:6: ++%53LG:NAN():1:5:nan: ++%*53LG:NAN():0:5: ++%53LG:NAN(09A_Zaz):1:12:nan: ++%*53LG:NAN(09A_Zaz):0:12: ++%53LG:0X0P0:1:5:0x0: ++%*53LG:0X0P0:0:5: ++%53LG:0X0P+0:1:6:0x0: ++%*53LG:0X0P+0:0:6: ++%53LG:0X8P-16385:1:10:0x1p-16382: ++%*53LG:0X8P-16385:0:10: ++%53LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:39: ++%53LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:39: ++%53LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:38:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:38: ++%53LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39: ++%53LG:INFINITY:1:8:inf: ++%*53LG:INFINITY:0:8: ++%53LG:+NAN():1:6:nan: ++%*53LG:+NAN():0:6: ++%53LG:+NAN(09A_Zaz):1:13:nan: ++%*53LG:+NAN(09A_Zaz):0:13: ++%53LG:+0X0P0:1:6:0x0: ++%*53LG:+0X0P0:0:6: ++%53LG:+0X0P+0:1:7:0x0: ++%*53LG:+0X0P+0:0:7: ++%53LG:+0X8P-16385:1:11:0x1p-16382: ++%*53LG:+0X8P-16385:0:11: ++%53LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%53LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%53LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%53LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%53LG:+INFINITY:1:9:inf: ++%*53LG:+INFINITY:0:9: ++%5LG: :0:-1: ++%*5LG: :0:-1: ++%5LG: -INFINITY:0:-1: ++%*5LG: -INFINITY:0:-1: ++%5LG: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:-0x1.ep3: ++%*5LG: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%5LG: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:-0x1.cp2: ++%*5LG: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%5LG: -0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:-0x1p1: ++%*5LG: -0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%5LG: -0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:-0x1p1: ++%*5LG: -0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++# BZ12701 %5LG: -0X8P-16385:0:-1: ++# BZ12701 %*5LG: -0X8P-16385:0:-1: ++# BZ12701 %5LG: -0X0P+0:0:-1: ++# BZ12701 %*5LG: -0X0P+0:0:-1: ++# BZ12701 %5LG: -0X0P0:0:-1: ++# BZ12701 %*5LG: -0X0P0:0:-1: ++%5LG: -NAN(09A_Zaz):0:-1: ++%*5LG: -NAN(09A_Zaz):0:-1: ++%5LG: -NAN():0:-1: ++%*5LG: -NAN():0:-1: ++%5LG: NAN():1:6:nan: ++%*5LG: NAN():0:6: ++%5LG: NAN(09A_Zaz):0:-1: ++%*5LG: NAN(09A_Zaz):0:-1: ++%5LG: 0X0P0:1:6:0x0: ++%*5LG: 0X0P0:0:6: ++# BZ12701 %5LG: 0X0P+0:0:-1: ++# BZ12701 %*5LG: 0X0P+0:0:-1: ++# BZ12701 %5LG: 0X8P-16385:0:-1: ++# BZ12701 %*5LG: 0X8P-16385:0:-1: ++%5LG: 0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1.18p1: ++%*5LG: 0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++%5LG: 0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1.18p1: ++%*5LG: 0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%5LG: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.fcp2: ++%*5LG: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%5LG: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.fep3: ++%*5LG: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%5LG: INFINITY:0:-1: ++%*5LG: INFINITY:0:-1: ++%5LG: +NAN():0:-1: ++%*5LG: +NAN():0:-1: ++%5LG: +NAN(09A_Zaz):0:-1: ++%*5LG: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5LG: +0X0P0:0:-1: ++# BZ12701 %*5LG: +0X0P0:0:-1: ++# BZ12701 %5LG: +0X0P+0:0:-1: ++# BZ12701 %*5LG: +0X0P+0:0:-1: ++# BZ12701 %5LG: +0X8P-16385:0:-1: ++# BZ12701 %*5LG: +0X8P-16385:0:-1: ++%5LG: +0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1p1: ++%*5LG: +0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++%5LG: +0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1p1: ++%*5LG: +0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%5LG: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.cp2: ++%*5LG: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%5LG: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.ep3: ++%*5LG: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%5LG: +INFINITY:0:-1: ++%*5LG: +INFINITY:0:-1: ++%53LG: :0:-1: ++%*53LG: :0:-1: ++%53LG: -INFINITY:1:10:-inf: ++%*53LG: -INFINITY:0:10: ++%53LG: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:41:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:41: ++%53LG: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:40: ++%53LG: -0X2.3456789ABCDEF0123456789ABCDEP+12345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG: -0X2.3456789ABCDEF0123456789ABCDEP+12345:0:41: ++%53LG: -0X2.3456789ABCDEF0123456789ABCDEP012345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG: -0X2.3456789ABCDEF0123456789ABCDEP012345:0:41: ++%53LG: -0X8P-16385:1:12:-0x1p-16382: ++%*53LG: -0X8P-16385:0:12: ++%53LG: -0X0P+0:1:8:-0x0: ++%*53LG: -0X0P+0:0:8: ++%53LG: -0X0P0:1:7:-0x0: ++%*53LG: -0X0P0:0:7: ++%53LG: -NAN(09A_Zaz):1:14:-nan: ++%*53LG: -NAN(09A_Zaz):0:14: ++%53LG: -NAN():1:7:-nan: ++%*53LG: -NAN():0:7: ++%53LG: NAN():1:6:nan: ++%*53LG: NAN():0:6: ++%53LG: NAN(09A_Zaz):1:13:nan: ++%*53LG: NAN(09A_Zaz):0:13: ++%53LG: 0X0P0:1:6:0x0: ++%*53LG: 0X0P0:0:6: ++%53LG: 0X0P+0:1:7:0x0: ++%*53LG: 0X0P+0:0:7: ++%53LG: 0X8P-16385:1:11:0x1p-16382: ++%*53LG: 0X8P-16385:0:11: ++%53LG: 0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG: 0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%53LG: 0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG: 0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%53LG: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%53LG: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%53LG: INFINITY:1:9:inf: ++%*53LG: INFINITY:0:9: ++%53LG: +NAN():1:7:nan: ++%*53LG: +NAN():0:7: ++%53LG: +NAN(09A_Zaz):1:14:nan: ++%*53LG: +NAN(09A_Zaz):0:14: ++%53LG: +0X0P0:1:7:0x0: ++%*53LG: +0X0P0:0:7: ++%53LG: +0X0P+0:1:8:0x0: ++%*53LG: +0X0P+0:0:8: ++%53LG: +0X8P-16385:1:12:0x1p-16382: ++%*53LG: +0X8P-16385:0:12: ++%53LG: +0X2.3456789ABCDEF0123456789ABCDEP012345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG: +0X2.3456789ABCDEF0123456789ABCDEP012345:0:41: ++%53LG: +0X2.3456789ABCDEF0123456789ABCDEP+12345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG: +0X2.3456789ABCDEF0123456789ABCDEP+12345:0:41: ++%53LG: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:40: ++%53LG: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:41:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:41: ++%53LG: +INFINITY:1:10:inf: ++%*53LG: +INFINITY:0:10: diff --git a/SOURCES/glibc-RHEL-46726-7.patch b/SOURCES/glibc-RHEL-46726-7.patch new file mode 100644 index 0000000..6af0c9e --- /dev/null +++ b/SOURCES/glibc-RHEL-46726-7.patch @@ -0,0 +1,5116 @@ +commit 771cda3c9cbbfc33a1a337d964e7749b245dec38 +Author: Maciej W. Rozycki +Date: Tue Mar 25 09:40:20 2025 +0000 + + stdio-common: Add scanf long double data for IEEE 754 binary64 format + + Add Makefile infrastructure and 64-bit `long double' real input data for + targets switching between the IEEE 754 binary64 and IEEE 754 binary128 + formats with `-mlong-double-64' and `-mlong-double-128'. Use modified + output file names for the IEEE 754 binary64 format so as not to clash + with the names used for IEEE 754 binary128 format tests made with common + rules for the 'long double' data type. + + Keep input data disabled and referring to BZ #12701 for entries that are + are currently incorrectly accepted as valid data, such as '0e', '0e+', + '0x', '0x8p', '0x0p-', etc. + + Reviewed-by: Joseph Myers + +Conflicts: + sysdeps/ieee754/ldbl-opt/Makefile + (missing tests downstream for C2x scanf binary handling + commit dee2bea048b688b643a9a3b44b, and missing fortify + exclusions commit 20c894d21eb64153abf7c7f96e6) + +diff --git a/sysdeps/ieee754/ldbl-64-128/Makefile b/sysdeps/ieee754/ldbl-64-128/Makefile +new file mode 100644 +index 0000000000000000..7a37fa179f41002f +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-64-128/Makefile +@@ -0,0 +1,14 @@ ++ifeq ($(subdir),stdio-common) ++ifeq ($(run-built-tests),yes) ++# Put long double IEEE binary128 format inputs in sysdeps/ieee754/ldbl-128 ++# first in vpath. Otherwise the ordering of sysdeps would cause long double ++# IEEE binary64 format inputs in sysdeps/ieee754/ldbl-opt to be used instead ++# for the common rules requested in sysdeps/ieee754/ldbl-128 with targets ++# using the dual -mlong-double-128/-mlong-double-64 arrangement. ++define tst-scanf-format-64-128-vpath ++vpath tst-scanf-format-ldouble-$(1).input ../sysdeps/ieee754/ldbl-128 ++endef ++$(foreach f,$(fmts-xscanf-real), \ ++ $(eval $(call tst-scanf-format-64-128-vpath,$(f)))) ++endif # $(run-built-tests) == yes ++endif # $(subdir) == stdio-common +diff --git a/sysdeps/ieee754/ldbl-opt/Makefile b/sysdeps/ieee754/ldbl-opt/Makefile +index 4e41a27e80c5e1b0..15b0ae3e83d7ccff 100644 +--- a/sysdeps/ieee754/ldbl-opt/Makefile ++++ b/sysdeps/ieee754/ldbl-opt/Makefile +@@ -207,3 +207,58 @@ $(objpfx)tst-nldbl-error.c: tst-ldbl-error.c + CFLAGS-tst-nldbl-warn.c += -mlong-double-64 + CFLAGS-tst-nldbl-error.c += -mlong-double-64 + endif ++ ++ifeq ($(subdir), stdio-common) ++# We already have the long double conversion defined with our common rules ++# for the IEEE binary128 format, so define these special rules to build ++# and run extra executables for the IEEE binary64 format, reusing the same ++# sources. ++define tst-scanf-format-64-tests ++test-srcs += \ ++ tst-scanf-format-$(1)-ldouble-64 \ ++ # test-srcs ++ ++$$(objpfx)tst-scanf-format-$(1)-ldouble-64.o: \ ++ tst-scanf-format-$(1)-ldouble.c $$(before-compile) ++ $$(compile-command.c) ++$$(objpfx)tst-scanf-format-$(1)-ldouble-64: $$(libm) ++endef ++$(foreach p,$(xscanf-funcs), \ ++ $(eval $(call tst-scanf-format-64-tests,$(p)))) ++ ++# Use the IEEE binary64 format for long double scanf format tests. ++$(foreach suf,$(all-object-suffixes), \ ++ $(foreach p,$(xscanf-funcs), \ ++ $(objpfx)tst-scanf-format-$(p)-ldouble-64$(suf))): \ ++ sysdep-CFLAGS += -mlong-double-64 ++ ++ifeq ($(run-built-tests),yes) ++define tst-scanf-format-64-rule ++tests-special += \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2).out \ ++ # tests-special ++ ++$$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2).out: \ ++ ../sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-$(2).input \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-64 ++ $$(make-tst-scanf-format-out) > $$@ < $$<; \ ++ $$(evaluate-test) ++ ++ifeq (yes,$(build-shared)) ++ifneq ($(PERL),no) ++tests-special += \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2)-mem.out \ ++ # tests-special ++ ++generated += \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2)-mem.out \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2).mtrace \ ++ # generated ++endif ++endif ++endef ++$(foreach f,$(fmts-xscanf-real), \ ++ $(foreach p,$(xscanf-funcs), \ ++ $(eval $(call tst-scanf-format-64-rule,$(p),$(f))))) ++endif # $(run-built-tests) == yes ++endif # $(subdir) == stdio-common +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input +new file mode 100644 +index 0000000000000000..42a1ffa84a834f8d +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input +@@ -0,0 +1,682 @@ ++%La::0:-1: ++%*La::0:-1: ++%La:-infinity:1:9:-inf: ++%*La:-infinity:0:9: ++%La:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023: ++%*La:-0xf.ffffffffffff8p+1020:0:24: ++%La:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023: ++%*La:-0x7.ffffffffffffcp1021:0:23: ++%La:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*La:-0x2.3456789abcdfep+123:0:23: ++%La:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*La:-0x2.3456789abcdfep0123:0:23: ++%La:-0x8p-1025:1:10:-0x1p-1022: ++%*La:-0x8p-1025:0:10: ++%La:-0x0p+0:1:7:-0x0: ++%*La:-0x0p+0:0:7: ++%La:-0x0p0:1:6:-0x0: ++%*La:-0x0p0:0:6: ++%La:-nan(09A_Zaz):1:13:-nan: ++%*La:-nan(09A_Zaz):0:13: ++%La:-nan():1:6:-nan: ++%*La:-nan():0:6: ++%La:nan():1:5:nan: ++%*La:nan():0:5: ++%La:nan(09A_Zaz):1:12:nan: ++%*La:nan(09A_Zaz):0:12: ++%La:0x0p0:1:5:0x0: ++%*La:0x0p0:0:5: ++%La:0x0p+0:1:6:0x0: ++%*La:0x0p+0:0:6: ++%La:0x8p-1025:1:9:0x1p-1022: ++%*La:0x8p-1025:0:9: ++%La:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*La:0x2.3456789abcdfep0123:0:22: ++%La:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*La:0x2.3456789abcdfep+123:0:22: ++%La:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023: ++%*La:0x7.ffffffffffffcp1021:0:22: ++%La:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023: ++%*La:0xf.ffffffffffff8p+1020:0:23: ++%La:infinity:1:8:inf: ++%*La:infinity:0:8: ++%La:+nan():1:6:nan: ++%*La:+nan():0:6: ++%La:+nan(09A_Zaz):1:13:nan: ++%*La:+nan(09A_Zaz):0:13: ++%La:+0x0p0:1:6:0x0: ++%*La:+0x0p0:0:6: ++%La:+0x0p+0:1:7:0x0: ++%*La:+0x0p+0:0:7: ++%La:+0x8p-1025:1:10:0x1p-1022: ++%*La:+0x8p-1025:0:10: ++%La:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*La:+0x2.3456789abcdfep0123:0:23: ++%La:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*La:+0x2.3456789abcdfep+123:0:23: ++%La:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*La:+0x7.ffffffffffffcp1021:0:23: ++%La:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*La:+0xf.ffffffffffff8p+1020:0:24: ++%La:+infinity:1:9:inf: ++%*La:+infinity:0:9: ++%1La::0:-1: ++%*1La::0:-1: ++%1La:-infinity:0:-1: ++%*1La:-infinity:0:-1: ++%1La:-0xf.ffffffffffff8p+1020:0:-1: ++%*1La:-0xf.ffffffffffff8p+1020:0:-1: ++%1La:-0x7.ffffffffffffcp1021:0:-1: ++%*1La:-0x7.ffffffffffffcp1021:0:-1: ++%1La:-0x2.3456789abcdfep+123:0:-1: ++%*1La:-0x2.3456789abcdfep+123:0:-1: ++%1La:-0x2.3456789abcdfep0123:0:-1: ++%*1La:-0x2.3456789abcdfep0123:0:-1: ++%1La:-0x8p-1025:0:-1: ++%*1La:-0x8p-1025:0:-1: ++%1La:-0x0p+0:0:-1: ++%*1La:-0x0p+0:0:-1: ++%1La:-0x0p0:0:-1: ++%*1La:-0x0p0:0:-1: ++%1La:-nan(09A_Zaz):0:-1: ++%*1La:-nan(09A_Zaz):0:-1: ++%1La:-nan():0:-1: ++%*1La:-nan():0:-1: ++%1La:nan():0:-1: ++%*1La:nan():0:-1: ++%1La:nan(09A_Zaz):0:-1: ++%*1La:nan(09A_Zaz):0:-1: ++%1La:0x0p0:1:1:0x0: ++%*1La:0x0p0:0:1: ++%1La:0x0p+0:1:1:0x0: ++%*1La:0x0p+0:0:1: ++%1La:0x8p-1025:1:1:0x0: ++%*1La:0x8p-1025:0:1: ++%1La:0x2.3456789abcdfep0123:1:1:0x0: ++%*1La:0x2.3456789abcdfep0123:0:1: ++%1La:0x2.3456789abcdfep+123:1:1:0x0: ++%*1La:0x2.3456789abcdfep+123:0:1: ++%1La:0x7.ffffffffffffcp1021:1:1:0x0: ++%*1La:0x7.ffffffffffffcp1021:0:1: ++%1La:0xf.ffffffffffff8p+1020:1:1:0x0: ++%*1La:0xf.ffffffffffff8p+1020:0:1: ++%1La:infinity:0:-1: ++%*1La:infinity:0:-1: ++%1La:+nan():0:-1: ++%*1La:+nan():0:-1: ++%1La:+nan(09A_Zaz):0:-1: ++%*1La:+nan(09A_Zaz):0:-1: ++%1La:+0x0p0:0:-1: ++%*1La:+0x0p0:0:-1: ++%1La:+0x0p+0:0:-1: ++%*1La:+0x0p+0:0:-1: ++%1La:+0x8p-1025:0:-1: ++%*1La:+0x8p-1025:0:-1: ++%1La:+0x2.3456789abcdfep0123:0:-1: ++%*1La:+0x2.3456789abcdfep0123:0:-1: ++%1La:+0x2.3456789abcdfep+123:0:-1: ++%*1La:+0x2.3456789abcdfep+123:0:-1: ++%1La:+0x7.ffffffffffffcp1021:0:-1: ++%*1La:+0x7.ffffffffffffcp1021:0:-1: ++%1La:+0xf.ffffffffffff8p+1020:0:-1: ++%*1La:+0xf.ffffffffffff8p+1020:0:-1: ++%1La:+infinity:0:-1: ++%*1La:+infinity:0:-1: ++%2La::0:-1: ++%*2La::0:-1: ++%2La:-infinity:0:-1: ++%*2La:-infinity:0:-1: ++%2La:-0xf.ffffffffffff8p+1020:1:2:-0x0: ++%*2La:-0xf.ffffffffffff8p+1020:0:2: ++%2La:-0x7.ffffffffffffcp1021:1:2:-0x0: ++%*2La:-0x7.ffffffffffffcp1021:0:2: ++%2La:-0x2.3456789abcdfep+123:1:2:-0x0: ++%*2La:-0x2.3456789abcdfep+123:0:2: ++%2La:-0x2.3456789abcdfep0123:1:2:-0x0: ++%*2La:-0x2.3456789abcdfep0123:0:2: ++%2La:-0x8p-1025:1:2:-0x0: ++%*2La:-0x8p-1025:0:2: ++%2La:-0x0p+0:1:2:-0x0: ++%*2La:-0x0p+0:0:2: ++%2La:-0x0p0:1:2:-0x0: ++%*2La:-0x0p0:0:2: ++%2La:-nan(09A_Zaz):0:-1: ++%*2La:-nan(09A_Zaz):0:-1: ++%2La:-nan():0:-1: ++%*2La:-nan():0:-1: ++%2La:nan():0:-1: ++%*2La:nan():0:-1: ++%2La:nan(09A_Zaz):0:-1: ++%*2La:nan(09A_Zaz):0:-1: ++# BZ12701 %2La:0x0p0:0:-1: ++# BZ12701 %*2La:0x0p0:0:-1: ++# BZ12701 %2La:0x0p+0:0:-1: ++# BZ12701 %*2La:0x0p+0:0:-1: ++# BZ12701 %2La:0x8p-1025:0:-1: ++# BZ12701 %*2La:0x8p-1025:0:-1: ++# BZ12701 %2La:0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*2La:0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %2La:0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*2La:0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %2La:0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*2La:0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %2La:0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*2La:0xf.ffffffffffff8p+1020:0:-1: ++%2La:infinity:0:-1: ++%*2La:infinity:0:-1: ++%2La:+nan():0:-1: ++%*2La:+nan():0:-1: ++%2La:+nan(09A_Zaz):0:-1: ++%*2La:+nan(09A_Zaz):0:-1: ++%2La:+0x0p0:1:2:0x0: ++%*2La:+0x0p0:0:2: ++%2La:+0x0p+0:1:2:0x0: ++%*2La:+0x0p+0:0:2: ++%2La:+0x8p-1025:1:2:0x0: ++%*2La:+0x8p-1025:0:2: ++%2La:+0x2.3456789abcdfep0123:1:2:0x0: ++%*2La:+0x2.3456789abcdfep0123:0:2: ++%2La:+0x2.3456789abcdfep+123:1:2:0x0: ++%*2La:+0x2.3456789abcdfep+123:0:2: ++%2La:+0x7.ffffffffffffcp1021:1:2:0x0: ++%*2La:+0x7.ffffffffffffcp1021:0:2: ++%2La:+0xf.ffffffffffff8p+1020:1:2:0x0: ++%*2La:+0xf.ffffffffffff8p+1020:0:2: ++%2La:+infinity:0:-1: ++%*2La:+infinity:0:-1: ++%3La::0:-1: ++%*3La::0:-1: ++%3La:-infinity:0:-1: ++%*3La:-infinity:0:-1: ++# BZ12701 %3La:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*3La:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %3La:-0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*3La:-0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %3La:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*3La:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %3La:-0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*3La:-0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %3La:-0x8p-1025:0:-1: ++# BZ12701 %*3La:-0x8p-1025:0:-1: ++# BZ12701 %3La:-0x0p+0:0:-1: ++# BZ12701 %*3La:-0x0p+0:0:-1: ++# BZ12701 %3La:-0x0p0:0:-1: ++# BZ12701 %*3La:-0x0p0:0:-1: ++%3La:-nan(09A_Zaz):0:-1: ++%*3La:-nan(09A_Zaz):0:-1: ++%3La:-nan():0:-1: ++%*3La:-nan():0:-1: ++%3La:nan():1:3:nan: ++%*3La:nan():0:3: ++%3La:nan(09A_Zaz):1:3:nan: ++%*3La:nan(09A_Zaz):0:3: ++%3La:0x0p0:1:3:0x0: ++%*3La:0x0p0:0:3: ++%3La:0x0p+0:1:3:0x0: ++%*3La:0x0p+0:0:3: ++%3La:0x8p-1025:1:3:0x1p3: ++%*3La:0x8p-1025:0:3: ++%3La:0x2.3456789abcdfep0123:1:3:0x1p1: ++%*3La:0x2.3456789abcdfep0123:0:3: ++%3La:0x2.3456789abcdfep+123:1:3:0x1p1: ++%*3La:0x2.3456789abcdfep+123:0:3: ++%3La:0x7.ffffffffffffcp1021:1:3:0x1.cp2: ++%*3La:0x7.ffffffffffffcp1021:0:3: ++%3La:0xf.ffffffffffff8p+1020:1:3:0x1.ep3: ++%*3La:0xf.ffffffffffff8p+1020:0:3: ++%3La:infinity:1:3:inf: ++%*3La:infinity:0:3: ++%3La:+nan():0:-1: ++%*3La:+nan():0:-1: ++%3La:+nan(09A_Zaz):0:-1: ++%*3La:+nan(09A_Zaz):0:-1: ++# BZ12701 %3La:+0x0p0:0:-1: ++# BZ12701 %*3La:+0x0p0:0:-1: ++# BZ12701 %3La:+0x0p+0:0:-1: ++# BZ12701 %*3La:+0x0p+0:0:-1: ++# BZ12701 %3La:+0x8p-1025:0:-1: ++# BZ12701 %*3La:+0x8p-1025:0:-1: ++# BZ12701 %3La:+0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*3La:+0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %3La:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*3La:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %3La:+0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*3La:+0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %3La:+0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*3La:+0xf.ffffffffffff8p+1020:0:-1: ++%3La:+infinity:0:-1: ++%*3La:+infinity:0:-1: ++%4La::0:-1: ++%*4La::0:-1: ++%4La:-infinity:1:4:-inf: ++%*4La:-infinity:0:4: ++%4La:-0xf.ffffffffffff8p+1020:1:4:-0x1.ep3: ++%*4La:-0xf.ffffffffffff8p+1020:0:4: ++%4La:-0x7.ffffffffffffcp1021:1:4:-0x1.cp2: ++%*4La:-0x7.ffffffffffffcp1021:0:4: ++%4La:-0x2.3456789abcdfep+123:1:4:-0x1p1: ++%*4La:-0x2.3456789abcdfep+123:0:4: ++%4La:-0x2.3456789abcdfep0123:1:4:-0x1p1: ++%*4La:-0x2.3456789abcdfep0123:0:4: ++%4La:-0x8p-1025:1:4:-0x1p3: ++%*4La:-0x8p-1025:0:4: ++%4La:-0x0p+0:1:4:-0x0: ++%*4La:-0x0p+0:0:4: ++%4La:-0x0p0:1:4:-0x0: ++%*4La:-0x0p0:0:4: ++%4La:-nan(09A_Zaz):1:4:-nan: ++%*4La:-nan(09A_Zaz):0:4: ++%4La:-nan():1:4:-nan: ++%*4La:-nan():0:4: ++%4La:nan():0:-1: ++%*4La:nan():0:-1: ++%4La:nan(09A_Zaz):0:-1: ++%*4La:nan(09A_Zaz):0:-1: ++# BZ12701 %4La:0x0p0:0:-1: ++# BZ12701 %*4La:0x0p0:0:-1: ++# BZ12701 %4La:0x0p+0:0:-1: ++# BZ12701 %*4La:0x0p+0:0:-1: ++# BZ12701 %4La:0x8p-1025:0:-1: ++# BZ12701 %*4La:0x8p-1025:0:-1: ++%4La:0x2.3456789abcdfep0123:1:4:0x1p1: ++%*4La:0x2.3456789abcdfep0123:0:4: ++%4La:0x2.3456789abcdfep+123:1:4:0x1p1: ++%*4La:0x2.3456789abcdfep+123:0:4: ++%4La:0x7.ffffffffffffcp1021:1:4:0x1.cp2: ++%*4La:0x7.ffffffffffffcp1021:0:4: ++%4La:0xf.ffffffffffff8p+1020:1:4:0x1.ep3: ++%*4La:0xf.ffffffffffff8p+1020:0:4: ++%4La:infinity:0:-1: ++%*4La:infinity:0:-1: ++%4La:+nan():1:4:nan: ++%*4La:+nan():0:4: ++%4La:+nan(09A_Zaz):1:4:nan: ++%*4La:+nan(09A_Zaz):0:4: ++%4La:+0x0p0:1:4:0x0: ++%*4La:+0x0p0:0:4: ++%4La:+0x0p+0:1:4:0x0: ++%*4La:+0x0p+0:0:4: ++%4La:+0x8p-1025:1:4:0x1p3: ++%*4La:+0x8p-1025:0:4: ++%4La:+0x2.3456789abcdfep0123:1:4:0x1p1: ++%*4La:+0x2.3456789abcdfep0123:0:4: ++%4La:+0x2.3456789abcdfep+123:1:4:0x1p1: ++%*4La:+0x2.3456789abcdfep+123:0:4: ++%4La:+0x7.ffffffffffffcp1021:1:4:0x1.cp2: ++%*4La:+0x7.ffffffffffffcp1021:0:4: ++%4La:+0xf.ffffffffffff8p+1020:1:4:0x1.ep3: ++%*4La:+0xf.ffffffffffff8p+1020:0:4: ++%4La:+infinity:1:4:inf: ++%*4La:+infinity:0:4: ++%5La::0:-1: ++%*5La::0:-1: ++%5La:-infinity:0:-1: ++%*5La:-infinity:0:-1: ++%5La:-0xf.ffffffffffff8p+1020:1:5:-0x1.ep3: ++%*5La:-0xf.ffffffffffff8p+1020:0:5: ++%5La:-0x7.ffffffffffffcp1021:1:5:-0x1.cp2: ++%*5La:-0x7.ffffffffffffcp1021:0:5: ++%5La:-0x2.3456789abcdfep+123:1:5:-0x1p1: ++%*5La:-0x2.3456789abcdfep+123:0:5: ++%5La:-0x2.3456789abcdfep0123:1:5:-0x1p1: ++%*5La:-0x2.3456789abcdfep0123:0:5: ++# BZ12701 %5La:-0x8p-1025:0:-1: ++# BZ12701 %*5La:-0x8p-1025:0:-1: ++# BZ12701 %5La:-0x0p+0:0:-1: ++# BZ12701 %*5La:-0x0p+0:0:-1: ++# BZ12701 %5La:-0x0p0:0:-1: ++# BZ12701 %*5La:-0x0p0:0:-1: ++%5La:-nan(09A_Zaz):0:-1: ++%*5La:-nan(09A_Zaz):0:-1: ++%5La:-nan():0:-1: ++%*5La:-nan():0:-1: ++%5La:nan():1:5:nan: ++%*5La:nan():0:5: ++%5La:nan(09A_Zaz):0:-1: ++%*5La:nan(09A_Zaz):0:-1: ++%5La:0x0p0:1:5:0x0: ++%*5La:0x0p0:0:5: ++# BZ12701 %5La:0x0p+0:0:-1: ++# BZ12701 %*5La:0x0p+0:0:-1: ++# BZ12701 %5La:0x8p-1025:0:-1: ++# BZ12701 %*5La:0x8p-1025:0:-1: ++%5La:0x2.3456789abcdfep0123:1:5:0x1.18p1: ++%*5La:0x2.3456789abcdfep0123:0:5: ++%5La:0x2.3456789abcdfep+123:1:5:0x1.18p1: ++%*5La:0x2.3456789abcdfep+123:0:5: ++%5La:0x7.ffffffffffffcp1021:1:5:0x1.fcp2: ++%*5La:0x7.ffffffffffffcp1021:0:5: ++%5La:0xf.ffffffffffff8p+1020:1:5:0x1.fep3: ++%*5La:0xf.ffffffffffff8p+1020:0:5: ++%5La:infinity:0:-1: ++%*5La:infinity:0:-1: ++%5La:+nan():0:-1: ++%*5La:+nan():0:-1: ++%5La:+nan(09A_Zaz):0:-1: ++%*5La:+nan(09A_Zaz):0:-1: ++# BZ12701 %5La:+0x0p0:0:-1: ++# BZ12701 %*5La:+0x0p0:0:-1: ++# BZ12701 %5La:+0x0p+0:0:-1: ++# BZ12701 %*5La:+0x0p+0:0:-1: ++# BZ12701 %5La:+0x8p-1025:0:-1: ++# BZ12701 %*5La:+0x8p-1025:0:-1: ++%5La:+0x2.3456789abcdfep0123:1:5:0x1p1: ++%*5La:+0x2.3456789abcdfep0123:0:5: ++%5La:+0x2.3456789abcdfep+123:1:5:0x1p1: ++%*5La:+0x2.3456789abcdfep+123:0:5: ++%5La:+0x7.ffffffffffffcp1021:1:5:0x1.cp2: ++%*5La:+0x7.ffffffffffffcp1021:0:5: ++%5La:+0xf.ffffffffffff8p+1020:1:5:0x1.ep3: ++%*5La:+0xf.ffffffffffff8p+1020:0:5: ++%5La:+infinity:0:-1: ++%*5La:+infinity:0:-1: ++%6La::0:-1: ++%*6La::0:-1: ++%6La:-infinity:0:-1: ++%*6La:-infinity:0:-1: ++%6La:-0xf.ffffffffffff8p+1020:1:6:-0x1.fep3: ++%*6La:-0xf.ffffffffffff8p+1020:0:6: ++%6La:-0x7.ffffffffffffcp1021:1:6:-0x1.fcp2: ++%*6La:-0x7.ffffffffffffcp1021:0:6: ++%6La:-0x2.3456789abcdfep+123:1:6:-0x1.18p1: ++%*6La:-0x2.3456789abcdfep+123:0:6: ++%6La:-0x2.3456789abcdfep0123:1:6:-0x1.18p1: ++%*6La:-0x2.3456789abcdfep0123:0:6: ++# BZ12701 %6La:-0x8p-1025:0:-1: ++# BZ12701 %*6La:-0x8p-1025:0:-1: ++# BZ12701 %6La:-0x0p+0:0:-1: ++# BZ12701 %*6La:-0x0p+0:0:-1: ++%6La:-0x0p0:1:6:-0x0: ++%*6La:-0x0p0:0:6: ++%6La:-nan(09A_Zaz):0:-1: ++%*6La:-nan(09A_Zaz):0:-1: ++%6La:-nan():1:6:-nan: ++%*6La:-nan():0:6: ++%6La:nan():1:5:nan: ++%*6La:nan():0:5: ++%6La:nan(09A_Zaz):0:-1: ++%*6La:nan(09A_Zaz):0:-1: ++%6La:0x0p0:1:5:0x0: ++%*6La:0x0p0:0:5: ++%6La:0x0p+0:1:6:0x0: ++%*6La:0x0p+0:0:6: ++%6La:0x8p-1025:1:6:0x1p2: ++%*6La:0x8p-1025:0:6: ++%6La:0x2.3456789abcdfep0123:1:6:0x1.1ap1: ++%*6La:0x2.3456789abcdfep0123:0:6: ++%6La:0x2.3456789abcdfep+123:1:6:0x1.1ap1: ++%*6La:0x2.3456789abcdfep+123:0:6: ++%6La:0x7.ffffffffffffcp1021:1:6:0x1.ffcp2: ++%*6La:0x7.ffffffffffffcp1021:0:6: ++%6La:0xf.ffffffffffff8p+1020:1:6:0x1.ffep3: ++%*6La:0xf.ffffffffffff8p+1020:0:6: ++%6La:infinity:0:-1: ++%*6La:infinity:0:-1: ++%6La:+nan():1:6:nan: ++%*6La:+nan():0:6: ++%6La:+nan(09A_Zaz):0:-1: ++%*6La:+nan(09A_Zaz):0:-1: ++%6La:+0x0p0:1:6:0x0: ++%*6La:+0x0p0:0:6: ++# BZ12701 %6La:+0x0p+0:0:-1: ++# BZ12701 %*6La:+0x0p+0:0:-1: ++# BZ12701 %6La:+0x8p-1025:0:-1: ++# BZ12701 %*6La:+0x8p-1025:0:-1: ++%6La:+0x2.3456789abcdfep0123:1:6:0x1.18p1: ++%*6La:+0x2.3456789abcdfep0123:0:6: ++%6La:+0x2.3456789abcdfep+123:1:6:0x1.18p1: ++%*6La:+0x2.3456789abcdfep+123:0:6: ++%6La:+0x7.ffffffffffffcp1021:1:6:0x1.fcp2: ++%*6La:+0x7.ffffffffffffcp1021:0:6: ++%6La:+0xf.ffffffffffff8p+1020:1:6:0x1.fep3: ++%*6La:+0xf.ffffffffffff8p+1020:0:6: ++%6La:+infinity:0:-1: ++%*6La:+infinity:0:-1: ++%20La::0:-1: ++%*20La::0:-1: ++%20La:-infinity:1:9:-inf: ++%*20La:-infinity:0:9: ++# BZ12701 %20La:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*20La:-0xf.ffffffffffff8p+1020:0:-1: ++%20La:-0x7.ffffffffffffcp1021:1:20:-0x1.fffffffffffffp3: ++%*20La:-0x7.ffffffffffffcp1021:0:20: ++# BZ12701 %20La:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*20La:-0x2.3456789abcdfep+123:0:-1: ++%20La:-0x2.3456789abcdfep0123:1:20:-0x1.1a2b3c4d5e6ffp1: ++%*20La:-0x2.3456789abcdfep0123:0:20: ++%20La:-0x8p-1025:1:10:-0x1p-1022: ++%*20La:-0x8p-1025:0:10: ++%20La:-0x0p+0:1:7:-0x0: ++%*20La:-0x0p+0:0:7: ++%20La:-0x0p0:1:6:-0x0: ++%*20La:-0x0p0:0:6: ++%20La:-nan(09A_Zaz):1:13:-nan: ++%*20La:-nan(09A_Zaz):0:13: ++%20La:-nan():1:6:-nan: ++%*20La:-nan():0:6: ++%20La:nan():1:5:nan: ++%*20La:nan():0:5: ++%20La:nan(09A_Zaz):1:12:nan: ++%*20La:nan(09A_Zaz):0:12: ++%20La:0x0p0:1:5:0x0: ++%*20La:0x0p0:0:5: ++%20La:0x0p+0:1:6:0x0: ++%*20La:0x0p+0:0:6: ++%20La:0x8p-1025:1:9:0x1p-1022: ++%*20La:0x8p-1025:0:9: ++%20La:0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20La:0x2.3456789abcdfep0123:0:20: ++%20La:0x2.3456789abcdfep+123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20La:0x2.3456789abcdfep+123:0:20: ++%20La:0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp12: ++%*20La:0x7.ffffffffffffcp1021:0:20: ++%20La:0xf.ffffffffffff8p+1020:1:20:0x1.fffffffffffffp4: ++%*20La:0xf.ffffffffffff8p+1020:0:20: ++%20La:infinity:1:8:inf: ++%*20La:infinity:0:8: ++%20La:+nan():1:6:nan: ++%*20La:+nan():0:6: ++%20La:+nan(09A_Zaz):1:13:nan: ++%*20La:+nan(09A_Zaz):0:13: ++%20La:+0x0p0:1:6:0x0: ++%*20La:+0x0p0:0:6: ++%20La:+0x0p+0:1:7:0x0: ++%*20La:+0x0p+0:0:7: ++%20La:+0x8p-1025:1:10:0x1p-1022: ++%*20La:+0x8p-1025:0:10: ++%20La:+0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp1: ++%*20La:+0x2.3456789abcdfep0123:0:20: ++# BZ12701 %20La:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*20La:+0x2.3456789abcdfep+123:0:-1: ++%20La:+0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp3: ++%*20La:+0x7.ffffffffffffcp1021:0:20: ++# BZ12701 %20La:+0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*20La:+0xf.ffffffffffff8p+1020:0:-1: ++%20La:+infinity:1:9:inf: ++%*20La:+infinity:0:9: ++%32La::0:-1: ++%*32La::0:-1: ++%32La:-infinity:1:9:-inf: ++%*32La:-infinity:0:9: ++%32La:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023: ++%*32La:-0xf.ffffffffffff8p+1020:0:24: ++%32La:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023: ++%*32La:-0x7.ffffffffffffcp1021:0:23: ++%32La:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32La:-0x2.3456789abcdfep+123:0:23: ++%32La:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32La:-0x2.3456789abcdfep0123:0:23: ++%32La:-0x8p-1025:1:10:-0x1p-1022: ++%*32La:-0x8p-1025:0:10: ++%32La:-0x0p+0:1:7:-0x0: ++%*32La:-0x0p+0:0:7: ++%32La:-0x0p0:1:6:-0x0: ++%*32La:-0x0p0:0:6: ++%32La:-nan(09A_Zaz):1:13:-nan: ++%*32La:-nan(09A_Zaz):0:13: ++%32La:-nan():1:6:-nan: ++%*32La:-nan():0:6: ++%32La:nan():1:5:nan: ++%*32La:nan():0:5: ++%32La:nan(09A_Zaz):1:12:nan: ++%*32La:nan(09A_Zaz):0:12: ++%32La:0x0p0:1:5:0x0: ++%*32La:0x0p0:0:5: ++%32La:0x0p+0:1:6:0x0: ++%*32La:0x0p+0:0:6: ++%32La:0x8p-1025:1:9:0x1p-1022: ++%*32La:0x8p-1025:0:9: ++%32La:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32La:0x2.3456789abcdfep0123:0:22: ++%32La:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32La:0x2.3456789abcdfep+123:0:22: ++%32La:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023: ++%*32La:0x7.ffffffffffffcp1021:0:22: ++%32La:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023: ++%*32La:0xf.ffffffffffff8p+1020:0:23: ++%32La:infinity:1:8:inf: ++%*32La:infinity:0:8: ++%32La:+nan():1:6:nan: ++%*32La:+nan():0:6: ++%32La:+nan(09A_Zaz):1:13:nan: ++%*32La:+nan(09A_Zaz):0:13: ++%32La:+0x0p0:1:6:0x0: ++%*32La:+0x0p0:0:6: ++%32La:+0x0p+0:1:7:0x0: ++%*32La:+0x0p+0:0:7: ++%32La:+0x8p-1025:1:10:0x1p-1022: ++%*32La:+0x8p-1025:0:10: ++%32La:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32La:+0x2.3456789abcdfep0123:0:23: ++%32La:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32La:+0x2.3456789abcdfep+123:0:23: ++%32La:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*32La:+0x7.ffffffffffffcp1021:0:23: ++%32La:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*32La:+0xf.ffffffffffff8p+1020:0:24: ++%32La:+infinity:1:9:inf: ++%*32La:+infinity:0:9: ++%5La: :0:-1: ++%*5La: :0:-1: ++%5La: -infinity:0:-1: ++%*5La: -infinity:0:-1: ++%5La: -0xf.ffffffffffff8p+1020:1:6:-0x1.ep3: ++%*5La: -0xf.ffffffffffff8p+1020:0:6: ++%5La: -0x7.ffffffffffffcp1021:1:6:-0x1.cp2: ++%*5La: -0x7.ffffffffffffcp1021:0:6: ++%5La: -0x2.3456789abcdfep+123:1:6:-0x1p1: ++%*5La: -0x2.3456789abcdfep+123:0:6: ++%5La: -0x2.3456789abcdfep0123:1:6:-0x1p1: ++%*5La: -0x2.3456789abcdfep0123:0:6: ++# BZ12701 %5La: -0x8p-1025:0:-1: ++# BZ12701 %*5La: -0x8p-1025:0:-1: ++# BZ12701 %5La: -0x0p+0:0:-1: ++# BZ12701 %*5La: -0x0p+0:0:-1: ++# BZ12701 %5La: -0x0p0:0:-1: ++# BZ12701 %*5La: -0x0p0:0:-1: ++%5La: -nan(09A_Zaz):0:-1: ++%*5La: -nan(09A_Zaz):0:-1: ++%5La: -nan():0:-1: ++%*5La: -nan():0:-1: ++%5La: nan():1:6:nan: ++%*5La: nan():0:6: ++%5La: nan(09A_Zaz):0:-1: ++%*5La: nan(09A_Zaz):0:-1: ++%5La: 0x0p0:1:6:0x0: ++%*5La: 0x0p0:0:6: ++# BZ12701 %5La: 0x0p+0:0:-1: ++# BZ12701 %*5La: 0x0p+0:0:-1: ++# BZ12701 %5La: 0x8p-1025:0:-1: ++# BZ12701 %*5La: 0x8p-1025:0:-1: ++%5La: 0x2.3456789abcdfep0123:1:6:0x1.18p1: ++%*5La: 0x2.3456789abcdfep0123:0:6: ++%5La: 0x2.3456789abcdfep+123:1:6:0x1.18p1: ++%*5La: 0x2.3456789abcdfep+123:0:6: ++%5La: 0x7.ffffffffffffcp1021:1:6:0x1.fcp2: ++%*5La: 0x7.ffffffffffffcp1021:0:6: ++%5La: 0xf.ffffffffffff8p+1020:1:6:0x1.fep3: ++%*5La: 0xf.ffffffffffff8p+1020:0:6: ++%5La: infinity:0:-1: ++%*5La: infinity:0:-1: ++%5La: +nan():0:-1: ++%*5La: +nan():0:-1: ++%5La: +nan(09A_Zaz):0:-1: ++%*5La: +nan(09A_Zaz):0:-1: ++# BZ12701 %5La: +0x0p0:0:-1: ++# BZ12701 %*5La: +0x0p0:0:-1: ++# BZ12701 %5La: +0x0p+0:0:-1: ++# BZ12701 %*5La: +0x0p+0:0:-1: ++# BZ12701 %5La: +0x8p-1025:0:-1: ++# BZ12701 %*5La: +0x8p-1025:0:-1: ++%5La: +0x2.3456789abcdfep0123:1:6:0x1p1: ++%*5La: +0x2.3456789abcdfep0123:0:6: ++%5La: +0x2.3456789abcdfep+123:1:6:0x1p1: ++%*5La: +0x2.3456789abcdfep+123:0:6: ++%5La: +0x7.ffffffffffffcp1021:1:6:0x1.cp2: ++%*5La: +0x7.ffffffffffffcp1021:0:6: ++%5La: +0xf.ffffffffffff8p+1020:1:6:0x1.ep3: ++%*5La: +0xf.ffffffffffff8p+1020:0:6: ++%5La: +infinity:0:-1: ++%*5La: +infinity:0:-1: ++%32La: :0:-1: ++%*32La: :0:-1: ++%32La: -infinity:1:10:-inf: ++%*32La: -infinity:0:10: ++%32La: -0xf.ffffffffffff8p+1020:1:25:-0x1.fffffffffffffp1023: ++%*32La: -0xf.ffffffffffff8p+1020:0:25: ++%32La: -0x7.ffffffffffffcp1021:1:24:-0x1.fffffffffffffp1023: ++%*32La: -0x7.ffffffffffffcp1021:0:24: ++%32La: -0x2.3456789abcdfep+123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32La: -0x2.3456789abcdfep+123:0:24: ++%32La: -0x2.3456789abcdfep0123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32La: -0x2.3456789abcdfep0123:0:24: ++%32La: -0x8p-1025:1:11:-0x1p-1022: ++%*32La: -0x8p-1025:0:11: ++%32La: -0x0p+0:1:8:-0x0: ++%*32La: -0x0p+0:0:8: ++%32La: -0x0p0:1:7:-0x0: ++%*32La: -0x0p0:0:7: ++%32La: -nan(09A_Zaz):1:14:-nan: ++%*32La: -nan(09A_Zaz):0:14: ++%32La: -nan():1:7:-nan: ++%*32La: -nan():0:7: ++%32La: nan():1:6:nan: ++%*32La: nan():0:6: ++%32La: nan(09A_Zaz):1:13:nan: ++%*32La: nan(09A_Zaz):0:13: ++%32La: 0x0p0:1:6:0x0: ++%*32La: 0x0p0:0:6: ++%32La: 0x0p+0:1:7:0x0: ++%*32La: 0x0p+0:0:7: ++%32La: 0x8p-1025:1:10:0x1p-1022: ++%*32La: 0x8p-1025:0:10: ++%32La: 0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32La: 0x2.3456789abcdfep0123:0:23: ++%32La: 0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32La: 0x2.3456789abcdfep+123:0:23: ++%32La: 0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*32La: 0x7.ffffffffffffcp1021:0:23: ++%32La: 0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*32La: 0xf.ffffffffffff8p+1020:0:24: ++%32La: infinity:1:9:inf: ++%*32La: infinity:0:9: ++%32La: +nan():1:7:nan: ++%*32La: +nan():0:7: ++%32La: +nan(09A_Zaz):1:14:nan: ++%*32La: +nan(09A_Zaz):0:14: ++%32La: +0x0p0:1:7:0x0: ++%*32La: +0x0p0:0:7: ++%32La: +0x0p+0:1:8:0x0: ++%*32La: +0x0p+0:0:8: ++%32La: +0x8p-1025:1:11:0x1p-1022: ++%*32La: +0x8p-1025:0:11: ++%32La: +0x2.3456789abcdfep0123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32La: +0x2.3456789abcdfep0123:0:24: ++%32La: +0x2.3456789abcdfep+123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32La: +0x2.3456789abcdfep+123:0:24: ++%32La: +0x7.ffffffffffffcp1021:1:24:0x1.fffffffffffffp1023: ++%*32La: +0x7.ffffffffffffcp1021:0:24: ++%32La: +0xf.ffffffffffff8p+1020:1:25:0x1.fffffffffffffp1023: ++%*32La: +0xf.ffffffffffff8p+1020:0:25: ++%32La: +infinity:1:10:inf: ++%*32La: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input +new file mode 100644 +index 0000000000000000..8a0e6005e3a86bc8 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input +@@ -0,0 +1,682 @@ ++%LA::0:-1: ++%*LA::0:-1: ++%LA:-INFINITY:1:9:-inf: ++%*LA:-INFINITY:0:9: ++%LA:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023: ++%*LA:-0XF.FFFFFFFFFFFF8P+1020:0:24: ++%LA:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023: ++%*LA:-0X7.FFFFFFFFFFFFCP1021:0:23: ++%LA:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*LA:-0X2.3456789ABCDFEP+123:0:23: ++%LA:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*LA:-0X2.3456789ABCDFEP0123:0:23: ++%LA:-0X8P-1025:1:10:-0x1p-1022: ++%*LA:-0X8P-1025:0:10: ++%LA:-0X0P+0:1:7:-0x0: ++%*LA:-0X0P+0:0:7: ++%LA:-0X0P0:1:6:-0x0: ++%*LA:-0X0P0:0:6: ++%LA:-NAN(09A_Zaz):1:13:-nan: ++%*LA:-NAN(09A_Zaz):0:13: ++%LA:-NAN():1:6:-nan: ++%*LA:-NAN():0:6: ++%LA:NAN():1:5:nan: ++%*LA:NAN():0:5: ++%LA:NAN(09A_Zaz):1:12:nan: ++%*LA:NAN(09A_Zaz):0:12: ++%LA:0X0P0:1:5:0x0: ++%*LA:0X0P0:0:5: ++%LA:0X0P+0:1:6:0x0: ++%*LA:0X0P+0:0:6: ++%LA:0X8P-1025:1:9:0x1p-1022: ++%*LA:0X8P-1025:0:9: ++%LA:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*LA:0X2.3456789ABCDFEP0123:0:22: ++%LA:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*LA:0X2.3456789ABCDFEP+123:0:22: ++%LA:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023: ++%*LA:0X7.FFFFFFFFFFFFCP1021:0:22: ++%LA:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023: ++%*LA:0XF.FFFFFFFFFFFF8P+1020:0:23: ++%LA:INFINITY:1:8:inf: ++%*LA:INFINITY:0:8: ++%LA:+NAN():1:6:nan: ++%*LA:+NAN():0:6: ++%LA:+NAN(09A_Zaz):1:13:nan: ++%*LA:+NAN(09A_Zaz):0:13: ++%LA:+0X0P0:1:6:0x0: ++%*LA:+0X0P0:0:6: ++%LA:+0X0P+0:1:7:0x0: ++%*LA:+0X0P+0:0:7: ++%LA:+0X8P-1025:1:10:0x1p-1022: ++%*LA:+0X8P-1025:0:10: ++%LA:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*LA:+0X2.3456789ABCDFEP0123:0:23: ++%LA:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*LA:+0X2.3456789ABCDFEP+123:0:23: ++%LA:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*LA:+0X7.FFFFFFFFFFFFCP1021:0:23: ++%LA:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*LA:+0XF.FFFFFFFFFFFF8P+1020:0:24: ++%LA:+INFINITY:1:9:inf: ++%*LA:+INFINITY:0:9: ++%1LA::0:-1: ++%*1LA::0:-1: ++%1LA:-INFINITY:0:-1: ++%*1LA:-INFINITY:0:-1: ++%1LA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%*1LA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%1LA:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++%*1LA:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++%1LA:-0X2.3456789ABCDFEP+123:0:-1: ++%*1LA:-0X2.3456789ABCDFEP+123:0:-1: ++%1LA:-0X2.3456789ABCDFEP0123:0:-1: ++%*1LA:-0X2.3456789ABCDFEP0123:0:-1: ++%1LA:-0X8P-1025:0:-1: ++%*1LA:-0X8P-1025:0:-1: ++%1LA:-0X0P+0:0:-1: ++%*1LA:-0X0P+0:0:-1: ++%1LA:-0X0P0:0:-1: ++%*1LA:-0X0P0:0:-1: ++%1LA:-NAN(09A_Zaz):0:-1: ++%*1LA:-NAN(09A_Zaz):0:-1: ++%1LA:-NAN():0:-1: ++%*1LA:-NAN():0:-1: ++%1LA:NAN():0:-1: ++%*1LA:NAN():0:-1: ++%1LA:NAN(09A_Zaz):0:-1: ++%*1LA:NAN(09A_Zaz):0:-1: ++%1LA:0X0P0:1:1:0x0: ++%*1LA:0X0P0:0:1: ++%1LA:0X0P+0:1:1:0x0: ++%*1LA:0X0P+0:0:1: ++%1LA:0X8P-1025:1:1:0x0: ++%*1LA:0X8P-1025:0:1: ++%1LA:0X2.3456789ABCDFEP0123:1:1:0x0: ++%*1LA:0X2.3456789ABCDFEP0123:0:1: ++%1LA:0X2.3456789ABCDFEP+123:1:1:0x0: ++%*1LA:0X2.3456789ABCDFEP+123:0:1: ++%1LA:0X7.FFFFFFFFFFFFCP1021:1:1:0x0: ++%*1LA:0X7.FFFFFFFFFFFFCP1021:0:1: ++%1LA:0XF.FFFFFFFFFFFF8P+1020:1:1:0x0: ++%*1LA:0XF.FFFFFFFFFFFF8P+1020:0:1: ++%1LA:INFINITY:0:-1: ++%*1LA:INFINITY:0:-1: ++%1LA:+NAN():0:-1: ++%*1LA:+NAN():0:-1: ++%1LA:+NAN(09A_Zaz):0:-1: ++%*1LA:+NAN(09A_Zaz):0:-1: ++%1LA:+0X0P0:0:-1: ++%*1LA:+0X0P0:0:-1: ++%1LA:+0X0P+0:0:-1: ++%*1LA:+0X0P+0:0:-1: ++%1LA:+0X8P-1025:0:-1: ++%*1LA:+0X8P-1025:0:-1: ++%1LA:+0X2.3456789ABCDFEP0123:0:-1: ++%*1LA:+0X2.3456789ABCDFEP0123:0:-1: ++%1LA:+0X2.3456789ABCDFEP+123:0:-1: ++%*1LA:+0X2.3456789ABCDFEP+123:0:-1: ++%1LA:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++%*1LA:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++%1LA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%*1LA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%1LA:+INFINITY:0:-1: ++%*1LA:+INFINITY:0:-1: ++%2LA::0:-1: ++%*2LA::0:-1: ++%2LA:-INFINITY:0:-1: ++%*2LA:-INFINITY:0:-1: ++%2LA:-0XF.FFFFFFFFFFFF8P+1020:1:2:-0x0: ++%*2LA:-0XF.FFFFFFFFFFFF8P+1020:0:2: ++%2LA:-0X7.FFFFFFFFFFFFCP1021:1:2:-0x0: ++%*2LA:-0X7.FFFFFFFFFFFFCP1021:0:2: ++%2LA:-0X2.3456789ABCDFEP+123:1:2:-0x0: ++%*2LA:-0X2.3456789ABCDFEP+123:0:2: ++%2LA:-0X2.3456789ABCDFEP0123:1:2:-0x0: ++%*2LA:-0X2.3456789ABCDFEP0123:0:2: ++%2LA:-0X8P-1025:1:2:-0x0: ++%*2LA:-0X8P-1025:0:2: ++%2LA:-0X0P+0:1:2:-0x0: ++%*2LA:-0X0P+0:0:2: ++%2LA:-0X0P0:1:2:-0x0: ++%*2LA:-0X0P0:0:2: ++%2LA:-NAN(09A_Zaz):0:-1: ++%*2LA:-NAN(09A_Zaz):0:-1: ++%2LA:-NAN():0:-1: ++%*2LA:-NAN():0:-1: ++%2LA:NAN():0:-1: ++%*2LA:NAN():0:-1: ++%2LA:NAN(09A_Zaz):0:-1: ++%*2LA:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LA:0X0P0:0:-1: ++# BZ12701 %*2LA:0X0P0:0:-1: ++# BZ12701 %2LA:0X0P+0:0:-1: ++# BZ12701 %*2LA:0X0P+0:0:-1: ++# BZ12701 %2LA:0X8P-1025:0:-1: ++# BZ12701 %*2LA:0X8P-1025:0:-1: ++# BZ12701 %2LA:0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*2LA:0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %2LA:0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*2LA:0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %2LA:0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*2LA:0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %2LA:0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*2LA:0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%2LA:INFINITY:0:-1: ++%*2LA:INFINITY:0:-1: ++%2LA:+NAN():0:-1: ++%*2LA:+NAN():0:-1: ++%2LA:+NAN(09A_Zaz):0:-1: ++%*2LA:+NAN(09A_Zaz):0:-1: ++%2LA:+0X0P0:1:2:0x0: ++%*2LA:+0X0P0:0:2: ++%2LA:+0X0P+0:1:2:0x0: ++%*2LA:+0X0P+0:0:2: ++%2LA:+0X8P-1025:1:2:0x0: ++%*2LA:+0X8P-1025:0:2: ++%2LA:+0X2.3456789ABCDFEP0123:1:2:0x0: ++%*2LA:+0X2.3456789ABCDFEP0123:0:2: ++%2LA:+0X2.3456789ABCDFEP+123:1:2:0x0: ++%*2LA:+0X2.3456789ABCDFEP+123:0:2: ++%2LA:+0X7.FFFFFFFFFFFFCP1021:1:2:0x0: ++%*2LA:+0X7.FFFFFFFFFFFFCP1021:0:2: ++%2LA:+0XF.FFFFFFFFFFFF8P+1020:1:2:0x0: ++%*2LA:+0XF.FFFFFFFFFFFF8P+1020:0:2: ++%2LA:+INFINITY:0:-1: ++%*2LA:+INFINITY:0:-1: ++%3LA::0:-1: ++%*3LA::0:-1: ++%3LA:-INFINITY:0:-1: ++%*3LA:-INFINITY:0:-1: ++# BZ12701 %3LA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*3LA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %3LA:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*3LA:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %3LA:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*3LA:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %3LA:-0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*3LA:-0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %3LA:-0X8P-1025:0:-1: ++# BZ12701 %*3LA:-0X8P-1025:0:-1: ++# BZ12701 %3LA:-0X0P+0:0:-1: ++# BZ12701 %*3LA:-0X0P+0:0:-1: ++# BZ12701 %3LA:-0X0P0:0:-1: ++# BZ12701 %*3LA:-0X0P0:0:-1: ++%3LA:-NAN(09A_Zaz):0:-1: ++%*3LA:-NAN(09A_Zaz):0:-1: ++%3LA:-NAN():0:-1: ++%*3LA:-NAN():0:-1: ++%3LA:NAN():1:3:nan: ++%*3LA:NAN():0:3: ++%3LA:NAN(09A_Zaz):1:3:nan: ++%*3LA:NAN(09A_Zaz):0:3: ++%3LA:0X0P0:1:3:0x0: ++%*3LA:0X0P0:0:3: ++%3LA:0X0P+0:1:3:0x0: ++%*3LA:0X0P+0:0:3: ++%3LA:0X8P-1025:1:3:0x1p3: ++%*3LA:0X8P-1025:0:3: ++%3LA:0X2.3456789ABCDFEP0123:1:3:0x1p1: ++%*3LA:0X2.3456789ABCDFEP0123:0:3: ++%3LA:0X2.3456789ABCDFEP+123:1:3:0x1p1: ++%*3LA:0X2.3456789ABCDFEP+123:0:3: ++%3LA:0X7.FFFFFFFFFFFFCP1021:1:3:0x1.cp2: ++%*3LA:0X7.FFFFFFFFFFFFCP1021:0:3: ++%3LA:0XF.FFFFFFFFFFFF8P+1020:1:3:0x1.ep3: ++%*3LA:0XF.FFFFFFFFFFFF8P+1020:0:3: ++%3LA:INFINITY:1:3:inf: ++%*3LA:INFINITY:0:3: ++%3LA:+NAN():0:-1: ++%*3LA:+NAN():0:-1: ++%3LA:+NAN(09A_Zaz):0:-1: ++%*3LA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LA:+0X0P0:0:-1: ++# BZ12701 %*3LA:+0X0P0:0:-1: ++# BZ12701 %3LA:+0X0P+0:0:-1: ++# BZ12701 %*3LA:+0X0P+0:0:-1: ++# BZ12701 %3LA:+0X8P-1025:0:-1: ++# BZ12701 %*3LA:+0X8P-1025:0:-1: ++# BZ12701 %3LA:+0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*3LA:+0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %3LA:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*3LA:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %3LA:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*3LA:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %3LA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*3LA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%3LA:+INFINITY:0:-1: ++%*3LA:+INFINITY:0:-1: ++%4LA::0:-1: ++%*4LA::0:-1: ++%4LA:-INFINITY:1:4:-inf: ++%*4LA:-INFINITY:0:4: ++%4LA:-0XF.FFFFFFFFFFFF8P+1020:1:4:-0x1.ep3: ++%*4LA:-0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4LA:-0X7.FFFFFFFFFFFFCP1021:1:4:-0x1.cp2: ++%*4LA:-0X7.FFFFFFFFFFFFCP1021:0:4: ++%4LA:-0X2.3456789ABCDFEP+123:1:4:-0x1p1: ++%*4LA:-0X2.3456789ABCDFEP+123:0:4: ++%4LA:-0X2.3456789ABCDFEP0123:1:4:-0x1p1: ++%*4LA:-0X2.3456789ABCDFEP0123:0:4: ++%4LA:-0X8P-1025:1:4:-0x1p3: ++%*4LA:-0X8P-1025:0:4: ++%4LA:-0X0P+0:1:4:-0x0: ++%*4LA:-0X0P+0:0:4: ++%4LA:-0X0P0:1:4:-0x0: ++%*4LA:-0X0P0:0:4: ++%4LA:-NAN(09A_Zaz):1:4:-nan: ++%*4LA:-NAN(09A_Zaz):0:4: ++%4LA:-NAN():1:4:-nan: ++%*4LA:-NAN():0:4: ++%4LA:NAN():0:-1: ++%*4LA:NAN():0:-1: ++%4LA:NAN(09A_Zaz):0:-1: ++%*4LA:NAN(09A_Zaz):0:-1: ++# BZ12701 %4LA:0X0P0:0:-1: ++# BZ12701 %*4LA:0X0P0:0:-1: ++# BZ12701 %4LA:0X0P+0:0:-1: ++# BZ12701 %*4LA:0X0P+0:0:-1: ++# BZ12701 %4LA:0X8P-1025:0:-1: ++# BZ12701 %*4LA:0X8P-1025:0:-1: ++%4LA:0X2.3456789ABCDFEP0123:1:4:0x1p1: ++%*4LA:0X2.3456789ABCDFEP0123:0:4: ++%4LA:0X2.3456789ABCDFEP+123:1:4:0x1p1: ++%*4LA:0X2.3456789ABCDFEP+123:0:4: ++%4LA:0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2: ++%*4LA:0X7.FFFFFFFFFFFFCP1021:0:4: ++%4LA:0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3: ++%*4LA:0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4LA:INFINITY:0:-1: ++%*4LA:INFINITY:0:-1: ++%4LA:+NAN():1:4:nan: ++%*4LA:+NAN():0:4: ++%4LA:+NAN(09A_Zaz):1:4:nan: ++%*4LA:+NAN(09A_Zaz):0:4: ++%4LA:+0X0P0:1:4:0x0: ++%*4LA:+0X0P0:0:4: ++%4LA:+0X0P+0:1:4:0x0: ++%*4LA:+0X0P+0:0:4: ++%4LA:+0X8P-1025:1:4:0x1p3: ++%*4LA:+0X8P-1025:0:4: ++%4LA:+0X2.3456789ABCDFEP0123:1:4:0x1p1: ++%*4LA:+0X2.3456789ABCDFEP0123:0:4: ++%4LA:+0X2.3456789ABCDFEP+123:1:4:0x1p1: ++%*4LA:+0X2.3456789ABCDFEP+123:0:4: ++%4LA:+0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2: ++%*4LA:+0X7.FFFFFFFFFFFFCP1021:0:4: ++%4LA:+0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3: ++%*4LA:+0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4LA:+INFINITY:1:4:inf: ++%*4LA:+INFINITY:0:4: ++%5LA::0:-1: ++%*5LA::0:-1: ++%5LA:-INFINITY:0:-1: ++%*5LA:-INFINITY:0:-1: ++%5LA:-0XF.FFFFFFFFFFFF8P+1020:1:5:-0x1.ep3: ++%*5LA:-0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5LA:-0X7.FFFFFFFFFFFFCP1021:1:5:-0x1.cp2: ++%*5LA:-0X7.FFFFFFFFFFFFCP1021:0:5: ++%5LA:-0X2.3456789ABCDFEP+123:1:5:-0x1p1: ++%*5LA:-0X2.3456789ABCDFEP+123:0:5: ++%5LA:-0X2.3456789ABCDFEP0123:1:5:-0x1p1: ++%*5LA:-0X2.3456789ABCDFEP0123:0:5: ++# BZ12701 %5LA:-0X8P-1025:0:-1: ++# BZ12701 %*5LA:-0X8P-1025:0:-1: ++# BZ12701 %5LA:-0X0P+0:0:-1: ++# BZ12701 %*5LA:-0X0P+0:0:-1: ++# BZ12701 %5LA:-0X0P0:0:-1: ++# BZ12701 %*5LA:-0X0P0:0:-1: ++%5LA:-NAN(09A_Zaz):0:-1: ++%*5LA:-NAN(09A_Zaz):0:-1: ++%5LA:-NAN():0:-1: ++%*5LA:-NAN():0:-1: ++%5LA:NAN():1:5:nan: ++%*5LA:NAN():0:5: ++%5LA:NAN(09A_Zaz):0:-1: ++%*5LA:NAN(09A_Zaz):0:-1: ++%5LA:0X0P0:1:5:0x0: ++%*5LA:0X0P0:0:5: ++# BZ12701 %5LA:0X0P+0:0:-1: ++# BZ12701 %*5LA:0X0P+0:0:-1: ++# BZ12701 %5LA:0X8P-1025:0:-1: ++# BZ12701 %*5LA:0X8P-1025:0:-1: ++%5LA:0X2.3456789ABCDFEP0123:1:5:0x1.18p1: ++%*5LA:0X2.3456789ABCDFEP0123:0:5: ++%5LA:0X2.3456789ABCDFEP+123:1:5:0x1.18p1: ++%*5LA:0X2.3456789ABCDFEP+123:0:5: ++%5LA:0X7.FFFFFFFFFFFFCP1021:1:5:0x1.fcp2: ++%*5LA:0X7.FFFFFFFFFFFFCP1021:0:5: ++%5LA:0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.fep3: ++%*5LA:0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5LA:INFINITY:0:-1: ++%*5LA:INFINITY:0:-1: ++%5LA:+NAN():0:-1: ++%*5LA:+NAN():0:-1: ++%5LA:+NAN(09A_Zaz):0:-1: ++%*5LA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5LA:+0X0P0:0:-1: ++# BZ12701 %*5LA:+0X0P0:0:-1: ++# BZ12701 %5LA:+0X0P+0:0:-1: ++# BZ12701 %*5LA:+0X0P+0:0:-1: ++# BZ12701 %5LA:+0X8P-1025:0:-1: ++# BZ12701 %*5LA:+0X8P-1025:0:-1: ++%5LA:+0X2.3456789ABCDFEP0123:1:5:0x1p1: ++%*5LA:+0X2.3456789ABCDFEP0123:0:5: ++%5LA:+0X2.3456789ABCDFEP+123:1:5:0x1p1: ++%*5LA:+0X2.3456789ABCDFEP+123:0:5: ++%5LA:+0X7.FFFFFFFFFFFFCP1021:1:5:0x1.cp2: ++%*5LA:+0X7.FFFFFFFFFFFFCP1021:0:5: ++%5LA:+0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.ep3: ++%*5LA:+0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5LA:+INFINITY:0:-1: ++%*5LA:+INFINITY:0:-1: ++%6LA::0:-1: ++%*6LA::0:-1: ++%6LA:-INFINITY:0:-1: ++%*6LA:-INFINITY:0:-1: ++%6LA:-0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.fep3: ++%*6LA:-0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6LA:-0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.fcp2: ++%*6LA:-0X7.FFFFFFFFFFFFCP1021:0:6: ++%6LA:-0X2.3456789ABCDFEP+123:1:6:-0x1.18p1: ++%*6LA:-0X2.3456789ABCDFEP+123:0:6: ++%6LA:-0X2.3456789ABCDFEP0123:1:6:-0x1.18p1: ++%*6LA:-0X2.3456789ABCDFEP0123:0:6: ++# BZ12701 %6LA:-0X8P-1025:0:-1: ++# BZ12701 %*6LA:-0X8P-1025:0:-1: ++# BZ12701 %6LA:-0X0P+0:0:-1: ++# BZ12701 %*6LA:-0X0P+0:0:-1: ++%6LA:-0X0P0:1:6:-0x0: ++%*6LA:-0X0P0:0:6: ++%6LA:-NAN(09A_Zaz):0:-1: ++%*6LA:-NAN(09A_Zaz):0:-1: ++%6LA:-NAN():1:6:-nan: ++%*6LA:-NAN():0:6: ++%6LA:NAN():1:5:nan: ++%*6LA:NAN():0:5: ++%6LA:NAN(09A_Zaz):0:-1: ++%*6LA:NAN(09A_Zaz):0:-1: ++%6LA:0X0P0:1:5:0x0: ++%*6LA:0X0P0:0:5: ++%6LA:0X0P+0:1:6:0x0: ++%*6LA:0X0P+0:0:6: ++%6LA:0X8P-1025:1:6:0x1p2: ++%*6LA:0X8P-1025:0:6: ++%6LA:0X2.3456789ABCDFEP0123:1:6:0x1.1ap1: ++%*6LA:0X2.3456789ABCDFEP0123:0:6: ++%6LA:0X2.3456789ABCDFEP+123:1:6:0x1.1ap1: ++%*6LA:0X2.3456789ABCDFEP+123:0:6: ++%6LA:0X7.FFFFFFFFFFFFCP1021:1:6:0x1.ffcp2: ++%*6LA:0X7.FFFFFFFFFFFFCP1021:0:6: ++%6LA:0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ffep3: ++%*6LA:0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6LA:INFINITY:0:-1: ++%*6LA:INFINITY:0:-1: ++%6LA:+NAN():1:6:nan: ++%*6LA:+NAN():0:6: ++%6LA:+NAN(09A_Zaz):0:-1: ++%*6LA:+NAN(09A_Zaz):0:-1: ++%6LA:+0X0P0:1:6:0x0: ++%*6LA:+0X0P0:0:6: ++# BZ12701 %6LA:+0X0P+0:0:-1: ++# BZ12701 %*6LA:+0X0P+0:0:-1: ++# BZ12701 %6LA:+0X8P-1025:0:-1: ++# BZ12701 %*6LA:+0X8P-1025:0:-1: ++%6LA:+0X2.3456789ABCDFEP0123:1:6:0x1.18p1: ++%*6LA:+0X2.3456789ABCDFEP0123:0:6: ++%6LA:+0X2.3456789ABCDFEP+123:1:6:0x1.18p1: ++%*6LA:+0X2.3456789ABCDFEP+123:0:6: ++%6LA:+0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2: ++%*6LA:+0X7.FFFFFFFFFFFFCP1021:0:6: ++%6LA:+0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3: ++%*6LA:+0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6LA:+INFINITY:0:-1: ++%*6LA:+INFINITY:0:-1: ++%20LA::0:-1: ++%*20LA::0:-1: ++%20LA:-INFINITY:1:9:-inf: ++%*20LA:-INFINITY:0:9: ++# BZ12701 %20LA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*20LA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%20LA:-0X7.FFFFFFFFFFFFCP1021:1:20:-0x1.fffffffffffffp3: ++%*20LA:-0X7.FFFFFFFFFFFFCP1021:0:20: ++# BZ12701 %20LA:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*20LA:-0X2.3456789ABCDFEP+123:0:-1: ++%20LA:-0X2.3456789ABCDFEP0123:1:20:-0x1.1a2b3c4d5e6ffp1: ++%*20LA:-0X2.3456789ABCDFEP0123:0:20: ++%20LA:-0X8P-1025:1:10:-0x1p-1022: ++%*20LA:-0X8P-1025:0:10: ++%20LA:-0X0P+0:1:7:-0x0: ++%*20LA:-0X0P+0:0:7: ++%20LA:-0X0P0:1:6:-0x0: ++%*20LA:-0X0P0:0:6: ++%20LA:-NAN(09A_Zaz):1:13:-nan: ++%*20LA:-NAN(09A_Zaz):0:13: ++%20LA:-NAN():1:6:-nan: ++%*20LA:-NAN():0:6: ++%20LA:NAN():1:5:nan: ++%*20LA:NAN():0:5: ++%20LA:NAN(09A_Zaz):1:12:nan: ++%*20LA:NAN(09A_Zaz):0:12: ++%20LA:0X0P0:1:5:0x0: ++%*20LA:0X0P0:0:5: ++%20LA:0X0P+0:1:6:0x0: ++%*20LA:0X0P+0:0:6: ++%20LA:0X8P-1025:1:9:0x1p-1022: ++%*20LA:0X8P-1025:0:9: ++%20LA:0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20LA:0X2.3456789ABCDFEP0123:0:20: ++%20LA:0X2.3456789ABCDFEP+123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20LA:0X2.3456789ABCDFEP+123:0:20: ++%20LA:0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp12: ++%*20LA:0X7.FFFFFFFFFFFFCP1021:0:20: ++%20LA:0XF.FFFFFFFFFFFF8P+1020:1:20:0x1.fffffffffffffp4: ++%*20LA:0XF.FFFFFFFFFFFF8P+1020:0:20: ++%20LA:INFINITY:1:8:inf: ++%*20LA:INFINITY:0:8: ++%20LA:+NAN():1:6:nan: ++%*20LA:+NAN():0:6: ++%20LA:+NAN(09A_Zaz):1:13:nan: ++%*20LA:+NAN(09A_Zaz):0:13: ++%20LA:+0X0P0:1:6:0x0: ++%*20LA:+0X0P0:0:6: ++%20LA:+0X0P+0:1:7:0x0: ++%*20LA:+0X0P+0:0:7: ++%20LA:+0X8P-1025:1:10:0x1p-1022: ++%*20LA:+0X8P-1025:0:10: ++%20LA:+0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp1: ++%*20LA:+0X2.3456789ABCDFEP0123:0:20: ++# BZ12701 %20LA:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*20LA:+0X2.3456789ABCDFEP+123:0:-1: ++%20LA:+0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp3: ++%*20LA:+0X7.FFFFFFFFFFFFCP1021:0:20: ++# BZ12701 %20LA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*20LA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%20LA:+INFINITY:1:9:inf: ++%*20LA:+INFINITY:0:9: ++%32LA::0:-1: ++%*32LA::0:-1: ++%32LA:-INFINITY:1:9:-inf: ++%*32LA:-INFINITY:0:9: ++%32LA:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023: ++%*32LA:-0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32LA:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023: ++%*32LA:-0X7.FFFFFFFFFFFFCP1021:0:23: ++%32LA:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32LA:-0X2.3456789ABCDFEP+123:0:23: ++%32LA:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32LA:-0X2.3456789ABCDFEP0123:0:23: ++%32LA:-0X8P-1025:1:10:-0x1p-1022: ++%*32LA:-0X8P-1025:0:10: ++%32LA:-0X0P+0:1:7:-0x0: ++%*32LA:-0X0P+0:0:7: ++%32LA:-0X0P0:1:6:-0x0: ++%*32LA:-0X0P0:0:6: ++%32LA:-NAN(09A_Zaz):1:13:-nan: ++%*32LA:-NAN(09A_Zaz):0:13: ++%32LA:-NAN():1:6:-nan: ++%*32LA:-NAN():0:6: ++%32LA:NAN():1:5:nan: ++%*32LA:NAN():0:5: ++%32LA:NAN(09A_Zaz):1:12:nan: ++%*32LA:NAN(09A_Zaz):0:12: ++%32LA:0X0P0:1:5:0x0: ++%*32LA:0X0P0:0:5: ++%32LA:0X0P+0:1:6:0x0: ++%*32LA:0X0P+0:0:6: ++%32LA:0X8P-1025:1:9:0x1p-1022: ++%*32LA:0X8P-1025:0:9: ++%32LA:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32LA:0X2.3456789ABCDFEP0123:0:22: ++%32LA:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32LA:0X2.3456789ABCDFEP+123:0:22: ++%32LA:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023: ++%*32LA:0X7.FFFFFFFFFFFFCP1021:0:22: ++%32LA:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023: ++%*32LA:0XF.FFFFFFFFFFFF8P+1020:0:23: ++%32LA:INFINITY:1:8:inf: ++%*32LA:INFINITY:0:8: ++%32LA:+NAN():1:6:nan: ++%*32LA:+NAN():0:6: ++%32LA:+NAN(09A_Zaz):1:13:nan: ++%*32LA:+NAN(09A_Zaz):0:13: ++%32LA:+0X0P0:1:6:0x0: ++%*32LA:+0X0P0:0:6: ++%32LA:+0X0P+0:1:7:0x0: ++%*32LA:+0X0P+0:0:7: ++%32LA:+0X8P-1025:1:10:0x1p-1022: ++%*32LA:+0X8P-1025:0:10: ++%32LA:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32LA:+0X2.3456789ABCDFEP0123:0:23: ++%32LA:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32LA:+0X2.3456789ABCDFEP+123:0:23: ++%32LA:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*32LA:+0X7.FFFFFFFFFFFFCP1021:0:23: ++%32LA:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*32LA:+0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32LA:+INFINITY:1:9:inf: ++%*32LA:+INFINITY:0:9: ++%5LA: :0:-1: ++%*5LA: :0:-1: ++%5LA: -INFINITY:0:-1: ++%*5LA: -INFINITY:0:-1: ++%5LA: -0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.ep3: ++%*5LA: -0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5LA: -0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.cp2: ++%*5LA: -0X7.FFFFFFFFFFFFCP1021:0:6: ++%5LA: -0X2.3456789ABCDFEP+123:1:6:-0x1p1: ++%*5LA: -0X2.3456789ABCDFEP+123:0:6: ++%5LA: -0X2.3456789ABCDFEP0123:1:6:-0x1p1: ++%*5LA: -0X2.3456789ABCDFEP0123:0:6: ++# BZ12701 %5LA: -0X8P-1025:0:-1: ++# BZ12701 %*5LA: -0X8P-1025:0:-1: ++# BZ12701 %5LA: -0X0P+0:0:-1: ++# BZ12701 %*5LA: -0X0P+0:0:-1: ++# BZ12701 %5LA: -0X0P0:0:-1: ++# BZ12701 %*5LA: -0X0P0:0:-1: ++%5LA: -NAN(09A_Zaz):0:-1: ++%*5LA: -NAN(09A_Zaz):0:-1: ++%5LA: -NAN():0:-1: ++%*5LA: -NAN():0:-1: ++%5LA: NAN():1:6:nan: ++%*5LA: NAN():0:6: ++%5LA: NAN(09A_Zaz):0:-1: ++%*5LA: NAN(09A_Zaz):0:-1: ++%5LA: 0X0P0:1:6:0x0: ++%*5LA: 0X0P0:0:6: ++# BZ12701 %5LA: 0X0P+0:0:-1: ++# BZ12701 %*5LA: 0X0P+0:0:-1: ++# BZ12701 %5LA: 0X8P-1025:0:-1: ++# BZ12701 %*5LA: 0X8P-1025:0:-1: ++%5LA: 0X2.3456789ABCDFEP0123:1:6:0x1.18p1: ++%*5LA: 0X2.3456789ABCDFEP0123:0:6: ++%5LA: 0X2.3456789ABCDFEP+123:1:6:0x1.18p1: ++%*5LA: 0X2.3456789ABCDFEP+123:0:6: ++%5LA: 0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2: ++%*5LA: 0X7.FFFFFFFFFFFFCP1021:0:6: ++%5LA: 0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3: ++%*5LA: 0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5LA: INFINITY:0:-1: ++%*5LA: INFINITY:0:-1: ++%5LA: +NAN():0:-1: ++%*5LA: +NAN():0:-1: ++%5LA: +NAN(09A_Zaz):0:-1: ++%*5LA: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5LA: +0X0P0:0:-1: ++# BZ12701 %*5LA: +0X0P0:0:-1: ++# BZ12701 %5LA: +0X0P+0:0:-1: ++# BZ12701 %*5LA: +0X0P+0:0:-1: ++# BZ12701 %5LA: +0X8P-1025:0:-1: ++# BZ12701 %*5LA: +0X8P-1025:0:-1: ++%5LA: +0X2.3456789ABCDFEP0123:1:6:0x1p1: ++%*5LA: +0X2.3456789ABCDFEP0123:0:6: ++%5LA: +0X2.3456789ABCDFEP+123:1:6:0x1p1: ++%*5LA: +0X2.3456789ABCDFEP+123:0:6: ++%5LA: +0X7.FFFFFFFFFFFFCP1021:1:6:0x1.cp2: ++%*5LA: +0X7.FFFFFFFFFFFFCP1021:0:6: ++%5LA: +0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ep3: ++%*5LA: +0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5LA: +INFINITY:0:-1: ++%*5LA: +INFINITY:0:-1: ++%32LA: :0:-1: ++%*32LA: :0:-1: ++%32LA: -INFINITY:1:10:-inf: ++%*32LA: -INFINITY:0:10: ++%32LA: -0XF.FFFFFFFFFFFF8P+1020:1:25:-0x1.fffffffffffffp1023: ++%*32LA: -0XF.FFFFFFFFFFFF8P+1020:0:25: ++%32LA: -0X7.FFFFFFFFFFFFCP1021:1:24:-0x1.fffffffffffffp1023: ++%*32LA: -0X7.FFFFFFFFFFFFCP1021:0:24: ++%32LA: -0X2.3456789ABCDFEP+123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32LA: -0X2.3456789ABCDFEP+123:0:24: ++%32LA: -0X2.3456789ABCDFEP0123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32LA: -0X2.3456789ABCDFEP0123:0:24: ++%32LA: -0X8P-1025:1:11:-0x1p-1022: ++%*32LA: -0X8P-1025:0:11: ++%32LA: -0X0P+0:1:8:-0x0: ++%*32LA: -0X0P+0:0:8: ++%32LA: -0X0P0:1:7:-0x0: ++%*32LA: -0X0P0:0:7: ++%32LA: -NAN(09A_Zaz):1:14:-nan: ++%*32LA: -NAN(09A_Zaz):0:14: ++%32LA: -NAN():1:7:-nan: ++%*32LA: -NAN():0:7: ++%32LA: NAN():1:6:nan: ++%*32LA: NAN():0:6: ++%32LA: NAN(09A_Zaz):1:13:nan: ++%*32LA: NAN(09A_Zaz):0:13: ++%32LA: 0X0P0:1:6:0x0: ++%*32LA: 0X0P0:0:6: ++%32LA: 0X0P+0:1:7:0x0: ++%*32LA: 0X0P+0:0:7: ++%32LA: 0X8P-1025:1:10:0x1p-1022: ++%*32LA: 0X8P-1025:0:10: ++%32LA: 0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32LA: 0X2.3456789ABCDFEP0123:0:23: ++%32LA: 0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32LA: 0X2.3456789ABCDFEP+123:0:23: ++%32LA: 0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*32LA: 0X7.FFFFFFFFFFFFCP1021:0:23: ++%32LA: 0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*32LA: 0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32LA: INFINITY:1:9:inf: ++%*32LA: INFINITY:0:9: ++%32LA: +NAN():1:7:nan: ++%*32LA: +NAN():0:7: ++%32LA: +NAN(09A_Zaz):1:14:nan: ++%*32LA: +NAN(09A_Zaz):0:14: ++%32LA: +0X0P0:1:7:0x0: ++%*32LA: +0X0P0:0:7: ++%32LA: +0X0P+0:1:8:0x0: ++%*32LA: +0X0P+0:0:8: ++%32LA: +0X8P-1025:1:11:0x1p-1022: ++%*32LA: +0X8P-1025:0:11: ++%32LA: +0X2.3456789ABCDFEP0123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32LA: +0X2.3456789ABCDFEP0123:0:24: ++%32LA: +0X2.3456789ABCDFEP+123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32LA: +0X2.3456789ABCDFEP+123:0:24: ++%32LA: +0X7.FFFFFFFFFFFFCP1021:1:24:0x1.fffffffffffffp1023: ++%*32LA: +0X7.FFFFFFFFFFFFCP1021:0:24: ++%32LA: +0XF.FFFFFFFFFFFF8P+1020:1:25:0x1.fffffffffffffp1023: ++%*32LA: +0XF.FFFFFFFFFFFF8P+1020:0:25: ++%32LA: +INFINITY:1:10:inf: ++%*32LA: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input +new file mode 100644 +index 0000000000000000..c510f086919bd135 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input +@@ -0,0 +1,558 @@ ++%Le::0:-1: ++%*Le::0:-1: ++%Le:-infinity:1:9:-inf: ++%*Le:-infinity:0:9: ++%Le:-1.79769313486231570814527423731704357e+308:1:43:-0x1.fffffffffffffp1023: ++%*Le:-1.79769313486231570814527423731704357e+308:0:43: ++%Le:-1.79769313486231570814527423731704357e308:1:42:-0x1.fffffffffffffp1023: ++%*Le:-1.79769313486231570814527423731704357e308:0:42: ++%Le:-2.3441674165664682593913711430784253952e+37:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*Le:-2.3441674165664682593913711430784253952e+37:0:44: ++%Le:-2.3441674165664682593913711430784253952e037:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*Le:-2.3441674165664682593913711430784253952e037:0:44: ++%Le:-2.22507385850720138309023271733240406e-308:1:43:-0x1p-1022: ++%*Le:-2.22507385850720138309023271733240406e-308:0:43: ++%Le:-0e+0:1:5:-0x0: ++%*Le:-0e+0:0:5: ++%Le:-0e0:1:4:-0x0: ++%*Le:-0e0:0:4: ++%Le:-nan(09A_Zaz):1:13:-nan: ++%*Le:-nan(09A_Zaz):0:13: ++%Le:-nan():1:6:-nan: ++%*Le:-nan():0:6: ++%Le:nan():1:5:nan: ++%*Le:nan():0:5: ++%Le:nan(09A_Zaz):1:12:nan: ++%*Le:nan(09A_Zaz):0:12: ++%Le:0e0:1:3:0x0: ++%*Le:0e0:0:3: ++%Le:0e+0:1:4:0x0: ++%*Le:0e+0:0:4: ++%Le:2.22507385850720138309023271733240406e-308:1:42:0x1p-1022: ++%*Le:2.22507385850720138309023271733240406e-308:0:42: ++%Le:2.3441674165664682593913711430784253952e037:1:43:0x1.1a2b3c4d5e6ffp124: ++%*Le:2.3441674165664682593913711430784253952e037:0:43: ++%Le:2.3441674165664682593913711430784253952e+37:1:43:0x1.1a2b3c4d5e6ffp124: ++%*Le:2.3441674165664682593913711430784253952e+37:0:43: ++%Le:1.79769313486231570814527423731704357e308:1:41:0x1.fffffffffffffp1023: ++%*Le:1.79769313486231570814527423731704357e308:0:41: ++%Le:1.79769313486231570814527423731704357e+308:1:42:0x1.fffffffffffffp1023: ++%*Le:1.79769313486231570814527423731704357e+308:0:42: ++%Le:infinity:1:8:inf: ++%*Le:infinity:0:8: ++%Le:+nan():1:6:nan: ++%*Le:+nan():0:6: ++%Le:+nan(09A_Zaz):1:13:nan: ++%*Le:+nan(09A_Zaz):0:13: ++%Le:+0e0:1:4:0x0: ++%*Le:+0e0:0:4: ++%Le:+0e+0:1:5:0x0: ++%*Le:+0e+0:0:5: ++%Le:+2.22507385850720138309023271733240406e-308:1:43:0x1p-1022: ++%*Le:+2.22507385850720138309023271733240406e-308:0:43: ++%Le:+2.3441674165664682593913711430784253952e037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*Le:+2.3441674165664682593913711430784253952e037:0:44: ++%Le:+2.3441674165664682593913711430784253952e+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*Le:+2.3441674165664682593913711430784253952e+37:0:44: ++%Le:+1.79769313486231570814527423731704357e308:1:42:0x1.fffffffffffffp1023: ++%*Le:+1.79769313486231570814527423731704357e308:0:42: ++%Le:+1.79769313486231570814527423731704357e+308:1:43:0x1.fffffffffffffp1023: ++%*Le:+1.79769313486231570814527423731704357e+308:0:43: ++%Le:+infinity:1:9:inf: ++%*Le:+infinity:0:9: ++%1Le::0:-1: ++%*1Le::0:-1: ++%1Le:-infinity:0:-1: ++%*1Le:-infinity:0:-1: ++%1Le:-1.79769313486231570814527423731704357e+308:0:-1: ++%*1Le:-1.79769313486231570814527423731704357e+308:0:-1: ++%1Le:-1.79769313486231570814527423731704357e308:0:-1: ++%*1Le:-1.79769313486231570814527423731704357e308:0:-1: ++%1Le:-2.3441674165664682593913711430784253952e+37:0:-1: ++%*1Le:-2.3441674165664682593913711430784253952e+37:0:-1: ++%1Le:-2.3441674165664682593913711430784253952e037:0:-1: ++%*1Le:-2.3441674165664682593913711430784253952e037:0:-1: ++%1Le:-2.22507385850720138309023271733240406e-308:0:-1: ++%*1Le:-2.22507385850720138309023271733240406e-308:0:-1: ++%1Le:-0e+0:0:-1: ++%*1Le:-0e+0:0:-1: ++%1Le:-0e0:0:-1: ++%*1Le:-0e0:0:-1: ++%1Le:-nan(09A_Zaz):0:-1: ++%*1Le:-nan(09A_Zaz):0:-1: ++%1Le:-nan():0:-1: ++%*1Le:-nan():0:-1: ++%1Le:nan():0:-1: ++%*1Le:nan():0:-1: ++%1Le:nan(09A_Zaz):0:-1: ++%*1Le:nan(09A_Zaz):0:-1: ++%1Le:0e0:1:1:0x0: ++%*1Le:0e0:0:1: ++%1Le:0e+0:1:1:0x0: ++%*1Le:0e+0:0:1: ++%1Le:2.22507385850720138309023271733240406e-308:1:1:0x1p1: ++%*1Le:2.22507385850720138309023271733240406e-308:0:1: ++%1Le:2.3441674165664682593913711430784253952e037:1:1:0x1p1: ++%*1Le:2.3441674165664682593913711430784253952e037:0:1: ++%1Le:2.3441674165664682593913711430784253952e+37:1:1:0x1p1: ++%*1Le:2.3441674165664682593913711430784253952e+37:0:1: ++%1Le:1.79769313486231570814527423731704357e308:1:1:0x1: ++%*1Le:1.79769313486231570814527423731704357e308:0:1: ++%1Le:1.79769313486231570814527423731704357e+308:1:1:0x1: ++%*1Le:1.79769313486231570814527423731704357e+308:0:1: ++%1Le:infinity:0:-1: ++%*1Le:infinity:0:-1: ++%1Le:+nan():0:-1: ++%*1Le:+nan():0:-1: ++%1Le:+nan(09A_Zaz):0:-1: ++%*1Le:+nan(09A_Zaz):0:-1: ++%1Le:+0e0:0:-1: ++%*1Le:+0e0:0:-1: ++%1Le:+0e+0:0:-1: ++%*1Le:+0e+0:0:-1: ++%1Le:+2.22507385850720138309023271733240406e-308:0:-1: ++%*1Le:+2.22507385850720138309023271733240406e-308:0:-1: ++%1Le:+2.3441674165664682593913711430784253952e037:0:-1: ++%*1Le:+2.3441674165664682593913711430784253952e037:0:-1: ++%1Le:+2.3441674165664682593913711430784253952e+37:0:-1: ++%*1Le:+2.3441674165664682593913711430784253952e+37:0:-1: ++%1Le:+1.79769313486231570814527423731704357e308:0:-1: ++%*1Le:+1.79769313486231570814527423731704357e308:0:-1: ++%1Le:+1.79769313486231570814527423731704357e+308:0:-1: ++%*1Le:+1.79769313486231570814527423731704357e+308:0:-1: ++%1Le:+infinity:0:-1: ++%*1Le:+infinity:0:-1: ++%2Le::0:-1: ++%*2Le::0:-1: ++%2Le:-infinity:0:-1: ++%*2Le:-infinity:0:-1: ++%2Le:-1.79769313486231570814527423731704357e+308:1:2:-0x1: ++%*2Le:-1.79769313486231570814527423731704357e+308:0:2: ++%2Le:-1.79769313486231570814527423731704357e308:1:2:-0x1: ++%*2Le:-1.79769313486231570814527423731704357e308:0:2: ++%2Le:-2.3441674165664682593913711430784253952e+37:1:2:-0x1p1: ++%*2Le:-2.3441674165664682593913711430784253952e+37:0:2: ++%2Le:-2.3441674165664682593913711430784253952e037:1:2:-0x1p1: ++%*2Le:-2.3441674165664682593913711430784253952e037:0:2: ++%2Le:-2.22507385850720138309023271733240406e-308:1:2:-0x1p1: ++%*2Le:-2.22507385850720138309023271733240406e-308:0:2: ++%2Le:-0e+0:1:2:-0x0: ++%*2Le:-0e+0:0:2: ++%2Le:-0e0:1:2:-0x0: ++%*2Le:-0e0:0:2: ++%2Le:-nan(09A_Zaz):0:-1: ++%*2Le:-nan(09A_Zaz):0:-1: ++%2Le:-nan():0:-1: ++%*2Le:-nan():0:-1: ++%2Le:nan():0:-1: ++%*2Le:nan():0:-1: ++%2Le:nan(09A_Zaz):0:-1: ++%*2Le:nan(09A_Zaz):0:-1: ++# BZ12701 %2Le:0e0:0:-1: ++# BZ12701 %*2Le:0e0:0:-1: ++# BZ12701 %2Le:0e+0:0:-1: ++# BZ12701 %*2Le:0e+0:0:-1: ++%2Le:2.22507385850720138309023271733240406e-308:1:2:0x1p1: ++%*2Le:2.22507385850720138309023271733240406e-308:0:2: ++%2Le:2.3441674165664682593913711430784253952e037:1:2:0x1p1: ++%*2Le:2.3441674165664682593913711430784253952e037:0:2: ++%2Le:2.3441674165664682593913711430784253952e+37:1:2:0x1p1: ++%*2Le:2.3441674165664682593913711430784253952e+37:0:2: ++%2Le:1.79769313486231570814527423731704357e308:1:2:0x1: ++%*2Le:1.79769313486231570814527423731704357e308:0:2: ++%2Le:1.79769313486231570814527423731704357e+308:1:2:0x1: ++%*2Le:1.79769313486231570814527423731704357e+308:0:2: ++%2Le:infinity:0:-1: ++%*2Le:infinity:0:-1: ++%2Le:+nan():0:-1: ++%*2Le:+nan():0:-1: ++%2Le:+nan(09A_Zaz):0:-1: ++%*2Le:+nan(09A_Zaz):0:-1: ++%2Le:+0e0:1:2:0x0: ++%*2Le:+0e0:0:2: ++%2Le:+0e+0:1:2:0x0: ++%*2Le:+0e+0:0:2: ++%2Le:+2.22507385850720138309023271733240406e-308:1:2:0x1p1: ++%*2Le:+2.22507385850720138309023271733240406e-308:0:2: ++%2Le:+2.3441674165664682593913711430784253952e037:1:2:0x1p1: ++%*2Le:+2.3441674165664682593913711430784253952e037:0:2: ++%2Le:+2.3441674165664682593913711430784253952e+37:1:2:0x1p1: ++%*2Le:+2.3441674165664682593913711430784253952e+37:0:2: ++%2Le:+1.79769313486231570814527423731704357e308:1:2:0x1: ++%*2Le:+1.79769313486231570814527423731704357e308:0:2: ++%2Le:+1.79769313486231570814527423731704357e+308:1:2:0x1: ++%*2Le:+1.79769313486231570814527423731704357e+308:0:2: ++%2Le:+infinity:0:-1: ++%*2Le:+infinity:0:-1: ++%3Le::0:-1: ++%*3Le::0:-1: ++%3Le:-infinity:0:-1: ++%*3Le:-infinity:0:-1: ++%3Le:-1.79769313486231570814527423731704357e+308:1:3:-0x1: ++%*3Le:-1.79769313486231570814527423731704357e+308:0:3: ++%3Le:-1.79769313486231570814527423731704357e308:1:3:-0x1: ++%*3Le:-1.79769313486231570814527423731704357e308:0:3: ++%3Le:-2.3441674165664682593913711430784253952e+37:1:3:-0x1p1: ++%*3Le:-2.3441674165664682593913711430784253952e+37:0:3: ++%3Le:-2.3441674165664682593913711430784253952e037:1:3:-0x1p1: ++%*3Le:-2.3441674165664682593913711430784253952e037:0:3: ++%3Le:-2.22507385850720138309023271733240406e-308:1:3:-0x1p1: ++%*3Le:-2.22507385850720138309023271733240406e-308:0:3: ++# BZ12701 %3Le:-0e+0:0:-1: ++# BZ12701 %*3Le:-0e+0:0:-1: ++# BZ12701 %3Le:-0e0:0:-1: ++# BZ12701 %*3Le:-0e0:0:-1: ++%3Le:-nan(09A_Zaz):0:-1: ++%*3Le:-nan(09A_Zaz):0:-1: ++%3Le:-nan():0:-1: ++%*3Le:-nan():0:-1: ++%3Le:nan():1:3:nan: ++%*3Le:nan():0:3: ++%3Le:nan(09A_Zaz):1:3:nan: ++%*3Le:nan(09A_Zaz):0:3: ++%3Le:0e0:1:3:0x0: ++%*3Le:0e0:0:3: ++# BZ12701 %3Le:0e+0:0:-1: ++# BZ12701 %*3Le:0e+0:0:-1: ++%3Le:2.22507385850720138309023271733240406e-308:1:3:0x1.199999999999ap1: ++%*3Le:2.22507385850720138309023271733240406e-308:0:3: ++%3Le:2.3441674165664682593913711430784253952e037:1:3:0x1.2666666666666p1: ++%*3Le:2.3441674165664682593913711430784253952e037:0:3: ++%3Le:2.3441674165664682593913711430784253952e+37:1:3:0x1.2666666666666p1: ++%*3Le:2.3441674165664682593913711430784253952e+37:0:3: ++%3Le:1.79769313486231570814527423731704357e308:1:3:0x1.b333333333333: ++%*3Le:1.79769313486231570814527423731704357e308:0:3: ++%3Le:1.79769313486231570814527423731704357e+308:1:3:0x1.b333333333333: ++%*3Le:1.79769313486231570814527423731704357e+308:0:3: ++%3Le:infinity:1:3:inf: ++%*3Le:infinity:0:3: ++%3Le:+nan():0:-1: ++%*3Le:+nan():0:-1: ++%3Le:+nan(09A_Zaz):0:-1: ++%*3Le:+nan(09A_Zaz):0:-1: ++# BZ12701 %3Le:+0e0:0:-1: ++# BZ12701 %*3Le:+0e0:0:-1: ++# BZ12701 %3Le:+0e+0:0:-1: ++# BZ12701 %*3Le:+0e+0:0:-1: ++%3Le:+2.22507385850720138309023271733240406e-308:1:3:0x1p1: ++%*3Le:+2.22507385850720138309023271733240406e-308:0:3: ++%3Le:+2.3441674165664682593913711430784253952e037:1:3:0x1p1: ++%*3Le:+2.3441674165664682593913711430784253952e037:0:3: ++%3Le:+2.3441674165664682593913711430784253952e+37:1:3:0x1p1: ++%*3Le:+2.3441674165664682593913711430784253952e+37:0:3: ++%3Le:+1.79769313486231570814527423731704357e308:1:3:0x1: ++%*3Le:+1.79769313486231570814527423731704357e308:0:3: ++%3Le:+1.79769313486231570814527423731704357e+308:1:3:0x1: ++%*3Le:+1.79769313486231570814527423731704357e+308:0:3: ++%3Le:+infinity:0:-1: ++%*3Le:+infinity:0:-1: ++%4Le::0:-1: ++%*4Le::0:-1: ++%4Le:-infinity:1:4:-inf: ++%*4Le:-infinity:0:4: ++%4Le:-1.79769313486231570814527423731704357e+308:1:4:-0x1.b333333333333: ++%*4Le:-1.79769313486231570814527423731704357e+308:0:4: ++%4Le:-1.79769313486231570814527423731704357e308:1:4:-0x1.b333333333333: ++%*4Le:-1.79769313486231570814527423731704357e308:0:4: ++%4Le:-2.3441674165664682593913711430784253952e+37:1:4:-0x1.2666666666666p1: ++%*4Le:-2.3441674165664682593913711430784253952e+37:0:4: ++%4Le:-2.3441674165664682593913711430784253952e037:1:4:-0x1.2666666666666p1: ++%*4Le:-2.3441674165664682593913711430784253952e037:0:4: ++%4Le:-2.22507385850720138309023271733240406e-308:1:4:-0x1.199999999999ap1: ++%*4Le:-2.22507385850720138309023271733240406e-308:0:4: ++# BZ12701 %4Le:-0e+0:0:-1: ++# BZ12701 %*4Le:-0e+0:0:-1: ++%4Le:-0e0:1:4:-0x0: ++%*4Le:-0e0:0:4: ++%4Le:-nan(09A_Zaz):1:4:-nan: ++%*4Le:-nan(09A_Zaz):0:4: ++%4Le:-nan():1:4:-nan: ++%*4Le:-nan():0:4: ++%4Le:nan():0:-1: ++%*4Le:nan():0:-1: ++%4Le:nan(09A_Zaz):0:-1: ++%*4Le:nan(09A_Zaz):0:-1: ++%4Le:0e0:1:3:0x0: ++%*4Le:0e0:0:3: ++%4Le:0e+0:1:4:0x0: ++%*4Le:0e+0:0:4: ++%4Le:2.22507385850720138309023271733240406e-308:1:4:0x1.1c28f5c28f5c3p1: ++%*4Le:2.22507385850720138309023271733240406e-308:0:4: ++%4Le:2.3441674165664682593913711430784253952e037:1:4:0x1.2b851eb851eb8p1: ++%*4Le:2.3441674165664682593913711430784253952e037:0:4: ++%4Le:2.3441674165664682593913711430784253952e+37:1:4:0x1.2b851eb851eb8p1: ++%*4Le:2.3441674165664682593913711430784253952e+37:0:4: ++%4Le:1.79769313486231570814527423731704357e308:1:4:0x1.ca3d70a3d70a4: ++%*4Le:1.79769313486231570814527423731704357e308:0:4: ++%4Le:1.79769313486231570814527423731704357e+308:1:4:0x1.ca3d70a3d70a4: ++%*4Le:1.79769313486231570814527423731704357e+308:0:4: ++%4Le:infinity:0:-1: ++%*4Le:infinity:0:-1: ++%4Le:+nan():1:4:nan: ++%*4Le:+nan():0:4: ++%4Le:+nan(09A_Zaz):1:4:nan: ++%*4Le:+nan(09A_Zaz):0:4: ++%4Le:+0e0:1:4:0x0: ++%*4Le:+0e0:0:4: ++# BZ12701 %4Le:+0e+0:0:-1: ++# BZ12701 %*4Le:+0e+0:0:-1: ++%4Le:+2.22507385850720138309023271733240406e-308:1:4:0x1.199999999999ap1: ++%*4Le:+2.22507385850720138309023271733240406e-308:0:4: ++%4Le:+2.3441674165664682593913711430784253952e037:1:4:0x1.2666666666666p1: ++%*4Le:+2.3441674165664682593913711430784253952e037:0:4: ++%4Le:+2.3441674165664682593913711430784253952e+37:1:4:0x1.2666666666666p1: ++%*4Le:+2.3441674165664682593913711430784253952e+37:0:4: ++%4Le:+1.79769313486231570814527423731704357e308:1:4:0x1.b333333333333: ++%*4Le:+1.79769313486231570814527423731704357e308:0:4: ++%4Le:+1.79769313486231570814527423731704357e+308:1:4:0x1.b333333333333: ++%*4Le:+1.79769313486231570814527423731704357e+308:0:4: ++%4Le:+infinity:1:4:inf: ++%*4Le:+infinity:0:4: ++%40Le::0:-1: ++%*40Le::0:-1: ++%40Le:-infinity:1:9:-inf: ++%*40Le:-infinity:0:9: ++# BZ12701 %40Le:-1.79769313486231570814527423731704357e+308:0:-1: ++# BZ12701 %*40Le:-1.79769313486231570814527423731704357e+308:0:-1: ++%40Le:-1.79769313486231570814527423731704357e308:1:40:-0x1.c16c5c5253574p10: ++%*40Le:-1.79769313486231570814527423731704357e308:0:40: ++%40Le:-2.3441674165664682593913711430784253952e+37:1:40:-0x1.2c0dad8b403aap1: ++%*40Le:-2.3441674165664682593913711430784253952e+37:0:40: ++%40Le:-2.3441674165664682593913711430784253952e037:1:40:-0x1.2c0dad8b403aap1: ++%*40Le:-2.3441674165664682593913711430784253952e037:0:40: ++# BZ12701 %40Le:-2.22507385850720138309023271733240406e-308:0:-1: ++# BZ12701 %*40Le:-2.22507385850720138309023271733240406e-308:0:-1: ++%40Le:-0e+0:1:5:-0x0: ++%*40Le:-0e+0:0:5: ++%40Le:-0e0:1:4:-0x0: ++%*40Le:-0e0:0:4: ++%40Le:-nan(09A_Zaz):1:13:-nan: ++%*40Le:-nan(09A_Zaz):0:13: ++%40Le:-nan():1:6:-nan: ++%*40Le:-nan():0:6: ++%40Le:nan():1:5:nan: ++%*40Le:nan():0:5: ++%40Le:nan(09A_Zaz):1:12:nan: ++%*40Le:nan(09A_Zaz):0:12: ++%40Le:0e0:1:3:0x0: ++%*40Le:0e0:0:3: ++%40Le:0e+0:1:4:0x0: ++%*40Le:0e+0:0:4: ++%40Le:2.22507385850720138309023271733240406e-308:1:40:0x1.23a516e82d9bap-9: ++%*40Le:2.22507385850720138309023271733240406e-308:0:40: ++# BZ12701 %40Le:2.3441674165664682593913711430784253952e037:0:-1: ++# BZ12701 %*40Le:2.3441674165664682593913711430784253952e037:0:-1: ++# BZ12701 %40Le:2.3441674165664682593913711430784253952e+37:0:-1: ++# BZ12701 %*40Le:2.3441674165664682593913711430784253952e+37:0:-1: ++%40Le:1.79769313486231570814527423731704357e308:1:40:0x1.6b0a8e891ffffp100: ++%*40Le:1.79769313486231570814527423731704357e308:0:40: ++%40Le:1.79769313486231570814527423731704357e+308:1:40:0x1.c16c5c5253574p10: ++%*40Le:1.79769313486231570814527423731704357e+308:0:40: ++%40Le:infinity:1:8:inf: ++%*40Le:infinity:0:8: ++%40Le:+nan():1:6:nan: ++%*40Le:+nan():0:6: ++%40Le:+nan(09A_Zaz):1:13:nan: ++%*40Le:+nan(09A_Zaz):0:13: ++%40Le:+0e0:1:4:0x0: ++%*40Le:+0e0:0:4: ++%40Le:+0e+0:1:5:0x0: ++%*40Le:+0e+0:0:5: ++# BZ12701 %40Le:+2.22507385850720138309023271733240406e-308:0:-1: ++# BZ12701 %*40Le:+2.22507385850720138309023271733240406e-308:0:-1: ++%40Le:+2.3441674165664682593913711430784253952e037:1:40:0x1.2c0dad8b403aap1: ++%*40Le:+2.3441674165664682593913711430784253952e037:0:40: ++%40Le:+2.3441674165664682593913711430784253952e+37:1:40:0x1.2c0dad8b403aap1: ++%*40Le:+2.3441674165664682593913711430784253952e+37:0:40: ++%40Le:+1.79769313486231570814527423731704357e308:1:40:0x1.c16c5c5253574p10: ++%*40Le:+1.79769313486231570814527423731704357e308:0:40: ++# BZ12701 %40Le:+1.79769313486231570814527423731704357e+308:0:-1: ++# BZ12701 %*40Le:+1.79769313486231570814527423731704357e+308:0:-1: ++%40Le:+infinity:1:9:inf: ++%*40Le:+infinity:0:9: ++%48Le::0:-1: ++%*48Le::0:-1: ++%48Le:-infinity:1:9:-inf: ++%*48Le:-infinity:0:9: ++%48Le:-1.79769313486231570814527423731704357e+308:1:43:-0x1.fffffffffffffp1023: ++%*48Le:-1.79769313486231570814527423731704357e+308:0:43: ++%48Le:-1.79769313486231570814527423731704357e308:1:42:-0x1.fffffffffffffp1023: ++%*48Le:-1.79769313486231570814527423731704357e308:0:42: ++%48Le:-2.3441674165664682593913711430784253952e+37:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*48Le:-2.3441674165664682593913711430784253952e+37:0:44: ++%48Le:-2.3441674165664682593913711430784253952e037:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*48Le:-2.3441674165664682593913711430784253952e037:0:44: ++%48Le:-2.22507385850720138309023271733240406e-308:1:43:-0x1p-1022: ++%*48Le:-2.22507385850720138309023271733240406e-308:0:43: ++%48Le:-0e+0:1:5:-0x0: ++%*48Le:-0e+0:0:5: ++%48Le:-0e0:1:4:-0x0: ++%*48Le:-0e0:0:4: ++%48Le:-nan(09A_Zaz):1:13:-nan: ++%*48Le:-nan(09A_Zaz):0:13: ++%48Le:-nan():1:6:-nan: ++%*48Le:-nan():0:6: ++%48Le:nan():1:5:nan: ++%*48Le:nan():0:5: ++%48Le:nan(09A_Zaz):1:12:nan: ++%*48Le:nan(09A_Zaz):0:12: ++%48Le:0e0:1:3:0x0: ++%*48Le:0e0:0:3: ++%48Le:0e+0:1:4:0x0: ++%*48Le:0e+0:0:4: ++%48Le:2.22507385850720138309023271733240406e-308:1:42:0x1p-1022: ++%*48Le:2.22507385850720138309023271733240406e-308:0:42: ++%48Le:2.3441674165664682593913711430784253952e037:1:43:0x1.1a2b3c4d5e6ffp124: ++%*48Le:2.3441674165664682593913711430784253952e037:0:43: ++%48Le:2.3441674165664682593913711430784253952e+37:1:43:0x1.1a2b3c4d5e6ffp124: ++%*48Le:2.3441674165664682593913711430784253952e+37:0:43: ++%48Le:1.79769313486231570814527423731704357e308:1:41:0x1.fffffffffffffp1023: ++%*48Le:1.79769313486231570814527423731704357e308:0:41: ++%48Le:1.79769313486231570814527423731704357e+308:1:42:0x1.fffffffffffffp1023: ++%*48Le:1.79769313486231570814527423731704357e+308:0:42: ++%48Le:infinity:1:8:inf: ++%*48Le:infinity:0:8: ++%48Le:+nan():1:6:nan: ++%*48Le:+nan():0:6: ++%48Le:+nan(09A_Zaz):1:13:nan: ++%*48Le:+nan(09A_Zaz):0:13: ++%48Le:+0e0:1:4:0x0: ++%*48Le:+0e0:0:4: ++%48Le:+0e+0:1:5:0x0: ++%*48Le:+0e+0:0:5: ++%48Le:+2.22507385850720138309023271733240406e-308:1:43:0x1p-1022: ++%*48Le:+2.22507385850720138309023271733240406e-308:0:43: ++%48Le:+2.3441674165664682593913711430784253952e037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48Le:+2.3441674165664682593913711430784253952e037:0:44: ++%48Le:+2.3441674165664682593913711430784253952e+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48Le:+2.3441674165664682593913711430784253952e+37:0:44: ++%48Le:+1.79769313486231570814527423731704357e308:1:42:0x1.fffffffffffffp1023: ++%*48Le:+1.79769313486231570814527423731704357e308:0:42: ++%48Le:+1.79769313486231570814527423731704357e+308:1:43:0x1.fffffffffffffp1023: ++%*48Le:+1.79769313486231570814527423731704357e+308:0:43: ++%48Le:+infinity:1:9:inf: ++%*48Le:+infinity:0:9: ++%3Le: :0:-1: ++%*3Le: :0:-1: ++%3Le: -infinity:0:-1: ++%*3Le: -infinity:0:-1: ++%3Le: -1.79769313486231570814527423731704357e+308:1:4:-0x1: ++%*3Le: -1.79769313486231570814527423731704357e+308:0:4: ++%3Le: -1.79769313486231570814527423731704357e308:1:4:-0x1: ++%*3Le: -1.79769313486231570814527423731704357e308:0:4: ++%3Le: -2.3441674165664682593913711430784253952e+37:1:4:-0x1p1: ++%*3Le: -2.3441674165664682593913711430784253952e+37:0:4: ++%3Le: -2.3441674165664682593913711430784253952e037:1:4:-0x1p1: ++%*3Le: -2.3441674165664682593913711430784253952e037:0:4: ++%3Le: -2.22507385850720138309023271733240406e-308:1:4:-0x1p1: ++%*3Le: -2.22507385850720138309023271733240406e-308:0:4: ++# BZ12701 %3Le: -0e+0:0:-1: ++# BZ12701 %*3Le: -0e+0:0:-1: ++# BZ12701 %3Le: -0e0:0:-1: ++# BZ12701 %*3Le: -0e0:0:-1: ++%3Le: -nan(09A_Zaz):0:-1: ++%*3Le: -nan(09A_Zaz):0:-1: ++%3Le: -nan():0:-1: ++%*3Le: -nan():0:-1: ++%3Le: nan():1:4:nan: ++%*3Le: nan():0:4: ++%3Le: nan(09A_Zaz):1:4:nan: ++%*3Le: nan(09A_Zaz):0:4: ++%3Le: 0e0:1:4:0x0: ++%*3Le: 0e0:0:4: ++# BZ12701 %3Le: 0e+0:0:-1: ++# BZ12701 %*3Le: 0e+0:0:-1: ++%3Le: 2.22507385850720138309023271733240406e-308:1:4:0x1.199999999999ap1: ++%*3Le: 2.22507385850720138309023271733240406e-308:0:4: ++%3Le: 2.3441674165664682593913711430784253952e037:1:4:0x1.2666666666666p1: ++%*3Le: 2.3441674165664682593913711430784253952e037:0:4: ++%3Le: 2.3441674165664682593913711430784253952e+37:1:4:0x1.2666666666666p1: ++%*3Le: 2.3441674165664682593913711430784253952e+37:0:4: ++%3Le: 1.79769313486231570814527423731704357e308:1:4:0x1.b333333333333: ++%*3Le: 1.79769313486231570814527423731704357e308:0:4: ++%3Le: 1.79769313486231570814527423731704357e+308:1:4:0x1.b333333333333: ++%*3Le: 1.79769313486231570814527423731704357e+308:0:4: ++%3Le: infinity:1:4:inf: ++%*3Le: infinity:0:4: ++%3Le: +nan():0:-1: ++%*3Le: +nan():0:-1: ++%3Le: +nan(09A_Zaz):0:-1: ++%*3Le: +nan(09A_Zaz):0:-1: ++# BZ12701 %3Le: +0e0:0:-1: ++# BZ12701 %*3Le: +0e0:0:-1: ++# BZ12701 %3Le: +0e+0:0:-1: ++# BZ12701 %*3Le: +0e+0:0:-1: ++%3Le: +2.22507385850720138309023271733240406e-308:1:4:0x1p1: ++%*3Le: +2.22507385850720138309023271733240406e-308:0:4: ++%3Le: +2.3441674165664682593913711430784253952e037:1:4:0x1p1: ++%*3Le: +2.3441674165664682593913711430784253952e037:0:4: ++%3Le: +2.3441674165664682593913711430784253952e+37:1:4:0x1p1: ++%*3Le: +2.3441674165664682593913711430784253952e+37:0:4: ++%3Le: +1.79769313486231570814527423731704357e308:1:4:0x1: ++%*3Le: +1.79769313486231570814527423731704357e308:0:4: ++%3Le: +1.79769313486231570814527423731704357e+308:1:4:0x1: ++%*3Le: +1.79769313486231570814527423731704357e+308:0:4: ++%3Le: +infinity:0:-1: ++%*3Le: +infinity:0:-1: ++%48Le: :0:-1: ++%*48Le: :0:-1: ++%48Le: -infinity:1:10:-inf: ++%*48Le: -infinity:0:10: ++%48Le: -1.79769313486231570814527423731704357e+308:1:44:-0x1.fffffffffffffp1023: ++%*48Le: -1.79769313486231570814527423731704357e+308:0:44: ++%48Le: -1.79769313486231570814527423731704357e308:1:43:-0x1.fffffffffffffp1023: ++%*48Le: -1.79769313486231570814527423731704357e308:0:43: ++%48Le: -2.3441674165664682593913711430784253952e+37:1:45:-0x1.1a2b3c4d5e6ffp124: ++%*48Le: -2.3441674165664682593913711430784253952e+37:0:45: ++%48Le: -2.3441674165664682593913711430784253952e037:1:45:-0x1.1a2b3c4d5e6ffp124: ++%*48Le: -2.3441674165664682593913711430784253952e037:0:45: ++%48Le: -2.22507385850720138309023271733240406e-308:1:44:-0x1p-1022: ++%*48Le: -2.22507385850720138309023271733240406e-308:0:44: ++%48Le: -0e+0:1:6:-0x0: ++%*48Le: -0e+0:0:6: ++%48Le: -0e0:1:5:-0x0: ++%*48Le: -0e0:0:5: ++%48Le: -nan(09A_Zaz):1:14:-nan: ++%*48Le: -nan(09A_Zaz):0:14: ++%48Le: -nan():1:7:-nan: ++%*48Le: -nan():0:7: ++%48Le: nan():1:6:nan: ++%*48Le: nan():0:6: ++%48Le: nan(09A_Zaz):1:13:nan: ++%*48Le: nan(09A_Zaz):0:13: ++%48Le: 0e0:1:4:0x0: ++%*48Le: 0e0:0:4: ++%48Le: 0e+0:1:5:0x0: ++%*48Le: 0e+0:0:5: ++%48Le: 2.22507385850720138309023271733240406e-308:1:43:0x1p-1022: ++%*48Le: 2.22507385850720138309023271733240406e-308:0:43: ++%48Le: 2.3441674165664682593913711430784253952e037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48Le: 2.3441674165664682593913711430784253952e037:0:44: ++%48Le: 2.3441674165664682593913711430784253952e+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48Le: 2.3441674165664682593913711430784253952e+37:0:44: ++%48Le: 1.79769313486231570814527423731704357e308:1:42:0x1.fffffffffffffp1023: ++%*48Le: 1.79769313486231570814527423731704357e308:0:42: ++%48Le: 1.79769313486231570814527423731704357e+308:1:43:0x1.fffffffffffffp1023: ++%*48Le: 1.79769313486231570814527423731704357e+308:0:43: ++%48Le: infinity:1:9:inf: ++%*48Le: infinity:0:9: ++%48Le: +nan():1:7:nan: ++%*48Le: +nan():0:7: ++%48Le: +nan(09A_Zaz):1:14:nan: ++%*48Le: +nan(09A_Zaz):0:14: ++%48Le: +0e0:1:5:0x0: ++%*48Le: +0e0:0:5: ++%48Le: +0e+0:1:6:0x0: ++%*48Le: +0e+0:0:6: ++%48Le: +2.22507385850720138309023271733240406e-308:1:44:0x1p-1022: ++%*48Le: +2.22507385850720138309023271733240406e-308:0:44: ++%48Le: +2.3441674165664682593913711430784253952e037:1:45:0x1.1a2b3c4d5e6ffp124: ++%*48Le: +2.3441674165664682593913711430784253952e037:0:45: ++%48Le: +2.3441674165664682593913711430784253952e+37:1:45:0x1.1a2b3c4d5e6ffp124: ++%*48Le: +2.3441674165664682593913711430784253952e+37:0:45: ++%48Le: +1.79769313486231570814527423731704357e308:1:43:0x1.fffffffffffffp1023: ++%*48Le: +1.79769313486231570814527423731704357e308:0:43: ++%48Le: +1.79769313486231570814527423731704357e+308:1:44:0x1.fffffffffffffp1023: ++%*48Le: +1.79769313486231570814527423731704357e+308:0:44: ++%48Le: +infinity:1:10:inf: ++%*48Le: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input +new file mode 100644 +index 0000000000000000..6fb575513e9e3379 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input +@@ -0,0 +1,558 @@ ++%LE::0:-1: ++%*LE::0:-1: ++%LE:-INFINITY:1:9:-inf: ++%*LE:-INFINITY:0:9: ++%LE:-1.79769313486231570814527423731704357E+308:1:43:-0x1.fffffffffffffp1023: ++%*LE:-1.79769313486231570814527423731704357E+308:0:43: ++%LE:-1.79769313486231570814527423731704357E308:1:42:-0x1.fffffffffffffp1023: ++%*LE:-1.79769313486231570814527423731704357E308:0:42: ++%LE:-2.3441674165664682593913711430784253952E+37:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*LE:-2.3441674165664682593913711430784253952E+37:0:44: ++%LE:-2.3441674165664682593913711430784253952E037:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*LE:-2.3441674165664682593913711430784253952E037:0:44: ++%LE:-2.22507385850720138309023271733240406E-308:1:43:-0x1p-1022: ++%*LE:-2.22507385850720138309023271733240406E-308:0:43: ++%LE:-0E+0:1:5:-0x0: ++%*LE:-0E+0:0:5: ++%LE:-0E0:1:4:-0x0: ++%*LE:-0E0:0:4: ++%LE:-NAN(09A_Zaz):1:13:-nan: ++%*LE:-NAN(09A_Zaz):0:13: ++%LE:-NAN():1:6:-nan: ++%*LE:-NAN():0:6: ++%LE:NAN():1:5:nan: ++%*LE:NAN():0:5: ++%LE:NAN(09A_Zaz):1:12:nan: ++%*LE:NAN(09A_Zaz):0:12: ++%LE:0E0:1:3:0x0: ++%*LE:0E0:0:3: ++%LE:0E+0:1:4:0x0: ++%*LE:0E+0:0:4: ++%LE:2.22507385850720138309023271733240406E-308:1:42:0x1p-1022: ++%*LE:2.22507385850720138309023271733240406E-308:0:42: ++%LE:2.3441674165664682593913711430784253952E037:1:43:0x1.1a2b3c4d5e6ffp124: ++%*LE:2.3441674165664682593913711430784253952E037:0:43: ++%LE:2.3441674165664682593913711430784253952E+37:1:43:0x1.1a2b3c4d5e6ffp124: ++%*LE:2.3441674165664682593913711430784253952E+37:0:43: ++%LE:1.79769313486231570814527423731704357E308:1:41:0x1.fffffffffffffp1023: ++%*LE:1.79769313486231570814527423731704357E308:0:41: ++%LE:1.79769313486231570814527423731704357E+308:1:42:0x1.fffffffffffffp1023: ++%*LE:1.79769313486231570814527423731704357E+308:0:42: ++%LE:INFINITY:1:8:inf: ++%*LE:INFINITY:0:8: ++%LE:+NAN():1:6:nan: ++%*LE:+NAN():0:6: ++%LE:+NAN(09A_Zaz):1:13:nan: ++%*LE:+NAN(09A_Zaz):0:13: ++%LE:+0E0:1:4:0x0: ++%*LE:+0E0:0:4: ++%LE:+0E+0:1:5:0x0: ++%*LE:+0E+0:0:5: ++%LE:+2.22507385850720138309023271733240406E-308:1:43:0x1p-1022: ++%*LE:+2.22507385850720138309023271733240406E-308:0:43: ++%LE:+2.3441674165664682593913711430784253952E037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*LE:+2.3441674165664682593913711430784253952E037:0:44: ++%LE:+2.3441674165664682593913711430784253952E+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*LE:+2.3441674165664682593913711430784253952E+37:0:44: ++%LE:+1.79769313486231570814527423731704357E308:1:42:0x1.fffffffffffffp1023: ++%*LE:+1.79769313486231570814527423731704357E308:0:42: ++%LE:+1.79769313486231570814527423731704357E+308:1:43:0x1.fffffffffffffp1023: ++%*LE:+1.79769313486231570814527423731704357E+308:0:43: ++%LE:+INFINITY:1:9:inf: ++%*LE:+INFINITY:0:9: ++%1LE::0:-1: ++%*1LE::0:-1: ++%1LE:-INFINITY:0:-1: ++%*1LE:-INFINITY:0:-1: ++%1LE:-1.79769313486231570814527423731704357E+308:0:-1: ++%*1LE:-1.79769313486231570814527423731704357E+308:0:-1: ++%1LE:-1.79769313486231570814527423731704357E308:0:-1: ++%*1LE:-1.79769313486231570814527423731704357E308:0:-1: ++%1LE:-2.3441674165664682593913711430784253952E+37:0:-1: ++%*1LE:-2.3441674165664682593913711430784253952E+37:0:-1: ++%1LE:-2.3441674165664682593913711430784253952E037:0:-1: ++%*1LE:-2.3441674165664682593913711430784253952E037:0:-1: ++%1LE:-2.22507385850720138309023271733240406E-308:0:-1: ++%*1LE:-2.22507385850720138309023271733240406E-308:0:-1: ++%1LE:-0E+0:0:-1: ++%*1LE:-0E+0:0:-1: ++%1LE:-0E0:0:-1: ++%*1LE:-0E0:0:-1: ++%1LE:-NAN(09A_Zaz):0:-1: ++%*1LE:-NAN(09A_Zaz):0:-1: ++%1LE:-NAN():0:-1: ++%*1LE:-NAN():0:-1: ++%1LE:NAN():0:-1: ++%*1LE:NAN():0:-1: ++%1LE:NAN(09A_Zaz):0:-1: ++%*1LE:NAN(09A_Zaz):0:-1: ++%1LE:0E0:1:1:0x0: ++%*1LE:0E0:0:1: ++%1LE:0E+0:1:1:0x0: ++%*1LE:0E+0:0:1: ++%1LE:2.22507385850720138309023271733240406E-308:1:1:0x1p1: ++%*1LE:2.22507385850720138309023271733240406E-308:0:1: ++%1LE:2.3441674165664682593913711430784253952E037:1:1:0x1p1: ++%*1LE:2.3441674165664682593913711430784253952E037:0:1: ++%1LE:2.3441674165664682593913711430784253952E+37:1:1:0x1p1: ++%*1LE:2.3441674165664682593913711430784253952E+37:0:1: ++%1LE:1.79769313486231570814527423731704357E308:1:1:0x1: ++%*1LE:1.79769313486231570814527423731704357E308:0:1: ++%1LE:1.79769313486231570814527423731704357E+308:1:1:0x1: ++%*1LE:1.79769313486231570814527423731704357E+308:0:1: ++%1LE:INFINITY:0:-1: ++%*1LE:INFINITY:0:-1: ++%1LE:+NAN():0:-1: ++%*1LE:+NAN():0:-1: ++%1LE:+NAN(09A_Zaz):0:-1: ++%*1LE:+NAN(09A_Zaz):0:-1: ++%1LE:+0E0:0:-1: ++%*1LE:+0E0:0:-1: ++%1LE:+0E+0:0:-1: ++%*1LE:+0E+0:0:-1: ++%1LE:+2.22507385850720138309023271733240406E-308:0:-1: ++%*1LE:+2.22507385850720138309023271733240406E-308:0:-1: ++%1LE:+2.3441674165664682593913711430784253952E037:0:-1: ++%*1LE:+2.3441674165664682593913711430784253952E037:0:-1: ++%1LE:+2.3441674165664682593913711430784253952E+37:0:-1: ++%*1LE:+2.3441674165664682593913711430784253952E+37:0:-1: ++%1LE:+1.79769313486231570814527423731704357E308:0:-1: ++%*1LE:+1.79769313486231570814527423731704357E308:0:-1: ++%1LE:+1.79769313486231570814527423731704357E+308:0:-1: ++%*1LE:+1.79769313486231570814527423731704357E+308:0:-1: ++%1LE:+INFINITY:0:-1: ++%*1LE:+INFINITY:0:-1: ++%2LE::0:-1: ++%*2LE::0:-1: ++%2LE:-INFINITY:0:-1: ++%*2LE:-INFINITY:0:-1: ++%2LE:-1.79769313486231570814527423731704357E+308:1:2:-0x1: ++%*2LE:-1.79769313486231570814527423731704357E+308:0:2: ++%2LE:-1.79769313486231570814527423731704357E308:1:2:-0x1: ++%*2LE:-1.79769313486231570814527423731704357E308:0:2: ++%2LE:-2.3441674165664682593913711430784253952E+37:1:2:-0x1p1: ++%*2LE:-2.3441674165664682593913711430784253952E+37:0:2: ++%2LE:-2.3441674165664682593913711430784253952E037:1:2:-0x1p1: ++%*2LE:-2.3441674165664682593913711430784253952E037:0:2: ++%2LE:-2.22507385850720138309023271733240406E-308:1:2:-0x1p1: ++%*2LE:-2.22507385850720138309023271733240406E-308:0:2: ++%2LE:-0E+0:1:2:-0x0: ++%*2LE:-0E+0:0:2: ++%2LE:-0E0:1:2:-0x0: ++%*2LE:-0E0:0:2: ++%2LE:-NAN(09A_Zaz):0:-1: ++%*2LE:-NAN(09A_Zaz):0:-1: ++%2LE:-NAN():0:-1: ++%*2LE:-NAN():0:-1: ++%2LE:NAN():0:-1: ++%*2LE:NAN():0:-1: ++%2LE:NAN(09A_Zaz):0:-1: ++%*2LE:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LE:0E0:0:-1: ++# BZ12701 %*2LE:0E0:0:-1: ++# BZ12701 %2LE:0E+0:0:-1: ++# BZ12701 %*2LE:0E+0:0:-1: ++%2LE:2.22507385850720138309023271733240406E-308:1:2:0x1p1: ++%*2LE:2.22507385850720138309023271733240406E-308:0:2: ++%2LE:2.3441674165664682593913711430784253952E037:1:2:0x1p1: ++%*2LE:2.3441674165664682593913711430784253952E037:0:2: ++%2LE:2.3441674165664682593913711430784253952E+37:1:2:0x1p1: ++%*2LE:2.3441674165664682593913711430784253952E+37:0:2: ++%2LE:1.79769313486231570814527423731704357E308:1:2:0x1: ++%*2LE:1.79769313486231570814527423731704357E308:0:2: ++%2LE:1.79769313486231570814527423731704357E+308:1:2:0x1: ++%*2LE:1.79769313486231570814527423731704357E+308:0:2: ++%2LE:INFINITY:0:-1: ++%*2LE:INFINITY:0:-1: ++%2LE:+NAN():0:-1: ++%*2LE:+NAN():0:-1: ++%2LE:+NAN(09A_Zaz):0:-1: ++%*2LE:+NAN(09A_Zaz):0:-1: ++%2LE:+0E0:1:2:0x0: ++%*2LE:+0E0:0:2: ++%2LE:+0E+0:1:2:0x0: ++%*2LE:+0E+0:0:2: ++%2LE:+2.22507385850720138309023271733240406E-308:1:2:0x1p1: ++%*2LE:+2.22507385850720138309023271733240406E-308:0:2: ++%2LE:+2.3441674165664682593913711430784253952E037:1:2:0x1p1: ++%*2LE:+2.3441674165664682593913711430784253952E037:0:2: ++%2LE:+2.3441674165664682593913711430784253952E+37:1:2:0x1p1: ++%*2LE:+2.3441674165664682593913711430784253952E+37:0:2: ++%2LE:+1.79769313486231570814527423731704357E308:1:2:0x1: ++%*2LE:+1.79769313486231570814527423731704357E308:0:2: ++%2LE:+1.79769313486231570814527423731704357E+308:1:2:0x1: ++%*2LE:+1.79769313486231570814527423731704357E+308:0:2: ++%2LE:+INFINITY:0:-1: ++%*2LE:+INFINITY:0:-1: ++%3LE::0:-1: ++%*3LE::0:-1: ++%3LE:-INFINITY:0:-1: ++%*3LE:-INFINITY:0:-1: ++%3LE:-1.79769313486231570814527423731704357E+308:1:3:-0x1: ++%*3LE:-1.79769313486231570814527423731704357E+308:0:3: ++%3LE:-1.79769313486231570814527423731704357E308:1:3:-0x1: ++%*3LE:-1.79769313486231570814527423731704357E308:0:3: ++%3LE:-2.3441674165664682593913711430784253952E+37:1:3:-0x1p1: ++%*3LE:-2.3441674165664682593913711430784253952E+37:0:3: ++%3LE:-2.3441674165664682593913711430784253952E037:1:3:-0x1p1: ++%*3LE:-2.3441674165664682593913711430784253952E037:0:3: ++%3LE:-2.22507385850720138309023271733240406E-308:1:3:-0x1p1: ++%*3LE:-2.22507385850720138309023271733240406E-308:0:3: ++# BZ12701 %3LE:-0E+0:0:-1: ++# BZ12701 %*3LE:-0E+0:0:-1: ++# BZ12701 %3LE:-0E0:0:-1: ++# BZ12701 %*3LE:-0E0:0:-1: ++%3LE:-NAN(09A_Zaz):0:-1: ++%*3LE:-NAN(09A_Zaz):0:-1: ++%3LE:-NAN():0:-1: ++%*3LE:-NAN():0:-1: ++%3LE:NAN():1:3:nan: ++%*3LE:NAN():0:3: ++%3LE:NAN(09A_Zaz):1:3:nan: ++%*3LE:NAN(09A_Zaz):0:3: ++%3LE:0E0:1:3:0x0: ++%*3LE:0E0:0:3: ++# BZ12701 %3LE:0E+0:0:-1: ++# BZ12701 %*3LE:0E+0:0:-1: ++%3LE:2.22507385850720138309023271733240406E-308:1:3:0x1.199999999999ap1: ++%*3LE:2.22507385850720138309023271733240406E-308:0:3: ++%3LE:2.3441674165664682593913711430784253952E037:1:3:0x1.2666666666666p1: ++%*3LE:2.3441674165664682593913711430784253952E037:0:3: ++%3LE:2.3441674165664682593913711430784253952E+37:1:3:0x1.2666666666666p1: ++%*3LE:2.3441674165664682593913711430784253952E+37:0:3: ++%3LE:1.79769313486231570814527423731704357E308:1:3:0x1.b333333333333: ++%*3LE:1.79769313486231570814527423731704357E308:0:3: ++%3LE:1.79769313486231570814527423731704357E+308:1:3:0x1.b333333333333: ++%*3LE:1.79769313486231570814527423731704357E+308:0:3: ++%3LE:INFINITY:1:3:inf: ++%*3LE:INFINITY:0:3: ++%3LE:+NAN():0:-1: ++%*3LE:+NAN():0:-1: ++%3LE:+NAN(09A_Zaz):0:-1: ++%*3LE:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LE:+0E0:0:-1: ++# BZ12701 %*3LE:+0E0:0:-1: ++# BZ12701 %3LE:+0E+0:0:-1: ++# BZ12701 %*3LE:+0E+0:0:-1: ++%3LE:+2.22507385850720138309023271733240406E-308:1:3:0x1p1: ++%*3LE:+2.22507385850720138309023271733240406E-308:0:3: ++%3LE:+2.3441674165664682593913711430784253952E037:1:3:0x1p1: ++%*3LE:+2.3441674165664682593913711430784253952E037:0:3: ++%3LE:+2.3441674165664682593913711430784253952E+37:1:3:0x1p1: ++%*3LE:+2.3441674165664682593913711430784253952E+37:0:3: ++%3LE:+1.79769313486231570814527423731704357E308:1:3:0x1: ++%*3LE:+1.79769313486231570814527423731704357E308:0:3: ++%3LE:+1.79769313486231570814527423731704357E+308:1:3:0x1: ++%*3LE:+1.79769313486231570814527423731704357E+308:0:3: ++%3LE:+INFINITY:0:-1: ++%*3LE:+INFINITY:0:-1: ++%4LE::0:-1: ++%*4LE::0:-1: ++%4LE:-INFINITY:1:4:-inf: ++%*4LE:-INFINITY:0:4: ++%4LE:-1.79769313486231570814527423731704357E+308:1:4:-0x1.b333333333333: ++%*4LE:-1.79769313486231570814527423731704357E+308:0:4: ++%4LE:-1.79769313486231570814527423731704357E308:1:4:-0x1.b333333333333: ++%*4LE:-1.79769313486231570814527423731704357E308:0:4: ++%4LE:-2.3441674165664682593913711430784253952E+37:1:4:-0x1.2666666666666p1: ++%*4LE:-2.3441674165664682593913711430784253952E+37:0:4: ++%4LE:-2.3441674165664682593913711430784253952E037:1:4:-0x1.2666666666666p1: ++%*4LE:-2.3441674165664682593913711430784253952E037:0:4: ++%4LE:-2.22507385850720138309023271733240406E-308:1:4:-0x1.199999999999ap1: ++%*4LE:-2.22507385850720138309023271733240406E-308:0:4: ++# BZ12701 %4LE:-0E+0:0:-1: ++# BZ12701 %*4LE:-0E+0:0:-1: ++%4LE:-0E0:1:4:-0x0: ++%*4LE:-0E0:0:4: ++%4LE:-NAN(09A_Zaz):1:4:-nan: ++%*4LE:-NAN(09A_Zaz):0:4: ++%4LE:-NAN():1:4:-nan: ++%*4LE:-NAN():0:4: ++%4LE:NAN():0:-1: ++%*4LE:NAN():0:-1: ++%4LE:NAN(09A_Zaz):0:-1: ++%*4LE:NAN(09A_Zaz):0:-1: ++%4LE:0E0:1:3:0x0: ++%*4LE:0E0:0:3: ++%4LE:0E+0:1:4:0x0: ++%*4LE:0E+0:0:4: ++%4LE:2.22507385850720138309023271733240406E-308:1:4:0x1.1c28f5c28f5c3p1: ++%*4LE:2.22507385850720138309023271733240406E-308:0:4: ++%4LE:2.3441674165664682593913711430784253952E037:1:4:0x1.2b851eb851eb8p1: ++%*4LE:2.3441674165664682593913711430784253952E037:0:4: ++%4LE:2.3441674165664682593913711430784253952E+37:1:4:0x1.2b851eb851eb8p1: ++%*4LE:2.3441674165664682593913711430784253952E+37:0:4: ++%4LE:1.79769313486231570814527423731704357E308:1:4:0x1.ca3d70a3d70a4: ++%*4LE:1.79769313486231570814527423731704357E308:0:4: ++%4LE:1.79769313486231570814527423731704357E+308:1:4:0x1.ca3d70a3d70a4: ++%*4LE:1.79769313486231570814527423731704357E+308:0:4: ++%4LE:INFINITY:0:-1: ++%*4LE:INFINITY:0:-1: ++%4LE:+NAN():1:4:nan: ++%*4LE:+NAN():0:4: ++%4LE:+NAN(09A_Zaz):1:4:nan: ++%*4LE:+NAN(09A_Zaz):0:4: ++%4LE:+0E0:1:4:0x0: ++%*4LE:+0E0:0:4: ++# BZ12701 %4LE:+0E+0:0:-1: ++# BZ12701 %*4LE:+0E+0:0:-1: ++%4LE:+2.22507385850720138309023271733240406E-308:1:4:0x1.199999999999ap1: ++%*4LE:+2.22507385850720138309023271733240406E-308:0:4: ++%4LE:+2.3441674165664682593913711430784253952E037:1:4:0x1.2666666666666p1: ++%*4LE:+2.3441674165664682593913711430784253952E037:0:4: ++%4LE:+2.3441674165664682593913711430784253952E+37:1:4:0x1.2666666666666p1: ++%*4LE:+2.3441674165664682593913711430784253952E+37:0:4: ++%4LE:+1.79769313486231570814527423731704357E308:1:4:0x1.b333333333333: ++%*4LE:+1.79769313486231570814527423731704357E308:0:4: ++%4LE:+1.79769313486231570814527423731704357E+308:1:4:0x1.b333333333333: ++%*4LE:+1.79769313486231570814527423731704357E+308:0:4: ++%4LE:+INFINITY:1:4:inf: ++%*4LE:+INFINITY:0:4: ++%40LE::0:-1: ++%*40LE::0:-1: ++%40LE:-INFINITY:1:9:-inf: ++%*40LE:-INFINITY:0:9: ++# BZ12701 %40LE:-1.79769313486231570814527423731704357E+308:0:-1: ++# BZ12701 %*40LE:-1.79769313486231570814527423731704357E+308:0:-1: ++%40LE:-1.79769313486231570814527423731704357E308:1:40:-0x1.c16c5c5253574p10: ++%*40LE:-1.79769313486231570814527423731704357E308:0:40: ++%40LE:-2.3441674165664682593913711430784253952E+37:1:40:-0x1.2c0dad8b403aap1: ++%*40LE:-2.3441674165664682593913711430784253952E+37:0:40: ++%40LE:-2.3441674165664682593913711430784253952E037:1:40:-0x1.2c0dad8b403aap1: ++%*40LE:-2.3441674165664682593913711430784253952E037:0:40: ++# BZ12701 %40LE:-2.22507385850720138309023271733240406E-308:0:-1: ++# BZ12701 %*40LE:-2.22507385850720138309023271733240406E-308:0:-1: ++%40LE:-0E+0:1:5:-0x0: ++%*40LE:-0E+0:0:5: ++%40LE:-0E0:1:4:-0x0: ++%*40LE:-0E0:0:4: ++%40LE:-NAN(09A_Zaz):1:13:-nan: ++%*40LE:-NAN(09A_Zaz):0:13: ++%40LE:-NAN():1:6:-nan: ++%*40LE:-NAN():0:6: ++%40LE:NAN():1:5:nan: ++%*40LE:NAN():0:5: ++%40LE:NAN(09A_Zaz):1:12:nan: ++%*40LE:NAN(09A_Zaz):0:12: ++%40LE:0E0:1:3:0x0: ++%*40LE:0E0:0:3: ++%40LE:0E+0:1:4:0x0: ++%*40LE:0E+0:0:4: ++%40LE:2.22507385850720138309023271733240406E-308:1:40:0x1.23a516e82d9bap-9: ++%*40LE:2.22507385850720138309023271733240406E-308:0:40: ++# BZ12701 %40LE:2.3441674165664682593913711430784253952E037:0:-1: ++# BZ12701 %*40LE:2.3441674165664682593913711430784253952E037:0:-1: ++# BZ12701 %40LE:2.3441674165664682593913711430784253952E+37:0:-1: ++# BZ12701 %*40LE:2.3441674165664682593913711430784253952E+37:0:-1: ++%40LE:1.79769313486231570814527423731704357E308:1:40:0x1.6b0a8e891ffffp100: ++%*40LE:1.79769313486231570814527423731704357E308:0:40: ++%40LE:1.79769313486231570814527423731704357E+308:1:40:0x1.c16c5c5253574p10: ++%*40LE:1.79769313486231570814527423731704357E+308:0:40: ++%40LE:INFINITY:1:8:inf: ++%*40LE:INFINITY:0:8: ++%40LE:+NAN():1:6:nan: ++%*40LE:+NAN():0:6: ++%40LE:+NAN(09A_Zaz):1:13:nan: ++%*40LE:+NAN(09A_Zaz):0:13: ++%40LE:+0E0:1:4:0x0: ++%*40LE:+0E0:0:4: ++%40LE:+0E+0:1:5:0x0: ++%*40LE:+0E+0:0:5: ++# BZ12701 %40LE:+2.22507385850720138309023271733240406E-308:0:-1: ++# BZ12701 %*40LE:+2.22507385850720138309023271733240406E-308:0:-1: ++%40LE:+2.3441674165664682593913711430784253952E037:1:40:0x1.2c0dad8b403aap1: ++%*40LE:+2.3441674165664682593913711430784253952E037:0:40: ++%40LE:+2.3441674165664682593913711430784253952E+37:1:40:0x1.2c0dad8b403aap1: ++%*40LE:+2.3441674165664682593913711430784253952E+37:0:40: ++%40LE:+1.79769313486231570814527423731704357E308:1:40:0x1.c16c5c5253574p10: ++%*40LE:+1.79769313486231570814527423731704357E308:0:40: ++# BZ12701 %40LE:+1.79769313486231570814527423731704357E+308:0:-1: ++# BZ12701 %*40LE:+1.79769313486231570814527423731704357E+308:0:-1: ++%40LE:+INFINITY:1:9:inf: ++%*40LE:+INFINITY:0:9: ++%48LE::0:-1: ++%*48LE::0:-1: ++%48LE:-INFINITY:1:9:-inf: ++%*48LE:-INFINITY:0:9: ++%48LE:-1.79769313486231570814527423731704357E+308:1:43:-0x1.fffffffffffffp1023: ++%*48LE:-1.79769313486231570814527423731704357E+308:0:43: ++%48LE:-1.79769313486231570814527423731704357E308:1:42:-0x1.fffffffffffffp1023: ++%*48LE:-1.79769313486231570814527423731704357E308:0:42: ++%48LE:-2.3441674165664682593913711430784253952E+37:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*48LE:-2.3441674165664682593913711430784253952E+37:0:44: ++%48LE:-2.3441674165664682593913711430784253952E037:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*48LE:-2.3441674165664682593913711430784253952E037:0:44: ++%48LE:-2.22507385850720138309023271733240406E-308:1:43:-0x1p-1022: ++%*48LE:-2.22507385850720138309023271733240406E-308:0:43: ++%48LE:-0E+0:1:5:-0x0: ++%*48LE:-0E+0:0:5: ++%48LE:-0E0:1:4:-0x0: ++%*48LE:-0E0:0:4: ++%48LE:-NAN(09A_Zaz):1:13:-nan: ++%*48LE:-NAN(09A_Zaz):0:13: ++%48LE:-NAN():1:6:-nan: ++%*48LE:-NAN():0:6: ++%48LE:NAN():1:5:nan: ++%*48LE:NAN():0:5: ++%48LE:NAN(09A_Zaz):1:12:nan: ++%*48LE:NAN(09A_Zaz):0:12: ++%48LE:0E0:1:3:0x0: ++%*48LE:0E0:0:3: ++%48LE:0E+0:1:4:0x0: ++%*48LE:0E+0:0:4: ++%48LE:2.22507385850720138309023271733240406E-308:1:42:0x1p-1022: ++%*48LE:2.22507385850720138309023271733240406E-308:0:42: ++%48LE:2.3441674165664682593913711430784253952E037:1:43:0x1.1a2b3c4d5e6ffp124: ++%*48LE:2.3441674165664682593913711430784253952E037:0:43: ++%48LE:2.3441674165664682593913711430784253952E+37:1:43:0x1.1a2b3c4d5e6ffp124: ++%*48LE:2.3441674165664682593913711430784253952E+37:0:43: ++%48LE:1.79769313486231570814527423731704357E308:1:41:0x1.fffffffffffffp1023: ++%*48LE:1.79769313486231570814527423731704357E308:0:41: ++%48LE:1.79769313486231570814527423731704357E+308:1:42:0x1.fffffffffffffp1023: ++%*48LE:1.79769313486231570814527423731704357E+308:0:42: ++%48LE:INFINITY:1:8:inf: ++%*48LE:INFINITY:0:8: ++%48LE:+NAN():1:6:nan: ++%*48LE:+NAN():0:6: ++%48LE:+NAN(09A_Zaz):1:13:nan: ++%*48LE:+NAN(09A_Zaz):0:13: ++%48LE:+0E0:1:4:0x0: ++%*48LE:+0E0:0:4: ++%48LE:+0E+0:1:5:0x0: ++%*48LE:+0E+0:0:5: ++%48LE:+2.22507385850720138309023271733240406E-308:1:43:0x1p-1022: ++%*48LE:+2.22507385850720138309023271733240406E-308:0:43: ++%48LE:+2.3441674165664682593913711430784253952E037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48LE:+2.3441674165664682593913711430784253952E037:0:44: ++%48LE:+2.3441674165664682593913711430784253952E+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48LE:+2.3441674165664682593913711430784253952E+37:0:44: ++%48LE:+1.79769313486231570814527423731704357E308:1:42:0x1.fffffffffffffp1023: ++%*48LE:+1.79769313486231570814527423731704357E308:0:42: ++%48LE:+1.79769313486231570814527423731704357E+308:1:43:0x1.fffffffffffffp1023: ++%*48LE:+1.79769313486231570814527423731704357E+308:0:43: ++%48LE:+INFINITY:1:9:inf: ++%*48LE:+INFINITY:0:9: ++%3LE: :0:-1: ++%*3LE: :0:-1: ++%3LE: -INFINITY:0:-1: ++%*3LE: -INFINITY:0:-1: ++%3LE: -1.79769313486231570814527423731704357E+308:1:4:-0x1: ++%*3LE: -1.79769313486231570814527423731704357E+308:0:4: ++%3LE: -1.79769313486231570814527423731704357E308:1:4:-0x1: ++%*3LE: -1.79769313486231570814527423731704357E308:0:4: ++%3LE: -2.3441674165664682593913711430784253952E+37:1:4:-0x1p1: ++%*3LE: -2.3441674165664682593913711430784253952E+37:0:4: ++%3LE: -2.3441674165664682593913711430784253952E037:1:4:-0x1p1: ++%*3LE: -2.3441674165664682593913711430784253952E037:0:4: ++%3LE: -2.22507385850720138309023271733240406E-308:1:4:-0x1p1: ++%*3LE: -2.22507385850720138309023271733240406E-308:0:4: ++# BZ12701 %3LE: -0E+0:0:-1: ++# BZ12701 %*3LE: -0E+0:0:-1: ++# BZ12701 %3LE: -0E0:0:-1: ++# BZ12701 %*3LE: -0E0:0:-1: ++%3LE: -NAN(09A_Zaz):0:-1: ++%*3LE: -NAN(09A_Zaz):0:-1: ++%3LE: -NAN():0:-1: ++%*3LE: -NAN():0:-1: ++%3LE: NAN():1:4:nan: ++%*3LE: NAN():0:4: ++%3LE: NAN(09A_Zaz):1:4:nan: ++%*3LE: NAN(09A_Zaz):0:4: ++%3LE: 0E0:1:4:0x0: ++%*3LE: 0E0:0:4: ++# BZ12701 %3LE: 0E+0:0:-1: ++# BZ12701 %*3LE: 0E+0:0:-1: ++%3LE: 2.22507385850720138309023271733240406E-308:1:4:0x1.199999999999ap1: ++%*3LE: 2.22507385850720138309023271733240406E-308:0:4: ++%3LE: 2.3441674165664682593913711430784253952E037:1:4:0x1.2666666666666p1: ++%*3LE: 2.3441674165664682593913711430784253952E037:0:4: ++%3LE: 2.3441674165664682593913711430784253952E+37:1:4:0x1.2666666666666p1: ++%*3LE: 2.3441674165664682593913711430784253952E+37:0:4: ++%3LE: 1.79769313486231570814527423731704357E308:1:4:0x1.b333333333333: ++%*3LE: 1.79769313486231570814527423731704357E308:0:4: ++%3LE: 1.79769313486231570814527423731704357E+308:1:4:0x1.b333333333333: ++%*3LE: 1.79769313486231570814527423731704357E+308:0:4: ++%3LE: INFINITY:1:4:inf: ++%*3LE: INFINITY:0:4: ++%3LE: +NAN():0:-1: ++%*3LE: +NAN():0:-1: ++%3LE: +NAN(09A_Zaz):0:-1: ++%*3LE: +NAN(09A_Zaz):0:-1: ++# BZ12701 %3LE: +0E0:0:-1: ++# BZ12701 %*3LE: +0E0:0:-1: ++# BZ12701 %3LE: +0E+0:0:-1: ++# BZ12701 %*3LE: +0E+0:0:-1: ++%3LE: +2.22507385850720138309023271733240406E-308:1:4:0x1p1: ++%*3LE: +2.22507385850720138309023271733240406E-308:0:4: ++%3LE: +2.3441674165664682593913711430784253952E037:1:4:0x1p1: ++%*3LE: +2.3441674165664682593913711430784253952E037:0:4: ++%3LE: +2.3441674165664682593913711430784253952E+37:1:4:0x1p1: ++%*3LE: +2.3441674165664682593913711430784253952E+37:0:4: ++%3LE: +1.79769313486231570814527423731704357E308:1:4:0x1: ++%*3LE: +1.79769313486231570814527423731704357E308:0:4: ++%3LE: +1.79769313486231570814527423731704357E+308:1:4:0x1: ++%*3LE: +1.79769313486231570814527423731704357E+308:0:4: ++%3LE: +INFINITY:0:-1: ++%*3LE: +INFINITY:0:-1: ++%48LE: :0:-1: ++%*48LE: :0:-1: ++%48LE: -INFINITY:1:10:-inf: ++%*48LE: -INFINITY:0:10: ++%48LE: -1.79769313486231570814527423731704357E+308:1:44:-0x1.fffffffffffffp1023: ++%*48LE: -1.79769313486231570814527423731704357E+308:0:44: ++%48LE: -1.79769313486231570814527423731704357E308:1:43:-0x1.fffffffffffffp1023: ++%*48LE: -1.79769313486231570814527423731704357E308:0:43: ++%48LE: -2.3441674165664682593913711430784253952E+37:1:45:-0x1.1a2b3c4d5e6ffp124: ++%*48LE: -2.3441674165664682593913711430784253952E+37:0:45: ++%48LE: -2.3441674165664682593913711430784253952E037:1:45:-0x1.1a2b3c4d5e6ffp124: ++%*48LE: -2.3441674165664682593913711430784253952E037:0:45: ++%48LE: -2.22507385850720138309023271733240406E-308:1:44:-0x1p-1022: ++%*48LE: -2.22507385850720138309023271733240406E-308:0:44: ++%48LE: -0E+0:1:6:-0x0: ++%*48LE: -0E+0:0:6: ++%48LE: -0E0:1:5:-0x0: ++%*48LE: -0E0:0:5: ++%48LE: -NAN(09A_Zaz):1:14:-nan: ++%*48LE: -NAN(09A_Zaz):0:14: ++%48LE: -NAN():1:7:-nan: ++%*48LE: -NAN():0:7: ++%48LE: NAN():1:6:nan: ++%*48LE: NAN():0:6: ++%48LE: NAN(09A_Zaz):1:13:nan: ++%*48LE: NAN(09A_Zaz):0:13: ++%48LE: 0E0:1:4:0x0: ++%*48LE: 0E0:0:4: ++%48LE: 0E+0:1:5:0x0: ++%*48LE: 0E+0:0:5: ++%48LE: 2.22507385850720138309023271733240406E-308:1:43:0x1p-1022: ++%*48LE: 2.22507385850720138309023271733240406E-308:0:43: ++%48LE: 2.3441674165664682593913711430784253952E037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48LE: 2.3441674165664682593913711430784253952E037:0:44: ++%48LE: 2.3441674165664682593913711430784253952E+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48LE: 2.3441674165664682593913711430784253952E+37:0:44: ++%48LE: 1.79769313486231570814527423731704357E308:1:42:0x1.fffffffffffffp1023: ++%*48LE: 1.79769313486231570814527423731704357E308:0:42: ++%48LE: 1.79769313486231570814527423731704357E+308:1:43:0x1.fffffffffffffp1023: ++%*48LE: 1.79769313486231570814527423731704357E+308:0:43: ++%48LE: INFINITY:1:9:inf: ++%*48LE: INFINITY:0:9: ++%48LE: +NAN():1:7:nan: ++%*48LE: +NAN():0:7: ++%48LE: +NAN(09A_Zaz):1:14:nan: ++%*48LE: +NAN(09A_Zaz):0:14: ++%48LE: +0E0:1:5:0x0: ++%*48LE: +0E0:0:5: ++%48LE: +0E+0:1:6:0x0: ++%*48LE: +0E+0:0:6: ++%48LE: +2.22507385850720138309023271733240406E-308:1:44:0x1p-1022: ++%*48LE: +2.22507385850720138309023271733240406E-308:0:44: ++%48LE: +2.3441674165664682593913711430784253952E037:1:45:0x1.1a2b3c4d5e6ffp124: ++%*48LE: +2.3441674165664682593913711430784253952E037:0:45: ++%48LE: +2.3441674165664682593913711430784253952E+37:1:45:0x1.1a2b3c4d5e6ffp124: ++%*48LE: +2.3441674165664682593913711430784253952E+37:0:45: ++%48LE: +1.79769313486231570814527423731704357E308:1:43:0x1.fffffffffffffp1023: ++%*48LE: +1.79769313486231570814527423731704357E308:0:43: ++%48LE: +1.79769313486231570814527423731704357E+308:1:44:0x1.fffffffffffffp1023: ++%*48LE: +1.79769313486231570814527423731704357E+308:0:44: ++%48LE: +INFINITY:1:10:inf: ++%*48LE: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input +new file mode 100644 +index 0000000000000000..a506658d25fff3a5 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input +@@ -0,0 +1,558 @@ ++%Lf::0:-1: ++%*Lf::0:-1: ++%Lf:-infinity:1:9:-inf: ++%*Lf:-infinity:0:9: ++%Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023: ++%*Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%Lf:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*Lf:-023441674165664682593913711430784253952.0:0:42: ++%Lf:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*Lf:-23441674165664682593913711430784253952:0:39: ++%Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022: ++%*Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%Lf:-0.0:1:4:-0x0: ++%*Lf:-0.0:0:4: ++%Lf:-0:1:2:-0x0: ++%*Lf:-0:0:2: ++%Lf:-nan(09A_Zaz):1:13:-nan: ++%*Lf:-nan(09A_Zaz):0:13: ++%Lf:-nan():1:6:-nan: ++%*Lf:-nan():0:6: ++%Lf:nan():1:5:nan: ++%*Lf:nan():0:5: ++%Lf:nan(09A_Zaz):1:12:nan: ++%*Lf:nan(09A_Zaz):0:12: ++%Lf:0:1:1:0x0: ++%*Lf:0:0:1: ++%Lf:0.0:1:3:0x0: ++%*Lf:0.0:0:3: ++%Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022: ++%*Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341: ++%Lf:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*Lf:23441674165664682593913711430784253952:0:38: ++%Lf:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*Lf:023441674165664682593913711430784253952.0:0:41: ++%Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023: ++%*Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: ++%Lf:infinity:1:8:inf: ++%*Lf:infinity:0:8: ++%Lf:+nan():1:6:nan: ++%*Lf:+nan():0:6: ++%Lf:+nan(09A_Zaz):1:13:nan: ++%*Lf:+nan(09A_Zaz):0:13: ++%Lf:+0:1:2:0x0: ++%*Lf:+0:0:2: ++%Lf:+0.0:1:4:0x0: ++%*Lf:+0.0:0:4: ++%Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%Lf:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*Lf:+23441674165664682593913711430784253952:0:39: ++%Lf:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*Lf:+023441674165664682593913711430784253952.0:0:42: ++%Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%Lf:+infinity:1:9:inf: ++%*Lf:+infinity:0:9: ++%1Lf::0:-1: ++%*1Lf::0:-1: ++%1Lf:-infinity:0:-1: ++%*1Lf:-infinity:0:-1: ++%1Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%*1Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%1Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%*1Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%1Lf:-023441674165664682593913711430784253952.0:0:-1: ++%*1Lf:-023441674165664682593913711430784253952.0:0:-1: ++%1Lf:-23441674165664682593913711430784253952:0:-1: ++%*1Lf:-23441674165664682593913711430784253952:0:-1: ++%1Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%*1Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%1Lf:-0.0:0:-1: ++%*1Lf:-0.0:0:-1: ++%1Lf:-0:0:-1: ++%*1Lf:-0:0:-1: ++%1Lf:-nan(09A_Zaz):0:-1: ++%*1Lf:-nan(09A_Zaz):0:-1: ++%1Lf:-nan():0:-1: ++%*1Lf:-nan():0:-1: ++%1Lf:nan():0:-1: ++%*1Lf:nan():0:-1: ++%1Lf:nan(09A_Zaz):0:-1: ++%*1Lf:nan(09A_Zaz):0:-1: ++%1Lf:0:1:1:0x0: ++%*1Lf:0:0:1: ++%1Lf:0.0:1:1:0x0: ++%*1Lf:0.0:0:1: ++%1Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:1:0x0: ++%*1Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:1: ++%1Lf:23441674165664682593913711430784253952:1:1:0x1p1: ++%*1Lf:23441674165664682593913711430784253952:0:1: ++%1Lf:023441674165664682593913711430784253952.0:1:1:0x0: ++%*1Lf:023441674165664682593913711430784253952.0:0:1: ++%1Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:1:0x1: ++%*1Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:1: ++%1Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:1:0x0: ++%*1Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1: ++%1Lf:infinity:0:-1: ++%*1Lf:infinity:0:-1: ++%1Lf:+nan():0:-1: ++%*1Lf:+nan():0:-1: ++%1Lf:+nan(09A_Zaz):0:-1: ++%*1Lf:+nan(09A_Zaz):0:-1: ++%1Lf:+0:0:-1: ++%*1Lf:+0:0:-1: ++%1Lf:+0.0:0:-1: ++%*1Lf:+0.0:0:-1: ++%1Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%*1Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%1Lf:+23441674165664682593913711430784253952:0:-1: ++%*1Lf:+23441674165664682593913711430784253952:0:-1: ++%1Lf:+023441674165664682593913711430784253952.0:0:-1: ++%*1Lf:+023441674165664682593913711430784253952.0:0:-1: ++%1Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%*1Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%1Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%*1Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%1Lf:+infinity:0:-1: ++%*1Lf:+infinity:0:-1: ++%2Lf::0:-1: ++%*2Lf::0:-1: ++%2Lf:-infinity:0:-1: ++%*2Lf:-infinity:0:-1: ++%2Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:-0x0: ++%*2Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:-0x1: ++%*2Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2Lf:-023441674165664682593913711430784253952.0:1:2:-0x0: ++%*2Lf:-023441674165664682593913711430784253952.0:0:2: ++%2Lf:-23441674165664682593913711430784253952:1:2:-0x1p1: ++%*2Lf:-23441674165664682593913711430784253952:0:2: ++%2Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:-0x0: ++%*2Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2Lf:-0.0:1:2:-0x0: ++%*2Lf:-0.0:0:2: ++%2Lf:-0:1:2:-0x0: ++%*2Lf:-0:0:2: ++%2Lf:-nan(09A_Zaz):0:-1: ++%*2Lf:-nan(09A_Zaz):0:-1: ++%2Lf:-nan():0:-1: ++%*2Lf:-nan():0:-1: ++%2Lf:nan():0:-1: ++%*2Lf:nan():0:-1: ++%2Lf:nan(09A_Zaz):0:-1: ++%*2Lf:nan(09A_Zaz):0:-1: ++%2Lf:0:1:1:0x0: ++%*2Lf:0:0:1: ++%2Lf:0.0:1:2:0x0: ++%*2Lf:0.0:0:2: ++%2Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0: ++%*2Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2Lf:23441674165664682593913711430784253952:1:2:0x1.7p+4: ++%*2Lf:23441674165664682593913711430784253952:0:2: ++%2Lf:023441674165664682593913711430784253952.0:1:2:0x1p1: ++%*2Lf:023441674165664682593913711430784253952.0:0:2: ++%2Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1.1p+4: ++%*2Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x1: ++%*2Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2Lf:infinity:0:-1: ++%*2Lf:infinity:0:-1: ++%2Lf:+nan():0:-1: ++%*2Lf:+nan():0:-1: ++%2Lf:+nan(09A_Zaz):0:-1: ++%*2Lf:+nan(09A_Zaz):0:-1: ++%2Lf:+0:1:2:0x0: ++%*2Lf:+0:0:2: ++%2Lf:+0.0:1:2:0x0: ++%*2Lf:+0.0:0:2: ++%2Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0: ++%*2Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2Lf:+23441674165664682593913711430784253952:1:2:0x1p1: ++%*2Lf:+23441674165664682593913711430784253952:0:2: ++%2Lf:+023441674165664682593913711430784253952.0:1:2:0x0: ++%*2Lf:+023441674165664682593913711430784253952.0:0:2: ++%2Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1: ++%*2Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x0: ++%*2Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2Lf:+infinity:0:-1: ++%*2Lf:+infinity:0:-1: ++%3Lf::0:-1: ++%*3Lf::0:-1: ++%3Lf:-infinity:0:-1: ++%*3Lf:-infinity:0:-1: ++%3Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:-0x1: ++%*3Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:-0x1.1p+4: ++%*3Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3Lf:-023441674165664682593913711430784253952.0:1:3:-0x1p1: ++%*3Lf:-023441674165664682593913711430784253952.0:0:3: ++%3Lf:-23441674165664682593913711430784253952:1:3:-0x1.7p+4: ++%*3Lf:-23441674165664682593913711430784253952:0:3: ++%3Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:-0x0: ++%*3Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3Lf:-0.0:1:3:-0x0: ++%*3Lf:-0.0:0:3: ++%3Lf:-0:1:2:-0x0: ++%*3Lf:-0:0:2: ++%3Lf:-nan(09A_Zaz):0:-1: ++%*3Lf:-nan(09A_Zaz):0:-1: ++%3Lf:-nan():0:-1: ++%*3Lf:-nan():0:-1: ++%3Lf:nan():1:3:nan: ++%*3Lf:nan():0:3: ++%3Lf:nan(09A_Zaz):1:3:nan: ++%*3Lf:nan(09A_Zaz):0:3: ++%3Lf:0:1:1:0x0: ++%*3Lf:0:0:1: ++%3Lf:0.0:1:3:0x0: ++%*3Lf:0.0:0:3: ++%3Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0: ++%*3Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3Lf:23441674165664682593913711430784253952:1:3:0x1.d4p+7: ++%*3Lf:23441674165664682593913711430784253952:0:3: ++%3Lf:023441674165664682593913711430784253952.0:1:3:0x1.7p+4: ++%*3Lf:023441674165664682593913711430784253952.0:0:3: ++%3Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.66p+7: ++%*3Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1.1p4: ++%*3Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3Lf:infinity:1:3:inf: ++%*3Lf:infinity:0:3: ++%3Lf:+nan():0:-1: ++%*3Lf:+nan():0:-1: ++%3Lf:+nan(09A_Zaz):0:-1: ++%*3Lf:+nan(09A_Zaz):0:-1: ++%3Lf:+0:1:2:0x0: ++%*3Lf:+0:0:2: ++%3Lf:+0.0:1:3:0x0: ++%*3Lf:+0.0:0:3: ++%3Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0: ++%*3Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3Lf:+23441674165664682593913711430784253952:1:3:0x1.7p+4: ++%*3Lf:+23441674165664682593913711430784253952:0:3: ++%3Lf:+023441674165664682593913711430784253952.0:1:3:0x1p1: ++%*3Lf:+023441674165664682593913711430784253952.0:0:3: ++%3Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.1p4: ++%*3Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1: ++%*3Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3Lf:+infinity:0:-1: ++%*3Lf:+infinity:0:-1: ++%4Lf::0:-1: ++%*4Lf::0:-1: ++%4Lf:-infinity:1:4:-inf: ++%*4Lf:-infinity:0:4: ++%4Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1.1p4: ++%*4Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.66p+7: ++%*4Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4Lf:-023441674165664682593913711430784253952.0:1:4:-0x1.7p+4: ++%*4Lf:-023441674165664682593913711430784253952.0:0:4: ++%4Lf:-23441674165664682593913711430784253952:1:4:-0x1.d4p+7: ++%*4Lf:-23441674165664682593913711430784253952:0:4: ++%4Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0: ++%*4Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4Lf:-0.0:1:4:-0x0: ++%*4Lf:-0.0:0:4: ++%4Lf:-0:1:2:-0x0: ++%*4Lf:-0:0:2: ++%4Lf:-nan(09A_Zaz):1:4:-nan: ++%*4Lf:-nan(09A_Zaz):0:4: ++%4Lf:-nan():1:4:-nan: ++%*4Lf:-nan():0:4: ++%4Lf:nan():0:-1: ++%*4Lf:nan():0:-1: ++%4Lf:nan(09A_Zaz):0:-1: ++%*4Lf:nan(09A_Zaz):0:-1: ++%4Lf:0:1:1:0x0: ++%*4Lf:0:0:1: ++%4Lf:0.0:1:3:0x0: ++%*4Lf:0.0:0:3: ++%4Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*4Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4Lf:23441674165664682593913711430784253952:1:4:0x1.25p11: ++%*4Lf:23441674165664682593913711430784253952:0:4: ++%4Lf:023441674165664682593913711430784253952.0:1:4:0x1.d4p+7: ++%*4Lf:023441674165664682593913711430784253952.0:0:4: ++%4Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.c14p+10: ++%*4Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.66p+7: ++%*4Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4Lf:infinity:0:-1: ++%*4Lf:infinity:0:-1: ++%4Lf:+nan():1:4:nan: ++%*4Lf:+nan():0:4: ++%4Lf:+nan(09A_Zaz):1:4:nan: ++%*4Lf:+nan(09A_Zaz):0:4: ++%4Lf:+0:1:2:0x0: ++%*4Lf:+0:0:2: ++%4Lf:+0.0:1:4:0x0: ++%*4Lf:+0.0:0:4: ++%4Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*4Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4Lf:+23441674165664682593913711430784253952:1:4:0x1.d4p+7: ++%*4Lf:+23441674165664682593913711430784253952:0:4: ++%4Lf:+023441674165664682593913711430784253952.0:1:4:0x1.7p+4: ++%*4Lf:+023441674165664682593913711430784253952.0:0:4: ++%4Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7: ++%*4Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4: ++%*4Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4Lf:+infinity:1:4:inf: ++%*4Lf:+infinity:0:4: ++%311Lf::0:-1: ++%*311Lf::0:-1: ++%311Lf:-infinity:1:9:-inf: ++%*311Lf:-infinity:0:9: ++%311Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:-0x1.fffffffffffffp1023: ++%*311Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*311Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%311Lf:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*311Lf:-023441674165664682593913711430784253952.0:0:42: ++%311Lf:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*311Lf:-23441674165664682593913711430784253952:0:39: ++%311Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:-0x1.cc359e067a348p-1023: ++%*311Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311Lf:-0.0:1:4:-0x0: ++%*311Lf:-0.0:0:4: ++%311Lf:-0:1:2:-0x0: ++%*311Lf:-0:0:2: ++%311Lf:-nan(09A_Zaz):1:13:-nan: ++%*311Lf:-nan(09A_Zaz):0:13: ++%311Lf:-nan():1:6:-nan: ++%*311Lf:-nan():0:6: ++%311Lf:nan():1:5:nan: ++%*311Lf:nan():0:5: ++%311Lf:nan(09A_Zaz):1:12:nan: ++%*311Lf:nan(09A_Zaz):0:12: ++%311Lf:0:1:1:0x0: ++%*311Lf:0:0:1: ++%311Lf:0.0:1:3:0x0: ++%*311Lf:0.0:0:3: ++%311Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.fa3afaa0b9a04p-1023: ++%*311Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311Lf:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*311Lf:23441674165664682593913711430784253952:0:38: ++%311Lf:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*311Lf:023441674165664682593913711430784253952.0:0:41: ++%311Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*311Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%311Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023: ++%*311Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311Lf:infinity:1:8:inf: ++%*311Lf:infinity:0:8: ++%311Lf:+nan():1:6:nan: ++%*311Lf:+nan():0:6: ++%311Lf:+nan(09A_Zaz):1:13:nan: ++%*311Lf:+nan(09A_Zaz):0:13: ++%311Lf:+0:1:2:0x0: ++%*311Lf:+0:0:2: ++%311Lf:+0.0:1:4:0x0: ++%*311Lf:+0.0:0:4: ++%311Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.cc359e067a348p-1023: ++%*311Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311Lf:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*311Lf:+23441674165664682593913711430784253952:0:39: ++%311Lf:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*311Lf:+023441674165664682593913711430784253952.0:0:42: ++%311Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*311Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%311Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023: ++%*311Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311Lf:+infinity:1:9:inf: ++%*311Lf:+infinity:0:9: ++%350Lf::0:-1: ++%*350Lf::0:-1: ++%350Lf:-infinity:1:9:-inf: ++%*350Lf:-infinity:0:9: ++%350Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023: ++%*350Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*350Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350Lf:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*350Lf:-023441674165664682593913711430784253952.0:0:42: ++%350Lf:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*350Lf:-23441674165664682593913711430784253952:0:39: ++%350Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022: ++%*350Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350Lf:-0.0:1:4:-0x0: ++%*350Lf:-0.0:0:4: ++%350Lf:-0:1:2:-0x0: ++%*350Lf:-0:0:2: ++%350Lf:-nan(09A_Zaz):1:13:-nan: ++%*350Lf:-nan(09A_Zaz):0:13: ++%350Lf:-nan():1:6:-nan: ++%*350Lf:-nan():0:6: ++%350Lf:nan():1:5:nan: ++%*350Lf:nan():0:5: ++%350Lf:nan(09A_Zaz):1:12:nan: ++%*350Lf:nan(09A_Zaz):0:12: ++%350Lf:0:1:1:0x0: ++%*350Lf:0:0:1: ++%350Lf:0.0:1:3:0x0: ++%*350Lf:0.0:0:3: ++%350Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022: ++%*350Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341: ++%350Lf:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*350Lf:23441674165664682593913711430784253952:0:38: ++%350Lf:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*350Lf:023441674165664682593913711430784253952.0:0:41: ++%350Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*350Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%350Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023: ++%*350Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: ++%350Lf:infinity:1:8:inf: ++%*350Lf:infinity:0:8: ++%350Lf:+nan():1:6:nan: ++%*350Lf:+nan():0:6: ++%350Lf:+nan(09A_Zaz):1:13:nan: ++%*350Lf:+nan(09A_Zaz):0:13: ++%350Lf:+0:1:2:0x0: ++%*350Lf:+0:0:2: ++%350Lf:+0.0:1:4:0x0: ++%*350Lf:+0.0:0:4: ++%350Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*350Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350Lf:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*350Lf:+23441674165664682593913711430784253952:0:39: ++%350Lf:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*350Lf:+023441674165664682593913711430784253952.0:0:42: ++%350Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*350Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*350Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350Lf:+infinity:1:9:inf: ++%*350Lf:+infinity:0:9: ++%3Lf: :0:-1: ++%*3Lf: :0:-1: ++%3Lf: -infinity:0:-1: ++%*3Lf: -infinity:0:-1: ++%3Lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1: ++%*3Lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3Lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.1p+4: ++%*3Lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3Lf: -023441674165664682593913711430784253952.0:1:4:-0x1p1: ++%*3Lf: -023441674165664682593913711430784253952.0:0:4: ++%3Lf: -23441674165664682593913711430784253952:1:4:-0x1.7p+4: ++%*3Lf: -23441674165664682593913711430784253952:0:4: ++%3Lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0: ++%*3Lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3Lf: -0.0:1:4:-0x0: ++%*3Lf: -0.0:0:4: ++%3Lf: -0:1:3:-0x0: ++%*3Lf: -0:0:3: ++%3Lf: -nan(09A_Zaz):0:-1: ++%*3Lf: -nan(09A_Zaz):0:-1: ++%3Lf: -nan():0:-1: ++%*3Lf: -nan():0:-1: ++%3Lf: nan():1:4:nan: ++%*3Lf: nan():0:4: ++%3Lf: nan(09A_Zaz):1:4:nan: ++%*3Lf: nan(09A_Zaz):0:4: ++%3Lf: 0:1:2:0x0: ++%*3Lf: 0:0:2: ++%3Lf: 0.0:1:4:0x0: ++%*3Lf: 0.0:0:4: ++%3Lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*3Lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3Lf: 23441674165664682593913711430784253952:1:4:0x1.d4p+7: ++%*3Lf: 23441674165664682593913711430784253952:0:4: ++%3Lf: 023441674165664682593913711430784253952.0:1:4:0x1.7p+4: ++%*3Lf: 023441674165664682593913711430784253952.0:0:4: ++%3Lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7: ++%*3Lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3Lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4: ++%*3Lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3Lf: infinity:1:4:inf: ++%*3Lf: infinity:0:4: ++%3Lf: +nan():0:-1: ++%*3Lf: +nan():0:-1: ++%3Lf: +nan(09A_Zaz):0:-1: ++%*3Lf: +nan(09A_Zaz):0:-1: ++%3Lf: +0:1:3:0x0: ++%*3Lf: +0:0:3: ++%3Lf: +0.0:1:4:0x0: ++%*3Lf: +0.0:0:4: ++%3Lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*3Lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3Lf: +23441674165664682593913711430784253952:1:4:0x1.7p+4: ++%*3Lf: +23441674165664682593913711430784253952:0:4: ++%3Lf: +023441674165664682593913711430784253952.0:1:4:0x1p1: ++%*3Lf: +023441674165664682593913711430784253952.0:0:4: ++%3Lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.1p4: ++%*3Lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3Lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1: ++%*3Lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3Lf: +infinity:0:-1: ++%*3Lf: +infinity:0:-1: ++%350Lf: :0:-1: ++%*350Lf: :0:-1: ++%350Lf: -infinity:1:10:-inf: ++%*350Lf: -infinity:0:10: ++%350Lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:-0x1.fffffffffffffp1023: ++%*350Lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314: ++%350Lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:-0x1.fffffffffffffp1023: ++%*350Lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311: ++%350Lf: -023441674165664682593913711430784253952.0:1:43:-0x1.1a2b3c4d5e6ffp124: ++%*350Lf: -023441674165664682593913711430784253952.0:0:43: ++%350Lf: -23441674165664682593913711430784253952:1:40:-0x1.1a2b3c4d5e6ffp124: ++%*350Lf: -23441674165664682593913711430784253952:0:40: ++%350Lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:-0x1p-1022: ++%*350Lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343: ++%350Lf: -0.0:1:5:-0x0: ++%*350Lf: -0.0:0:5: ++%350Lf: -0:1:3:-0x0: ++%*350Lf: -0:0:3: ++%350Lf: -nan(09A_Zaz):1:14:-nan: ++%*350Lf: -nan(09A_Zaz):0:14: ++%350Lf: -nan():1:7:-nan: ++%*350Lf: -nan():0:7: ++%350Lf: nan():1:6:nan: ++%*350Lf: nan():0:6: ++%350Lf: nan(09A_Zaz):1:13:nan: ++%*350Lf: nan(09A_Zaz):0:13: ++%350Lf: 0:1:2:0x0: ++%*350Lf: 0:0:2: ++%350Lf: 0.0:1:4:0x0: ++%*350Lf: 0.0:0:4: ++%350Lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*350Lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350Lf: 23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*350Lf: 23441674165664682593913711430784253952:0:39: ++%350Lf: 023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*350Lf: 023441674165664682593913711430784253952.0:0:42: ++%350Lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*350Lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350Lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*350Lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350Lf: infinity:1:9:inf: ++%*350Lf: infinity:0:9: ++%350Lf: +nan():1:7:nan: ++%*350Lf: +nan():0:7: ++%350Lf: +nan(09A_Zaz):1:14:nan: ++%*350Lf: +nan(09A_Zaz):0:14: ++%350Lf: +0:1:3:0x0: ++%*350Lf: +0:0:3: ++%350Lf: +0.0:1:5:0x0: ++%*350Lf: +0.0:0:5: ++%350Lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:0x1p-1022: ++%*350Lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343: ++%350Lf: +23441674165664682593913711430784253952:1:40:0x1.1a2b3c4d5e6ffp124: ++%*350Lf: +23441674165664682593913711430784253952:0:40: ++%350Lf: +023441674165664682593913711430784253952.0:1:43:0x1.1a2b3c4d5e6ffp124: ++%*350Lf: +023441674165664682593913711430784253952.0:0:43: ++%350Lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:0x1.fffffffffffffp1023: ++%*350Lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311: ++%350Lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:0x1.fffffffffffffp1023: ++%*350Lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314: ++%350Lf: +infinity:1:10:inf: ++%*350Lf: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input +new file mode 100644 +index 0000000000000000..03dedfca801bf8ca +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input +@@ -0,0 +1,558 @@ ++%LF::0:-1: ++%*LF::0:-1: ++%LF:-INFINITY:1:9:-inf: ++%*LF:-INFINITY:0:9: ++%LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023: ++%*LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%LF:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*LF:-023441674165664682593913711430784253952.0:0:42: ++%LF:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*LF:-23441674165664682593913711430784253952:0:39: ++%LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022: ++%*LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%LF:-0.0:1:4:-0x0: ++%*LF:-0.0:0:4: ++%LF:-0:1:2:-0x0: ++%*LF:-0:0:2: ++%LF:-NAN(09A_Zaz):1:13:-nan: ++%*LF:-NAN(09A_Zaz):0:13: ++%LF:-NAN():1:6:-nan: ++%*LF:-NAN():0:6: ++%LF:NAN():1:5:nan: ++%*LF:NAN():0:5: ++%LF:NAN(09A_Zaz):1:12:nan: ++%*LF:NAN(09A_Zaz):0:12: ++%LF:0:1:1:0x0: ++%*LF:0:0:1: ++%LF:0.0:1:3:0x0: ++%*LF:0.0:0:3: ++%LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022: ++%*LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341: ++%LF:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*LF:23441674165664682593913711430784253952:0:38: ++%LF:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*LF:023441674165664682593913711430784253952.0:0:41: ++%LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023: ++%*LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: ++%LF:INFINITY:1:8:inf: ++%*LF:INFINITY:0:8: ++%LF:+NAN():1:6:nan: ++%*LF:+NAN():0:6: ++%LF:+NAN(09A_Zaz):1:13:nan: ++%*LF:+NAN(09A_Zaz):0:13: ++%LF:+0:1:2:0x0: ++%*LF:+0:0:2: ++%LF:+0.0:1:4:0x0: ++%*LF:+0.0:0:4: ++%LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%LF:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*LF:+23441674165664682593913711430784253952:0:39: ++%LF:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*LF:+023441674165664682593913711430784253952.0:0:42: ++%LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%LF:+INFINITY:1:9:inf: ++%*LF:+INFINITY:0:9: ++%1LF::0:-1: ++%*1LF::0:-1: ++%1LF:-INFINITY:0:-1: ++%*1LF:-INFINITY:0:-1: ++%1LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%*1LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%1LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%*1LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%1LF:-023441674165664682593913711430784253952.0:0:-1: ++%*1LF:-023441674165664682593913711430784253952.0:0:-1: ++%1LF:-23441674165664682593913711430784253952:0:-1: ++%*1LF:-23441674165664682593913711430784253952:0:-1: ++%1LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%*1LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%1LF:-0.0:0:-1: ++%*1LF:-0.0:0:-1: ++%1LF:-0:0:-1: ++%*1LF:-0:0:-1: ++%1LF:-NAN(09A_Zaz):0:-1: ++%*1LF:-NAN(09A_Zaz):0:-1: ++%1LF:-NAN():0:-1: ++%*1LF:-NAN():0:-1: ++%1LF:NAN():0:-1: ++%*1LF:NAN():0:-1: ++%1LF:NAN(09A_Zaz):0:-1: ++%*1LF:NAN(09A_Zaz):0:-1: ++%1LF:0:1:1:0x0: ++%*1LF:0:0:1: ++%1LF:0.0:1:1:0x0: ++%*1LF:0.0:0:1: ++%1LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:1:0x0: ++%*1LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:1: ++%1LF:23441674165664682593913711430784253952:1:1:0x1p1: ++%*1LF:23441674165664682593913711430784253952:0:1: ++%1LF:023441674165664682593913711430784253952.0:1:1:0x0: ++%*1LF:023441674165664682593913711430784253952.0:0:1: ++%1LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:1:0x1: ++%*1LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:1: ++%1LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:1:0x0: ++%*1LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1: ++%1LF:INFINITY:0:-1: ++%*1LF:INFINITY:0:-1: ++%1LF:+NAN():0:-1: ++%*1LF:+NAN():0:-1: ++%1LF:+NAN(09A_Zaz):0:-1: ++%*1LF:+NAN(09A_Zaz):0:-1: ++%1LF:+0:0:-1: ++%*1LF:+0:0:-1: ++%1LF:+0.0:0:-1: ++%*1LF:+0.0:0:-1: ++%1LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%*1LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%1LF:+23441674165664682593913711430784253952:0:-1: ++%*1LF:+23441674165664682593913711430784253952:0:-1: ++%1LF:+023441674165664682593913711430784253952.0:0:-1: ++%*1LF:+023441674165664682593913711430784253952.0:0:-1: ++%1LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%*1LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%1LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%*1LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%1LF:+INFINITY:0:-1: ++%*1LF:+INFINITY:0:-1: ++%2LF::0:-1: ++%*2LF::0:-1: ++%2LF:-INFINITY:0:-1: ++%*2LF:-INFINITY:0:-1: ++%2LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:-0x0: ++%*2LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:-0x1: ++%*2LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2LF:-023441674165664682593913711430784253952.0:1:2:-0x0: ++%*2LF:-023441674165664682593913711430784253952.0:0:2: ++%2LF:-23441674165664682593913711430784253952:1:2:-0x1p1: ++%*2LF:-23441674165664682593913711430784253952:0:2: ++%2LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:-0x0: ++%*2LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2LF:-0.0:1:2:-0x0: ++%*2LF:-0.0:0:2: ++%2LF:-0:1:2:-0x0: ++%*2LF:-0:0:2: ++%2LF:-NAN(09A_Zaz):0:-1: ++%*2LF:-NAN(09A_Zaz):0:-1: ++%2LF:-NAN():0:-1: ++%*2LF:-NAN():0:-1: ++%2LF:NAN():0:-1: ++%*2LF:NAN():0:-1: ++%2LF:NAN(09A_Zaz):0:-1: ++%*2LF:NAN(09A_Zaz):0:-1: ++%2LF:0:1:1:0x0: ++%*2LF:0:0:1: ++%2LF:0.0:1:2:0x0: ++%*2LF:0.0:0:2: ++%2LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0: ++%*2LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2LF:23441674165664682593913711430784253952:1:2:0x1.7p+4: ++%*2LF:23441674165664682593913711430784253952:0:2: ++%2LF:023441674165664682593913711430784253952.0:1:2:0x1p1: ++%*2LF:023441674165664682593913711430784253952.0:0:2: ++%2LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1.1p+4: ++%*2LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x1: ++%*2LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2LF:INFINITY:0:-1: ++%*2LF:INFINITY:0:-1: ++%2LF:+NAN():0:-1: ++%*2LF:+NAN():0:-1: ++%2LF:+NAN(09A_Zaz):0:-1: ++%*2LF:+NAN(09A_Zaz):0:-1: ++%2LF:+0:1:2:0x0: ++%*2LF:+0:0:2: ++%2LF:+0.0:1:2:0x0: ++%*2LF:+0.0:0:2: ++%2LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0: ++%*2LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2LF:+23441674165664682593913711430784253952:1:2:0x1p1: ++%*2LF:+23441674165664682593913711430784253952:0:2: ++%2LF:+023441674165664682593913711430784253952.0:1:2:0x0: ++%*2LF:+023441674165664682593913711430784253952.0:0:2: ++%2LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1: ++%*2LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x0: ++%*2LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2LF:+INFINITY:0:-1: ++%*2LF:+INFINITY:0:-1: ++%3LF::0:-1: ++%*3LF::0:-1: ++%3LF:-INFINITY:0:-1: ++%*3LF:-INFINITY:0:-1: ++%3LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:-0x1: ++%*3LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:-0x1.1p+4: ++%*3LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3LF:-023441674165664682593913711430784253952.0:1:3:-0x1p1: ++%*3LF:-023441674165664682593913711430784253952.0:0:3: ++%3LF:-23441674165664682593913711430784253952:1:3:-0x1.7p+4: ++%*3LF:-23441674165664682593913711430784253952:0:3: ++%3LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:-0x0: ++%*3LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3LF:-0.0:1:3:-0x0: ++%*3LF:-0.0:0:3: ++%3LF:-0:1:2:-0x0: ++%*3LF:-0:0:2: ++%3LF:-NAN(09A_Zaz):0:-1: ++%*3LF:-NAN(09A_Zaz):0:-1: ++%3LF:-NAN():0:-1: ++%*3LF:-NAN():0:-1: ++%3LF:NAN():1:3:nan: ++%*3LF:NAN():0:3: ++%3LF:NAN(09A_Zaz):1:3:nan: ++%*3LF:NAN(09A_Zaz):0:3: ++%3LF:0:1:1:0x0: ++%*3LF:0:0:1: ++%3LF:0.0:1:3:0x0: ++%*3LF:0.0:0:3: ++%3LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0: ++%*3LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3LF:23441674165664682593913711430784253952:1:3:0x1.d4p+7: ++%*3LF:23441674165664682593913711430784253952:0:3: ++%3LF:023441674165664682593913711430784253952.0:1:3:0x1.7p+4: ++%*3LF:023441674165664682593913711430784253952.0:0:3: ++%3LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.66p+7: ++%*3LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1.1p4: ++%*3LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3LF:INFINITY:1:3:inf: ++%*3LF:INFINITY:0:3: ++%3LF:+NAN():0:-1: ++%*3LF:+NAN():0:-1: ++%3LF:+NAN(09A_Zaz):0:-1: ++%*3LF:+NAN(09A_Zaz):0:-1: ++%3LF:+0:1:2:0x0: ++%*3LF:+0:0:2: ++%3LF:+0.0:1:3:0x0: ++%*3LF:+0.0:0:3: ++%3LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0: ++%*3LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3LF:+23441674165664682593913711430784253952:1:3:0x1.7p+4: ++%*3LF:+23441674165664682593913711430784253952:0:3: ++%3LF:+023441674165664682593913711430784253952.0:1:3:0x1p1: ++%*3LF:+023441674165664682593913711430784253952.0:0:3: ++%3LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.1p4: ++%*3LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1: ++%*3LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3LF:+INFINITY:0:-1: ++%*3LF:+INFINITY:0:-1: ++%4LF::0:-1: ++%*4LF::0:-1: ++%4LF:-INFINITY:1:4:-inf: ++%*4LF:-INFINITY:0:4: ++%4LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1.1p4: ++%*4LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.66p+7: ++%*4LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4LF:-023441674165664682593913711430784253952.0:1:4:-0x1.7p+4: ++%*4LF:-023441674165664682593913711430784253952.0:0:4: ++%4LF:-23441674165664682593913711430784253952:1:4:-0x1.d4p+7: ++%*4LF:-23441674165664682593913711430784253952:0:4: ++%4LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0: ++%*4LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4LF:-0.0:1:4:-0x0: ++%*4LF:-0.0:0:4: ++%4LF:-0:1:2:-0x0: ++%*4LF:-0:0:2: ++%4LF:-NAN(09A_Zaz):1:4:-nan: ++%*4LF:-NAN(09A_Zaz):0:4: ++%4LF:-NAN():1:4:-nan: ++%*4LF:-NAN():0:4: ++%4LF:NAN():0:-1: ++%*4LF:NAN():0:-1: ++%4LF:NAN(09A_Zaz):0:-1: ++%*4LF:NAN(09A_Zaz):0:-1: ++%4LF:0:1:1:0x0: ++%*4LF:0:0:1: ++%4LF:0.0:1:3:0x0: ++%*4LF:0.0:0:3: ++%4LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*4LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4LF:23441674165664682593913711430784253952:1:4:0x1.25p11: ++%*4LF:23441674165664682593913711430784253952:0:4: ++%4LF:023441674165664682593913711430784253952.0:1:4:0x1.d4p+7: ++%*4LF:023441674165664682593913711430784253952.0:0:4: ++%4LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.c14p+10: ++%*4LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.66p+7: ++%*4LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4LF:INFINITY:0:-1: ++%*4LF:INFINITY:0:-1: ++%4LF:+NAN():1:4:nan: ++%*4LF:+NAN():0:4: ++%4LF:+NAN(09A_Zaz):1:4:nan: ++%*4LF:+NAN(09A_Zaz):0:4: ++%4LF:+0:1:2:0x0: ++%*4LF:+0:0:2: ++%4LF:+0.0:1:4:0x0: ++%*4LF:+0.0:0:4: ++%4LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*4LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4LF:+23441674165664682593913711430784253952:1:4:0x1.d4p+7: ++%*4LF:+23441674165664682593913711430784253952:0:4: ++%4LF:+023441674165664682593913711430784253952.0:1:4:0x1.7p+4: ++%*4LF:+023441674165664682593913711430784253952.0:0:4: ++%4LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7: ++%*4LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4: ++%*4LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4LF:+INFINITY:1:4:inf: ++%*4LF:+INFINITY:0:4: ++%311LF::0:-1: ++%*311LF::0:-1: ++%311LF:-INFINITY:1:9:-inf: ++%*311LF:-INFINITY:0:9: ++%311LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:-0x1.fffffffffffffp1023: ++%*311LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*311LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%311LF:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*311LF:-023441674165664682593913711430784253952.0:0:42: ++%311LF:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*311LF:-23441674165664682593913711430784253952:0:39: ++%311LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:-0x1.cc359e067a348p-1023: ++%*311LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311LF:-0.0:1:4:-0x0: ++%*311LF:-0.0:0:4: ++%311LF:-0:1:2:-0x0: ++%*311LF:-0:0:2: ++%311LF:-NAN(09A_Zaz):1:13:-nan: ++%*311LF:-NAN(09A_Zaz):0:13: ++%311LF:-NAN():1:6:-nan: ++%*311LF:-NAN():0:6: ++%311LF:NAN():1:5:nan: ++%*311LF:NAN():0:5: ++%311LF:NAN(09A_Zaz):1:12:nan: ++%*311LF:NAN(09A_Zaz):0:12: ++%311LF:0:1:1:0x0: ++%*311LF:0:0:1: ++%311LF:0.0:1:3:0x0: ++%*311LF:0.0:0:3: ++%311LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.fa3afaa0b9a04p-1023: ++%*311LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311LF:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*311LF:23441674165664682593913711430784253952:0:38: ++%311LF:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*311LF:023441674165664682593913711430784253952.0:0:41: ++%311LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*311LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%311LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023: ++%*311LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311LF:INFINITY:1:8:inf: ++%*311LF:INFINITY:0:8: ++%311LF:+NAN():1:6:nan: ++%*311LF:+NAN():0:6: ++%311LF:+NAN(09A_Zaz):1:13:nan: ++%*311LF:+NAN(09A_Zaz):0:13: ++%311LF:+0:1:2:0x0: ++%*311LF:+0:0:2: ++%311LF:+0.0:1:4:0x0: ++%*311LF:+0.0:0:4: ++%311LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.cc359e067a348p-1023: ++%*311LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311LF:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*311LF:+23441674165664682593913711430784253952:0:39: ++%311LF:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*311LF:+023441674165664682593913711430784253952.0:0:42: ++%311LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*311LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%311LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023: ++%*311LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311LF:+INFINITY:1:9:inf: ++%*311LF:+INFINITY:0:9: ++%350LF::0:-1: ++%*350LF::0:-1: ++%350LF:-INFINITY:1:9:-inf: ++%*350LF:-INFINITY:0:9: ++%350LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023: ++%*350LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*350LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350LF:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*350LF:-023441674165664682593913711430784253952.0:0:42: ++%350LF:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*350LF:-23441674165664682593913711430784253952:0:39: ++%350LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022: ++%*350LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350LF:-0.0:1:4:-0x0: ++%*350LF:-0.0:0:4: ++%350LF:-0:1:2:-0x0: ++%*350LF:-0:0:2: ++%350LF:-NAN(09A_Zaz):1:13:-nan: ++%*350LF:-NAN(09A_Zaz):0:13: ++%350LF:-NAN():1:6:-nan: ++%*350LF:-NAN():0:6: ++%350LF:NAN():1:5:nan: ++%*350LF:NAN():0:5: ++%350LF:NAN(09A_Zaz):1:12:nan: ++%*350LF:NAN(09A_Zaz):0:12: ++%350LF:0:1:1:0x0: ++%*350LF:0:0:1: ++%350LF:0.0:1:3:0x0: ++%*350LF:0.0:0:3: ++%350LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022: ++%*350LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341: ++%350LF:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*350LF:23441674165664682593913711430784253952:0:38: ++%350LF:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*350LF:023441674165664682593913711430784253952.0:0:41: ++%350LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*350LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%350LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023: ++%*350LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: ++%350LF:INFINITY:1:8:inf: ++%*350LF:INFINITY:0:8: ++%350LF:+NAN():1:6:nan: ++%*350LF:+NAN():0:6: ++%350LF:+NAN(09A_Zaz):1:13:nan: ++%*350LF:+NAN(09A_Zaz):0:13: ++%350LF:+0:1:2:0x0: ++%*350LF:+0:0:2: ++%350LF:+0.0:1:4:0x0: ++%*350LF:+0.0:0:4: ++%350LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*350LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350LF:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*350LF:+23441674165664682593913711430784253952:0:39: ++%350LF:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*350LF:+023441674165664682593913711430784253952.0:0:42: ++%350LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*350LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*350LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350LF:+INFINITY:1:9:inf: ++%*350LF:+INFINITY:0:9: ++%3LF: :0:-1: ++%*3LF: :0:-1: ++%3LF: -INFINITY:0:-1: ++%*3LF: -INFINITY:0:-1: ++%3LF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1: ++%*3LF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3LF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.1p+4: ++%*3LF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3LF: -023441674165664682593913711430784253952.0:1:4:-0x1p1: ++%*3LF: -023441674165664682593913711430784253952.0:0:4: ++%3LF: -23441674165664682593913711430784253952:1:4:-0x1.7p+4: ++%*3LF: -23441674165664682593913711430784253952:0:4: ++%3LF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0: ++%*3LF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3LF: -0.0:1:4:-0x0: ++%*3LF: -0.0:0:4: ++%3LF: -0:1:3:-0x0: ++%*3LF: -0:0:3: ++%3LF: -NAN(09A_Zaz):0:-1: ++%*3LF: -NAN(09A_Zaz):0:-1: ++%3LF: -NAN():0:-1: ++%*3LF: -NAN():0:-1: ++%3LF: NAN():1:4:nan: ++%*3LF: NAN():0:4: ++%3LF: NAN(09A_Zaz):1:4:nan: ++%*3LF: NAN(09A_Zaz):0:4: ++%3LF: 0:1:2:0x0: ++%*3LF: 0:0:2: ++%3LF: 0.0:1:4:0x0: ++%*3LF: 0.0:0:4: ++%3LF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*3LF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3LF: 23441674165664682593913711430784253952:1:4:0x1.d4p+7: ++%*3LF: 23441674165664682593913711430784253952:0:4: ++%3LF: 023441674165664682593913711430784253952.0:1:4:0x1.7p+4: ++%*3LF: 023441674165664682593913711430784253952.0:0:4: ++%3LF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7: ++%*3LF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3LF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4: ++%*3LF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3LF: INFINITY:1:4:inf: ++%*3LF: INFINITY:0:4: ++%3LF: +NAN():0:-1: ++%*3LF: +NAN():0:-1: ++%3LF: +NAN(09A_Zaz):0:-1: ++%*3LF: +NAN(09A_Zaz):0:-1: ++%3LF: +0:1:3:0x0: ++%*3LF: +0:0:3: ++%3LF: +0.0:1:4:0x0: ++%*3LF: +0.0:0:4: ++%3LF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*3LF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3LF: +23441674165664682593913711430784253952:1:4:0x1.7p+4: ++%*3LF: +23441674165664682593913711430784253952:0:4: ++%3LF: +023441674165664682593913711430784253952.0:1:4:0x1p1: ++%*3LF: +023441674165664682593913711430784253952.0:0:4: ++%3LF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.1p4: ++%*3LF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3LF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1: ++%*3LF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3LF: +INFINITY:0:-1: ++%*3LF: +INFINITY:0:-1: ++%350LF: :0:-1: ++%*350LF: :0:-1: ++%350LF: -INFINITY:1:10:-inf: ++%*350LF: -INFINITY:0:10: ++%350LF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:-0x1.fffffffffffffp1023: ++%*350LF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314: ++%350LF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:-0x1.fffffffffffffp1023: ++%*350LF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311: ++%350LF: -023441674165664682593913711430784253952.0:1:43:-0x1.1a2b3c4d5e6ffp124: ++%*350LF: -023441674165664682593913711430784253952.0:0:43: ++%350LF: -23441674165664682593913711430784253952:1:40:-0x1.1a2b3c4d5e6ffp124: ++%*350LF: -23441674165664682593913711430784253952:0:40: ++%350LF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:-0x1p-1022: ++%*350LF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343: ++%350LF: -0.0:1:5:-0x0: ++%*350LF: -0.0:0:5: ++%350LF: -0:1:3:-0x0: ++%*350LF: -0:0:3: ++%350LF: -NAN(09A_Zaz):1:14:-nan: ++%*350LF: -NAN(09A_Zaz):0:14: ++%350LF: -NAN():1:7:-nan: ++%*350LF: -NAN():0:7: ++%350LF: NAN():1:6:nan: ++%*350LF: NAN():0:6: ++%350LF: NAN(09A_Zaz):1:13:nan: ++%*350LF: NAN(09A_Zaz):0:13: ++%350LF: 0:1:2:0x0: ++%*350LF: 0:0:2: ++%350LF: 0.0:1:4:0x0: ++%*350LF: 0.0:0:4: ++%350LF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*350LF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350LF: 23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*350LF: 23441674165664682593913711430784253952:0:39: ++%350LF: 023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*350LF: 023441674165664682593913711430784253952.0:0:42: ++%350LF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*350LF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350LF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*350LF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350LF: INFINITY:1:9:inf: ++%*350LF: INFINITY:0:9: ++%350LF: +NAN():1:7:nan: ++%*350LF: +NAN():0:7: ++%350LF: +NAN(09A_Zaz):1:14:nan: ++%*350LF: +NAN(09A_Zaz):0:14: ++%350LF: +0:1:3:0x0: ++%*350LF: +0:0:3: ++%350LF: +0.0:1:5:0x0: ++%*350LF: +0.0:0:5: ++%350LF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:0x1p-1022: ++%*350LF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343: ++%350LF: +23441674165664682593913711430784253952:1:40:0x1.1a2b3c4d5e6ffp124: ++%*350LF: +23441674165664682593913711430784253952:0:40: ++%350LF: +023441674165664682593913711430784253952.0:1:43:0x1.1a2b3c4d5e6ffp124: ++%*350LF: +023441674165664682593913711430784253952.0:0:43: ++%350LF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:0x1.fffffffffffffp1023: ++%*350LF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311: ++%350LF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:0x1.fffffffffffffp1023: ++%*350LF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314: ++%350LF: +INFINITY:1:10:inf: ++%*350LF: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input +new file mode 100644 +index 0000000000000000..ed8aac9247f36c61 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input +@@ -0,0 +1,682 @@ ++%Lg::0:-1: ++%*Lg::0:-1: ++%Lg:-infinity:1:9:-inf: ++%*Lg:-infinity:0:9: ++%Lg:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023: ++%*Lg:-0xf.ffffffffffff8p+1020:0:24: ++%Lg:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023: ++%*Lg:-0x7.ffffffffffffcp1021:0:23: ++%Lg:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*Lg:-0x2.3456789abcdfep+123:0:23: ++%Lg:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*Lg:-0x2.3456789abcdfep0123:0:23: ++%Lg:-0x8p-1025:1:10:-0x1p-1022: ++%*Lg:-0x8p-1025:0:10: ++%Lg:-0x0p+0:1:7:-0x0: ++%*Lg:-0x0p+0:0:7: ++%Lg:-0x0p0:1:6:-0x0: ++%*Lg:-0x0p0:0:6: ++%Lg:-nan(09A_Zaz):1:13:-nan: ++%*Lg:-nan(09A_Zaz):0:13: ++%Lg:-nan():1:6:-nan: ++%*Lg:-nan():0:6: ++%Lg:nan():1:5:nan: ++%*Lg:nan():0:5: ++%Lg:nan(09A_Zaz):1:12:nan: ++%*Lg:nan(09A_Zaz):0:12: ++%Lg:0x0p0:1:5:0x0: ++%*Lg:0x0p0:0:5: ++%Lg:0x0p+0:1:6:0x0: ++%*Lg:0x0p+0:0:6: ++%Lg:0x8p-1025:1:9:0x1p-1022: ++%*Lg:0x8p-1025:0:9: ++%Lg:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*Lg:0x2.3456789abcdfep0123:0:22: ++%Lg:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*Lg:0x2.3456789abcdfep+123:0:22: ++%Lg:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023: ++%*Lg:0x7.ffffffffffffcp1021:0:22: ++%Lg:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023: ++%*Lg:0xf.ffffffffffff8p+1020:0:23: ++%Lg:infinity:1:8:inf: ++%*Lg:infinity:0:8: ++%Lg:+nan():1:6:nan: ++%*Lg:+nan():0:6: ++%Lg:+nan(09A_Zaz):1:13:nan: ++%*Lg:+nan(09A_Zaz):0:13: ++%Lg:+0x0p0:1:6:0x0: ++%*Lg:+0x0p0:0:6: ++%Lg:+0x0p+0:1:7:0x0: ++%*Lg:+0x0p+0:0:7: ++%Lg:+0x8p-1025:1:10:0x1p-1022: ++%*Lg:+0x8p-1025:0:10: ++%Lg:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*Lg:+0x2.3456789abcdfep0123:0:23: ++%Lg:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*Lg:+0x2.3456789abcdfep+123:0:23: ++%Lg:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*Lg:+0x7.ffffffffffffcp1021:0:23: ++%Lg:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*Lg:+0xf.ffffffffffff8p+1020:0:24: ++%Lg:+infinity:1:9:inf: ++%*Lg:+infinity:0:9: ++%1Lg::0:-1: ++%*1Lg::0:-1: ++%1Lg:-infinity:0:-1: ++%*1Lg:-infinity:0:-1: ++%1Lg:-0xf.ffffffffffff8p+1020:0:-1: ++%*1Lg:-0xf.ffffffffffff8p+1020:0:-1: ++%1Lg:-0x7.ffffffffffffcp1021:0:-1: ++%*1Lg:-0x7.ffffffffffffcp1021:0:-1: ++%1Lg:-0x2.3456789abcdfep+123:0:-1: ++%*1Lg:-0x2.3456789abcdfep+123:0:-1: ++%1Lg:-0x2.3456789abcdfep0123:0:-1: ++%*1Lg:-0x2.3456789abcdfep0123:0:-1: ++%1Lg:-0x8p-1025:0:-1: ++%*1Lg:-0x8p-1025:0:-1: ++%1Lg:-0x0p+0:0:-1: ++%*1Lg:-0x0p+0:0:-1: ++%1Lg:-0x0p0:0:-1: ++%*1Lg:-0x0p0:0:-1: ++%1Lg:-nan(09A_Zaz):0:-1: ++%*1Lg:-nan(09A_Zaz):0:-1: ++%1Lg:-nan():0:-1: ++%*1Lg:-nan():0:-1: ++%1Lg:nan():0:-1: ++%*1Lg:nan():0:-1: ++%1Lg:nan(09A_Zaz):0:-1: ++%*1Lg:nan(09A_Zaz):0:-1: ++%1Lg:0x0p0:1:1:0x0: ++%*1Lg:0x0p0:0:1: ++%1Lg:0x0p+0:1:1:0x0: ++%*1Lg:0x0p+0:0:1: ++%1Lg:0x8p-1025:1:1:0x0: ++%*1Lg:0x8p-1025:0:1: ++%1Lg:0x2.3456789abcdfep0123:1:1:0x0: ++%*1Lg:0x2.3456789abcdfep0123:0:1: ++%1Lg:0x2.3456789abcdfep+123:1:1:0x0: ++%*1Lg:0x2.3456789abcdfep+123:0:1: ++%1Lg:0x7.ffffffffffffcp1021:1:1:0x0: ++%*1Lg:0x7.ffffffffffffcp1021:0:1: ++%1Lg:0xf.ffffffffffff8p+1020:1:1:0x0: ++%*1Lg:0xf.ffffffffffff8p+1020:0:1: ++%1Lg:infinity:0:-1: ++%*1Lg:infinity:0:-1: ++%1Lg:+nan():0:-1: ++%*1Lg:+nan():0:-1: ++%1Lg:+nan(09A_Zaz):0:-1: ++%*1Lg:+nan(09A_Zaz):0:-1: ++%1Lg:+0x0p0:0:-1: ++%*1Lg:+0x0p0:0:-1: ++%1Lg:+0x0p+0:0:-1: ++%*1Lg:+0x0p+0:0:-1: ++%1Lg:+0x8p-1025:0:-1: ++%*1Lg:+0x8p-1025:0:-1: ++%1Lg:+0x2.3456789abcdfep0123:0:-1: ++%*1Lg:+0x2.3456789abcdfep0123:0:-1: ++%1Lg:+0x2.3456789abcdfep+123:0:-1: ++%*1Lg:+0x2.3456789abcdfep+123:0:-1: ++%1Lg:+0x7.ffffffffffffcp1021:0:-1: ++%*1Lg:+0x7.ffffffffffffcp1021:0:-1: ++%1Lg:+0xf.ffffffffffff8p+1020:0:-1: ++%*1Lg:+0xf.ffffffffffff8p+1020:0:-1: ++%1Lg:+infinity:0:-1: ++%*1Lg:+infinity:0:-1: ++%2Lg::0:-1: ++%*2Lg::0:-1: ++%2Lg:-infinity:0:-1: ++%*2Lg:-infinity:0:-1: ++%2Lg:-0xf.ffffffffffff8p+1020:1:2:-0x0: ++%*2Lg:-0xf.ffffffffffff8p+1020:0:2: ++%2Lg:-0x7.ffffffffffffcp1021:1:2:-0x0: ++%*2Lg:-0x7.ffffffffffffcp1021:0:2: ++%2Lg:-0x2.3456789abcdfep+123:1:2:-0x0: ++%*2Lg:-0x2.3456789abcdfep+123:0:2: ++%2Lg:-0x2.3456789abcdfep0123:1:2:-0x0: ++%*2Lg:-0x2.3456789abcdfep0123:0:2: ++%2Lg:-0x8p-1025:1:2:-0x0: ++%*2Lg:-0x8p-1025:0:2: ++%2Lg:-0x0p+0:1:2:-0x0: ++%*2Lg:-0x0p+0:0:2: ++%2Lg:-0x0p0:1:2:-0x0: ++%*2Lg:-0x0p0:0:2: ++%2Lg:-nan(09A_Zaz):0:-1: ++%*2Lg:-nan(09A_Zaz):0:-1: ++%2Lg:-nan():0:-1: ++%*2Lg:-nan():0:-1: ++%2Lg:nan():0:-1: ++%*2Lg:nan():0:-1: ++%2Lg:nan(09A_Zaz):0:-1: ++%*2Lg:nan(09A_Zaz):0:-1: ++# BZ12701 %2Lg:0x0p0:0:-1: ++# BZ12701 %*2Lg:0x0p0:0:-1: ++# BZ12701 %2Lg:0x0p+0:0:-1: ++# BZ12701 %*2Lg:0x0p+0:0:-1: ++# BZ12701 %2Lg:0x8p-1025:0:-1: ++# BZ12701 %*2Lg:0x8p-1025:0:-1: ++# BZ12701 %2Lg:0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*2Lg:0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %2Lg:0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*2Lg:0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %2Lg:0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*2Lg:0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %2Lg:0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*2Lg:0xf.ffffffffffff8p+1020:0:-1: ++%2Lg:infinity:0:-1: ++%*2Lg:infinity:0:-1: ++%2Lg:+nan():0:-1: ++%*2Lg:+nan():0:-1: ++%2Lg:+nan(09A_Zaz):0:-1: ++%*2Lg:+nan(09A_Zaz):0:-1: ++%2Lg:+0x0p0:1:2:0x0: ++%*2Lg:+0x0p0:0:2: ++%2Lg:+0x0p+0:1:2:0x0: ++%*2Lg:+0x0p+0:0:2: ++%2Lg:+0x8p-1025:1:2:0x0: ++%*2Lg:+0x8p-1025:0:2: ++%2Lg:+0x2.3456789abcdfep0123:1:2:0x0: ++%*2Lg:+0x2.3456789abcdfep0123:0:2: ++%2Lg:+0x2.3456789abcdfep+123:1:2:0x0: ++%*2Lg:+0x2.3456789abcdfep+123:0:2: ++%2Lg:+0x7.ffffffffffffcp1021:1:2:0x0: ++%*2Lg:+0x7.ffffffffffffcp1021:0:2: ++%2Lg:+0xf.ffffffffffff8p+1020:1:2:0x0: ++%*2Lg:+0xf.ffffffffffff8p+1020:0:2: ++%2Lg:+infinity:0:-1: ++%*2Lg:+infinity:0:-1: ++%3Lg::0:-1: ++%*3Lg::0:-1: ++%3Lg:-infinity:0:-1: ++%*3Lg:-infinity:0:-1: ++# BZ12701 %3Lg:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*3Lg:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %3Lg:-0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*3Lg:-0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %3Lg:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*3Lg:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %3Lg:-0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*3Lg:-0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %3Lg:-0x8p-1025:0:-1: ++# BZ12701 %*3Lg:-0x8p-1025:0:-1: ++# BZ12701 %3Lg:-0x0p+0:0:-1: ++# BZ12701 %*3Lg:-0x0p+0:0:-1: ++# BZ12701 %3Lg:-0x0p0:0:-1: ++# BZ12701 %*3Lg:-0x0p0:0:-1: ++%3Lg:-nan(09A_Zaz):0:-1: ++%*3Lg:-nan(09A_Zaz):0:-1: ++%3Lg:-nan():0:-1: ++%*3Lg:-nan():0:-1: ++%3Lg:nan():1:3:nan: ++%*3Lg:nan():0:3: ++%3Lg:nan(09A_Zaz):1:3:nan: ++%*3Lg:nan(09A_Zaz):0:3: ++%3Lg:0x0p0:1:3:0x0: ++%*3Lg:0x0p0:0:3: ++%3Lg:0x0p+0:1:3:0x0: ++%*3Lg:0x0p+0:0:3: ++%3Lg:0x8p-1025:1:3:0x1p3: ++%*3Lg:0x8p-1025:0:3: ++%3Lg:0x2.3456789abcdfep0123:1:3:0x1p1: ++%*3Lg:0x2.3456789abcdfep0123:0:3: ++%3Lg:0x2.3456789abcdfep+123:1:3:0x1p1: ++%*3Lg:0x2.3456789abcdfep+123:0:3: ++%3Lg:0x7.ffffffffffffcp1021:1:3:0x1.cp2: ++%*3Lg:0x7.ffffffffffffcp1021:0:3: ++%3Lg:0xf.ffffffffffff8p+1020:1:3:0x1.ep3: ++%*3Lg:0xf.ffffffffffff8p+1020:0:3: ++%3Lg:infinity:1:3:inf: ++%*3Lg:infinity:0:3: ++%3Lg:+nan():0:-1: ++%*3Lg:+nan():0:-1: ++%3Lg:+nan(09A_Zaz):0:-1: ++%*3Lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %3Lg:+0x0p0:0:-1: ++# BZ12701 %*3Lg:+0x0p0:0:-1: ++# BZ12701 %3Lg:+0x0p+0:0:-1: ++# BZ12701 %*3Lg:+0x0p+0:0:-1: ++# BZ12701 %3Lg:+0x8p-1025:0:-1: ++# BZ12701 %*3Lg:+0x8p-1025:0:-1: ++# BZ12701 %3Lg:+0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*3Lg:+0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %3Lg:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*3Lg:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %3Lg:+0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*3Lg:+0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %3Lg:+0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*3Lg:+0xf.ffffffffffff8p+1020:0:-1: ++%3Lg:+infinity:0:-1: ++%*3Lg:+infinity:0:-1: ++%4Lg::0:-1: ++%*4Lg::0:-1: ++%4Lg:-infinity:1:4:-inf: ++%*4Lg:-infinity:0:4: ++%4Lg:-0xf.ffffffffffff8p+1020:1:4:-0x1.ep3: ++%*4Lg:-0xf.ffffffffffff8p+1020:0:4: ++%4Lg:-0x7.ffffffffffffcp1021:1:4:-0x1.cp2: ++%*4Lg:-0x7.ffffffffffffcp1021:0:4: ++%4Lg:-0x2.3456789abcdfep+123:1:4:-0x1p1: ++%*4Lg:-0x2.3456789abcdfep+123:0:4: ++%4Lg:-0x2.3456789abcdfep0123:1:4:-0x1p1: ++%*4Lg:-0x2.3456789abcdfep0123:0:4: ++%4Lg:-0x8p-1025:1:4:-0x1p3: ++%*4Lg:-0x8p-1025:0:4: ++%4Lg:-0x0p+0:1:4:-0x0: ++%*4Lg:-0x0p+0:0:4: ++%4Lg:-0x0p0:1:4:-0x0: ++%*4Lg:-0x0p0:0:4: ++%4Lg:-nan(09A_Zaz):1:4:-nan: ++%*4Lg:-nan(09A_Zaz):0:4: ++%4Lg:-nan():1:4:-nan: ++%*4Lg:-nan():0:4: ++%4Lg:nan():0:-1: ++%*4Lg:nan():0:-1: ++%4Lg:nan(09A_Zaz):0:-1: ++%*4Lg:nan(09A_Zaz):0:-1: ++# BZ12701 %4Lg:0x0p0:0:-1: ++# BZ12701 %*4Lg:0x0p0:0:-1: ++# BZ12701 %4Lg:0x0p+0:0:-1: ++# BZ12701 %*4Lg:0x0p+0:0:-1: ++# BZ12701 %4Lg:0x8p-1025:0:-1: ++# BZ12701 %*4Lg:0x8p-1025:0:-1: ++%4Lg:0x2.3456789abcdfep0123:1:4:0x1p1: ++%*4Lg:0x2.3456789abcdfep0123:0:4: ++%4Lg:0x2.3456789abcdfep+123:1:4:0x1p1: ++%*4Lg:0x2.3456789abcdfep+123:0:4: ++%4Lg:0x7.ffffffffffffcp1021:1:4:0x1.cp2: ++%*4Lg:0x7.ffffffffffffcp1021:0:4: ++%4Lg:0xf.ffffffffffff8p+1020:1:4:0x1.ep3: ++%*4Lg:0xf.ffffffffffff8p+1020:0:4: ++%4Lg:infinity:0:-1: ++%*4Lg:infinity:0:-1: ++%4Lg:+nan():1:4:nan: ++%*4Lg:+nan():0:4: ++%4Lg:+nan(09A_Zaz):1:4:nan: ++%*4Lg:+nan(09A_Zaz):0:4: ++%4Lg:+0x0p0:1:4:0x0: ++%*4Lg:+0x0p0:0:4: ++%4Lg:+0x0p+0:1:4:0x0: ++%*4Lg:+0x0p+0:0:4: ++%4Lg:+0x8p-1025:1:4:0x1p3: ++%*4Lg:+0x8p-1025:0:4: ++%4Lg:+0x2.3456789abcdfep0123:1:4:0x1p1: ++%*4Lg:+0x2.3456789abcdfep0123:0:4: ++%4Lg:+0x2.3456789abcdfep+123:1:4:0x1p1: ++%*4Lg:+0x2.3456789abcdfep+123:0:4: ++%4Lg:+0x7.ffffffffffffcp1021:1:4:0x1.cp2: ++%*4Lg:+0x7.ffffffffffffcp1021:0:4: ++%4Lg:+0xf.ffffffffffff8p+1020:1:4:0x1.ep3: ++%*4Lg:+0xf.ffffffffffff8p+1020:0:4: ++%4Lg:+infinity:1:4:inf: ++%*4Lg:+infinity:0:4: ++%5Lg::0:-1: ++%*5Lg::0:-1: ++%5Lg:-infinity:0:-1: ++%*5Lg:-infinity:0:-1: ++%5Lg:-0xf.ffffffffffff8p+1020:1:5:-0x1.ep3: ++%*5Lg:-0xf.ffffffffffff8p+1020:0:5: ++%5Lg:-0x7.ffffffffffffcp1021:1:5:-0x1.cp2: ++%*5Lg:-0x7.ffffffffffffcp1021:0:5: ++%5Lg:-0x2.3456789abcdfep+123:1:5:-0x1p1: ++%*5Lg:-0x2.3456789abcdfep+123:0:5: ++%5Lg:-0x2.3456789abcdfep0123:1:5:-0x1p1: ++%*5Lg:-0x2.3456789abcdfep0123:0:5: ++# BZ12701 %5Lg:-0x8p-1025:0:-1: ++# BZ12701 %*5Lg:-0x8p-1025:0:-1: ++# BZ12701 %5Lg:-0x0p+0:0:-1: ++# BZ12701 %*5Lg:-0x0p+0:0:-1: ++# BZ12701 %5Lg:-0x0p0:0:-1: ++# BZ12701 %*5Lg:-0x0p0:0:-1: ++%5Lg:-nan(09A_Zaz):0:-1: ++%*5Lg:-nan(09A_Zaz):0:-1: ++%5Lg:-nan():0:-1: ++%*5Lg:-nan():0:-1: ++%5Lg:nan():1:5:nan: ++%*5Lg:nan():0:5: ++%5Lg:nan(09A_Zaz):0:-1: ++%*5Lg:nan(09A_Zaz):0:-1: ++%5Lg:0x0p0:1:5:0x0: ++%*5Lg:0x0p0:0:5: ++# BZ12701 %5Lg:0x0p+0:0:-1: ++# BZ12701 %*5Lg:0x0p+0:0:-1: ++# BZ12701 %5Lg:0x8p-1025:0:-1: ++# BZ12701 %*5Lg:0x8p-1025:0:-1: ++%5Lg:0x2.3456789abcdfep0123:1:5:0x1.18p1: ++%*5Lg:0x2.3456789abcdfep0123:0:5: ++%5Lg:0x2.3456789abcdfep+123:1:5:0x1.18p1: ++%*5Lg:0x2.3456789abcdfep+123:0:5: ++%5Lg:0x7.ffffffffffffcp1021:1:5:0x1.fcp2: ++%*5Lg:0x7.ffffffffffffcp1021:0:5: ++%5Lg:0xf.ffffffffffff8p+1020:1:5:0x1.fep3: ++%*5Lg:0xf.ffffffffffff8p+1020:0:5: ++%5Lg:infinity:0:-1: ++%*5Lg:infinity:0:-1: ++%5Lg:+nan():0:-1: ++%*5Lg:+nan():0:-1: ++%5Lg:+nan(09A_Zaz):0:-1: ++%*5Lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %5Lg:+0x0p0:0:-1: ++# BZ12701 %*5Lg:+0x0p0:0:-1: ++# BZ12701 %5Lg:+0x0p+0:0:-1: ++# BZ12701 %*5Lg:+0x0p+0:0:-1: ++# BZ12701 %5Lg:+0x8p-1025:0:-1: ++# BZ12701 %*5Lg:+0x8p-1025:0:-1: ++%5Lg:+0x2.3456789abcdfep0123:1:5:0x1p1: ++%*5Lg:+0x2.3456789abcdfep0123:0:5: ++%5Lg:+0x2.3456789abcdfep+123:1:5:0x1p1: ++%*5Lg:+0x2.3456789abcdfep+123:0:5: ++%5Lg:+0x7.ffffffffffffcp1021:1:5:0x1.cp2: ++%*5Lg:+0x7.ffffffffffffcp1021:0:5: ++%5Lg:+0xf.ffffffffffff8p+1020:1:5:0x1.ep3: ++%*5Lg:+0xf.ffffffffffff8p+1020:0:5: ++%5Lg:+infinity:0:-1: ++%*5Lg:+infinity:0:-1: ++%6Lg::0:-1: ++%*6Lg::0:-1: ++%6Lg:-infinity:0:-1: ++%*6Lg:-infinity:0:-1: ++%6Lg:-0xf.ffffffffffff8p+1020:1:6:-0x1.fep3: ++%*6Lg:-0xf.ffffffffffff8p+1020:0:6: ++%6Lg:-0x7.ffffffffffffcp1021:1:6:-0x1.fcp2: ++%*6Lg:-0x7.ffffffffffffcp1021:0:6: ++%6Lg:-0x2.3456789abcdfep+123:1:6:-0x1.18p1: ++%*6Lg:-0x2.3456789abcdfep+123:0:6: ++%6Lg:-0x2.3456789abcdfep0123:1:6:-0x1.18p1: ++%*6Lg:-0x2.3456789abcdfep0123:0:6: ++# BZ12701 %6Lg:-0x8p-1025:0:-1: ++# BZ12701 %*6Lg:-0x8p-1025:0:-1: ++# BZ12701 %6Lg:-0x0p+0:0:-1: ++# BZ12701 %*6Lg:-0x0p+0:0:-1: ++%6Lg:-0x0p0:1:6:-0x0: ++%*6Lg:-0x0p0:0:6: ++%6Lg:-nan(09A_Zaz):0:-1: ++%*6Lg:-nan(09A_Zaz):0:-1: ++%6Lg:-nan():1:6:-nan: ++%*6Lg:-nan():0:6: ++%6Lg:nan():1:5:nan: ++%*6Lg:nan():0:5: ++%6Lg:nan(09A_Zaz):0:-1: ++%*6Lg:nan(09A_Zaz):0:-1: ++%6Lg:0x0p0:1:5:0x0: ++%*6Lg:0x0p0:0:5: ++%6Lg:0x0p+0:1:6:0x0: ++%*6Lg:0x0p+0:0:6: ++%6Lg:0x8p-1025:1:6:0x1p2: ++%*6Lg:0x8p-1025:0:6: ++%6Lg:0x2.3456789abcdfep0123:1:6:0x1.1ap1: ++%*6Lg:0x2.3456789abcdfep0123:0:6: ++%6Lg:0x2.3456789abcdfep+123:1:6:0x1.1ap1: ++%*6Lg:0x2.3456789abcdfep+123:0:6: ++%6Lg:0x7.ffffffffffffcp1021:1:6:0x1.ffcp2: ++%*6Lg:0x7.ffffffffffffcp1021:0:6: ++%6Lg:0xf.ffffffffffff8p+1020:1:6:0x1.ffep3: ++%*6Lg:0xf.ffffffffffff8p+1020:0:6: ++%6Lg:infinity:0:-1: ++%*6Lg:infinity:0:-1: ++%6Lg:+nan():1:6:nan: ++%*6Lg:+nan():0:6: ++%6Lg:+nan(09A_Zaz):0:-1: ++%*6Lg:+nan(09A_Zaz):0:-1: ++%6Lg:+0x0p0:1:6:0x0: ++%*6Lg:+0x0p0:0:6: ++# BZ12701 %6Lg:+0x0p+0:0:-1: ++# BZ12701 %*6Lg:+0x0p+0:0:-1: ++# BZ12701 %6Lg:+0x8p-1025:0:-1: ++# BZ12701 %*6Lg:+0x8p-1025:0:-1: ++%6Lg:+0x2.3456789abcdfep0123:1:6:0x1.18p1: ++%*6Lg:+0x2.3456789abcdfep0123:0:6: ++%6Lg:+0x2.3456789abcdfep+123:1:6:0x1.18p1: ++%*6Lg:+0x2.3456789abcdfep+123:0:6: ++%6Lg:+0x7.ffffffffffffcp1021:1:6:0x1.fcp2: ++%*6Lg:+0x7.ffffffffffffcp1021:0:6: ++%6Lg:+0xf.ffffffffffff8p+1020:1:6:0x1.fep3: ++%*6Lg:+0xf.ffffffffffff8p+1020:0:6: ++%6Lg:+infinity:0:-1: ++%*6Lg:+infinity:0:-1: ++%20Lg::0:-1: ++%*20Lg::0:-1: ++%20Lg:-infinity:1:9:-inf: ++%*20Lg:-infinity:0:9: ++# BZ12701 %20Lg:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*20Lg:-0xf.ffffffffffff8p+1020:0:-1: ++%20Lg:-0x7.ffffffffffffcp1021:1:20:-0x1.fffffffffffffp3: ++%*20Lg:-0x7.ffffffffffffcp1021:0:20: ++# BZ12701 %20Lg:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*20Lg:-0x2.3456789abcdfep+123:0:-1: ++%20Lg:-0x2.3456789abcdfep0123:1:20:-0x1.1a2b3c4d5e6ffp1: ++%*20Lg:-0x2.3456789abcdfep0123:0:20: ++%20Lg:-0x8p-1025:1:10:-0x1p-1022: ++%*20Lg:-0x8p-1025:0:10: ++%20Lg:-0x0p+0:1:7:-0x0: ++%*20Lg:-0x0p+0:0:7: ++%20Lg:-0x0p0:1:6:-0x0: ++%*20Lg:-0x0p0:0:6: ++%20Lg:-nan(09A_Zaz):1:13:-nan: ++%*20Lg:-nan(09A_Zaz):0:13: ++%20Lg:-nan():1:6:-nan: ++%*20Lg:-nan():0:6: ++%20Lg:nan():1:5:nan: ++%*20Lg:nan():0:5: ++%20Lg:nan(09A_Zaz):1:12:nan: ++%*20Lg:nan(09A_Zaz):0:12: ++%20Lg:0x0p0:1:5:0x0: ++%*20Lg:0x0p0:0:5: ++%20Lg:0x0p+0:1:6:0x0: ++%*20Lg:0x0p+0:0:6: ++%20Lg:0x8p-1025:1:9:0x1p-1022: ++%*20Lg:0x8p-1025:0:9: ++%20Lg:0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20Lg:0x2.3456789abcdfep0123:0:20: ++%20Lg:0x2.3456789abcdfep+123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20Lg:0x2.3456789abcdfep+123:0:20: ++%20Lg:0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp12: ++%*20Lg:0x7.ffffffffffffcp1021:0:20: ++%20Lg:0xf.ffffffffffff8p+1020:1:20:0x1.fffffffffffffp4: ++%*20Lg:0xf.ffffffffffff8p+1020:0:20: ++%20Lg:infinity:1:8:inf: ++%*20Lg:infinity:0:8: ++%20Lg:+nan():1:6:nan: ++%*20Lg:+nan():0:6: ++%20Lg:+nan(09A_Zaz):1:13:nan: ++%*20Lg:+nan(09A_Zaz):0:13: ++%20Lg:+0x0p0:1:6:0x0: ++%*20Lg:+0x0p0:0:6: ++%20Lg:+0x0p+0:1:7:0x0: ++%*20Lg:+0x0p+0:0:7: ++%20Lg:+0x8p-1025:1:10:0x1p-1022: ++%*20Lg:+0x8p-1025:0:10: ++%20Lg:+0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp1: ++%*20Lg:+0x2.3456789abcdfep0123:0:20: ++# BZ12701 %20Lg:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*20Lg:+0x2.3456789abcdfep+123:0:-1: ++%20Lg:+0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp3: ++%*20Lg:+0x7.ffffffffffffcp1021:0:20: ++# BZ12701 %20Lg:+0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*20Lg:+0xf.ffffffffffff8p+1020:0:-1: ++%20Lg:+infinity:1:9:inf: ++%*20Lg:+infinity:0:9: ++%32Lg::0:-1: ++%*32Lg::0:-1: ++%32Lg:-infinity:1:9:-inf: ++%*32Lg:-infinity:0:9: ++%32Lg:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023: ++%*32Lg:-0xf.ffffffffffff8p+1020:0:24: ++%32Lg:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023: ++%*32Lg:-0x7.ffffffffffffcp1021:0:23: ++%32Lg:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32Lg:-0x2.3456789abcdfep+123:0:23: ++%32Lg:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32Lg:-0x2.3456789abcdfep0123:0:23: ++%32Lg:-0x8p-1025:1:10:-0x1p-1022: ++%*32Lg:-0x8p-1025:0:10: ++%32Lg:-0x0p+0:1:7:-0x0: ++%*32Lg:-0x0p+0:0:7: ++%32Lg:-0x0p0:1:6:-0x0: ++%*32Lg:-0x0p0:0:6: ++%32Lg:-nan(09A_Zaz):1:13:-nan: ++%*32Lg:-nan(09A_Zaz):0:13: ++%32Lg:-nan():1:6:-nan: ++%*32Lg:-nan():0:6: ++%32Lg:nan():1:5:nan: ++%*32Lg:nan():0:5: ++%32Lg:nan(09A_Zaz):1:12:nan: ++%*32Lg:nan(09A_Zaz):0:12: ++%32Lg:0x0p0:1:5:0x0: ++%*32Lg:0x0p0:0:5: ++%32Lg:0x0p+0:1:6:0x0: ++%*32Lg:0x0p+0:0:6: ++%32Lg:0x8p-1025:1:9:0x1p-1022: ++%*32Lg:0x8p-1025:0:9: ++%32Lg:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32Lg:0x2.3456789abcdfep0123:0:22: ++%32Lg:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32Lg:0x2.3456789abcdfep+123:0:22: ++%32Lg:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023: ++%*32Lg:0x7.ffffffffffffcp1021:0:22: ++%32Lg:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023: ++%*32Lg:0xf.ffffffffffff8p+1020:0:23: ++%32Lg:infinity:1:8:inf: ++%*32Lg:infinity:0:8: ++%32Lg:+nan():1:6:nan: ++%*32Lg:+nan():0:6: ++%32Lg:+nan(09A_Zaz):1:13:nan: ++%*32Lg:+nan(09A_Zaz):0:13: ++%32Lg:+0x0p0:1:6:0x0: ++%*32Lg:+0x0p0:0:6: ++%32Lg:+0x0p+0:1:7:0x0: ++%*32Lg:+0x0p+0:0:7: ++%32Lg:+0x8p-1025:1:10:0x1p-1022: ++%*32Lg:+0x8p-1025:0:10: ++%32Lg:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32Lg:+0x2.3456789abcdfep0123:0:23: ++%32Lg:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32Lg:+0x2.3456789abcdfep+123:0:23: ++%32Lg:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*32Lg:+0x7.ffffffffffffcp1021:0:23: ++%32Lg:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*32Lg:+0xf.ffffffffffff8p+1020:0:24: ++%32Lg:+infinity:1:9:inf: ++%*32Lg:+infinity:0:9: ++%5Lg: :0:-1: ++%*5Lg: :0:-1: ++%5Lg: -infinity:0:-1: ++%*5Lg: -infinity:0:-1: ++%5Lg: -0xf.ffffffffffff8p+1020:1:6:-0x1.ep3: ++%*5Lg: -0xf.ffffffffffff8p+1020:0:6: ++%5Lg: -0x7.ffffffffffffcp1021:1:6:-0x1.cp2: ++%*5Lg: -0x7.ffffffffffffcp1021:0:6: ++%5Lg: -0x2.3456789abcdfep+123:1:6:-0x1p1: ++%*5Lg: -0x2.3456789abcdfep+123:0:6: ++%5Lg: -0x2.3456789abcdfep0123:1:6:-0x1p1: ++%*5Lg: -0x2.3456789abcdfep0123:0:6: ++# BZ12701 %5Lg: -0x8p-1025:0:-1: ++# BZ12701 %*5Lg: -0x8p-1025:0:-1: ++# BZ12701 %5Lg: -0x0p+0:0:-1: ++# BZ12701 %*5Lg: -0x0p+0:0:-1: ++# BZ12701 %5Lg: -0x0p0:0:-1: ++# BZ12701 %*5Lg: -0x0p0:0:-1: ++%5Lg: -nan(09A_Zaz):0:-1: ++%*5Lg: -nan(09A_Zaz):0:-1: ++%5Lg: -nan():0:-1: ++%*5Lg: -nan():0:-1: ++%5Lg: nan():1:6:nan: ++%*5Lg: nan():0:6: ++%5Lg: nan(09A_Zaz):0:-1: ++%*5Lg: nan(09A_Zaz):0:-1: ++%5Lg: 0x0p0:1:6:0x0: ++%*5Lg: 0x0p0:0:6: ++# BZ12701 %5Lg: 0x0p+0:0:-1: ++# BZ12701 %*5Lg: 0x0p+0:0:-1: ++# BZ12701 %5Lg: 0x8p-1025:0:-1: ++# BZ12701 %*5Lg: 0x8p-1025:0:-1: ++%5Lg: 0x2.3456789abcdfep0123:1:6:0x1.18p1: ++%*5Lg: 0x2.3456789abcdfep0123:0:6: ++%5Lg: 0x2.3456789abcdfep+123:1:6:0x1.18p1: ++%*5Lg: 0x2.3456789abcdfep+123:0:6: ++%5Lg: 0x7.ffffffffffffcp1021:1:6:0x1.fcp2: ++%*5Lg: 0x7.ffffffffffffcp1021:0:6: ++%5Lg: 0xf.ffffffffffff8p+1020:1:6:0x1.fep3: ++%*5Lg: 0xf.ffffffffffff8p+1020:0:6: ++%5Lg: infinity:0:-1: ++%*5Lg: infinity:0:-1: ++%5Lg: +nan():0:-1: ++%*5Lg: +nan():0:-1: ++%5Lg: +nan(09A_Zaz):0:-1: ++%*5Lg: +nan(09A_Zaz):0:-1: ++# BZ12701 %5Lg: +0x0p0:0:-1: ++# BZ12701 %*5Lg: +0x0p0:0:-1: ++# BZ12701 %5Lg: +0x0p+0:0:-1: ++# BZ12701 %*5Lg: +0x0p+0:0:-1: ++# BZ12701 %5Lg: +0x8p-1025:0:-1: ++# BZ12701 %*5Lg: +0x8p-1025:0:-1: ++%5Lg: +0x2.3456789abcdfep0123:1:6:0x1p1: ++%*5Lg: +0x2.3456789abcdfep0123:0:6: ++%5Lg: +0x2.3456789abcdfep+123:1:6:0x1p1: ++%*5Lg: +0x2.3456789abcdfep+123:0:6: ++%5Lg: +0x7.ffffffffffffcp1021:1:6:0x1.cp2: ++%*5Lg: +0x7.ffffffffffffcp1021:0:6: ++%5Lg: +0xf.ffffffffffff8p+1020:1:6:0x1.ep3: ++%*5Lg: +0xf.ffffffffffff8p+1020:0:6: ++%5Lg: +infinity:0:-1: ++%*5Lg: +infinity:0:-1: ++%32Lg: :0:-1: ++%*32Lg: :0:-1: ++%32Lg: -infinity:1:10:-inf: ++%*32Lg: -infinity:0:10: ++%32Lg: -0xf.ffffffffffff8p+1020:1:25:-0x1.fffffffffffffp1023: ++%*32Lg: -0xf.ffffffffffff8p+1020:0:25: ++%32Lg: -0x7.ffffffffffffcp1021:1:24:-0x1.fffffffffffffp1023: ++%*32Lg: -0x7.ffffffffffffcp1021:0:24: ++%32Lg: -0x2.3456789abcdfep+123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32Lg: -0x2.3456789abcdfep+123:0:24: ++%32Lg: -0x2.3456789abcdfep0123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32Lg: -0x2.3456789abcdfep0123:0:24: ++%32Lg: -0x8p-1025:1:11:-0x1p-1022: ++%*32Lg: -0x8p-1025:0:11: ++%32Lg: -0x0p+0:1:8:-0x0: ++%*32Lg: -0x0p+0:0:8: ++%32Lg: -0x0p0:1:7:-0x0: ++%*32Lg: -0x0p0:0:7: ++%32Lg: -nan(09A_Zaz):1:14:-nan: ++%*32Lg: -nan(09A_Zaz):0:14: ++%32Lg: -nan():1:7:-nan: ++%*32Lg: -nan():0:7: ++%32Lg: nan():1:6:nan: ++%*32Lg: nan():0:6: ++%32Lg: nan(09A_Zaz):1:13:nan: ++%*32Lg: nan(09A_Zaz):0:13: ++%32Lg: 0x0p0:1:6:0x0: ++%*32Lg: 0x0p0:0:6: ++%32Lg: 0x0p+0:1:7:0x0: ++%*32Lg: 0x0p+0:0:7: ++%32Lg: 0x8p-1025:1:10:0x1p-1022: ++%*32Lg: 0x8p-1025:0:10: ++%32Lg: 0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32Lg: 0x2.3456789abcdfep0123:0:23: ++%32Lg: 0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32Lg: 0x2.3456789abcdfep+123:0:23: ++%32Lg: 0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*32Lg: 0x7.ffffffffffffcp1021:0:23: ++%32Lg: 0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*32Lg: 0xf.ffffffffffff8p+1020:0:24: ++%32Lg: infinity:1:9:inf: ++%*32Lg: infinity:0:9: ++%32Lg: +nan():1:7:nan: ++%*32Lg: +nan():0:7: ++%32Lg: +nan(09A_Zaz):1:14:nan: ++%*32Lg: +nan(09A_Zaz):0:14: ++%32Lg: +0x0p0:1:7:0x0: ++%*32Lg: +0x0p0:0:7: ++%32Lg: +0x0p+0:1:8:0x0: ++%*32Lg: +0x0p+0:0:8: ++%32Lg: +0x8p-1025:1:11:0x1p-1022: ++%*32Lg: +0x8p-1025:0:11: ++%32Lg: +0x2.3456789abcdfep0123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32Lg: +0x2.3456789abcdfep0123:0:24: ++%32Lg: +0x2.3456789abcdfep+123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32Lg: +0x2.3456789abcdfep+123:0:24: ++%32Lg: +0x7.ffffffffffffcp1021:1:24:0x1.fffffffffffffp1023: ++%*32Lg: +0x7.ffffffffffffcp1021:0:24: ++%32Lg: +0xf.ffffffffffff8p+1020:1:25:0x1.fffffffffffffp1023: ++%*32Lg: +0xf.ffffffffffff8p+1020:0:25: ++%32Lg: +infinity:1:10:inf: ++%*32Lg: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input +new file mode 100644 +index 0000000000000000..08684574e561f1c1 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input +@@ -0,0 +1,682 @@ ++%LG::0:-1: ++%*LG::0:-1: ++%LG:-INFINITY:1:9:-inf: ++%*LG:-INFINITY:0:9: ++%LG:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023: ++%*LG:-0XF.FFFFFFFFFFFF8P+1020:0:24: ++%LG:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023: ++%*LG:-0X7.FFFFFFFFFFFFCP1021:0:23: ++%LG:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*LG:-0X2.3456789ABCDFEP+123:0:23: ++%LG:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*LG:-0X2.3456789ABCDFEP0123:0:23: ++%LG:-0X8P-1025:1:10:-0x1p-1022: ++%*LG:-0X8P-1025:0:10: ++%LG:-0X0P+0:1:7:-0x0: ++%*LG:-0X0P+0:0:7: ++%LG:-0X0P0:1:6:-0x0: ++%*LG:-0X0P0:0:6: ++%LG:-NAN(09A_Zaz):1:13:-nan: ++%*LG:-NAN(09A_Zaz):0:13: ++%LG:-NAN():1:6:-nan: ++%*LG:-NAN():0:6: ++%LG:NAN():1:5:nan: ++%*LG:NAN():0:5: ++%LG:NAN(09A_Zaz):1:12:nan: ++%*LG:NAN(09A_Zaz):0:12: ++%LG:0X0P0:1:5:0x0: ++%*LG:0X0P0:0:5: ++%LG:0X0P+0:1:6:0x0: ++%*LG:0X0P+0:0:6: ++%LG:0X8P-1025:1:9:0x1p-1022: ++%*LG:0X8P-1025:0:9: ++%LG:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*LG:0X2.3456789ABCDFEP0123:0:22: ++%LG:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*LG:0X2.3456789ABCDFEP+123:0:22: ++%LG:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023: ++%*LG:0X7.FFFFFFFFFFFFCP1021:0:22: ++%LG:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023: ++%*LG:0XF.FFFFFFFFFFFF8P+1020:0:23: ++%LG:INFINITY:1:8:inf: ++%*LG:INFINITY:0:8: ++%LG:+NAN():1:6:nan: ++%*LG:+NAN():0:6: ++%LG:+NAN(09A_Zaz):1:13:nan: ++%*LG:+NAN(09A_Zaz):0:13: ++%LG:+0X0P0:1:6:0x0: ++%*LG:+0X0P0:0:6: ++%LG:+0X0P+0:1:7:0x0: ++%*LG:+0X0P+0:0:7: ++%LG:+0X8P-1025:1:10:0x1p-1022: ++%*LG:+0X8P-1025:0:10: ++%LG:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*LG:+0X2.3456789ABCDFEP0123:0:23: ++%LG:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*LG:+0X2.3456789ABCDFEP+123:0:23: ++%LG:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*LG:+0X7.FFFFFFFFFFFFCP1021:0:23: ++%LG:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*LG:+0XF.FFFFFFFFFFFF8P+1020:0:24: ++%LG:+INFINITY:1:9:inf: ++%*LG:+INFINITY:0:9: ++%1LG::0:-1: ++%*1LG::0:-1: ++%1LG:-INFINITY:0:-1: ++%*1LG:-INFINITY:0:-1: ++%1LG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%*1LG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%1LG:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++%*1LG:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++%1LG:-0X2.3456789ABCDFEP+123:0:-1: ++%*1LG:-0X2.3456789ABCDFEP+123:0:-1: ++%1LG:-0X2.3456789ABCDFEP0123:0:-1: ++%*1LG:-0X2.3456789ABCDFEP0123:0:-1: ++%1LG:-0X8P-1025:0:-1: ++%*1LG:-0X8P-1025:0:-1: ++%1LG:-0X0P+0:0:-1: ++%*1LG:-0X0P+0:0:-1: ++%1LG:-0X0P0:0:-1: ++%*1LG:-0X0P0:0:-1: ++%1LG:-NAN(09A_Zaz):0:-1: ++%*1LG:-NAN(09A_Zaz):0:-1: ++%1LG:-NAN():0:-1: ++%*1LG:-NAN():0:-1: ++%1LG:NAN():0:-1: ++%*1LG:NAN():0:-1: ++%1LG:NAN(09A_Zaz):0:-1: ++%*1LG:NAN(09A_Zaz):0:-1: ++%1LG:0X0P0:1:1:0x0: ++%*1LG:0X0P0:0:1: ++%1LG:0X0P+0:1:1:0x0: ++%*1LG:0X0P+0:0:1: ++%1LG:0X8P-1025:1:1:0x0: ++%*1LG:0X8P-1025:0:1: ++%1LG:0X2.3456789ABCDFEP0123:1:1:0x0: ++%*1LG:0X2.3456789ABCDFEP0123:0:1: ++%1LG:0X2.3456789ABCDFEP+123:1:1:0x0: ++%*1LG:0X2.3456789ABCDFEP+123:0:1: ++%1LG:0X7.FFFFFFFFFFFFCP1021:1:1:0x0: ++%*1LG:0X7.FFFFFFFFFFFFCP1021:0:1: ++%1LG:0XF.FFFFFFFFFFFF8P+1020:1:1:0x0: ++%*1LG:0XF.FFFFFFFFFFFF8P+1020:0:1: ++%1LG:INFINITY:0:-1: ++%*1LG:INFINITY:0:-1: ++%1LG:+NAN():0:-1: ++%*1LG:+NAN():0:-1: ++%1LG:+NAN(09A_Zaz):0:-1: ++%*1LG:+NAN(09A_Zaz):0:-1: ++%1LG:+0X0P0:0:-1: ++%*1LG:+0X0P0:0:-1: ++%1LG:+0X0P+0:0:-1: ++%*1LG:+0X0P+0:0:-1: ++%1LG:+0X8P-1025:0:-1: ++%*1LG:+0X8P-1025:0:-1: ++%1LG:+0X2.3456789ABCDFEP0123:0:-1: ++%*1LG:+0X2.3456789ABCDFEP0123:0:-1: ++%1LG:+0X2.3456789ABCDFEP+123:0:-1: ++%*1LG:+0X2.3456789ABCDFEP+123:0:-1: ++%1LG:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++%*1LG:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++%1LG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%*1LG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%1LG:+INFINITY:0:-1: ++%*1LG:+INFINITY:0:-1: ++%2LG::0:-1: ++%*2LG::0:-1: ++%2LG:-INFINITY:0:-1: ++%*2LG:-INFINITY:0:-1: ++%2LG:-0XF.FFFFFFFFFFFF8P+1020:1:2:-0x0: ++%*2LG:-0XF.FFFFFFFFFFFF8P+1020:0:2: ++%2LG:-0X7.FFFFFFFFFFFFCP1021:1:2:-0x0: ++%*2LG:-0X7.FFFFFFFFFFFFCP1021:0:2: ++%2LG:-0X2.3456789ABCDFEP+123:1:2:-0x0: ++%*2LG:-0X2.3456789ABCDFEP+123:0:2: ++%2LG:-0X2.3456789ABCDFEP0123:1:2:-0x0: ++%*2LG:-0X2.3456789ABCDFEP0123:0:2: ++%2LG:-0X8P-1025:1:2:-0x0: ++%*2LG:-0X8P-1025:0:2: ++%2LG:-0X0P+0:1:2:-0x0: ++%*2LG:-0X0P+0:0:2: ++%2LG:-0X0P0:1:2:-0x0: ++%*2LG:-0X0P0:0:2: ++%2LG:-NAN(09A_Zaz):0:-1: ++%*2LG:-NAN(09A_Zaz):0:-1: ++%2LG:-NAN():0:-1: ++%*2LG:-NAN():0:-1: ++%2LG:NAN():0:-1: ++%*2LG:NAN():0:-1: ++%2LG:NAN(09A_Zaz):0:-1: ++%*2LG:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LG:0X0P0:0:-1: ++# BZ12701 %*2LG:0X0P0:0:-1: ++# BZ12701 %2LG:0X0P+0:0:-1: ++# BZ12701 %*2LG:0X0P+0:0:-1: ++# BZ12701 %2LG:0X8P-1025:0:-1: ++# BZ12701 %*2LG:0X8P-1025:0:-1: ++# BZ12701 %2LG:0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*2LG:0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %2LG:0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*2LG:0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %2LG:0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*2LG:0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %2LG:0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*2LG:0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%2LG:INFINITY:0:-1: ++%*2LG:INFINITY:0:-1: ++%2LG:+NAN():0:-1: ++%*2LG:+NAN():0:-1: ++%2LG:+NAN(09A_Zaz):0:-1: ++%*2LG:+NAN(09A_Zaz):0:-1: ++%2LG:+0X0P0:1:2:0x0: ++%*2LG:+0X0P0:0:2: ++%2LG:+0X0P+0:1:2:0x0: ++%*2LG:+0X0P+0:0:2: ++%2LG:+0X8P-1025:1:2:0x0: ++%*2LG:+0X8P-1025:0:2: ++%2LG:+0X2.3456789ABCDFEP0123:1:2:0x0: ++%*2LG:+0X2.3456789ABCDFEP0123:0:2: ++%2LG:+0X2.3456789ABCDFEP+123:1:2:0x0: ++%*2LG:+0X2.3456789ABCDFEP+123:0:2: ++%2LG:+0X7.FFFFFFFFFFFFCP1021:1:2:0x0: ++%*2LG:+0X7.FFFFFFFFFFFFCP1021:0:2: ++%2LG:+0XF.FFFFFFFFFFFF8P+1020:1:2:0x0: ++%*2LG:+0XF.FFFFFFFFFFFF8P+1020:0:2: ++%2LG:+INFINITY:0:-1: ++%*2LG:+INFINITY:0:-1: ++%3LG::0:-1: ++%*3LG::0:-1: ++%3LG:-INFINITY:0:-1: ++%*3LG:-INFINITY:0:-1: ++# BZ12701 %3LG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*3LG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %3LG:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*3LG:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %3LG:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*3LG:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %3LG:-0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*3LG:-0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %3LG:-0X8P-1025:0:-1: ++# BZ12701 %*3LG:-0X8P-1025:0:-1: ++# BZ12701 %3LG:-0X0P+0:0:-1: ++# BZ12701 %*3LG:-0X0P+0:0:-1: ++# BZ12701 %3LG:-0X0P0:0:-1: ++# BZ12701 %*3LG:-0X0P0:0:-1: ++%3LG:-NAN(09A_Zaz):0:-1: ++%*3LG:-NAN(09A_Zaz):0:-1: ++%3LG:-NAN():0:-1: ++%*3LG:-NAN():0:-1: ++%3LG:NAN():1:3:nan: ++%*3LG:NAN():0:3: ++%3LG:NAN(09A_Zaz):1:3:nan: ++%*3LG:NAN(09A_Zaz):0:3: ++%3LG:0X0P0:1:3:0x0: ++%*3LG:0X0P0:0:3: ++%3LG:0X0P+0:1:3:0x0: ++%*3LG:0X0P+0:0:3: ++%3LG:0X8P-1025:1:3:0x1p3: ++%*3LG:0X8P-1025:0:3: ++%3LG:0X2.3456789ABCDFEP0123:1:3:0x1p1: ++%*3LG:0X2.3456789ABCDFEP0123:0:3: ++%3LG:0X2.3456789ABCDFEP+123:1:3:0x1p1: ++%*3LG:0X2.3456789ABCDFEP+123:0:3: ++%3LG:0X7.FFFFFFFFFFFFCP1021:1:3:0x1.cp2: ++%*3LG:0X7.FFFFFFFFFFFFCP1021:0:3: ++%3LG:0XF.FFFFFFFFFFFF8P+1020:1:3:0x1.ep3: ++%*3LG:0XF.FFFFFFFFFFFF8P+1020:0:3: ++%3LG:INFINITY:1:3:inf: ++%*3LG:INFINITY:0:3: ++%3LG:+NAN():0:-1: ++%*3LG:+NAN():0:-1: ++%3LG:+NAN(09A_Zaz):0:-1: ++%*3LG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LG:+0X0P0:0:-1: ++# BZ12701 %*3LG:+0X0P0:0:-1: ++# BZ12701 %3LG:+0X0P+0:0:-1: ++# BZ12701 %*3LG:+0X0P+0:0:-1: ++# BZ12701 %3LG:+0X8P-1025:0:-1: ++# BZ12701 %*3LG:+0X8P-1025:0:-1: ++# BZ12701 %3LG:+0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*3LG:+0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %3LG:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*3LG:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %3LG:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*3LG:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %3LG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*3LG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%3LG:+INFINITY:0:-1: ++%*3LG:+INFINITY:0:-1: ++%4LG::0:-1: ++%*4LG::0:-1: ++%4LG:-INFINITY:1:4:-inf: ++%*4LG:-INFINITY:0:4: ++%4LG:-0XF.FFFFFFFFFFFF8P+1020:1:4:-0x1.ep3: ++%*4LG:-0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4LG:-0X7.FFFFFFFFFFFFCP1021:1:4:-0x1.cp2: ++%*4LG:-0X7.FFFFFFFFFFFFCP1021:0:4: ++%4LG:-0X2.3456789ABCDFEP+123:1:4:-0x1p1: ++%*4LG:-0X2.3456789ABCDFEP+123:0:4: ++%4LG:-0X2.3456789ABCDFEP0123:1:4:-0x1p1: ++%*4LG:-0X2.3456789ABCDFEP0123:0:4: ++%4LG:-0X8P-1025:1:4:-0x1p3: ++%*4LG:-0X8P-1025:0:4: ++%4LG:-0X0P+0:1:4:-0x0: ++%*4LG:-0X0P+0:0:4: ++%4LG:-0X0P0:1:4:-0x0: ++%*4LG:-0X0P0:0:4: ++%4LG:-NAN(09A_Zaz):1:4:-nan: ++%*4LG:-NAN(09A_Zaz):0:4: ++%4LG:-NAN():1:4:-nan: ++%*4LG:-NAN():0:4: ++%4LG:NAN():0:-1: ++%*4LG:NAN():0:-1: ++%4LG:NAN(09A_Zaz):0:-1: ++%*4LG:NAN(09A_Zaz):0:-1: ++# BZ12701 %4LG:0X0P0:0:-1: ++# BZ12701 %*4LG:0X0P0:0:-1: ++# BZ12701 %4LG:0X0P+0:0:-1: ++# BZ12701 %*4LG:0X0P+0:0:-1: ++# BZ12701 %4LG:0X8P-1025:0:-1: ++# BZ12701 %*4LG:0X8P-1025:0:-1: ++%4LG:0X2.3456789ABCDFEP0123:1:4:0x1p1: ++%*4LG:0X2.3456789ABCDFEP0123:0:4: ++%4LG:0X2.3456789ABCDFEP+123:1:4:0x1p1: ++%*4LG:0X2.3456789ABCDFEP+123:0:4: ++%4LG:0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2: ++%*4LG:0X7.FFFFFFFFFFFFCP1021:0:4: ++%4LG:0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3: ++%*4LG:0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4LG:INFINITY:0:-1: ++%*4LG:INFINITY:0:-1: ++%4LG:+NAN():1:4:nan: ++%*4LG:+NAN():0:4: ++%4LG:+NAN(09A_Zaz):1:4:nan: ++%*4LG:+NAN(09A_Zaz):0:4: ++%4LG:+0X0P0:1:4:0x0: ++%*4LG:+0X0P0:0:4: ++%4LG:+0X0P+0:1:4:0x0: ++%*4LG:+0X0P+0:0:4: ++%4LG:+0X8P-1025:1:4:0x1p3: ++%*4LG:+0X8P-1025:0:4: ++%4LG:+0X2.3456789ABCDFEP0123:1:4:0x1p1: ++%*4LG:+0X2.3456789ABCDFEP0123:0:4: ++%4LG:+0X2.3456789ABCDFEP+123:1:4:0x1p1: ++%*4LG:+0X2.3456789ABCDFEP+123:0:4: ++%4LG:+0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2: ++%*4LG:+0X7.FFFFFFFFFFFFCP1021:0:4: ++%4LG:+0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3: ++%*4LG:+0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4LG:+INFINITY:1:4:inf: ++%*4LG:+INFINITY:0:4: ++%5LG::0:-1: ++%*5LG::0:-1: ++%5LG:-INFINITY:0:-1: ++%*5LG:-INFINITY:0:-1: ++%5LG:-0XF.FFFFFFFFFFFF8P+1020:1:5:-0x1.ep3: ++%*5LG:-0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5LG:-0X7.FFFFFFFFFFFFCP1021:1:5:-0x1.cp2: ++%*5LG:-0X7.FFFFFFFFFFFFCP1021:0:5: ++%5LG:-0X2.3456789ABCDFEP+123:1:5:-0x1p1: ++%*5LG:-0X2.3456789ABCDFEP+123:0:5: ++%5LG:-0X2.3456789ABCDFEP0123:1:5:-0x1p1: ++%*5LG:-0X2.3456789ABCDFEP0123:0:5: ++# BZ12701 %5LG:-0X8P-1025:0:-1: ++# BZ12701 %*5LG:-0X8P-1025:0:-1: ++# BZ12701 %5LG:-0X0P+0:0:-1: ++# BZ12701 %*5LG:-0X0P+0:0:-1: ++# BZ12701 %5LG:-0X0P0:0:-1: ++# BZ12701 %*5LG:-0X0P0:0:-1: ++%5LG:-NAN(09A_Zaz):0:-1: ++%*5LG:-NAN(09A_Zaz):0:-1: ++%5LG:-NAN():0:-1: ++%*5LG:-NAN():0:-1: ++%5LG:NAN():1:5:nan: ++%*5LG:NAN():0:5: ++%5LG:NAN(09A_Zaz):0:-1: ++%*5LG:NAN(09A_Zaz):0:-1: ++%5LG:0X0P0:1:5:0x0: ++%*5LG:0X0P0:0:5: ++# BZ12701 %5LG:0X0P+0:0:-1: ++# BZ12701 %*5LG:0X0P+0:0:-1: ++# BZ12701 %5LG:0X8P-1025:0:-1: ++# BZ12701 %*5LG:0X8P-1025:0:-1: ++%5LG:0X2.3456789ABCDFEP0123:1:5:0x1.18p1: ++%*5LG:0X2.3456789ABCDFEP0123:0:5: ++%5LG:0X2.3456789ABCDFEP+123:1:5:0x1.18p1: ++%*5LG:0X2.3456789ABCDFEP+123:0:5: ++%5LG:0X7.FFFFFFFFFFFFCP1021:1:5:0x1.fcp2: ++%*5LG:0X7.FFFFFFFFFFFFCP1021:0:5: ++%5LG:0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.fep3: ++%*5LG:0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5LG:INFINITY:0:-1: ++%*5LG:INFINITY:0:-1: ++%5LG:+NAN():0:-1: ++%*5LG:+NAN():0:-1: ++%5LG:+NAN(09A_Zaz):0:-1: ++%*5LG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5LG:+0X0P0:0:-1: ++# BZ12701 %*5LG:+0X0P0:0:-1: ++# BZ12701 %5LG:+0X0P+0:0:-1: ++# BZ12701 %*5LG:+0X0P+0:0:-1: ++# BZ12701 %5LG:+0X8P-1025:0:-1: ++# BZ12701 %*5LG:+0X8P-1025:0:-1: ++%5LG:+0X2.3456789ABCDFEP0123:1:5:0x1p1: ++%*5LG:+0X2.3456789ABCDFEP0123:0:5: ++%5LG:+0X2.3456789ABCDFEP+123:1:5:0x1p1: ++%*5LG:+0X2.3456789ABCDFEP+123:0:5: ++%5LG:+0X7.FFFFFFFFFFFFCP1021:1:5:0x1.cp2: ++%*5LG:+0X7.FFFFFFFFFFFFCP1021:0:5: ++%5LG:+0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.ep3: ++%*5LG:+0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5LG:+INFINITY:0:-1: ++%*5LG:+INFINITY:0:-1: ++%6LG::0:-1: ++%*6LG::0:-1: ++%6LG:-INFINITY:0:-1: ++%*6LG:-INFINITY:0:-1: ++%6LG:-0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.fep3: ++%*6LG:-0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6LG:-0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.fcp2: ++%*6LG:-0X7.FFFFFFFFFFFFCP1021:0:6: ++%6LG:-0X2.3456789ABCDFEP+123:1:6:-0x1.18p1: ++%*6LG:-0X2.3456789ABCDFEP+123:0:6: ++%6LG:-0X2.3456789ABCDFEP0123:1:6:-0x1.18p1: ++%*6LG:-0X2.3456789ABCDFEP0123:0:6: ++# BZ12701 %6LG:-0X8P-1025:0:-1: ++# BZ12701 %*6LG:-0X8P-1025:0:-1: ++# BZ12701 %6LG:-0X0P+0:0:-1: ++# BZ12701 %*6LG:-0X0P+0:0:-1: ++%6LG:-0X0P0:1:6:-0x0: ++%*6LG:-0X0P0:0:6: ++%6LG:-NAN(09A_Zaz):0:-1: ++%*6LG:-NAN(09A_Zaz):0:-1: ++%6LG:-NAN():1:6:-nan: ++%*6LG:-NAN():0:6: ++%6LG:NAN():1:5:nan: ++%*6LG:NAN():0:5: ++%6LG:NAN(09A_Zaz):0:-1: ++%*6LG:NAN(09A_Zaz):0:-1: ++%6LG:0X0P0:1:5:0x0: ++%*6LG:0X0P0:0:5: ++%6LG:0X0P+0:1:6:0x0: ++%*6LG:0X0P+0:0:6: ++%6LG:0X8P-1025:1:6:0x1p2: ++%*6LG:0X8P-1025:0:6: ++%6LG:0X2.3456789ABCDFEP0123:1:6:0x1.1ap1: ++%*6LG:0X2.3456789ABCDFEP0123:0:6: ++%6LG:0X2.3456789ABCDFEP+123:1:6:0x1.1ap1: ++%*6LG:0X2.3456789ABCDFEP+123:0:6: ++%6LG:0X7.FFFFFFFFFFFFCP1021:1:6:0x1.ffcp2: ++%*6LG:0X7.FFFFFFFFFFFFCP1021:0:6: ++%6LG:0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ffep3: ++%*6LG:0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6LG:INFINITY:0:-1: ++%*6LG:INFINITY:0:-1: ++%6LG:+NAN():1:6:nan: ++%*6LG:+NAN():0:6: ++%6LG:+NAN(09A_Zaz):0:-1: ++%*6LG:+NAN(09A_Zaz):0:-1: ++%6LG:+0X0P0:1:6:0x0: ++%*6LG:+0X0P0:0:6: ++# BZ12701 %6LG:+0X0P+0:0:-1: ++# BZ12701 %*6LG:+0X0P+0:0:-1: ++# BZ12701 %6LG:+0X8P-1025:0:-1: ++# BZ12701 %*6LG:+0X8P-1025:0:-1: ++%6LG:+0X2.3456789ABCDFEP0123:1:6:0x1.18p1: ++%*6LG:+0X2.3456789ABCDFEP0123:0:6: ++%6LG:+0X2.3456789ABCDFEP+123:1:6:0x1.18p1: ++%*6LG:+0X2.3456789ABCDFEP+123:0:6: ++%6LG:+0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2: ++%*6LG:+0X7.FFFFFFFFFFFFCP1021:0:6: ++%6LG:+0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3: ++%*6LG:+0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6LG:+INFINITY:0:-1: ++%*6LG:+INFINITY:0:-1: ++%20LG::0:-1: ++%*20LG::0:-1: ++%20LG:-INFINITY:1:9:-inf: ++%*20LG:-INFINITY:0:9: ++# BZ12701 %20LG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*20LG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%20LG:-0X7.FFFFFFFFFFFFCP1021:1:20:-0x1.fffffffffffffp3: ++%*20LG:-0X7.FFFFFFFFFFFFCP1021:0:20: ++# BZ12701 %20LG:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*20LG:-0X2.3456789ABCDFEP+123:0:-1: ++%20LG:-0X2.3456789ABCDFEP0123:1:20:-0x1.1a2b3c4d5e6ffp1: ++%*20LG:-0X2.3456789ABCDFEP0123:0:20: ++%20LG:-0X8P-1025:1:10:-0x1p-1022: ++%*20LG:-0X8P-1025:0:10: ++%20LG:-0X0P+0:1:7:-0x0: ++%*20LG:-0X0P+0:0:7: ++%20LG:-0X0P0:1:6:-0x0: ++%*20LG:-0X0P0:0:6: ++%20LG:-NAN(09A_Zaz):1:13:-nan: ++%*20LG:-NAN(09A_Zaz):0:13: ++%20LG:-NAN():1:6:-nan: ++%*20LG:-NAN():0:6: ++%20LG:NAN():1:5:nan: ++%*20LG:NAN():0:5: ++%20LG:NAN(09A_Zaz):1:12:nan: ++%*20LG:NAN(09A_Zaz):0:12: ++%20LG:0X0P0:1:5:0x0: ++%*20LG:0X0P0:0:5: ++%20LG:0X0P+0:1:6:0x0: ++%*20LG:0X0P+0:0:6: ++%20LG:0X8P-1025:1:9:0x1p-1022: ++%*20LG:0X8P-1025:0:9: ++%20LG:0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20LG:0X2.3456789ABCDFEP0123:0:20: ++%20LG:0X2.3456789ABCDFEP+123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20LG:0X2.3456789ABCDFEP+123:0:20: ++%20LG:0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp12: ++%*20LG:0X7.FFFFFFFFFFFFCP1021:0:20: ++%20LG:0XF.FFFFFFFFFFFF8P+1020:1:20:0x1.fffffffffffffp4: ++%*20LG:0XF.FFFFFFFFFFFF8P+1020:0:20: ++%20LG:INFINITY:1:8:inf: ++%*20LG:INFINITY:0:8: ++%20LG:+NAN():1:6:nan: ++%*20LG:+NAN():0:6: ++%20LG:+NAN(09A_Zaz):1:13:nan: ++%*20LG:+NAN(09A_Zaz):0:13: ++%20LG:+0X0P0:1:6:0x0: ++%*20LG:+0X0P0:0:6: ++%20LG:+0X0P+0:1:7:0x0: ++%*20LG:+0X0P+0:0:7: ++%20LG:+0X8P-1025:1:10:0x1p-1022: ++%*20LG:+0X8P-1025:0:10: ++%20LG:+0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp1: ++%*20LG:+0X2.3456789ABCDFEP0123:0:20: ++# BZ12701 %20LG:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*20LG:+0X2.3456789ABCDFEP+123:0:-1: ++%20LG:+0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp3: ++%*20LG:+0X7.FFFFFFFFFFFFCP1021:0:20: ++# BZ12701 %20LG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*20LG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%20LG:+INFINITY:1:9:inf: ++%*20LG:+INFINITY:0:9: ++%32LG::0:-1: ++%*32LG::0:-1: ++%32LG:-INFINITY:1:9:-inf: ++%*32LG:-INFINITY:0:9: ++%32LG:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023: ++%*32LG:-0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32LG:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023: ++%*32LG:-0X7.FFFFFFFFFFFFCP1021:0:23: ++%32LG:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32LG:-0X2.3456789ABCDFEP+123:0:23: ++%32LG:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32LG:-0X2.3456789ABCDFEP0123:0:23: ++%32LG:-0X8P-1025:1:10:-0x1p-1022: ++%*32LG:-0X8P-1025:0:10: ++%32LG:-0X0P+0:1:7:-0x0: ++%*32LG:-0X0P+0:0:7: ++%32LG:-0X0P0:1:6:-0x0: ++%*32LG:-0X0P0:0:6: ++%32LG:-NAN(09A_Zaz):1:13:-nan: ++%*32LG:-NAN(09A_Zaz):0:13: ++%32LG:-NAN():1:6:-nan: ++%*32LG:-NAN():0:6: ++%32LG:NAN():1:5:nan: ++%*32LG:NAN():0:5: ++%32LG:NAN(09A_Zaz):1:12:nan: ++%*32LG:NAN(09A_Zaz):0:12: ++%32LG:0X0P0:1:5:0x0: ++%*32LG:0X0P0:0:5: ++%32LG:0X0P+0:1:6:0x0: ++%*32LG:0X0P+0:0:6: ++%32LG:0X8P-1025:1:9:0x1p-1022: ++%*32LG:0X8P-1025:0:9: ++%32LG:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32LG:0X2.3456789ABCDFEP0123:0:22: ++%32LG:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32LG:0X2.3456789ABCDFEP+123:0:22: ++%32LG:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023: ++%*32LG:0X7.FFFFFFFFFFFFCP1021:0:22: ++%32LG:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023: ++%*32LG:0XF.FFFFFFFFFFFF8P+1020:0:23: ++%32LG:INFINITY:1:8:inf: ++%*32LG:INFINITY:0:8: ++%32LG:+NAN():1:6:nan: ++%*32LG:+NAN():0:6: ++%32LG:+NAN(09A_Zaz):1:13:nan: ++%*32LG:+NAN(09A_Zaz):0:13: ++%32LG:+0X0P0:1:6:0x0: ++%*32LG:+0X0P0:0:6: ++%32LG:+0X0P+0:1:7:0x0: ++%*32LG:+0X0P+0:0:7: ++%32LG:+0X8P-1025:1:10:0x1p-1022: ++%*32LG:+0X8P-1025:0:10: ++%32LG:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32LG:+0X2.3456789ABCDFEP0123:0:23: ++%32LG:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32LG:+0X2.3456789ABCDFEP+123:0:23: ++%32LG:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*32LG:+0X7.FFFFFFFFFFFFCP1021:0:23: ++%32LG:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*32LG:+0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32LG:+INFINITY:1:9:inf: ++%*32LG:+INFINITY:0:9: ++%5LG: :0:-1: ++%*5LG: :0:-1: ++%5LG: -INFINITY:0:-1: ++%*5LG: -INFINITY:0:-1: ++%5LG: -0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.ep3: ++%*5LG: -0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5LG: -0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.cp2: ++%*5LG: -0X7.FFFFFFFFFFFFCP1021:0:6: ++%5LG: -0X2.3456789ABCDFEP+123:1:6:-0x1p1: ++%*5LG: -0X2.3456789ABCDFEP+123:0:6: ++%5LG: -0X2.3456789ABCDFEP0123:1:6:-0x1p1: ++%*5LG: -0X2.3456789ABCDFEP0123:0:6: ++# BZ12701 %5LG: -0X8P-1025:0:-1: ++# BZ12701 %*5LG: -0X8P-1025:0:-1: ++# BZ12701 %5LG: -0X0P+0:0:-1: ++# BZ12701 %*5LG: -0X0P+0:0:-1: ++# BZ12701 %5LG: -0X0P0:0:-1: ++# BZ12701 %*5LG: -0X0P0:0:-1: ++%5LG: -NAN(09A_Zaz):0:-1: ++%*5LG: -NAN(09A_Zaz):0:-1: ++%5LG: -NAN():0:-1: ++%*5LG: -NAN():0:-1: ++%5LG: NAN():1:6:nan: ++%*5LG: NAN():0:6: ++%5LG: NAN(09A_Zaz):0:-1: ++%*5LG: NAN(09A_Zaz):0:-1: ++%5LG: 0X0P0:1:6:0x0: ++%*5LG: 0X0P0:0:6: ++# BZ12701 %5LG: 0X0P+0:0:-1: ++# BZ12701 %*5LG: 0X0P+0:0:-1: ++# BZ12701 %5LG: 0X8P-1025:0:-1: ++# BZ12701 %*5LG: 0X8P-1025:0:-1: ++%5LG: 0X2.3456789ABCDFEP0123:1:6:0x1.18p1: ++%*5LG: 0X2.3456789ABCDFEP0123:0:6: ++%5LG: 0X2.3456789ABCDFEP+123:1:6:0x1.18p1: ++%*5LG: 0X2.3456789ABCDFEP+123:0:6: ++%5LG: 0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2: ++%*5LG: 0X7.FFFFFFFFFFFFCP1021:0:6: ++%5LG: 0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3: ++%*5LG: 0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5LG: INFINITY:0:-1: ++%*5LG: INFINITY:0:-1: ++%5LG: +NAN():0:-1: ++%*5LG: +NAN():0:-1: ++%5LG: +NAN(09A_Zaz):0:-1: ++%*5LG: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5LG: +0X0P0:0:-1: ++# BZ12701 %*5LG: +0X0P0:0:-1: ++# BZ12701 %5LG: +0X0P+0:0:-1: ++# BZ12701 %*5LG: +0X0P+0:0:-1: ++# BZ12701 %5LG: +0X8P-1025:0:-1: ++# BZ12701 %*5LG: +0X8P-1025:0:-1: ++%5LG: +0X2.3456789ABCDFEP0123:1:6:0x1p1: ++%*5LG: +0X2.3456789ABCDFEP0123:0:6: ++%5LG: +0X2.3456789ABCDFEP+123:1:6:0x1p1: ++%*5LG: +0X2.3456789ABCDFEP+123:0:6: ++%5LG: +0X7.FFFFFFFFFFFFCP1021:1:6:0x1.cp2: ++%*5LG: +0X7.FFFFFFFFFFFFCP1021:0:6: ++%5LG: +0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ep3: ++%*5LG: +0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5LG: +INFINITY:0:-1: ++%*5LG: +INFINITY:0:-1: ++%32LG: :0:-1: ++%*32LG: :0:-1: ++%32LG: -INFINITY:1:10:-inf: ++%*32LG: -INFINITY:0:10: ++%32LG: -0XF.FFFFFFFFFFFF8P+1020:1:25:-0x1.fffffffffffffp1023: ++%*32LG: -0XF.FFFFFFFFFFFF8P+1020:0:25: ++%32LG: -0X7.FFFFFFFFFFFFCP1021:1:24:-0x1.fffffffffffffp1023: ++%*32LG: -0X7.FFFFFFFFFFFFCP1021:0:24: ++%32LG: -0X2.3456789ABCDFEP+123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32LG: -0X2.3456789ABCDFEP+123:0:24: ++%32LG: -0X2.3456789ABCDFEP0123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32LG: -0X2.3456789ABCDFEP0123:0:24: ++%32LG: -0X8P-1025:1:11:-0x1p-1022: ++%*32LG: -0X8P-1025:0:11: ++%32LG: -0X0P+0:1:8:-0x0: ++%*32LG: -0X0P+0:0:8: ++%32LG: -0X0P0:1:7:-0x0: ++%*32LG: -0X0P0:0:7: ++%32LG: -NAN(09A_Zaz):1:14:-nan: ++%*32LG: -NAN(09A_Zaz):0:14: ++%32LG: -NAN():1:7:-nan: ++%*32LG: -NAN():0:7: ++%32LG: NAN():1:6:nan: ++%*32LG: NAN():0:6: ++%32LG: NAN(09A_Zaz):1:13:nan: ++%*32LG: NAN(09A_Zaz):0:13: ++%32LG: 0X0P0:1:6:0x0: ++%*32LG: 0X0P0:0:6: ++%32LG: 0X0P+0:1:7:0x0: ++%*32LG: 0X0P+0:0:7: ++%32LG: 0X8P-1025:1:10:0x1p-1022: ++%*32LG: 0X8P-1025:0:10: ++%32LG: 0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32LG: 0X2.3456789ABCDFEP0123:0:23: ++%32LG: 0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32LG: 0X2.3456789ABCDFEP+123:0:23: ++%32LG: 0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*32LG: 0X7.FFFFFFFFFFFFCP1021:0:23: ++%32LG: 0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*32LG: 0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32LG: INFINITY:1:9:inf: ++%*32LG: INFINITY:0:9: ++%32LG: +NAN():1:7:nan: ++%*32LG: +NAN():0:7: ++%32LG: +NAN(09A_Zaz):1:14:nan: ++%*32LG: +NAN(09A_Zaz):0:14: ++%32LG: +0X0P0:1:7:0x0: ++%*32LG: +0X0P0:0:7: ++%32LG: +0X0P+0:1:8:0x0: ++%*32LG: +0X0P+0:0:8: ++%32LG: +0X8P-1025:1:11:0x1p-1022: ++%*32LG: +0X8P-1025:0:11: ++%32LG: +0X2.3456789ABCDFEP0123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32LG: +0X2.3456789ABCDFEP0123:0:24: ++%32LG: +0X2.3456789ABCDFEP+123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32LG: +0X2.3456789ABCDFEP+123:0:24: ++%32LG: +0X7.FFFFFFFFFFFFCP1021:1:24:0x1.fffffffffffffp1023: ++%*32LG: +0X7.FFFFFFFFFFFFCP1021:0:24: ++%32LG: +0XF.FFFFFFFFFFFF8P+1020:1:25:0x1.fffffffffffffp1023: ++%*32LG: +0XF.FFFFFFFFFFFF8P+1020:0:25: ++%32LG: +INFINITY:1:10:inf: ++%*32LG: +INFINITY:0:10: diff --git a/SOURCES/glibc-RHEL-46726-8.patch b/SOURCES/glibc-RHEL-46726-8.patch new file mode 100644 index 0000000..9afc529 --- /dev/null +++ b/SOURCES/glibc-RHEL-46726-8.patch @@ -0,0 +1,4984 @@ +commit 4bea073069e9e457258d082786297a867593d05b +Author: Maciej W. Rozycki +Date: Tue Mar 25 09:40:20 2025 +0000 + + stdio-common: Add scanf long double data for IBM 128-bit format + + Add Makefile infrastructure and IBM 128-bit 'long double' real input for + targets switching between the IEEE 754 binary128 and IBM 128-bit formats + with '-mabi=ieeelongdouble' and '-mabi=ibmlongdouble'. Reuse IEEE 754 + binary128 input data but with modified output file names so as not to + clash with the names used for IBM 128-bit format tests made with common + rules for the 'long double' data type. + + Keep input data disabled and referring to BZ #12701 for entries that are + are currently incorrectly accepted as valid data, such as '0e', '0e+', + '0x', '0x8p', '0x0p-', etc. + + Reviewed-by: Joseph Myers + +diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile +index 67d476383ab4fd4a..e6dded999e4c1011 100644 +--- a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile ++++ b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile +@@ -66,6 +66,55 @@ CFLAGS-vfwprintf-internal.c += -mfloat128 -mabi=ibmlongdouble + CFLAGS-vfscanf-internal.c += -mfloat128 -mabi=ibmlongdouble + CFLAGS-vfwscanf-internal.c += -mfloat128 -mabi=ibmlongdouble + ++ifeq ($(subdir),stdio-common) ++# We already have the long double conversion defined with our common rules ++# for the IBM format, so define these special rules to build and run extra ++# executables for the IEEE binary128 format, reusing the same sources and ++# inputs. ++define tst-scanf-format-128ibm-compat-tests ++test-srcs += \ ++ tst-scanf-format-$(1)-ldouble-128ibm-compat \ ++ # test-srcs ++ ++$$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat.o: \ ++ tst-scanf-format-$(1)-ldouble.c $$(before-compile) ++ $$(compile-command.c) ++$$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat: $$(libm) ++endef ++$(foreach p,$(xscanf-funcs), \ ++ $(eval $(call tst-scanf-format-128ibm-compat-tests,$(p)))) ++ ++ifeq ($(run-built-tests),yes) ++define tst-scanf-format-128ibm-compat-rule ++tests-special += \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat-$(2).out \ ++ # tests-special ++ ++$$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat-$(2).out: \ ++ ../sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-$(2).input \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat ++ $$(make-tst-scanf-format-out) > $$@ < $$<; \ ++ $$(evaluate-test) ++ ++ifeq (yes,$(build-shared)) ++ifneq ($(PERL),no) ++tests-special += \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat-$(2)-mem.out \ ++ # tests-special ++ ++generated += \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat-$(2)-mem.out \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat-$(2).mtrace \ ++ # generated ++endif ++endif ++endef ++$(foreach f,$(fmts-xscanf-real), \ ++ $(foreach p,$(xscanf-funcs), \ ++ $(eval $(call tst-scanf-format-128ibm-compat-rule,$(p),$(f))))) ++endif # $(run-built-tests) == yes ++endif # $(subdir) == stdio-common ++ + # Basic tests for the implementation of long double with IEEE binary128 + # format and for the related redirections in installed headers. + tests-internal += test-printf-ieee128 test-printf-ibm128 +diff --git a/sysdeps/ieee754/ldbl-128ibm/Makefile b/sysdeps/ieee754/ldbl-128ibm/Makefile +index c38d4f6ac203fb8e..4dfe44032eb6f9d3 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/Makefile ++++ b/sysdeps/ieee754/ldbl-128ibm/Makefile +@@ -17,6 +17,16 @@ ifeq ($(subdir),math) + tests += $(ldbl-tests) + endif + ++ifeq ($(subdir),stdio-common) ++fmt-xscanf-real-convs += ldouble ++ ++# Use the IBM format for long double scanf format tests. ++$(foreach suf,$(all-object-suffixes), \ ++ $(foreach p,$(xscanf-funcs), \ ++ $(objpfx)tst-scanf-format-$(p)-ldouble$(suf))): \ ++ sysdep-CFLAGS += $(type-ldouble-CFLAGS) ++endif ++ + # Long double files may need extra CFLAGS. + ldbl-128ibm-routines = s_nexttoward s_nexttowardf \ + $(type-ldouble-routines) \ +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-a.input +new file mode 100644 +index 0000000000000000..a7377d55575f2d75 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-a.input +@@ -0,0 +1,682 @@ ++%La::0:-1: ++%*La::0:-1: ++%La:-infinity:1:9:-inf: ++%*La:-infinity:0:9: ++%La:-0xf.ffffffffffffbffffffffffffcp+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*La:-0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%La:-0x7.ffffffffffffdffffffffffffep1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*La:-0x7.ffffffffffffdffffffffffffep1021:0:36: ++%La:-0x2.3456789abcdef0123456789abcp+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*La:-0x2.3456789abcdef0123456789abcp+123:0:36: ++%La:-0x2.3456789abcdef0123456789abcp0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*La:-0x2.3456789abcdef0123456789abcp0123:0:36: ++%La:-0x8p-972:1:9:-0x1p-969: ++%*La:-0x8p-972:0:9: ++%La:-0x0p+0:1:7:-0x0: ++%*La:-0x0p+0:0:7: ++%La:-0x0p0:1:6:-0x0: ++%*La:-0x0p0:0:6: ++%La:-nan(09A_Zaz):1:13:-nan: ++%*La:-nan(09A_Zaz):0:13: ++%La:-nan():1:6:-nan: ++%*La:-nan():0:6: ++%La:nan():1:5:nan: ++%*La:nan():0:5: ++%La:nan(09A_Zaz):1:12:nan: ++%*La:nan(09A_Zaz):0:12: ++%La:0x0p0:1:5:0x0: ++%*La:0x0p0:0:5: ++%La:0x0p+0:1:6:0x0: ++%*La:0x0p+0:0:6: ++%La:0x8p-972:1:8:0x1p-969: ++%*La:0x8p-972:0:8: ++%La:0x2.3456789abcdef0123456789abcp0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*La:0x2.3456789abcdef0123456789abcp0123:0:35: ++%La:0x2.3456789abcdef0123456789abcp+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*La:0x2.3456789abcdef0123456789abcp+123:0:35: ++%La:0x7.ffffffffffffdffffffffffffep1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023: ++%*La:0x7.ffffffffffffdffffffffffffep1021:0:35: ++%La:0xf.ffffffffffffbffffffffffffcp+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*La:0xf.ffffffffffffbffffffffffffcp+1020:0:36: ++%La:infinity:1:8:inf: ++%*La:infinity:0:8: ++%La:+nan():1:6:nan: ++%*La:+nan():0:6: ++%La:+nan(09A_Zaz):1:13:nan: ++%*La:+nan(09A_Zaz):0:13: ++%La:+0x0p0:1:6:0x0: ++%*La:+0x0p0:0:6: ++%La:+0x0p+0:1:7:0x0: ++%*La:+0x0p+0:0:7: ++%La:+0x8p-972:1:9:0x1p-969: ++%*La:+0x8p-972:0:9: ++%La:+0x2.3456789abcdef0123456789abcp0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*La:+0x2.3456789abcdef0123456789abcp0123:0:36: ++%La:+0x2.3456789abcdef0123456789abcp+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*La:+0x2.3456789abcdef0123456789abcp+123:0:36: ++%La:+0x7.ffffffffffffdffffffffffffep1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*La:+0x7.ffffffffffffdffffffffffffep1021:0:36: ++%La:+0xf.ffffffffffffbffffffffffffcp+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*La:+0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%La:+infinity:1:9:inf: ++%*La:+infinity:0:9: ++%1La::0:-1: ++%*1La::0:-1: ++%1La:-infinity:0:-1: ++%*1La:-infinity:0:-1: ++%1La:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%*1La:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%1La:-0x7.ffffffffffffdffffffffffffep1021:0:-1: ++%*1La:-0x7.ffffffffffffdffffffffffffep1021:0:-1: ++%1La:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++%*1La:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++%1La:-0x2.3456789abcdef0123456789abcp0123:0:-1: ++%*1La:-0x2.3456789abcdef0123456789abcp0123:0:-1: ++%1La:-0x8p-972:0:-1: ++%*1La:-0x8p-972:0:-1: ++%1La:-0x0p+0:0:-1: ++%*1La:-0x0p+0:0:-1: ++%1La:-0x0p0:0:-1: ++%*1La:-0x0p0:0:-1: ++%1La:-nan(09A_Zaz):0:-1: ++%*1La:-nan(09A_Zaz):0:-1: ++%1La:-nan():0:-1: ++%*1La:-nan():0:-1: ++%1La:nan():0:-1: ++%*1La:nan():0:-1: ++%1La:nan(09A_Zaz):0:-1: ++%*1La:nan(09A_Zaz):0:-1: ++%1La:0x0p0:1:1:0x0: ++%*1La:0x0p0:0:1: ++%1La:0x0p+0:1:1:0x0: ++%*1La:0x0p+0:0:1: ++%1La:0x8p-972:1:1:0x0: ++%*1La:0x8p-972:0:1: ++%1La:0x2.3456789abcdef0123456789abcp0123:1:1:0x0: ++%*1La:0x2.3456789abcdef0123456789abcp0123:0:1: ++%1La:0x2.3456789abcdef0123456789abcp+123:1:1:0x0: ++%*1La:0x2.3456789abcdef0123456789abcp+123:0:1: ++%1La:0x7.ffffffffffffdffffffffffffep1021:1:1:0x0: ++%*1La:0x7.ffffffffffffdffffffffffffep1021:0:1: ++%1La:0xf.ffffffffffffbffffffffffffcp+1020:1:1:0x0: ++%*1La:0xf.ffffffffffffbffffffffffffcp+1020:0:1: ++%1La:infinity:0:-1: ++%*1La:infinity:0:-1: ++%1La:+nan():0:-1: ++%*1La:+nan():0:-1: ++%1La:+nan(09A_Zaz):0:-1: ++%*1La:+nan(09A_Zaz):0:-1: ++%1La:+0x0p0:0:-1: ++%*1La:+0x0p0:0:-1: ++%1La:+0x0p+0:0:-1: ++%*1La:+0x0p+0:0:-1: ++%1La:+0x8p-972:0:-1: ++%*1La:+0x8p-972:0:-1: ++%1La:+0x2.3456789abcdef0123456789abcp0123:0:-1: ++%*1La:+0x2.3456789abcdef0123456789abcp0123:0:-1: ++%1La:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++%*1La:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++%1La:+0x7.ffffffffffffdffffffffffffep1021:0:-1: ++%*1La:+0x7.ffffffffffffdffffffffffffep1021:0:-1: ++%1La:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%*1La:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%1La:+infinity:0:-1: ++%*1La:+infinity:0:-1: ++%2La::0:-1: ++%*2La::0:-1: ++%2La:-infinity:0:-1: ++%*2La:-infinity:0:-1: ++%2La:-0xf.ffffffffffffbffffffffffffcp+1020:1:2:-0x0: ++%*2La:-0xf.ffffffffffffbffffffffffffcp+1020:0:2: ++%2La:-0x7.ffffffffffffdffffffffffffep1021:1:2:-0x0: ++%*2La:-0x7.ffffffffffffdffffffffffffep1021:0:2: ++%2La:-0x2.3456789abcdef0123456789abcp+123:1:2:-0x0: ++%*2La:-0x2.3456789abcdef0123456789abcp+123:0:2: ++%2La:-0x2.3456789abcdef0123456789abcp0123:1:2:-0x0: ++%*2La:-0x2.3456789abcdef0123456789abcp0123:0:2: ++%2La:-0x8p-972:1:2:-0x0: ++%*2La:-0x8p-972:0:2: ++%2La:-0x0p+0:1:2:-0x0: ++%*2La:-0x0p+0:0:2: ++%2La:-0x0p0:1:2:-0x0: ++%*2La:-0x0p0:0:2: ++%2La:-nan(09A_Zaz):0:-1: ++%*2La:-nan(09A_Zaz):0:-1: ++%2La:-nan():0:-1: ++%*2La:-nan():0:-1: ++%2La:nan():0:-1: ++%*2La:nan():0:-1: ++%2La:nan(09A_Zaz):0:-1: ++%*2La:nan(09A_Zaz):0:-1: ++# BZ12701 %2La:0x0p0:0:-1: ++# BZ12701 %*2La:0x0p0:0:-1: ++# BZ12701 %2La:0x0p+0:0:-1: ++# BZ12701 %*2La:0x0p+0:0:-1: ++# BZ12701 %2La:0x8p-972:0:-1: ++# BZ12701 %*2La:0x8p-972:0:-1: ++# BZ12701 %2La:0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %*2La:0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %2La:0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*2La:0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %2La:0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %*2La:0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %2La:0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*2La:0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%2La:infinity:0:-1: ++%*2La:infinity:0:-1: ++%2La:+nan():0:-1: ++%*2La:+nan():0:-1: ++%2La:+nan(09A_Zaz):0:-1: ++%*2La:+nan(09A_Zaz):0:-1: ++%2La:+0x0p0:1:2:0x0: ++%*2La:+0x0p0:0:2: ++%2La:+0x0p+0:1:2:0x0: ++%*2La:+0x0p+0:0:2: ++%2La:+0x8p-972:1:2:0x0: ++%*2La:+0x8p-972:0:2: ++%2La:+0x2.3456789abcdef0123456789abcp0123:1:2:0x0: ++%*2La:+0x2.3456789abcdef0123456789abcp0123:0:2: ++%2La:+0x2.3456789abcdef0123456789abcp+123:1:2:0x0: ++%*2La:+0x2.3456789abcdef0123456789abcp+123:0:2: ++%2La:+0x7.ffffffffffffdffffffffffffep1021:1:2:0x0: ++%*2La:+0x7.ffffffffffffdffffffffffffep1021:0:2: ++%2La:+0xf.ffffffffffffbffffffffffffcp+1020:1:2:0x0: ++%*2La:+0xf.ffffffffffffbffffffffffffcp+1020:0:2: ++%2La:+infinity:0:-1: ++%*2La:+infinity:0:-1: ++%3La::0:-1: ++%*3La::0:-1: ++%3La:-infinity:0:-1: ++%*3La:-infinity:0:-1: ++# BZ12701 %3La:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*3La:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %3La:-0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %*3La:-0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %3La:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*3La:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %3La:-0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %*3La:-0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %3La:-0x8p-972:0:-1: ++# BZ12701 %*3La:-0x8p-972:0:-1: ++# BZ12701 %3La:-0x0p+0:0:-1: ++# BZ12701 %*3La:-0x0p+0:0:-1: ++# BZ12701 %3La:-0x0p0:0:-1: ++# BZ12701 %*3La:-0x0p0:0:-1: ++%3La:-nan(09A_Zaz):0:-1: ++%*3La:-nan(09A_Zaz):0:-1: ++%3La:-nan():0:-1: ++%*3La:-nan():0:-1: ++%3La:nan():1:3:nan: ++%*3La:nan():0:3: ++%3La:nan(09A_Zaz):1:3:nan: ++%*3La:nan(09A_Zaz):0:3: ++%3La:0x0p0:1:3:0x0: ++%*3La:0x0p0:0:3: ++%3La:0x0p+0:1:3:0x0: ++%*3La:0x0p+0:0:3: ++%3La:0x8p-972:1:3:0x1p3: ++%*3La:0x8p-972:0:3: ++%3La:0x2.3456789abcdef0123456789abcp0123:1:3:0x1p1: ++%*3La:0x2.3456789abcdef0123456789abcp0123:0:3: ++%3La:0x2.3456789abcdef0123456789abcp+123:1:3:0x1p1: ++%*3La:0x2.3456789abcdef0123456789abcp+123:0:3: ++%3La:0x7.ffffffffffffdffffffffffffep1021:1:3:0x1.cp2: ++%*3La:0x7.ffffffffffffdffffffffffffep1021:0:3: ++%3La:0xf.ffffffffffffbffffffffffffcp+1020:1:3:0x1.ep3: ++%*3La:0xf.ffffffffffffbffffffffffffcp+1020:0:3: ++%3La:infinity:1:3:inf: ++%*3La:infinity:0:3: ++%3La:+nan():0:-1: ++%*3La:+nan():0:-1: ++%3La:+nan(09A_Zaz):0:-1: ++%*3La:+nan(09A_Zaz):0:-1: ++# BZ12701 %3La:+0x0p0:0:-1: ++# BZ12701 %*3La:+0x0p0:0:-1: ++# BZ12701 %3La:+0x0p+0:0:-1: ++# BZ12701 %*3La:+0x0p+0:0:-1: ++# BZ12701 %3La:+0x8p-972:0:-1: ++# BZ12701 %*3La:+0x8p-972:0:-1: ++# BZ12701 %3La:+0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %*3La:+0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %3La:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*3La:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %3La:+0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %*3La:+0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %3La:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*3La:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%3La:+infinity:0:-1: ++%*3La:+infinity:0:-1: ++%4La::0:-1: ++%*4La::0:-1: ++%4La:-infinity:1:4:-inf: ++%*4La:-infinity:0:4: ++%4La:-0xf.ffffffffffffbffffffffffffcp+1020:1:4:-0x1.ep3: ++%*4La:-0xf.ffffffffffffbffffffffffffcp+1020:0:4: ++%4La:-0x7.ffffffffffffdffffffffffffep1021:1:4:-0x1.cp2: ++%*4La:-0x7.ffffffffffffdffffffffffffep1021:0:4: ++%4La:-0x2.3456789abcdef0123456789abcp+123:1:4:-0x1p1: ++%*4La:-0x2.3456789abcdef0123456789abcp+123:0:4: ++%4La:-0x2.3456789abcdef0123456789abcp0123:1:4:-0x1p1: ++%*4La:-0x2.3456789abcdef0123456789abcp0123:0:4: ++%4La:-0x8p-972:1:4:-0x1p3: ++%*4La:-0x8p-972:0:4: ++%4La:-0x0p+0:1:4:-0x0: ++%*4La:-0x0p+0:0:4: ++%4La:-0x0p0:1:4:-0x0: ++%*4La:-0x0p0:0:4: ++%4La:-nan(09A_Zaz):1:4:-nan: ++%*4La:-nan(09A_Zaz):0:4: ++%4La:-nan():1:4:-nan: ++%*4La:-nan():0:4: ++%4La:nan():0:-1: ++%*4La:nan():0:-1: ++%4La:nan(09A_Zaz):0:-1: ++%*4La:nan(09A_Zaz):0:-1: ++# BZ12701 %4La:0x0p0:0:-1: ++# BZ12701 %*4La:0x0p0:0:-1: ++# BZ12701 %4La:0x0p+0:0:-1: ++# BZ12701 %*4La:0x0p+0:0:-1: ++# BZ12701 %4La:0x8p-972:0:-1: ++# BZ12701 %*4La:0x8p-972:0:-1: ++%4La:0x2.3456789abcdef0123456789abcp0123:1:4:0x1p1: ++%*4La:0x2.3456789abcdef0123456789abcp0123:0:4: ++%4La:0x2.3456789abcdef0123456789abcp+123:1:4:0x1p1: ++%*4La:0x2.3456789abcdef0123456789abcp+123:0:4: ++%4La:0x7.ffffffffffffdffffffffffffep1021:1:4:0x1.cp2: ++%*4La:0x7.ffffffffffffdffffffffffffep1021:0:4: ++%4La:0xf.ffffffffffffbffffffffffffcp+1020:1:4:0x1.ep3: ++%*4La:0xf.ffffffffffffbffffffffffffcp+1020:0:4: ++%4La:infinity:0:-1: ++%*4La:infinity:0:-1: ++%4La:+nan():1:4:nan: ++%*4La:+nan():0:4: ++%4La:+nan(09A_Zaz):1:4:nan: ++%*4La:+nan(09A_Zaz):0:4: ++%4La:+0x0p0:1:4:0x0: ++%*4La:+0x0p0:0:4: ++%4La:+0x0p+0:1:4:0x0: ++%*4La:+0x0p+0:0:4: ++%4La:+0x8p-972:1:4:0x1p3: ++%*4La:+0x8p-972:0:4: ++%4La:+0x2.3456789abcdef0123456789abcp0123:1:4:0x1p1: ++%*4La:+0x2.3456789abcdef0123456789abcp0123:0:4: ++%4La:+0x2.3456789abcdef0123456789abcp+123:1:4:0x1p1: ++%*4La:+0x2.3456789abcdef0123456789abcp+123:0:4: ++%4La:+0x7.ffffffffffffdffffffffffffep1021:1:4:0x1.cp2: ++%*4La:+0x7.ffffffffffffdffffffffffffep1021:0:4: ++%4La:+0xf.ffffffffffffbffffffffffffcp+1020:1:4:0x1.ep3: ++%*4La:+0xf.ffffffffffffbffffffffffffcp+1020:0:4: ++%4La:+infinity:1:4:inf: ++%*4La:+infinity:0:4: ++%5La::0:-1: ++%*5La::0:-1: ++%5La:-infinity:0:-1: ++%*5La:-infinity:0:-1: ++%5La:-0xf.ffffffffffffbffffffffffffcp+1020:1:5:-0x1.ep3: ++%*5La:-0xf.ffffffffffffbffffffffffffcp+1020:0:5: ++%5La:-0x7.ffffffffffffdffffffffffffep1021:1:5:-0x1.cp2: ++%*5La:-0x7.ffffffffffffdffffffffffffep1021:0:5: ++%5La:-0x2.3456789abcdef0123456789abcp+123:1:5:-0x1p1: ++%*5La:-0x2.3456789abcdef0123456789abcp+123:0:5: ++%5La:-0x2.3456789abcdef0123456789abcp0123:1:5:-0x1p1: ++%*5La:-0x2.3456789abcdef0123456789abcp0123:0:5: ++# BZ12701 %5La:-0x8p-972:0:-1: ++# BZ12701 %*5La:-0x8p-972:0:-1: ++# BZ12701 %5La:-0x0p+0:0:-1: ++# BZ12701 %*5La:-0x0p+0:0:-1: ++# BZ12701 %5La:-0x0p0:0:-1: ++# BZ12701 %*5La:-0x0p0:0:-1: ++%5La:-nan(09A_Zaz):0:-1: ++%*5La:-nan(09A_Zaz):0:-1: ++%5La:-nan():0:-1: ++%*5La:-nan():0:-1: ++%5La:nan():1:5:nan: ++%*5La:nan():0:5: ++%5La:nan(09A_Zaz):0:-1: ++%*5La:nan(09A_Zaz):0:-1: ++%5La:0x0p0:1:5:0x0: ++%*5La:0x0p0:0:5: ++# BZ12701 %5La:0x0p+0:0:-1: ++# BZ12701 %*5La:0x0p+0:0:-1: ++# BZ12701 %5La:0x8p-972:0:-1: ++# BZ12701 %*5La:0x8p-972:0:-1: ++%5La:0x2.3456789abcdef0123456789abcp0123:1:5:0x1.18p1: ++%*5La:0x2.3456789abcdef0123456789abcp0123:0:5: ++%5La:0x2.3456789abcdef0123456789abcp+123:1:5:0x1.18p1: ++%*5La:0x2.3456789abcdef0123456789abcp+123:0:5: ++%5La:0x7.ffffffffffffdffffffffffffep1021:1:5:0x1.fcp2: ++%*5La:0x7.ffffffffffffdffffffffffffep1021:0:5: ++%5La:0xf.ffffffffffffbffffffffffffcp+1020:1:5:0x1.fep3: ++%*5La:0xf.ffffffffffffbffffffffffffcp+1020:0:5: ++%5La:infinity:0:-1: ++%*5La:infinity:0:-1: ++%5La:+nan():0:-1: ++%*5La:+nan():0:-1: ++%5La:+nan(09A_Zaz):0:-1: ++%*5La:+nan(09A_Zaz):0:-1: ++# BZ12701 %5La:+0x0p0:0:-1: ++# BZ12701 %*5La:+0x0p0:0:-1: ++# BZ12701 %5La:+0x0p+0:0:-1: ++# BZ12701 %*5La:+0x0p+0:0:-1: ++# BZ12701 %5La:+0x8p-972:0:-1: ++# BZ12701 %*5La:+0x8p-972:0:-1: ++%5La:+0x2.3456789abcdef0123456789abcp0123:1:5:0x1p1: ++%*5La:+0x2.3456789abcdef0123456789abcp0123:0:5: ++%5La:+0x2.3456789abcdef0123456789abcp+123:1:5:0x1p1: ++%*5La:+0x2.3456789abcdef0123456789abcp+123:0:5: ++%5La:+0x7.ffffffffffffdffffffffffffep1021:1:5:0x1.cp2: ++%*5La:+0x7.ffffffffffffdffffffffffffep1021:0:5: ++%5La:+0xf.ffffffffffffbffffffffffffcp+1020:1:5:0x1.ep3: ++%*5La:+0xf.ffffffffffffbffffffffffffcp+1020:0:5: ++%5La:+infinity:0:-1: ++%*5La:+infinity:0:-1: ++%6La::0:-1: ++%*6La::0:-1: ++%6La:-infinity:0:-1: ++%*6La:-infinity:0:-1: ++%6La:-0xf.ffffffffffffbffffffffffffcp+1020:1:6:-0x1.fep3: ++%*6La:-0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%6La:-0x7.ffffffffffffdffffffffffffep1021:1:6:-0x1.fcp2: ++%*6La:-0x7.ffffffffffffdffffffffffffep1021:0:6: ++%6La:-0x2.3456789abcdef0123456789abcp+123:1:6:-0x1.18p1: ++%*6La:-0x2.3456789abcdef0123456789abcp+123:0:6: ++%6La:-0x2.3456789abcdef0123456789abcp0123:1:6:-0x1.18p1: ++%*6La:-0x2.3456789abcdef0123456789abcp0123:0:6: ++# BZ12701 %6La:-0x8p-972:0:-1: ++# BZ12701 %*6La:-0x8p-972:0:-1: ++# BZ12701 %6La:-0x0p+0:0:-1: ++# BZ12701 %*6La:-0x0p+0:0:-1: ++%6La:-0x0p0:1:6:-0x0: ++%*6La:-0x0p0:0:6: ++%6La:-nan(09A_Zaz):0:-1: ++%*6La:-nan(09A_Zaz):0:-1: ++%6La:-nan():1:6:-nan: ++%*6La:-nan():0:6: ++%6La:nan():1:5:nan: ++%*6La:nan():0:5: ++%6La:nan(09A_Zaz):0:-1: ++%*6La:nan(09A_Zaz):0:-1: ++%6La:0x0p0:1:5:0x0: ++%*6La:0x0p0:0:5: ++%6La:0x0p+0:1:6:0x0: ++%*6La:0x0p+0:0:6: ++%6La:0x8p-972:1:6:0x1p-6: ++%*6La:0x8p-972:0:6: ++%6La:0x2.3456789abcdef0123456789abcp0123:1:6:0x1.1ap1: ++%*6La:0x2.3456789abcdef0123456789abcp0123:0:6: ++%6La:0x2.3456789abcdef0123456789abcp+123:1:6:0x1.1ap1: ++%*6La:0x2.3456789abcdef0123456789abcp+123:0:6: ++%6La:0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.ffcp2: ++%*6La:0x7.ffffffffffffdffffffffffffep1021:0:6: ++%6La:0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.ffep3: ++%*6La:0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%6La:infinity:0:-1: ++%*6La:infinity:0:-1: ++%6La:+nan():1:6:nan: ++%*6La:+nan():0:6: ++%6La:+nan(09A_Zaz):0:-1: ++%*6La:+nan(09A_Zaz):0:-1: ++%6La:+0x0p0:1:6:0x0: ++%*6La:+0x0p0:0:6: ++# BZ12701 %6La:+0x0p+0:0:-1: ++# BZ12701 %*6La:+0x0p+0:0:-1: ++# BZ12701 %6La:+0x8p-972:0:-1: ++# BZ12701 %*6La:+0x8p-972:0:-1: ++%6La:+0x2.3456789abcdef0123456789abcp0123:1:6:0x1.18p1: ++%*6La:+0x2.3456789abcdef0123456789abcp0123:0:6: ++%6La:+0x2.3456789abcdef0123456789abcp+123:1:6:0x1.18p1: ++%*6La:+0x2.3456789abcdef0123456789abcp+123:0:6: ++%6La:+0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.fcp2: ++%*6La:+0x7.ffffffffffffdffffffffffffep1021:0:6: ++%6La:+0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.fep3: ++%*6La:+0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%6La:+infinity:0:-1: ++%*6La:+infinity:0:-1: ++%33La::0:-1: ++%*33La::0:-1: ++%33La:-infinity:1:9:-inf: ++%*33La:-infinity:0:9: ++# BZ12701 %33La:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*33La:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%33La:-0x7.ffffffffffffdffffffffffffep1021:1:33:-0x1.fffffffffffff7ffffffffffff8p3: ++%*33La:-0x7.ffffffffffffdffffffffffffep1021:0:33: ++# BZ12701 %33La:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*33La:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++%33La:-0x2.3456789abcdef0123456789abcp0123:1:33:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep1: ++%*33La:-0x2.3456789abcdef0123456789abcp0123:0:33: ++%33La:-0x8p-972:1:9:-0x1p-969: ++%*33La:-0x8p-972:0:9: ++%33La:-0x0p+0:1:7:-0x0: ++%*33La:-0x0p+0:0:7: ++%33La:-0x0p0:1:6:-0x0: ++%*33La:-0x0p0:0:6: ++%33La:-nan(09A_Zaz):1:13:-nan: ++%*33La:-nan(09A_Zaz):0:13: ++%33La:-nan():1:6:-nan: ++%*33La:-nan():0:6: ++%33La:nan():1:5:nan: ++%*33La:nan():0:5: ++%33La:nan(09A_Zaz):1:12:nan: ++%*33La:nan(09A_Zaz):0:12: ++%33La:0x0p0:1:5:0x0: ++%*33La:0x0p0:0:5: ++%33La:0x0p+0:1:6:0x0: ++%*33La:0x0p+0:0:6: ++%33La:0x8p-972:1:8:0x1p-969: ++%*33La:0x8p-972:0:8: ++%33La:0x2.3456789abcdef0123456789abcp0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2: ++%*33La:0x2.3456789abcdef0123456789abcp0123:0:33: ++%33La:0x2.3456789abcdef0123456789abcp+123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2: ++%*33La:0x2.3456789abcdef0123456789abcp+123:0:33: ++%33La:0x7.ffffffffffffdffffffffffffep1021:1:33:0x1.fffffffffffff7ffffffffffff8p12: ++%*33La:0x7.ffffffffffffdffffffffffffep1021:0:33: ++%33La:0xf.ffffffffffffbffffffffffffcp+1020:1:33:0x1.fffffffffffff7ffffffffffff8p4: ++%*33La:0xf.ffffffffffffbffffffffffffcp+1020:0:33: ++%33La:infinity:1:8:inf: ++%*33La:infinity:0:8: ++%33La:+nan():1:6:nan: ++%*33La:+nan():0:6: ++%33La:+nan(09A_Zaz):1:13:nan: ++%*33La:+nan(09A_Zaz):0:13: ++%33La:+0x0p0:1:6:0x0: ++%*33La:+0x0p0:0:6: ++%33La:+0x0p+0:1:7:0x0: ++%*33La:+0x0p+0:0:7: ++%33La:+0x8p-972:1:9:0x1p-969: ++%*33La:+0x8p-972:0:9: ++%33La:+0x2.3456789abcdef0123456789abcp0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep1: ++%*33La:+0x2.3456789abcdef0123456789abcp0123:0:33: ++# BZ12701 %33La:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*33La:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++%33La:+0x7.ffffffffffffdffffffffffffep1021:1:33:0x1.fffffffffffff7ffffffffffff8p3: ++%*33La:+0x7.ffffffffffffdffffffffffffep1021:0:33: ++# BZ12701 %33La:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*33La:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%33La:+infinity:1:9:inf: ++%*33La:+infinity:0:9: ++%50La::0:-1: ++%*50La::0:-1: ++%50La:-infinity:1:9:-inf: ++%*50La:-infinity:0:9: ++%50La:-0xf.ffffffffffffbffffffffffffcp+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La:-0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%50La:-0x7.ffffffffffffdffffffffffffep1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La:-0x7.ffffffffffffdffffffffffffep1021:0:36: ++%50La:-0x2.3456789abcdef0123456789abcp+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La:-0x2.3456789abcdef0123456789abcp+123:0:36: ++%50La:-0x2.3456789abcdef0123456789abcp0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La:-0x2.3456789abcdef0123456789abcp0123:0:36: ++%50La:-0x8p-972:1:9:-0x1p-969: ++%*50La:-0x8p-972:0:9: ++%50La:-0x0p+0:1:7:-0x0: ++%*50La:-0x0p+0:0:7: ++%50La:-0x0p0:1:6:-0x0: ++%*50La:-0x0p0:0:6: ++%50La:-nan(09A_Zaz):1:13:-nan: ++%*50La:-nan(09A_Zaz):0:13: ++%50La:-nan():1:6:-nan: ++%*50La:-nan():0:6: ++%50La:nan():1:5:nan: ++%*50La:nan():0:5: ++%50La:nan(09A_Zaz):1:12:nan: ++%*50La:nan(09A_Zaz):0:12: ++%50La:0x0p0:1:5:0x0: ++%*50La:0x0p0:0:5: ++%50La:0x0p+0:1:6:0x0: ++%*50La:0x0p+0:0:6: ++%50La:0x8p-972:1:8:0x1p-969: ++%*50La:0x8p-972:0:8: ++%50La:0x2.3456789abcdef0123456789abcp0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La:0x2.3456789abcdef0123456789abcp0123:0:35: ++%50La:0x2.3456789abcdef0123456789abcp+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La:0x2.3456789abcdef0123456789abcp+123:0:35: ++%50La:0x7.ffffffffffffdffffffffffffep1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La:0x7.ffffffffffffdffffffffffffep1021:0:35: ++%50La:0xf.ffffffffffffbffffffffffffcp+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La:0xf.ffffffffffffbffffffffffffcp+1020:0:36: ++%50La:infinity:1:8:inf: ++%*50La:infinity:0:8: ++%50La:+nan():1:6:nan: ++%*50La:+nan():0:6: ++%50La:+nan(09A_Zaz):1:13:nan: ++%*50La:+nan(09A_Zaz):0:13: ++%50La:+0x0p0:1:6:0x0: ++%*50La:+0x0p0:0:6: ++%50La:+0x0p+0:1:7:0x0: ++%*50La:+0x0p+0:0:7: ++%50La:+0x8p-972:1:9:0x1p-969: ++%*50La:+0x8p-972:0:9: ++%50La:+0x2.3456789abcdef0123456789abcp0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La:+0x2.3456789abcdef0123456789abcp0123:0:36: ++%50La:+0x2.3456789abcdef0123456789abcp+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La:+0x2.3456789abcdef0123456789abcp+123:0:36: ++%50La:+0x7.ffffffffffffdffffffffffffep1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La:+0x7.ffffffffffffdffffffffffffep1021:0:36: ++%50La:+0xf.ffffffffffffbffffffffffffcp+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La:+0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%50La:+infinity:1:9:inf: ++%*50La:+infinity:0:9: ++%5La: :0:-1: ++%*5La: :0:-1: ++%5La: -infinity:0:-1: ++%*5La: -infinity:0:-1: ++%5La: -0xf.ffffffffffffbffffffffffffcp+1020:1:6:-0x1.ep3: ++%*5La: -0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%5La: -0x7.ffffffffffffdffffffffffffep1021:1:6:-0x1.cp2: ++%*5La: -0x7.ffffffffffffdffffffffffffep1021:0:6: ++%5La: -0x2.3456789abcdef0123456789abcp+123:1:6:-0x1p1: ++%*5La: -0x2.3456789abcdef0123456789abcp+123:0:6: ++%5La: -0x2.3456789abcdef0123456789abcp0123:1:6:-0x1p1: ++%*5La: -0x2.3456789abcdef0123456789abcp0123:0:6: ++# BZ12701 %5La: -0x8p-972:0:-1: ++# BZ12701 %*5La: -0x8p-972:0:-1: ++# BZ12701 %5La: -0x0p+0:0:-1: ++# BZ12701 %*5La: -0x0p+0:0:-1: ++# BZ12701 %5La: -0x0p0:0:-1: ++# BZ12701 %*5La: -0x0p0:0:-1: ++%5La: -nan(09A_Zaz):0:-1: ++%*5La: -nan(09A_Zaz):0:-1: ++%5La: -nan():0:-1: ++%*5La: -nan():0:-1: ++%5La: nan():1:6:nan: ++%*5La: nan():0:6: ++%5La: nan(09A_Zaz):0:-1: ++%*5La: nan(09A_Zaz):0:-1: ++%5La: 0x0p0:1:6:0x0: ++%*5La: 0x0p0:0:6: ++# BZ12701 %5La: 0x0p+0:0:-1: ++# BZ12701 %*5La: 0x0p+0:0:-1: ++# BZ12701 %5La: 0x8p-972:0:-1: ++# BZ12701 %*5La: 0x8p-972:0:-1: ++%5La: 0x2.3456789abcdef0123456789abcp0123:1:6:0x1.18p1: ++%*5La: 0x2.3456789abcdef0123456789abcp0123:0:6: ++%5La: 0x2.3456789abcdef0123456789abcp+123:1:6:0x1.18p1: ++%*5La: 0x2.3456789abcdef0123456789abcp+123:0:6: ++%5La: 0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.fcp2: ++%*5La: 0x7.ffffffffffffdffffffffffffep1021:0:6: ++%5La: 0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.fep3: ++%*5La: 0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%5La: infinity:0:-1: ++%*5La: infinity:0:-1: ++%5La: +nan():0:-1: ++%*5La: +nan():0:-1: ++%5La: +nan(09A_Zaz):0:-1: ++%*5La: +nan(09A_Zaz):0:-1: ++# BZ12701 %5La: +0x0p0:0:-1: ++# BZ12701 %*5La: +0x0p0:0:-1: ++# BZ12701 %5La: +0x0p+0:0:-1: ++# BZ12701 %*5La: +0x0p+0:0:-1: ++# BZ12701 %5La: +0x8p-972:0:-1: ++# BZ12701 %*5La: +0x8p-972:0:-1: ++%5La: +0x2.3456789abcdef0123456789abcp0123:1:6:0x1p1: ++%*5La: +0x2.3456789abcdef0123456789abcp0123:0:6: ++%5La: +0x2.3456789abcdef0123456789abcp+123:1:6:0x1p1: ++%*5La: +0x2.3456789abcdef0123456789abcp+123:0:6: ++%5La: +0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.cp2: ++%*5La: +0x7.ffffffffffffdffffffffffffep1021:0:6: ++%5La: +0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.ep3: ++%*5La: +0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%5La: +infinity:0:-1: ++%*5La: +infinity:0:-1: ++%50La: :0:-1: ++%*50La: :0:-1: ++%50La: -infinity:1:10:-inf: ++%*50La: -infinity:0:10: ++%50La: -0xf.ffffffffffffbffffffffffffcp+1020:1:38:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La: -0xf.ffffffffffffbffffffffffffcp+1020:0:38: ++%50La: -0x7.ffffffffffffdffffffffffffep1021:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La: -0x7.ffffffffffffdffffffffffffep1021:0:37: ++%50La: -0x2.3456789abcdef0123456789abcp+123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La: -0x2.3456789abcdef0123456789abcp+123:0:37: ++%50La: -0x2.3456789abcdef0123456789abcp0123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La: -0x2.3456789abcdef0123456789abcp0123:0:37: ++%50La: -0x8p-972:1:10:-0x1p-969: ++%*50La: -0x8p-972:0:10: ++%50La: -0x0p+0:1:8:-0x0: ++%*50La: -0x0p+0:0:8: ++%50La: -0x0p0:1:7:-0x0: ++%*50La: -0x0p0:0:7: ++%50La: -nan(09A_Zaz):1:14:-nan: ++%*50La: -nan(09A_Zaz):0:14: ++%50La: -nan():1:7:-nan: ++%*50La: -nan():0:7: ++%50La: nan():1:6:nan: ++%*50La: nan():0:6: ++%50La: nan(09A_Zaz):1:13:nan: ++%*50La: nan(09A_Zaz):0:13: ++%50La: 0x0p0:1:6:0x0: ++%*50La: 0x0p0:0:6: ++%50La: 0x0p+0:1:7:0x0: ++%*50La: 0x0p+0:0:7: ++%50La: 0x8p-972:1:9:0x1p-969: ++%*50La: 0x8p-972:0:9: ++%50La: 0x2.3456789abcdef0123456789abcp0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La: 0x2.3456789abcdef0123456789abcp0123:0:36: ++%50La: 0x2.3456789abcdef0123456789abcp+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La: 0x2.3456789abcdef0123456789abcp+123:0:36: ++%50La: 0x7.ffffffffffffdffffffffffffep1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La: 0x7.ffffffffffffdffffffffffffep1021:0:36: ++%50La: 0xf.ffffffffffffbffffffffffffcp+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La: 0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%50La: infinity:1:9:inf: ++%*50La: infinity:0:9: ++%50La: +nan():1:7:nan: ++%*50La: +nan():0:7: ++%50La: +nan(09A_Zaz):1:14:nan: ++%*50La: +nan(09A_Zaz):0:14: ++%50La: +0x0p0:1:7:0x0: ++%*50La: +0x0p0:0:7: ++%50La: +0x0p+0:1:8:0x0: ++%*50La: +0x0p+0:0:8: ++%50La: +0x8p-972:1:10:0x1p-969: ++%*50La: +0x8p-972:0:10: ++%50La: +0x2.3456789abcdef0123456789abcp0123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La: +0x2.3456789abcdef0123456789abcp0123:0:37: ++%50La: +0x2.3456789abcdef0123456789abcp+123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La: +0x2.3456789abcdef0123456789abcp+123:0:37: ++%50La: +0x7.ffffffffffffdffffffffffffep1021:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La: +0x7.ffffffffffffdffffffffffffep1021:0:37: ++%50La: +0xf.ffffffffffffbffffffffffffcp+1020:1:38:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La: +0xf.ffffffffffffbffffffffffffcp+1020:0:38: ++%50La: +infinity:1:10:inf: ++%*50La: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-aa.input +new file mode 100644 +index 0000000000000000..1dc2c558ced97273 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-aa.input +@@ -0,0 +1,682 @@ ++%LA::0:-1: ++%*LA::0:-1: ++%LA:-INFINITY:1:9:-inf: ++%*LA:-INFINITY:0:9: ++%LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%LA:-0X2.3456789ABCDEF0123456789ABCP+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%LA:-0X8P-972:1:9:-0x1p-969: ++%*LA:-0X8P-972:0:9: ++%LA:-0X0P+0:1:7:-0x0: ++%*LA:-0X0P+0:0:7: ++%LA:-0X0P0:1:6:-0x0: ++%*LA:-0X0P0:0:6: ++%LA:-NAN(09A_Zaz):1:13:-nan: ++%*LA:-NAN(09A_Zaz):0:13: ++%LA:-NAN():1:6:-nan: ++%*LA:-NAN():0:6: ++%LA:NAN():1:5:nan: ++%*LA:NAN():0:5: ++%LA:NAN(09A_Zaz):1:12:nan: ++%*LA:NAN(09A_Zaz):0:12: ++%LA:0X0P0:1:5:0x0: ++%*LA:0X0P0:0:5: ++%LA:0X0P+0:1:6:0x0: ++%*LA:0X0P+0:0:6: ++%LA:0X8P-972:1:8:0x1p-969: ++%*LA:0X8P-972:0:8: ++%LA:0X2.3456789ABCDEF0123456789ABCP0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LA:0X2.3456789ABCDEF0123456789ABCP0123:0:35: ++%LA:0X2.3456789ABCDEF0123456789ABCP+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LA:0X2.3456789ABCDEF0123456789ABCP+123:0:35: ++%LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:35: ++%LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36: ++%LA:INFINITY:1:8:inf: ++%*LA:INFINITY:0:8: ++%LA:+NAN():1:6:nan: ++%*LA:+NAN():0:6: ++%LA:+NAN(09A_Zaz):1:13:nan: ++%*LA:+NAN(09A_Zaz):0:13: ++%LA:+0X0P0:1:6:0x0: ++%*LA:+0X0P0:0:6: ++%LA:+0X0P+0:1:7:0x0: ++%*LA:+0X0P+0:0:7: ++%LA:+0X8P-972:1:9:0x1p-969: ++%*LA:+0X8P-972:0:9: ++%LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%LA:+0X2.3456789ABCDEF0123456789ABCP+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%LA:+INFINITY:1:9:inf: ++%*LA:+INFINITY:0:9: ++%1LA::0:-1: ++%*1LA::0:-1: ++%1LA:-INFINITY:0:-1: ++%*1LA:-INFINITY:0:-1: ++%1LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%*1LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%1LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++%*1LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++%1LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%*1LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%1LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++%*1LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++%1LA:-0X8P-972:0:-1: ++%*1LA:-0X8P-972:0:-1: ++%1LA:-0X0P+0:0:-1: ++%*1LA:-0X0P+0:0:-1: ++%1LA:-0X0P0:0:-1: ++%*1LA:-0X0P0:0:-1: ++%1LA:-NAN(09A_Zaz):0:-1: ++%*1LA:-NAN(09A_Zaz):0:-1: ++%1LA:-NAN():0:-1: ++%*1LA:-NAN():0:-1: ++%1LA:NAN():0:-1: ++%*1LA:NAN():0:-1: ++%1LA:NAN(09A_Zaz):0:-1: ++%*1LA:NAN(09A_Zaz):0:-1: ++%1LA:0X0P0:1:1:0x0: ++%*1LA:0X0P0:0:1: ++%1LA:0X0P+0:1:1:0x0: ++%*1LA:0X0P+0:0:1: ++%1LA:0X8P-972:1:1:0x0: ++%*1LA:0X8P-972:0:1: ++%1LA:0X2.3456789ABCDEF0123456789ABCP0123:1:1:0x0: ++%*1LA:0X2.3456789ABCDEF0123456789ABCP0123:0:1: ++%1LA:0X2.3456789ABCDEF0123456789ABCP+123:1:1:0x0: ++%*1LA:0X2.3456789ABCDEF0123456789ABCP+123:0:1: ++%1LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:1:0x0: ++%*1LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:1: ++%1LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:1:0x0: ++%*1LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:1: ++%1LA:INFINITY:0:-1: ++%*1LA:INFINITY:0:-1: ++%1LA:+NAN():0:-1: ++%*1LA:+NAN():0:-1: ++%1LA:+NAN(09A_Zaz):0:-1: ++%*1LA:+NAN(09A_Zaz):0:-1: ++%1LA:+0X0P0:0:-1: ++%*1LA:+0X0P0:0:-1: ++%1LA:+0X0P+0:0:-1: ++%*1LA:+0X0P+0:0:-1: ++%1LA:+0X8P-972:0:-1: ++%*1LA:+0X8P-972:0:-1: ++%1LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++%*1LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++%1LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%*1LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%1LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++%*1LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++%1LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%*1LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%1LA:+INFINITY:0:-1: ++%*1LA:+INFINITY:0:-1: ++%2LA::0:-1: ++%*2LA::0:-1: ++%2LA:-INFINITY:0:-1: ++%*2LA:-INFINITY:0:-1: ++%2LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:2:-0x0: ++%*2LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:2: ++%2LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:2:-0x0: ++%*2LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:2: ++%2LA:-0X2.3456789ABCDEF0123456789ABCP+123:1:2:-0x0: ++%*2LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:2: ++%2LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:2:-0x0: ++%*2LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:2: ++%2LA:-0X8P-972:1:2:-0x0: ++%*2LA:-0X8P-972:0:2: ++%2LA:-0X0P+0:1:2:-0x0: ++%*2LA:-0X0P+0:0:2: ++%2LA:-0X0P0:1:2:-0x0: ++%*2LA:-0X0P0:0:2: ++%2LA:-NAN(09A_Zaz):0:-1: ++%*2LA:-NAN(09A_Zaz):0:-1: ++%2LA:-NAN():0:-1: ++%*2LA:-NAN():0:-1: ++%2LA:NAN():0:-1: ++%*2LA:NAN():0:-1: ++%2LA:NAN(09A_Zaz):0:-1: ++%*2LA:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LA:0X0P0:0:-1: ++# BZ12701 %*2LA:0X0P0:0:-1: ++# BZ12701 %2LA:0X0P+0:0:-1: ++# BZ12701 %*2LA:0X0P+0:0:-1: ++# BZ12701 %2LA:0X8P-972:0:-1: ++# BZ12701 %*2LA:0X8P-972:0:-1: ++# BZ12701 %2LA:0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %*2LA:0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %2LA:0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*2LA:0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %2LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %*2LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %2LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*2LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%2LA:INFINITY:0:-1: ++%*2LA:INFINITY:0:-1: ++%2LA:+NAN():0:-1: ++%*2LA:+NAN():0:-1: ++%2LA:+NAN(09A_Zaz):0:-1: ++%*2LA:+NAN(09A_Zaz):0:-1: ++%2LA:+0X0P0:1:2:0x0: ++%*2LA:+0X0P0:0:2: ++%2LA:+0X0P+0:1:2:0x0: ++%*2LA:+0X0P+0:0:2: ++%2LA:+0X8P-972:1:2:0x0: ++%*2LA:+0X8P-972:0:2: ++%2LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:2:0x0: ++%*2LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:2: ++%2LA:+0X2.3456789ABCDEF0123456789ABCP+123:1:2:0x0: ++%*2LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:2: ++%2LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:2:0x0: ++%*2LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:2: ++%2LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:2:0x0: ++%*2LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:2: ++%2LA:+INFINITY:0:-1: ++%*2LA:+INFINITY:0:-1: ++%3LA::0:-1: ++%*3LA::0:-1: ++%3LA:-INFINITY:0:-1: ++%*3LA:-INFINITY:0:-1: ++# BZ12701 %3LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*3LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %3LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %*3LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %3LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*3LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %3LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %*3LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %3LA:-0X8P-972:0:-1: ++# BZ12701 %*3LA:-0X8P-972:0:-1: ++# BZ12701 %3LA:-0X0P+0:0:-1: ++# BZ12701 %*3LA:-0X0P+0:0:-1: ++# BZ12701 %3LA:-0X0P0:0:-1: ++# BZ12701 %*3LA:-0X0P0:0:-1: ++%3LA:-NAN(09A_Zaz):0:-1: ++%*3LA:-NAN(09A_Zaz):0:-1: ++%3LA:-NAN():0:-1: ++%*3LA:-NAN():0:-1: ++%3LA:NAN():1:3:nan: ++%*3LA:NAN():0:3: ++%3LA:NAN(09A_Zaz):1:3:nan: ++%*3LA:NAN(09A_Zaz):0:3: ++%3LA:0X0P0:1:3:0x0: ++%*3LA:0X0P0:0:3: ++%3LA:0X0P+0:1:3:0x0: ++%*3LA:0X0P+0:0:3: ++%3LA:0X8P-972:1:3:0x1p3: ++%*3LA:0X8P-972:0:3: ++%3LA:0X2.3456789ABCDEF0123456789ABCP0123:1:3:0x1p1: ++%*3LA:0X2.3456789ABCDEF0123456789ABCP0123:0:3: ++%3LA:0X2.3456789ABCDEF0123456789ABCP+123:1:3:0x1p1: ++%*3LA:0X2.3456789ABCDEF0123456789ABCP+123:0:3: ++%3LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:3:0x1.cp2: ++%*3LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:3: ++%3LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:3:0x1.ep3: ++%*3LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:3: ++%3LA:INFINITY:1:3:inf: ++%*3LA:INFINITY:0:3: ++%3LA:+NAN():0:-1: ++%*3LA:+NAN():0:-1: ++%3LA:+NAN(09A_Zaz):0:-1: ++%*3LA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LA:+0X0P0:0:-1: ++# BZ12701 %*3LA:+0X0P0:0:-1: ++# BZ12701 %3LA:+0X0P+0:0:-1: ++# BZ12701 %*3LA:+0X0P+0:0:-1: ++# BZ12701 %3LA:+0X8P-972:0:-1: ++# BZ12701 %*3LA:+0X8P-972:0:-1: ++# BZ12701 %3LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %*3LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %3LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*3LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %3LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %*3LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %3LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*3LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%3LA:+INFINITY:0:-1: ++%*3LA:+INFINITY:0:-1: ++%4LA::0:-1: ++%*4LA::0:-1: ++%4LA:-INFINITY:1:4:-inf: ++%*4LA:-INFINITY:0:4: ++%4LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:4:-0x1.ep3: ++%*4LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4: ++%4LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:4:-0x1.cp2: ++%*4LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:4: ++%4LA:-0X2.3456789ABCDEF0123456789ABCP+123:1:4:-0x1p1: ++%*4LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:4: ++%4LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:4:-0x1p1: ++%*4LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:4: ++%4LA:-0X8P-972:1:4:-0x1p3: ++%*4LA:-0X8P-972:0:4: ++%4LA:-0X0P+0:1:4:-0x0: ++%*4LA:-0X0P+0:0:4: ++%4LA:-0X0P0:1:4:-0x0: ++%*4LA:-0X0P0:0:4: ++%4LA:-NAN(09A_Zaz):1:4:-nan: ++%*4LA:-NAN(09A_Zaz):0:4: ++%4LA:-NAN():1:4:-nan: ++%*4LA:-NAN():0:4: ++%4LA:NAN():0:-1: ++%*4LA:NAN():0:-1: ++%4LA:NAN(09A_Zaz):0:-1: ++%*4LA:NAN(09A_Zaz):0:-1: ++# BZ12701 %4LA:0X0P0:0:-1: ++# BZ12701 %*4LA:0X0P0:0:-1: ++# BZ12701 %4LA:0X0P+0:0:-1: ++# BZ12701 %*4LA:0X0P+0:0:-1: ++# BZ12701 %4LA:0X8P-972:0:-1: ++# BZ12701 %*4LA:0X8P-972:0:-1: ++%4LA:0X2.3456789ABCDEF0123456789ABCP0123:1:4:0x1p1: ++%*4LA:0X2.3456789ABCDEF0123456789ABCP0123:0:4: ++%4LA:0X2.3456789ABCDEF0123456789ABCP+123:1:4:0x1p1: ++%*4LA:0X2.3456789ABCDEF0123456789ABCP+123:0:4: ++%4LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:4:0x1.cp2: ++%*4LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:4: ++%4LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:4:0x1.ep3: ++%*4LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4: ++%4LA:INFINITY:0:-1: ++%*4LA:INFINITY:0:-1: ++%4LA:+NAN():1:4:nan: ++%*4LA:+NAN():0:4: ++%4LA:+NAN(09A_Zaz):1:4:nan: ++%*4LA:+NAN(09A_Zaz):0:4: ++%4LA:+0X0P0:1:4:0x0: ++%*4LA:+0X0P0:0:4: ++%4LA:+0X0P+0:1:4:0x0: ++%*4LA:+0X0P+0:0:4: ++%4LA:+0X8P-972:1:4:0x1p3: ++%*4LA:+0X8P-972:0:4: ++%4LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:4:0x1p1: ++%*4LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:4: ++%4LA:+0X2.3456789ABCDEF0123456789ABCP+123:1:4:0x1p1: ++%*4LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:4: ++%4LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:4:0x1.cp2: ++%*4LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:4: ++%4LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:4:0x1.ep3: ++%*4LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4: ++%4LA:+INFINITY:1:4:inf: ++%*4LA:+INFINITY:0:4: ++%5LA::0:-1: ++%*5LA::0:-1: ++%5LA:-INFINITY:0:-1: ++%*5LA:-INFINITY:0:-1: ++%5LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:5:-0x1.ep3: ++%*5LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5: ++%5LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:5:-0x1.cp2: ++%*5LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:5: ++%5LA:-0X2.3456789ABCDEF0123456789ABCP+123:1:5:-0x1p1: ++%*5LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:5: ++%5LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:5:-0x1p1: ++%*5LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:5: ++# BZ12701 %5LA:-0X8P-972:0:-1: ++# BZ12701 %*5LA:-0X8P-972:0:-1: ++# BZ12701 %5LA:-0X0P+0:0:-1: ++# BZ12701 %*5LA:-0X0P+0:0:-1: ++# BZ12701 %5LA:-0X0P0:0:-1: ++# BZ12701 %*5LA:-0X0P0:0:-1: ++%5LA:-NAN(09A_Zaz):0:-1: ++%*5LA:-NAN(09A_Zaz):0:-1: ++%5LA:-NAN():0:-1: ++%*5LA:-NAN():0:-1: ++%5LA:NAN():1:5:nan: ++%*5LA:NAN():0:5: ++%5LA:NAN(09A_Zaz):0:-1: ++%*5LA:NAN(09A_Zaz):0:-1: ++%5LA:0X0P0:1:5:0x0: ++%*5LA:0X0P0:0:5: ++# BZ12701 %5LA:0X0P+0:0:-1: ++# BZ12701 %*5LA:0X0P+0:0:-1: ++# BZ12701 %5LA:0X8P-972:0:-1: ++# BZ12701 %*5LA:0X8P-972:0:-1: ++%5LA:0X2.3456789ABCDEF0123456789ABCP0123:1:5:0x1.18p1: ++%*5LA:0X2.3456789ABCDEF0123456789ABCP0123:0:5: ++%5LA:0X2.3456789ABCDEF0123456789ABCP+123:1:5:0x1.18p1: ++%*5LA:0X2.3456789ABCDEF0123456789ABCP+123:0:5: ++%5LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:5:0x1.fcp2: ++%*5LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:5: ++%5LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:5:0x1.fep3: ++%*5LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5: ++%5LA:INFINITY:0:-1: ++%*5LA:INFINITY:0:-1: ++%5LA:+NAN():0:-1: ++%*5LA:+NAN():0:-1: ++%5LA:+NAN(09A_Zaz):0:-1: ++%*5LA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5LA:+0X0P0:0:-1: ++# BZ12701 %*5LA:+0X0P0:0:-1: ++# BZ12701 %5LA:+0X0P+0:0:-1: ++# BZ12701 %*5LA:+0X0P+0:0:-1: ++# BZ12701 %5LA:+0X8P-972:0:-1: ++# BZ12701 %*5LA:+0X8P-972:0:-1: ++%5LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:5:0x1p1: ++%*5LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:5: ++%5LA:+0X2.3456789ABCDEF0123456789ABCP+123:1:5:0x1p1: ++%*5LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:5: ++%5LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:5:0x1.cp2: ++%*5LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:5: ++%5LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:5:0x1.ep3: ++%*5LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5: ++%5LA:+INFINITY:0:-1: ++%*5LA:+INFINITY:0:-1: ++%6LA::0:-1: ++%*6LA::0:-1: ++%6LA:-INFINITY:0:-1: ++%*6LA:-INFINITY:0:-1: ++%6LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:-0x1.fep3: ++%*6LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%6LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:-0x1.fcp2: ++%*6LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%6LA:-0X2.3456789ABCDEF0123456789ABCP+123:1:6:-0x1.18p1: ++%*6LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%6LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:6:-0x1.18p1: ++%*6LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++# BZ12701 %6LA:-0X8P-972:0:-1: ++# BZ12701 %*6LA:-0X8P-972:0:-1: ++# BZ12701 %6LA:-0X0P+0:0:-1: ++# BZ12701 %*6LA:-0X0P+0:0:-1: ++%6LA:-0X0P0:1:6:-0x0: ++%*6LA:-0X0P0:0:6: ++%6LA:-NAN(09A_Zaz):0:-1: ++%*6LA:-NAN(09A_Zaz):0:-1: ++%6LA:-NAN():1:6:-nan: ++%*6LA:-NAN():0:6: ++%6LA:NAN():1:5:nan: ++%*6LA:NAN():0:5: ++%6LA:NAN(09A_Zaz):0:-1: ++%*6LA:NAN(09A_Zaz):0:-1: ++%6LA:0X0P0:1:5:0x0: ++%*6LA:0X0P0:0:5: ++%6LA:0X0P+0:1:6:0x0: ++%*6LA:0X0P+0:0:6: ++%6LA:0X8P-972:1:6:0x1p-6: ++%*6LA:0X8P-972:0:6: ++%6LA:0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1.1ap1: ++%*6LA:0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++%6LA:0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1.1ap1: ++%*6LA:0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%6LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.ffcp2: ++%*6LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%6LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.ffep3: ++%*6LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%6LA:INFINITY:0:-1: ++%*6LA:INFINITY:0:-1: ++%6LA:+NAN():1:6:nan: ++%*6LA:+NAN():0:6: ++%6LA:+NAN(09A_Zaz):0:-1: ++%*6LA:+NAN(09A_Zaz):0:-1: ++%6LA:+0X0P0:1:6:0x0: ++%*6LA:+0X0P0:0:6: ++# BZ12701 %6LA:+0X0P+0:0:-1: ++# BZ12701 %*6LA:+0X0P+0:0:-1: ++# BZ12701 %6LA:+0X8P-972:0:-1: ++# BZ12701 %*6LA:+0X8P-972:0:-1: ++%6LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1.18p1: ++%*6LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++%6LA:+0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1.18p1: ++%*6LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%6LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.fcp2: ++%*6LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%6LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.fep3: ++%*6LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%6LA:+INFINITY:0:-1: ++%*6LA:+INFINITY:0:-1: ++%33LA::0:-1: ++%*33LA::0:-1: ++%33LA:-INFINITY:1:9:-inf: ++%*33LA:-INFINITY:0:9: ++# BZ12701 %33LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*33LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%33LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:33:-0x1.fffffffffffff7ffffffffffff8p3: ++%*33LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:33: ++# BZ12701 %33LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*33LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%33LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:33:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep1: ++%*33LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:33: ++%33LA:-0X8P-972:1:9:-0x1p-969: ++%*33LA:-0X8P-972:0:9: ++%33LA:-0X0P+0:1:7:-0x0: ++%*33LA:-0X0P+0:0:7: ++%33LA:-0X0P0:1:6:-0x0: ++%*33LA:-0X0P0:0:6: ++%33LA:-NAN(09A_Zaz):1:13:-nan: ++%*33LA:-NAN(09A_Zaz):0:13: ++%33LA:-NAN():1:6:-nan: ++%*33LA:-NAN():0:6: ++%33LA:NAN():1:5:nan: ++%*33LA:NAN():0:5: ++%33LA:NAN(09A_Zaz):1:12:nan: ++%*33LA:NAN(09A_Zaz):0:12: ++%33LA:0X0P0:1:5:0x0: ++%*33LA:0X0P0:0:5: ++%33LA:0X0P+0:1:6:0x0: ++%*33LA:0X0P+0:0:6: ++%33LA:0X8P-972:1:8:0x1p-969: ++%*33LA:0X8P-972:0:8: ++%33LA:0X2.3456789ABCDEF0123456789ABCP0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2: ++%*33LA:0X2.3456789ABCDEF0123456789ABCP0123:0:33: ++%33LA:0X2.3456789ABCDEF0123456789ABCP+123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2: ++%*33LA:0X2.3456789ABCDEF0123456789ABCP+123:0:33: ++%33LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:33:0x1.fffffffffffff7ffffffffffff8p12: ++%*33LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:33: ++%33LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:33:0x1.fffffffffffff7ffffffffffff8p4: ++%*33LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:33: ++%33LA:INFINITY:1:8:inf: ++%*33LA:INFINITY:0:8: ++%33LA:+NAN():1:6:nan: ++%*33LA:+NAN():0:6: ++%33LA:+NAN(09A_Zaz):1:13:nan: ++%*33LA:+NAN(09A_Zaz):0:13: ++%33LA:+0X0P0:1:6:0x0: ++%*33LA:+0X0P0:0:6: ++%33LA:+0X0P+0:1:7:0x0: ++%*33LA:+0X0P+0:0:7: ++%33LA:+0X8P-972:1:9:0x1p-969: ++%*33LA:+0X8P-972:0:9: ++%33LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep1: ++%*33LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:33: ++# BZ12701 %33LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*33LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%33LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:33:0x1.fffffffffffff7ffffffffffff8p3: ++%*33LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:33: ++# BZ12701 %33LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*33LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%33LA:+INFINITY:1:9:inf: ++%*33LA:+INFINITY:0:9: ++%50LA::0:-1: ++%*50LA::0:-1: ++%50LA:-INFINITY:1:9:-inf: ++%*50LA:-INFINITY:0:9: ++%50LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%50LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%50LA:-0X2.3456789ABCDEF0123456789ABCP+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%50LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%50LA:-0X8P-972:1:9:-0x1p-969: ++%*50LA:-0X8P-972:0:9: ++%50LA:-0X0P+0:1:7:-0x0: ++%*50LA:-0X0P+0:0:7: ++%50LA:-0X0P0:1:6:-0x0: ++%*50LA:-0X0P0:0:6: ++%50LA:-NAN(09A_Zaz):1:13:-nan: ++%*50LA:-NAN(09A_Zaz):0:13: ++%50LA:-NAN():1:6:-nan: ++%*50LA:-NAN():0:6: ++%50LA:NAN():1:5:nan: ++%*50LA:NAN():0:5: ++%50LA:NAN(09A_Zaz):1:12:nan: ++%*50LA:NAN(09A_Zaz):0:12: ++%50LA:0X0P0:1:5:0x0: ++%*50LA:0X0P0:0:5: ++%50LA:0X0P+0:1:6:0x0: ++%*50LA:0X0P+0:0:6: ++%50LA:0X8P-972:1:8:0x1p-969: ++%*50LA:0X8P-972:0:8: ++%50LA:0X2.3456789ABCDEF0123456789ABCP0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA:0X2.3456789ABCDEF0123456789ABCP0123:0:35: ++%50LA:0X2.3456789ABCDEF0123456789ABCP+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA:0X2.3456789ABCDEF0123456789ABCP+123:0:35: ++%50LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:35: ++%50LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36: ++%50LA:INFINITY:1:8:inf: ++%*50LA:INFINITY:0:8: ++%50LA:+NAN():1:6:nan: ++%*50LA:+NAN():0:6: ++%50LA:+NAN(09A_Zaz):1:13:nan: ++%*50LA:+NAN(09A_Zaz):0:13: ++%50LA:+0X0P0:1:6:0x0: ++%*50LA:+0X0P0:0:6: ++%50LA:+0X0P+0:1:7:0x0: ++%*50LA:+0X0P+0:0:7: ++%50LA:+0X8P-972:1:9:0x1p-969: ++%*50LA:+0X8P-972:0:9: ++%50LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%50LA:+0X2.3456789ABCDEF0123456789ABCP+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%50LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%50LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%50LA:+INFINITY:1:9:inf: ++%*50LA:+INFINITY:0:9: ++%5LA: :0:-1: ++%*5LA: :0:-1: ++%5LA: -INFINITY:0:-1: ++%*5LA: -INFINITY:0:-1: ++%5LA: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:-0x1.ep3: ++%*5LA: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%5LA: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:-0x1.cp2: ++%*5LA: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%5LA: -0X2.3456789ABCDEF0123456789ABCP+123:1:6:-0x1p1: ++%*5LA: -0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%5LA: -0X2.3456789ABCDEF0123456789ABCP0123:1:6:-0x1p1: ++%*5LA: -0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++# BZ12701 %5LA: -0X8P-972:0:-1: ++# BZ12701 %*5LA: -0X8P-972:0:-1: ++# BZ12701 %5LA: -0X0P+0:0:-1: ++# BZ12701 %*5LA: -0X0P+0:0:-1: ++# BZ12701 %5LA: -0X0P0:0:-1: ++# BZ12701 %*5LA: -0X0P0:0:-1: ++%5LA: -NAN(09A_Zaz):0:-1: ++%*5LA: -NAN(09A_Zaz):0:-1: ++%5LA: -NAN():0:-1: ++%*5LA: -NAN():0:-1: ++%5LA: NAN():1:6:nan: ++%*5LA: NAN():0:6: ++%5LA: NAN(09A_Zaz):0:-1: ++%*5LA: NAN(09A_Zaz):0:-1: ++%5LA: 0X0P0:1:6:0x0: ++%*5LA: 0X0P0:0:6: ++# BZ12701 %5LA: 0X0P+0:0:-1: ++# BZ12701 %*5LA: 0X0P+0:0:-1: ++# BZ12701 %5LA: 0X8P-972:0:-1: ++# BZ12701 %*5LA: 0X8P-972:0:-1: ++%5LA: 0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1.18p1: ++%*5LA: 0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++%5LA: 0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1.18p1: ++%*5LA: 0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%5LA: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.fcp2: ++%*5LA: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%5LA: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.fep3: ++%*5LA: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%5LA: INFINITY:0:-1: ++%*5LA: INFINITY:0:-1: ++%5LA: +NAN():0:-1: ++%*5LA: +NAN():0:-1: ++%5LA: +NAN(09A_Zaz):0:-1: ++%*5LA: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5LA: +0X0P0:0:-1: ++# BZ12701 %*5LA: +0X0P0:0:-1: ++# BZ12701 %5LA: +0X0P+0:0:-1: ++# BZ12701 %*5LA: +0X0P+0:0:-1: ++# BZ12701 %5LA: +0X8P-972:0:-1: ++# BZ12701 %*5LA: +0X8P-972:0:-1: ++%5LA: +0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1p1: ++%*5LA: +0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++%5LA: +0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1p1: ++%*5LA: +0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%5LA: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.cp2: ++%*5LA: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%5LA: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.ep3: ++%*5LA: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%5LA: +INFINITY:0:-1: ++%*5LA: +INFINITY:0:-1: ++%50LA: :0:-1: ++%*50LA: :0:-1: ++%50LA: -INFINITY:1:10:-inf: ++%*50LA: -INFINITY:0:10: ++%50LA: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:38:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:38: ++%50LA: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:37: ++%50LA: -0X2.3456789ABCDEF0123456789ABCP+123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA: -0X2.3456789ABCDEF0123456789ABCP+123:0:37: ++%50LA: -0X2.3456789ABCDEF0123456789ABCP0123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA: -0X2.3456789ABCDEF0123456789ABCP0123:0:37: ++%50LA: -0X8P-972:1:10:-0x1p-969: ++%*50LA: -0X8P-972:0:10: ++%50LA: -0X0P+0:1:8:-0x0: ++%*50LA: -0X0P+0:0:8: ++%50LA: -0X0P0:1:7:-0x0: ++%*50LA: -0X0P0:0:7: ++%50LA: -NAN(09A_Zaz):1:14:-nan: ++%*50LA: -NAN(09A_Zaz):0:14: ++%50LA: -NAN():1:7:-nan: ++%*50LA: -NAN():0:7: ++%50LA: NAN():1:6:nan: ++%*50LA: NAN():0:6: ++%50LA: NAN(09A_Zaz):1:13:nan: ++%*50LA: NAN(09A_Zaz):0:13: ++%50LA: 0X0P0:1:6:0x0: ++%*50LA: 0X0P0:0:6: ++%50LA: 0X0P+0:1:7:0x0: ++%*50LA: 0X0P+0:0:7: ++%50LA: 0X8P-972:1:9:0x1p-969: ++%*50LA: 0X8P-972:0:9: ++%50LA: 0X2.3456789ABCDEF0123456789ABCP0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA: 0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%50LA: 0X2.3456789ABCDEF0123456789ABCP+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA: 0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%50LA: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%50LA: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%50LA: INFINITY:1:9:inf: ++%*50LA: INFINITY:0:9: ++%50LA: +NAN():1:7:nan: ++%*50LA: +NAN():0:7: ++%50LA: +NAN(09A_Zaz):1:14:nan: ++%*50LA: +NAN(09A_Zaz):0:14: ++%50LA: +0X0P0:1:7:0x0: ++%*50LA: +0X0P0:0:7: ++%50LA: +0X0P+0:1:8:0x0: ++%*50LA: +0X0P+0:0:8: ++%50LA: +0X8P-972:1:10:0x1p-969: ++%*50LA: +0X8P-972:0:10: ++%50LA: +0X2.3456789ABCDEF0123456789ABCP0123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA: +0X2.3456789ABCDEF0123456789ABCP0123:0:37: ++%50LA: +0X2.3456789ABCDEF0123456789ABCP+123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA: +0X2.3456789ABCDEF0123456789ABCP+123:0:37: ++%50LA: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:37: ++%50LA: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:38:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:38: ++%50LA: +INFINITY:1:10:inf: ++%*50LA: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-e.input +new file mode 100644 +index 0000000000000000..f61b0d0fd382c113 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-e.input +@@ -0,0 +1,558 @@ ++%Le::0:-1: ++%*Le::0:-1: ++%Le:-infinity:1:9:-inf: ++%*Le:-infinity:0:9: ++%Le:-1.79769313486231580793728971405301199e+308:1:43:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*Le:-1.79769313486231580793728971405301199e+308:0:43: ++%Le:-1.79769313486231580793728971405301199e308:1:42:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*Le:-1.79769313486231580793728971405301199e308:0:42: ++%Le:-2.3441674165664647186659237648155017216e+37:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Le:-2.3441674165664647186659237648155017216e+37:0:44: ++%Le:-2.3441674165664647186659237648155017216e037:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Le:-2.3441674165664647186659237648155017216e037:0:44: ++%Le:-2.00416836000897277799610805135016205e-292:1:43:-0x1p-969: ++%*Le:-2.00416836000897277799610805135016205e-292:0:43: ++%Le:-0e+0:1:5:-0x0: ++%*Le:-0e+0:0:5: ++%Le:-0e0:1:4:-0x0: ++%*Le:-0e0:0:4: ++%Le:-nan(09A_Zaz):1:13:-nan: ++%*Le:-nan(09A_Zaz):0:13: ++%Le:-nan():1:6:-nan: ++%*Le:-nan():0:6: ++%Le:nan():1:5:nan: ++%*Le:nan():0:5: ++%Le:nan(09A_Zaz):1:12:nan: ++%*Le:nan(09A_Zaz):0:12: ++%Le:0e0:1:3:0x0: ++%*Le:0e0:0:3: ++%Le:0e+0:1:4:0x0: ++%*Le:0e+0:0:4: ++%Le:2.00416836000897277799610805135016205e-292:1:42:0x1p-969: ++%*Le:2.00416836000897277799610805135016205e-292:0:42: ++%Le:2.3441674165664647186659237648155017216e037:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Le:2.3441674165664647186659237648155017216e037:0:43: ++%Le:2.3441674165664647186659237648155017216e+37:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Le:2.3441674165664647186659237648155017216e+37:0:43: ++%Le:1.79769313486231580793728971405301199e308:1:41:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Le:1.79769313486231580793728971405301199e308:0:41: ++%Le:1.79769313486231580793728971405301199e+308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Le:1.79769313486231580793728971405301199e+308:0:42: ++%Le:infinity:1:8:inf: ++%*Le:infinity:0:8: ++%Le:+nan():1:6:nan: ++%*Le:+nan():0:6: ++%Le:+nan(09A_Zaz):1:13:nan: ++%*Le:+nan(09A_Zaz):0:13: ++%Le:+0e0:1:4:0x0: ++%*Le:+0e0:0:4: ++%Le:+0e+0:1:5:0x0: ++%*Le:+0e+0:0:5: ++%Le:+2.00416836000897277799610805135016205e-292:1:43:0x1p-969: ++%*Le:+2.00416836000897277799610805135016205e-292:0:43: ++%Le:+2.3441674165664647186659237648155017216e037:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Le:+2.3441674165664647186659237648155017216e037:0:44: ++%Le:+2.3441674165664647186659237648155017216e+37:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Le:+2.3441674165664647186659237648155017216e+37:0:44: ++%Le:+1.79769313486231580793728971405301199e308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Le:+1.79769313486231580793728971405301199e308:0:42: ++%Le:+1.79769313486231580793728971405301199e+308:1:43:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Le:+1.79769313486231580793728971405301199e+308:0:43: ++%Le:+infinity:1:9:inf: ++%*Le:+infinity:0:9: ++%1Le::0:-1: ++%*1Le::0:-1: ++%1Le:-infinity:0:-1: ++%*1Le:-infinity:0:-1: ++%1Le:-1.79769313486231580793728971405301199e+308:0:-1: ++%*1Le:-1.79769313486231580793728971405301199e+308:0:-1: ++%1Le:-1.79769313486231580793728971405301199e308:0:-1: ++%*1Le:-1.79769313486231580793728971405301199e308:0:-1: ++%1Le:-2.3441674165664647186659237648155017216e+37:0:-1: ++%*1Le:-2.3441674165664647186659237648155017216e+37:0:-1: ++%1Le:-2.3441674165664647186659237648155017216e037:0:-1: ++%*1Le:-2.3441674165664647186659237648155017216e037:0:-1: ++%1Le:-2.00416836000897277799610805135016205e-292:0:-1: ++%*1Le:-2.00416836000897277799610805135016205e-292:0:-1: ++%1Le:-0e+0:0:-1: ++%*1Le:-0e+0:0:-1: ++%1Le:-0e0:0:-1: ++%*1Le:-0e0:0:-1: ++%1Le:-nan(09A_Zaz):0:-1: ++%*1Le:-nan(09A_Zaz):0:-1: ++%1Le:-nan():0:-1: ++%*1Le:-nan():0:-1: ++%1Le:nan():0:-1: ++%*1Le:nan():0:-1: ++%1Le:nan(09A_Zaz):0:-1: ++%*1Le:nan(09A_Zaz):0:-1: ++%1Le:0e0:1:1:0x0: ++%*1Le:0e0:0:1: ++%1Le:0e+0:1:1:0x0: ++%*1Le:0e+0:0:1: ++%1Le:2.00416836000897277799610805135016205e-292:1:1:0x1p1: ++%*1Le:2.00416836000897277799610805135016205e-292:0:1: ++%1Le:2.3441674165664647186659237648155017216e037:1:1:0x1p1: ++%*1Le:2.3441674165664647186659237648155017216e037:0:1: ++%1Le:2.3441674165664647186659237648155017216e+37:1:1:0x1p1: ++%*1Le:2.3441674165664647186659237648155017216e+37:0:1: ++%1Le:1.79769313486231580793728971405301199e308:1:1:0x1: ++%*1Le:1.79769313486231580793728971405301199e308:0:1: ++%1Le:1.79769313486231580793728971405301199e+308:1:1:0x1: ++%*1Le:1.79769313486231580793728971405301199e+308:0:1: ++%1Le:infinity:0:-1: ++%*1Le:infinity:0:-1: ++%1Le:+nan():0:-1: ++%*1Le:+nan():0:-1: ++%1Le:+nan(09A_Zaz):0:-1: ++%*1Le:+nan(09A_Zaz):0:-1: ++%1Le:+0e0:0:-1: ++%*1Le:+0e0:0:-1: ++%1Le:+0e+0:0:-1: ++%*1Le:+0e+0:0:-1: ++%1Le:+2.00416836000897277799610805135016205e-292:0:-1: ++%*1Le:+2.00416836000897277799610805135016205e-292:0:-1: ++%1Le:+2.3441674165664647186659237648155017216e037:0:-1: ++%*1Le:+2.3441674165664647186659237648155017216e037:0:-1: ++%1Le:+2.3441674165664647186659237648155017216e+37:0:-1: ++%*1Le:+2.3441674165664647186659237648155017216e+37:0:-1: ++%1Le:+1.79769313486231580793728971405301199e308:0:-1: ++%*1Le:+1.79769313486231580793728971405301199e308:0:-1: ++%1Le:+1.79769313486231580793728971405301199e+308:0:-1: ++%*1Le:+1.79769313486231580793728971405301199e+308:0:-1: ++%1Le:+infinity:0:-1: ++%*1Le:+infinity:0:-1: ++%2Le::0:-1: ++%*2Le::0:-1: ++%2Le:-infinity:0:-1: ++%*2Le:-infinity:0:-1: ++%2Le:-1.79769313486231580793728971405301199e+308:1:2:-0x1: ++%*2Le:-1.79769313486231580793728971405301199e+308:0:2: ++%2Le:-1.79769313486231580793728971405301199e308:1:2:-0x1: ++%*2Le:-1.79769313486231580793728971405301199e308:0:2: ++%2Le:-2.3441674165664647186659237648155017216e+37:1:2:-0x1p1: ++%*2Le:-2.3441674165664647186659237648155017216e+37:0:2: ++%2Le:-2.3441674165664647186659237648155017216e037:1:2:-0x1p1: ++%*2Le:-2.3441674165664647186659237648155017216e037:0:2: ++%2Le:-2.00416836000897277799610805135016205e-292:1:2:-0x1p1: ++%*2Le:-2.00416836000897277799610805135016205e-292:0:2: ++%2Le:-0e+0:1:2:-0x0: ++%*2Le:-0e+0:0:2: ++%2Le:-0e0:1:2:-0x0: ++%*2Le:-0e0:0:2: ++%2Le:-nan(09A_Zaz):0:-1: ++%*2Le:-nan(09A_Zaz):0:-1: ++%2Le:-nan():0:-1: ++%*2Le:-nan():0:-1: ++%2Le:nan():0:-1: ++%*2Le:nan():0:-1: ++%2Le:nan(09A_Zaz):0:-1: ++%*2Le:nan(09A_Zaz):0:-1: ++# BZ12701 %2Le:0e0:0:-1: ++# BZ12701 %*2Le:0e0:0:-1: ++# BZ12701 %2Le:0e+0:0:-1: ++# BZ12701 %*2Le:0e+0:0:-1: ++%2Le:2.00416836000897277799610805135016205e-292:1:2:0x1p1: ++%*2Le:2.00416836000897277799610805135016205e-292:0:2: ++%2Le:2.3441674165664647186659237648155017216e037:1:2:0x1p1: ++%*2Le:2.3441674165664647186659237648155017216e037:0:2: ++%2Le:2.3441674165664647186659237648155017216e+37:1:2:0x1p1: ++%*2Le:2.3441674165664647186659237648155017216e+37:0:2: ++%2Le:1.79769313486231580793728971405301199e308:1:2:0x1: ++%*2Le:1.79769313486231580793728971405301199e308:0:2: ++%2Le:1.79769313486231580793728971405301199e+308:1:2:0x1: ++%*2Le:1.79769313486231580793728971405301199e+308:0:2: ++%2Le:infinity:0:-1: ++%*2Le:infinity:0:-1: ++%2Le:+nan():0:-1: ++%*2Le:+nan():0:-1: ++%2Le:+nan(09A_Zaz):0:-1: ++%*2Le:+nan(09A_Zaz):0:-1: ++%2Le:+0e0:1:2:0x0: ++%*2Le:+0e0:0:2: ++%2Le:+0e+0:1:2:0x0: ++%*2Le:+0e+0:0:2: ++%2Le:+2.00416836000897277799610805135016205e-292:1:2:0x1p1: ++%*2Le:+2.00416836000897277799610805135016205e-292:0:2: ++%2Le:+2.3441674165664647186659237648155017216e037:1:2:0x1p1: ++%*2Le:+2.3441674165664647186659237648155017216e037:0:2: ++%2Le:+2.3441674165664647186659237648155017216e+37:1:2:0x1p1: ++%*2Le:+2.3441674165664647186659237648155017216e+37:0:2: ++%2Le:+1.79769313486231580793728971405301199e308:1:2:0x1: ++%*2Le:+1.79769313486231580793728971405301199e308:0:2: ++%2Le:+1.79769313486231580793728971405301199e+308:1:2:0x1: ++%*2Le:+1.79769313486231580793728971405301199e+308:0:2: ++%2Le:+infinity:0:-1: ++%*2Le:+infinity:0:-1: ++%3Le::0:-1: ++%*3Le::0:-1: ++%3Le:-infinity:0:-1: ++%*3Le:-infinity:0:-1: ++%3Le:-1.79769313486231580793728971405301199e+308:1:3:-0x1: ++%*3Le:-1.79769313486231580793728971405301199e+308:0:3: ++%3Le:-1.79769313486231580793728971405301199e308:1:3:-0x1: ++%*3Le:-1.79769313486231580793728971405301199e308:0:3: ++%3Le:-2.3441674165664647186659237648155017216e+37:1:3:-0x1p1: ++%*3Le:-2.3441674165664647186659237648155017216e+37:0:3: ++%3Le:-2.3441674165664647186659237648155017216e037:1:3:-0x1p1: ++%*3Le:-2.3441674165664647186659237648155017216e037:0:3: ++%3Le:-2.00416836000897277799610805135016205e-292:1:3:-0x1p1: ++%*3Le:-2.00416836000897277799610805135016205e-292:0:3: ++# BZ12701 %3Le:-0e+0:0:-1: ++# BZ12701 %*3Le:-0e+0:0:-1: ++# BZ12701 %3Le:-0e0:0:-1: ++# BZ12701 %*3Le:-0e0:0:-1: ++%3Le:-nan(09A_Zaz):0:-1: ++%*3Le:-nan(09A_Zaz):0:-1: ++%3Le:-nan():0:-1: ++%*3Le:-nan():0:-1: ++%3Le:nan():1:3:nan: ++%*3Le:nan():0:3: ++%3Le:nan(09A_Zaz):1:3:nan: ++%*3Le:nan(09A_Zaz):0:3: ++%3Le:0e0:1:3:0x0: ++%*3Le:0e0:0:3: ++# BZ12701 %3Le:0e+0:0:-1: ++# BZ12701 %*3Le:0e+0:0:-1: ++%3Le:2.00416836000897277799610805135016205e-292:1:3:0x1p1: ++%*3Le:2.00416836000897277799610805135016205e-292:0:3: ++%3Le:2.3441674165664647186659237648155017216e037:1:3:0x1.266666666666666666666666668p1: ++%*3Le:2.3441674165664647186659237648155017216e037:0:3: ++%3Le:2.3441674165664647186659237648155017216e+37:1:3:0x1.266666666666666666666666668p1: ++%*3Le:2.3441674165664647186659237648155017216e+37:0:3: ++%3Le:1.79769313486231580793728971405301199e308:1:3:0x1.b3333333333333333333333333: ++%*3Le:1.79769313486231580793728971405301199e308:0:3: ++%3Le:1.79769313486231580793728971405301199e+308:1:3:0x1.b3333333333333333333333333: ++%*3Le:1.79769313486231580793728971405301199e+308:0:3: ++%3Le:infinity:1:3:inf: ++%*3Le:infinity:0:3: ++%3Le:+nan():0:-1: ++%*3Le:+nan():0:-1: ++%3Le:+nan(09A_Zaz):0:-1: ++%*3Le:+nan(09A_Zaz):0:-1: ++# BZ12701 %3Le:+0e0:0:-1: ++# BZ12701 %*3Le:+0e0:0:-1: ++# BZ12701 %3Le:+0e+0:0:-1: ++# BZ12701 %*3Le:+0e+0:0:-1: ++%3Le:+2.00416836000897277799610805135016205e-292:1:3:0x1p1: ++%*3Le:+2.00416836000897277799610805135016205e-292:0:3: ++%3Le:+2.3441674165664647186659237648155017216e037:1:3:0x1p1: ++%*3Le:+2.3441674165664647186659237648155017216e037:0:3: ++%3Le:+2.3441674165664647186659237648155017216e+37:1:3:0x1p1: ++%*3Le:+2.3441674165664647186659237648155017216e+37:0:3: ++%3Le:+1.79769313486231580793728971405301199e308:1:3:0x1: ++%*3Le:+1.79769313486231580793728971405301199e308:0:3: ++%3Le:+1.79769313486231580793728971405301199e+308:1:3:0x1: ++%*3Le:+1.79769313486231580793728971405301199e+308:0:3: ++%3Le:+infinity:0:-1: ++%*3Le:+infinity:0:-1: ++%4Le::0:-1: ++%*4Le::0:-1: ++%4Le:-infinity:1:4:-inf: ++%*4Le:-infinity:0:4: ++%4Le:-1.79769313486231580793728971405301199e+308:1:4:-0x1.b3333333333333333333333333: ++%*4Le:-1.79769313486231580793728971405301199e+308:0:4: ++%4Le:-1.79769313486231580793728971405301199e308:1:4:-0x1.b3333333333333333333333333: ++%*4Le:-1.79769313486231580793728971405301199e308:0:4: ++%4Le:-2.3441674165664647186659237648155017216e+37:1:4:-0x1.266666666666666666666666668p1: ++%*4Le:-2.3441674165664647186659237648155017216e+37:0:4: ++%4Le:-2.3441674165664647186659237648155017216e037:1:4:-0x1.266666666666666666666666668p1: ++%*4Le:-2.3441674165664647186659237648155017216e037:0:4: ++%4Le:-2.00416836000897277799610805135016205e-292:1:4:-0x1p1: ++%*4Le:-2.00416836000897277799610805135016205e-292:0:4: ++# BZ12701 %4Le:-0e+0:0:-1: ++# BZ12701 %*4Le:-0e+0:0:-1: ++%4Le:-0e0:1:4:-0x0: ++%*4Le:-0e0:0:4: ++%4Le:-nan(09A_Zaz):1:4:-nan: ++%*4Le:-nan(09A_Zaz):0:4: ++%4Le:-nan():1:4:-nan: ++%*4Le:-nan():0:4: ++%4Le:nan():0:-1: ++%*4Le:nan():0:-1: ++%4Le:nan(09A_Zaz):0:-1: ++%*4Le:nan(09A_Zaz):0:-1: ++%4Le:0e0:1:3:0x0: ++%*4Le:0e0:0:3: ++%4Le:0e+0:1:4:0x0: ++%*4Le:0e+0:0:4: ++%4Le:2.00416836000897277799610805135016205e-292:1:4:0x1p1: ++%*4Le:2.00416836000897277799610805135016205e-292:0:4: ++%4Le:2.3441674165664647186659237648155017216e037:1:4:0x1.2b851eb851eb851eb851eb851e8p1: ++%*4Le:2.3441674165664647186659237648155017216e037:0:4: ++%4Le:2.3441674165664647186659237648155017216e+37:1:4:0x1.2b851eb851eb851eb851eb851e8p1: ++%*4Le:2.3441674165664647186659237648155017216e+37:0:4: ++%4Le:1.79769313486231580793728971405301199e308:1:4:0x1.ca3d70a3d70a3d70a3d70a3d708: ++%*4Le:1.79769313486231580793728971405301199e308:0:4: ++%4Le:1.79769313486231580793728971405301199e+308:1:4:0x1.ca3d70a3d70a3d70a3d70a3d708: ++%*4Le:1.79769313486231580793728971405301199e+308:0:4: ++%4Le:infinity:0:-1: ++%*4Le:infinity:0:-1: ++%4Le:+nan():1:4:nan: ++%*4Le:+nan():0:4: ++%4Le:+nan(09A_Zaz):1:4:nan: ++%*4Le:+nan(09A_Zaz):0:4: ++%4Le:+0e0:1:4:0x0: ++%*4Le:+0e0:0:4: ++# BZ12701 %4Le:+0e+0:0:-1: ++# BZ12701 %*4Le:+0e+0:0:-1: ++%4Le:+2.00416836000897277799610805135016205e-292:1:4:0x1p1: ++%*4Le:+2.00416836000897277799610805135016205e-292:0:4: ++%4Le:+2.3441674165664647186659237648155017216e037:1:4:0x1.266666666666666666666666668p1: ++%*4Le:+2.3441674165664647186659237648155017216e037:0:4: ++%4Le:+2.3441674165664647186659237648155017216e+37:1:4:0x1.266666666666666666666666668p1: ++%*4Le:+2.3441674165664647186659237648155017216e+37:0:4: ++%4Le:+1.79769313486231580793728971405301199e308:1:4:0x1.b3333333333333333333333333: ++%*4Le:+1.79769313486231580793728971405301199e308:0:4: ++%4Le:+1.79769313486231580793728971405301199e+308:1:4:0x1.b3333333333333333333333333: ++%*4Le:+1.79769313486231580793728971405301199e+308:0:4: ++%4Le:+infinity:1:4:inf: ++%*4Le:+infinity:0:4: ++%40Le::0:-1: ++%*40Le::0:-1: ++%40Le:-infinity:1:9:-inf: ++%*40Le:-infinity:0:9: ++# BZ12701 %40Le:-1.79769313486231580793728971405301199e+308:0:-1: ++# BZ12701 %*40Le:-1.79769313486231580793728971405301199e+308:0:-1: ++%40Le:-1.79769313486231580793728971405301199e308:1:40:-0x1.c16c5c5253574972b4c4520a9f8p10: ++%*40Le:-1.79769313486231580793728971405301199e308:0:40: ++%40Le:-2.3441674165664647186659237648155017216e+37:1:40:-0x1.2c0dad8b403a263b1b54af6b6f8p1: ++%*40Le:-2.3441674165664647186659237648155017216e+37:0:40: ++%40Le:-2.3441674165664647186659237648155017216e037:1:40:-0x1.2c0dad8b403a263b1b54af6b6f8p1: ++%*40Le:-2.3441674165664647186659237648155017216e037:0:40: ++# BZ12701 %40Le:-2.00416836000897277799610805135016205e-292:0:-1: ++# BZ12701 %*40Le:-2.00416836000897277799610805135016205e-292:0:-1: ++%40Le:-0e+0:1:5:-0x0: ++%*40Le:-0e+0:0:5: ++%40Le:-0e0:1:4:-0x0: ++%*40Le:-0e0:0:4: ++%40Le:-nan(09A_Zaz):1:13:-nan: ++%*40Le:-nan(09A_Zaz):0:13: ++%40Le:-nan():1:6:-nan: ++%*40Le:-nan():0:6: ++%40Le:nan():1:5:nan: ++%*40Le:nan():0:5: ++%40Le:nan(09A_Zaz):1:12:nan: ++%*40Le:nan(09A_Zaz):0:12: ++%40Le:0e0:1:3:0x0: ++%*40Le:0e0:0:3: ++%40Le:0e+0:1:4:0x0: ++%*40Le:0e+0:0:4: ++%40Le:2.00416836000897277799610805135016205e-292:1:40:0x1.485ce9e7a065ea4b747cf9516fp-6: ++%*40Le:2.00416836000897277799610805135016205e-292:0:40: ++# BZ12701 %40Le:2.3441674165664647186659237648155017216e037:0:-1: ++# BZ12701 %*40Le:2.3441674165664647186659237648155017216e037:0:-1: ++# BZ12701 %40Le:2.3441674165664647186659237648155017216e+37:0:-1: ++# BZ12701 %*40Le:2.3441674165664647186659237648155017216e+37:0:-1: ++%40Le:1.79769313486231580793728971405301199e308:1:40:0x1.6b0a8e891ffff0af2d6def985p100: ++%*40Le:1.79769313486231580793728971405301199e308:0:40: ++%40Le:1.79769313486231580793728971405301199e+308:1:40:0x1.c16c5c5253574972b4c4520a9f8p10: ++%*40Le:1.79769313486231580793728971405301199e+308:0:40: ++%40Le:infinity:1:8:inf: ++%*40Le:infinity:0:8: ++%40Le:+nan():1:6:nan: ++%*40Le:+nan():0:6: ++%40Le:+nan(09A_Zaz):1:13:nan: ++%*40Le:+nan(09A_Zaz):0:13: ++%40Le:+0e0:1:4:0x0: ++%*40Le:+0e0:0:4: ++%40Le:+0e+0:1:5:0x0: ++%*40Le:+0e+0:0:5: ++# BZ12701 %40Le:+2.00416836000897277799610805135016205e-292:0:-1: ++# BZ12701 %*40Le:+2.00416836000897277799610805135016205e-292:0:-1: ++%40Le:+2.3441674165664647186659237648155017216e037:1:40:0x1.2c0dad8b403a263b1b54af6b6f8p1: ++%*40Le:+2.3441674165664647186659237648155017216e037:0:40: ++%40Le:+2.3441674165664647186659237648155017216e+37:1:40:0x1.2c0dad8b403a263b1b54af6b6f8p1: ++%*40Le:+2.3441674165664647186659237648155017216e+37:0:40: ++%40Le:+1.79769313486231580793728971405301199e308:1:40:0x1.c16c5c5253574972b4c4520a9f8p10: ++%*40Le:+1.79769313486231580793728971405301199e308:0:40: ++# BZ12701 %40Le:+1.79769313486231580793728971405301199e+308:0:-1: ++# BZ12701 %*40Le:+1.79769313486231580793728971405301199e+308:0:-1: ++%40Le:+infinity:1:9:inf: ++%*40Le:+infinity:0:9: ++%48Le::0:-1: ++%*48Le::0:-1: ++%48Le:-infinity:1:9:-inf: ++%*48Le:-infinity:0:9: ++%48Le:-1.79769313486231580793728971405301199e+308:1:43:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le:-1.79769313486231580793728971405301199e+308:0:43: ++%48Le:-1.79769313486231580793728971405301199e308:1:42:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le:-1.79769313486231580793728971405301199e308:0:42: ++%48Le:-2.3441674165664647186659237648155017216e+37:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le:-2.3441674165664647186659237648155017216e+37:0:44: ++%48Le:-2.3441674165664647186659237648155017216e037:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le:-2.3441674165664647186659237648155017216e037:0:44: ++%48Le:-2.00416836000897277799610805135016205e-292:1:43:-0x1p-969: ++%*48Le:-2.00416836000897277799610805135016205e-292:0:43: ++%48Le:-0e+0:1:5:-0x0: ++%*48Le:-0e+0:0:5: ++%48Le:-0e0:1:4:-0x0: ++%*48Le:-0e0:0:4: ++%48Le:-nan(09A_Zaz):1:13:-nan: ++%*48Le:-nan(09A_Zaz):0:13: ++%48Le:-nan():1:6:-nan: ++%*48Le:-nan():0:6: ++%48Le:nan():1:5:nan: ++%*48Le:nan():0:5: ++%48Le:nan(09A_Zaz):1:12:nan: ++%*48Le:nan(09A_Zaz):0:12: ++%48Le:0e0:1:3:0x0: ++%*48Le:0e0:0:3: ++%48Le:0e+0:1:4:0x0: ++%*48Le:0e+0:0:4: ++%48Le:2.00416836000897277799610805135016205e-292:1:42:0x1p-969: ++%*48Le:2.00416836000897277799610805135016205e-292:0:42: ++%48Le:2.3441674165664647186659237648155017216e037:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le:2.3441674165664647186659237648155017216e037:0:43: ++%48Le:2.3441674165664647186659237648155017216e+37:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le:2.3441674165664647186659237648155017216e+37:0:43: ++%48Le:1.79769313486231580793728971405301199e308:1:41:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le:1.79769313486231580793728971405301199e308:0:41: ++%48Le:1.79769313486231580793728971405301199e+308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le:1.79769313486231580793728971405301199e+308:0:42: ++%48Le:infinity:1:8:inf: ++%*48Le:infinity:0:8: ++%48Le:+nan():1:6:nan: ++%*48Le:+nan():0:6: ++%48Le:+nan(09A_Zaz):1:13:nan: ++%*48Le:+nan(09A_Zaz):0:13: ++%48Le:+0e0:1:4:0x0: ++%*48Le:+0e0:0:4: ++%48Le:+0e+0:1:5:0x0: ++%*48Le:+0e+0:0:5: ++%48Le:+2.00416836000897277799610805135016205e-292:1:43:0x1p-969: ++%*48Le:+2.00416836000897277799610805135016205e-292:0:43: ++%48Le:+2.3441674165664647186659237648155017216e037:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le:+2.3441674165664647186659237648155017216e037:0:44: ++%48Le:+2.3441674165664647186659237648155017216e+37:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le:+2.3441674165664647186659237648155017216e+37:0:44: ++%48Le:+1.79769313486231580793728971405301199e308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le:+1.79769313486231580793728971405301199e308:0:42: ++%48Le:+1.79769313486231580793728971405301199e+308:1:43:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le:+1.79769313486231580793728971405301199e+308:0:43: ++%48Le:+infinity:1:9:inf: ++%*48Le:+infinity:0:9: ++%3Le: :0:-1: ++%*3Le: :0:-1: ++%3Le: -infinity:0:-1: ++%*3Le: -infinity:0:-1: ++%3Le: -1.79769313486231580793728971405301199e+308:1:4:-0x1: ++%*3Le: -1.79769313486231580793728971405301199e+308:0:4: ++%3Le: -1.79769313486231580793728971405301199e308:1:4:-0x1: ++%*3Le: -1.79769313486231580793728971405301199e308:0:4: ++%3Le: -2.3441674165664647186659237648155017216e+37:1:4:-0x1p1: ++%*3Le: -2.3441674165664647186659237648155017216e+37:0:4: ++%3Le: -2.3441674165664647186659237648155017216e037:1:4:-0x1p1: ++%*3Le: -2.3441674165664647186659237648155017216e037:0:4: ++%3Le: -2.00416836000897277799610805135016205e-292:1:4:-0x1p1: ++%*3Le: -2.00416836000897277799610805135016205e-292:0:4: ++# BZ12701 %3Le: -0e+0:0:-1: ++# BZ12701 %*3Le: -0e+0:0:-1: ++# BZ12701 %3Le: -0e0:0:-1: ++# BZ12701 %*3Le: -0e0:0:-1: ++%3Le: -nan(09A_Zaz):0:-1: ++%*3Le: -nan(09A_Zaz):0:-1: ++%3Le: -nan():0:-1: ++%*3Le: -nan():0:-1: ++%3Le: nan():1:4:nan: ++%*3Le: nan():0:4: ++%3Le: nan(09A_Zaz):1:4:nan: ++%*3Le: nan(09A_Zaz):0:4: ++%3Le: 0e0:1:4:0x0: ++%*3Le: 0e0:0:4: ++# BZ12701 %3Le: 0e+0:0:-1: ++# BZ12701 %*3Le: 0e+0:0:-1: ++%3Le: 2.00416836000897277799610805135016205e-292:1:4:0x1p1: ++%*3Le: 2.00416836000897277799610805135016205e-292:0:4: ++%3Le: 2.3441674165664647186659237648155017216e037:1:4:0x1.266666666666666666666666668p1: ++%*3Le: 2.3441674165664647186659237648155017216e037:0:4: ++%3Le: 2.3441674165664647186659237648155017216e+37:1:4:0x1.266666666666666666666666668p1: ++%*3Le: 2.3441674165664647186659237648155017216e+37:0:4: ++%3Le: 1.79769313486231580793728971405301199e308:1:4:0x1.b3333333333333333333333333: ++%*3Le: 1.79769313486231580793728971405301199e308:0:4: ++%3Le: 1.79769313486231580793728971405301199e+308:1:4:0x1.b3333333333333333333333333: ++%*3Le: 1.79769313486231580793728971405301199e+308:0:4: ++%3Le: infinity:1:4:inf: ++%*3Le: infinity:0:4: ++%3Le: +nan():0:-1: ++%*3Le: +nan():0:-1: ++%3Le: +nan(09A_Zaz):0:-1: ++%*3Le: +nan(09A_Zaz):0:-1: ++# BZ12701 %3Le: +0e0:0:-1: ++# BZ12701 %*3Le: +0e0:0:-1: ++# BZ12701 %3Le: +0e+0:0:-1: ++# BZ12701 %*3Le: +0e+0:0:-1: ++%3Le: +2.00416836000897277799610805135016205e-292:1:4:0x1p1: ++%*3Le: +2.00416836000897277799610805135016205e-292:0:4: ++%3Le: +2.3441674165664647186659237648155017216e037:1:4:0x1p1: ++%*3Le: +2.3441674165664647186659237648155017216e037:0:4: ++%3Le: +2.3441674165664647186659237648155017216e+37:1:4:0x1p1: ++%*3Le: +2.3441674165664647186659237648155017216e+37:0:4: ++%3Le: +1.79769313486231580793728971405301199e308:1:4:0x1: ++%*3Le: +1.79769313486231580793728971405301199e308:0:4: ++%3Le: +1.79769313486231580793728971405301199e+308:1:4:0x1: ++%*3Le: +1.79769313486231580793728971405301199e+308:0:4: ++%3Le: +infinity:0:-1: ++%*3Le: +infinity:0:-1: ++%48Le: :0:-1: ++%*48Le: :0:-1: ++%48Le: -infinity:1:10:-inf: ++%*48Le: -infinity:0:10: ++%48Le: -1.79769313486231580793728971405301199e+308:1:44:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le: -1.79769313486231580793728971405301199e+308:0:44: ++%48Le: -1.79769313486231580793728971405301199e308:1:43:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le: -1.79769313486231580793728971405301199e308:0:43: ++%48Le: -2.3441674165664647186659237648155017216e+37:1:45:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le: -2.3441674165664647186659237648155017216e+37:0:45: ++%48Le: -2.3441674165664647186659237648155017216e037:1:45:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le: -2.3441674165664647186659237648155017216e037:0:45: ++%48Le: -2.00416836000897277799610805135016205e-292:1:44:-0x1p-969: ++%*48Le: -2.00416836000897277799610805135016205e-292:0:44: ++%48Le: -0e+0:1:6:-0x0: ++%*48Le: -0e+0:0:6: ++%48Le: -0e0:1:5:-0x0: ++%*48Le: -0e0:0:5: ++%48Le: -nan(09A_Zaz):1:14:-nan: ++%*48Le: -nan(09A_Zaz):0:14: ++%48Le: -nan():1:7:-nan: ++%*48Le: -nan():0:7: ++%48Le: nan():1:6:nan: ++%*48Le: nan():0:6: ++%48Le: nan(09A_Zaz):1:13:nan: ++%*48Le: nan(09A_Zaz):0:13: ++%48Le: 0e0:1:4:0x0: ++%*48Le: 0e0:0:4: ++%48Le: 0e+0:1:5:0x0: ++%*48Le: 0e+0:0:5: ++%48Le: 2.00416836000897277799610805135016205e-292:1:43:0x1p-969: ++%*48Le: 2.00416836000897277799610805135016205e-292:0:43: ++%48Le: 2.3441674165664647186659237648155017216e037:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le: 2.3441674165664647186659237648155017216e037:0:44: ++%48Le: 2.3441674165664647186659237648155017216e+37:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le: 2.3441674165664647186659237648155017216e+37:0:44: ++%48Le: 1.79769313486231580793728971405301199e308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le: 1.79769313486231580793728971405301199e308:0:42: ++%48Le: 1.79769313486231580793728971405301199e+308:1:43:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le: 1.79769313486231580793728971405301199e+308:0:43: ++%48Le: infinity:1:9:inf: ++%*48Le: infinity:0:9: ++%48Le: +nan():1:7:nan: ++%*48Le: +nan():0:7: ++%48Le: +nan(09A_Zaz):1:14:nan: ++%*48Le: +nan(09A_Zaz):0:14: ++%48Le: +0e0:1:5:0x0: ++%*48Le: +0e0:0:5: ++%48Le: +0e+0:1:6:0x0: ++%*48Le: +0e+0:0:6: ++%48Le: +2.00416836000897277799610805135016205e-292:1:44:0x1p-969: ++%*48Le: +2.00416836000897277799610805135016205e-292:0:44: ++%48Le: +2.3441674165664647186659237648155017216e037:1:45:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le: +2.3441674165664647186659237648155017216e037:0:45: ++%48Le: +2.3441674165664647186659237648155017216e+37:1:45:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le: +2.3441674165664647186659237648155017216e+37:0:45: ++%48Le: +1.79769313486231580793728971405301199e308:1:43:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le: +1.79769313486231580793728971405301199e308:0:43: ++%48Le: +1.79769313486231580793728971405301199e+308:1:44:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le: +1.79769313486231580793728971405301199e+308:0:44: ++%48Le: +infinity:1:10:inf: ++%*48Le: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ee.input +new file mode 100644 +index 0000000000000000..3a543bc5366ba403 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ee.input +@@ -0,0 +1,558 @@ ++%LE::0:-1: ++%*LE::0:-1: ++%LE:-INFINITY:1:9:-inf: ++%*LE:-INFINITY:0:9: ++%LE:-1.79769313486231580793728971405301199E+308:1:43:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*LE:-1.79769313486231580793728971405301199E+308:0:43: ++%LE:-1.79769313486231580793728971405301199E308:1:42:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*LE:-1.79769313486231580793728971405301199E308:0:42: ++%LE:-2.3441674165664647186659237648155017216E+37:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LE:-2.3441674165664647186659237648155017216E+37:0:44: ++%LE:-2.3441674165664647186659237648155017216E037:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LE:-2.3441674165664647186659237648155017216E037:0:44: ++%LE:-2.00416836000897277799610805135016205E-292:1:43:-0x1p-969: ++%*LE:-2.00416836000897277799610805135016205E-292:0:43: ++%LE:-0E+0:1:5:-0x0: ++%*LE:-0E+0:0:5: ++%LE:-0E0:1:4:-0x0: ++%*LE:-0E0:0:4: ++%LE:-NAN(09A_Zaz):1:13:-nan: ++%*LE:-NAN(09A_Zaz):0:13: ++%LE:-NAN():1:6:-nan: ++%*LE:-NAN():0:6: ++%LE:NAN():1:5:nan: ++%*LE:NAN():0:5: ++%LE:NAN(09A_Zaz):1:12:nan: ++%*LE:NAN(09A_Zaz):0:12: ++%LE:0E0:1:3:0x0: ++%*LE:0E0:0:3: ++%LE:0E+0:1:4:0x0: ++%*LE:0E+0:0:4: ++%LE:2.00416836000897277799610805135016205E-292:1:42:0x1p-969: ++%*LE:2.00416836000897277799610805135016205E-292:0:42: ++%LE:2.3441674165664647186659237648155017216E037:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LE:2.3441674165664647186659237648155017216E037:0:43: ++%LE:2.3441674165664647186659237648155017216E+37:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LE:2.3441674165664647186659237648155017216E+37:0:43: ++%LE:1.79769313486231580793728971405301199E308:1:41:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LE:1.79769313486231580793728971405301199E308:0:41: ++%LE:1.79769313486231580793728971405301199E+308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LE:1.79769313486231580793728971405301199E+308:0:42: ++%LE:INFINITY:1:8:inf: ++%*LE:INFINITY:0:8: ++%LE:+NAN():1:6:nan: ++%*LE:+NAN():0:6: ++%LE:+NAN(09A_Zaz):1:13:nan: ++%*LE:+NAN(09A_Zaz):0:13: ++%LE:+0E0:1:4:0x0: ++%*LE:+0E0:0:4: ++%LE:+0E+0:1:5:0x0: ++%*LE:+0E+0:0:5: ++%LE:+2.00416836000897277799610805135016205E-292:1:43:0x1p-969: ++%*LE:+2.00416836000897277799610805135016205E-292:0:43: ++%LE:+2.3441674165664647186659237648155017216E037:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LE:+2.3441674165664647186659237648155017216E037:0:44: ++%LE:+2.3441674165664647186659237648155017216E+37:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LE:+2.3441674165664647186659237648155017216E+37:0:44: ++%LE:+1.79769313486231580793728971405301199E308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LE:+1.79769313486231580793728971405301199E308:0:42: ++%LE:+1.79769313486231580793728971405301199E+308:1:43:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LE:+1.79769313486231580793728971405301199E+308:0:43: ++%LE:+INFINITY:1:9:inf: ++%*LE:+INFINITY:0:9: ++%1LE::0:-1: ++%*1LE::0:-1: ++%1LE:-INFINITY:0:-1: ++%*1LE:-INFINITY:0:-1: ++%1LE:-1.79769313486231580793728971405301199E+308:0:-1: ++%*1LE:-1.79769313486231580793728971405301199E+308:0:-1: ++%1LE:-1.79769313486231580793728971405301199E308:0:-1: ++%*1LE:-1.79769313486231580793728971405301199E308:0:-1: ++%1LE:-2.3441674165664647186659237648155017216E+37:0:-1: ++%*1LE:-2.3441674165664647186659237648155017216E+37:0:-1: ++%1LE:-2.3441674165664647186659237648155017216E037:0:-1: ++%*1LE:-2.3441674165664647186659237648155017216E037:0:-1: ++%1LE:-2.00416836000897277799610805135016205E-292:0:-1: ++%*1LE:-2.00416836000897277799610805135016205E-292:0:-1: ++%1LE:-0E+0:0:-1: ++%*1LE:-0E+0:0:-1: ++%1LE:-0E0:0:-1: ++%*1LE:-0E0:0:-1: ++%1LE:-NAN(09A_Zaz):0:-1: ++%*1LE:-NAN(09A_Zaz):0:-1: ++%1LE:-NAN():0:-1: ++%*1LE:-NAN():0:-1: ++%1LE:NAN():0:-1: ++%*1LE:NAN():0:-1: ++%1LE:NAN(09A_Zaz):0:-1: ++%*1LE:NAN(09A_Zaz):0:-1: ++%1LE:0E0:1:1:0x0: ++%*1LE:0E0:0:1: ++%1LE:0E+0:1:1:0x0: ++%*1LE:0E+0:0:1: ++%1LE:2.00416836000897277799610805135016205E-292:1:1:0x1p1: ++%*1LE:2.00416836000897277799610805135016205E-292:0:1: ++%1LE:2.3441674165664647186659237648155017216E037:1:1:0x1p1: ++%*1LE:2.3441674165664647186659237648155017216E037:0:1: ++%1LE:2.3441674165664647186659237648155017216E+37:1:1:0x1p1: ++%*1LE:2.3441674165664647186659237648155017216E+37:0:1: ++%1LE:1.79769313486231580793728971405301199E308:1:1:0x1: ++%*1LE:1.79769313486231580793728971405301199E308:0:1: ++%1LE:1.79769313486231580793728971405301199E+308:1:1:0x1: ++%*1LE:1.79769313486231580793728971405301199E+308:0:1: ++%1LE:INFINITY:0:-1: ++%*1LE:INFINITY:0:-1: ++%1LE:+NAN():0:-1: ++%*1LE:+NAN():0:-1: ++%1LE:+NAN(09A_Zaz):0:-1: ++%*1LE:+NAN(09A_Zaz):0:-1: ++%1LE:+0E0:0:-1: ++%*1LE:+0E0:0:-1: ++%1LE:+0E+0:0:-1: ++%*1LE:+0E+0:0:-1: ++%1LE:+2.00416836000897277799610805135016205E-292:0:-1: ++%*1LE:+2.00416836000897277799610805135016205E-292:0:-1: ++%1LE:+2.3441674165664647186659237648155017216E037:0:-1: ++%*1LE:+2.3441674165664647186659237648155017216E037:0:-1: ++%1LE:+2.3441674165664647186659237648155017216E+37:0:-1: ++%*1LE:+2.3441674165664647186659237648155017216E+37:0:-1: ++%1LE:+1.79769313486231580793728971405301199E308:0:-1: ++%*1LE:+1.79769313486231580793728971405301199E308:0:-1: ++%1LE:+1.79769313486231580793728971405301199E+308:0:-1: ++%*1LE:+1.79769313486231580793728971405301199E+308:0:-1: ++%1LE:+INFINITY:0:-1: ++%*1LE:+INFINITY:0:-1: ++%2LE::0:-1: ++%*2LE::0:-1: ++%2LE:-INFINITY:0:-1: ++%*2LE:-INFINITY:0:-1: ++%2LE:-1.79769313486231580793728971405301199E+308:1:2:-0x1: ++%*2LE:-1.79769313486231580793728971405301199E+308:0:2: ++%2LE:-1.79769313486231580793728971405301199E308:1:2:-0x1: ++%*2LE:-1.79769313486231580793728971405301199E308:0:2: ++%2LE:-2.3441674165664647186659237648155017216E+37:1:2:-0x1p1: ++%*2LE:-2.3441674165664647186659237648155017216E+37:0:2: ++%2LE:-2.3441674165664647186659237648155017216E037:1:2:-0x1p1: ++%*2LE:-2.3441674165664647186659237648155017216E037:0:2: ++%2LE:-2.00416836000897277799610805135016205E-292:1:2:-0x1p1: ++%*2LE:-2.00416836000897277799610805135016205E-292:0:2: ++%2LE:-0E+0:1:2:-0x0: ++%*2LE:-0E+0:0:2: ++%2LE:-0E0:1:2:-0x0: ++%*2LE:-0E0:0:2: ++%2LE:-NAN(09A_Zaz):0:-1: ++%*2LE:-NAN(09A_Zaz):0:-1: ++%2LE:-NAN():0:-1: ++%*2LE:-NAN():0:-1: ++%2LE:NAN():0:-1: ++%*2LE:NAN():0:-1: ++%2LE:NAN(09A_Zaz):0:-1: ++%*2LE:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LE:0E0:0:-1: ++# BZ12701 %*2LE:0E0:0:-1: ++# BZ12701 %2LE:0E+0:0:-1: ++# BZ12701 %*2LE:0E+0:0:-1: ++%2LE:2.00416836000897277799610805135016205E-292:1:2:0x1p1: ++%*2LE:2.00416836000897277799610805135016205E-292:0:2: ++%2LE:2.3441674165664647186659237648155017216E037:1:2:0x1p1: ++%*2LE:2.3441674165664647186659237648155017216E037:0:2: ++%2LE:2.3441674165664647186659237648155017216E+37:1:2:0x1p1: ++%*2LE:2.3441674165664647186659237648155017216E+37:0:2: ++%2LE:1.79769313486231580793728971405301199E308:1:2:0x1: ++%*2LE:1.79769313486231580793728971405301199E308:0:2: ++%2LE:1.79769313486231580793728971405301199E+308:1:2:0x1: ++%*2LE:1.79769313486231580793728971405301199E+308:0:2: ++%2LE:INFINITY:0:-1: ++%*2LE:INFINITY:0:-1: ++%2LE:+NAN():0:-1: ++%*2LE:+NAN():0:-1: ++%2LE:+NAN(09A_Zaz):0:-1: ++%*2LE:+NAN(09A_Zaz):0:-1: ++%2LE:+0E0:1:2:0x0: ++%*2LE:+0E0:0:2: ++%2LE:+0E+0:1:2:0x0: ++%*2LE:+0E+0:0:2: ++%2LE:+2.00416836000897277799610805135016205E-292:1:2:0x1p1: ++%*2LE:+2.00416836000897277799610805135016205E-292:0:2: ++%2LE:+2.3441674165664647186659237648155017216E037:1:2:0x1p1: ++%*2LE:+2.3441674165664647186659237648155017216E037:0:2: ++%2LE:+2.3441674165664647186659237648155017216E+37:1:2:0x1p1: ++%*2LE:+2.3441674165664647186659237648155017216E+37:0:2: ++%2LE:+1.79769313486231580793728971405301199E308:1:2:0x1: ++%*2LE:+1.79769313486231580793728971405301199E308:0:2: ++%2LE:+1.79769313486231580793728971405301199E+308:1:2:0x1: ++%*2LE:+1.79769313486231580793728971405301199E+308:0:2: ++%2LE:+INFINITY:0:-1: ++%*2LE:+INFINITY:0:-1: ++%3LE::0:-1: ++%*3LE::0:-1: ++%3LE:-INFINITY:0:-1: ++%*3LE:-INFINITY:0:-1: ++%3LE:-1.79769313486231580793728971405301199E+308:1:3:-0x1: ++%*3LE:-1.79769313486231580793728971405301199E+308:0:3: ++%3LE:-1.79769313486231580793728971405301199E308:1:3:-0x1: ++%*3LE:-1.79769313486231580793728971405301199E308:0:3: ++%3LE:-2.3441674165664647186659237648155017216E+37:1:3:-0x1p1: ++%*3LE:-2.3441674165664647186659237648155017216E+37:0:3: ++%3LE:-2.3441674165664647186659237648155017216E037:1:3:-0x1p1: ++%*3LE:-2.3441674165664647186659237648155017216E037:0:3: ++%3LE:-2.00416836000897277799610805135016205E-292:1:3:-0x1p1: ++%*3LE:-2.00416836000897277799610805135016205E-292:0:3: ++# BZ12701 %3LE:-0E+0:0:-1: ++# BZ12701 %*3LE:-0E+0:0:-1: ++# BZ12701 %3LE:-0E0:0:-1: ++# BZ12701 %*3LE:-0E0:0:-1: ++%3LE:-NAN(09A_Zaz):0:-1: ++%*3LE:-NAN(09A_Zaz):0:-1: ++%3LE:-NAN():0:-1: ++%*3LE:-NAN():0:-1: ++%3LE:NAN():1:3:nan: ++%*3LE:NAN():0:3: ++%3LE:NAN(09A_Zaz):1:3:nan: ++%*3LE:NAN(09A_Zaz):0:3: ++%3LE:0E0:1:3:0x0: ++%*3LE:0E0:0:3: ++# BZ12701 %3LE:0E+0:0:-1: ++# BZ12701 %*3LE:0E+0:0:-1: ++%3LE:2.00416836000897277799610805135016205E-292:1:3:0x1p1: ++%*3LE:2.00416836000897277799610805135016205E-292:0:3: ++%3LE:2.3441674165664647186659237648155017216E037:1:3:0x1.266666666666666666666666668p1: ++%*3LE:2.3441674165664647186659237648155017216E037:0:3: ++%3LE:2.3441674165664647186659237648155017216E+37:1:3:0x1.266666666666666666666666668p1: ++%*3LE:2.3441674165664647186659237648155017216E+37:0:3: ++%3LE:1.79769313486231580793728971405301199E308:1:3:0x1.b3333333333333333333333333: ++%*3LE:1.79769313486231580793728971405301199E308:0:3: ++%3LE:1.79769313486231580793728971405301199E+308:1:3:0x1.b3333333333333333333333333: ++%*3LE:1.79769313486231580793728971405301199E+308:0:3: ++%3LE:INFINITY:1:3:inf: ++%*3LE:INFINITY:0:3: ++%3LE:+NAN():0:-1: ++%*3LE:+NAN():0:-1: ++%3LE:+NAN(09A_Zaz):0:-1: ++%*3LE:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LE:+0E0:0:-1: ++# BZ12701 %*3LE:+0E0:0:-1: ++# BZ12701 %3LE:+0E+0:0:-1: ++# BZ12701 %*3LE:+0E+0:0:-1: ++%3LE:+2.00416836000897277799610805135016205E-292:1:3:0x1p1: ++%*3LE:+2.00416836000897277799610805135016205E-292:0:3: ++%3LE:+2.3441674165664647186659237648155017216E037:1:3:0x1p1: ++%*3LE:+2.3441674165664647186659237648155017216E037:0:3: ++%3LE:+2.3441674165664647186659237648155017216E+37:1:3:0x1p1: ++%*3LE:+2.3441674165664647186659237648155017216E+37:0:3: ++%3LE:+1.79769313486231580793728971405301199E308:1:3:0x1: ++%*3LE:+1.79769313486231580793728971405301199E308:0:3: ++%3LE:+1.79769313486231580793728971405301199E+308:1:3:0x1: ++%*3LE:+1.79769313486231580793728971405301199E+308:0:3: ++%3LE:+INFINITY:0:-1: ++%*3LE:+INFINITY:0:-1: ++%4LE::0:-1: ++%*4LE::0:-1: ++%4LE:-INFINITY:1:4:-inf: ++%*4LE:-INFINITY:0:4: ++%4LE:-1.79769313486231580793728971405301199E+308:1:4:-0x1.b3333333333333333333333333: ++%*4LE:-1.79769313486231580793728971405301199E+308:0:4: ++%4LE:-1.79769313486231580793728971405301199E308:1:4:-0x1.b3333333333333333333333333: ++%*4LE:-1.79769313486231580793728971405301199E308:0:4: ++%4LE:-2.3441674165664647186659237648155017216E+37:1:4:-0x1.266666666666666666666666668p1: ++%*4LE:-2.3441674165664647186659237648155017216E+37:0:4: ++%4LE:-2.3441674165664647186659237648155017216E037:1:4:-0x1.266666666666666666666666668p1: ++%*4LE:-2.3441674165664647186659237648155017216E037:0:4: ++%4LE:-2.00416836000897277799610805135016205E-292:1:4:-0x1p1: ++%*4LE:-2.00416836000897277799610805135016205E-292:0:4: ++# BZ12701 %4LE:-0E+0:0:-1: ++# BZ12701 %*4LE:-0E+0:0:-1: ++%4LE:-0E0:1:4:-0x0: ++%*4LE:-0E0:0:4: ++%4LE:-NAN(09A_Zaz):1:4:-nan: ++%*4LE:-NAN(09A_Zaz):0:4: ++%4LE:-NAN():1:4:-nan: ++%*4LE:-NAN():0:4: ++%4LE:NAN():0:-1: ++%*4LE:NAN():0:-1: ++%4LE:NAN(09A_Zaz):0:-1: ++%*4LE:NAN(09A_Zaz):0:-1: ++%4LE:0E0:1:3:0x0: ++%*4LE:0E0:0:3: ++%4LE:0E+0:1:4:0x0: ++%*4LE:0E+0:0:4: ++%4LE:2.00416836000897277799610805135016205E-292:1:4:0x1p1: ++%*4LE:2.00416836000897277799610805135016205E-292:0:4: ++%4LE:2.3441674165664647186659237648155017216E037:1:4:0x1.2b851eb851eb851eb851eb851e8p1: ++%*4LE:2.3441674165664647186659237648155017216E037:0:4: ++%4LE:2.3441674165664647186659237648155017216E+37:1:4:0x1.2b851eb851eb851eb851eb851e8p1: ++%*4LE:2.3441674165664647186659237648155017216E+37:0:4: ++%4LE:1.79769313486231580793728971405301199E308:1:4:0x1.ca3d70a3d70a3d70a3d70a3d708: ++%*4LE:1.79769313486231580793728971405301199E308:0:4: ++%4LE:1.79769313486231580793728971405301199E+308:1:4:0x1.ca3d70a3d70a3d70a3d70a3d708: ++%*4LE:1.79769313486231580793728971405301199E+308:0:4: ++%4LE:INFINITY:0:-1: ++%*4LE:INFINITY:0:-1: ++%4LE:+NAN():1:4:nan: ++%*4LE:+NAN():0:4: ++%4LE:+NAN(09A_Zaz):1:4:nan: ++%*4LE:+NAN(09A_Zaz):0:4: ++%4LE:+0E0:1:4:0x0: ++%*4LE:+0E0:0:4: ++# BZ12701 %4LE:+0E+0:0:-1: ++# BZ12701 %*4LE:+0E+0:0:-1: ++%4LE:+2.00416836000897277799610805135016205E-292:1:4:0x1p1: ++%*4LE:+2.00416836000897277799610805135016205E-292:0:4: ++%4LE:+2.3441674165664647186659237648155017216E037:1:4:0x1.266666666666666666666666668p1: ++%*4LE:+2.3441674165664647186659237648155017216E037:0:4: ++%4LE:+2.3441674165664647186659237648155017216E+37:1:4:0x1.266666666666666666666666668p1: ++%*4LE:+2.3441674165664647186659237648155017216E+37:0:4: ++%4LE:+1.79769313486231580793728971405301199E308:1:4:0x1.b3333333333333333333333333: ++%*4LE:+1.79769313486231580793728971405301199E308:0:4: ++%4LE:+1.79769313486231580793728971405301199E+308:1:4:0x1.b3333333333333333333333333: ++%*4LE:+1.79769313486231580793728971405301199E+308:0:4: ++%4LE:+INFINITY:1:4:inf: ++%*4LE:+INFINITY:0:4: ++%40LE::0:-1: ++%*40LE::0:-1: ++%40LE:-INFINITY:1:9:-inf: ++%*40LE:-INFINITY:0:9: ++# BZ12701 %40LE:-1.79769313486231580793728971405301199E+308:0:-1: ++# BZ12701 %*40LE:-1.79769313486231580793728971405301199E+308:0:-1: ++%40LE:-1.79769313486231580793728971405301199E308:1:40:-0x1.c16c5c5253574972b4c4520a9f8p10: ++%*40LE:-1.79769313486231580793728971405301199E308:0:40: ++%40LE:-2.3441674165664647186659237648155017216E+37:1:40:-0x1.2c0dad8b403a263b1b54af6b6f8p1: ++%*40LE:-2.3441674165664647186659237648155017216E+37:0:40: ++%40LE:-2.3441674165664647186659237648155017216E037:1:40:-0x1.2c0dad8b403a263b1b54af6b6f8p1: ++%*40LE:-2.3441674165664647186659237648155017216E037:0:40: ++# BZ12701 %40LE:-2.00416836000897277799610805135016205E-292:0:-1: ++# BZ12701 %*40LE:-2.00416836000897277799610805135016205E-292:0:-1: ++%40LE:-0E+0:1:5:-0x0: ++%*40LE:-0E+0:0:5: ++%40LE:-0E0:1:4:-0x0: ++%*40LE:-0E0:0:4: ++%40LE:-NAN(09A_Zaz):1:13:-nan: ++%*40LE:-NAN(09A_Zaz):0:13: ++%40LE:-NAN():1:6:-nan: ++%*40LE:-NAN():0:6: ++%40LE:NAN():1:5:nan: ++%*40LE:NAN():0:5: ++%40LE:NAN(09A_Zaz):1:12:nan: ++%*40LE:NAN(09A_Zaz):0:12: ++%40LE:0E0:1:3:0x0: ++%*40LE:0E0:0:3: ++%40LE:0E+0:1:4:0x0: ++%*40LE:0E+0:0:4: ++%40LE:2.00416836000897277799610805135016205E-292:1:40:0x1.485ce9e7a065ea4b747cf9516fp-6: ++%*40LE:2.00416836000897277799610805135016205E-292:0:40: ++# BZ12701 %40LE:2.3441674165664647186659237648155017216E037:0:-1: ++# BZ12701 %*40LE:2.3441674165664647186659237648155017216E037:0:-1: ++# BZ12701 %40LE:2.3441674165664647186659237648155017216E+37:0:-1: ++# BZ12701 %*40LE:2.3441674165664647186659237648155017216E+37:0:-1: ++%40LE:1.79769313486231580793728971405301199E308:1:40:0x1.6b0a8e891ffff0af2d6def985p100: ++%*40LE:1.79769313486231580793728971405301199E308:0:40: ++%40LE:1.79769313486231580793728971405301199E+308:1:40:0x1.c16c5c5253574972b4c4520a9f8p10: ++%*40LE:1.79769313486231580793728971405301199E+308:0:40: ++%40LE:INFINITY:1:8:inf: ++%*40LE:INFINITY:0:8: ++%40LE:+NAN():1:6:nan: ++%*40LE:+NAN():0:6: ++%40LE:+NAN(09A_Zaz):1:13:nan: ++%*40LE:+NAN(09A_Zaz):0:13: ++%40LE:+0E0:1:4:0x0: ++%*40LE:+0E0:0:4: ++%40LE:+0E+0:1:5:0x0: ++%*40LE:+0E+0:0:5: ++# BZ12701 %40LE:+2.00416836000897277799610805135016205E-292:0:-1: ++# BZ12701 %*40LE:+2.00416836000897277799610805135016205E-292:0:-1: ++%40LE:+2.3441674165664647186659237648155017216E037:1:40:0x1.2c0dad8b403a263b1b54af6b6f8p1: ++%*40LE:+2.3441674165664647186659237648155017216E037:0:40: ++%40LE:+2.3441674165664647186659237648155017216E+37:1:40:0x1.2c0dad8b403a263b1b54af6b6f8p1: ++%*40LE:+2.3441674165664647186659237648155017216E+37:0:40: ++%40LE:+1.79769313486231580793728971405301199E308:1:40:0x1.c16c5c5253574972b4c4520a9f8p10: ++%*40LE:+1.79769313486231580793728971405301199E308:0:40: ++# BZ12701 %40LE:+1.79769313486231580793728971405301199E+308:0:-1: ++# BZ12701 %*40LE:+1.79769313486231580793728971405301199E+308:0:-1: ++%40LE:+INFINITY:1:9:inf: ++%*40LE:+INFINITY:0:9: ++%48LE::0:-1: ++%*48LE::0:-1: ++%48LE:-INFINITY:1:9:-inf: ++%*48LE:-INFINITY:0:9: ++%48LE:-1.79769313486231580793728971405301199E+308:1:43:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE:-1.79769313486231580793728971405301199E+308:0:43: ++%48LE:-1.79769313486231580793728971405301199E308:1:42:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE:-1.79769313486231580793728971405301199E308:0:42: ++%48LE:-2.3441674165664647186659237648155017216E+37:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE:-2.3441674165664647186659237648155017216E+37:0:44: ++%48LE:-2.3441674165664647186659237648155017216E037:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE:-2.3441674165664647186659237648155017216E037:0:44: ++%48LE:-2.00416836000897277799610805135016205E-292:1:43:-0x1p-969: ++%*48LE:-2.00416836000897277799610805135016205E-292:0:43: ++%48LE:-0E+0:1:5:-0x0: ++%*48LE:-0E+0:0:5: ++%48LE:-0E0:1:4:-0x0: ++%*48LE:-0E0:0:4: ++%48LE:-NAN(09A_Zaz):1:13:-nan: ++%*48LE:-NAN(09A_Zaz):0:13: ++%48LE:-NAN():1:6:-nan: ++%*48LE:-NAN():0:6: ++%48LE:NAN():1:5:nan: ++%*48LE:NAN():0:5: ++%48LE:NAN(09A_Zaz):1:12:nan: ++%*48LE:NAN(09A_Zaz):0:12: ++%48LE:0E0:1:3:0x0: ++%*48LE:0E0:0:3: ++%48LE:0E+0:1:4:0x0: ++%*48LE:0E+0:0:4: ++%48LE:2.00416836000897277799610805135016205E-292:1:42:0x1p-969: ++%*48LE:2.00416836000897277799610805135016205E-292:0:42: ++%48LE:2.3441674165664647186659237648155017216E037:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE:2.3441674165664647186659237648155017216E037:0:43: ++%48LE:2.3441674165664647186659237648155017216E+37:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE:2.3441674165664647186659237648155017216E+37:0:43: ++%48LE:1.79769313486231580793728971405301199E308:1:41:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE:1.79769313486231580793728971405301199E308:0:41: ++%48LE:1.79769313486231580793728971405301199E+308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE:1.79769313486231580793728971405301199E+308:0:42: ++%48LE:INFINITY:1:8:inf: ++%*48LE:INFINITY:0:8: ++%48LE:+NAN():1:6:nan: ++%*48LE:+NAN():0:6: ++%48LE:+NAN(09A_Zaz):1:13:nan: ++%*48LE:+NAN(09A_Zaz):0:13: ++%48LE:+0E0:1:4:0x0: ++%*48LE:+0E0:0:4: ++%48LE:+0E+0:1:5:0x0: ++%*48LE:+0E+0:0:5: ++%48LE:+2.00416836000897277799610805135016205E-292:1:43:0x1p-969: ++%*48LE:+2.00416836000897277799610805135016205E-292:0:43: ++%48LE:+2.3441674165664647186659237648155017216E037:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE:+2.3441674165664647186659237648155017216E037:0:44: ++%48LE:+2.3441674165664647186659237648155017216E+37:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE:+2.3441674165664647186659237648155017216E+37:0:44: ++%48LE:+1.79769313486231580793728971405301199E308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE:+1.79769313486231580793728971405301199E308:0:42: ++%48LE:+1.79769313486231580793728971405301199E+308:1:43:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE:+1.79769313486231580793728971405301199E+308:0:43: ++%48LE:+INFINITY:1:9:inf: ++%*48LE:+INFINITY:0:9: ++%3LE: :0:-1: ++%*3LE: :0:-1: ++%3LE: -INFINITY:0:-1: ++%*3LE: -INFINITY:0:-1: ++%3LE: -1.79769313486231580793728971405301199E+308:1:4:-0x1: ++%*3LE: -1.79769313486231580793728971405301199E+308:0:4: ++%3LE: -1.79769313486231580793728971405301199E308:1:4:-0x1: ++%*3LE: -1.79769313486231580793728971405301199E308:0:4: ++%3LE: -2.3441674165664647186659237648155017216E+37:1:4:-0x1p1: ++%*3LE: -2.3441674165664647186659237648155017216E+37:0:4: ++%3LE: -2.3441674165664647186659237648155017216E037:1:4:-0x1p1: ++%*3LE: -2.3441674165664647186659237648155017216E037:0:4: ++%3LE: -2.00416836000897277799610805135016205E-292:1:4:-0x1p1: ++%*3LE: -2.00416836000897277799610805135016205E-292:0:4: ++# BZ12701 %3LE: -0E+0:0:-1: ++# BZ12701 %*3LE: -0E+0:0:-1: ++# BZ12701 %3LE: -0E0:0:-1: ++# BZ12701 %*3LE: -0E0:0:-1: ++%3LE: -NAN(09A_Zaz):0:-1: ++%*3LE: -NAN(09A_Zaz):0:-1: ++%3LE: -NAN():0:-1: ++%*3LE: -NAN():0:-1: ++%3LE: NAN():1:4:nan: ++%*3LE: NAN():0:4: ++%3LE: NAN(09A_Zaz):1:4:nan: ++%*3LE: NAN(09A_Zaz):0:4: ++%3LE: 0E0:1:4:0x0: ++%*3LE: 0E0:0:4: ++# BZ12701 %3LE: 0E+0:0:-1: ++# BZ12701 %*3LE: 0E+0:0:-1: ++%3LE: 2.00416836000897277799610805135016205E-292:1:4:0x1p1: ++%*3LE: 2.00416836000897277799610805135016205E-292:0:4: ++%3LE: 2.3441674165664647186659237648155017216E037:1:4:0x1.266666666666666666666666668p1: ++%*3LE: 2.3441674165664647186659237648155017216E037:0:4: ++%3LE: 2.3441674165664647186659237648155017216E+37:1:4:0x1.266666666666666666666666668p1: ++%*3LE: 2.3441674165664647186659237648155017216E+37:0:4: ++%3LE: 1.79769313486231580793728971405301199E308:1:4:0x1.b3333333333333333333333333: ++%*3LE: 1.79769313486231580793728971405301199E308:0:4: ++%3LE: 1.79769313486231580793728971405301199E+308:1:4:0x1.b3333333333333333333333333: ++%*3LE: 1.79769313486231580793728971405301199E+308:0:4: ++%3LE: INFINITY:1:4:inf: ++%*3LE: INFINITY:0:4: ++%3LE: +NAN():0:-1: ++%*3LE: +NAN():0:-1: ++%3LE: +NAN(09A_Zaz):0:-1: ++%*3LE: +NAN(09A_Zaz):0:-1: ++# BZ12701 %3LE: +0E0:0:-1: ++# BZ12701 %*3LE: +0E0:0:-1: ++# BZ12701 %3LE: +0E+0:0:-1: ++# BZ12701 %*3LE: +0E+0:0:-1: ++%3LE: +2.00416836000897277799610805135016205E-292:1:4:0x1p1: ++%*3LE: +2.00416836000897277799610805135016205E-292:0:4: ++%3LE: +2.3441674165664647186659237648155017216E037:1:4:0x1p1: ++%*3LE: +2.3441674165664647186659237648155017216E037:0:4: ++%3LE: +2.3441674165664647186659237648155017216E+37:1:4:0x1p1: ++%*3LE: +2.3441674165664647186659237648155017216E+37:0:4: ++%3LE: +1.79769313486231580793728971405301199E308:1:4:0x1: ++%*3LE: +1.79769313486231580793728971405301199E308:0:4: ++%3LE: +1.79769313486231580793728971405301199E+308:1:4:0x1: ++%*3LE: +1.79769313486231580793728971405301199E+308:0:4: ++%3LE: +INFINITY:0:-1: ++%*3LE: +INFINITY:0:-1: ++%48LE: :0:-1: ++%*48LE: :0:-1: ++%48LE: -INFINITY:1:10:-inf: ++%*48LE: -INFINITY:0:10: ++%48LE: -1.79769313486231580793728971405301199E+308:1:44:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE: -1.79769313486231580793728971405301199E+308:0:44: ++%48LE: -1.79769313486231580793728971405301199E308:1:43:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE: -1.79769313486231580793728971405301199E308:0:43: ++%48LE: -2.3441674165664647186659237648155017216E+37:1:45:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE: -2.3441674165664647186659237648155017216E+37:0:45: ++%48LE: -2.3441674165664647186659237648155017216E037:1:45:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE: -2.3441674165664647186659237648155017216E037:0:45: ++%48LE: -2.00416836000897277799610805135016205E-292:1:44:-0x1p-969: ++%*48LE: -2.00416836000897277799610805135016205E-292:0:44: ++%48LE: -0E+0:1:6:-0x0: ++%*48LE: -0E+0:0:6: ++%48LE: -0E0:1:5:-0x0: ++%*48LE: -0E0:0:5: ++%48LE: -NAN(09A_Zaz):1:14:-nan: ++%*48LE: -NAN(09A_Zaz):0:14: ++%48LE: -NAN():1:7:-nan: ++%*48LE: -NAN():0:7: ++%48LE: NAN():1:6:nan: ++%*48LE: NAN():0:6: ++%48LE: NAN(09A_Zaz):1:13:nan: ++%*48LE: NAN(09A_Zaz):0:13: ++%48LE: 0E0:1:4:0x0: ++%*48LE: 0E0:0:4: ++%48LE: 0E+0:1:5:0x0: ++%*48LE: 0E+0:0:5: ++%48LE: 2.00416836000897277799610805135016205E-292:1:43:0x1p-969: ++%*48LE: 2.00416836000897277799610805135016205E-292:0:43: ++%48LE: 2.3441674165664647186659237648155017216E037:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE: 2.3441674165664647186659237648155017216E037:0:44: ++%48LE: 2.3441674165664647186659237648155017216E+37:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE: 2.3441674165664647186659237648155017216E+37:0:44: ++%48LE: 1.79769313486231580793728971405301199E308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE: 1.79769313486231580793728971405301199E308:0:42: ++%48LE: 1.79769313486231580793728971405301199E+308:1:43:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE: 1.79769313486231580793728971405301199E+308:0:43: ++%48LE: INFINITY:1:9:inf: ++%*48LE: INFINITY:0:9: ++%48LE: +NAN():1:7:nan: ++%*48LE: +NAN():0:7: ++%48LE: +NAN(09A_Zaz):1:14:nan: ++%*48LE: +NAN(09A_Zaz):0:14: ++%48LE: +0E0:1:5:0x0: ++%*48LE: +0E0:0:5: ++%48LE: +0E+0:1:6:0x0: ++%*48LE: +0E+0:0:6: ++%48LE: +2.00416836000897277799610805135016205E-292:1:44:0x1p-969: ++%*48LE: +2.00416836000897277799610805135016205E-292:0:44: ++%48LE: +2.3441674165664647186659237648155017216E037:1:45:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE: +2.3441674165664647186659237648155017216E037:0:45: ++%48LE: +2.3441674165664647186659237648155017216E+37:1:45:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE: +2.3441674165664647186659237648155017216E+37:0:45: ++%48LE: +1.79769313486231580793728971405301199E308:1:43:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE: +1.79769313486231580793728971405301199E308:0:43: ++%48LE: +1.79769313486231580793728971405301199E+308:1:44:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE: +1.79769313486231580793728971405301199E+308:0:44: ++%48LE: +INFINITY:1:10:inf: ++%*48LE: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-f.input +new file mode 100644 +index 0000000000000000..9d4fd75fd0250a93 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-f.input +@@ -0,0 +1,496 @@ ++%Lf::0:-1: ++%*Lf::0:-1: ++%Lf:-infinity:1:9:-inf: ++%*Lf:-infinity:0:9: ++%Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%Lf:-023441674165664647186659237648155017216.0:1:42:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lf:-023441674165664647186659237648155017216.0:0:42: ++%Lf:-23441674165664647186659237648155017216:1:39:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lf:-23441674165664647186659237648155017216:0:39: ++%Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:-0x1p-969: ++%*Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%Lf:-0.0:1:4:-0x0: ++%*Lf:-0.0:0:4: ++%Lf:-0:1:2:-0x0: ++%*Lf:-0:0:2: ++%Lf:-nan(09A_Zaz):1:13:-nan: ++%*Lf:-nan(09A_Zaz):0:13: ++%Lf:-nan():1:6:-nan: ++%*Lf:-nan():0:6: ++%Lf:nan():1:5:nan: ++%*Lf:nan():0:5: ++%Lf:nan(09A_Zaz):1:12:nan: ++%*Lf:nan(09A_Zaz):0:12: ++%Lf:0:1:1:0x0: ++%*Lf:0:0:1: ++%Lf:0.0:1:3:0x0: ++%*Lf:0.0:0:3: ++%Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:327:0x1p-969: ++%*Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:327: ++%Lf:23441674165664647186659237648155017216:1:38:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lf:23441674165664647186659237648155017216:0:38: ++%Lf:023441674165664647186659237648155017216.0:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lf:023441674165664647186659237648155017216.0:0:41: ++%Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:309:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:309: ++%Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:312:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312: ++%Lf:infinity:1:8:inf: ++%*Lf:infinity:0:8: ++%Lf:+nan():1:6:nan: ++%*Lf:+nan():0:6: ++%Lf:+nan(09A_Zaz):1:13:nan: ++%*Lf:+nan(09A_Zaz):0:13: ++%Lf:+0:1:2:0x0: ++%*Lf:+0:0:2: ++%Lf:+0.0:1:4:0x0: ++%*Lf:+0.0:0:4: ++%Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:0x1p-969: ++%*Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%Lf:+23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lf:+23441674165664647186659237648155017216:0:39: ++%Lf:+023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lf:+023441674165664647186659237648155017216.0:0:42: ++%Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%Lf:+infinity:1:9:inf: ++%*Lf:+infinity:0:9: ++%1Lf::0:-1: ++%*1Lf::0:-1: ++%1Lf:-infinity:0:-1: ++%*1Lf:-infinity:0:-1: ++%1Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1: ++%*1Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1: ++%1Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1: ++%*1Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1: ++%1Lf:-023441674165664647186659237648155017216.0:0:-1: ++%*1Lf:-023441674165664647186659237648155017216.0:0:-1: ++%1Lf:-23441674165664647186659237648155017216:0:-1: ++%*1Lf:-23441674165664647186659237648155017216:0:-1: ++%1Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1: ++%*1Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1: ++%1Lf:-0.0:0:-1: ++%*1Lf:-0.0:0:-1: ++%1Lf:-0:0:-1: ++%*1Lf:-0:0:-1: ++%1Lf:-nan(09A_Zaz):0:-1: ++%*1Lf:-nan(09A_Zaz):0:-1: ++%1Lf:-nan():0:-1: ++%*1Lf:-nan():0:-1: ++%1Lf:nan():0:-1: ++%*1Lf:nan():0:-1: ++%1Lf:nan(09A_Zaz):0:-1: ++%*1Lf:nan(09A_Zaz):0:-1: ++%1Lf:0:1:1:0x0: ++%*1Lf:0:0:1: ++%1Lf:0.0:1:1:0x0: ++%*1Lf:0.0:0:1: ++%1Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:1:0x0: ++%*1Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:1: ++%1Lf:23441674165664647186659237648155017216:1:1:0x1p1: ++%*1Lf:23441674165664647186659237648155017216:0:1: ++%1Lf:023441674165664647186659237648155017216.0:1:1:0x0: ++%*1Lf:023441674165664647186659237648155017216.0:0:1: ++%1Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:1:0x1: ++%*1Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:1: ++%1Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:1:0x0: ++%*1Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:1: ++%1Lf:infinity:0:-1: ++%*1Lf:infinity:0:-1: ++%1Lf:+nan():0:-1: ++%*1Lf:+nan():0:-1: ++%1Lf:+nan(09A_Zaz):0:-1: ++%*1Lf:+nan(09A_Zaz):0:-1: ++%1Lf:+0:0:-1: ++%*1Lf:+0:0:-1: ++%1Lf:+0.0:0:-1: ++%*1Lf:+0.0:0:-1: ++%1Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1: ++%*1Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1: ++%1Lf:+23441674165664647186659237648155017216:0:-1: ++%*1Lf:+23441674165664647186659237648155017216:0:-1: ++%1Lf:+023441674165664647186659237648155017216.0:0:-1: ++%*1Lf:+023441674165664647186659237648155017216.0:0:-1: ++%1Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1: ++%*1Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1: ++%1Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1: ++%*1Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1: ++%1Lf:+infinity:0:-1: ++%*1Lf:+infinity:0:-1: ++%2Lf::0:-1: ++%*2Lf::0:-1: ++%2Lf:-infinity:0:-1: ++%*2Lf:-infinity:0:-1: ++%2Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:2:-0x0: ++%*2Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2: ++%2Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:2:-0x1: ++%*2Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:2: ++%2Lf:-023441674165664647186659237648155017216.0:1:2:-0x0: ++%*2Lf:-023441674165664647186659237648155017216.0:0:2: ++%2Lf:-23441674165664647186659237648155017216:1:2:-0x1p1: ++%*2Lf:-23441674165664647186659237648155017216:0:2: ++%2Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:2:-0x0: ++%*2Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:2: ++%2Lf:-0.0:1:2:-0x0: ++%*2Lf:-0.0:0:2: ++%2Lf:-0:1:2:-0x0: ++%*2Lf:-0:0:2: ++%2Lf:-nan(09A_Zaz):0:-1: ++%*2Lf:-nan(09A_Zaz):0:-1: ++%2Lf:-nan():0:-1: ++%*2Lf:-nan():0:-1: ++%2Lf:nan():0:-1: ++%*2Lf:nan():0:-1: ++%2Lf:nan(09A_Zaz):0:-1: ++%*2Lf:nan(09A_Zaz):0:-1: ++%2Lf:0:1:1:0x0: ++%*2Lf:0:0:1: ++%2Lf:0.0:1:2:0x0: ++%*2Lf:0.0:0:2: ++%2Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:2:0x0: ++%*2Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:2: ++%2Lf:23441674165664647186659237648155017216:1:2:0x1.7p4: ++%*2Lf:23441674165664647186659237648155017216:0:2: ++%2Lf:023441674165664647186659237648155017216.0:1:2:0x1p1: ++%*2Lf:023441674165664647186659237648155017216.0:0:2: ++%2Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:2:0x1.1p4: ++%*2Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:2: ++%2Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:2:0x1: ++%*2Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2: ++%2Lf:infinity:0:-1: ++%*2Lf:infinity:0:-1: ++%2Lf:+nan():0:-1: ++%*2Lf:+nan():0:-1: ++%2Lf:+nan(09A_Zaz):0:-1: ++%*2Lf:+nan(09A_Zaz):0:-1: ++%2Lf:+0:1:2:0x0: ++%*2Lf:+0:0:2: ++%2Lf:+0.0:1:2:0x0: ++%*2Lf:+0.0:0:2: ++%2Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:2:0x0: ++%*2Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:2: ++%2Lf:+23441674165664647186659237648155017216:1:2:0x1p1: ++%*2Lf:+23441674165664647186659237648155017216:0:2: ++%2Lf:+023441674165664647186659237648155017216.0:1:2:0x0: ++%*2Lf:+023441674165664647186659237648155017216.0:0:2: ++%2Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:2:0x1: ++%*2Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:2: ++%2Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:2:0x0: ++%*2Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2: ++%2Lf:+infinity:0:-1: ++%*2Lf:+infinity:0:-1: ++%3Lf::0:-1: ++%*3Lf::0:-1: ++%3Lf:-infinity:0:-1: ++%*3Lf:-infinity:0:-1: ++%3Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:3:-0x1: ++%*3Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3: ++%3Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:3:-0x1.1p4: ++%*3Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:3: ++%3Lf:-023441674165664647186659237648155017216.0:1:3:-0x1p1: ++%*3Lf:-023441674165664647186659237648155017216.0:0:3: ++%3Lf:-23441674165664647186659237648155017216:1:3:-0x1.7p4: ++%*3Lf:-23441674165664647186659237648155017216:0:3: ++%3Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:3:-0x0: ++%*3Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:3: ++%3Lf:-0.0:1:3:-0x0: ++%*3Lf:-0.0:0:3: ++%3Lf:-0:1:2:-0x0: ++%*3Lf:-0:0:2: ++%3Lf:-nan(09A_Zaz):0:-1: ++%*3Lf:-nan(09A_Zaz):0:-1: ++%3Lf:-nan():0:-1: ++%*3Lf:-nan():0:-1: ++%3Lf:nan():1:3:nan: ++%*3Lf:nan():0:3: ++%3Lf:nan(09A_Zaz):1:3:nan: ++%*3Lf:nan(09A_Zaz):0:3: ++%3Lf:0:1:1:0x0: ++%*3Lf:0:0:1: ++%3Lf:0.0:1:3:0x0: ++%*3Lf:0.0:0:3: ++%3Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:3:0x0: ++%*3Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:3: ++%3Lf:23441674165664647186659237648155017216:1:3:0x1.d4p7: ++%*3Lf:23441674165664647186659237648155017216:0:3: ++%3Lf:023441674165664647186659237648155017216.0:1:3:0x1.7p4: ++%*3Lf:023441674165664647186659237648155017216.0:0:3: ++%3Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:3:0x1.66p7: ++%*3Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:3: ++%3Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:3:0x1.1p4: ++%*3Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3: ++%3Lf:infinity:1:3:inf: ++%*3Lf:infinity:0:3: ++%3Lf:+nan():0:-1: ++%*3Lf:+nan():0:-1: ++%3Lf:+nan(09A_Zaz):0:-1: ++%*3Lf:+nan(09A_Zaz):0:-1: ++%3Lf:+0:1:2:0x0: ++%*3Lf:+0:0:2: ++%3Lf:+0.0:1:3:0x0: ++%*3Lf:+0.0:0:3: ++%3Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:3:0x0: ++%*3Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:3: ++%3Lf:+23441674165664647186659237648155017216:1:3:0x1.7p4: ++%*3Lf:+23441674165664647186659237648155017216:0:3: ++%3Lf:+023441674165664647186659237648155017216.0:1:3:0x1p1: ++%*3Lf:+023441674165664647186659237648155017216.0:0:3: ++%3Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:3:0x1.1p4: ++%*3Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:3: ++%3Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:3:0x1: ++%*3Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3: ++%3Lf:+infinity:0:-1: ++%*3Lf:+infinity:0:-1: ++%295Lf::0:-1: ++%*295Lf::0:-1: ++%295Lf:-infinity:1:9:-inf: ++%*295Lf:-infinity:0:9: ++%295Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:295:-0x1.cd2b297d889bbb81ebb786ae838p970: ++%*295Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295: ++%295Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:295:-0x1.203af9ee756155313352b42d12p+974: ++%*295Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:295: ++%295Lf:-023441674165664647186659237648155017216.0:1:42:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295Lf:-023441674165664647186659237648155017216.0:0:42: ++%295Lf:-23441674165664647186659237648155017216:1:39:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295Lf:-23441674165664647186659237648155017216:0:39: ++%295Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:295:-0x1.feef63f97d79b89e4bd1d13827p-970: ++%*295Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:295: ++%295Lf:-0.0:1:4:-0x0: ++%*295Lf:-0.0:0:4: ++%295Lf:-0:1:2:-0x0: ++%*295Lf:-0:0:2: ++%295Lf:-nan(09A_Zaz):1:13:-nan: ++%*295Lf:-nan(09A_Zaz):0:13: ++%295Lf:-nan():1:6:-nan: ++%*295Lf:-nan():0:6: ++%295Lf:nan():1:5:nan: ++%*295Lf:nan():0:5: ++%295Lf:nan(09A_Zaz):1:12:nan: ++%*295Lf:nan(09A_Zaz):0:12: ++%295Lf:0:1:1:0x0: ++%*295Lf:0:0:1: ++%295Lf:0.0:1:3:0x0: ++%*295Lf:0.0:0:3: ++%295Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:295:0x1.feef63f97d79b89e4bd1d13827p-970: ++%*295Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:295: ++%295Lf:23441674165664647186659237648155017216:1:38:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295Lf:23441674165664647186659237648155017216:0:38: ++%295Lf:023441674165664647186659237648155017216.0:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295Lf:023441674165664647186659237648155017216.0:0:41: ++%295Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:295:0x1.6849b86a12b9aa7d8027613857p+977: ++%*295Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:295: ++%295Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:295:0x1.203af9ee756155313352b42d12p+974: ++%*295Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295: ++%295Lf:infinity:1:8:inf: ++%*295Lf:infinity:0:8: ++%295Lf:+nan():1:6:nan: ++%*295Lf:+nan():0:6: ++%295Lf:+nan(09A_Zaz):1:13:nan: ++%*295Lf:+nan(09A_Zaz):0:13: ++%295Lf:+0:1:2:0x0: ++%*295Lf:+0:0:2: ++%295Lf:+0.0:1:4:0x0: ++%*295Lf:+0.0:0:4: ++%295Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:295:0x1.feef63f97d79b89e4bd1d13827p-970: ++%*295Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:295: ++%295Lf:+23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295Lf:+23441674165664647186659237648155017216:0:39: ++%295Lf:+023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295Lf:+023441674165664647186659237648155017216.0:0:42: ++%295Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:295:0x1.203af9ee756155313352b42d12p+974: ++%*295Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:295: ++%295Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:295:0x1.cd2b297d889bbb81ebb786ae838p970: ++%*295Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295: ++%295Lf:+infinity:1:9:inf: ++%*295Lf:+infinity:0:9: ++%340Lf::0:-1: ++%*340Lf::0:-1: ++%340Lf:-infinity:1:9:-inf: ++%*340Lf:-infinity:0:9: ++%340Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%340Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%340Lf:-023441674165664647186659237648155017216.0:1:42:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf:-023441674165664647186659237648155017216.0:0:42: ++%340Lf:-23441674165664647186659237648155017216:1:39:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf:-23441674165664647186659237648155017216:0:39: ++%340Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:-0x1p-969: ++%*340Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%340Lf:-0.0:1:4:-0x0: ++%*340Lf:-0.0:0:4: ++%340Lf:-0:1:2:-0x0: ++%*340Lf:-0:0:2: ++%340Lf:-nan(09A_Zaz):1:13:-nan: ++%*340Lf:-nan(09A_Zaz):0:13: ++%340Lf:-nan():1:6:-nan: ++%*340Lf:-nan():0:6: ++%340Lf:nan():1:5:nan: ++%*340Lf:nan():0:5: ++%340Lf:nan(09A_Zaz):1:12:nan: ++%*340Lf:nan(09A_Zaz):0:12: ++%340Lf:0:1:1:0x0: ++%*340Lf:0:0:1: ++%340Lf:0.0:1:3:0x0: ++%*340Lf:0.0:0:3: ++%340Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:327:0x1p-969: ++%*340Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:327: ++%340Lf:23441674165664647186659237648155017216:1:38:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf:23441674165664647186659237648155017216:0:38: ++%340Lf:023441674165664647186659237648155017216.0:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf:023441674165664647186659237648155017216.0:0:41: ++%340Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:309:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:309: ++%340Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:312:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312: ++%340Lf:infinity:1:8:inf: ++%*340Lf:infinity:0:8: ++%340Lf:+nan():1:6:nan: ++%*340Lf:+nan():0:6: ++%340Lf:+nan(09A_Zaz):1:13:nan: ++%*340Lf:+nan(09A_Zaz):0:13: ++%340Lf:+0:1:2:0x0: ++%*340Lf:+0:0:2: ++%340Lf:+0.0:1:4:0x0: ++%*340Lf:+0.0:0:4: ++%340Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:0x1p-969: ++%*340Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%340Lf:+23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf:+23441674165664647186659237648155017216:0:39: ++%340Lf:+023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf:+023441674165664647186659237648155017216.0:0:42: ++%340Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%340Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%340Lf:+infinity:1:9:inf: ++%*340Lf:+infinity:0:9: ++%3Lf: :0:-1: ++%*3Lf: :0:-1: ++%3Lf: -infinity:0:-1: ++%*3Lf: -infinity:0:-1: ++%3Lf: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:4:-0x1: ++%*3Lf: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4: ++%3Lf: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:4:-0x1.1p4: ++%*3Lf: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:4: ++%3Lf: -023441674165664647186659237648155017216.0:1:4:-0x1p1: ++%*3Lf: -023441674165664647186659237648155017216.0:0:4: ++%3Lf: -23441674165664647186659237648155017216:1:4:-0x1.7p4: ++%*3Lf: -23441674165664647186659237648155017216:0:4: ++%3Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:4:-0x0: ++%*3Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:4: ++%3Lf: -0.0:1:4:-0x0: ++%*3Lf: -0.0:0:4: ++%3Lf: -0:1:3:-0x0: ++%*3Lf: -0:0:3: ++%3Lf: -nan(09A_Zaz):0:-1: ++%*3Lf: -nan(09A_Zaz):0:-1: ++%3Lf: -nan():0:-1: ++%*3Lf: -nan():0:-1: ++%3Lf: nan():1:4:nan: ++%*3Lf: nan():0:4: ++%3Lf: nan(09A_Zaz):1:4:nan: ++%*3Lf: nan(09A_Zaz):0:4: ++%3Lf: 0:1:2:0x0: ++%*3Lf: 0:0:2: ++%3Lf: 0.0:1:4:0x0: ++%*3Lf: 0.0:0:4: ++%3Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:4:0x0: ++%*3Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:4: ++%3Lf: 23441674165664647186659237648155017216:1:4:0x1.d4p7: ++%*3Lf: 23441674165664647186659237648155017216:0:4: ++%3Lf: 023441674165664647186659237648155017216.0:1:4:0x1.7p4: ++%*3Lf: 023441674165664647186659237648155017216.0:0:4: ++%3Lf: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:4:0x1.66p7: ++%*3Lf: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:4: ++%3Lf: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:4:0x1.1p4: ++%*3Lf: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4: ++%3Lf: infinity:1:4:inf: ++%*3Lf: infinity:0:4: ++%3Lf: +nan():0:-1: ++%*3Lf: +nan():0:-1: ++%3Lf: +nan(09A_Zaz):0:-1: ++%*3Lf: +nan(09A_Zaz):0:-1: ++%3Lf: +0:1:3:0x0: ++%*3Lf: +0:0:3: ++%3Lf: +0.0:1:4:0x0: ++%*3Lf: +0.0:0:4: ++%3Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:4:0x0: ++%*3Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:4: ++%3Lf: +23441674165664647186659237648155017216:1:4:0x1.7p4: ++%*3Lf: +23441674165664647186659237648155017216:0:4: ++%3Lf: +023441674165664647186659237648155017216.0:1:4:0x1p1: ++%*3Lf: +023441674165664647186659237648155017216.0:0:4: ++%3Lf: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:4:0x1.1p4: ++%*3Lf: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:4: ++%3Lf: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:4:0x1: ++%*3Lf: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4: ++%3Lf: +infinity:0:-1: ++%*3Lf: +infinity:0:-1: ++%340Lf: :0:-1: ++%*340Lf: :0:-1: ++%340Lf: -infinity:1:10:-inf: ++%*340Lf: -infinity:0:10: ++%340Lf: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:314:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:314: ++%340Lf: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:311:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:311: ++%340Lf: -023441674165664647186659237648155017216.0:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf: -023441674165664647186659237648155017216.0:0:43: ++%340Lf: -23441674165664647186659237648155017216:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf: -23441674165664647186659237648155017216:0:40: ++%340Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:329:-0x1p-969: ++%*340Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:329: ++%340Lf: -0.0:1:5:-0x0: ++%*340Lf: -0.0:0:5: ++%340Lf: -0:1:3:-0x0: ++%*340Lf: -0:0:3: ++%340Lf: -nan(09A_Zaz):1:14:-nan: ++%*340Lf: -nan(09A_Zaz):0:14: ++%340Lf: -nan():1:7:-nan: ++%*340Lf: -nan():0:7: ++%340Lf: nan():1:6:nan: ++%*340Lf: nan():0:6: ++%340Lf: nan(09A_Zaz):1:13:nan: ++%*340Lf: nan(09A_Zaz):0:13: ++%340Lf: 0:1:2:0x0: ++%*340Lf: 0:0:2: ++%340Lf: 0.0:1:4:0x0: ++%*340Lf: 0.0:0:4: ++%340Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:0x1p-969: ++%*340Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%340Lf: 23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf: 23441674165664647186659237648155017216:0:39: ++%340Lf: 023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf: 023441674165664647186659237648155017216.0:0:42: ++%340Lf: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%340Lf: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%340Lf: infinity:1:9:inf: ++%*340Lf: infinity:0:9: ++%340Lf: +nan():1:7:nan: ++%*340Lf: +nan():0:7: ++%340Lf: +nan(09A_Zaz):1:14:nan: ++%*340Lf: +nan(09A_Zaz):0:14: ++%340Lf: +0:1:3:0x0: ++%*340Lf: +0:0:3: ++%340Lf: +0.0:1:5:0x0: ++%*340Lf: +0.0:0:5: ++%340Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:329:0x1p-969: ++%*340Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:329: ++%340Lf: +23441674165664647186659237648155017216:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf: +23441674165664647186659237648155017216:0:40: ++%340Lf: +023441674165664647186659237648155017216.0:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf: +023441674165664647186659237648155017216.0:0:43: ++%340Lf: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:311:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:311: ++%340Lf: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:314:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:314: ++%340Lf: +infinity:1:10:inf: ++%*340Lf: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ff.input +new file mode 100644 +index 0000000000000000..bb7098a00dd383b3 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ff.input +@@ -0,0 +1,496 @@ ++%LF::0:-1: ++%*LF::0:-1: ++%LF:-INFINITY:1:9:-inf: ++%*LF:-INFINITY:0:9: ++%LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%LF:-023441674165664647186659237648155017216.0:1:42:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LF:-023441674165664647186659237648155017216.0:0:42: ++%LF:-23441674165664647186659237648155017216:1:39:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LF:-23441674165664647186659237648155017216:0:39: ++%LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:-0x1p-969: ++%*LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%LF:-0.0:1:4:-0x0: ++%*LF:-0.0:0:4: ++%LF:-0:1:2:-0x0: ++%*LF:-0:0:2: ++%LF:-NAN(09A_Zaz):1:13:-nan: ++%*LF:-NAN(09A_Zaz):0:13: ++%LF:-NAN():1:6:-nan: ++%*LF:-NAN():0:6: ++%LF:NAN():1:5:nan: ++%*LF:NAN():0:5: ++%LF:NAN(09A_Zaz):1:12:nan: ++%*LF:NAN(09A_Zaz):0:12: ++%LF:0:1:1:0x0: ++%*LF:0:0:1: ++%LF:0.0:1:3:0x0: ++%*LF:0.0:0:3: ++%LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:327:0x1p-969: ++%*LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:327: ++%LF:23441674165664647186659237648155017216:1:38:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LF:23441674165664647186659237648155017216:0:38: ++%LF:023441674165664647186659237648155017216.0:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LF:023441674165664647186659237648155017216.0:0:41: ++%LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:309:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:309: ++%LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:312:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312: ++%LF:INFINITY:1:8:inf: ++%*LF:INFINITY:0:8: ++%LF:+NAN():1:6:nan: ++%*LF:+NAN():0:6: ++%LF:+NAN(09A_Zaz):1:13:nan: ++%*LF:+NAN(09A_Zaz):0:13: ++%LF:+0:1:2:0x0: ++%*LF:+0:0:2: ++%LF:+0.0:1:4:0x0: ++%*LF:+0.0:0:4: ++%LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:0x1p-969: ++%*LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%LF:+23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LF:+23441674165664647186659237648155017216:0:39: ++%LF:+023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LF:+023441674165664647186659237648155017216.0:0:42: ++%LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%LF:+INFINITY:1:9:inf: ++%*LF:+INFINITY:0:9: ++%1LF::0:-1: ++%*1LF::0:-1: ++%1LF:-INFINITY:0:-1: ++%*1LF:-INFINITY:0:-1: ++%1LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1: ++%*1LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1: ++%1LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1: ++%*1LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1: ++%1LF:-023441674165664647186659237648155017216.0:0:-1: ++%*1LF:-023441674165664647186659237648155017216.0:0:-1: ++%1LF:-23441674165664647186659237648155017216:0:-1: ++%*1LF:-23441674165664647186659237648155017216:0:-1: ++%1LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1: ++%*1LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1: ++%1LF:-0.0:0:-1: ++%*1LF:-0.0:0:-1: ++%1LF:-0:0:-1: ++%*1LF:-0:0:-1: ++%1LF:-NAN(09A_Zaz):0:-1: ++%*1LF:-NAN(09A_Zaz):0:-1: ++%1LF:-NAN():0:-1: ++%*1LF:-NAN():0:-1: ++%1LF:NAN():0:-1: ++%*1LF:NAN():0:-1: ++%1LF:NAN(09A_Zaz):0:-1: ++%*1LF:NAN(09A_Zaz):0:-1: ++%1LF:0:1:1:0x0: ++%*1LF:0:0:1: ++%1LF:0.0:1:1:0x0: ++%*1LF:0.0:0:1: ++%1LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:1:0x0: ++%*1LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:1: ++%1LF:23441674165664647186659237648155017216:1:1:0x1p1: ++%*1LF:23441674165664647186659237648155017216:0:1: ++%1LF:023441674165664647186659237648155017216.0:1:1:0x0: ++%*1LF:023441674165664647186659237648155017216.0:0:1: ++%1LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:1:0x1: ++%*1LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:1: ++%1LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:1:0x0: ++%*1LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:1: ++%1LF:INFINITY:0:-1: ++%*1LF:INFINITY:0:-1: ++%1LF:+NAN():0:-1: ++%*1LF:+NAN():0:-1: ++%1LF:+NAN(09A_Zaz):0:-1: ++%*1LF:+NAN(09A_Zaz):0:-1: ++%1LF:+0:0:-1: ++%*1LF:+0:0:-1: ++%1LF:+0.0:0:-1: ++%*1LF:+0.0:0:-1: ++%1LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1: ++%*1LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1: ++%1LF:+23441674165664647186659237648155017216:0:-1: ++%*1LF:+23441674165664647186659237648155017216:0:-1: ++%1LF:+023441674165664647186659237648155017216.0:0:-1: ++%*1LF:+023441674165664647186659237648155017216.0:0:-1: ++%1LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1: ++%*1LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1: ++%1LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1: ++%*1LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1: ++%1LF:+INFINITY:0:-1: ++%*1LF:+INFINITY:0:-1: ++%2LF::0:-1: ++%*2LF::0:-1: ++%2LF:-INFINITY:0:-1: ++%*2LF:-INFINITY:0:-1: ++%2LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:2:-0x0: ++%*2LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2: ++%2LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:2:-0x1: ++%*2LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:2: ++%2LF:-023441674165664647186659237648155017216.0:1:2:-0x0: ++%*2LF:-023441674165664647186659237648155017216.0:0:2: ++%2LF:-23441674165664647186659237648155017216:1:2:-0x1p1: ++%*2LF:-23441674165664647186659237648155017216:0:2: ++%2LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:2:-0x0: ++%*2LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:2: ++%2LF:-0.0:1:2:-0x0: ++%*2LF:-0.0:0:2: ++%2LF:-0:1:2:-0x0: ++%*2LF:-0:0:2: ++%2LF:-NAN(09A_Zaz):0:-1: ++%*2LF:-NAN(09A_Zaz):0:-1: ++%2LF:-NAN():0:-1: ++%*2LF:-NAN():0:-1: ++%2LF:NAN():0:-1: ++%*2LF:NAN():0:-1: ++%2LF:NAN(09A_Zaz):0:-1: ++%*2LF:NAN(09A_Zaz):0:-1: ++%2LF:0:1:1:0x0: ++%*2LF:0:0:1: ++%2LF:0.0:1:2:0x0: ++%*2LF:0.0:0:2: ++%2LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:2:0x0: ++%*2LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:2: ++%2LF:23441674165664647186659237648155017216:1:2:0x1.7p4: ++%*2LF:23441674165664647186659237648155017216:0:2: ++%2LF:023441674165664647186659237648155017216.0:1:2:0x1p1: ++%*2LF:023441674165664647186659237648155017216.0:0:2: ++%2LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:2:0x1.1p4: ++%*2LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:2: ++%2LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:2:0x1: ++%*2LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2: ++%2LF:INFINITY:0:-1: ++%*2LF:INFINITY:0:-1: ++%2LF:+NAN():0:-1: ++%*2LF:+NAN():0:-1: ++%2LF:+NAN(09A_Zaz):0:-1: ++%*2LF:+NAN(09A_Zaz):0:-1: ++%2LF:+0:1:2:0x0: ++%*2LF:+0:0:2: ++%2LF:+0.0:1:2:0x0: ++%*2LF:+0.0:0:2: ++%2LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:2:0x0: ++%*2LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:2: ++%2LF:+23441674165664647186659237648155017216:1:2:0x1p1: ++%*2LF:+23441674165664647186659237648155017216:0:2: ++%2LF:+023441674165664647186659237648155017216.0:1:2:0x0: ++%*2LF:+023441674165664647186659237648155017216.0:0:2: ++%2LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:2:0x1: ++%*2LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:2: ++%2LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:2:0x0: ++%*2LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2: ++%2LF:+INFINITY:0:-1: ++%*2LF:+INFINITY:0:-1: ++%3LF::0:-1: ++%*3LF::0:-1: ++%3LF:-INFINITY:0:-1: ++%*3LF:-INFINITY:0:-1: ++%3LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:3:-0x1: ++%*3LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3: ++%3LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:3:-0x1.1p4: ++%*3LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:3: ++%3LF:-023441674165664647186659237648155017216.0:1:3:-0x1p1: ++%*3LF:-023441674165664647186659237648155017216.0:0:3: ++%3LF:-23441674165664647186659237648155017216:1:3:-0x1.7p4: ++%*3LF:-23441674165664647186659237648155017216:0:3: ++%3LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:3:-0x0: ++%*3LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:3: ++%3LF:-0.0:1:3:-0x0: ++%*3LF:-0.0:0:3: ++%3LF:-0:1:2:-0x0: ++%*3LF:-0:0:2: ++%3LF:-NAN(09A_Zaz):0:-1: ++%*3LF:-NAN(09A_Zaz):0:-1: ++%3LF:-NAN():0:-1: ++%*3LF:-NAN():0:-1: ++%3LF:NAN():1:3:nan: ++%*3LF:NAN():0:3: ++%3LF:NAN(09A_Zaz):1:3:nan: ++%*3LF:NAN(09A_Zaz):0:3: ++%3LF:0:1:1:0x0: ++%*3LF:0:0:1: ++%3LF:0.0:1:3:0x0: ++%*3LF:0.0:0:3: ++%3LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:3:0x0: ++%*3LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:3: ++%3LF:23441674165664647186659237648155017216:1:3:0x1.d4p7: ++%*3LF:23441674165664647186659237648155017216:0:3: ++%3LF:023441674165664647186659237648155017216.0:1:3:0x1.7p4: ++%*3LF:023441674165664647186659237648155017216.0:0:3: ++%3LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:3:0x1.66p7: ++%*3LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:3: ++%3LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:3:0x1.1p4: ++%*3LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3: ++%3LF:INFINITY:1:3:inf: ++%*3LF:INFINITY:0:3: ++%3LF:+NAN():0:-1: ++%*3LF:+NAN():0:-1: ++%3LF:+NAN(09A_Zaz):0:-1: ++%*3LF:+NAN(09A_Zaz):0:-1: ++%3LF:+0:1:2:0x0: ++%*3LF:+0:0:2: ++%3LF:+0.0:1:3:0x0: ++%*3LF:+0.0:0:3: ++%3LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:3:0x0: ++%*3LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:3: ++%3LF:+23441674165664647186659237648155017216:1:3:0x1.7p4: ++%*3LF:+23441674165664647186659237648155017216:0:3: ++%3LF:+023441674165664647186659237648155017216.0:1:3:0x1p1: ++%*3LF:+023441674165664647186659237648155017216.0:0:3: ++%3LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:3:0x1.1p4: ++%*3LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:3: ++%3LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:3:0x1: ++%*3LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3: ++%3LF:+INFINITY:0:-1: ++%*3LF:+INFINITY:0:-1: ++%295LF::0:-1: ++%*295LF::0:-1: ++%295LF:-INFINITY:1:9:-inf: ++%*295LF:-INFINITY:0:9: ++%295LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:295:-0x1.cd2b297d889bbb81ebb786ae838p970: ++%*295LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295: ++%295LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:295:-0x1.203af9ee756155313352b42d12p+974: ++%*295LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:295: ++%295LF:-023441674165664647186659237648155017216.0:1:42:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295LF:-023441674165664647186659237648155017216.0:0:42: ++%295LF:-23441674165664647186659237648155017216:1:39:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295LF:-23441674165664647186659237648155017216:0:39: ++%295LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:295:-0x1.feef63f97d79b89e4bd1d13827p-970: ++%*295LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:295: ++%295LF:-0.0:1:4:-0x0: ++%*295LF:-0.0:0:4: ++%295LF:-0:1:2:-0x0: ++%*295LF:-0:0:2: ++%295LF:-NAN(09A_Zaz):1:13:-nan: ++%*295LF:-NAN(09A_Zaz):0:13: ++%295LF:-NAN():1:6:-nan: ++%*295LF:-NAN():0:6: ++%295LF:NAN():1:5:nan: ++%*295LF:NAN():0:5: ++%295LF:NAN(09A_Zaz):1:12:nan: ++%*295LF:NAN(09A_Zaz):0:12: ++%295LF:0:1:1:0x0: ++%*295LF:0:0:1: ++%295LF:0.0:1:3:0x0: ++%*295LF:0.0:0:3: ++%295LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:295:0x1.feef63f97d79b89e4bd1d13827p-970: ++%*295LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:295: ++%295LF:23441674165664647186659237648155017216:1:38:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295LF:23441674165664647186659237648155017216:0:38: ++%295LF:023441674165664647186659237648155017216.0:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295LF:023441674165664647186659237648155017216.0:0:41: ++%295LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:295:0x1.6849b86a12b9aa7d8027613857p+977: ++%*295LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:295: ++%295LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:295:0x1.203af9ee756155313352b42d12p+974: ++%*295LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295: ++%295LF:INFINITY:1:8:inf: ++%*295LF:INFINITY:0:8: ++%295LF:+NAN():1:6:nan: ++%*295LF:+NAN():0:6: ++%295LF:+NAN(09A_Zaz):1:13:nan: ++%*295LF:+NAN(09A_Zaz):0:13: ++%295LF:+0:1:2:0x0: ++%*295LF:+0:0:2: ++%295LF:+0.0:1:4:0x0: ++%*295LF:+0.0:0:4: ++%295LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:295:0x1.feef63f97d79b89e4bd1d13827p-970: ++%*295LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:295: ++%295LF:+23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295LF:+23441674165664647186659237648155017216:0:39: ++%295LF:+023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295LF:+023441674165664647186659237648155017216.0:0:42: ++%295LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:295:0x1.203af9ee756155313352b42d12p+974: ++%*295LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:295: ++%295LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:295:0x1.cd2b297d889bbb81ebb786ae838p970: ++%*295LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295: ++%295LF:+INFINITY:1:9:inf: ++%*295LF:+INFINITY:0:9: ++%340LF::0:-1: ++%*340LF::0:-1: ++%340LF:-INFINITY:1:9:-inf: ++%*340LF:-INFINITY:0:9: ++%340LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%340LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%340LF:-023441674165664647186659237648155017216.0:1:42:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF:-023441674165664647186659237648155017216.0:0:42: ++%340LF:-23441674165664647186659237648155017216:1:39:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF:-23441674165664647186659237648155017216:0:39: ++%340LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:-0x1p-969: ++%*340LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%340LF:-0.0:1:4:-0x0: ++%*340LF:-0.0:0:4: ++%340LF:-0:1:2:-0x0: ++%*340LF:-0:0:2: ++%340LF:-NAN(09A_Zaz):1:13:-nan: ++%*340LF:-NAN(09A_Zaz):0:13: ++%340LF:-NAN():1:6:-nan: ++%*340LF:-NAN():0:6: ++%340LF:NAN():1:5:nan: ++%*340LF:NAN():0:5: ++%340LF:NAN(09A_Zaz):1:12:nan: ++%*340LF:NAN(09A_Zaz):0:12: ++%340LF:0:1:1:0x0: ++%*340LF:0:0:1: ++%340LF:0.0:1:3:0x0: ++%*340LF:0.0:0:3: ++%340LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:327:0x1p-969: ++%*340LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:327: ++%340LF:23441674165664647186659237648155017216:1:38:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF:23441674165664647186659237648155017216:0:38: ++%340LF:023441674165664647186659237648155017216.0:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF:023441674165664647186659237648155017216.0:0:41: ++%340LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:309:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:309: ++%340LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:312:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312: ++%340LF:INFINITY:1:8:inf: ++%*340LF:INFINITY:0:8: ++%340LF:+NAN():1:6:nan: ++%*340LF:+NAN():0:6: ++%340LF:+NAN(09A_Zaz):1:13:nan: ++%*340LF:+NAN(09A_Zaz):0:13: ++%340LF:+0:1:2:0x0: ++%*340LF:+0:0:2: ++%340LF:+0.0:1:4:0x0: ++%*340LF:+0.0:0:4: ++%340LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:0x1p-969: ++%*340LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%340LF:+23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF:+23441674165664647186659237648155017216:0:39: ++%340LF:+023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF:+023441674165664647186659237648155017216.0:0:42: ++%340LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%340LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%340LF:+INFINITY:1:9:inf: ++%*340LF:+INFINITY:0:9: ++%3LF: :0:-1: ++%*3LF: :0:-1: ++%3LF: -INFINITY:0:-1: ++%*3LF: -INFINITY:0:-1: ++%3LF: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:4:-0x1: ++%*3LF: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4: ++%3LF: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:4:-0x1.1p4: ++%*3LF: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:4: ++%3LF: -023441674165664647186659237648155017216.0:1:4:-0x1p1: ++%*3LF: -023441674165664647186659237648155017216.0:0:4: ++%3LF: -23441674165664647186659237648155017216:1:4:-0x1.7p4: ++%*3LF: -23441674165664647186659237648155017216:0:4: ++%3LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:4:-0x0: ++%*3LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:4: ++%3LF: -0.0:1:4:-0x0: ++%*3LF: -0.0:0:4: ++%3LF: -0:1:3:-0x0: ++%*3LF: -0:0:3: ++%3LF: -NAN(09A_Zaz):0:-1: ++%*3LF: -NAN(09A_Zaz):0:-1: ++%3LF: -NAN():0:-1: ++%*3LF: -NAN():0:-1: ++%3LF: NAN():1:4:nan: ++%*3LF: NAN():0:4: ++%3LF: NAN(09A_Zaz):1:4:nan: ++%*3LF: NAN(09A_Zaz):0:4: ++%3LF: 0:1:2:0x0: ++%*3LF: 0:0:2: ++%3LF: 0.0:1:4:0x0: ++%*3LF: 0.0:0:4: ++%3LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:4:0x0: ++%*3LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:4: ++%3LF: 23441674165664647186659237648155017216:1:4:0x1.d4p7: ++%*3LF: 23441674165664647186659237648155017216:0:4: ++%3LF: 023441674165664647186659237648155017216.0:1:4:0x1.7p4: ++%*3LF: 023441674165664647186659237648155017216.0:0:4: ++%3LF: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:4:0x1.66p7: ++%*3LF: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:4: ++%3LF: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:4:0x1.1p4: ++%*3LF: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4: ++%3LF: INFINITY:1:4:inf: ++%*3LF: INFINITY:0:4: ++%3LF: +NAN():0:-1: ++%*3LF: +NAN():0:-1: ++%3LF: +NAN(09A_Zaz):0:-1: ++%*3LF: +NAN(09A_Zaz):0:-1: ++%3LF: +0:1:3:0x0: ++%*3LF: +0:0:3: ++%3LF: +0.0:1:4:0x0: ++%*3LF: +0.0:0:4: ++%3LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:4:0x0: ++%*3LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:4: ++%3LF: +23441674165664647186659237648155017216:1:4:0x1.7p4: ++%*3LF: +23441674165664647186659237648155017216:0:4: ++%3LF: +023441674165664647186659237648155017216.0:1:4:0x1p1: ++%*3LF: +023441674165664647186659237648155017216.0:0:4: ++%3LF: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:4:0x1.1p4: ++%*3LF: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:4: ++%3LF: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:4:0x1: ++%*3LF: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4: ++%3LF: +INFINITY:0:-1: ++%*3LF: +INFINITY:0:-1: ++%340LF: :0:-1: ++%*340LF: :0:-1: ++%340LF: -INFINITY:1:10:-inf: ++%*340LF: -INFINITY:0:10: ++%340LF: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:314:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:314: ++%340LF: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:311:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:311: ++%340LF: -023441674165664647186659237648155017216.0:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF: -023441674165664647186659237648155017216.0:0:43: ++%340LF: -23441674165664647186659237648155017216:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF: -23441674165664647186659237648155017216:0:40: ++%340LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:329:-0x1p-969: ++%*340LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:329: ++%340LF: -0.0:1:5:-0x0: ++%*340LF: -0.0:0:5: ++%340LF: -0:1:3:-0x0: ++%*340LF: -0:0:3: ++%340LF: -NAN(09A_Zaz):1:14:-nan: ++%*340LF: -NAN(09A_Zaz):0:14: ++%340LF: -NAN():1:7:-nan: ++%*340LF: -NAN():0:7: ++%340LF: NAN():1:6:nan: ++%*340LF: NAN():0:6: ++%340LF: NAN(09A_Zaz):1:13:nan: ++%*340LF: NAN(09A_Zaz):0:13: ++%340LF: 0:1:2:0x0: ++%*340LF: 0:0:2: ++%340LF: 0.0:1:4:0x0: ++%*340LF: 0.0:0:4: ++%340LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:0x1p-969: ++%*340LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%340LF: 23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF: 23441674165664647186659237648155017216:0:39: ++%340LF: 023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF: 023441674165664647186659237648155017216.0:0:42: ++%340LF: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%340LF: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%340LF: INFINITY:1:9:inf: ++%*340LF: INFINITY:0:9: ++%340LF: +NAN():1:7:nan: ++%*340LF: +NAN():0:7: ++%340LF: +NAN(09A_Zaz):1:14:nan: ++%*340LF: +NAN(09A_Zaz):0:14: ++%340LF: +0:1:3:0x0: ++%*340LF: +0:0:3: ++%340LF: +0.0:1:5:0x0: ++%*340LF: +0.0:0:5: ++%340LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:329:0x1p-969: ++%*340LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:329: ++%340LF: +23441674165664647186659237648155017216:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF: +23441674165664647186659237648155017216:0:40: ++%340LF: +023441674165664647186659237648155017216.0:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF: +023441674165664647186659237648155017216.0:0:43: ++%340LF: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:311:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:311: ++%340LF: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:314:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:314: ++%340LF: +INFINITY:1:10:inf: ++%*340LF: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-g.input +new file mode 100644 +index 0000000000000000..c500aa8d012c5c89 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-g.input +@@ -0,0 +1,682 @@ ++%Lg::0:-1: ++%*Lg::0:-1: ++%Lg:-infinity:1:9:-inf: ++%*Lg:-infinity:0:9: ++%Lg:-0xf.ffffffffffffbffffffffffffcp+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%Lg:-0x7.ffffffffffffdffffffffffffep1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lg:-0x7.ffffffffffffdffffffffffffep1021:0:36: ++%Lg:-0x2.3456789abcdef0123456789abcp+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lg:-0x2.3456789abcdef0123456789abcp+123:0:36: ++%Lg:-0x2.3456789abcdef0123456789abcp0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lg:-0x2.3456789abcdef0123456789abcp0123:0:36: ++%Lg:-0x8p-972:1:9:-0x1p-969: ++%*Lg:-0x8p-972:0:9: ++%Lg:-0x0p+0:1:7:-0x0: ++%*Lg:-0x0p+0:0:7: ++%Lg:-0x0p0:1:6:-0x0: ++%*Lg:-0x0p0:0:6: ++%Lg:-nan(09A_Zaz):1:13:-nan: ++%*Lg:-nan(09A_Zaz):0:13: ++%Lg:-nan():1:6:-nan: ++%*Lg:-nan():0:6: ++%Lg:nan():1:5:nan: ++%*Lg:nan():0:5: ++%Lg:nan(09A_Zaz):1:12:nan: ++%*Lg:nan(09A_Zaz):0:12: ++%Lg:0x0p0:1:5:0x0: ++%*Lg:0x0p0:0:5: ++%Lg:0x0p+0:1:6:0x0: ++%*Lg:0x0p+0:0:6: ++%Lg:0x8p-972:1:8:0x1p-969: ++%*Lg:0x8p-972:0:8: ++%Lg:0x2.3456789abcdef0123456789abcp0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lg:0x2.3456789abcdef0123456789abcp0123:0:35: ++%Lg:0x2.3456789abcdef0123456789abcp+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lg:0x2.3456789abcdef0123456789abcp+123:0:35: ++%Lg:0x7.ffffffffffffdffffffffffffep1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lg:0x7.ffffffffffffdffffffffffffep1021:0:35: ++%Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:36: ++%Lg:infinity:1:8:inf: ++%*Lg:infinity:0:8: ++%Lg:+nan():1:6:nan: ++%*Lg:+nan():0:6: ++%Lg:+nan(09A_Zaz):1:13:nan: ++%*Lg:+nan(09A_Zaz):0:13: ++%Lg:+0x0p0:1:6:0x0: ++%*Lg:+0x0p0:0:6: ++%Lg:+0x0p+0:1:7:0x0: ++%*Lg:+0x0p+0:0:7: ++%Lg:+0x8p-972:1:9:0x1p-969: ++%*Lg:+0x8p-972:0:9: ++%Lg:+0x2.3456789abcdef0123456789abcp0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lg:+0x2.3456789abcdef0123456789abcp0123:0:36: ++%Lg:+0x2.3456789abcdef0123456789abcp+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lg:+0x2.3456789abcdef0123456789abcp+123:0:36: ++%Lg:+0x7.ffffffffffffdffffffffffffep1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lg:+0x7.ffffffffffffdffffffffffffep1021:0:36: ++%Lg:+0xf.ffffffffffffbffffffffffffcp+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%Lg:+infinity:1:9:inf: ++%*Lg:+infinity:0:9: ++%1Lg::0:-1: ++%*1Lg::0:-1: ++%1Lg:-infinity:0:-1: ++%*1Lg:-infinity:0:-1: ++%1Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%*1Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%1Lg:-0x7.ffffffffffffdffffffffffffep1021:0:-1: ++%*1Lg:-0x7.ffffffffffffdffffffffffffep1021:0:-1: ++%1Lg:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++%*1Lg:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++%1Lg:-0x2.3456789abcdef0123456789abcp0123:0:-1: ++%*1Lg:-0x2.3456789abcdef0123456789abcp0123:0:-1: ++%1Lg:-0x8p-972:0:-1: ++%*1Lg:-0x8p-972:0:-1: ++%1Lg:-0x0p+0:0:-1: ++%*1Lg:-0x0p+0:0:-1: ++%1Lg:-0x0p0:0:-1: ++%*1Lg:-0x0p0:0:-1: ++%1Lg:-nan(09A_Zaz):0:-1: ++%*1Lg:-nan(09A_Zaz):0:-1: ++%1Lg:-nan():0:-1: ++%*1Lg:-nan():0:-1: ++%1Lg:nan():0:-1: ++%*1Lg:nan():0:-1: ++%1Lg:nan(09A_Zaz):0:-1: ++%*1Lg:nan(09A_Zaz):0:-1: ++%1Lg:0x0p0:1:1:0x0: ++%*1Lg:0x0p0:0:1: ++%1Lg:0x0p+0:1:1:0x0: ++%*1Lg:0x0p+0:0:1: ++%1Lg:0x8p-972:1:1:0x0: ++%*1Lg:0x8p-972:0:1: ++%1Lg:0x2.3456789abcdef0123456789abcp0123:1:1:0x0: ++%*1Lg:0x2.3456789abcdef0123456789abcp0123:0:1: ++%1Lg:0x2.3456789abcdef0123456789abcp+123:1:1:0x0: ++%*1Lg:0x2.3456789abcdef0123456789abcp+123:0:1: ++%1Lg:0x7.ffffffffffffdffffffffffffep1021:1:1:0x0: ++%*1Lg:0x7.ffffffffffffdffffffffffffep1021:0:1: ++%1Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:1:0x0: ++%*1Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:1: ++%1Lg:infinity:0:-1: ++%*1Lg:infinity:0:-1: ++%1Lg:+nan():0:-1: ++%*1Lg:+nan():0:-1: ++%1Lg:+nan(09A_Zaz):0:-1: ++%*1Lg:+nan(09A_Zaz):0:-1: ++%1Lg:+0x0p0:0:-1: ++%*1Lg:+0x0p0:0:-1: ++%1Lg:+0x0p+0:0:-1: ++%*1Lg:+0x0p+0:0:-1: ++%1Lg:+0x8p-972:0:-1: ++%*1Lg:+0x8p-972:0:-1: ++%1Lg:+0x2.3456789abcdef0123456789abcp0123:0:-1: ++%*1Lg:+0x2.3456789abcdef0123456789abcp0123:0:-1: ++%1Lg:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++%*1Lg:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++%1Lg:+0x7.ffffffffffffdffffffffffffep1021:0:-1: ++%*1Lg:+0x7.ffffffffffffdffffffffffffep1021:0:-1: ++%1Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%*1Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%1Lg:+infinity:0:-1: ++%*1Lg:+infinity:0:-1: ++%2Lg::0:-1: ++%*2Lg::0:-1: ++%2Lg:-infinity:0:-1: ++%*2Lg:-infinity:0:-1: ++%2Lg:-0xf.ffffffffffffbffffffffffffcp+1020:1:2:-0x0: ++%*2Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:2: ++%2Lg:-0x7.ffffffffffffdffffffffffffep1021:1:2:-0x0: ++%*2Lg:-0x7.ffffffffffffdffffffffffffep1021:0:2: ++%2Lg:-0x2.3456789abcdef0123456789abcp+123:1:2:-0x0: ++%*2Lg:-0x2.3456789abcdef0123456789abcp+123:0:2: ++%2Lg:-0x2.3456789abcdef0123456789abcp0123:1:2:-0x0: ++%*2Lg:-0x2.3456789abcdef0123456789abcp0123:0:2: ++%2Lg:-0x8p-972:1:2:-0x0: ++%*2Lg:-0x8p-972:0:2: ++%2Lg:-0x0p+0:1:2:-0x0: ++%*2Lg:-0x0p+0:0:2: ++%2Lg:-0x0p0:1:2:-0x0: ++%*2Lg:-0x0p0:0:2: ++%2Lg:-nan(09A_Zaz):0:-1: ++%*2Lg:-nan(09A_Zaz):0:-1: ++%2Lg:-nan():0:-1: ++%*2Lg:-nan():0:-1: ++%2Lg:nan():0:-1: ++%*2Lg:nan():0:-1: ++%2Lg:nan(09A_Zaz):0:-1: ++%*2Lg:nan(09A_Zaz):0:-1: ++# BZ12701 %2Lg:0x0p0:0:-1: ++# BZ12701 %*2Lg:0x0p0:0:-1: ++# BZ12701 %2Lg:0x0p+0:0:-1: ++# BZ12701 %*2Lg:0x0p+0:0:-1: ++# BZ12701 %2Lg:0x8p-972:0:-1: ++# BZ12701 %*2Lg:0x8p-972:0:-1: ++# BZ12701 %2Lg:0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %*2Lg:0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %2Lg:0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*2Lg:0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %2Lg:0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %*2Lg:0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %2Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*2Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%2Lg:infinity:0:-1: ++%*2Lg:infinity:0:-1: ++%2Lg:+nan():0:-1: ++%*2Lg:+nan():0:-1: ++%2Lg:+nan(09A_Zaz):0:-1: ++%*2Lg:+nan(09A_Zaz):0:-1: ++%2Lg:+0x0p0:1:2:0x0: ++%*2Lg:+0x0p0:0:2: ++%2Lg:+0x0p+0:1:2:0x0: ++%*2Lg:+0x0p+0:0:2: ++%2Lg:+0x8p-972:1:2:0x0: ++%*2Lg:+0x8p-972:0:2: ++%2Lg:+0x2.3456789abcdef0123456789abcp0123:1:2:0x0: ++%*2Lg:+0x2.3456789abcdef0123456789abcp0123:0:2: ++%2Lg:+0x2.3456789abcdef0123456789abcp+123:1:2:0x0: ++%*2Lg:+0x2.3456789abcdef0123456789abcp+123:0:2: ++%2Lg:+0x7.ffffffffffffdffffffffffffep1021:1:2:0x0: ++%*2Lg:+0x7.ffffffffffffdffffffffffffep1021:0:2: ++%2Lg:+0xf.ffffffffffffbffffffffffffcp+1020:1:2:0x0: ++%*2Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:2: ++%2Lg:+infinity:0:-1: ++%*2Lg:+infinity:0:-1: ++%3Lg::0:-1: ++%*3Lg::0:-1: ++%3Lg:-infinity:0:-1: ++%*3Lg:-infinity:0:-1: ++# BZ12701 %3Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*3Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %3Lg:-0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %*3Lg:-0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %3Lg:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*3Lg:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %3Lg:-0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %*3Lg:-0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %3Lg:-0x8p-972:0:-1: ++# BZ12701 %*3Lg:-0x8p-972:0:-1: ++# BZ12701 %3Lg:-0x0p+0:0:-1: ++# BZ12701 %*3Lg:-0x0p+0:0:-1: ++# BZ12701 %3Lg:-0x0p0:0:-1: ++# BZ12701 %*3Lg:-0x0p0:0:-1: ++%3Lg:-nan(09A_Zaz):0:-1: ++%*3Lg:-nan(09A_Zaz):0:-1: ++%3Lg:-nan():0:-1: ++%*3Lg:-nan():0:-1: ++%3Lg:nan():1:3:nan: ++%*3Lg:nan():0:3: ++%3Lg:nan(09A_Zaz):1:3:nan: ++%*3Lg:nan(09A_Zaz):0:3: ++%3Lg:0x0p0:1:3:0x0: ++%*3Lg:0x0p0:0:3: ++%3Lg:0x0p+0:1:3:0x0: ++%*3Lg:0x0p+0:0:3: ++%3Lg:0x8p-972:1:3:0x1p3: ++%*3Lg:0x8p-972:0:3: ++%3Lg:0x2.3456789abcdef0123456789abcp0123:1:3:0x1p1: ++%*3Lg:0x2.3456789abcdef0123456789abcp0123:0:3: ++%3Lg:0x2.3456789abcdef0123456789abcp+123:1:3:0x1p1: ++%*3Lg:0x2.3456789abcdef0123456789abcp+123:0:3: ++%3Lg:0x7.ffffffffffffdffffffffffffep1021:1:3:0x1.cp2: ++%*3Lg:0x7.ffffffffffffdffffffffffffep1021:0:3: ++%3Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:3:0x1.ep3: ++%*3Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:3: ++%3Lg:infinity:1:3:inf: ++%*3Lg:infinity:0:3: ++%3Lg:+nan():0:-1: ++%*3Lg:+nan():0:-1: ++%3Lg:+nan(09A_Zaz):0:-1: ++%*3Lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %3Lg:+0x0p0:0:-1: ++# BZ12701 %*3Lg:+0x0p0:0:-1: ++# BZ12701 %3Lg:+0x0p+0:0:-1: ++# BZ12701 %*3Lg:+0x0p+0:0:-1: ++# BZ12701 %3Lg:+0x8p-972:0:-1: ++# BZ12701 %*3Lg:+0x8p-972:0:-1: ++# BZ12701 %3Lg:+0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %*3Lg:+0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %3Lg:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*3Lg:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %3Lg:+0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %*3Lg:+0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %3Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*3Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%3Lg:+infinity:0:-1: ++%*3Lg:+infinity:0:-1: ++%4Lg::0:-1: ++%*4Lg::0:-1: ++%4Lg:-infinity:1:4:-inf: ++%*4Lg:-infinity:0:4: ++%4Lg:-0xf.ffffffffffffbffffffffffffcp+1020:1:4:-0x1.ep3: ++%*4Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:4: ++%4Lg:-0x7.ffffffffffffdffffffffffffep1021:1:4:-0x1.cp2: ++%*4Lg:-0x7.ffffffffffffdffffffffffffep1021:0:4: ++%4Lg:-0x2.3456789abcdef0123456789abcp+123:1:4:-0x1p1: ++%*4Lg:-0x2.3456789abcdef0123456789abcp+123:0:4: ++%4Lg:-0x2.3456789abcdef0123456789abcp0123:1:4:-0x1p1: ++%*4Lg:-0x2.3456789abcdef0123456789abcp0123:0:4: ++%4Lg:-0x8p-972:1:4:-0x1p3: ++%*4Lg:-0x8p-972:0:4: ++%4Lg:-0x0p+0:1:4:-0x0: ++%*4Lg:-0x0p+0:0:4: ++%4Lg:-0x0p0:1:4:-0x0: ++%*4Lg:-0x0p0:0:4: ++%4Lg:-nan(09A_Zaz):1:4:-nan: ++%*4Lg:-nan(09A_Zaz):0:4: ++%4Lg:-nan():1:4:-nan: ++%*4Lg:-nan():0:4: ++%4Lg:nan():0:-1: ++%*4Lg:nan():0:-1: ++%4Lg:nan(09A_Zaz):0:-1: ++%*4Lg:nan(09A_Zaz):0:-1: ++# BZ12701 %4Lg:0x0p0:0:-1: ++# BZ12701 %*4Lg:0x0p0:0:-1: ++# BZ12701 %4Lg:0x0p+0:0:-1: ++# BZ12701 %*4Lg:0x0p+0:0:-1: ++# BZ12701 %4Lg:0x8p-972:0:-1: ++# BZ12701 %*4Lg:0x8p-972:0:-1: ++%4Lg:0x2.3456789abcdef0123456789abcp0123:1:4:0x1p1: ++%*4Lg:0x2.3456789abcdef0123456789abcp0123:0:4: ++%4Lg:0x2.3456789abcdef0123456789abcp+123:1:4:0x1p1: ++%*4Lg:0x2.3456789abcdef0123456789abcp+123:0:4: ++%4Lg:0x7.ffffffffffffdffffffffffffep1021:1:4:0x1.cp2: ++%*4Lg:0x7.ffffffffffffdffffffffffffep1021:0:4: ++%4Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:4:0x1.ep3: ++%*4Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:4: ++%4Lg:infinity:0:-1: ++%*4Lg:infinity:0:-1: ++%4Lg:+nan():1:4:nan: ++%*4Lg:+nan():0:4: ++%4Lg:+nan(09A_Zaz):1:4:nan: ++%*4Lg:+nan(09A_Zaz):0:4: ++%4Lg:+0x0p0:1:4:0x0: ++%*4Lg:+0x0p0:0:4: ++%4Lg:+0x0p+0:1:4:0x0: ++%*4Lg:+0x0p+0:0:4: ++%4Lg:+0x8p-972:1:4:0x1p3: ++%*4Lg:+0x8p-972:0:4: ++%4Lg:+0x2.3456789abcdef0123456789abcp0123:1:4:0x1p1: ++%*4Lg:+0x2.3456789abcdef0123456789abcp0123:0:4: ++%4Lg:+0x2.3456789abcdef0123456789abcp+123:1:4:0x1p1: ++%*4Lg:+0x2.3456789abcdef0123456789abcp+123:0:4: ++%4Lg:+0x7.ffffffffffffdffffffffffffep1021:1:4:0x1.cp2: ++%*4Lg:+0x7.ffffffffffffdffffffffffffep1021:0:4: ++%4Lg:+0xf.ffffffffffffbffffffffffffcp+1020:1:4:0x1.ep3: ++%*4Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:4: ++%4Lg:+infinity:1:4:inf: ++%*4Lg:+infinity:0:4: ++%5Lg::0:-1: ++%*5Lg::0:-1: ++%5Lg:-infinity:0:-1: ++%*5Lg:-infinity:0:-1: ++%5Lg:-0xf.ffffffffffffbffffffffffffcp+1020:1:5:-0x1.ep3: ++%*5Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:5: ++%5Lg:-0x7.ffffffffffffdffffffffffffep1021:1:5:-0x1.cp2: ++%*5Lg:-0x7.ffffffffffffdffffffffffffep1021:0:5: ++%5Lg:-0x2.3456789abcdef0123456789abcp+123:1:5:-0x1p1: ++%*5Lg:-0x2.3456789abcdef0123456789abcp+123:0:5: ++%5Lg:-0x2.3456789abcdef0123456789abcp0123:1:5:-0x1p1: ++%*5Lg:-0x2.3456789abcdef0123456789abcp0123:0:5: ++# BZ12701 %5Lg:-0x8p-972:0:-1: ++# BZ12701 %*5Lg:-0x8p-972:0:-1: ++# BZ12701 %5Lg:-0x0p+0:0:-1: ++# BZ12701 %*5Lg:-0x0p+0:0:-1: ++# BZ12701 %5Lg:-0x0p0:0:-1: ++# BZ12701 %*5Lg:-0x0p0:0:-1: ++%5Lg:-nan(09A_Zaz):0:-1: ++%*5Lg:-nan(09A_Zaz):0:-1: ++%5Lg:-nan():0:-1: ++%*5Lg:-nan():0:-1: ++%5Lg:nan():1:5:nan: ++%*5Lg:nan():0:5: ++%5Lg:nan(09A_Zaz):0:-1: ++%*5Lg:nan(09A_Zaz):0:-1: ++%5Lg:0x0p0:1:5:0x0: ++%*5Lg:0x0p0:0:5: ++# BZ12701 %5Lg:0x0p+0:0:-1: ++# BZ12701 %*5Lg:0x0p+0:0:-1: ++# BZ12701 %5Lg:0x8p-972:0:-1: ++# BZ12701 %*5Lg:0x8p-972:0:-1: ++%5Lg:0x2.3456789abcdef0123456789abcp0123:1:5:0x1.18p1: ++%*5Lg:0x2.3456789abcdef0123456789abcp0123:0:5: ++%5Lg:0x2.3456789abcdef0123456789abcp+123:1:5:0x1.18p1: ++%*5Lg:0x2.3456789abcdef0123456789abcp+123:0:5: ++%5Lg:0x7.ffffffffffffdffffffffffffep1021:1:5:0x1.fcp2: ++%*5Lg:0x7.ffffffffffffdffffffffffffep1021:0:5: ++%5Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:5:0x1.fep3: ++%*5Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:5: ++%5Lg:infinity:0:-1: ++%*5Lg:infinity:0:-1: ++%5Lg:+nan():0:-1: ++%*5Lg:+nan():0:-1: ++%5Lg:+nan(09A_Zaz):0:-1: ++%*5Lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %5Lg:+0x0p0:0:-1: ++# BZ12701 %*5Lg:+0x0p0:0:-1: ++# BZ12701 %5Lg:+0x0p+0:0:-1: ++# BZ12701 %*5Lg:+0x0p+0:0:-1: ++# BZ12701 %5Lg:+0x8p-972:0:-1: ++# BZ12701 %*5Lg:+0x8p-972:0:-1: ++%5Lg:+0x2.3456789abcdef0123456789abcp0123:1:5:0x1p1: ++%*5Lg:+0x2.3456789abcdef0123456789abcp0123:0:5: ++%5Lg:+0x2.3456789abcdef0123456789abcp+123:1:5:0x1p1: ++%*5Lg:+0x2.3456789abcdef0123456789abcp+123:0:5: ++%5Lg:+0x7.ffffffffffffdffffffffffffep1021:1:5:0x1.cp2: ++%*5Lg:+0x7.ffffffffffffdffffffffffffep1021:0:5: ++%5Lg:+0xf.ffffffffffffbffffffffffffcp+1020:1:5:0x1.ep3: ++%*5Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:5: ++%5Lg:+infinity:0:-1: ++%*5Lg:+infinity:0:-1: ++%6Lg::0:-1: ++%*6Lg::0:-1: ++%6Lg:-infinity:0:-1: ++%*6Lg:-infinity:0:-1: ++%6Lg:-0xf.ffffffffffffbffffffffffffcp+1020:1:6:-0x1.fep3: ++%*6Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%6Lg:-0x7.ffffffffffffdffffffffffffep1021:1:6:-0x1.fcp2: ++%*6Lg:-0x7.ffffffffffffdffffffffffffep1021:0:6: ++%6Lg:-0x2.3456789abcdef0123456789abcp+123:1:6:-0x1.18p1: ++%*6Lg:-0x2.3456789abcdef0123456789abcp+123:0:6: ++%6Lg:-0x2.3456789abcdef0123456789abcp0123:1:6:-0x1.18p1: ++%*6Lg:-0x2.3456789abcdef0123456789abcp0123:0:6: ++# BZ12701 %6Lg:-0x8p-972:0:-1: ++# BZ12701 %*6Lg:-0x8p-972:0:-1: ++# BZ12701 %6Lg:-0x0p+0:0:-1: ++# BZ12701 %*6Lg:-0x0p+0:0:-1: ++%6Lg:-0x0p0:1:6:-0x0: ++%*6Lg:-0x0p0:0:6: ++%6Lg:-nan(09A_Zaz):0:-1: ++%*6Lg:-nan(09A_Zaz):0:-1: ++%6Lg:-nan():1:6:-nan: ++%*6Lg:-nan():0:6: ++%6Lg:nan():1:5:nan: ++%*6Lg:nan():0:5: ++%6Lg:nan(09A_Zaz):0:-1: ++%*6Lg:nan(09A_Zaz):0:-1: ++%6Lg:0x0p0:1:5:0x0: ++%*6Lg:0x0p0:0:5: ++%6Lg:0x0p+0:1:6:0x0: ++%*6Lg:0x0p+0:0:6: ++%6Lg:0x8p-972:1:6:0x1p-6: ++%*6Lg:0x8p-972:0:6: ++%6Lg:0x2.3456789abcdef0123456789abcp0123:1:6:0x1.1ap1: ++%*6Lg:0x2.3456789abcdef0123456789abcp0123:0:6: ++%6Lg:0x2.3456789abcdef0123456789abcp+123:1:6:0x1.1ap1: ++%*6Lg:0x2.3456789abcdef0123456789abcp+123:0:6: ++%6Lg:0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.ffcp2: ++%*6Lg:0x7.ffffffffffffdffffffffffffep1021:0:6: ++%6Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.ffep3: ++%*6Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%6Lg:infinity:0:-1: ++%*6Lg:infinity:0:-1: ++%6Lg:+nan():1:6:nan: ++%*6Lg:+nan():0:6: ++%6Lg:+nan(09A_Zaz):0:-1: ++%*6Lg:+nan(09A_Zaz):0:-1: ++%6Lg:+0x0p0:1:6:0x0: ++%*6Lg:+0x0p0:0:6: ++# BZ12701 %6Lg:+0x0p+0:0:-1: ++# BZ12701 %*6Lg:+0x0p+0:0:-1: ++# BZ12701 %6Lg:+0x8p-972:0:-1: ++# BZ12701 %*6Lg:+0x8p-972:0:-1: ++%6Lg:+0x2.3456789abcdef0123456789abcp0123:1:6:0x1.18p1: ++%*6Lg:+0x2.3456789abcdef0123456789abcp0123:0:6: ++%6Lg:+0x2.3456789abcdef0123456789abcp+123:1:6:0x1.18p1: ++%*6Lg:+0x2.3456789abcdef0123456789abcp+123:0:6: ++%6Lg:+0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.fcp2: ++%*6Lg:+0x7.ffffffffffffdffffffffffffep1021:0:6: ++%6Lg:+0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.fep3: ++%*6Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%6Lg:+infinity:0:-1: ++%*6Lg:+infinity:0:-1: ++%33Lg::0:-1: ++%*33Lg::0:-1: ++%33Lg:-infinity:1:9:-inf: ++%*33Lg:-infinity:0:9: ++# BZ12701 %33Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*33Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%33Lg:-0x7.ffffffffffffdffffffffffffep1021:1:33:-0x1.fffffffffffff7ffffffffffff8p3: ++%*33Lg:-0x7.ffffffffffffdffffffffffffep1021:0:33: ++# BZ12701 %33Lg:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*33Lg:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++%33Lg:-0x2.3456789abcdef0123456789abcp0123:1:33:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep1: ++%*33Lg:-0x2.3456789abcdef0123456789abcp0123:0:33: ++%33Lg:-0x8p-972:1:9:-0x1p-969: ++%*33Lg:-0x8p-972:0:9: ++%33Lg:-0x0p+0:1:7:-0x0: ++%*33Lg:-0x0p+0:0:7: ++%33Lg:-0x0p0:1:6:-0x0: ++%*33Lg:-0x0p0:0:6: ++%33Lg:-nan(09A_Zaz):1:13:-nan: ++%*33Lg:-nan(09A_Zaz):0:13: ++%33Lg:-nan():1:6:-nan: ++%*33Lg:-nan():0:6: ++%33Lg:nan():1:5:nan: ++%*33Lg:nan():0:5: ++%33Lg:nan(09A_Zaz):1:12:nan: ++%*33Lg:nan(09A_Zaz):0:12: ++%33Lg:0x0p0:1:5:0x0: ++%*33Lg:0x0p0:0:5: ++%33Lg:0x0p+0:1:6:0x0: ++%*33Lg:0x0p+0:0:6: ++%33Lg:0x8p-972:1:8:0x1p-969: ++%*33Lg:0x8p-972:0:8: ++%33Lg:0x2.3456789abcdef0123456789abcp0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2: ++%*33Lg:0x2.3456789abcdef0123456789abcp0123:0:33: ++%33Lg:0x2.3456789abcdef0123456789abcp+123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2: ++%*33Lg:0x2.3456789abcdef0123456789abcp+123:0:33: ++%33Lg:0x7.ffffffffffffdffffffffffffep1021:1:33:0x1.fffffffffffff7ffffffffffff8p12: ++%*33Lg:0x7.ffffffffffffdffffffffffffep1021:0:33: ++%33Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:33:0x1.fffffffffffff7ffffffffffff8p4: ++%*33Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:33: ++%33Lg:infinity:1:8:inf: ++%*33Lg:infinity:0:8: ++%33Lg:+nan():1:6:nan: ++%*33Lg:+nan():0:6: ++%33Lg:+nan(09A_Zaz):1:13:nan: ++%*33Lg:+nan(09A_Zaz):0:13: ++%33Lg:+0x0p0:1:6:0x0: ++%*33Lg:+0x0p0:0:6: ++%33Lg:+0x0p+0:1:7:0x0: ++%*33Lg:+0x0p+0:0:7: ++%33Lg:+0x8p-972:1:9:0x1p-969: ++%*33Lg:+0x8p-972:0:9: ++%33Lg:+0x2.3456789abcdef0123456789abcp0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep1: ++%*33Lg:+0x2.3456789abcdef0123456789abcp0123:0:33: ++# BZ12701 %33Lg:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*33Lg:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++%33Lg:+0x7.ffffffffffffdffffffffffffep1021:1:33:0x1.fffffffffffff7ffffffffffff8p3: ++%*33Lg:+0x7.ffffffffffffdffffffffffffep1021:0:33: ++# BZ12701 %33Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*33Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%33Lg:+infinity:1:9:inf: ++%*33Lg:+infinity:0:9: ++%50Lg::0:-1: ++%*50Lg::0:-1: ++%50Lg:-infinity:1:9:-inf: ++%*50Lg:-infinity:0:9: ++%50Lg:-0xf.ffffffffffffbffffffffffffcp+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%50Lg:-0x7.ffffffffffffdffffffffffffep1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg:-0x7.ffffffffffffdffffffffffffep1021:0:36: ++%50Lg:-0x2.3456789abcdef0123456789abcp+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg:-0x2.3456789abcdef0123456789abcp+123:0:36: ++%50Lg:-0x2.3456789abcdef0123456789abcp0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg:-0x2.3456789abcdef0123456789abcp0123:0:36: ++%50Lg:-0x8p-972:1:9:-0x1p-969: ++%*50Lg:-0x8p-972:0:9: ++%50Lg:-0x0p+0:1:7:-0x0: ++%*50Lg:-0x0p+0:0:7: ++%50Lg:-0x0p0:1:6:-0x0: ++%*50Lg:-0x0p0:0:6: ++%50Lg:-nan(09A_Zaz):1:13:-nan: ++%*50Lg:-nan(09A_Zaz):0:13: ++%50Lg:-nan():1:6:-nan: ++%*50Lg:-nan():0:6: ++%50Lg:nan():1:5:nan: ++%*50Lg:nan():0:5: ++%50Lg:nan(09A_Zaz):1:12:nan: ++%*50Lg:nan(09A_Zaz):0:12: ++%50Lg:0x0p0:1:5:0x0: ++%*50Lg:0x0p0:0:5: ++%50Lg:0x0p+0:1:6:0x0: ++%*50Lg:0x0p+0:0:6: ++%50Lg:0x8p-972:1:8:0x1p-969: ++%*50Lg:0x8p-972:0:8: ++%50Lg:0x2.3456789abcdef0123456789abcp0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg:0x2.3456789abcdef0123456789abcp0123:0:35: ++%50Lg:0x2.3456789abcdef0123456789abcp+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg:0x2.3456789abcdef0123456789abcp+123:0:35: ++%50Lg:0x7.ffffffffffffdffffffffffffep1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg:0x7.ffffffffffffdffffffffffffep1021:0:35: ++%50Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:36: ++%50Lg:infinity:1:8:inf: ++%*50Lg:infinity:0:8: ++%50Lg:+nan():1:6:nan: ++%*50Lg:+nan():0:6: ++%50Lg:+nan(09A_Zaz):1:13:nan: ++%*50Lg:+nan(09A_Zaz):0:13: ++%50Lg:+0x0p0:1:6:0x0: ++%*50Lg:+0x0p0:0:6: ++%50Lg:+0x0p+0:1:7:0x0: ++%*50Lg:+0x0p+0:0:7: ++%50Lg:+0x8p-972:1:9:0x1p-969: ++%*50Lg:+0x8p-972:0:9: ++%50Lg:+0x2.3456789abcdef0123456789abcp0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg:+0x2.3456789abcdef0123456789abcp0123:0:36: ++%50Lg:+0x2.3456789abcdef0123456789abcp+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg:+0x2.3456789abcdef0123456789abcp+123:0:36: ++%50Lg:+0x7.ffffffffffffdffffffffffffep1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg:+0x7.ffffffffffffdffffffffffffep1021:0:36: ++%50Lg:+0xf.ffffffffffffbffffffffffffcp+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%50Lg:+infinity:1:9:inf: ++%*50Lg:+infinity:0:9: ++%5Lg: :0:-1: ++%*5Lg: :0:-1: ++%5Lg: -infinity:0:-1: ++%*5Lg: -infinity:0:-1: ++%5Lg: -0xf.ffffffffffffbffffffffffffcp+1020:1:6:-0x1.ep3: ++%*5Lg: -0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%5Lg: -0x7.ffffffffffffdffffffffffffep1021:1:6:-0x1.cp2: ++%*5Lg: -0x7.ffffffffffffdffffffffffffep1021:0:6: ++%5Lg: -0x2.3456789abcdef0123456789abcp+123:1:6:-0x1p1: ++%*5Lg: -0x2.3456789abcdef0123456789abcp+123:0:6: ++%5Lg: -0x2.3456789abcdef0123456789abcp0123:1:6:-0x1p1: ++%*5Lg: -0x2.3456789abcdef0123456789abcp0123:0:6: ++# BZ12701 %5Lg: -0x8p-972:0:-1: ++# BZ12701 %*5Lg: -0x8p-972:0:-1: ++# BZ12701 %5Lg: -0x0p+0:0:-1: ++# BZ12701 %*5Lg: -0x0p+0:0:-1: ++# BZ12701 %5Lg: -0x0p0:0:-1: ++# BZ12701 %*5Lg: -0x0p0:0:-1: ++%5Lg: -nan(09A_Zaz):0:-1: ++%*5Lg: -nan(09A_Zaz):0:-1: ++%5Lg: -nan():0:-1: ++%*5Lg: -nan():0:-1: ++%5Lg: nan():1:6:nan: ++%*5Lg: nan():0:6: ++%5Lg: nan(09A_Zaz):0:-1: ++%*5Lg: nan(09A_Zaz):0:-1: ++%5Lg: 0x0p0:1:6:0x0: ++%*5Lg: 0x0p0:0:6: ++# BZ12701 %5Lg: 0x0p+0:0:-1: ++# BZ12701 %*5Lg: 0x0p+0:0:-1: ++# BZ12701 %5Lg: 0x8p-972:0:-1: ++# BZ12701 %*5Lg: 0x8p-972:0:-1: ++%5Lg: 0x2.3456789abcdef0123456789abcp0123:1:6:0x1.18p1: ++%*5Lg: 0x2.3456789abcdef0123456789abcp0123:0:6: ++%5Lg: 0x2.3456789abcdef0123456789abcp+123:1:6:0x1.18p1: ++%*5Lg: 0x2.3456789abcdef0123456789abcp+123:0:6: ++%5Lg: 0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.fcp2: ++%*5Lg: 0x7.ffffffffffffdffffffffffffep1021:0:6: ++%5Lg: 0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.fep3: ++%*5Lg: 0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%5Lg: infinity:0:-1: ++%*5Lg: infinity:0:-1: ++%5Lg: +nan():0:-1: ++%*5Lg: +nan():0:-1: ++%5Lg: +nan(09A_Zaz):0:-1: ++%*5Lg: +nan(09A_Zaz):0:-1: ++# BZ12701 %5Lg: +0x0p0:0:-1: ++# BZ12701 %*5Lg: +0x0p0:0:-1: ++# BZ12701 %5Lg: +0x0p+0:0:-1: ++# BZ12701 %*5Lg: +0x0p+0:0:-1: ++# BZ12701 %5Lg: +0x8p-972:0:-1: ++# BZ12701 %*5Lg: +0x8p-972:0:-1: ++%5Lg: +0x2.3456789abcdef0123456789abcp0123:1:6:0x1p1: ++%*5Lg: +0x2.3456789abcdef0123456789abcp0123:0:6: ++%5Lg: +0x2.3456789abcdef0123456789abcp+123:1:6:0x1p1: ++%*5Lg: +0x2.3456789abcdef0123456789abcp+123:0:6: ++%5Lg: +0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.cp2: ++%*5Lg: +0x7.ffffffffffffdffffffffffffep1021:0:6: ++%5Lg: +0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.ep3: ++%*5Lg: +0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%5Lg: +infinity:0:-1: ++%*5Lg: +infinity:0:-1: ++%50Lg: :0:-1: ++%*50Lg: :0:-1: ++%50Lg: -infinity:1:10:-inf: ++%*50Lg: -infinity:0:10: ++%50Lg: -0xf.ffffffffffffbffffffffffffcp+1020:1:38:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg: -0xf.ffffffffffffbffffffffffffcp+1020:0:38: ++%50Lg: -0x7.ffffffffffffdffffffffffffep1021:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg: -0x7.ffffffffffffdffffffffffffep1021:0:37: ++%50Lg: -0x2.3456789abcdef0123456789abcp+123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg: -0x2.3456789abcdef0123456789abcp+123:0:37: ++%50Lg: -0x2.3456789abcdef0123456789abcp0123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg: -0x2.3456789abcdef0123456789abcp0123:0:37: ++%50Lg: -0x8p-972:1:10:-0x1p-969: ++%*50Lg: -0x8p-972:0:10: ++%50Lg: -0x0p+0:1:8:-0x0: ++%*50Lg: -0x0p+0:0:8: ++%50Lg: -0x0p0:1:7:-0x0: ++%*50Lg: -0x0p0:0:7: ++%50Lg: -nan(09A_Zaz):1:14:-nan: ++%*50Lg: -nan(09A_Zaz):0:14: ++%50Lg: -nan():1:7:-nan: ++%*50Lg: -nan():0:7: ++%50Lg: nan():1:6:nan: ++%*50Lg: nan():0:6: ++%50Lg: nan(09A_Zaz):1:13:nan: ++%*50Lg: nan(09A_Zaz):0:13: ++%50Lg: 0x0p0:1:6:0x0: ++%*50Lg: 0x0p0:0:6: ++%50Lg: 0x0p+0:1:7:0x0: ++%*50Lg: 0x0p+0:0:7: ++%50Lg: 0x8p-972:1:9:0x1p-969: ++%*50Lg: 0x8p-972:0:9: ++%50Lg: 0x2.3456789abcdef0123456789abcp0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg: 0x2.3456789abcdef0123456789abcp0123:0:36: ++%50Lg: 0x2.3456789abcdef0123456789abcp+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg: 0x2.3456789abcdef0123456789abcp+123:0:36: ++%50Lg: 0x7.ffffffffffffdffffffffffffep1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg: 0x7.ffffffffffffdffffffffffffep1021:0:36: ++%50Lg: 0xf.ffffffffffffbffffffffffffcp+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg: 0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%50Lg: infinity:1:9:inf: ++%*50Lg: infinity:0:9: ++%50Lg: +nan():1:7:nan: ++%*50Lg: +nan():0:7: ++%50Lg: +nan(09A_Zaz):1:14:nan: ++%*50Lg: +nan(09A_Zaz):0:14: ++%50Lg: +0x0p0:1:7:0x0: ++%*50Lg: +0x0p0:0:7: ++%50Lg: +0x0p+0:1:8:0x0: ++%*50Lg: +0x0p+0:0:8: ++%50Lg: +0x8p-972:1:10:0x1p-969: ++%*50Lg: +0x8p-972:0:10: ++%50Lg: +0x2.3456789abcdef0123456789abcp0123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg: +0x2.3456789abcdef0123456789abcp0123:0:37: ++%50Lg: +0x2.3456789abcdef0123456789abcp+123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg: +0x2.3456789abcdef0123456789abcp+123:0:37: ++%50Lg: +0x7.ffffffffffffdffffffffffffep1021:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg: +0x7.ffffffffffffdffffffffffffep1021:0:37: ++%50Lg: +0xf.ffffffffffffbffffffffffffcp+1020:1:38:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg: +0xf.ffffffffffffbffffffffffffcp+1020:0:38: ++%50Lg: +infinity:1:10:inf: ++%*50Lg: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-gg.input +new file mode 100644 +index 0000000000000000..00e8a241e240fa13 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-gg.input +@@ -0,0 +1,682 @@ ++%LG::0:-1: ++%*LG::0:-1: ++%LG:-INFINITY:1:9:-inf: ++%*LG:-INFINITY:0:9: ++%LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%LG:-0X2.3456789ABCDEF0123456789ABCP+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%LG:-0X8P-972:1:9:-0x1p-969: ++%*LG:-0X8P-972:0:9: ++%LG:-0X0P+0:1:7:-0x0: ++%*LG:-0X0P+0:0:7: ++%LG:-0X0P0:1:6:-0x0: ++%*LG:-0X0P0:0:6: ++%LG:-NAN(09A_Zaz):1:13:-nan: ++%*LG:-NAN(09A_Zaz):0:13: ++%LG:-NAN():1:6:-nan: ++%*LG:-NAN():0:6: ++%LG:NAN():1:5:nan: ++%*LG:NAN():0:5: ++%LG:NAN(09A_Zaz):1:12:nan: ++%*LG:NAN(09A_Zaz):0:12: ++%LG:0X0P0:1:5:0x0: ++%*LG:0X0P0:0:5: ++%LG:0X0P+0:1:6:0x0: ++%*LG:0X0P+0:0:6: ++%LG:0X8P-972:1:8:0x1p-969: ++%*LG:0X8P-972:0:8: ++%LG:0X2.3456789ABCDEF0123456789ABCP0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LG:0X2.3456789ABCDEF0123456789ABCP0123:0:35: ++%LG:0X2.3456789ABCDEF0123456789ABCP+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LG:0X2.3456789ABCDEF0123456789ABCP+123:0:35: ++%LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:35: ++%LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36: ++%LG:INFINITY:1:8:inf: ++%*LG:INFINITY:0:8: ++%LG:+NAN():1:6:nan: ++%*LG:+NAN():0:6: ++%LG:+NAN(09A_Zaz):1:13:nan: ++%*LG:+NAN(09A_Zaz):0:13: ++%LG:+0X0P0:1:6:0x0: ++%*LG:+0X0P0:0:6: ++%LG:+0X0P+0:1:7:0x0: ++%*LG:+0X0P+0:0:7: ++%LG:+0X8P-972:1:9:0x1p-969: ++%*LG:+0X8P-972:0:9: ++%LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%LG:+0X2.3456789ABCDEF0123456789ABCP+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%LG:+INFINITY:1:9:inf: ++%*LG:+INFINITY:0:9: ++%1LG::0:-1: ++%*1LG::0:-1: ++%1LG:-INFINITY:0:-1: ++%*1LG:-INFINITY:0:-1: ++%1LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%*1LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%1LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++%*1LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++%1LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%*1LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%1LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++%*1LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++%1LG:-0X8P-972:0:-1: ++%*1LG:-0X8P-972:0:-1: ++%1LG:-0X0P+0:0:-1: ++%*1LG:-0X0P+0:0:-1: ++%1LG:-0X0P0:0:-1: ++%*1LG:-0X0P0:0:-1: ++%1LG:-NAN(09A_Zaz):0:-1: ++%*1LG:-NAN(09A_Zaz):0:-1: ++%1LG:-NAN():0:-1: ++%*1LG:-NAN():0:-1: ++%1LG:NAN():0:-1: ++%*1LG:NAN():0:-1: ++%1LG:NAN(09A_Zaz):0:-1: ++%*1LG:NAN(09A_Zaz):0:-1: ++%1LG:0X0P0:1:1:0x0: ++%*1LG:0X0P0:0:1: ++%1LG:0X0P+0:1:1:0x0: ++%*1LG:0X0P+0:0:1: ++%1LG:0X8P-972:1:1:0x0: ++%*1LG:0X8P-972:0:1: ++%1LG:0X2.3456789ABCDEF0123456789ABCP0123:1:1:0x0: ++%*1LG:0X2.3456789ABCDEF0123456789ABCP0123:0:1: ++%1LG:0X2.3456789ABCDEF0123456789ABCP+123:1:1:0x0: ++%*1LG:0X2.3456789ABCDEF0123456789ABCP+123:0:1: ++%1LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:1:0x0: ++%*1LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:1: ++%1LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:1:0x0: ++%*1LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:1: ++%1LG:INFINITY:0:-1: ++%*1LG:INFINITY:0:-1: ++%1LG:+NAN():0:-1: ++%*1LG:+NAN():0:-1: ++%1LG:+NAN(09A_Zaz):0:-1: ++%*1LG:+NAN(09A_Zaz):0:-1: ++%1LG:+0X0P0:0:-1: ++%*1LG:+0X0P0:0:-1: ++%1LG:+0X0P+0:0:-1: ++%*1LG:+0X0P+0:0:-1: ++%1LG:+0X8P-972:0:-1: ++%*1LG:+0X8P-972:0:-1: ++%1LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++%*1LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++%1LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%*1LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%1LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++%*1LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++%1LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%*1LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%1LG:+INFINITY:0:-1: ++%*1LG:+INFINITY:0:-1: ++%2LG::0:-1: ++%*2LG::0:-1: ++%2LG:-INFINITY:0:-1: ++%*2LG:-INFINITY:0:-1: ++%2LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:2:-0x0: ++%*2LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:2: ++%2LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:2:-0x0: ++%*2LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:2: ++%2LG:-0X2.3456789ABCDEF0123456789ABCP+123:1:2:-0x0: ++%*2LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:2: ++%2LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:2:-0x0: ++%*2LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:2: ++%2LG:-0X8P-972:1:2:-0x0: ++%*2LG:-0X8P-972:0:2: ++%2LG:-0X0P+0:1:2:-0x0: ++%*2LG:-0X0P+0:0:2: ++%2LG:-0X0P0:1:2:-0x0: ++%*2LG:-0X0P0:0:2: ++%2LG:-NAN(09A_Zaz):0:-1: ++%*2LG:-NAN(09A_Zaz):0:-1: ++%2LG:-NAN():0:-1: ++%*2LG:-NAN():0:-1: ++%2LG:NAN():0:-1: ++%*2LG:NAN():0:-1: ++%2LG:NAN(09A_Zaz):0:-1: ++%*2LG:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LG:0X0P0:0:-1: ++# BZ12701 %*2LG:0X0P0:0:-1: ++# BZ12701 %2LG:0X0P+0:0:-1: ++# BZ12701 %*2LG:0X0P+0:0:-1: ++# BZ12701 %2LG:0X8P-972:0:-1: ++# BZ12701 %*2LG:0X8P-972:0:-1: ++# BZ12701 %2LG:0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %*2LG:0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %2LG:0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*2LG:0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %2LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %*2LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %2LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*2LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%2LG:INFINITY:0:-1: ++%*2LG:INFINITY:0:-1: ++%2LG:+NAN():0:-1: ++%*2LG:+NAN():0:-1: ++%2LG:+NAN(09A_Zaz):0:-1: ++%*2LG:+NAN(09A_Zaz):0:-1: ++%2LG:+0X0P0:1:2:0x0: ++%*2LG:+0X0P0:0:2: ++%2LG:+0X0P+0:1:2:0x0: ++%*2LG:+0X0P+0:0:2: ++%2LG:+0X8P-972:1:2:0x0: ++%*2LG:+0X8P-972:0:2: ++%2LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:2:0x0: ++%*2LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:2: ++%2LG:+0X2.3456789ABCDEF0123456789ABCP+123:1:2:0x0: ++%*2LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:2: ++%2LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:2:0x0: ++%*2LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:2: ++%2LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:2:0x0: ++%*2LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:2: ++%2LG:+INFINITY:0:-1: ++%*2LG:+INFINITY:0:-1: ++%3LG::0:-1: ++%*3LG::0:-1: ++%3LG:-INFINITY:0:-1: ++%*3LG:-INFINITY:0:-1: ++# BZ12701 %3LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*3LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %3LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %*3LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %3LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*3LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %3LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %*3LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %3LG:-0X8P-972:0:-1: ++# BZ12701 %*3LG:-0X8P-972:0:-1: ++# BZ12701 %3LG:-0X0P+0:0:-1: ++# BZ12701 %*3LG:-0X0P+0:0:-1: ++# BZ12701 %3LG:-0X0P0:0:-1: ++# BZ12701 %*3LG:-0X0P0:0:-1: ++%3LG:-NAN(09A_Zaz):0:-1: ++%*3LG:-NAN(09A_Zaz):0:-1: ++%3LG:-NAN():0:-1: ++%*3LG:-NAN():0:-1: ++%3LG:NAN():1:3:nan: ++%*3LG:NAN():0:3: ++%3LG:NAN(09A_Zaz):1:3:nan: ++%*3LG:NAN(09A_Zaz):0:3: ++%3LG:0X0P0:1:3:0x0: ++%*3LG:0X0P0:0:3: ++%3LG:0X0P+0:1:3:0x0: ++%*3LG:0X0P+0:0:3: ++%3LG:0X8P-972:1:3:0x1p3: ++%*3LG:0X8P-972:0:3: ++%3LG:0X2.3456789ABCDEF0123456789ABCP0123:1:3:0x1p1: ++%*3LG:0X2.3456789ABCDEF0123456789ABCP0123:0:3: ++%3LG:0X2.3456789ABCDEF0123456789ABCP+123:1:3:0x1p1: ++%*3LG:0X2.3456789ABCDEF0123456789ABCP+123:0:3: ++%3LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:3:0x1.cp2: ++%*3LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:3: ++%3LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:3:0x1.ep3: ++%*3LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:3: ++%3LG:INFINITY:1:3:inf: ++%*3LG:INFINITY:0:3: ++%3LG:+NAN():0:-1: ++%*3LG:+NAN():0:-1: ++%3LG:+NAN(09A_Zaz):0:-1: ++%*3LG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LG:+0X0P0:0:-1: ++# BZ12701 %*3LG:+0X0P0:0:-1: ++# BZ12701 %3LG:+0X0P+0:0:-1: ++# BZ12701 %*3LG:+0X0P+0:0:-1: ++# BZ12701 %3LG:+0X8P-972:0:-1: ++# BZ12701 %*3LG:+0X8P-972:0:-1: ++# BZ12701 %3LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %*3LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %3LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*3LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %3LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %*3LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %3LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*3LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%3LG:+INFINITY:0:-1: ++%*3LG:+INFINITY:0:-1: ++%4LG::0:-1: ++%*4LG::0:-1: ++%4LG:-INFINITY:1:4:-inf: ++%*4LG:-INFINITY:0:4: ++%4LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:4:-0x1.ep3: ++%*4LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4: ++%4LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:4:-0x1.cp2: ++%*4LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:4: ++%4LG:-0X2.3456789ABCDEF0123456789ABCP+123:1:4:-0x1p1: ++%*4LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:4: ++%4LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:4:-0x1p1: ++%*4LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:4: ++%4LG:-0X8P-972:1:4:-0x1p3: ++%*4LG:-0X8P-972:0:4: ++%4LG:-0X0P+0:1:4:-0x0: ++%*4LG:-0X0P+0:0:4: ++%4LG:-0X0P0:1:4:-0x0: ++%*4LG:-0X0P0:0:4: ++%4LG:-NAN(09A_Zaz):1:4:-nan: ++%*4LG:-NAN(09A_Zaz):0:4: ++%4LG:-NAN():1:4:-nan: ++%*4LG:-NAN():0:4: ++%4LG:NAN():0:-1: ++%*4LG:NAN():0:-1: ++%4LG:NAN(09A_Zaz):0:-1: ++%*4LG:NAN(09A_Zaz):0:-1: ++# BZ12701 %4LG:0X0P0:0:-1: ++# BZ12701 %*4LG:0X0P0:0:-1: ++# BZ12701 %4LG:0X0P+0:0:-1: ++# BZ12701 %*4LG:0X0P+0:0:-1: ++# BZ12701 %4LG:0X8P-972:0:-1: ++# BZ12701 %*4LG:0X8P-972:0:-1: ++%4LG:0X2.3456789ABCDEF0123456789ABCP0123:1:4:0x1p1: ++%*4LG:0X2.3456789ABCDEF0123456789ABCP0123:0:4: ++%4LG:0X2.3456789ABCDEF0123456789ABCP+123:1:4:0x1p1: ++%*4LG:0X2.3456789ABCDEF0123456789ABCP+123:0:4: ++%4LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:4:0x1.cp2: ++%*4LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:4: ++%4LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:4:0x1.ep3: ++%*4LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4: ++%4LG:INFINITY:0:-1: ++%*4LG:INFINITY:0:-1: ++%4LG:+NAN():1:4:nan: ++%*4LG:+NAN():0:4: ++%4LG:+NAN(09A_Zaz):1:4:nan: ++%*4LG:+NAN(09A_Zaz):0:4: ++%4LG:+0X0P0:1:4:0x0: ++%*4LG:+0X0P0:0:4: ++%4LG:+0X0P+0:1:4:0x0: ++%*4LG:+0X0P+0:0:4: ++%4LG:+0X8P-972:1:4:0x1p3: ++%*4LG:+0X8P-972:0:4: ++%4LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:4:0x1p1: ++%*4LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:4: ++%4LG:+0X2.3456789ABCDEF0123456789ABCP+123:1:4:0x1p1: ++%*4LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:4: ++%4LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:4:0x1.cp2: ++%*4LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:4: ++%4LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:4:0x1.ep3: ++%*4LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4: ++%4LG:+INFINITY:1:4:inf: ++%*4LG:+INFINITY:0:4: ++%5LG::0:-1: ++%*5LG::0:-1: ++%5LG:-INFINITY:0:-1: ++%*5LG:-INFINITY:0:-1: ++%5LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:5:-0x1.ep3: ++%*5LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5: ++%5LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:5:-0x1.cp2: ++%*5LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:5: ++%5LG:-0X2.3456789ABCDEF0123456789ABCP+123:1:5:-0x1p1: ++%*5LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:5: ++%5LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:5:-0x1p1: ++%*5LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:5: ++# BZ12701 %5LG:-0X8P-972:0:-1: ++# BZ12701 %*5LG:-0X8P-972:0:-1: ++# BZ12701 %5LG:-0X0P+0:0:-1: ++# BZ12701 %*5LG:-0X0P+0:0:-1: ++# BZ12701 %5LG:-0X0P0:0:-1: ++# BZ12701 %*5LG:-0X0P0:0:-1: ++%5LG:-NAN(09A_Zaz):0:-1: ++%*5LG:-NAN(09A_Zaz):0:-1: ++%5LG:-NAN():0:-1: ++%*5LG:-NAN():0:-1: ++%5LG:NAN():1:5:nan: ++%*5LG:NAN():0:5: ++%5LG:NAN(09A_Zaz):0:-1: ++%*5LG:NAN(09A_Zaz):0:-1: ++%5LG:0X0P0:1:5:0x0: ++%*5LG:0X0P0:0:5: ++# BZ12701 %5LG:0X0P+0:0:-1: ++# BZ12701 %*5LG:0X0P+0:0:-1: ++# BZ12701 %5LG:0X8P-972:0:-1: ++# BZ12701 %*5LG:0X8P-972:0:-1: ++%5LG:0X2.3456789ABCDEF0123456789ABCP0123:1:5:0x1.18p1: ++%*5LG:0X2.3456789ABCDEF0123456789ABCP0123:0:5: ++%5LG:0X2.3456789ABCDEF0123456789ABCP+123:1:5:0x1.18p1: ++%*5LG:0X2.3456789ABCDEF0123456789ABCP+123:0:5: ++%5LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:5:0x1.fcp2: ++%*5LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:5: ++%5LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:5:0x1.fep3: ++%*5LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5: ++%5LG:INFINITY:0:-1: ++%*5LG:INFINITY:0:-1: ++%5LG:+NAN():0:-1: ++%*5LG:+NAN():0:-1: ++%5LG:+NAN(09A_Zaz):0:-1: ++%*5LG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5LG:+0X0P0:0:-1: ++# BZ12701 %*5LG:+0X0P0:0:-1: ++# BZ12701 %5LG:+0X0P+0:0:-1: ++# BZ12701 %*5LG:+0X0P+0:0:-1: ++# BZ12701 %5LG:+0X8P-972:0:-1: ++# BZ12701 %*5LG:+0X8P-972:0:-1: ++%5LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:5:0x1p1: ++%*5LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:5: ++%5LG:+0X2.3456789ABCDEF0123456789ABCP+123:1:5:0x1p1: ++%*5LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:5: ++%5LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:5:0x1.cp2: ++%*5LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:5: ++%5LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:5:0x1.ep3: ++%*5LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5: ++%5LG:+INFINITY:0:-1: ++%*5LG:+INFINITY:0:-1: ++%6LG::0:-1: ++%*6LG::0:-1: ++%6LG:-INFINITY:0:-1: ++%*6LG:-INFINITY:0:-1: ++%6LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:-0x1.fep3: ++%*6LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%6LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:-0x1.fcp2: ++%*6LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%6LG:-0X2.3456789ABCDEF0123456789ABCP+123:1:6:-0x1.18p1: ++%*6LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%6LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:6:-0x1.18p1: ++%*6LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++# BZ12701 %6LG:-0X8P-972:0:-1: ++# BZ12701 %*6LG:-0X8P-972:0:-1: ++# BZ12701 %6LG:-0X0P+0:0:-1: ++# BZ12701 %*6LG:-0X0P+0:0:-1: ++%6LG:-0X0P0:1:6:-0x0: ++%*6LG:-0X0P0:0:6: ++%6LG:-NAN(09A_Zaz):0:-1: ++%*6LG:-NAN(09A_Zaz):0:-1: ++%6LG:-NAN():1:6:-nan: ++%*6LG:-NAN():0:6: ++%6LG:NAN():1:5:nan: ++%*6LG:NAN():0:5: ++%6LG:NAN(09A_Zaz):0:-1: ++%*6LG:NAN(09A_Zaz):0:-1: ++%6LG:0X0P0:1:5:0x0: ++%*6LG:0X0P0:0:5: ++%6LG:0X0P+0:1:6:0x0: ++%*6LG:0X0P+0:0:6: ++%6LG:0X8P-972:1:6:0x1p-6: ++%*6LG:0X8P-972:0:6: ++%6LG:0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1.1ap1: ++%*6LG:0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++%6LG:0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1.1ap1: ++%*6LG:0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%6LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.ffcp2: ++%*6LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%6LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.ffep3: ++%*6LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%6LG:INFINITY:0:-1: ++%*6LG:INFINITY:0:-1: ++%6LG:+NAN():1:6:nan: ++%*6LG:+NAN():0:6: ++%6LG:+NAN(09A_Zaz):0:-1: ++%*6LG:+NAN(09A_Zaz):0:-1: ++%6LG:+0X0P0:1:6:0x0: ++%*6LG:+0X0P0:0:6: ++# BZ12701 %6LG:+0X0P+0:0:-1: ++# BZ12701 %*6LG:+0X0P+0:0:-1: ++# BZ12701 %6LG:+0X8P-972:0:-1: ++# BZ12701 %*6LG:+0X8P-972:0:-1: ++%6LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1.18p1: ++%*6LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++%6LG:+0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1.18p1: ++%*6LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%6LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.fcp2: ++%*6LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%6LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.fep3: ++%*6LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%6LG:+INFINITY:0:-1: ++%*6LG:+INFINITY:0:-1: ++%33LG::0:-1: ++%*33LG::0:-1: ++%33LG:-INFINITY:1:9:-inf: ++%*33LG:-INFINITY:0:9: ++# BZ12701 %33LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*33LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%33LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:33:-0x1.fffffffffffff7ffffffffffff8p3: ++%*33LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:33: ++# BZ12701 %33LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*33LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%33LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:33:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep1: ++%*33LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:33: ++%33LG:-0X8P-972:1:9:-0x1p-969: ++%*33LG:-0X8P-972:0:9: ++%33LG:-0X0P+0:1:7:-0x0: ++%*33LG:-0X0P+0:0:7: ++%33LG:-0X0P0:1:6:-0x0: ++%*33LG:-0X0P0:0:6: ++%33LG:-NAN(09A_Zaz):1:13:-nan: ++%*33LG:-NAN(09A_Zaz):0:13: ++%33LG:-NAN():1:6:-nan: ++%*33LG:-NAN():0:6: ++%33LG:NAN():1:5:nan: ++%*33LG:NAN():0:5: ++%33LG:NAN(09A_Zaz):1:12:nan: ++%*33LG:NAN(09A_Zaz):0:12: ++%33LG:0X0P0:1:5:0x0: ++%*33LG:0X0P0:0:5: ++%33LG:0X0P+0:1:6:0x0: ++%*33LG:0X0P+0:0:6: ++%33LG:0X8P-972:1:8:0x1p-969: ++%*33LG:0X8P-972:0:8: ++%33LG:0X2.3456789ABCDEF0123456789ABCP0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2: ++%*33LG:0X2.3456789ABCDEF0123456789ABCP0123:0:33: ++%33LG:0X2.3456789ABCDEF0123456789ABCP+123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2: ++%*33LG:0X2.3456789ABCDEF0123456789ABCP+123:0:33: ++%33LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:33:0x1.fffffffffffff7ffffffffffff8p12: ++%*33LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:33: ++%33LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:33:0x1.fffffffffffff7ffffffffffff8p4: ++%*33LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:33: ++%33LG:INFINITY:1:8:inf: ++%*33LG:INFINITY:0:8: ++%33LG:+NAN():1:6:nan: ++%*33LG:+NAN():0:6: ++%33LG:+NAN(09A_Zaz):1:13:nan: ++%*33LG:+NAN(09A_Zaz):0:13: ++%33LG:+0X0P0:1:6:0x0: ++%*33LG:+0X0P0:0:6: ++%33LG:+0X0P+0:1:7:0x0: ++%*33LG:+0X0P+0:0:7: ++%33LG:+0X8P-972:1:9:0x1p-969: ++%*33LG:+0X8P-972:0:9: ++%33LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep1: ++%*33LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:33: ++# BZ12701 %33LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*33LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%33LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:33:0x1.fffffffffffff7ffffffffffff8p3: ++%*33LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:33: ++# BZ12701 %33LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*33LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%33LG:+INFINITY:1:9:inf: ++%*33LG:+INFINITY:0:9: ++%50LG::0:-1: ++%*50LG::0:-1: ++%50LG:-INFINITY:1:9:-inf: ++%*50LG:-INFINITY:0:9: ++%50LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%50LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%50LG:-0X2.3456789ABCDEF0123456789ABCP+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%50LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%50LG:-0X8P-972:1:9:-0x1p-969: ++%*50LG:-0X8P-972:0:9: ++%50LG:-0X0P+0:1:7:-0x0: ++%*50LG:-0X0P+0:0:7: ++%50LG:-0X0P0:1:6:-0x0: ++%*50LG:-0X0P0:0:6: ++%50LG:-NAN(09A_Zaz):1:13:-nan: ++%*50LG:-NAN(09A_Zaz):0:13: ++%50LG:-NAN():1:6:-nan: ++%*50LG:-NAN():0:6: ++%50LG:NAN():1:5:nan: ++%*50LG:NAN():0:5: ++%50LG:NAN(09A_Zaz):1:12:nan: ++%*50LG:NAN(09A_Zaz):0:12: ++%50LG:0X0P0:1:5:0x0: ++%*50LG:0X0P0:0:5: ++%50LG:0X0P+0:1:6:0x0: ++%*50LG:0X0P+0:0:6: ++%50LG:0X8P-972:1:8:0x1p-969: ++%*50LG:0X8P-972:0:8: ++%50LG:0X2.3456789ABCDEF0123456789ABCP0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG:0X2.3456789ABCDEF0123456789ABCP0123:0:35: ++%50LG:0X2.3456789ABCDEF0123456789ABCP+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG:0X2.3456789ABCDEF0123456789ABCP+123:0:35: ++%50LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:35: ++%50LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36: ++%50LG:INFINITY:1:8:inf: ++%*50LG:INFINITY:0:8: ++%50LG:+NAN():1:6:nan: ++%*50LG:+NAN():0:6: ++%50LG:+NAN(09A_Zaz):1:13:nan: ++%*50LG:+NAN(09A_Zaz):0:13: ++%50LG:+0X0P0:1:6:0x0: ++%*50LG:+0X0P0:0:6: ++%50LG:+0X0P+0:1:7:0x0: ++%*50LG:+0X0P+0:0:7: ++%50LG:+0X8P-972:1:9:0x1p-969: ++%*50LG:+0X8P-972:0:9: ++%50LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%50LG:+0X2.3456789ABCDEF0123456789ABCP+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%50LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%50LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%50LG:+INFINITY:1:9:inf: ++%*50LG:+INFINITY:0:9: ++%5LG: :0:-1: ++%*5LG: :0:-1: ++%5LG: -INFINITY:0:-1: ++%*5LG: -INFINITY:0:-1: ++%5LG: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:-0x1.ep3: ++%*5LG: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%5LG: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:-0x1.cp2: ++%*5LG: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%5LG: -0X2.3456789ABCDEF0123456789ABCP+123:1:6:-0x1p1: ++%*5LG: -0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%5LG: -0X2.3456789ABCDEF0123456789ABCP0123:1:6:-0x1p1: ++%*5LG: -0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++# BZ12701 %5LG: -0X8P-972:0:-1: ++# BZ12701 %*5LG: -0X8P-972:0:-1: ++# BZ12701 %5LG: -0X0P+0:0:-1: ++# BZ12701 %*5LG: -0X0P+0:0:-1: ++# BZ12701 %5LG: -0X0P0:0:-1: ++# BZ12701 %*5LG: -0X0P0:0:-1: ++%5LG: -NAN(09A_Zaz):0:-1: ++%*5LG: -NAN(09A_Zaz):0:-1: ++%5LG: -NAN():0:-1: ++%*5LG: -NAN():0:-1: ++%5LG: NAN():1:6:nan: ++%*5LG: NAN():0:6: ++%5LG: NAN(09A_Zaz):0:-1: ++%*5LG: NAN(09A_Zaz):0:-1: ++%5LG: 0X0P0:1:6:0x0: ++%*5LG: 0X0P0:0:6: ++# BZ12701 %5LG: 0X0P+0:0:-1: ++# BZ12701 %*5LG: 0X0P+0:0:-1: ++# BZ12701 %5LG: 0X8P-972:0:-1: ++# BZ12701 %*5LG: 0X8P-972:0:-1: ++%5LG: 0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1.18p1: ++%*5LG: 0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++%5LG: 0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1.18p1: ++%*5LG: 0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%5LG: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.fcp2: ++%*5LG: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%5LG: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.fep3: ++%*5LG: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%5LG: INFINITY:0:-1: ++%*5LG: INFINITY:0:-1: ++%5LG: +NAN():0:-1: ++%*5LG: +NAN():0:-1: ++%5LG: +NAN(09A_Zaz):0:-1: ++%*5LG: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5LG: +0X0P0:0:-1: ++# BZ12701 %*5LG: +0X0P0:0:-1: ++# BZ12701 %5LG: +0X0P+0:0:-1: ++# BZ12701 %*5LG: +0X0P+0:0:-1: ++# BZ12701 %5LG: +0X8P-972:0:-1: ++# BZ12701 %*5LG: +0X8P-972:0:-1: ++%5LG: +0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1p1: ++%*5LG: +0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++%5LG: +0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1p1: ++%*5LG: +0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%5LG: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.cp2: ++%*5LG: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%5LG: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.ep3: ++%*5LG: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%5LG: +INFINITY:0:-1: ++%*5LG: +INFINITY:0:-1: ++%50LG: :0:-1: ++%*50LG: :0:-1: ++%50LG: -INFINITY:1:10:-inf: ++%*50LG: -INFINITY:0:10: ++%50LG: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:38:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:38: ++%50LG: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:37: ++%50LG: -0X2.3456789ABCDEF0123456789ABCP+123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG: -0X2.3456789ABCDEF0123456789ABCP+123:0:37: ++%50LG: -0X2.3456789ABCDEF0123456789ABCP0123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG: -0X2.3456789ABCDEF0123456789ABCP0123:0:37: ++%50LG: -0X8P-972:1:10:-0x1p-969: ++%*50LG: -0X8P-972:0:10: ++%50LG: -0X0P+0:1:8:-0x0: ++%*50LG: -0X0P+0:0:8: ++%50LG: -0X0P0:1:7:-0x0: ++%*50LG: -0X0P0:0:7: ++%50LG: -NAN(09A_Zaz):1:14:-nan: ++%*50LG: -NAN(09A_Zaz):0:14: ++%50LG: -NAN():1:7:-nan: ++%*50LG: -NAN():0:7: ++%50LG: NAN():1:6:nan: ++%*50LG: NAN():0:6: ++%50LG: NAN(09A_Zaz):1:13:nan: ++%*50LG: NAN(09A_Zaz):0:13: ++%50LG: 0X0P0:1:6:0x0: ++%*50LG: 0X0P0:0:6: ++%50LG: 0X0P+0:1:7:0x0: ++%*50LG: 0X0P+0:0:7: ++%50LG: 0X8P-972:1:9:0x1p-969: ++%*50LG: 0X8P-972:0:9: ++%50LG: 0X2.3456789ABCDEF0123456789ABCP0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG: 0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%50LG: 0X2.3456789ABCDEF0123456789ABCP+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG: 0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%50LG: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%50LG: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%50LG: INFINITY:1:9:inf: ++%*50LG: INFINITY:0:9: ++%50LG: +NAN():1:7:nan: ++%*50LG: +NAN():0:7: ++%50LG: +NAN(09A_Zaz):1:14:nan: ++%*50LG: +NAN(09A_Zaz):0:14: ++%50LG: +0X0P0:1:7:0x0: ++%*50LG: +0X0P0:0:7: ++%50LG: +0X0P+0:1:8:0x0: ++%*50LG: +0X0P+0:0:8: ++%50LG: +0X8P-972:1:10:0x1p-969: ++%*50LG: +0X8P-972:0:10: ++%50LG: +0X2.3456789ABCDEF0123456789ABCP0123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG: +0X2.3456789ABCDEF0123456789ABCP0123:0:37: ++%50LG: +0X2.3456789ABCDEF0123456789ABCP+123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG: +0X2.3456789ABCDEF0123456789ABCP+123:0:37: ++%50LG: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:37: ++%50LG: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:38:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:38: ++%50LG: +INFINITY:1:10:inf: ++%*50LG: +INFINITY:0:10: diff --git a/SOURCES/glibc-RHEL-46726-9.patch b/SOURCES/glibc-RHEL-46726-9.patch new file mode 100644 index 0000000..90f97a7 --- /dev/null +++ b/SOURCES/glibc-RHEL-46726-9.patch @@ -0,0 +1,4953 @@ +commit d527f34cb1d487a4788fe88278a9ad832c53c3ee +Author: Maciej W. Rozycki +Date: Fri Mar 28 12:35:52 2025 +0000 + + stdio-common: Add scanf long double data for Intel/Motorola 80-bit format + + Add Makefile infrastructure, a format-specific test skeleton providing a + data comparison implementation that ignores bits of data representation + in memory that do not participate in holding floating-point data, and + `long double' real input data for targets using the Intel/Motorola + 80-bit format. + + Keep input data disabled and referring to BZ #12701 for entries that are + are currently incorrectly accepted as valid data, such as '0e', '0e+', + '0x', '0x8p', '0x0p-', etc. + + Reviewed-by: Joseph Myers + +diff --git a/sysdeps/ieee754/ldbl-96/Makefile b/sysdeps/ieee754/ldbl-96/Makefile +index f28f91fa6a1e61a7..5c41195070d6f77c 100644 +--- a/sysdeps/ieee754/ldbl-96/Makefile ++++ b/sysdeps/ieee754/ldbl-96/Makefile +@@ -148,3 +148,7 @@ CFLAGS-s_y1l.c += -fno-builtin-y1f64x + CFLAGS-s_ynl.c += -fno-builtin-ynf64x + + endif # $(subdir) == math ++ ++ifeq ($(subdir),stdio-common) ++fmt-xscanf-real-convs += ldouble ++endif +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-a.input +new file mode 100644 +index 0000000000000000..0ed781ea87fb4b4a +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-a.input +@@ -0,0 +1,682 @@ ++%La::0:-1: ++%*La::0:-1: ++%La:-infinity:1:9:-inf: ++%*La:-infinity:0:9: ++%La:-0xf.fffffffffffffffp+16380:1:27:-0x1.fffffffffffffffep16383: ++%*La:-0xf.fffffffffffffffp+16380:0:27: ++%La:-0x7.fffffffffffffff8p16381:1:27:-0x1.fffffffffffffffep16383: ++%*La:-0x7.fffffffffffffff8p16381:0:27: ++%La:-0x2.3456789abcdef01p+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*La:-0x2.3456789abcdef01p+12345:0:27: ++%La:-0x2.3456789abcdef01p012345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*La:-0x2.3456789abcdef01p012345:0:27: ++%La:-0x8p-16385:1:11:-0x1p-16382: ++%*La:-0x8p-16385:0:11: ++%La:-0x0p+0:1:7:-0x0: ++%*La:-0x0p+0:0:7: ++%La:-0x0p0:1:6:-0x0: ++%*La:-0x0p0:0:6: ++%La:-nan(09A_Zaz):1:13:-nan: ++%*La:-nan(09A_Zaz):0:13: ++%La:-nan():1:6:-nan: ++%*La:-nan():0:6: ++%La:nan():1:5:nan: ++%*La:nan():0:5: ++%La:nan(09A_Zaz):1:12:nan: ++%*La:nan(09A_Zaz):0:12: ++%La:0x0p0:1:5:0x0: ++%*La:0x0p0:0:5: ++%La:0x0p+0:1:6:0x0: ++%*La:0x0p+0:0:6: ++%La:0x8p-16385:1:10:0x1p-16382: ++%*La:0x8p-16385:0:10: ++%La:0x2.3456789abcdef01p012345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*La:0x2.3456789abcdef01p012345:0:26: ++%La:0x2.3456789abcdef01p+12345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*La:0x2.3456789abcdef01p+12345:0:26: ++%La:0x7.fffffffffffffff8p16381:1:26:0x1.fffffffffffffffep16383: ++%*La:0x7.fffffffffffffff8p16381:0:26: ++%La:0xf.fffffffffffffffp+16380:1:26:0x1.fffffffffffffffep16383: ++%*La:0xf.fffffffffffffffp+16380:0:26: ++%La:infinity:1:8:inf: ++%*La:infinity:0:8: ++%La:+nan():1:6:nan: ++%*La:+nan():0:6: ++%La:+nan(09A_Zaz):1:13:nan: ++%*La:+nan(09A_Zaz):0:13: ++%La:+0x0p0:1:6:0x0: ++%*La:+0x0p0:0:6: ++%La:+0x0p+0:1:7:0x0: ++%*La:+0x0p+0:0:7: ++%La:+0x8p-16385:1:11:0x1p-16382: ++%*La:+0x8p-16385:0:11: ++%La:+0x2.3456789abcdef01p012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*La:+0x2.3456789abcdef01p012345:0:27: ++%La:+0x2.3456789abcdef01p+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*La:+0x2.3456789abcdef01p+12345:0:27: ++%La:+0x7.fffffffffffffff8p16381:1:27:0x1.fffffffffffffffep16383: ++%*La:+0x7.fffffffffffffff8p16381:0:27: ++%La:+0xf.fffffffffffffffp+16380:1:27:0x1.fffffffffffffffep16383: ++%*La:+0xf.fffffffffffffffp+16380:0:27: ++%La:+infinity:1:9:inf: ++%*La:+infinity:0:9: ++%1La::0:-1: ++%*1La::0:-1: ++%1La:-infinity:0:-1: ++%*1La:-infinity:0:-1: ++%1La:-0xf.fffffffffffffffp+16380:0:-1: ++%*1La:-0xf.fffffffffffffffp+16380:0:-1: ++%1La:-0x7.fffffffffffffff8p16381:0:-1: ++%*1La:-0x7.fffffffffffffff8p16381:0:-1: ++%1La:-0x2.3456789abcdef01p+12345:0:-1: ++%*1La:-0x2.3456789abcdef01p+12345:0:-1: ++%1La:-0x2.3456789abcdef01p012345:0:-1: ++%*1La:-0x2.3456789abcdef01p012345:0:-1: ++%1La:-0x8p-16385:0:-1: ++%*1La:-0x8p-16385:0:-1: ++%1La:-0x0p+0:0:-1: ++%*1La:-0x0p+0:0:-1: ++%1La:-0x0p0:0:-1: ++%*1La:-0x0p0:0:-1: ++%1La:-nan(09A_Zaz):0:-1: ++%*1La:-nan(09A_Zaz):0:-1: ++%1La:-nan():0:-1: ++%*1La:-nan():0:-1: ++%1La:nan():0:-1: ++%*1La:nan():0:-1: ++%1La:nan(09A_Zaz):0:-1: ++%*1La:nan(09A_Zaz):0:-1: ++%1La:0x0p0:1:1:0x0: ++%*1La:0x0p0:0:1: ++%1La:0x0p+0:1:1:0x0: ++%*1La:0x0p+0:0:1: ++%1La:0x8p-16385:1:1:0x0: ++%*1La:0x8p-16385:0:1: ++%1La:0x2.3456789abcdef01p012345:1:1:0x0: ++%*1La:0x2.3456789abcdef01p012345:0:1: ++%1La:0x2.3456789abcdef01p+12345:1:1:0x0: ++%*1La:0x2.3456789abcdef01p+12345:0:1: ++%1La:0x7.fffffffffffffff8p16381:1:1:0x0: ++%*1La:0x7.fffffffffffffff8p16381:0:1: ++%1La:0xf.fffffffffffffffp+16380:1:1:0x0: ++%*1La:0xf.fffffffffffffffp+16380:0:1: ++%1La:infinity:0:-1: ++%*1La:infinity:0:-1: ++%1La:+nan():0:-1: ++%*1La:+nan():0:-1: ++%1La:+nan(09A_Zaz):0:-1: ++%*1La:+nan(09A_Zaz):0:-1: ++%1La:+0x0p0:0:-1: ++%*1La:+0x0p0:0:-1: ++%1La:+0x0p+0:0:-1: ++%*1La:+0x0p+0:0:-1: ++%1La:+0x8p-16385:0:-1: ++%*1La:+0x8p-16385:0:-1: ++%1La:+0x2.3456789abcdef01p012345:0:-1: ++%*1La:+0x2.3456789abcdef01p012345:0:-1: ++%1La:+0x2.3456789abcdef01p+12345:0:-1: ++%*1La:+0x2.3456789abcdef01p+12345:0:-1: ++%1La:+0x7.fffffffffffffff8p16381:0:-1: ++%*1La:+0x7.fffffffffffffff8p16381:0:-1: ++%1La:+0xf.fffffffffffffffp+16380:0:-1: ++%*1La:+0xf.fffffffffffffffp+16380:0:-1: ++%1La:+infinity:0:-1: ++%*1La:+infinity:0:-1: ++%2La::0:-1: ++%*2La::0:-1: ++%2La:-infinity:0:-1: ++%*2La:-infinity:0:-1: ++%2La:-0xf.fffffffffffffffp+16380:1:2:-0x0: ++%*2La:-0xf.fffffffffffffffp+16380:0:2: ++%2La:-0x7.fffffffffffffff8p16381:1:2:-0x0: ++%*2La:-0x7.fffffffffffffff8p16381:0:2: ++%2La:-0x2.3456789abcdef01p+12345:1:2:-0x0: ++%*2La:-0x2.3456789abcdef01p+12345:0:2: ++%2La:-0x2.3456789abcdef01p012345:1:2:-0x0: ++%*2La:-0x2.3456789abcdef01p012345:0:2: ++%2La:-0x8p-16385:1:2:-0x0: ++%*2La:-0x8p-16385:0:2: ++%2La:-0x0p+0:1:2:-0x0: ++%*2La:-0x0p+0:0:2: ++%2La:-0x0p0:1:2:-0x0: ++%*2La:-0x0p0:0:2: ++%2La:-nan(09A_Zaz):0:-1: ++%*2La:-nan(09A_Zaz):0:-1: ++%2La:-nan():0:-1: ++%*2La:-nan():0:-1: ++%2La:nan():0:-1: ++%*2La:nan():0:-1: ++%2La:nan(09A_Zaz):0:-1: ++%*2La:nan(09A_Zaz):0:-1: ++# BZ12701 %2La:0x0p0:0:-1: ++# BZ12701 %*2La:0x0p0:0:-1: ++# BZ12701 %2La:0x0p+0:0:-1: ++# BZ12701 %*2La:0x0p+0:0:-1: ++# BZ12701 %2La:0x8p-16385:0:-1: ++# BZ12701 %*2La:0x8p-16385:0:-1: ++# BZ12701 %2La:0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %*2La:0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %2La:0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*2La:0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %2La:0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*2La:0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %2La:0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*2La:0xf.fffffffffffffffp+16380:0:-1: ++%2La:infinity:0:-1: ++%*2La:infinity:0:-1: ++%2La:+nan():0:-1: ++%*2La:+nan():0:-1: ++%2La:+nan(09A_Zaz):0:-1: ++%*2La:+nan(09A_Zaz):0:-1: ++%2La:+0x0p0:1:2:0x0: ++%*2La:+0x0p0:0:2: ++%2La:+0x0p+0:1:2:0x0: ++%*2La:+0x0p+0:0:2: ++%2La:+0x8p-16385:1:2:0x0: ++%*2La:+0x8p-16385:0:2: ++%2La:+0x2.3456789abcdef01p012345:1:2:0x0: ++%*2La:+0x2.3456789abcdef01p012345:0:2: ++%2La:+0x2.3456789abcdef01p+12345:1:2:0x0: ++%*2La:+0x2.3456789abcdef01p+12345:0:2: ++%2La:+0x7.fffffffffffffff8p16381:1:2:0x0: ++%*2La:+0x7.fffffffffffffff8p16381:0:2: ++%2La:+0xf.fffffffffffffffp+16380:1:2:0x0: ++%*2La:+0xf.fffffffffffffffp+16380:0:2: ++%2La:+infinity:0:-1: ++%*2La:+infinity:0:-1: ++%3La::0:-1: ++%*3La::0:-1: ++%3La:-infinity:0:-1: ++%*3La:-infinity:0:-1: ++# BZ12701 %3La:-0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*3La:-0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %3La:-0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*3La:-0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %3La:-0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*3La:-0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %3La:-0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %*3La:-0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %3La:-0x8p-16385:0:-1: ++# BZ12701 %*3La:-0x8p-16385:0:-1: ++# BZ12701 %3La:-0x0p+0:0:-1: ++# BZ12701 %*3La:-0x0p+0:0:-1: ++# BZ12701 %3La:-0x0p0:0:-1: ++# BZ12701 %*3La:-0x0p0:0:-1: ++%3La:-nan(09A_Zaz):0:-1: ++%*3La:-nan(09A_Zaz):0:-1: ++%3La:-nan():0:-1: ++%*3La:-nan():0:-1: ++%3La:nan():1:3:nan: ++%*3La:nan():0:3: ++%3La:nan(09A_Zaz):1:3:nan: ++%*3La:nan(09A_Zaz):0:3: ++%3La:0x0p0:1:3:0x0: ++%*3La:0x0p0:0:3: ++%3La:0x0p+0:1:3:0x0: ++%*3La:0x0p+0:0:3: ++%3La:0x8p-16385:1:3:0x1p3: ++%*3La:0x8p-16385:0:3: ++%3La:0x2.3456789abcdef01p012345:1:3:0x1p1: ++%*3La:0x2.3456789abcdef01p012345:0:3: ++%3La:0x2.3456789abcdef01p+12345:1:3:0x1p1: ++%*3La:0x2.3456789abcdef01p+12345:0:3: ++%3La:0x7.fffffffffffffff8p16381:1:3:0x1.cp2: ++%*3La:0x7.fffffffffffffff8p16381:0:3: ++%3La:0xf.fffffffffffffffp+16380:1:3:0x1.ep3: ++%*3La:0xf.fffffffffffffffp+16380:0:3: ++%3La:infinity:1:3:inf: ++%*3La:infinity:0:3: ++%3La:+nan():0:-1: ++%*3La:+nan():0:-1: ++%3La:+nan(09A_Zaz):0:-1: ++%*3La:+nan(09A_Zaz):0:-1: ++# BZ12701 %3La:+0x0p0:0:-1: ++# BZ12701 %*3La:+0x0p0:0:-1: ++# BZ12701 %3La:+0x0p+0:0:-1: ++# BZ12701 %*3La:+0x0p+0:0:-1: ++# BZ12701 %3La:+0x8p-16385:0:-1: ++# BZ12701 %*3La:+0x8p-16385:0:-1: ++# BZ12701 %3La:+0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %*3La:+0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %3La:+0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*3La:+0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %3La:+0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*3La:+0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %3La:+0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*3La:+0xf.fffffffffffffffp+16380:0:-1: ++%3La:+infinity:0:-1: ++%*3La:+infinity:0:-1: ++%4La::0:-1: ++%*4La::0:-1: ++%4La:-infinity:1:4:-inf: ++%*4La:-infinity:0:4: ++%4La:-0xf.fffffffffffffffp+16380:1:4:-0x1.ep3: ++%*4La:-0xf.fffffffffffffffp+16380:0:4: ++%4La:-0x7.fffffffffffffff8p16381:1:4:-0x1.cp2: ++%*4La:-0x7.fffffffffffffff8p16381:0:4: ++%4La:-0x2.3456789abcdef01p+12345:1:4:-0x1p1: ++%*4La:-0x2.3456789abcdef01p+12345:0:4: ++%4La:-0x2.3456789abcdef01p012345:1:4:-0x1p1: ++%*4La:-0x2.3456789abcdef01p012345:0:4: ++%4La:-0x8p-16385:1:4:-0x1p3: ++%*4La:-0x8p-16385:0:4: ++%4La:-0x0p+0:1:4:-0x0: ++%*4La:-0x0p+0:0:4: ++%4La:-0x0p0:1:4:-0x0: ++%*4La:-0x0p0:0:4: ++%4La:-nan(09A_Zaz):1:4:-nan: ++%*4La:-nan(09A_Zaz):0:4: ++%4La:-nan():1:4:-nan: ++%*4La:-nan():0:4: ++%4La:nan():0:-1: ++%*4La:nan():0:-1: ++%4La:nan(09A_Zaz):0:-1: ++%*4La:nan(09A_Zaz):0:-1: ++# BZ12701 %4La:0x0p0:0:-1: ++# BZ12701 %*4La:0x0p0:0:-1: ++# BZ12701 %4La:0x0p+0:0:-1: ++# BZ12701 %*4La:0x0p+0:0:-1: ++# BZ12701 %4La:0x8p-16385:0:-1: ++# BZ12701 %*4La:0x8p-16385:0:-1: ++%4La:0x2.3456789abcdef01p012345:1:4:0x1p1: ++%*4La:0x2.3456789abcdef01p012345:0:4: ++%4La:0x2.3456789abcdef01p+12345:1:4:0x1p1: ++%*4La:0x2.3456789abcdef01p+12345:0:4: ++%4La:0x7.fffffffffffffff8p16381:1:4:0x1.cp2: ++%*4La:0x7.fffffffffffffff8p16381:0:4: ++%4La:0xf.fffffffffffffffp+16380:1:4:0x1.ep3: ++%*4La:0xf.fffffffffffffffp+16380:0:4: ++%4La:infinity:0:-1: ++%*4La:infinity:0:-1: ++%4La:+nan():1:4:nan: ++%*4La:+nan():0:4: ++%4La:+nan(09A_Zaz):1:4:nan: ++%*4La:+nan(09A_Zaz):0:4: ++%4La:+0x0p0:1:4:0x0: ++%*4La:+0x0p0:0:4: ++%4La:+0x0p+0:1:4:0x0: ++%*4La:+0x0p+0:0:4: ++%4La:+0x8p-16385:1:4:0x1p3: ++%*4La:+0x8p-16385:0:4: ++%4La:+0x2.3456789abcdef01p012345:1:4:0x1p1: ++%*4La:+0x2.3456789abcdef01p012345:0:4: ++%4La:+0x2.3456789abcdef01p+12345:1:4:0x1p1: ++%*4La:+0x2.3456789abcdef01p+12345:0:4: ++%4La:+0x7.fffffffffffffff8p16381:1:4:0x1.cp2: ++%*4La:+0x7.fffffffffffffff8p16381:0:4: ++%4La:+0xf.fffffffffffffffp+16380:1:4:0x1.ep3: ++%*4La:+0xf.fffffffffffffffp+16380:0:4: ++%4La:+infinity:1:4:inf: ++%*4La:+infinity:0:4: ++%5La::0:-1: ++%*5La::0:-1: ++%5La:-infinity:0:-1: ++%*5La:-infinity:0:-1: ++%5La:-0xf.fffffffffffffffp+16380:1:5:-0x1.ep3: ++%*5La:-0xf.fffffffffffffffp+16380:0:5: ++%5La:-0x7.fffffffffffffff8p16381:1:5:-0x1.cp2: ++%*5La:-0x7.fffffffffffffff8p16381:0:5: ++%5La:-0x2.3456789abcdef01p+12345:1:5:-0x1p1: ++%*5La:-0x2.3456789abcdef01p+12345:0:5: ++%5La:-0x2.3456789abcdef01p012345:1:5:-0x1p1: ++%*5La:-0x2.3456789abcdef01p012345:0:5: ++# BZ12701 %5La:-0x8p-16385:0:-1: ++# BZ12701 %*5La:-0x8p-16385:0:-1: ++# BZ12701 %5La:-0x0p+0:0:-1: ++# BZ12701 %*5La:-0x0p+0:0:-1: ++# BZ12701 %5La:-0x0p0:0:-1: ++# BZ12701 %*5La:-0x0p0:0:-1: ++%5La:-nan(09A_Zaz):0:-1: ++%*5La:-nan(09A_Zaz):0:-1: ++%5La:-nan():0:-1: ++%*5La:-nan():0:-1: ++%5La:nan():1:5:nan: ++%*5La:nan():0:5: ++%5La:nan(09A_Zaz):0:-1: ++%*5La:nan(09A_Zaz):0:-1: ++%5La:0x0p0:1:5:0x0: ++%*5La:0x0p0:0:5: ++# BZ12701 %5La:0x0p+0:0:-1: ++# BZ12701 %*5La:0x0p+0:0:-1: ++# BZ12701 %5La:0x8p-16385:0:-1: ++# BZ12701 %*5La:0x8p-16385:0:-1: ++%5La:0x2.3456789abcdef01p012345:1:5:0x1.18p1: ++%*5La:0x2.3456789abcdef01p012345:0:5: ++%5La:0x2.3456789abcdef01p+12345:1:5:0x1.18p1: ++%*5La:0x2.3456789abcdef01p+12345:0:5: ++%5La:0x7.fffffffffffffff8p16381:1:5:0x1.fcp2: ++%*5La:0x7.fffffffffffffff8p16381:0:5: ++%5La:0xf.fffffffffffffffp+16380:1:5:0x1.fep3: ++%*5La:0xf.fffffffffffffffp+16380:0:5: ++%5La:infinity:0:-1: ++%*5La:infinity:0:-1: ++%5La:+nan():0:-1: ++%*5La:+nan():0:-1: ++%5La:+nan(09A_Zaz):0:-1: ++%*5La:+nan(09A_Zaz):0:-1: ++# BZ12701 %5La:+0x0p0:0:-1: ++# BZ12701 %*5La:+0x0p0:0:-1: ++# BZ12701 %5La:+0x0p+0:0:-1: ++# BZ12701 %*5La:+0x0p+0:0:-1: ++# BZ12701 %5La:+0x8p-16385:0:-1: ++# BZ12701 %*5La:+0x8p-16385:0:-1: ++%5La:+0x2.3456789abcdef01p012345:1:5:0x1p1: ++%*5La:+0x2.3456789abcdef01p012345:0:5: ++%5La:+0x2.3456789abcdef01p+12345:1:5:0x1p1: ++%*5La:+0x2.3456789abcdef01p+12345:0:5: ++%5La:+0x7.fffffffffffffff8p16381:1:5:0x1.cp2: ++%*5La:+0x7.fffffffffffffff8p16381:0:5: ++%5La:+0xf.fffffffffffffffp+16380:1:5:0x1.ep3: ++%*5La:+0xf.fffffffffffffffp+16380:0:5: ++%5La:+infinity:0:-1: ++%*5La:+infinity:0:-1: ++%6La::0:-1: ++%*6La::0:-1: ++%6La:-infinity:0:-1: ++%*6La:-infinity:0:-1: ++%6La:-0xf.fffffffffffffffp+16380:1:6:-0x1.fep3: ++%*6La:-0xf.fffffffffffffffp+16380:0:6: ++%6La:-0x7.fffffffffffffff8p16381:1:6:-0x1.fcp2: ++%*6La:-0x7.fffffffffffffff8p16381:0:6: ++%6La:-0x2.3456789abcdef01p+12345:1:6:-0x1.18p1: ++%*6La:-0x2.3456789abcdef01p+12345:0:6: ++%6La:-0x2.3456789abcdef01p012345:1:6:-0x1.18p1: ++%*6La:-0x2.3456789abcdef01p012345:0:6: ++# BZ12701 %6La:-0x8p-16385:0:-1: ++# BZ12701 %*6La:-0x8p-16385:0:-1: ++# BZ12701 %6La:-0x0p+0:0:-1: ++# BZ12701 %*6La:-0x0p+0:0:-1: ++%6La:-0x0p0:1:6:-0x0: ++%*6La:-0x0p0:0:6: ++%6La:-nan(09A_Zaz):0:-1: ++%*6La:-nan(09A_Zaz):0:-1: ++%6La:-nan():1:6:-nan: ++%*6La:-nan():0:6: ++%6La:nan():1:5:nan: ++%*6La:nan():0:5: ++%6La:nan(09A_Zaz):0:-1: ++%*6La:nan(09A_Zaz):0:-1: ++%6La:0x0p0:1:5:0x0: ++%*6La:0x0p0:0:5: ++%6La:0x0p+0:1:6:0x0: ++%*6La:0x0p+0:0:6: ++%6La:0x8p-16385:1:6:0x1p2: ++%*6La:0x8p-16385:0:6: ++%6La:0x2.3456789abcdef01p012345:1:6:0x1.1ap1: ++%*6La:0x2.3456789abcdef01p012345:0:6: ++%6La:0x2.3456789abcdef01p+12345:1:6:0x1.1ap1: ++%*6La:0x2.3456789abcdef01p+12345:0:6: ++%6La:0x7.fffffffffffffff8p16381:1:6:0x1.ffcp2: ++%*6La:0x7.fffffffffffffff8p16381:0:6: ++%6La:0xf.fffffffffffffffp+16380:1:6:0x1.ffep3: ++%*6La:0xf.fffffffffffffffp+16380:0:6: ++%6La:infinity:0:-1: ++%*6La:infinity:0:-1: ++%6La:+nan():1:6:nan: ++%*6La:+nan():0:6: ++%6La:+nan(09A_Zaz):0:-1: ++%*6La:+nan(09A_Zaz):0:-1: ++%6La:+0x0p0:1:6:0x0: ++%*6La:+0x0p0:0:6: ++# BZ12701 %6La:+0x0p+0:0:-1: ++# BZ12701 %*6La:+0x0p+0:0:-1: ++# BZ12701 %6La:+0x8p-16385:0:-1: ++# BZ12701 %*6La:+0x8p-16385:0:-1: ++%6La:+0x2.3456789abcdef01p012345:1:6:0x1.18p1: ++%*6La:+0x2.3456789abcdef01p012345:0:6: ++%6La:+0x2.3456789abcdef01p+12345:1:6:0x1.18p1: ++%*6La:+0x2.3456789abcdef01p+12345:0:6: ++%6La:+0x7.fffffffffffffff8p16381:1:6:0x1.fcp2: ++%*6La:+0x7.fffffffffffffff8p16381:0:6: ++%6La:+0xf.fffffffffffffffp+16380:1:6:0x1.fep3: ++%*6La:+0xf.fffffffffffffffp+16380:0:6: ++%6La:+infinity:0:-1: ++%*6La:+infinity:0:-1: ++%22La::0:-1: ++%*22La::0:-1: ++%22La:-infinity:1:9:-inf: ++%*22La:-infinity:0:9: ++# BZ12701 %22La:-0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*22La:-0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %22La:-0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*22La:-0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %22La:-0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*22La:-0x2.3456789abcdef01p+12345:0:-1: ++%22La:-0x2.3456789abcdef01p012345:1:22:-0x1.1a2b3c4d5e6f7808p1: ++%*22La:-0x2.3456789abcdef01p012345:0:22: ++%22La:-0x8p-16385:1:11:-0x1p-16382: ++%*22La:-0x8p-16385:0:11: ++%22La:-0x0p+0:1:7:-0x0: ++%*22La:-0x0p+0:0:7: ++%22La:-0x0p0:1:6:-0x0: ++%*22La:-0x0p0:0:6: ++%22La:-nan(09A_Zaz):1:13:-nan: ++%*22La:-nan(09A_Zaz):0:13: ++%22La:-nan():1:6:-nan: ++%*22La:-nan():0:6: ++%22La:nan():1:5:nan: ++%*22La:nan():0:5: ++%22La:nan(09A_Zaz):1:12:nan: ++%*22La:nan(09A_Zaz):0:12: ++%22La:0x0p0:1:5:0x0: ++%*22La:0x0p0:0:5: ++%22La:0x0p+0:1:6:0x0: ++%*22La:0x0p+0:0:6: ++%22La:0x8p-16385:1:10:0x1p-16382: ++%*22La:0x8p-16385:0:10: ++%22La:0x2.3456789abcdef01p012345:1:22:0x1.1a2b3c4d5e6f7808p2: ++%*22La:0x2.3456789abcdef01p012345:0:22: ++%22La:0x2.3456789abcdef01p+12345:1:22:0x1.1a2b3c4d5e6f7808p2: ++%*22La:0x2.3456789abcdef01p+12345:0:22: ++%22La:0x7.fffffffffffffff8p16381:1:22:0x1.fffffffffffffffep3: ++%*22La:0x7.fffffffffffffff8p16381:0:22: ++%22La:0xf.fffffffffffffffp+16380:1:22:0x1.fffffffffffffffep4: ++%*22La:0xf.fffffffffffffffp+16380:0:22: ++%22La:infinity:1:8:inf: ++%*22La:infinity:0:8: ++%22La:+nan():1:6:nan: ++%*22La:+nan():0:6: ++%22La:+nan(09A_Zaz):1:13:nan: ++%*22La:+nan(09A_Zaz):0:13: ++%22La:+0x0p0:1:6:0x0: ++%*22La:+0x0p0:0:6: ++%22La:+0x0p+0:1:7:0x0: ++%*22La:+0x0p+0:0:7: ++%22La:+0x8p-16385:1:11:0x1p-16382: ++%*22La:+0x8p-16385:0:11: ++%22La:+0x2.3456789abcdef01p012345:1:22:0x1.1a2b3c4d5e6f7808p1: ++%*22La:+0x2.3456789abcdef01p012345:0:22: ++# BZ12701 %22La:+0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*22La:+0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %22La:+0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*22La:+0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %22La:+0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*22La:+0xf.fffffffffffffffp+16380:0:-1: ++%22La:+infinity:1:9:inf: ++%*22La:+infinity:0:9: ++%37La::0:-1: ++%*37La::0:-1: ++%37La:-infinity:1:9:-inf: ++%*37La:-infinity:0:9: ++%37La:-0xf.fffffffffffffffp+16380:1:27:-0x1.fffffffffffffffep16383: ++%*37La:-0xf.fffffffffffffffp+16380:0:27: ++%37La:-0x7.fffffffffffffff8p16381:1:27:-0x1.fffffffffffffffep16383: ++%*37La:-0x7.fffffffffffffff8p16381:0:27: ++%37La:-0x2.3456789abcdef01p+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*37La:-0x2.3456789abcdef01p+12345:0:27: ++%37La:-0x2.3456789abcdef01p012345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*37La:-0x2.3456789abcdef01p012345:0:27: ++%37La:-0x8p-16385:1:11:-0x1p-16382: ++%*37La:-0x8p-16385:0:11: ++%37La:-0x0p+0:1:7:-0x0: ++%*37La:-0x0p+0:0:7: ++%37La:-0x0p0:1:6:-0x0: ++%*37La:-0x0p0:0:6: ++%37La:-nan(09A_Zaz):1:13:-nan: ++%*37La:-nan(09A_Zaz):0:13: ++%37La:-nan():1:6:-nan: ++%*37La:-nan():0:6: ++%37La:nan():1:5:nan: ++%*37La:nan():0:5: ++%37La:nan(09A_Zaz):1:12:nan: ++%*37La:nan(09A_Zaz):0:12: ++%37La:0x0p0:1:5:0x0: ++%*37La:0x0p0:0:5: ++%37La:0x0p+0:1:6:0x0: ++%*37La:0x0p+0:0:6: ++%37La:0x8p-16385:1:10:0x1p-16382: ++%*37La:0x8p-16385:0:10: ++%37La:0x2.3456789abcdef01p012345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*37La:0x2.3456789abcdef01p012345:0:26: ++%37La:0x2.3456789abcdef01p+12345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*37La:0x2.3456789abcdef01p+12345:0:26: ++%37La:0x7.fffffffffffffff8p16381:1:26:0x1.fffffffffffffffep16383: ++%*37La:0x7.fffffffffffffff8p16381:0:26: ++%37La:0xf.fffffffffffffffp+16380:1:26:0x1.fffffffffffffffep16383: ++%*37La:0xf.fffffffffffffffp+16380:0:26: ++%37La:infinity:1:8:inf: ++%*37La:infinity:0:8: ++%37La:+nan():1:6:nan: ++%*37La:+nan():0:6: ++%37La:+nan(09A_Zaz):1:13:nan: ++%*37La:+nan(09A_Zaz):0:13: ++%37La:+0x0p0:1:6:0x0: ++%*37La:+0x0p0:0:6: ++%37La:+0x0p+0:1:7:0x0: ++%*37La:+0x0p+0:0:7: ++%37La:+0x8p-16385:1:11:0x1p-16382: ++%*37La:+0x8p-16385:0:11: ++%37La:+0x2.3456789abcdef01p012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37La:+0x2.3456789abcdef01p012345:0:27: ++%37La:+0x2.3456789abcdef01p+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37La:+0x2.3456789abcdef01p+12345:0:27: ++%37La:+0x7.fffffffffffffff8p16381:1:27:0x1.fffffffffffffffep16383: ++%*37La:+0x7.fffffffffffffff8p16381:0:27: ++%37La:+0xf.fffffffffffffffp+16380:1:27:0x1.fffffffffffffffep16383: ++%*37La:+0xf.fffffffffffffffp+16380:0:27: ++%37La:+infinity:1:9:inf: ++%*37La:+infinity:0:9: ++%5La: :0:-1: ++%*5La: :0:-1: ++%5La: -infinity:0:-1: ++%*5La: -infinity:0:-1: ++%5La: -0xf.fffffffffffffffp+16380:1:6:-0x1.ep3: ++%*5La: -0xf.fffffffffffffffp+16380:0:6: ++%5La: -0x7.fffffffffffffff8p16381:1:6:-0x1.cp2: ++%*5La: -0x7.fffffffffffffff8p16381:0:6: ++%5La: -0x2.3456789abcdef01p+12345:1:6:-0x1p1: ++%*5La: -0x2.3456789abcdef01p+12345:0:6: ++%5La: -0x2.3456789abcdef01p012345:1:6:-0x1p1: ++%*5La: -0x2.3456789abcdef01p012345:0:6: ++# BZ12701 %5La: -0x8p-16385:0:-1: ++# BZ12701 %*5La: -0x8p-16385:0:-1: ++# BZ12701 %5La: -0x0p+0:0:-1: ++# BZ12701 %*5La: -0x0p+0:0:-1: ++# BZ12701 %5La: -0x0p0:0:-1: ++# BZ12701 %*5La: -0x0p0:0:-1: ++%5La: -nan(09A_Zaz):0:-1: ++%*5La: -nan(09A_Zaz):0:-1: ++%5La: -nan():0:-1: ++%*5La: -nan():0:-1: ++%5La: nan():1:6:nan: ++%*5La: nan():0:6: ++%5La: nan(09A_Zaz):0:-1: ++%*5La: nan(09A_Zaz):0:-1: ++%5La: 0x0p0:1:6:0x0: ++%*5La: 0x0p0:0:6: ++# BZ12701 %5La: 0x0p+0:0:-1: ++# BZ12701 %*5La: 0x0p+0:0:-1: ++# BZ12701 %5La: 0x8p-16385:0:-1: ++# BZ12701 %*5La: 0x8p-16385:0:-1: ++%5La: 0x2.3456789abcdef01p012345:1:6:0x1.18p1: ++%*5La: 0x2.3456789abcdef01p012345:0:6: ++%5La: 0x2.3456789abcdef01p+12345:1:6:0x1.18p1: ++%*5La: 0x2.3456789abcdef01p+12345:0:6: ++%5La: 0x7.fffffffffffffff8p16381:1:6:0x1.fcp2: ++%*5La: 0x7.fffffffffffffff8p16381:0:6: ++%5La: 0xf.fffffffffffffffp+16380:1:6:0x1.fep3: ++%*5La: 0xf.fffffffffffffffp+16380:0:6: ++%5La: infinity:0:-1: ++%*5La: infinity:0:-1: ++%5La: +nan():0:-1: ++%*5La: +nan():0:-1: ++%5La: +nan(09A_Zaz):0:-1: ++%*5La: +nan(09A_Zaz):0:-1: ++# BZ12701 %5La: +0x0p0:0:-1: ++# BZ12701 %*5La: +0x0p0:0:-1: ++# BZ12701 %5La: +0x0p+0:0:-1: ++# BZ12701 %*5La: +0x0p+0:0:-1: ++# BZ12701 %5La: +0x8p-16385:0:-1: ++# BZ12701 %*5La: +0x8p-16385:0:-1: ++%5La: +0x2.3456789abcdef01p012345:1:6:0x1p1: ++%*5La: +0x2.3456789abcdef01p012345:0:6: ++%5La: +0x2.3456789abcdef01p+12345:1:6:0x1p1: ++%*5La: +0x2.3456789abcdef01p+12345:0:6: ++%5La: +0x7.fffffffffffffff8p16381:1:6:0x1.cp2: ++%*5La: +0x7.fffffffffffffff8p16381:0:6: ++%5La: +0xf.fffffffffffffffp+16380:1:6:0x1.ep3: ++%*5La: +0xf.fffffffffffffffp+16380:0:6: ++%5La: +infinity:0:-1: ++%*5La: +infinity:0:-1: ++%37La: :0:-1: ++%*37La: :0:-1: ++%37La: -infinity:1:10:-inf: ++%*37La: -infinity:0:10: ++%37La: -0xf.fffffffffffffffp+16380:1:28:-0x1.fffffffffffffffep16383: ++%*37La: -0xf.fffffffffffffffp+16380:0:28: ++%37La: -0x7.fffffffffffffff8p16381:1:28:-0x1.fffffffffffffffep16383: ++%*37La: -0x7.fffffffffffffff8p16381:0:28: ++%37La: -0x2.3456789abcdef01p+12345:1:28:-0x1.1a2b3c4d5e6f7808p12346: ++%*37La: -0x2.3456789abcdef01p+12345:0:28: ++%37La: -0x2.3456789abcdef01p012345:1:28:-0x1.1a2b3c4d5e6f7808p12346: ++%*37La: -0x2.3456789abcdef01p012345:0:28: ++%37La: -0x8p-16385:1:12:-0x1p-16382: ++%*37La: -0x8p-16385:0:12: ++%37La: -0x0p+0:1:8:-0x0: ++%*37La: -0x0p+0:0:8: ++%37La: -0x0p0:1:7:-0x0: ++%*37La: -0x0p0:0:7: ++%37La: -nan(09A_Zaz):1:14:-nan: ++%*37La: -nan(09A_Zaz):0:14: ++%37La: -nan():1:7:-nan: ++%*37La: -nan():0:7: ++%37La: nan():1:6:nan: ++%*37La: nan():0:6: ++%37La: nan(09A_Zaz):1:13:nan: ++%*37La: nan(09A_Zaz):0:13: ++%37La: 0x0p0:1:6:0x0: ++%*37La: 0x0p0:0:6: ++%37La: 0x0p+0:1:7:0x0: ++%*37La: 0x0p+0:0:7: ++%37La: 0x8p-16385:1:11:0x1p-16382: ++%*37La: 0x8p-16385:0:11: ++%37La: 0x2.3456789abcdef01p012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37La: 0x2.3456789abcdef01p012345:0:27: ++%37La: 0x2.3456789abcdef01p+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37La: 0x2.3456789abcdef01p+12345:0:27: ++%37La: 0x7.fffffffffffffff8p16381:1:27:0x1.fffffffffffffffep16383: ++%*37La: 0x7.fffffffffffffff8p16381:0:27: ++%37La: 0xf.fffffffffffffffp+16380:1:27:0x1.fffffffffffffffep16383: ++%*37La: 0xf.fffffffffffffffp+16380:0:27: ++%37La: infinity:1:9:inf: ++%*37La: infinity:0:9: ++%37La: +nan():1:7:nan: ++%*37La: +nan():0:7: ++%37La: +nan(09A_Zaz):1:14:nan: ++%*37La: +nan(09A_Zaz):0:14: ++%37La: +0x0p0:1:7:0x0: ++%*37La: +0x0p0:0:7: ++%37La: +0x0p+0:1:8:0x0: ++%*37La: +0x0p+0:0:8: ++%37La: +0x8p-16385:1:12:0x1p-16382: ++%*37La: +0x8p-16385:0:12: ++%37La: +0x2.3456789abcdef01p012345:1:28:0x1.1a2b3c4d5e6f7808p12346: ++%*37La: +0x2.3456789abcdef01p012345:0:28: ++%37La: +0x2.3456789abcdef01p+12345:1:28:0x1.1a2b3c4d5e6f7808p12346: ++%*37La: +0x2.3456789abcdef01p+12345:0:28: ++%37La: +0x7.fffffffffffffff8p16381:1:28:0x1.fffffffffffffffep16383: ++%*37La: +0x7.fffffffffffffff8p16381:0:28: ++%37La: +0xf.fffffffffffffffp+16380:1:28:0x1.fffffffffffffffep16383: ++%*37La: +0xf.fffffffffffffffp+16380:0:28: ++%37La: +infinity:1:10:inf: ++%*37La: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-aa.input +new file mode 100644 +index 0000000000000000..231fc78d225363d5 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-aa.input +@@ -0,0 +1,682 @@ ++%LA::0:-1: ++%*LA::0:-1: ++%LA:-INFINITY:1:9:-inf: ++%*LA:-INFINITY:0:9: ++%LA:-0XF.FFFFFFFFFFFFFFFP+16380:1:27:-0x1.fffffffffffffffep16383: ++%*LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%LA:-0X7.FFFFFFFFFFFFFFF8P16381:1:27:-0x1.fffffffffffffffep16383: ++%*LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%LA:-0X2.3456789ABCDEF01P+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*LA:-0X2.3456789ABCDEF01P+12345:0:27: ++%LA:-0X2.3456789ABCDEF01P012345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*LA:-0X2.3456789ABCDEF01P012345:0:27: ++%LA:-0X8P-16385:1:11:-0x1p-16382: ++%*LA:-0X8P-16385:0:11: ++%LA:-0X0P+0:1:7:-0x0: ++%*LA:-0X0P+0:0:7: ++%LA:-0X0P0:1:6:-0x0: ++%*LA:-0X0P0:0:6: ++%LA:-NAN(09A_Zaz):1:13:-nan: ++%*LA:-NAN(09A_Zaz):0:13: ++%LA:-NAN():1:6:-nan: ++%*LA:-NAN():0:6: ++%LA:NAN():1:5:nan: ++%*LA:NAN():0:5: ++%LA:NAN(09A_Zaz):1:12:nan: ++%*LA:NAN(09A_Zaz):0:12: ++%LA:0X0P0:1:5:0x0: ++%*LA:0X0P0:0:5: ++%LA:0X0P+0:1:6:0x0: ++%*LA:0X0P+0:0:6: ++%LA:0X8P-16385:1:10:0x1p-16382: ++%*LA:0X8P-16385:0:10: ++%LA:0X2.3456789ABCDEF01P012345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*LA:0X2.3456789ABCDEF01P012345:0:26: ++%LA:0X2.3456789ABCDEF01P+12345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*LA:0X2.3456789ABCDEF01P+12345:0:26: ++%LA:0X7.FFFFFFFFFFFFFFF8P16381:1:26:0x1.fffffffffffffffep16383: ++%*LA:0X7.FFFFFFFFFFFFFFF8P16381:0:26: ++%LA:0XF.FFFFFFFFFFFFFFFP+16380:1:26:0x1.fffffffffffffffep16383: ++%*LA:0XF.FFFFFFFFFFFFFFFP+16380:0:26: ++%LA:INFINITY:1:8:inf: ++%*LA:INFINITY:0:8: ++%LA:+NAN():1:6:nan: ++%*LA:+NAN():0:6: ++%LA:+NAN(09A_Zaz):1:13:nan: ++%*LA:+NAN(09A_Zaz):0:13: ++%LA:+0X0P0:1:6:0x0: ++%*LA:+0X0P0:0:6: ++%LA:+0X0P+0:1:7:0x0: ++%*LA:+0X0P+0:0:7: ++%LA:+0X8P-16385:1:11:0x1p-16382: ++%*LA:+0X8P-16385:0:11: ++%LA:+0X2.3456789ABCDEF01P012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*LA:+0X2.3456789ABCDEF01P012345:0:27: ++%LA:+0X2.3456789ABCDEF01P+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*LA:+0X2.3456789ABCDEF01P+12345:0:27: ++%LA:+0X7.FFFFFFFFFFFFFFF8P16381:1:27:0x1.fffffffffffffffep16383: ++%*LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%LA:+0XF.FFFFFFFFFFFFFFFP+16380:1:27:0x1.fffffffffffffffep16383: ++%*LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%LA:+INFINITY:1:9:inf: ++%*LA:+INFINITY:0:9: ++%1LA::0:-1: ++%*1LA::0:-1: ++%1LA:-INFINITY:0:-1: ++%*1LA:-INFINITY:0:-1: ++%1LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%*1LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%1LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++%*1LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++%1LA:-0X2.3456789ABCDEF01P+12345:0:-1: ++%*1LA:-0X2.3456789ABCDEF01P+12345:0:-1: ++%1LA:-0X2.3456789ABCDEF01P012345:0:-1: ++%*1LA:-0X2.3456789ABCDEF01P012345:0:-1: ++%1LA:-0X8P-16385:0:-1: ++%*1LA:-0X8P-16385:0:-1: ++%1LA:-0X0P+0:0:-1: ++%*1LA:-0X0P+0:0:-1: ++%1LA:-0X0P0:0:-1: ++%*1LA:-0X0P0:0:-1: ++%1LA:-NAN(09A_Zaz):0:-1: ++%*1LA:-NAN(09A_Zaz):0:-1: ++%1LA:-NAN():0:-1: ++%*1LA:-NAN():0:-1: ++%1LA:NAN():0:-1: ++%*1LA:NAN():0:-1: ++%1LA:NAN(09A_Zaz):0:-1: ++%*1LA:NAN(09A_Zaz):0:-1: ++%1LA:0X0P0:1:1:0x0: ++%*1LA:0X0P0:0:1: ++%1LA:0X0P+0:1:1:0x0: ++%*1LA:0X0P+0:0:1: ++%1LA:0X8P-16385:1:1:0x0: ++%*1LA:0X8P-16385:0:1: ++%1LA:0X2.3456789ABCDEF01P012345:1:1:0x0: ++%*1LA:0X2.3456789ABCDEF01P012345:0:1: ++%1LA:0X2.3456789ABCDEF01P+12345:1:1:0x0: ++%*1LA:0X2.3456789ABCDEF01P+12345:0:1: ++%1LA:0X7.FFFFFFFFFFFFFFF8P16381:1:1:0x0: ++%*1LA:0X7.FFFFFFFFFFFFFFF8P16381:0:1: ++%1LA:0XF.FFFFFFFFFFFFFFFP+16380:1:1:0x0: ++%*1LA:0XF.FFFFFFFFFFFFFFFP+16380:0:1: ++%1LA:INFINITY:0:-1: ++%*1LA:INFINITY:0:-1: ++%1LA:+NAN():0:-1: ++%*1LA:+NAN():0:-1: ++%1LA:+NAN(09A_Zaz):0:-1: ++%*1LA:+NAN(09A_Zaz):0:-1: ++%1LA:+0X0P0:0:-1: ++%*1LA:+0X0P0:0:-1: ++%1LA:+0X0P+0:0:-1: ++%*1LA:+0X0P+0:0:-1: ++%1LA:+0X8P-16385:0:-1: ++%*1LA:+0X8P-16385:0:-1: ++%1LA:+0X2.3456789ABCDEF01P012345:0:-1: ++%*1LA:+0X2.3456789ABCDEF01P012345:0:-1: ++%1LA:+0X2.3456789ABCDEF01P+12345:0:-1: ++%*1LA:+0X2.3456789ABCDEF01P+12345:0:-1: ++%1LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++%*1LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++%1LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%*1LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%1LA:+INFINITY:0:-1: ++%*1LA:+INFINITY:0:-1: ++%2LA::0:-1: ++%*2LA::0:-1: ++%2LA:-INFINITY:0:-1: ++%*2LA:-INFINITY:0:-1: ++%2LA:-0XF.FFFFFFFFFFFFFFFP+16380:1:2:-0x0: ++%*2LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:2: ++%2LA:-0X7.FFFFFFFFFFFFFFF8P16381:1:2:-0x0: ++%*2LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:2: ++%2LA:-0X2.3456789ABCDEF01P+12345:1:2:-0x0: ++%*2LA:-0X2.3456789ABCDEF01P+12345:0:2: ++%2LA:-0X2.3456789ABCDEF01P012345:1:2:-0x0: ++%*2LA:-0X2.3456789ABCDEF01P012345:0:2: ++%2LA:-0X8P-16385:1:2:-0x0: ++%*2LA:-0X8P-16385:0:2: ++%2LA:-0X0P+0:1:2:-0x0: ++%*2LA:-0X0P+0:0:2: ++%2LA:-0X0P0:1:2:-0x0: ++%*2LA:-0X0P0:0:2: ++%2LA:-NAN(09A_Zaz):0:-1: ++%*2LA:-NAN(09A_Zaz):0:-1: ++%2LA:-NAN():0:-1: ++%*2LA:-NAN():0:-1: ++%2LA:NAN():0:-1: ++%*2LA:NAN():0:-1: ++%2LA:NAN(09A_Zaz):0:-1: ++%*2LA:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LA:0X0P0:0:-1: ++# BZ12701 %*2LA:0X0P0:0:-1: ++# BZ12701 %2LA:0X0P+0:0:-1: ++# BZ12701 %*2LA:0X0P+0:0:-1: ++# BZ12701 %2LA:0X8P-16385:0:-1: ++# BZ12701 %*2LA:0X8P-16385:0:-1: ++# BZ12701 %2LA:0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %*2LA:0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %2LA:0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*2LA:0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %2LA:0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*2LA:0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %2LA:0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*2LA:0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%2LA:INFINITY:0:-1: ++%*2LA:INFINITY:0:-1: ++%2LA:+NAN():0:-1: ++%*2LA:+NAN():0:-1: ++%2LA:+NAN(09A_Zaz):0:-1: ++%*2LA:+NAN(09A_Zaz):0:-1: ++%2LA:+0X0P0:1:2:0x0: ++%*2LA:+0X0P0:0:2: ++%2LA:+0X0P+0:1:2:0x0: ++%*2LA:+0X0P+0:0:2: ++%2LA:+0X8P-16385:1:2:0x0: ++%*2LA:+0X8P-16385:0:2: ++%2LA:+0X2.3456789ABCDEF01P012345:1:2:0x0: ++%*2LA:+0X2.3456789ABCDEF01P012345:0:2: ++%2LA:+0X2.3456789ABCDEF01P+12345:1:2:0x0: ++%*2LA:+0X2.3456789ABCDEF01P+12345:0:2: ++%2LA:+0X7.FFFFFFFFFFFFFFF8P16381:1:2:0x0: ++%*2LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:2: ++%2LA:+0XF.FFFFFFFFFFFFFFFP+16380:1:2:0x0: ++%*2LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:2: ++%2LA:+INFINITY:0:-1: ++%*2LA:+INFINITY:0:-1: ++%3LA::0:-1: ++%*3LA::0:-1: ++%3LA:-INFINITY:0:-1: ++%*3LA:-INFINITY:0:-1: ++# BZ12701 %3LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*3LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %3LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*3LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %3LA:-0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*3LA:-0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %3LA:-0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %*3LA:-0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %3LA:-0X8P-16385:0:-1: ++# BZ12701 %*3LA:-0X8P-16385:0:-1: ++# BZ12701 %3LA:-0X0P+0:0:-1: ++# BZ12701 %*3LA:-0X0P+0:0:-1: ++# BZ12701 %3LA:-0X0P0:0:-1: ++# BZ12701 %*3LA:-0X0P0:0:-1: ++%3LA:-NAN(09A_Zaz):0:-1: ++%*3LA:-NAN(09A_Zaz):0:-1: ++%3LA:-NAN():0:-1: ++%*3LA:-NAN():0:-1: ++%3LA:NAN():1:3:nan: ++%*3LA:NAN():0:3: ++%3LA:NAN(09A_Zaz):1:3:nan: ++%*3LA:NAN(09A_Zaz):0:3: ++%3LA:0X0P0:1:3:0x0: ++%*3LA:0X0P0:0:3: ++%3LA:0X0P+0:1:3:0x0: ++%*3LA:0X0P+0:0:3: ++%3LA:0X8P-16385:1:3:0x1p3: ++%*3LA:0X8P-16385:0:3: ++%3LA:0X2.3456789ABCDEF01P012345:1:3:0x1p1: ++%*3LA:0X2.3456789ABCDEF01P012345:0:3: ++%3LA:0X2.3456789ABCDEF01P+12345:1:3:0x1p1: ++%*3LA:0X2.3456789ABCDEF01P+12345:0:3: ++%3LA:0X7.FFFFFFFFFFFFFFF8P16381:1:3:0x1.cp2: ++%*3LA:0X7.FFFFFFFFFFFFFFF8P16381:0:3: ++%3LA:0XF.FFFFFFFFFFFFFFFP+16380:1:3:0x1.ep3: ++%*3LA:0XF.FFFFFFFFFFFFFFFP+16380:0:3: ++%3LA:INFINITY:1:3:inf: ++%*3LA:INFINITY:0:3: ++%3LA:+NAN():0:-1: ++%*3LA:+NAN():0:-1: ++%3LA:+NAN(09A_Zaz):0:-1: ++%*3LA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LA:+0X0P0:0:-1: ++# BZ12701 %*3LA:+0X0P0:0:-1: ++# BZ12701 %3LA:+0X0P+0:0:-1: ++# BZ12701 %*3LA:+0X0P+0:0:-1: ++# BZ12701 %3LA:+0X8P-16385:0:-1: ++# BZ12701 %*3LA:+0X8P-16385:0:-1: ++# BZ12701 %3LA:+0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %*3LA:+0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %3LA:+0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*3LA:+0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %3LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*3LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %3LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*3LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%3LA:+INFINITY:0:-1: ++%*3LA:+INFINITY:0:-1: ++%4LA::0:-1: ++%*4LA::0:-1: ++%4LA:-INFINITY:1:4:-inf: ++%*4LA:-INFINITY:0:4: ++%4LA:-0XF.FFFFFFFFFFFFFFFP+16380:1:4:-0x1.ep3: ++%*4LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:4: ++%4LA:-0X7.FFFFFFFFFFFFFFF8P16381:1:4:-0x1.cp2: ++%*4LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:4: ++%4LA:-0X2.3456789ABCDEF01P+12345:1:4:-0x1p1: ++%*4LA:-0X2.3456789ABCDEF01P+12345:0:4: ++%4LA:-0X2.3456789ABCDEF01P012345:1:4:-0x1p1: ++%*4LA:-0X2.3456789ABCDEF01P012345:0:4: ++%4LA:-0X8P-16385:1:4:-0x1p3: ++%*4LA:-0X8P-16385:0:4: ++%4LA:-0X0P+0:1:4:-0x0: ++%*4LA:-0X0P+0:0:4: ++%4LA:-0X0P0:1:4:-0x0: ++%*4LA:-0X0P0:0:4: ++%4LA:-NAN(09A_Zaz):1:4:-nan: ++%*4LA:-NAN(09A_Zaz):0:4: ++%4LA:-NAN():1:4:-nan: ++%*4LA:-NAN():0:4: ++%4LA:NAN():0:-1: ++%*4LA:NAN():0:-1: ++%4LA:NAN(09A_Zaz):0:-1: ++%*4LA:NAN(09A_Zaz):0:-1: ++# BZ12701 %4LA:0X0P0:0:-1: ++# BZ12701 %*4LA:0X0P0:0:-1: ++# BZ12701 %4LA:0X0P+0:0:-1: ++# BZ12701 %*4LA:0X0P+0:0:-1: ++# BZ12701 %4LA:0X8P-16385:0:-1: ++# BZ12701 %*4LA:0X8P-16385:0:-1: ++%4LA:0X2.3456789ABCDEF01P012345:1:4:0x1p1: ++%*4LA:0X2.3456789ABCDEF01P012345:0:4: ++%4LA:0X2.3456789ABCDEF01P+12345:1:4:0x1p1: ++%*4LA:0X2.3456789ABCDEF01P+12345:0:4: ++%4LA:0X7.FFFFFFFFFFFFFFF8P16381:1:4:0x1.cp2: ++%*4LA:0X7.FFFFFFFFFFFFFFF8P16381:0:4: ++%4LA:0XF.FFFFFFFFFFFFFFFP+16380:1:4:0x1.ep3: ++%*4LA:0XF.FFFFFFFFFFFFFFFP+16380:0:4: ++%4LA:INFINITY:0:-1: ++%*4LA:INFINITY:0:-1: ++%4LA:+NAN():1:4:nan: ++%*4LA:+NAN():0:4: ++%4LA:+NAN(09A_Zaz):1:4:nan: ++%*4LA:+NAN(09A_Zaz):0:4: ++%4LA:+0X0P0:1:4:0x0: ++%*4LA:+0X0P0:0:4: ++%4LA:+0X0P+0:1:4:0x0: ++%*4LA:+0X0P+0:0:4: ++%4LA:+0X8P-16385:1:4:0x1p3: ++%*4LA:+0X8P-16385:0:4: ++%4LA:+0X2.3456789ABCDEF01P012345:1:4:0x1p1: ++%*4LA:+0X2.3456789ABCDEF01P012345:0:4: ++%4LA:+0X2.3456789ABCDEF01P+12345:1:4:0x1p1: ++%*4LA:+0X2.3456789ABCDEF01P+12345:0:4: ++%4LA:+0X7.FFFFFFFFFFFFFFF8P16381:1:4:0x1.cp2: ++%*4LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:4: ++%4LA:+0XF.FFFFFFFFFFFFFFFP+16380:1:4:0x1.ep3: ++%*4LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:4: ++%4LA:+INFINITY:1:4:inf: ++%*4LA:+INFINITY:0:4: ++%5LA::0:-1: ++%*5LA::0:-1: ++%5LA:-INFINITY:0:-1: ++%*5LA:-INFINITY:0:-1: ++%5LA:-0XF.FFFFFFFFFFFFFFFP+16380:1:5:-0x1.ep3: ++%*5LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:5: ++%5LA:-0X7.FFFFFFFFFFFFFFF8P16381:1:5:-0x1.cp2: ++%*5LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:5: ++%5LA:-0X2.3456789ABCDEF01P+12345:1:5:-0x1p1: ++%*5LA:-0X2.3456789ABCDEF01P+12345:0:5: ++%5LA:-0X2.3456789ABCDEF01P012345:1:5:-0x1p1: ++%*5LA:-0X2.3456789ABCDEF01P012345:0:5: ++# BZ12701 %5LA:-0X8P-16385:0:-1: ++# BZ12701 %*5LA:-0X8P-16385:0:-1: ++# BZ12701 %5LA:-0X0P+0:0:-1: ++# BZ12701 %*5LA:-0X0P+0:0:-1: ++# BZ12701 %5LA:-0X0P0:0:-1: ++# BZ12701 %*5LA:-0X0P0:0:-1: ++%5LA:-NAN(09A_Zaz):0:-1: ++%*5LA:-NAN(09A_Zaz):0:-1: ++%5LA:-NAN():0:-1: ++%*5LA:-NAN():0:-1: ++%5LA:NAN():1:5:nan: ++%*5LA:NAN():0:5: ++%5LA:NAN(09A_Zaz):0:-1: ++%*5LA:NAN(09A_Zaz):0:-1: ++%5LA:0X0P0:1:5:0x0: ++%*5LA:0X0P0:0:5: ++# BZ12701 %5LA:0X0P+0:0:-1: ++# BZ12701 %*5LA:0X0P+0:0:-1: ++# BZ12701 %5LA:0X8P-16385:0:-1: ++# BZ12701 %*5LA:0X8P-16385:0:-1: ++%5LA:0X2.3456789ABCDEF01P012345:1:5:0x1.18p1: ++%*5LA:0X2.3456789ABCDEF01P012345:0:5: ++%5LA:0X2.3456789ABCDEF01P+12345:1:5:0x1.18p1: ++%*5LA:0X2.3456789ABCDEF01P+12345:0:5: ++%5LA:0X7.FFFFFFFFFFFFFFF8P16381:1:5:0x1.fcp2: ++%*5LA:0X7.FFFFFFFFFFFFFFF8P16381:0:5: ++%5LA:0XF.FFFFFFFFFFFFFFFP+16380:1:5:0x1.fep3: ++%*5LA:0XF.FFFFFFFFFFFFFFFP+16380:0:5: ++%5LA:INFINITY:0:-1: ++%*5LA:INFINITY:0:-1: ++%5LA:+NAN():0:-1: ++%*5LA:+NAN():0:-1: ++%5LA:+NAN(09A_Zaz):0:-1: ++%*5LA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5LA:+0X0P0:0:-1: ++# BZ12701 %*5LA:+0X0P0:0:-1: ++# BZ12701 %5LA:+0X0P+0:0:-1: ++# BZ12701 %*5LA:+0X0P+0:0:-1: ++# BZ12701 %5LA:+0X8P-16385:0:-1: ++# BZ12701 %*5LA:+0X8P-16385:0:-1: ++%5LA:+0X2.3456789ABCDEF01P012345:1:5:0x1p1: ++%*5LA:+0X2.3456789ABCDEF01P012345:0:5: ++%5LA:+0X2.3456789ABCDEF01P+12345:1:5:0x1p1: ++%*5LA:+0X2.3456789ABCDEF01P+12345:0:5: ++%5LA:+0X7.FFFFFFFFFFFFFFF8P16381:1:5:0x1.cp2: ++%*5LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:5: ++%5LA:+0XF.FFFFFFFFFFFFFFFP+16380:1:5:0x1.ep3: ++%*5LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:5: ++%5LA:+INFINITY:0:-1: ++%*5LA:+INFINITY:0:-1: ++%6LA::0:-1: ++%*6LA::0:-1: ++%6LA:-INFINITY:0:-1: ++%*6LA:-INFINITY:0:-1: ++%6LA:-0XF.FFFFFFFFFFFFFFFP+16380:1:6:-0x1.fep3: ++%*6LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%6LA:-0X7.FFFFFFFFFFFFFFF8P16381:1:6:-0x1.fcp2: ++%*6LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%6LA:-0X2.3456789ABCDEF01P+12345:1:6:-0x1.18p1: ++%*6LA:-0X2.3456789ABCDEF01P+12345:0:6: ++%6LA:-0X2.3456789ABCDEF01P012345:1:6:-0x1.18p1: ++%*6LA:-0X2.3456789ABCDEF01P012345:0:6: ++# BZ12701 %6LA:-0X8P-16385:0:-1: ++# BZ12701 %*6LA:-0X8P-16385:0:-1: ++# BZ12701 %6LA:-0X0P+0:0:-1: ++# BZ12701 %*6LA:-0X0P+0:0:-1: ++%6LA:-0X0P0:1:6:-0x0: ++%*6LA:-0X0P0:0:6: ++%6LA:-NAN(09A_Zaz):0:-1: ++%*6LA:-NAN(09A_Zaz):0:-1: ++%6LA:-NAN():1:6:-nan: ++%*6LA:-NAN():0:6: ++%6LA:NAN():1:5:nan: ++%*6LA:NAN():0:5: ++%6LA:NAN(09A_Zaz):0:-1: ++%*6LA:NAN(09A_Zaz):0:-1: ++%6LA:0X0P0:1:5:0x0: ++%*6LA:0X0P0:0:5: ++%6LA:0X0P+0:1:6:0x0: ++%*6LA:0X0P+0:0:6: ++%6LA:0X8P-16385:1:6:0x1p2: ++%*6LA:0X8P-16385:0:6: ++%6LA:0X2.3456789ABCDEF01P012345:1:6:0x1.1ap1: ++%*6LA:0X2.3456789ABCDEF01P012345:0:6: ++%6LA:0X2.3456789ABCDEF01P+12345:1:6:0x1.1ap1: ++%*6LA:0X2.3456789ABCDEF01P+12345:0:6: ++%6LA:0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.ffcp2: ++%*6LA:0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%6LA:0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.ffep3: ++%*6LA:0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%6LA:INFINITY:0:-1: ++%*6LA:INFINITY:0:-1: ++%6LA:+NAN():1:6:nan: ++%*6LA:+NAN():0:6: ++%6LA:+NAN(09A_Zaz):0:-1: ++%*6LA:+NAN(09A_Zaz):0:-1: ++%6LA:+0X0P0:1:6:0x0: ++%*6LA:+0X0P0:0:6: ++# BZ12701 %6LA:+0X0P+0:0:-1: ++# BZ12701 %*6LA:+0X0P+0:0:-1: ++# BZ12701 %6LA:+0X8P-16385:0:-1: ++# BZ12701 %*6LA:+0X8P-16385:0:-1: ++%6LA:+0X2.3456789ABCDEF01P012345:1:6:0x1.18p1: ++%*6LA:+0X2.3456789ABCDEF01P012345:0:6: ++%6LA:+0X2.3456789ABCDEF01P+12345:1:6:0x1.18p1: ++%*6LA:+0X2.3456789ABCDEF01P+12345:0:6: ++%6LA:+0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.fcp2: ++%*6LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%6LA:+0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.fep3: ++%*6LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%6LA:+INFINITY:0:-1: ++%*6LA:+INFINITY:0:-1: ++%22LA::0:-1: ++%*22LA::0:-1: ++%22LA:-INFINITY:1:9:-inf: ++%*22LA:-INFINITY:0:9: ++# BZ12701 %22LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*22LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %22LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*22LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %22LA:-0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*22LA:-0X2.3456789ABCDEF01P+12345:0:-1: ++%22LA:-0X2.3456789ABCDEF01P012345:1:22:-0x1.1a2b3c4d5e6f7808p1: ++%*22LA:-0X2.3456789ABCDEF01P012345:0:22: ++%22LA:-0X8P-16385:1:11:-0x1p-16382: ++%*22LA:-0X8P-16385:0:11: ++%22LA:-0X0P+0:1:7:-0x0: ++%*22LA:-0X0P+0:0:7: ++%22LA:-0X0P0:1:6:-0x0: ++%*22LA:-0X0P0:0:6: ++%22LA:-NAN(09A_Zaz):1:13:-nan: ++%*22LA:-NAN(09A_Zaz):0:13: ++%22LA:-NAN():1:6:-nan: ++%*22LA:-NAN():0:6: ++%22LA:NAN():1:5:nan: ++%*22LA:NAN():0:5: ++%22LA:NAN(09A_Zaz):1:12:nan: ++%*22LA:NAN(09A_Zaz):0:12: ++%22LA:0X0P0:1:5:0x0: ++%*22LA:0X0P0:0:5: ++%22LA:0X0P+0:1:6:0x0: ++%*22LA:0X0P+0:0:6: ++%22LA:0X8P-16385:1:10:0x1p-16382: ++%*22LA:0X8P-16385:0:10: ++%22LA:0X2.3456789ABCDEF01P012345:1:22:0x1.1a2b3c4d5e6f7808p2: ++%*22LA:0X2.3456789ABCDEF01P012345:0:22: ++%22LA:0X2.3456789ABCDEF01P+12345:1:22:0x1.1a2b3c4d5e6f7808p2: ++%*22LA:0X2.3456789ABCDEF01P+12345:0:22: ++%22LA:0X7.FFFFFFFFFFFFFFF8P16381:1:22:0x1.fffffffffffffffep3: ++%*22LA:0X7.FFFFFFFFFFFFFFF8P16381:0:22: ++%22LA:0XF.FFFFFFFFFFFFFFFP+16380:1:22:0x1.fffffffffffffffep4: ++%*22LA:0XF.FFFFFFFFFFFFFFFP+16380:0:22: ++%22LA:INFINITY:1:8:inf: ++%*22LA:INFINITY:0:8: ++%22LA:+NAN():1:6:nan: ++%*22LA:+NAN():0:6: ++%22LA:+NAN(09A_Zaz):1:13:nan: ++%*22LA:+NAN(09A_Zaz):0:13: ++%22LA:+0X0P0:1:6:0x0: ++%*22LA:+0X0P0:0:6: ++%22LA:+0X0P+0:1:7:0x0: ++%*22LA:+0X0P+0:0:7: ++%22LA:+0X8P-16385:1:11:0x1p-16382: ++%*22LA:+0X8P-16385:0:11: ++%22LA:+0X2.3456789ABCDEF01P012345:1:22:0x1.1a2b3c4d5e6f7808p1: ++%*22LA:+0X2.3456789ABCDEF01P012345:0:22: ++# BZ12701 %22LA:+0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*22LA:+0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %22LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*22LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %22LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*22LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%22LA:+INFINITY:1:9:inf: ++%*22LA:+INFINITY:0:9: ++%37LA::0:-1: ++%*37LA::0:-1: ++%37LA:-INFINITY:1:9:-inf: ++%*37LA:-INFINITY:0:9: ++%37LA:-0XF.FFFFFFFFFFFFFFFP+16380:1:27:-0x1.fffffffffffffffep16383: ++%*37LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%37LA:-0X7.FFFFFFFFFFFFFFF8P16381:1:27:-0x1.fffffffffffffffep16383: ++%*37LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%37LA:-0X2.3456789ABCDEF01P+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*37LA:-0X2.3456789ABCDEF01P+12345:0:27: ++%37LA:-0X2.3456789ABCDEF01P012345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*37LA:-0X2.3456789ABCDEF01P012345:0:27: ++%37LA:-0X8P-16385:1:11:-0x1p-16382: ++%*37LA:-0X8P-16385:0:11: ++%37LA:-0X0P+0:1:7:-0x0: ++%*37LA:-0X0P+0:0:7: ++%37LA:-0X0P0:1:6:-0x0: ++%*37LA:-0X0P0:0:6: ++%37LA:-NAN(09A_Zaz):1:13:-nan: ++%*37LA:-NAN(09A_Zaz):0:13: ++%37LA:-NAN():1:6:-nan: ++%*37LA:-NAN():0:6: ++%37LA:NAN():1:5:nan: ++%*37LA:NAN():0:5: ++%37LA:NAN(09A_Zaz):1:12:nan: ++%*37LA:NAN(09A_Zaz):0:12: ++%37LA:0X0P0:1:5:0x0: ++%*37LA:0X0P0:0:5: ++%37LA:0X0P+0:1:6:0x0: ++%*37LA:0X0P+0:0:6: ++%37LA:0X8P-16385:1:10:0x1p-16382: ++%*37LA:0X8P-16385:0:10: ++%37LA:0X2.3456789ABCDEF01P012345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*37LA:0X2.3456789ABCDEF01P012345:0:26: ++%37LA:0X2.3456789ABCDEF01P+12345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*37LA:0X2.3456789ABCDEF01P+12345:0:26: ++%37LA:0X7.FFFFFFFFFFFFFFF8P16381:1:26:0x1.fffffffffffffffep16383: ++%*37LA:0X7.FFFFFFFFFFFFFFF8P16381:0:26: ++%37LA:0XF.FFFFFFFFFFFFFFFP+16380:1:26:0x1.fffffffffffffffep16383: ++%*37LA:0XF.FFFFFFFFFFFFFFFP+16380:0:26: ++%37LA:INFINITY:1:8:inf: ++%*37LA:INFINITY:0:8: ++%37LA:+NAN():1:6:nan: ++%*37LA:+NAN():0:6: ++%37LA:+NAN(09A_Zaz):1:13:nan: ++%*37LA:+NAN(09A_Zaz):0:13: ++%37LA:+0X0P0:1:6:0x0: ++%*37LA:+0X0P0:0:6: ++%37LA:+0X0P+0:1:7:0x0: ++%*37LA:+0X0P+0:0:7: ++%37LA:+0X8P-16385:1:11:0x1p-16382: ++%*37LA:+0X8P-16385:0:11: ++%37LA:+0X2.3456789ABCDEF01P012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37LA:+0X2.3456789ABCDEF01P012345:0:27: ++%37LA:+0X2.3456789ABCDEF01P+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37LA:+0X2.3456789ABCDEF01P+12345:0:27: ++%37LA:+0X7.FFFFFFFFFFFFFFF8P16381:1:27:0x1.fffffffffffffffep16383: ++%*37LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%37LA:+0XF.FFFFFFFFFFFFFFFP+16380:1:27:0x1.fffffffffffffffep16383: ++%*37LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%37LA:+INFINITY:1:9:inf: ++%*37LA:+INFINITY:0:9: ++%5LA: :0:-1: ++%*5LA: :0:-1: ++%5LA: -INFINITY:0:-1: ++%*5LA: -INFINITY:0:-1: ++%5LA: -0XF.FFFFFFFFFFFFFFFP+16380:1:6:-0x1.ep3: ++%*5LA: -0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%5LA: -0X7.FFFFFFFFFFFFFFF8P16381:1:6:-0x1.cp2: ++%*5LA: -0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%5LA: -0X2.3456789ABCDEF01P+12345:1:6:-0x1p1: ++%*5LA: -0X2.3456789ABCDEF01P+12345:0:6: ++%5LA: -0X2.3456789ABCDEF01P012345:1:6:-0x1p1: ++%*5LA: -0X2.3456789ABCDEF01P012345:0:6: ++# BZ12701 %5LA: -0X8P-16385:0:-1: ++# BZ12701 %*5LA: -0X8P-16385:0:-1: ++# BZ12701 %5LA: -0X0P+0:0:-1: ++# BZ12701 %*5LA: -0X0P+0:0:-1: ++# BZ12701 %5LA: -0X0P0:0:-1: ++# BZ12701 %*5LA: -0X0P0:0:-1: ++%5LA: -NAN(09A_Zaz):0:-1: ++%*5LA: -NAN(09A_Zaz):0:-1: ++%5LA: -NAN():0:-1: ++%*5LA: -NAN():0:-1: ++%5LA: NAN():1:6:nan: ++%*5LA: NAN():0:6: ++%5LA: NAN(09A_Zaz):0:-1: ++%*5LA: NAN(09A_Zaz):0:-1: ++%5LA: 0X0P0:1:6:0x0: ++%*5LA: 0X0P0:0:6: ++# BZ12701 %5LA: 0X0P+0:0:-1: ++# BZ12701 %*5LA: 0X0P+0:0:-1: ++# BZ12701 %5LA: 0X8P-16385:0:-1: ++# BZ12701 %*5LA: 0X8P-16385:0:-1: ++%5LA: 0X2.3456789ABCDEF01P012345:1:6:0x1.18p1: ++%*5LA: 0X2.3456789ABCDEF01P012345:0:6: ++%5LA: 0X2.3456789ABCDEF01P+12345:1:6:0x1.18p1: ++%*5LA: 0X2.3456789ABCDEF01P+12345:0:6: ++%5LA: 0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.fcp2: ++%*5LA: 0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%5LA: 0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.fep3: ++%*5LA: 0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%5LA: INFINITY:0:-1: ++%*5LA: INFINITY:0:-1: ++%5LA: +NAN():0:-1: ++%*5LA: +NAN():0:-1: ++%5LA: +NAN(09A_Zaz):0:-1: ++%*5LA: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5LA: +0X0P0:0:-1: ++# BZ12701 %*5LA: +0X0P0:0:-1: ++# BZ12701 %5LA: +0X0P+0:0:-1: ++# BZ12701 %*5LA: +0X0P+0:0:-1: ++# BZ12701 %5LA: +0X8P-16385:0:-1: ++# BZ12701 %*5LA: +0X8P-16385:0:-1: ++%5LA: +0X2.3456789ABCDEF01P012345:1:6:0x1p1: ++%*5LA: +0X2.3456789ABCDEF01P012345:0:6: ++%5LA: +0X2.3456789ABCDEF01P+12345:1:6:0x1p1: ++%*5LA: +0X2.3456789ABCDEF01P+12345:0:6: ++%5LA: +0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.cp2: ++%*5LA: +0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%5LA: +0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.ep3: ++%*5LA: +0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%5LA: +INFINITY:0:-1: ++%*5LA: +INFINITY:0:-1: ++%37LA: :0:-1: ++%*37LA: :0:-1: ++%37LA: -INFINITY:1:10:-inf: ++%*37LA: -INFINITY:0:10: ++%37LA: -0XF.FFFFFFFFFFFFFFFP+16380:1:28:-0x1.fffffffffffffffep16383: ++%*37LA: -0XF.FFFFFFFFFFFFFFFP+16380:0:28: ++%37LA: -0X7.FFFFFFFFFFFFFFF8P16381:1:28:-0x1.fffffffffffffffep16383: ++%*37LA: -0X7.FFFFFFFFFFFFFFF8P16381:0:28: ++%37LA: -0X2.3456789ABCDEF01P+12345:1:28:-0x1.1a2b3c4d5e6f7808p12346: ++%*37LA: -0X2.3456789ABCDEF01P+12345:0:28: ++%37LA: -0X2.3456789ABCDEF01P012345:1:28:-0x1.1a2b3c4d5e6f7808p12346: ++%*37LA: -0X2.3456789ABCDEF01P012345:0:28: ++%37LA: -0X8P-16385:1:12:-0x1p-16382: ++%*37LA: -0X8P-16385:0:12: ++%37LA: -0X0P+0:1:8:-0x0: ++%*37LA: -0X0P+0:0:8: ++%37LA: -0X0P0:1:7:-0x0: ++%*37LA: -0X0P0:0:7: ++%37LA: -NAN(09A_Zaz):1:14:-nan: ++%*37LA: -NAN(09A_Zaz):0:14: ++%37LA: -NAN():1:7:-nan: ++%*37LA: -NAN():0:7: ++%37LA: NAN():1:6:nan: ++%*37LA: NAN():0:6: ++%37LA: NAN(09A_Zaz):1:13:nan: ++%*37LA: NAN(09A_Zaz):0:13: ++%37LA: 0X0P0:1:6:0x0: ++%*37LA: 0X0P0:0:6: ++%37LA: 0X0P+0:1:7:0x0: ++%*37LA: 0X0P+0:0:7: ++%37LA: 0X8P-16385:1:11:0x1p-16382: ++%*37LA: 0X8P-16385:0:11: ++%37LA: 0X2.3456789ABCDEF01P012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37LA: 0X2.3456789ABCDEF01P012345:0:27: ++%37LA: 0X2.3456789ABCDEF01P+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37LA: 0X2.3456789ABCDEF01P+12345:0:27: ++%37LA: 0X7.FFFFFFFFFFFFFFF8P16381:1:27:0x1.fffffffffffffffep16383: ++%*37LA: 0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%37LA: 0XF.FFFFFFFFFFFFFFFP+16380:1:27:0x1.fffffffffffffffep16383: ++%*37LA: 0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%37LA: INFINITY:1:9:inf: ++%*37LA: INFINITY:0:9: ++%37LA: +NAN():1:7:nan: ++%*37LA: +NAN():0:7: ++%37LA: +NAN(09A_Zaz):1:14:nan: ++%*37LA: +NAN(09A_Zaz):0:14: ++%37LA: +0X0P0:1:7:0x0: ++%*37LA: +0X0P0:0:7: ++%37LA: +0X0P+0:1:8:0x0: ++%*37LA: +0X0P+0:0:8: ++%37LA: +0X8P-16385:1:12:0x1p-16382: ++%*37LA: +0X8P-16385:0:12: ++%37LA: +0X2.3456789ABCDEF01P012345:1:28:0x1.1a2b3c4d5e6f7808p12346: ++%*37LA: +0X2.3456789ABCDEF01P012345:0:28: ++%37LA: +0X2.3456789ABCDEF01P+12345:1:28:0x1.1a2b3c4d5e6f7808p12346: ++%*37LA: +0X2.3456789ABCDEF01P+12345:0:28: ++%37LA: +0X7.FFFFFFFFFFFFFFF8P16381:1:28:0x1.fffffffffffffffep16383: ++%*37LA: +0X7.FFFFFFFFFFFFFFF8P16381:0:28: ++%37LA: +0XF.FFFFFFFFFFFFFFFP+16380:1:28:0x1.fffffffffffffffep16383: ++%*37LA: +0XF.FFFFFFFFFFFFFFFP+16380:0:28: ++%37LA: +INFINITY:1:10:inf: ++%*37LA: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-e.input +new file mode 100644 +index 0000000000000000..61a9c901c205f897 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-e.input +@@ -0,0 +1,558 @@ ++%Le::0:-1: ++%*Le::0:-1: ++%Le:-infinity:1:9:-inf: ++%*Le:-infinity:0:9: ++%Le:-1.18973149535723176502126385303097021e+4932:1:44:-0x1.fffffffffffffffep16383: ++%*Le:-1.18973149535723176502126385303097021e+4932:0:44: ++%Le:-1.18973149535723176502126385303097021e4932:1:43:-0x1.fffffffffffffffep16383: ++%*Le:-1.18973149535723176502126385303097021e4932:0:43: ++%Le:-3.619058724505602958194804115432455e+3716:1:42:-0x1.1a2b3c4d5e6f7808p12346: ++%*Le:-3.619058724505602958194804115432455e+3716:0:42: ++%Le:-3.619058724505602958194804115432455e03716:1:42:-0x1.1a2b3c4d5e6f7808p12346: ++%*Le:-3.619058724505602958194804115432455e03716:0:42: ++%Le:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382: ++%*Le:-3.36210314311209350626267781732175260e-4932:0:44: ++%Le:-0e+0:1:5:-0x0: ++%*Le:-0e+0:0:5: ++%Le:-0e0:1:4:-0x0: ++%*Le:-0e0:0:4: ++%Le:-nan(09A_Zaz):1:13:-nan: ++%*Le:-nan(09A_Zaz):0:13: ++%Le:-nan():1:6:-nan: ++%*Le:-nan():0:6: ++%Le:nan():1:5:nan: ++%*Le:nan():0:5: ++%Le:nan(09A_Zaz):1:12:nan: ++%*Le:nan(09A_Zaz):0:12: ++%Le:0e0:1:3:0x0: ++%*Le:0e0:0:3: ++%Le:0e+0:1:4:0x0: ++%*Le:0e+0:0:4: ++%Le:3.36210314311209350626267781732175260e-4932:1:43:0x1p-16382: ++%*Le:3.36210314311209350626267781732175260e-4932:0:43: ++%Le:3.619058724505602958194804115432455e03716:1:41:0x1.1a2b3c4d5e6f7808p12346: ++%*Le:3.619058724505602958194804115432455e03716:0:41: ++%Le:3.619058724505602958194804115432455e+3716:1:41:0x1.1a2b3c4d5e6f7808p12346: ++%*Le:3.619058724505602958194804115432455e+3716:0:41: ++%Le:1.18973149535723176502126385303097021e4932:1:42:0x1.fffffffffffffffep16383: ++%*Le:1.18973149535723176502126385303097021e4932:0:42: ++%Le:1.18973149535723176502126385303097021e+4932:1:43:0x1.fffffffffffffffep16383: ++%*Le:1.18973149535723176502126385303097021e+4932:0:43: ++%Le:infinity:1:8:inf: ++%*Le:infinity:0:8: ++%Le:+nan():1:6:nan: ++%*Le:+nan():0:6: ++%Le:+nan(09A_Zaz):1:13:nan: ++%*Le:+nan(09A_Zaz):0:13: ++%Le:+0e0:1:4:0x0: ++%*Le:+0e0:0:4: ++%Le:+0e+0:1:5:0x0: ++%*Le:+0e+0:0:5: ++%Le:+3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*Le:+3.36210314311209350626267781732175260e-4932:0:44: ++%Le:+3.619058724505602958194804115432455e03716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*Le:+3.619058724505602958194804115432455e03716:0:42: ++%Le:+3.619058724505602958194804115432455e+3716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*Le:+3.619058724505602958194804115432455e+3716:0:42: ++%Le:+1.18973149535723176502126385303097021e4932:1:43:0x1.fffffffffffffffep16383: ++%*Le:+1.18973149535723176502126385303097021e4932:0:43: ++%Le:+1.18973149535723176502126385303097021e+4932:1:44:0x1.fffffffffffffffep16383: ++%*Le:+1.18973149535723176502126385303097021e+4932:0:44: ++%Le:+infinity:1:9:inf: ++%*Le:+infinity:0:9: ++%1Le::0:-1: ++%*1Le::0:-1: ++%1Le:-infinity:0:-1: ++%*1Le:-infinity:0:-1: ++%1Le:-1.18973149535723176502126385303097021e+4932:0:-1: ++%*1Le:-1.18973149535723176502126385303097021e+4932:0:-1: ++%1Le:-1.18973149535723176502126385303097021e4932:0:-1: ++%*1Le:-1.18973149535723176502126385303097021e4932:0:-1: ++%1Le:-3.619058724505602958194804115432455e+3716:0:-1: ++%*1Le:-3.619058724505602958194804115432455e+3716:0:-1: ++%1Le:-3.619058724505602958194804115432455e03716:0:-1: ++%*1Le:-3.619058724505602958194804115432455e03716:0:-1: ++%1Le:-3.36210314311209350626267781732175260e-4932:0:-1: ++%*1Le:-3.36210314311209350626267781732175260e-4932:0:-1: ++%1Le:-0e+0:0:-1: ++%*1Le:-0e+0:0:-1: ++%1Le:-0e0:0:-1: ++%*1Le:-0e0:0:-1: ++%1Le:-nan(09A_Zaz):0:-1: ++%*1Le:-nan(09A_Zaz):0:-1: ++%1Le:-nan():0:-1: ++%*1Le:-nan():0:-1: ++%1Le:nan():0:-1: ++%*1Le:nan():0:-1: ++%1Le:nan(09A_Zaz):0:-1: ++%*1Le:nan(09A_Zaz):0:-1: ++%1Le:0e0:1:1:0x0: ++%*1Le:0e0:0:1: ++%1Le:0e+0:1:1:0x0: ++%*1Le:0e+0:0:1: ++%1Le:3.36210314311209350626267781732175260e-4932:1:1:0x1.8p1: ++%*1Le:3.36210314311209350626267781732175260e-4932:0:1: ++%1Le:3.619058724505602958194804115432455e03716:1:1:0x1.8p1: ++%*1Le:3.619058724505602958194804115432455e03716:0:1: ++%1Le:3.619058724505602958194804115432455e+3716:1:1:0x1.8p1: ++%*1Le:3.619058724505602958194804115432455e+3716:0:1: ++%1Le:1.18973149535723176502126385303097021e4932:1:1:0x1: ++%*1Le:1.18973149535723176502126385303097021e4932:0:1: ++%1Le:1.18973149535723176502126385303097021e+4932:1:1:0x1: ++%*1Le:1.18973149535723176502126385303097021e+4932:0:1: ++%1Le:infinity:0:-1: ++%*1Le:infinity:0:-1: ++%1Le:+nan():0:-1: ++%*1Le:+nan():0:-1: ++%1Le:+nan(09A_Zaz):0:-1: ++%*1Le:+nan(09A_Zaz):0:-1: ++%1Le:+0e0:0:-1: ++%*1Le:+0e0:0:-1: ++%1Le:+0e+0:0:-1: ++%*1Le:+0e+0:0:-1: ++%1Le:+3.36210314311209350626267781732175260e-4932:0:-1: ++%*1Le:+3.36210314311209350626267781732175260e-4932:0:-1: ++%1Le:+3.619058724505602958194804115432455e03716:0:-1: ++%*1Le:+3.619058724505602958194804115432455e03716:0:-1: ++%1Le:+3.619058724505602958194804115432455e+3716:0:-1: ++%*1Le:+3.619058724505602958194804115432455e+3716:0:-1: ++%1Le:+1.18973149535723176502126385303097021e4932:0:-1: ++%*1Le:+1.18973149535723176502126385303097021e4932:0:-1: ++%1Le:+1.18973149535723176502126385303097021e+4932:0:-1: ++%*1Le:+1.18973149535723176502126385303097021e+4932:0:-1: ++%1Le:+infinity:0:-1: ++%*1Le:+infinity:0:-1: ++%2Le::0:-1: ++%*2Le::0:-1: ++%2Le:-infinity:0:-1: ++%*2Le:-infinity:0:-1: ++%2Le:-1.18973149535723176502126385303097021e+4932:1:2:-0x1: ++%*2Le:-1.18973149535723176502126385303097021e+4932:0:2: ++%2Le:-1.18973149535723176502126385303097021e4932:1:2:-0x1: ++%*2Le:-1.18973149535723176502126385303097021e4932:0:2: ++%2Le:-3.619058724505602958194804115432455e+3716:1:2:-0x1.8p1: ++%*2Le:-3.619058724505602958194804115432455e+3716:0:2: ++%2Le:-3.619058724505602958194804115432455e03716:1:2:-0x1.8p1: ++%*2Le:-3.619058724505602958194804115432455e03716:0:2: ++%2Le:-3.36210314311209350626267781732175260e-4932:1:2:-0x1.8p1: ++%*2Le:-3.36210314311209350626267781732175260e-4932:0:2: ++%2Le:-0e+0:1:2:-0x0: ++%*2Le:-0e+0:0:2: ++%2Le:-0e0:1:2:-0x0: ++%*2Le:-0e0:0:2: ++%2Le:-nan(09A_Zaz):0:-1: ++%*2Le:-nan(09A_Zaz):0:-1: ++%2Le:-nan():0:-1: ++%*2Le:-nan():0:-1: ++%2Le:nan():0:-1: ++%*2Le:nan():0:-1: ++%2Le:nan(09A_Zaz):0:-1: ++%*2Le:nan(09A_Zaz):0:-1: ++# BZ12701 %2Le:0e0:0:-1: ++# BZ12701 %*2Le:0e0:0:-1: ++# BZ12701 %2Le:0e+0:0:-1: ++# BZ12701 %*2Le:0e+0:0:-1: ++%2Le:3.36210314311209350626267781732175260e-4932:1:2:0x1.8p1: ++%*2Le:3.36210314311209350626267781732175260e-4932:0:2: ++%2Le:3.619058724505602958194804115432455e03716:1:2:0x1.8p1: ++%*2Le:3.619058724505602958194804115432455e03716:0:2: ++%2Le:3.619058724505602958194804115432455e+3716:1:2:0x1.8p1: ++%*2Le:3.619058724505602958194804115432455e+3716:0:2: ++%2Le:1.18973149535723176502126385303097021e4932:1:2:0x1: ++%*2Le:1.18973149535723176502126385303097021e4932:0:2: ++%2Le:1.18973149535723176502126385303097021e+4932:1:2:0x1: ++%*2Le:1.18973149535723176502126385303097021e+4932:0:2: ++%2Le:infinity:0:-1: ++%*2Le:infinity:0:-1: ++%2Le:+nan():0:-1: ++%*2Le:+nan():0:-1: ++%2Le:+nan(09A_Zaz):0:-1: ++%*2Le:+nan(09A_Zaz):0:-1: ++%2Le:+0e0:1:2:0x0: ++%*2Le:+0e0:0:2: ++%2Le:+0e+0:1:2:0x0: ++%*2Le:+0e+0:0:2: ++%2Le:+3.36210314311209350626267781732175260e-4932:1:2:0x1.8p1: ++%*2Le:+3.36210314311209350626267781732175260e-4932:0:2: ++%2Le:+3.619058724505602958194804115432455e03716:1:2:0x1.8p1: ++%*2Le:+3.619058724505602958194804115432455e03716:0:2: ++%2Le:+3.619058724505602958194804115432455e+3716:1:2:0x1.8p1: ++%*2Le:+3.619058724505602958194804115432455e+3716:0:2: ++%2Le:+1.18973149535723176502126385303097021e4932:1:2:0x1: ++%*2Le:+1.18973149535723176502126385303097021e4932:0:2: ++%2Le:+1.18973149535723176502126385303097021e+4932:1:2:0x1: ++%*2Le:+1.18973149535723176502126385303097021e+4932:0:2: ++%2Le:+infinity:0:-1: ++%*2Le:+infinity:0:-1: ++%3Le::0:-1: ++%*3Le::0:-1: ++%3Le:-infinity:0:-1: ++%*3Le:-infinity:0:-1: ++%3Le:-1.18973149535723176502126385303097021e+4932:1:3:-0x1: ++%*3Le:-1.18973149535723176502126385303097021e+4932:0:3: ++%3Le:-1.18973149535723176502126385303097021e4932:1:3:-0x1: ++%*3Le:-1.18973149535723176502126385303097021e4932:0:3: ++%3Le:-3.619058724505602958194804115432455e+3716:1:3:-0x1.8p1: ++%*3Le:-3.619058724505602958194804115432455e+3716:0:3: ++%3Le:-3.619058724505602958194804115432455e03716:1:3:-0x1.8p1: ++%*3Le:-3.619058724505602958194804115432455e03716:0:3: ++%3Le:-3.36210314311209350626267781732175260e-4932:1:3:-0x1.8p1: ++%*3Le:-3.36210314311209350626267781732175260e-4932:0:3: ++# BZ12701 %3Le:-0e+0:0:-1: ++# BZ12701 %*3Le:-0e+0:0:-1: ++# BZ12701 %3Le:-0e0:0:-1: ++# BZ12701 %*3Le:-0e0:0:-1: ++%3Le:-nan(09A_Zaz):0:-1: ++%*3Le:-nan(09A_Zaz):0:-1: ++%3Le:-nan():0:-1: ++%*3Le:-nan():0:-1: ++%3Le:nan():1:3:nan: ++%*3Le:nan():0:3: ++%3Le:nan(09A_Zaz):1:3:nan: ++%*3Le:nan(09A_Zaz):0:3: ++%3Le:0e0:1:3:0x0: ++%*3Le:0e0:0:3: ++# BZ12701 %3Le:0e+0:0:-1: ++# BZ12701 %*3Le:0e+0:0:-1: ++%3Le:3.36210314311209350626267781732175260e-4932:1:3:0x1.a666666666666666p1: ++%*3Le:3.36210314311209350626267781732175260e-4932:0:3: ++%3Le:3.619058724505602958194804115432455e03716:1:3:0x1.ccccccccccccccccp1: ++%*3Le:3.619058724505602958194804115432455e03716:0:3: ++%3Le:3.619058724505602958194804115432455e+3716:1:3:0x1.ccccccccccccccccp1: ++%*3Le:3.619058724505602958194804115432455e+3716:0:3: ++%3Le:1.18973149535723176502126385303097021e4932:1:3:0x1.199999999999999a: ++%*3Le:1.18973149535723176502126385303097021e4932:0:3: ++%3Le:1.18973149535723176502126385303097021e+4932:1:3:0x1.199999999999999a: ++%*3Le:1.18973149535723176502126385303097021e+4932:0:3: ++%3Le:infinity:1:3:inf: ++%*3Le:infinity:0:3: ++%3Le:+nan():0:-1: ++%*3Le:+nan():0:-1: ++%3Le:+nan(09A_Zaz):0:-1: ++%*3Le:+nan(09A_Zaz):0:-1: ++# BZ12701 %3Le:+0e0:0:-1: ++# BZ12701 %*3Le:+0e0:0:-1: ++# BZ12701 %3Le:+0e+0:0:-1: ++# BZ12701 %*3Le:+0e+0:0:-1: ++%3Le:+3.36210314311209350626267781732175260e-4932:1:3:0x1.8p1: ++%*3Le:+3.36210314311209350626267781732175260e-4932:0:3: ++%3Le:+3.619058724505602958194804115432455e03716:1:3:0x1.8p1: ++%*3Le:+3.619058724505602958194804115432455e03716:0:3: ++%3Le:+3.619058724505602958194804115432455e+3716:1:3:0x1.8p1: ++%*3Le:+3.619058724505602958194804115432455e+3716:0:3: ++%3Le:+1.18973149535723176502126385303097021e4932:1:3:0x1: ++%*3Le:+1.18973149535723176502126385303097021e4932:0:3: ++%3Le:+1.18973149535723176502126385303097021e+4932:1:3:0x1: ++%*3Le:+1.18973149535723176502126385303097021e+4932:0:3: ++%3Le:+infinity:0:-1: ++%*3Le:+infinity:0:-1: ++%4Le::0:-1: ++%*4Le::0:-1: ++%4Le:-infinity:1:4:-inf: ++%*4Le:-infinity:0:4: ++%4Le:-1.18973149535723176502126385303097021e+4932:1:4:-0x1.199999999999999a: ++%*4Le:-1.18973149535723176502126385303097021e+4932:0:4: ++%4Le:-1.18973149535723176502126385303097021e4932:1:4:-0x1.199999999999999a: ++%*4Le:-1.18973149535723176502126385303097021e4932:0:4: ++%4Le:-3.619058724505602958194804115432455e+3716:1:4:-0x1.ccccccccccccccccp1: ++%*4Le:-3.619058724505602958194804115432455e+3716:0:4: ++%4Le:-3.619058724505602958194804115432455e03716:1:4:-0x1.ccccccccccccccccp1: ++%*4Le:-3.619058724505602958194804115432455e03716:0:4: ++%4Le:-3.36210314311209350626267781732175260e-4932:1:4:-0x1.a666666666666666p1: ++%*4Le:-3.36210314311209350626267781732175260e-4932:0:4: ++# BZ12701 %4Le:-0e+0:0:-1: ++# BZ12701 %*4Le:-0e+0:0:-1: ++%4Le:-0e0:1:4:-0x0: ++%*4Le:-0e0:0:4: ++%4Le:-nan(09A_Zaz):1:4:-nan: ++%*4Le:-nan(09A_Zaz):0:4: ++%4Le:-nan():1:4:-nan: ++%*4Le:-nan():0:4: ++%4Le:nan():0:-1: ++%*4Le:nan():0:-1: ++%4Le:nan(09A_Zaz):0:-1: ++%*4Le:nan(09A_Zaz):0:-1: ++%4Le:0e0:1:3:0x0: ++%*4Le:0e0:0:3: ++%4Le:0e+0:1:4:0x0: ++%*4Le:0e+0:0:4: ++%4Le:3.36210314311209350626267781732175260e-4932:1:4:0x1.ae147ae147ae147ap1: ++%*4Le:3.36210314311209350626267781732175260e-4932:0:4: ++%4Le:3.619058724505602958194804115432455e03716:1:4:0x1.ce147ae147ae147ap1: ++%*4Le:3.619058724505602958194804115432455e03716:0:4: ++%4Le:3.619058724505602958194804115432455e+3716:1:4:0x1.ce147ae147ae147ap1: ++%*4Le:3.619058724505602958194804115432455e+3716:0:4: ++%4Le:1.18973149535723176502126385303097021e4932:1:4:0x1.2e147ae147ae147a: ++%*4Le:1.18973149535723176502126385303097021e4932:0:4: ++%4Le:1.18973149535723176502126385303097021e+4932:1:4:0x1.2e147ae147ae147a: ++%*4Le:1.18973149535723176502126385303097021e+4932:0:4: ++%4Le:infinity:0:-1: ++%*4Le:infinity:0:-1: ++%4Le:+nan():1:4:nan: ++%*4Le:+nan():0:4: ++%4Le:+nan(09A_Zaz):1:4:nan: ++%*4Le:+nan(09A_Zaz):0:4: ++%4Le:+0e0:1:4:0x0: ++%*4Le:+0e0:0:4: ++# BZ12701 %4Le:+0e+0:0:-1: ++# BZ12701 %*4Le:+0e+0:0:-1: ++%4Le:+3.36210314311209350626267781732175260e-4932:1:4:0x1.a666666666666666p1: ++%*4Le:+3.36210314311209350626267781732175260e-4932:0:4: ++%4Le:+3.619058724505602958194804115432455e03716:1:4:0x1.ccccccccccccccccp1: ++%*4Le:+3.619058724505602958194804115432455e03716:0:4: ++%4Le:+3.619058724505602958194804115432455e+3716:1:4:0x1.ccccccccccccccccp1: ++%*4Le:+3.619058724505602958194804115432455e+3716:0:4: ++%4Le:+1.18973149535723176502126385303097021e4932:1:4:0x1.199999999999999a: ++%*4Le:+1.18973149535723176502126385303097021e4932:0:4: ++%4Le:+1.18973149535723176502126385303097021e+4932:1:4:0x1.199999999999999a: ++%*4Le:+1.18973149535723176502126385303097021e+4932:0:4: ++%4Le:+infinity:1:4:inf: ++%*4Le:+infinity:0:4: ++%40Le::0:-1: ++%*40Le::0:-1: ++%40Le:-infinity:1:9:-inf: ++%*40Le:-infinity:0:9: ++# BZ12701 %40Le:-1.18973149535723176502126385303097021e+4932:0:-1: ++# BZ12701 %*40Le:-1.18973149535723176502126385303097021e+4932:0:-1: ++%40Le:-1.18973149535723176502126385303097021e4932:1:40:-0x1.73ca850660e6e6c4p13: ++%*40Le:-1.18973149535723176502126385303097021e4932:0:40: ++%40Le:-3.619058724505602958194804115432455e+3716:1:40:-0x1.b3a0db6a2433ca1ap124: ++%*40Le:-3.619058724505602958194804115432455e+3716:0:40: ++%40Le:-3.619058724505602958194804115432455e03716:1:40:-0x1.b3a0db6a2433ca1ap124: ++%*40Le:-3.619058724505602958194804115432455e03716:0:40: ++# BZ12701 %40Le:-3.36210314311209350626267781732175260e-4932:0:-1: ++# BZ12701 %*40Le:-3.36210314311209350626267781732175260e-4932:0:-1: ++%40Le:-0e+0:1:5:-0x0: ++%*40Le:-0e+0:0:5: ++%40Le:-0e0:1:4:-0x0: ++%*40Le:-0e0:0:4: ++%40Le:-nan(09A_Zaz):1:13:-nan: ++%*40Le:-nan(09A_Zaz):0:13: ++%40Le:-nan():1:6:-nan: ++%*40Le:-nan():0:6: ++%40Le:nan():1:5:nan: ++%*40Le:nan():0:5: ++%40Le:nan(09A_Zaz):1:12:nan: ++%*40Le:nan(09A_Zaz):0:12: ++%40Le:0e0:1:3:0x0: ++%*40Le:0e0:0:3: ++%40Le:0e+0:1:4:0x0: ++%*40Le:0e+0:0:4: ++%40Le:3.36210314311209350626267781732175260e-4932:1:40:0x1.608ac4df6a146bcep-12: ++%*40Le:3.36210314311209350626267781732175260e-4932:0:40: ++%40Le:3.619058724505602958194804115432455e03716:1:40:0x1.39330d0cb7b0b968p1234: ++%*40Le:3.619058724505602958194804115432455e03716:0:40: ++%40Le:3.619058724505602958194804115432455e+3716:1:40:0x1.39330d0cb7b0b968p1234: ++%*40Le:3.619058724505602958194804115432455e+3716:0:40: ++%40Le:1.18973149535723176502126385303097021e4932:1:40:0x1.047ec1b6d6390a5cp163: ++%*40Le:1.18973149535723176502126385303097021e4932:0:40: ++%40Le:1.18973149535723176502126385303097021e+4932:1:40:0x1.73ca850660e6e6c4p13: ++%*40Le:1.18973149535723176502126385303097021e+4932:0:40: ++%40Le:infinity:1:8:inf: ++%*40Le:infinity:0:8: ++%40Le:+nan():1:6:nan: ++%*40Le:+nan():0:6: ++%40Le:+nan(09A_Zaz):1:13:nan: ++%*40Le:+nan(09A_Zaz):0:13: ++%40Le:+0e0:1:4:0x0: ++%*40Le:+0e0:0:4: ++%40Le:+0e+0:1:5:0x0: ++%*40Le:+0e+0:0:5: ++# BZ12701 %40Le:+3.36210314311209350626267781732175260e-4932:0:-1: ++# BZ12701 %*40Le:+3.36210314311209350626267781732175260e-4932:0:-1: ++%40Le:+3.619058724505602958194804115432455e03716:1:40:0x1.b3a0db6a2433ca1ap124: ++%*40Le:+3.619058724505602958194804115432455e03716:0:40: ++%40Le:+3.619058724505602958194804115432455e+3716:1:40:0x1.b3a0db6a2433ca1ap124: ++%*40Le:+3.619058724505602958194804115432455e+3716:0:40: ++%40Le:+1.18973149535723176502126385303097021e4932:1:40:0x1.73ca850660e6e6c4p13: ++%*40Le:+1.18973149535723176502126385303097021e4932:0:40: ++# BZ12701 %40Le:+1.18973149535723176502126385303097021e+4932:0:-1: ++# BZ12701 %*40Le:+1.18973149535723176502126385303097021e+4932:0:-1: ++%40Le:+infinity:1:9:inf: ++%*40Le:+infinity:0:9: ++%48Le::0:-1: ++%*48Le::0:-1: ++%48Le:-infinity:1:9:-inf: ++%*48Le:-infinity:0:9: ++%48Le:-1.18973149535723176502126385303097021e+4932:1:44:-0x1.fffffffffffffffep16383: ++%*48Le:-1.18973149535723176502126385303097021e+4932:0:44: ++%48Le:-1.18973149535723176502126385303097021e4932:1:43:-0x1.fffffffffffffffep16383: ++%*48Le:-1.18973149535723176502126385303097021e4932:0:43: ++%48Le:-3.619058724505602958194804115432455e+3716:1:42:-0x1.1a2b3c4d5e6f7808p12346: ++%*48Le:-3.619058724505602958194804115432455e+3716:0:42: ++%48Le:-3.619058724505602958194804115432455e03716:1:42:-0x1.1a2b3c4d5e6f7808p12346: ++%*48Le:-3.619058724505602958194804115432455e03716:0:42: ++%48Le:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382: ++%*48Le:-3.36210314311209350626267781732175260e-4932:0:44: ++%48Le:-0e+0:1:5:-0x0: ++%*48Le:-0e+0:0:5: ++%48Le:-0e0:1:4:-0x0: ++%*48Le:-0e0:0:4: ++%48Le:-nan(09A_Zaz):1:13:-nan: ++%*48Le:-nan(09A_Zaz):0:13: ++%48Le:-nan():1:6:-nan: ++%*48Le:-nan():0:6: ++%48Le:nan():1:5:nan: ++%*48Le:nan():0:5: ++%48Le:nan(09A_Zaz):1:12:nan: ++%*48Le:nan(09A_Zaz):0:12: ++%48Le:0e0:1:3:0x0: ++%*48Le:0e0:0:3: ++%48Le:0e+0:1:4:0x0: ++%*48Le:0e+0:0:4: ++%48Le:3.36210314311209350626267781732175260e-4932:1:43:0x1p-16382: ++%*48Le:3.36210314311209350626267781732175260e-4932:0:43: ++%48Le:3.619058724505602958194804115432455e03716:1:41:0x1.1a2b3c4d5e6f7808p12346: ++%*48Le:3.619058724505602958194804115432455e03716:0:41: ++%48Le:3.619058724505602958194804115432455e+3716:1:41:0x1.1a2b3c4d5e6f7808p12346: ++%*48Le:3.619058724505602958194804115432455e+3716:0:41: ++%48Le:1.18973149535723176502126385303097021e4932:1:42:0x1.fffffffffffffffep16383: ++%*48Le:1.18973149535723176502126385303097021e4932:0:42: ++%48Le:1.18973149535723176502126385303097021e+4932:1:43:0x1.fffffffffffffffep16383: ++%*48Le:1.18973149535723176502126385303097021e+4932:0:43: ++%48Le:infinity:1:8:inf: ++%*48Le:infinity:0:8: ++%48Le:+nan():1:6:nan: ++%*48Le:+nan():0:6: ++%48Le:+nan(09A_Zaz):1:13:nan: ++%*48Le:+nan(09A_Zaz):0:13: ++%48Le:+0e0:1:4:0x0: ++%*48Le:+0e0:0:4: ++%48Le:+0e+0:1:5:0x0: ++%*48Le:+0e+0:0:5: ++%48Le:+3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*48Le:+3.36210314311209350626267781732175260e-4932:0:44: ++%48Le:+3.619058724505602958194804115432455e03716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*48Le:+3.619058724505602958194804115432455e03716:0:42: ++%48Le:+3.619058724505602958194804115432455e+3716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*48Le:+3.619058724505602958194804115432455e+3716:0:42: ++%48Le:+1.18973149535723176502126385303097021e4932:1:43:0x1.fffffffffffffffep16383: ++%*48Le:+1.18973149535723176502126385303097021e4932:0:43: ++%48Le:+1.18973149535723176502126385303097021e+4932:1:44:0x1.fffffffffffffffep16383: ++%*48Le:+1.18973149535723176502126385303097021e+4932:0:44: ++%48Le:+infinity:1:9:inf: ++%*48Le:+infinity:0:9: ++%3Le: :0:-1: ++%*3Le: :0:-1: ++%3Le: -infinity:0:-1: ++%*3Le: -infinity:0:-1: ++%3Le: -1.18973149535723176502126385303097021e+4932:1:4:-0x1: ++%*3Le: -1.18973149535723176502126385303097021e+4932:0:4: ++%3Le: -1.18973149535723176502126385303097021e4932:1:4:-0x1: ++%*3Le: -1.18973149535723176502126385303097021e4932:0:4: ++%3Le: -3.619058724505602958194804115432455e+3716:1:4:-0x1.8p1: ++%*3Le: -3.619058724505602958194804115432455e+3716:0:4: ++%3Le: -3.619058724505602958194804115432455e03716:1:4:-0x1.8p1: ++%*3Le: -3.619058724505602958194804115432455e03716:0:4: ++%3Le: -3.36210314311209350626267781732175260e-4932:1:4:-0x1.8p1: ++%*3Le: -3.36210314311209350626267781732175260e-4932:0:4: ++# BZ12701 %3Le: -0e+0:0:-1: ++# BZ12701 %*3Le: -0e+0:0:-1: ++# BZ12701 %3Le: -0e0:0:-1: ++# BZ12701 %*3Le: -0e0:0:-1: ++%3Le: -nan(09A_Zaz):0:-1: ++%*3Le: -nan(09A_Zaz):0:-1: ++%3Le: -nan():0:-1: ++%*3Le: -nan():0:-1: ++%3Le: nan():1:4:nan: ++%*3Le: nan():0:4: ++%3Le: nan(09A_Zaz):1:4:nan: ++%*3Le: nan(09A_Zaz):0:4: ++%3Le: 0e0:1:4:0x0: ++%*3Le: 0e0:0:4: ++# BZ12701 %3Le: 0e+0:0:-1: ++# BZ12701 %*3Le: 0e+0:0:-1: ++%3Le: 3.36210314311209350626267781732175260e-4932:1:4:0x1.a666666666666666p1: ++%*3Le: 3.36210314311209350626267781732175260e-4932:0:4: ++%3Le: 3.619058724505602958194804115432455e03716:1:4:0x1.ccccccccccccccccp1: ++%*3Le: 3.619058724505602958194804115432455e03716:0:4: ++%3Le: 3.619058724505602958194804115432455e+3716:1:4:0x1.ccccccccccccccccp1: ++%*3Le: 3.619058724505602958194804115432455e+3716:0:4: ++%3Le: 1.18973149535723176502126385303097021e4932:1:4:0x1.199999999999999a: ++%*3Le: 1.18973149535723176502126385303097021e4932:0:4: ++%3Le: 1.18973149535723176502126385303097021e+4932:1:4:0x1.199999999999999a: ++%*3Le: 1.18973149535723176502126385303097021e+4932:0:4: ++%3Le: infinity:1:4:inf: ++%*3Le: infinity:0:4: ++%3Le: +nan():0:-1: ++%*3Le: +nan():0:-1: ++%3Le: +nan(09A_Zaz):0:-1: ++%*3Le: +nan(09A_Zaz):0:-1: ++# BZ12701 %3Le: +0e0:0:-1: ++# BZ12701 %*3Le: +0e0:0:-1: ++# BZ12701 %3Le: +0e+0:0:-1: ++# BZ12701 %*3Le: +0e+0:0:-1: ++%3Le: +3.36210314311209350626267781732175260e-4932:1:4:0x1.8p1: ++%*3Le: +3.36210314311209350626267781732175260e-4932:0:4: ++%3Le: +3.619058724505602958194804115432455e03716:1:4:0x1.8p1: ++%*3Le: +3.619058724505602958194804115432455e03716:0:4: ++%3Le: +3.619058724505602958194804115432455e+3716:1:4:0x1.8p1: ++%*3Le: +3.619058724505602958194804115432455e+3716:0:4: ++%3Le: +1.18973149535723176502126385303097021e4932:1:4:0x1: ++%*3Le: +1.18973149535723176502126385303097021e4932:0:4: ++%3Le: +1.18973149535723176502126385303097021e+4932:1:4:0x1: ++%*3Le: +1.18973149535723176502126385303097021e+4932:0:4: ++%3Le: +infinity:0:-1: ++%*3Le: +infinity:0:-1: ++%48Le: :0:-1: ++%*48Le: :0:-1: ++%48Le: -infinity:1:10:-inf: ++%*48Le: -infinity:0:10: ++%48Le: -1.18973149535723176502126385303097021e+4932:1:45:-0x1.fffffffffffffffep16383: ++%*48Le: -1.18973149535723176502126385303097021e+4932:0:45: ++%48Le: -1.18973149535723176502126385303097021e4932:1:44:-0x1.fffffffffffffffep16383: ++%*48Le: -1.18973149535723176502126385303097021e4932:0:44: ++%48Le: -3.619058724505602958194804115432455e+3716:1:43:-0x1.1a2b3c4d5e6f7808p12346: ++%*48Le: -3.619058724505602958194804115432455e+3716:0:43: ++%48Le: -3.619058724505602958194804115432455e03716:1:43:-0x1.1a2b3c4d5e6f7808p12346: ++%*48Le: -3.619058724505602958194804115432455e03716:0:43: ++%48Le: -3.36210314311209350626267781732175260e-4932:1:45:-0x1p-16382: ++%*48Le: -3.36210314311209350626267781732175260e-4932:0:45: ++%48Le: -0e+0:1:6:-0x0: ++%*48Le: -0e+0:0:6: ++%48Le: -0e0:1:5:-0x0: ++%*48Le: -0e0:0:5: ++%48Le: -nan(09A_Zaz):1:14:-nan: ++%*48Le: -nan(09A_Zaz):0:14: ++%48Le: -nan():1:7:-nan: ++%*48Le: -nan():0:7: ++%48Le: nan():1:6:nan: ++%*48Le: nan():0:6: ++%48Le: nan(09A_Zaz):1:13:nan: ++%*48Le: nan(09A_Zaz):0:13: ++%48Le: 0e0:1:4:0x0: ++%*48Le: 0e0:0:4: ++%48Le: 0e+0:1:5:0x0: ++%*48Le: 0e+0:0:5: ++%48Le: 3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*48Le: 3.36210314311209350626267781732175260e-4932:0:44: ++%48Le: 3.619058724505602958194804115432455e03716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*48Le: 3.619058724505602958194804115432455e03716:0:42: ++%48Le: 3.619058724505602958194804115432455e+3716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*48Le: 3.619058724505602958194804115432455e+3716:0:42: ++%48Le: 1.18973149535723176502126385303097021e4932:1:43:0x1.fffffffffffffffep16383: ++%*48Le: 1.18973149535723176502126385303097021e4932:0:43: ++%48Le: 1.18973149535723176502126385303097021e+4932:1:44:0x1.fffffffffffffffep16383: ++%*48Le: 1.18973149535723176502126385303097021e+4932:0:44: ++%48Le: infinity:1:9:inf: ++%*48Le: infinity:0:9: ++%48Le: +nan():1:7:nan: ++%*48Le: +nan():0:7: ++%48Le: +nan(09A_Zaz):1:14:nan: ++%*48Le: +nan(09A_Zaz):0:14: ++%48Le: +0e0:1:5:0x0: ++%*48Le: +0e0:0:5: ++%48Le: +0e+0:1:6:0x0: ++%*48Le: +0e+0:0:6: ++%48Le: +3.36210314311209350626267781732175260e-4932:1:45:0x1p-16382: ++%*48Le: +3.36210314311209350626267781732175260e-4932:0:45: ++%48Le: +3.619058724505602958194804115432455e03716:1:43:0x1.1a2b3c4d5e6f7808p12346: ++%*48Le: +3.619058724505602958194804115432455e03716:0:43: ++%48Le: +3.619058724505602958194804115432455e+3716:1:43:0x1.1a2b3c4d5e6f7808p12346: ++%*48Le: +3.619058724505602958194804115432455e+3716:0:43: ++%48Le: +1.18973149535723176502126385303097021e4932:1:44:0x1.fffffffffffffffep16383: ++%*48Le: +1.18973149535723176502126385303097021e4932:0:44: ++%48Le: +1.18973149535723176502126385303097021e+4932:1:45:0x1.fffffffffffffffep16383: ++%*48Le: +1.18973149535723176502126385303097021e+4932:0:45: ++%48Le: +infinity:1:10:inf: ++%*48Le: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ee.input +new file mode 100644 +index 0000000000000000..2362eab7e1e3702b +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ee.input +@@ -0,0 +1,558 @@ ++%LE::0:-1: ++%*LE::0:-1: ++%LE:-INFINITY:1:9:-inf: ++%*LE:-INFINITY:0:9: ++%LE:-1.18973149535723176502126385303097021E+4932:1:44:-0x1.fffffffffffffffep16383: ++%*LE:-1.18973149535723176502126385303097021E+4932:0:44: ++%LE:-1.18973149535723176502126385303097021E4932:1:43:-0x1.fffffffffffffffep16383: ++%*LE:-1.18973149535723176502126385303097021E4932:0:43: ++%LE:-3.619058724505602958194804115432455E+3716:1:42:-0x1.1a2b3c4d5e6f7808p12346: ++%*LE:-3.619058724505602958194804115432455E+3716:0:42: ++%LE:-3.619058724505602958194804115432455E03716:1:42:-0x1.1a2b3c4d5e6f7808p12346: ++%*LE:-3.619058724505602958194804115432455E03716:0:42: ++%LE:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382: ++%*LE:-3.36210314311209350626267781732175260e-4932:0:44: ++%LE:-0E+0:1:5:-0x0: ++%*LE:-0E+0:0:5: ++%LE:-0E0:1:4:-0x0: ++%*LE:-0E0:0:4: ++%LE:-NAN(09A_Zaz):1:13:-nan: ++%*LE:-NAN(09A_Zaz):0:13: ++%LE:-NAN():1:6:-nan: ++%*LE:-NAN():0:6: ++%LE:NAN():1:5:nan: ++%*LE:NAN():0:5: ++%LE:NAN(09A_Zaz):1:12:nan: ++%*LE:NAN(09A_Zaz):0:12: ++%LE:0E0:1:3:0x0: ++%*LE:0E0:0:3: ++%LE:0E+0:1:4:0x0: ++%*LE:0E+0:0:4: ++%LE:3.36210314311209350626267781732175260E-4932:1:43:0x1p-16382: ++%*LE:3.36210314311209350626267781732175260E-4932:0:43: ++%LE:3.619058724505602958194804115432455E03716:1:41:0x1.1a2b3c4d5e6f7808p12346: ++%*LE:3.619058724505602958194804115432455E03716:0:41: ++%LE:3.619058724505602958194804115432455E+3716:1:41:0x1.1a2b3c4d5e6f7808p12346: ++%*LE:3.619058724505602958194804115432455E+3716:0:41: ++%LE:1.18973149535723176502126385303097021E4932:1:42:0x1.fffffffffffffffep16383: ++%*LE:1.18973149535723176502126385303097021E4932:0:42: ++%LE:1.18973149535723176502126385303097021E+4932:1:43:0x1.fffffffffffffffep16383: ++%*LE:1.18973149535723176502126385303097021E+4932:0:43: ++%LE:INFINITY:1:8:inf: ++%*LE:INFINITY:0:8: ++%LE:+NAN():1:6:nan: ++%*LE:+NAN():0:6: ++%LE:+NAN(09A_Zaz):1:13:nan: ++%*LE:+NAN(09A_Zaz):0:13: ++%LE:+0E0:1:4:0x0: ++%*LE:+0E0:0:4: ++%LE:+0E+0:1:5:0x0: ++%*LE:+0E+0:0:5: ++%LE:+3.36210314311209350626267781732175260E-4932:1:44:0x1p-16382: ++%*LE:+3.36210314311209350626267781732175260E-4932:0:44: ++%LE:+3.619058724505602958194804115432455E03716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*LE:+3.619058724505602958194804115432455E03716:0:42: ++%LE:+3.619058724505602958194804115432455E+3716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*LE:+3.619058724505602958194804115432455E+3716:0:42: ++%LE:+1.18973149535723176502126385303097021E4932:1:43:0x1.fffffffffffffffep16383: ++%*LE:+1.18973149535723176502126385303097021E4932:0:43: ++%LE:+1.18973149535723176502126385303097021E+4932:1:44:0x1.fffffffffffffffep16383: ++%*LE:+1.18973149535723176502126385303097021E+4932:0:44: ++%LE:+INFINITY:1:9:inf: ++%*LE:+INFINITY:0:9: ++%1LE::0:-1: ++%*1LE::0:-1: ++%1LE:-INFINITY:0:-1: ++%*1LE:-INFINITY:0:-1: ++%1LE:-1.18973149535723176502126385303097021E+4932:0:-1: ++%*1LE:-1.18973149535723176502126385303097021E+4932:0:-1: ++%1LE:-1.18973149535723176502126385303097021E4932:0:-1: ++%*1LE:-1.18973149535723176502126385303097021E4932:0:-1: ++%1LE:-3.619058724505602958194804115432455E+3716:0:-1: ++%*1LE:-3.619058724505602958194804115432455E+3716:0:-1: ++%1LE:-3.619058724505602958194804115432455E03716:0:-1: ++%*1LE:-3.619058724505602958194804115432455E03716:0:-1: ++%1LE:-3.36210314311209350626267781732175260e-4932:0:-1: ++%*1LE:-3.36210314311209350626267781732175260e-4932:0:-1: ++%1LE:-0E+0:0:-1: ++%*1LE:-0E+0:0:-1: ++%1LE:-0E0:0:-1: ++%*1LE:-0E0:0:-1: ++%1LE:-NAN(09A_Zaz):0:-1: ++%*1LE:-NAN(09A_Zaz):0:-1: ++%1LE:-NAN():0:-1: ++%*1LE:-NAN():0:-1: ++%1LE:NAN():0:-1: ++%*1LE:NAN():0:-1: ++%1LE:NAN(09A_Zaz):0:-1: ++%*1LE:NAN(09A_Zaz):0:-1: ++%1LE:0E0:1:1:0x0: ++%*1LE:0E0:0:1: ++%1LE:0E+0:1:1:0x0: ++%*1LE:0E+0:0:1: ++%1LE:3.36210314311209350626267781732175260E-4932:1:1:0x1.8p1: ++%*1LE:3.36210314311209350626267781732175260E-4932:0:1: ++%1LE:3.619058724505602958194804115432455E03716:1:1:0x1.8p1: ++%*1LE:3.619058724505602958194804115432455E03716:0:1: ++%1LE:3.619058724505602958194804115432455E+3716:1:1:0x1.8p1: ++%*1LE:3.619058724505602958194804115432455E+3716:0:1: ++%1LE:1.18973149535723176502126385303097021E4932:1:1:0x1: ++%*1LE:1.18973149535723176502126385303097021E4932:0:1: ++%1LE:1.18973149535723176502126385303097021E+4932:1:1:0x1: ++%*1LE:1.18973149535723176502126385303097021E+4932:0:1: ++%1LE:INFINITY:0:-1: ++%*1LE:INFINITY:0:-1: ++%1LE:+NAN():0:-1: ++%*1LE:+NAN():0:-1: ++%1LE:+NAN(09A_Zaz):0:-1: ++%*1LE:+NAN(09A_Zaz):0:-1: ++%1LE:+0E0:0:-1: ++%*1LE:+0E0:0:-1: ++%1LE:+0E+0:0:-1: ++%*1LE:+0E+0:0:-1: ++%1LE:+3.36210314311209350626267781732175260E-4932:0:-1: ++%*1LE:+3.36210314311209350626267781732175260E-4932:0:-1: ++%1LE:+3.619058724505602958194804115432455E03716:0:-1: ++%*1LE:+3.619058724505602958194804115432455E03716:0:-1: ++%1LE:+3.619058724505602958194804115432455E+3716:0:-1: ++%*1LE:+3.619058724505602958194804115432455E+3716:0:-1: ++%1LE:+1.18973149535723176502126385303097021E4932:0:-1: ++%*1LE:+1.18973149535723176502126385303097021E4932:0:-1: ++%1LE:+1.18973149535723176502126385303097021E+4932:0:-1: ++%*1LE:+1.18973149535723176502126385303097021E+4932:0:-1: ++%1LE:+INFINITY:0:-1: ++%*1LE:+INFINITY:0:-1: ++%2LE::0:-1: ++%*2LE::0:-1: ++%2LE:-INFINITY:0:-1: ++%*2LE:-INFINITY:0:-1: ++%2LE:-1.18973149535723176502126385303097021E+4932:1:2:-0x1: ++%*2LE:-1.18973149535723176502126385303097021E+4932:0:2: ++%2LE:-1.18973149535723176502126385303097021E4932:1:2:-0x1: ++%*2LE:-1.18973149535723176502126385303097021E4932:0:2: ++%2LE:-3.619058724505602958194804115432455E+3716:1:2:-0x1.8p1: ++%*2LE:-3.619058724505602958194804115432455E+3716:0:2: ++%2LE:-3.619058724505602958194804115432455E03716:1:2:-0x1.8p1: ++%*2LE:-3.619058724505602958194804115432455E03716:0:2: ++%2LE:-3.36210314311209350626267781732175260e-4932:1:2:-0x1.8p1: ++%*2LE:-3.36210314311209350626267781732175260e-4932:0:2: ++%2LE:-0E+0:1:2:-0x0: ++%*2LE:-0E+0:0:2: ++%2LE:-0E0:1:2:-0x0: ++%*2LE:-0E0:0:2: ++%2LE:-NAN(09A_Zaz):0:-1: ++%*2LE:-NAN(09A_Zaz):0:-1: ++%2LE:-NAN():0:-1: ++%*2LE:-NAN():0:-1: ++%2LE:NAN():0:-1: ++%*2LE:NAN():0:-1: ++%2LE:NAN(09A_Zaz):0:-1: ++%*2LE:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LE:0E0:0:-1: ++# BZ12701 %*2LE:0E0:0:-1: ++# BZ12701 %2LE:0E+0:0:-1: ++# BZ12701 %*2LE:0E+0:0:-1: ++%2LE:3.36210314311209350626267781732175260E-4932:1:2:0x1.8p1: ++%*2LE:3.36210314311209350626267781732175260E-4932:0:2: ++%2LE:3.619058724505602958194804115432455E03716:1:2:0x1.8p1: ++%*2LE:3.619058724505602958194804115432455E03716:0:2: ++%2LE:3.619058724505602958194804115432455E+3716:1:2:0x1.8p1: ++%*2LE:3.619058724505602958194804115432455E+3716:0:2: ++%2LE:1.18973149535723176502126385303097021E4932:1:2:0x1: ++%*2LE:1.18973149535723176502126385303097021E4932:0:2: ++%2LE:1.18973149535723176502126385303097021E+4932:1:2:0x1: ++%*2LE:1.18973149535723176502126385303097021E+4932:0:2: ++%2LE:INFINITY:0:-1: ++%*2LE:INFINITY:0:-1: ++%2LE:+NAN():0:-1: ++%*2LE:+NAN():0:-1: ++%2LE:+NAN(09A_Zaz):0:-1: ++%*2LE:+NAN(09A_Zaz):0:-1: ++%2LE:+0E0:1:2:0x0: ++%*2LE:+0E0:0:2: ++%2LE:+0E+0:1:2:0x0: ++%*2LE:+0E+0:0:2: ++%2LE:+3.36210314311209350626267781732175260E-4932:1:2:0x1.8p1: ++%*2LE:+3.36210314311209350626267781732175260E-4932:0:2: ++%2LE:+3.619058724505602958194804115432455E03716:1:2:0x1.8p1: ++%*2LE:+3.619058724505602958194804115432455E03716:0:2: ++%2LE:+3.619058724505602958194804115432455E+3716:1:2:0x1.8p1: ++%*2LE:+3.619058724505602958194804115432455E+3716:0:2: ++%2LE:+1.18973149535723176502126385303097021E4932:1:2:0x1: ++%*2LE:+1.18973149535723176502126385303097021E4932:0:2: ++%2LE:+1.18973149535723176502126385303097021E+4932:1:2:0x1: ++%*2LE:+1.18973149535723176502126385303097021E+4932:0:2: ++%2LE:+INFINITY:0:-1: ++%*2LE:+INFINITY:0:-1: ++%3LE::0:-1: ++%*3LE::0:-1: ++%3LE:-INFINITY:0:-1: ++%*3LE:-INFINITY:0:-1: ++%3LE:-1.18973149535723176502126385303097021E+4932:1:3:-0x1: ++%*3LE:-1.18973149535723176502126385303097021E+4932:0:3: ++%3LE:-1.18973149535723176502126385303097021E4932:1:3:-0x1: ++%*3LE:-1.18973149535723176502126385303097021E4932:0:3: ++%3LE:-3.619058724505602958194804115432455E+3716:1:3:-0x1.8p1: ++%*3LE:-3.619058724505602958194804115432455E+3716:0:3: ++%3LE:-3.619058724505602958194804115432455E03716:1:3:-0x1.8p1: ++%*3LE:-3.619058724505602958194804115432455E03716:0:3: ++%3LE:-3.36210314311209350626267781732175260e-4932:1:3:-0x1.8p1: ++%*3LE:-3.36210314311209350626267781732175260e-4932:0:3: ++# BZ12701 %3LE:-0E+0:0:-1: ++# BZ12701 %*3LE:-0E+0:0:-1: ++# BZ12701 %3LE:-0E0:0:-1: ++# BZ12701 %*3LE:-0E0:0:-1: ++%3LE:-NAN(09A_Zaz):0:-1: ++%*3LE:-NAN(09A_Zaz):0:-1: ++%3LE:-NAN():0:-1: ++%*3LE:-NAN():0:-1: ++%3LE:NAN():1:3:nan: ++%*3LE:NAN():0:3: ++%3LE:NAN(09A_Zaz):1:3:nan: ++%*3LE:NAN(09A_Zaz):0:3: ++%3LE:0E0:1:3:0x0: ++%*3LE:0E0:0:3: ++# BZ12701 %3LE:0E+0:0:-1: ++# BZ12701 %*3LE:0E+0:0:-1: ++%3LE:3.36210314311209350626267781732175260E-4932:1:3:0x1.a666666666666666p1: ++%*3LE:3.36210314311209350626267781732175260E-4932:0:3: ++%3LE:3.619058724505602958194804115432455E03716:1:3:0x1.ccccccccccccccccp1: ++%*3LE:3.619058724505602958194804115432455E03716:0:3: ++%3LE:3.619058724505602958194804115432455E+3716:1:3:0x1.ccccccccccccccccp1: ++%*3LE:3.619058724505602958194804115432455E+3716:0:3: ++%3LE:1.18973149535723176502126385303097021E4932:1:3:0x1.199999999999999a: ++%*3LE:1.18973149535723176502126385303097021E4932:0:3: ++%3LE:1.18973149535723176502126385303097021E+4932:1:3:0x1.199999999999999a: ++%*3LE:1.18973149535723176502126385303097021E+4932:0:3: ++%3LE:INFINITY:1:3:inf: ++%*3LE:INFINITY:0:3: ++%3LE:+NAN():0:-1: ++%*3LE:+NAN():0:-1: ++%3LE:+NAN(09A_Zaz):0:-1: ++%*3LE:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LE:+0E0:0:-1: ++# BZ12701 %*3LE:+0E0:0:-1: ++# BZ12701 %3LE:+0E+0:0:-1: ++# BZ12701 %*3LE:+0E+0:0:-1: ++%3LE:+3.36210314311209350626267781732175260E-4932:1:3:0x1.8p1: ++%*3LE:+3.36210314311209350626267781732175260E-4932:0:3: ++%3LE:+3.619058724505602958194804115432455E03716:1:3:0x1.8p1: ++%*3LE:+3.619058724505602958194804115432455E03716:0:3: ++%3LE:+3.619058724505602958194804115432455E+3716:1:3:0x1.8p1: ++%*3LE:+3.619058724505602958194804115432455E+3716:0:3: ++%3LE:+1.18973149535723176502126385303097021E4932:1:3:0x1: ++%*3LE:+1.18973149535723176502126385303097021E4932:0:3: ++%3LE:+1.18973149535723176502126385303097021E+4932:1:3:0x1: ++%*3LE:+1.18973149535723176502126385303097021E+4932:0:3: ++%3LE:+INFINITY:0:-1: ++%*3LE:+INFINITY:0:-1: ++%4LE::0:-1: ++%*4LE::0:-1: ++%4LE:-INFINITY:1:4:-inf: ++%*4LE:-INFINITY:0:4: ++%4LE:-1.18973149535723176502126385303097021E+4932:1:4:-0x1.199999999999999a: ++%*4LE:-1.18973149535723176502126385303097021E+4932:0:4: ++%4LE:-1.18973149535723176502126385303097021E4932:1:4:-0x1.199999999999999a: ++%*4LE:-1.18973149535723176502126385303097021E4932:0:4: ++%4LE:-3.619058724505602958194804115432455E+3716:1:4:-0x1.ccccccccccccccccp1: ++%*4LE:-3.619058724505602958194804115432455E+3716:0:4: ++%4LE:-3.619058724505602958194804115432455E03716:1:4:-0x1.ccccccccccccccccp1: ++%*4LE:-3.619058724505602958194804115432455E03716:0:4: ++%4LE:-3.36210314311209350626267781732175260e-4932:1:4:-0x1.a666666666666666p1: ++%*4LE:-3.36210314311209350626267781732175260e-4932:0:4: ++# BZ12701 %4LE:-0E+0:0:-1: ++# BZ12701 %*4LE:-0E+0:0:-1: ++%4LE:-0E0:1:4:-0x0: ++%*4LE:-0E0:0:4: ++%4LE:-NAN(09A_Zaz):1:4:-nan: ++%*4LE:-NAN(09A_Zaz):0:4: ++%4LE:-NAN():1:4:-nan: ++%*4LE:-NAN():0:4: ++%4LE:NAN():0:-1: ++%*4LE:NAN():0:-1: ++%4LE:NAN(09A_Zaz):0:-1: ++%*4LE:NAN(09A_Zaz):0:-1: ++%4LE:0E0:1:3:0x0: ++%*4LE:0E0:0:3: ++%4LE:0E+0:1:4:0x0: ++%*4LE:0E+0:0:4: ++%4LE:3.36210314311209350626267781732175260E-4932:1:4:0x1.ae147ae147ae147Ap1: ++%*4LE:3.36210314311209350626267781732175260E-4932:0:4: ++%4LE:3.619058724505602958194804115432455E03716:1:4:0x1.ce147ae147ae147ap1: ++%*4LE:3.619058724505602958194804115432455E03716:0:4: ++%4LE:3.619058724505602958194804115432455E+3716:1:4:0x1.ce147ae147ae147ap1: ++%*4LE:3.619058724505602958194804115432455E+3716:0:4: ++%4LE:1.18973149535723176502126385303097021E4932:1:4:0x1.2e147ae147ae147a: ++%*4LE:1.18973149535723176502126385303097021E4932:0:4: ++%4LE:1.18973149535723176502126385303097021E+4932:1:4:0x1.2e147ae147ae147a: ++%*4LE:1.18973149535723176502126385303097021E+4932:0:4: ++%4LE:INFINITY:0:-1: ++%*4LE:INFINITY:0:-1: ++%4LE:+NAN():1:4:nan: ++%*4LE:+NAN():0:4: ++%4LE:+NAN(09A_Zaz):1:4:nan: ++%*4LE:+NAN(09A_Zaz):0:4: ++%4LE:+0E0:1:4:0x0: ++%*4LE:+0E0:0:4: ++# BZ12701 %4LE:+0E+0:0:-1: ++# BZ12701 %*4LE:+0E+0:0:-1: ++%4LE:+3.36210314311209350626267781732175260E-4932:1:4:0x1.a666666666666666p1: ++%*4LE:+3.36210314311209350626267781732175260E-4932:0:4: ++%4LE:+3.619058724505602958194804115432455E03716:1:4:0x1.ccccccccccccccccp1: ++%*4LE:+3.619058724505602958194804115432455E03716:0:4: ++%4LE:+3.619058724505602958194804115432455E+3716:1:4:0x1.ccccccccccccccccp1: ++%*4LE:+3.619058724505602958194804115432455E+3716:0:4: ++%4LE:+1.18973149535723176502126385303097021E4932:1:4:0x1.199999999999999a: ++%*4LE:+1.18973149535723176502126385303097021E4932:0:4: ++%4LE:+1.18973149535723176502126385303097021E+4932:1:4:0x1.199999999999999a: ++%*4LE:+1.18973149535723176502126385303097021E+4932:0:4: ++%4LE:+INFINITY:1:4:inf: ++%*4LE:+INFINITY:0:4: ++%40LE::0:-1: ++%*40LE::0:-1: ++%40LE:-INFINITY:1:9:-inf: ++%*40LE:-INFINITY:0:9: ++# BZ12701 %40LE:-1.18973149535723176502126385303097021E+4932:0:-1: ++# BZ12701 %*40LE:-1.18973149535723176502126385303097021E+4932:0:-1: ++%40LE:-1.18973149535723176502126385303097021E4932:1:40:-0x1.73CA850660E6E6C4p13: ++%*40LE:-1.18973149535723176502126385303097021E4932:0:40: ++%40LE:-3.619058724505602958194804115432455E+3716:1:40:-0x1.b3a0db6a2433ca1ap124: ++%*40LE:-3.619058724505602958194804115432455E+3716:0:40: ++%40LE:-3.619058724505602958194804115432455E03716:1:40:-0x1.b3a0db6a2433ca1ap124: ++%*40LE:-3.619058724505602958194804115432455E03716:0:40: ++# BZ12701 %40LE:-3.36210314311209350626267781732175260e-4932:0:-1: ++# BZ12701 %*40LE:-3.36210314311209350626267781732175260e-4932:0:-1: ++%40LE:-0E+0:1:5:-0x0: ++%*40LE:-0E+0:0:5: ++%40LE:-0E0:1:4:-0x0: ++%*40LE:-0E0:0:4: ++%40LE:-NAN(09A_Zaz):1:13:-nan: ++%*40LE:-NAN(09A_Zaz):0:13: ++%40LE:-NAN():1:6:-nan: ++%*40LE:-NAN():0:6: ++%40LE:NAN():1:5:nan: ++%*40LE:NAN():0:5: ++%40LE:NAN(09A_Zaz):1:12:nan: ++%*40LE:NAN(09A_Zaz):0:12: ++%40LE:0E0:1:3:0x0: ++%*40LE:0E0:0:3: ++%40LE:0E+0:1:4:0x0: ++%*40LE:0E+0:0:4: ++%40LE:3.36210314311209350626267781732175260E-4932:1:40:0x1.608ac4df6a146bcep-12: ++%*40LE:3.36210314311209350626267781732175260E-4932:0:40: ++%40LE:3.619058724505602958194804115432455E03716:1:40:0x1.39330d0cb7b0b968p1234: ++%*40LE:3.619058724505602958194804115432455E03716:0:40: ++%40LE:3.619058724505602958194804115432455E+3716:1:40:0x1.39330d0cb7b0b968p1234: ++%*40LE:3.619058724505602958194804115432455E+3716:0:40: ++%40LE:1.18973149535723176502126385303097021E4932:1:40:0x1.047ec1b6d6390a5cp163: ++%*40LE:1.18973149535723176502126385303097021E4932:0:40: ++%40LE:1.18973149535723176502126385303097021E+4932:1:40:0x1.73ca850660e6e6c4p13: ++%*40LE:1.18973149535723176502126385303097021E+4932:0:40: ++%40LE:INFINITY:1:8:inf: ++%*40LE:INFINITY:0:8: ++%40LE:+NAN():1:6:nan: ++%*40LE:+NAN():0:6: ++%40LE:+NAN(09A_Zaz):1:13:nan: ++%*40LE:+NAN(09A_Zaz):0:13: ++%40LE:+0E0:1:4:0x0: ++%*40LE:+0E0:0:4: ++%40LE:+0E+0:1:5:0x0: ++%*40LE:+0E+0:0:5: ++# BZ12701 %40LE:+3.36210314311209350626267781732175260E-4932:0:-1: ++# BZ12701 %*40LE:+3.36210314311209350626267781732175260E-4932:0:-1: ++%40LE:+3.619058724505602958194804115432455E03716:1:40:0x1.b3a0db6a2433ca1ap124: ++%*40LE:+3.619058724505602958194804115432455E03716:0:40: ++%40LE:+3.619058724505602958194804115432455E+3716:1:40:0x1.b3a0db6a2433ca1ap124: ++%*40LE:+3.619058724505602958194804115432455E+3716:0:40: ++%40LE:+1.18973149535723176502126385303097021E4932:1:40:0x1.73CA850660E6E6C4p13: ++%*40LE:+1.18973149535723176502126385303097021E4932:0:40: ++# BZ12701 %40LE:+1.18973149535723176502126385303097021E+4932:0:-1: ++# BZ12701 %*40LE:+1.18973149535723176502126385303097021E+4932:0:-1: ++%40LE:+INFINITY:1:9:inf: ++%*40LE:+INFINITY:0:9: ++%48LE::0:-1: ++%*48LE::0:-1: ++%48LE:-INFINITY:1:9:-inf: ++%*48LE:-INFINITY:0:9: ++%48LE:-1.18973149535723176502126385303097021E+4932:1:44:-0x1.fffffffffffffffep16383: ++%*48LE:-1.18973149535723176502126385303097021E+4932:0:44: ++%48LE:-1.18973149535723176502126385303097021E4932:1:43:-0x1.fffffffffffffffep16383: ++%*48LE:-1.18973149535723176502126385303097021E4932:0:43: ++%48LE:-3.619058724505602958194804115432455E+3716:1:42:-0x1.1a2b3c4d5e6f7808p12346: ++%*48LE:-3.619058724505602958194804115432455E+3716:0:42: ++%48LE:-3.619058724505602958194804115432455E03716:1:42:-0x1.1a2b3c4d5e6f7808p12346: ++%*48LE:-3.619058724505602958194804115432455E03716:0:42: ++%48LE:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382: ++%*48LE:-3.36210314311209350626267781732175260e-4932:0:44: ++%48LE:-0E+0:1:5:-0x0: ++%*48LE:-0E+0:0:5: ++%48LE:-0E0:1:4:-0x0: ++%*48LE:-0E0:0:4: ++%48LE:-NAN(09A_Zaz):1:13:-nan: ++%*48LE:-NAN(09A_Zaz):0:13: ++%48LE:-NAN():1:6:-nan: ++%*48LE:-NAN():0:6: ++%48LE:NAN():1:5:nan: ++%*48LE:NAN():0:5: ++%48LE:NAN(09A_Zaz):1:12:nan: ++%*48LE:NAN(09A_Zaz):0:12: ++%48LE:0E0:1:3:0x0: ++%*48LE:0E0:0:3: ++%48LE:0E+0:1:4:0x0: ++%*48LE:0E+0:0:4: ++%48LE:3.36210314311209350626267781732175260E-4932:1:43:0x1p-16382: ++%*48LE:3.36210314311209350626267781732175260E-4932:0:43: ++%48LE:3.619058724505602958194804115432455E03716:1:41:0x1.1a2b3c4d5e6f7808p12346: ++%*48LE:3.619058724505602958194804115432455E03716:0:41: ++%48LE:3.619058724505602958194804115432455E+3716:1:41:0x1.1a2b3c4d5e6f7808p12346: ++%*48LE:3.619058724505602958194804115432455E+3716:0:41: ++%48LE:1.18973149535723176502126385303097021E4932:1:42:0x1.fffffffffffffffep16383: ++%*48LE:1.18973149535723176502126385303097021E4932:0:42: ++%48LE:1.18973149535723176502126385303097021E+4932:1:43:0x1.fffffffffffffffep16383: ++%*48LE:1.18973149535723176502126385303097021E+4932:0:43: ++%48LE:INFINITY:1:8:inf: ++%*48LE:INFINITY:0:8: ++%48LE:+NAN():1:6:nan: ++%*48LE:+NAN():0:6: ++%48LE:+NAN(09A_Zaz):1:13:nan: ++%*48LE:+NAN(09A_Zaz):0:13: ++%48LE:+0E0:1:4:0x0: ++%*48LE:+0E0:0:4: ++%48LE:+0E+0:1:5:0x0: ++%*48LE:+0E+0:0:5: ++%48LE:+3.36210314311209350626267781732175260E-4932:1:44:0x1p-16382: ++%*48LE:+3.36210314311209350626267781732175260E-4932:0:44: ++%48LE:+3.619058724505602958194804115432455E03716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*48LE:+3.619058724505602958194804115432455E03716:0:42: ++%48LE:+3.619058724505602958194804115432455E+3716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*48LE:+3.619058724505602958194804115432455E+3716:0:42: ++%48LE:+1.18973149535723176502126385303097021E4932:1:43:0x1.fffffffffffffffep16383: ++%*48LE:+1.18973149535723176502126385303097021E4932:0:43: ++%48LE:+1.18973149535723176502126385303097021E+4932:1:44:0x1.fffffffffffffffep16383: ++%*48LE:+1.18973149535723176502126385303097021E+4932:0:44: ++%48LE:+INFINITY:1:9:inf: ++%*48LE:+INFINITY:0:9: ++%3LE: :0:-1: ++%*3LE: :0:-1: ++%3LE: -INFINITY:0:-1: ++%*3LE: -INFINITY:0:-1: ++%3LE: -1.18973149535723176502126385303097021E+4932:1:4:-0x1: ++%*3LE: -1.18973149535723176502126385303097021E+4932:0:4: ++%3LE: -1.18973149535723176502126385303097021E4932:1:4:-0x1: ++%*3LE: -1.18973149535723176502126385303097021E4932:0:4: ++%3LE: -3.619058724505602958194804115432455E+3716:1:4:-0x1.8p1: ++%*3LE: -3.619058724505602958194804115432455E+3716:0:4: ++%3LE: -3.619058724505602958194804115432455E03716:1:4:-0x1.8p1: ++%*3LE: -3.619058724505602958194804115432455E03716:0:4: ++%3LE: -3.36210314311209350626267781732175260e-4932:1:4:-0x1.8p1: ++%*3LE: -3.36210314311209350626267781732175260e-4932:0:4: ++# BZ12701 %3LE: -0E+0:0:-1: ++# BZ12701 %*3LE: -0E+0:0:-1: ++# BZ12701 %3LE: -0E0:0:-1: ++# BZ12701 %*3LE: -0E0:0:-1: ++%3LE: -NAN(09A_Zaz):0:-1: ++%*3LE: -NAN(09A_Zaz):0:-1: ++%3LE: -NAN():0:-1: ++%*3LE: -NAN():0:-1: ++%3LE: NAN():1:4:nan: ++%*3LE: NAN():0:4: ++%3LE: NAN(09A_Zaz):1:4:nan: ++%*3LE: NAN(09A_Zaz):0:4: ++%3LE: 0E0:1:4:0x0: ++%*3LE: 0E0:0:4: ++# BZ12701 %3LE: 0E+0:0:-1: ++# BZ12701 %*3LE: 0E+0:0:-1: ++%3LE: 3.36210314311209350626267781732175260E-4932:1:4:0x1.a666666666666666p1: ++%*3LE: 3.36210314311209350626267781732175260E-4932:0:4: ++%3LE: 3.619058724505602958194804115432455E03716:1:4:0x1.ccccccccccccccccp1: ++%*3LE: 3.619058724505602958194804115432455E03716:0:4: ++%3LE: 3.619058724505602958194804115432455E+3716:1:4:0x1.ccccccccccccccccp1: ++%*3LE: 3.619058724505602958194804115432455E+3716:0:4: ++%3LE: 1.18973149535723176502126385303097021E4932:1:4:0x1.199999999999999a: ++%*3LE: 1.18973149535723176502126385303097021E4932:0:4: ++%3LE: 1.18973149535723176502126385303097021E+4932:1:4:0x1.199999999999999a: ++%*3LE: 1.18973149535723176502126385303097021E+4932:0:4: ++%3LE: INFINITY:1:4:inf: ++%*3LE: INFINITY:0:4: ++%3LE: +NAN():0:-1: ++%*3LE: +NAN():0:-1: ++%3LE: +NAN(09A_Zaz):0:-1: ++%*3LE: +NAN(09A_Zaz):0:-1: ++# BZ12701 %3LE: +0E0:0:-1: ++# BZ12701 %*3LE: +0E0:0:-1: ++# BZ12701 %3LE: +0E+0:0:-1: ++# BZ12701 %*3LE: +0E+0:0:-1: ++%3LE: +3.36210314311209350626267781732175260E-4932:1:4:0x1.8p1: ++%*3LE: +3.36210314311209350626267781732175260E-4932:0:4: ++%3LE: +3.619058724505602958194804115432455E03716:1:4:0x1.8p1: ++%*3LE: +3.619058724505602958194804115432455E03716:0:4: ++%3LE: +3.619058724505602958194804115432455E+3716:1:4:0x1.8p1: ++%*3LE: +3.619058724505602958194804115432455E+3716:0:4: ++%3LE: +1.18973149535723176502126385303097021E4932:1:4:0x1: ++%*3LE: +1.18973149535723176502126385303097021E4932:0:4: ++%3LE: +1.18973149535723176502126385303097021E+4932:1:4:0x1: ++%*3LE: +1.18973149535723176502126385303097021E+4932:0:4: ++%3LE: +INFINITY:0:-1: ++%*3LE: +INFINITY:0:-1: ++%48LE: :0:-1: ++%*48LE: :0:-1: ++%48LE: -INFINITY:1:10:-inf: ++%*48LE: -INFINITY:0:10: ++%48LE: -1.18973149535723176502126385303097021E+4932:1:45:-0x1.fffffffffffffffep16383: ++%*48LE: -1.18973149535723176502126385303097021E+4932:0:45: ++%48LE: -1.18973149535723176502126385303097021E4932:1:44:-0x1.fffffffffffffffep16383: ++%*48LE: -1.18973149535723176502126385303097021E4932:0:44: ++%48LE: -3.619058724505602958194804115432455E+3716:1:43:-0x1.1a2b3c4d5e6f7808p12346: ++%*48LE: -3.619058724505602958194804115432455E+3716:0:43: ++%48LE: -3.619058724505602958194804115432455E03716:1:43:-0x1.1a2b3c4d5e6f7808p12346: ++%*48LE: -3.619058724505602958194804115432455E03716:0:43: ++%48LE: -3.36210314311209350626267781732175260e-4932:1:45:-0x1p-16382: ++%*48LE: -3.36210314311209350626267781732175260e-4932:0:45: ++%48LE: -0E+0:1:6:-0x0: ++%*48LE: -0E+0:0:6: ++%48LE: -0E0:1:5:-0x0: ++%*48LE: -0E0:0:5: ++%48LE: -NAN(09A_Zaz):1:14:-nan: ++%*48LE: -NAN(09A_Zaz):0:14: ++%48LE: -NAN():1:7:-nan: ++%*48LE: -NAN():0:7: ++%48LE: NAN():1:6:nan: ++%*48LE: NAN():0:6: ++%48LE: NAN(09A_Zaz):1:13:nan: ++%*48LE: NAN(09A_Zaz):0:13: ++%48LE: 0E0:1:4:0x0: ++%*48LE: 0E0:0:4: ++%48LE: 0E+0:1:5:0x0: ++%*48LE: 0E+0:0:5: ++%48LE: 3.36210314311209350626267781732175260E-4932:1:44:0x1p-16382: ++%*48LE: 3.36210314311209350626267781732175260E-4932:0:44: ++%48LE: 3.619058724505602958194804115432455E03716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*48LE: 3.619058724505602958194804115432455E03716:0:42: ++%48LE: 3.619058724505602958194804115432455E+3716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*48LE: 3.619058724505602958194804115432455E+3716:0:42: ++%48LE: 1.18973149535723176502126385303097021E4932:1:43:0x1.fffffffffffffffep16383: ++%*48LE: 1.18973149535723176502126385303097021E4932:0:43: ++%48LE: 1.18973149535723176502126385303097021E+4932:1:44:0x1.fffffffffffffffep16383: ++%*48LE: 1.18973149535723176502126385303097021E+4932:0:44: ++%48LE: INFINITY:1:9:inf: ++%*48LE: INFINITY:0:9: ++%48LE: +NAN():1:7:nan: ++%*48LE: +NAN():0:7: ++%48LE: +NAN(09A_Zaz):1:14:nan: ++%*48LE: +NAN(09A_Zaz):0:14: ++%48LE: +0E0:1:5:0x0: ++%*48LE: +0E0:0:5: ++%48LE: +0E+0:1:6:0x0: ++%*48LE: +0E+0:0:6: ++%48LE: +3.36210314311209350626267781732175260E-4932:1:45:0x1p-16382: ++%*48LE: +3.36210314311209350626267781732175260E-4932:0:45: ++%48LE: +3.619058724505602958194804115432455E03716:1:43:0x1.1a2b3c4d5e6f7808p12346: ++%*48LE: +3.619058724505602958194804115432455E03716:0:43: ++%48LE: +3.619058724505602958194804115432455E+3716:1:43:0x1.1a2b3c4d5e6f7808p12346: ++%*48LE: +3.619058724505602958194804115432455E+3716:0:43: ++%48LE: +1.18973149535723176502126385303097021E4932:1:44:0x1.fffffffffffffffep16383: ++%*48LE: +1.18973149535723176502126385303097021E4932:0:44: ++%48LE: +1.18973149535723176502126385303097021E+4932:1:45:0x1.fffffffffffffffep16383: ++%*48LE: +1.18973149535723176502126385303097021E+4932:0:45: ++%48LE: +INFINITY:1:10:inf: ++%*48LE: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-f.input +new file mode 100644 +index 0000000000000000..7c06a3260a0496ba +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-f.input +@@ -0,0 +1,496 @@ ++%Lf::0:-1: ++%*Lf::0:-1: ++%Lf:-infinity:1:9:-inf: ++%*Lf:-infinity:0:9: ++%Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:-0x1.fffffffffffffffep16383: ++%*Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:-0x1.fffffffffffffffep16383: ++%*Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:-0x1.1a2b3c4d5e6f7808p12346: ++%*Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:-0x1.1a2b3c4d5e6f7808p12346: ++%*Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382: ++%*Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%Lf:-0.0:1:4:-0x0: ++%*Lf:-0.0:0:4: ++%Lf:-0:1:2:-0x0: ++%*Lf:-0:0:2: ++%Lf:-nan(09A_Zaz):1:13:-nan: ++%*Lf:-nan(09A_Zaz):0:13: ++%Lf:-nan():1:6:-nan: ++%*Lf:-nan():0:6: ++%Lf:nan():1:5:nan: ++%*Lf:nan():0:5: ++%Lf:nan(09A_Zaz):1:12:nan: ++%*Lf:nan(09A_Zaz):0:12: ++%Lf:0:1:1:0x0: ++%*Lf:0:0:1: ++%Lf:0.0:1:3:0x0: ++%*Lf:0.0:0:3: ++%Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382: ++%*Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968: ++%Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3717:0x1.1a2b3c4d5e6f7808p12346: ++%*Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3717: ++%Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3720:0x1.1a2b3c4d5e6f7808p12346: ++%*Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3720: ++%Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4933:0x1.fffffffffffffffep16383: ++%*Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4933: ++%Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4936:0x1.fffffffffffffffep16383: ++%*Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936: ++%Lf:infinity:1:8:inf: ++%*Lf:infinity:0:8: ++%Lf:+nan():1:6:nan: ++%*Lf:+nan():0:6: ++%Lf:+nan(09A_Zaz):1:13:nan: ++%*Lf:+nan(09A_Zaz):0:13: ++%Lf:+0:1:2:0x0: ++%*Lf:+0:0:2: ++%Lf:+0.0:1:4:0x0: ++%*Lf:+0.0:0:4: ++%Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346: ++%*Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346: ++%*Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383: ++%*Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:0x1.fffffffffffffffep16383: ++%*Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%Lf:+infinity:1:9:inf: ++%*Lf:+infinity:0:9: ++%1Lf::0:-1: ++%*1Lf::0:-1: ++%1Lf:-infinity:0:-1: ++%*1Lf:-infinity:0:-1: ++%1Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1: ++%*1Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1: ++%1Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1: ++%*1Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1: ++%1Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1: ++%*1Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1: ++%1Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1: ++%*1Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1: ++%1Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%*1Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%1Lf:-0.0:0:-1: ++%*1Lf:-0.0:0:-1: ++%1Lf:-0:0:-1: ++%*1Lf:-0:0:-1: ++%1Lf:-nan(09A_Zaz):0:-1: ++%*1Lf:-nan(09A_Zaz):0:-1: ++%1Lf:-nan():0:-1: ++%*1Lf:-nan():0:-1: ++%1Lf:nan():0:-1: ++%*1Lf:nan():0:-1: ++%1Lf:nan(09A_Zaz):0:-1: ++%*1Lf:nan(09A_Zaz):0:-1: ++%1Lf:0:1:1:0x0: ++%*1Lf:0:0:1: ++%1Lf:0.0:1:1:0x0: ++%*1Lf:0.0:0:1: ++%1Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:1:0x0: ++%*1Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:1: ++%1Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:1:0x1.8p1: ++%*1Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:1: ++%1Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:1:0x0: ++%*1Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:1: ++%1Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:1:0x1: ++%*1Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:1: ++%1Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:1:0x0: ++%*1Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:1: ++%1Lf:infinity:0:-1: ++%*1Lf:infinity:0:-1: ++%1Lf:+nan():0:-1: ++%*1Lf:+nan():0:-1: ++%1Lf:+nan(09A_Zaz):0:-1: ++%*1Lf:+nan(09A_Zaz):0:-1: ++%1Lf:+0:0:-1: ++%*1Lf:+0:0:-1: ++%1Lf:+0.0:0:-1: ++%*1Lf:+0.0:0:-1: ++%1Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%*1Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%1Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1: ++%*1Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1: ++%1Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1: ++%*1Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1: ++%1Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1: ++%*1Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1: ++%1Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1: ++%*1Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1: ++%1Lf:+infinity:0:-1: ++%*1Lf:+infinity:0:-1: ++%2Lf::0:-1: ++%*2Lf::0:-1: ++%2Lf:-infinity:0:-1: ++%*2Lf:-infinity:0:-1: ++%2Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:2:-0x0: ++%*2Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2: ++%2Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:2:-0x1: ++%*2Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:2: ++%2Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:2:-0x0: ++%*2Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:2: ++%2Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:2:-0x1.8p1: ++%*2Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:2: ++%2Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:-0x0: ++%*2Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2Lf:-0.0:1:2:-0x0: ++%*2Lf:-0.0:0:2: ++%2Lf:-0:1:2:-0x0: ++%*2Lf:-0:0:2: ++%2Lf:-nan(09A_Zaz):0:-1: ++%*2Lf:-nan(09A_Zaz):0:-1: ++%2Lf:-nan():0:-1: ++%*2Lf:-nan():0:-1: ++%2Lf:nan():0:-1: ++%*2Lf:nan():0:-1: ++%2Lf:nan(09A_Zaz):0:-1: ++%*2Lf:nan(09A_Zaz):0:-1: ++%2Lf:0:1:1:0x0: ++%*2Lf:0:0:1: ++%2Lf:0.0:1:2:0x0: ++%*2Lf:0.0:0:2: ++%2Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0: ++%*2Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:2:0x1.2p5: ++%*2Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:2: ++%2Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:2:0x1.8p1: ++%*2Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:2: ++%2Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:2:0x1.6p3: ++%*2Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:2: ++%2Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:2:0x1: ++%*2Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2: ++%2Lf:infinity:0:-1: ++%*2Lf:infinity:0:-1: ++%2Lf:+nan():0:-1: ++%*2Lf:+nan():0:-1: ++%2Lf:+nan(09A_Zaz):0:-1: ++%*2Lf:+nan(09A_Zaz):0:-1: ++%2Lf:+0:1:2:0x0: ++%*2Lf:+0:0:2: ++%2Lf:+0.0:1:2:0x0: ++%*2Lf:+0.0:0:2: ++%2Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0: ++%*2Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:2:0x1.8p1: ++%*2Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:2: ++%2Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:2:0x0: ++%*2Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:2: ++%2Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:2:0x1: ++%*2Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:2: ++%2Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:2:0x0: ++%*2Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2: ++%2Lf:+infinity:0:-1: ++%*2Lf:+infinity:0:-1: ++%3Lf::0:-1: ++%*3Lf::0:-1: ++%3Lf:-infinity:0:-1: ++%*3Lf:-infinity:0:-1: ++%3Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:3:-0x1: ++%*3Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3: ++%3Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:3:-0x1.6p3: ++%*3Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:3: ++%3Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3:-0x1.8p1: ++%*3Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3: ++%3Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3:-0x1.2p5: ++%*3Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3: ++%3Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:-0x0: ++%*3Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3Lf:-0.0:1:3:-0x0: ++%*3Lf:-0.0:0:3: ++%3Lf:-0:1:2:-0x0: ++%*3Lf:-0:0:2: ++%3Lf:-nan(09A_Zaz):0:-1: ++%*3Lf:-nan(09A_Zaz):0:-1: ++%3Lf:-nan():0:-1: ++%*3Lf:-nan():0:-1: ++%3Lf:nan():1:3:nan: ++%*3Lf:nan():0:3: ++%3Lf:nan(09A_Zaz):1:3:nan: ++%*3Lf:nan(09A_Zaz):0:3: ++%3Lf:0:1:1:0x0: ++%*3Lf:0:0:1: ++%3Lf:0.0:1:3:0x0: ++%*3Lf:0.0:0:3: ++%3Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0: ++%*3Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3:0x1.69p8: ++%*3Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3: ++%3Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3:0x1.2p5: ++%*3Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3: ++%3Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:3:0x1.d8p6: ++%*3Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:3: ++%3Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:3:0x1.6p3: ++%*3Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3: ++%3Lf:infinity:1:3:inf: ++%*3Lf:infinity:0:3: ++%3Lf:+nan():0:-1: ++%*3Lf:+nan():0:-1: ++%3Lf:+nan(09A_Zaz):0:-1: ++%*3Lf:+nan(09A_Zaz):0:-1: ++%3Lf:+0:1:2:0x0: ++%*3Lf:+0:0:2: ++%3Lf:+0.0:1:3:0x0: ++%*3Lf:+0.0:0:3: ++%3Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0: ++%*3Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3:0x1.2p5: ++%*3Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3: ++%3Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3:0x1.8p1: ++%*3Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3: ++%3Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:3:0x1.6p3: ++%*3Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:3: ++%3Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:3:0x1: ++%*3Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3: ++%3Lf:+infinity:0:-1: ++%*3Lf:+infinity:0:-1: ++%4935Lf::0:-1: ++%*4935Lf::0:-1: ++%4935Lf:-infinity:1:9:-inf: ++%*4935Lf:-infinity:0:9: ++%4935Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4935:-0x1.fffffffffffffffep16383: ++%*4935Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935: ++%4935Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:-0x1.fffffffffffffffep16383: ++%*4935Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%4935Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:-0x1.1a2b3c4d5e6f7808p12346: ++%*4935Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%4935Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:-0x1.1a2b3c4d5e6f7808p12346: ++%*4935Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%4935Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:-0x1.c8db5d6b5ee81f44p-16383: ++%*4935Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935Lf:-0.0:1:4:-0x0: ++%*4935Lf:-0.0:0:4: ++%4935Lf:-0:1:2:-0x0: ++%*4935Lf:-0:0:2: ++%4935Lf:-nan(09A_Zaz):1:13:-nan: ++%*4935Lf:-nan(09A_Zaz):0:13: ++%4935Lf:-nan():1:6:-nan: ++%*4935Lf:-nan():0:6: ++%4935Lf:nan():1:5:nan: ++%*4935Lf:nan():0:5: ++%4935Lf:nan(09A_Zaz):1:12:nan: ++%*4935Lf:nan(09A_Zaz):0:12: ++%4935Lf:0:1:1:0x0: ++%*4935Lf:0:0:1: ++%4935Lf:0.0:1:3:0x0: ++%*4935Lf:0.0:0:3: ++%4935Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.f68ae6c2e865bbfcp-16383: ++%*4935Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3717:0x1.1a2b3c4d5e6f7808p12346: ++%*4935Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3717: ++%4935Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3720:0x1.1a2b3c4d5e6f7808p12346: ++%*4935Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3720: ++%4935Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4933:0x1.fffffffffffffffep16383: ++%*4935Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4933: ++%4935Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4935:0x1.fffffffffffffffep16383: ++%*4935Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935: ++%4935Lf:infinity:1:8:inf: ++%*4935Lf:infinity:0:8: ++%4935Lf:+nan():1:6:nan: ++%*4935Lf:+nan():0:6: ++%4935Lf:+nan(09A_Zaz):1:13:nan: ++%*4935Lf:+nan(09A_Zaz):0:13: ++%4935Lf:+0:1:2:0x0: ++%*4935Lf:+0:0:2: ++%4935Lf:+0.0:1:4:0x0: ++%*4935Lf:+0.0:0:4: ++%4935Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.c8db5d6b5ee81f44p-16383: ++%*4935Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346: ++%*4935Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%4935Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346: ++%*4935Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%4935Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383: ++%*4935Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%4935Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4935:0x1.fffffffffffffffep16383: ++%*4935Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935: ++%4935Lf:+infinity:1:9:inf: ++%*4935Lf:+infinity:0:9: ++%5000Lf::0:-1: ++%*5000Lf::0:-1: ++%5000Lf:-infinity:1:9:-inf: ++%*5000Lf:-infinity:0:9: ++%5000Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:-0x1.fffffffffffffffep16383: ++%*5000Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%5000Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:-0x1.fffffffffffffffep16383: ++%*5000Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%5000Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:-0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%5000Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:-0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%5000Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382: ++%*5000Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000Lf:-0.0:1:4:-0x0: ++%*5000Lf:-0.0:0:4: ++%5000Lf:-0:1:2:-0x0: ++%*5000Lf:-0:0:2: ++%5000Lf:-nan(09A_Zaz):1:13:-nan: ++%*5000Lf:-nan(09A_Zaz):0:13: ++%5000Lf:-nan():1:6:-nan: ++%*5000Lf:-nan():0:6: ++%5000Lf:nan():1:5:nan: ++%*5000Lf:nan():0:5: ++%5000Lf:nan(09A_Zaz):1:12:nan: ++%*5000Lf:nan(09A_Zaz):0:12: ++%5000Lf:0:1:1:0x0: ++%*5000Lf:0:0:1: ++%5000Lf:0.0:1:3:0x0: ++%*5000Lf:0.0:0:3: ++%5000Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382: ++%*5000Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968: ++%5000Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3717:0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3717: ++%5000Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3720:0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3720: ++%5000Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4933:0x1.fffffffffffffffep16383: ++%*5000Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4933: ++%5000Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4936:0x1.fffffffffffffffep16383: ++%*5000Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936: ++%5000Lf:infinity:1:8:inf: ++%*5000Lf:infinity:0:8: ++%5000Lf:+nan():1:6:nan: ++%*5000Lf:+nan():0:6: ++%5000Lf:+nan(09A_Zaz):1:13:nan: ++%*5000Lf:+nan(09A_Zaz):0:13: ++%5000Lf:+0:1:2:0x0: ++%*5000Lf:+0:0:2: ++%5000Lf:+0.0:1:4:0x0: ++%*5000Lf:+0.0:0:4: ++%5000Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*5000Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%5000Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%5000Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383: ++%*5000Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%5000Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:0x1.fffffffffffffffep16383: ++%*5000Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%5000Lf:+infinity:1:9:inf: ++%*5000Lf:+infinity:0:9: ++%3Lf: :0:-1: ++%*3Lf: :0:-1: ++%3Lf: -infinity:0:-1: ++%*3Lf: -infinity:0:-1: ++%3Lf: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4:-0x1: ++%*3Lf: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4: ++%3Lf: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4:-0x1.6p3: ++%*3Lf: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4: ++%3Lf: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:4:-0x1.8p1: ++%*3Lf: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:4: ++%3Lf: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:4:-0x1.2p5: ++%*3Lf: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:4: ++%3Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:-0x0: ++%*3Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3Lf: -0.0:1:4:-0x0: ++%*3Lf: -0.0:0:4: ++%3Lf: -0:1:3:-0x0: ++%*3Lf: -0:0:3: ++%3Lf: -nan(09A_Zaz):0:-1: ++%*3Lf: -nan(09A_Zaz):0:-1: ++%3Lf: -nan():0:-1: ++%*3Lf: -nan():0:-1: ++%3Lf: nan():1:4:nan: ++%*3Lf: nan():0:4: ++%3Lf: nan(09A_Zaz):1:4:nan: ++%*3Lf: nan(09A_Zaz):0:4: ++%3Lf: 0:1:2:0x0: ++%*3Lf: 0:0:2: ++%3Lf: 0.0:1:4:0x0: ++%*3Lf: 0.0:0:4: ++%3Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0: ++%*3Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3Lf: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:4:0x1.69p8: ++%*3Lf: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:4: ++%3Lf: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:4:0x1.2p5: ++%*3Lf: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:4: ++%3Lf: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4:0x1.d8p6: ++%*3Lf: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4: ++%3Lf: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4:0x1.6p3: ++%*3Lf: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4: ++%3Lf: infinity:1:4:inf: ++%*3Lf: infinity:0:4: ++%3Lf: +nan():0:-1: ++%*3Lf: +nan():0:-1: ++%3Lf: +nan(09A_Zaz):0:-1: ++%*3Lf: +nan(09A_Zaz):0:-1: ++%3Lf: +0:1:3:0x0: ++%*3Lf: +0:0:3: ++%3Lf: +0.0:1:4:0x0: ++%*3Lf: +0.0:0:4: ++%3Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0: ++%*3Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3Lf: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:4:0x1.2p5: ++%*3Lf: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:4: ++%3Lf: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:4:0x1.8p1: ++%*3Lf: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:4: ++%3Lf: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4:0x1.6p3: ++%*3Lf: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4: ++%3Lf: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4:0x1: ++%*3Lf: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4: ++%3Lf: +infinity:0:-1: ++%*3Lf: +infinity:0:-1: ++%5000Lf: :0:-1: ++%*5000Lf: :0:-1: ++%5000Lf: -infinity:1:10:-inf: ++%*5000Lf: -infinity:0:10: ++%5000Lf: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4938:-0x1.fffffffffffffffep16383: ++%*5000Lf: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4938: ++%5000Lf: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4935:-0x1.fffffffffffffffep16383: ++%*5000Lf: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4935: ++%5000Lf: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3722:-0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3722: ++%5000Lf: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3719:-0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3719: ++%5000Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:-0x1p-16382: ++%*5000Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970: ++%5000Lf: -0.0:1:5:-0x0: ++%*5000Lf: -0.0:0:5: ++%5000Lf: -0:1:3:-0x0: ++%*5000Lf: -0:0:3: ++%5000Lf: -nan(09A_Zaz):1:14:-nan: ++%*5000Lf: -nan(09A_Zaz):0:14: ++%5000Lf: -nan():1:7:-nan: ++%*5000Lf: -nan():0:7: ++%5000Lf: nan():1:6:nan: ++%*5000Lf: nan():0:6: ++%5000Lf: nan(09A_Zaz):1:13:nan: ++%*5000Lf: nan(09A_Zaz):0:13: ++%5000Lf: 0:1:2:0x0: ++%*5000Lf: 0:0:2: ++%5000Lf: 0.0:1:4:0x0: ++%*5000Lf: 0.0:0:4: ++%5000Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*5000Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000Lf: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%5000Lf: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%5000Lf: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383: ++%*5000Lf: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%5000Lf: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:0x1.fffffffffffffffep16383: ++%*5000Lf: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%5000Lf: infinity:1:9:inf: ++%*5000Lf: infinity:0:9: ++%5000Lf: +nan():1:7:nan: ++%*5000Lf: +nan():0:7: ++%5000Lf: +nan(09A_Zaz):1:14:nan: ++%*5000Lf: +nan(09A_Zaz):0:14: ++%5000Lf: +0:1:3:0x0: ++%*5000Lf: +0:0:3: ++%5000Lf: +0.0:1:5:0x0: ++%*5000Lf: +0.0:0:5: ++%5000Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:0x1p-16382: ++%*5000Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970: ++%5000Lf: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3719:0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3719: ++%5000Lf: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3722:0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3722: ++%5000Lf: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4935:0x1.fffffffffffffffep16383: ++%*5000Lf: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4935: ++%5000Lf: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4938:0x1.fffffffffffffffep16383: ++%*5000Lf: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4938: ++%5000Lf: +infinity:1:10:inf: ++%*5000Lf: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ff.input +new file mode 100644 +index 0000000000000000..1612fc41c412479e +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ff.input +@@ -0,0 +1,496 @@ ++%LF::0:-1: ++%*LF::0:-1: ++%LF:-INFINITY:1:9:-inf: ++%*LF:-INFINITY:0:9: ++%LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:-0x1.fffffffffffffffep16383: ++%*LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:-0x1.fffffffffffffffep16383: ++%*LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:-0x1.1a2b3c4d5e6f7808p12346: ++%*LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:-0x1.1a2b3c4d5e6f7808p12346: ++%*LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382: ++%*LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%LF:-0.0:1:4:-0x0: ++%*LF:-0.0:0:4: ++%LF:-0:1:2:-0x0: ++%*LF:-0:0:2: ++%LF:-NAN(09A_Zaz):1:13:-nan: ++%*LF:-NAN(09A_Zaz):0:13: ++%LF:-NAN():1:6:-nan: ++%*LF:-NAN():0:6: ++%LF:NAN():1:5:nan: ++%*LF:NAN():0:5: ++%LF:NAN(09A_Zaz):1:12:nan: ++%*LF:NAN(09A_Zaz):0:12: ++%LF:0:1:1:0x0: ++%*LF:0:0:1: ++%LF:0.0:1:3:0x0: ++%*LF:0.0:0:3: ++%LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382: ++%*LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968: ++%LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3717:0x1.1a2b3c4d5e6f7808p12346: ++%*LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3717: ++%LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3720:0x1.1a2b3c4d5e6f7808p12346: ++%*LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3720: ++%LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4933:0x1.fffffffffffffffep16383: ++%*LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4933: ++%LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4936:0x1.fffffffffffffffep16383: ++%*LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936: ++%LF:INFINITY:1:8:inf: ++%*LF:INFINITY:0:8: ++%LF:+NAN():1:6:nan: ++%*LF:+NAN():0:6: ++%LF:+NAN(09A_Zaz):1:13:nan: ++%*LF:+NAN(09A_Zaz):0:13: ++%LF:+0:1:2:0x0: ++%*LF:+0:0:2: ++%LF:+0.0:1:4:0x0: ++%*LF:+0.0:0:4: ++%LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346: ++%*LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346: ++%*LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383: ++%*LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:0x1.fffffffffffffffep16383: ++%*LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%LF:+INFINITY:1:9:inf: ++%*LF:+INFINITY:0:9: ++%1LF::0:-1: ++%*1LF::0:-1: ++%1LF:-INFINITY:0:-1: ++%*1LF:-INFINITY:0:-1: ++%1LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1: ++%*1LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1: ++%1LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1: ++%*1LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1: ++%1LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1: ++%*1LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1: ++%1LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1: ++%*1LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1: ++%1LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%*1LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%1LF:-0.0:0:-1: ++%*1LF:-0.0:0:-1: ++%1LF:-0:0:-1: ++%*1LF:-0:0:-1: ++%1LF:-NAN(09A_Zaz):0:-1: ++%*1LF:-NAN(09A_Zaz):0:-1: ++%1LF:-NAN():0:-1: ++%*1LF:-NAN():0:-1: ++%1LF:NAN():0:-1: ++%*1LF:NAN():0:-1: ++%1LF:NAN(09A_Zaz):0:-1: ++%*1LF:NAN(09A_Zaz):0:-1: ++%1LF:0:1:1:0x0: ++%*1LF:0:0:1: ++%1LF:0.0:1:1:0x0: ++%*1LF:0.0:0:1: ++%1LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:1:0x0: ++%*1LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:1: ++%1LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:1:0x1.8p1: ++%*1LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:1: ++%1LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:1:0x0: ++%*1LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:1: ++%1LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:1:0x1: ++%*1LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:1: ++%1LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:1:0x0: ++%*1LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:1: ++%1LF:INFINITY:0:-1: ++%*1LF:INFINITY:0:-1: ++%1LF:+NAN():0:-1: ++%*1LF:+NAN():0:-1: ++%1LF:+NAN(09A_Zaz):0:-1: ++%*1LF:+NAN(09A_Zaz):0:-1: ++%1LF:+0:0:-1: ++%*1LF:+0:0:-1: ++%1LF:+0.0:0:-1: ++%*1LF:+0.0:0:-1: ++%1LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%*1LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%1LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1: ++%*1LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1: ++%1LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1: ++%*1LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1: ++%1LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1: ++%*1LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1: ++%1LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1: ++%*1LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1: ++%1LF:+INFINITY:0:-1: ++%*1LF:+INFINITY:0:-1: ++%2LF::0:-1: ++%*2LF::0:-1: ++%2LF:-INFINITY:0:-1: ++%*2LF:-INFINITY:0:-1: ++%2LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:2:-0x0: ++%*2LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2: ++%2LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:2:-0x1: ++%*2LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:2: ++%2LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:2:-0x0: ++%*2LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:2: ++%2LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:2:-0x1.8p1: ++%*2LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:2: ++%2LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:-0x0: ++%*2LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2LF:-0.0:1:2:-0x0: ++%*2LF:-0.0:0:2: ++%2LF:-0:1:2:-0x0: ++%*2LF:-0:0:2: ++%2LF:-NAN(09A_Zaz):0:-1: ++%*2LF:-NAN(09A_Zaz):0:-1: ++%2LF:-NAN():0:-1: ++%*2LF:-NAN():0:-1: ++%2LF:NAN():0:-1: ++%*2LF:NAN():0:-1: ++%2LF:NAN(09A_Zaz):0:-1: ++%*2LF:NAN(09A_Zaz):0:-1: ++%2LF:0:1:1:0x0: ++%*2LF:0:0:1: ++%2LF:0.0:1:2:0x0: ++%*2LF:0.0:0:2: ++%2LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0: ++%*2LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:2:0x1.2p5: ++%*2LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:2: ++%2LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:2:0x1.8p1: ++%*2LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:2: ++%2LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:2:0x1.6p3: ++%*2LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:2: ++%2LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:2:0x1: ++%*2LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2: ++%2LF:INFINITY:0:-1: ++%*2LF:INFINITY:0:-1: ++%2LF:+NAN():0:-1: ++%*2LF:+NAN():0:-1: ++%2LF:+NAN(09A_Zaz):0:-1: ++%*2LF:+NAN(09A_Zaz):0:-1: ++%2LF:+0:1:2:0x0: ++%*2LF:+0:0:2: ++%2LF:+0.0:1:2:0x0: ++%*2LF:+0.0:0:2: ++%2LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0: ++%*2LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:2:0x1.8p1: ++%*2LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:2: ++%2LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:2:0x0: ++%*2LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:2: ++%2LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:2:0x1: ++%*2LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:2: ++%2LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:2:0x0: ++%*2LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2: ++%2LF:+INFINITY:0:-1: ++%*2LF:+INFINITY:0:-1: ++%3LF::0:-1: ++%*3LF::0:-1: ++%3LF:-INFINITY:0:-1: ++%*3LF:-INFINITY:0:-1: ++%3LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:3:-0x1: ++%*3LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3: ++%3LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:3:-0x1.6p3: ++%*3LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:3: ++%3LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3:-0x1.8p1: ++%*3LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3: ++%3LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3:-0x1.2p5: ++%*3LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3: ++%3LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:-0x0: ++%*3LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3LF:-0.0:1:3:-0x0: ++%*3LF:-0.0:0:3: ++%3LF:-0:1:2:-0x0: ++%*3LF:-0:0:2: ++%3LF:-NAN(09A_Zaz):0:-1: ++%*3LF:-NAN(09A_Zaz):0:-1: ++%3LF:-NAN():0:-1: ++%*3LF:-NAN():0:-1: ++%3LF:NAN():1:3:nan: ++%*3LF:NAN():0:3: ++%3LF:NAN(09A_Zaz):1:3:nan: ++%*3LF:NAN(09A_Zaz):0:3: ++%3LF:0:1:1:0x0: ++%*3LF:0:0:1: ++%3LF:0.0:1:3:0x0: ++%*3LF:0.0:0:3: ++%3LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0: ++%*3LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3:0x1.69p8: ++%*3LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3: ++%3LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3:0x1.2p5: ++%*3LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3: ++%3LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:3:0x1.d8p6: ++%*3LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:3: ++%3LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:3:0x1.6p3: ++%*3LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3: ++%3LF:INFINITY:1:3:inf: ++%*3LF:INFINITY:0:3: ++%3LF:+NAN():0:-1: ++%*3LF:+NAN():0:-1: ++%3LF:+NAN(09A_Zaz):0:-1: ++%*3LF:+NAN(09A_Zaz):0:-1: ++%3LF:+0:1:2:0x0: ++%*3LF:+0:0:2: ++%3LF:+0.0:1:3:0x0: ++%*3LF:+0.0:0:3: ++%3LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0: ++%*3LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3:0x1.2p5: ++%*3LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3: ++%3LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3:0x1.8p1: ++%*3LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3: ++%3LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:3:0x1.6p3: ++%*3LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:3: ++%3LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:3:0x1: ++%*3LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3: ++%3LF:+INFINITY:0:-1: ++%*3LF:+INFINITY:0:-1: ++%4935LF::0:-1: ++%*4935LF::0:-1: ++%4935LF:-INFINITY:1:9:-inf: ++%*4935LF:-INFINITY:0:9: ++%4935LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4935:-0x1.fffffffffffffffep16383: ++%*4935LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935: ++%4935LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:-0x1.fffffffffffffffep16383: ++%*4935LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%4935LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:-0x1.1a2b3c4d5e6f7808p12346: ++%*4935LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%4935LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:-0x1.1a2b3c4d5e6f7808p12346: ++%*4935LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%4935LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:-0x1.c8db5d6b5ee81f44p-16383: ++%*4935LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935LF:-0.0:1:4:-0x0: ++%*4935LF:-0.0:0:4: ++%4935LF:-0:1:2:-0x0: ++%*4935LF:-0:0:2: ++%4935LF:-NAN(09A_Zaz):1:13:-nan: ++%*4935LF:-NAN(09A_Zaz):0:13: ++%4935LF:-NAN():1:6:-nan: ++%*4935LF:-NAN():0:6: ++%4935LF:NAN():1:5:nan: ++%*4935LF:NAN():0:5: ++%4935LF:NAN(09A_Zaz):1:12:nan: ++%*4935LF:NAN(09A_Zaz):0:12: ++%4935LF:0:1:1:0x0: ++%*4935LF:0:0:1: ++%4935LF:0.0:1:3:0x0: ++%*4935LF:0.0:0:3: ++%4935LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.f68ae6c2e865bbfcp-16383: ++%*4935LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3717:0x1.1a2b3c4d5e6f7808p12346: ++%*4935LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3717: ++%4935LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3720:0x1.1a2b3c4d5e6f7808p12346: ++%*4935LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3720: ++%4935LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4933:0x1.fffffffffffffffep16383: ++%*4935LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4933: ++%4935LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4935:0x1.fffffffffffffffep16383: ++%*4935LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935: ++%4935LF:INFINITY:1:8:inf: ++%*4935LF:INFINITY:0:8: ++%4935LF:+NAN():1:6:nan: ++%*4935LF:+NAN():0:6: ++%4935LF:+NAN(09A_Zaz):1:13:nan: ++%*4935LF:+NAN(09A_Zaz):0:13: ++%4935LF:+0:1:2:0x0: ++%*4935LF:+0:0:2: ++%4935LF:+0.0:1:4:0x0: ++%*4935LF:+0.0:0:4: ++%4935LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.c8db5d6b5ee81f44p-16383: ++%*4935LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346: ++%*4935LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%4935LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346: ++%*4935LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%4935LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383: ++%*4935LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%4935LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4935:0x1.fffffffffffffffep16383: ++%*4935LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935: ++%4935LF:+INFINITY:1:9:inf: ++%*4935LF:+INFINITY:0:9: ++%5000LF::0:-1: ++%*5000LF::0:-1: ++%5000LF:-INFINITY:1:9:-inf: ++%*5000LF:-INFINITY:0:9: ++%5000LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:-0x1.fffffffffffffffep16383: ++%*5000LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%5000LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:-0x1.fffffffffffffffep16383: ++%*5000LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%5000LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:-0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%5000LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:-0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%5000LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382: ++%*5000LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000LF:-0.0:1:4:-0x0: ++%*5000LF:-0.0:0:4: ++%5000LF:-0:1:2:-0x0: ++%*5000LF:-0:0:2: ++%5000LF:-NAN(09A_Zaz):1:13:-nan: ++%*5000LF:-NAN(09A_Zaz):0:13: ++%5000LF:-NAN():1:6:-nan: ++%*5000LF:-NAN():0:6: ++%5000LF:NAN():1:5:nan: ++%*5000LF:NAN():0:5: ++%5000LF:NAN(09A_Zaz):1:12:nan: ++%*5000LF:NAN(09A_Zaz):0:12: ++%5000LF:0:1:1:0x0: ++%*5000LF:0:0:1: ++%5000LF:0.0:1:3:0x0: ++%*5000LF:0.0:0:3: ++%5000LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382: ++%*5000LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968: ++%5000LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3717:0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3717: ++%5000LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3720:0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3720: ++%5000LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4933:0x1.fffffffffffffffep16383: ++%*5000LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4933: ++%5000LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4936:0x1.fffffffffffffffep16383: ++%*5000LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936: ++%5000LF:INFINITY:1:8:inf: ++%*5000LF:INFINITY:0:8: ++%5000LF:+NAN():1:6:nan: ++%*5000LF:+NAN():0:6: ++%5000LF:+NAN(09A_Zaz):1:13:nan: ++%*5000LF:+NAN(09A_Zaz):0:13: ++%5000LF:+0:1:2:0x0: ++%*5000LF:+0:0:2: ++%5000LF:+0.0:1:4:0x0: ++%*5000LF:+0.0:0:4: ++%5000LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*5000LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%5000LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%5000LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383: ++%*5000LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%5000LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:0x1.fffffffffffffffep16383: ++%*5000LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%5000LF:+INFINITY:1:9:inf: ++%*5000LF:+INFINITY:0:9: ++%3LF: :0:-1: ++%*3LF: :0:-1: ++%3LF: -INFINITY:0:-1: ++%*3LF: -INFINITY:0:-1: ++%3LF: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4:-0x1: ++%*3LF: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4: ++%3LF: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4:-0x1.6p3: ++%*3LF: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4: ++%3LF: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:4:-0x1.8p1: ++%*3LF: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:4: ++%3LF: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:4:-0x1.2p5: ++%*3LF: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:4: ++%3LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:-0x0: ++%*3LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3LF: -0.0:1:4:-0x0: ++%*3LF: -0.0:0:4: ++%3LF: -0:1:3:-0x0: ++%*3LF: -0:0:3: ++%3LF: -NAN(09A_Zaz):0:-1: ++%*3LF: -NAN(09A_Zaz):0:-1: ++%3LF: -NAN():0:-1: ++%*3LF: -NAN():0:-1: ++%3LF: NAN():1:4:nan: ++%*3LF: NAN():0:4: ++%3LF: NAN(09A_Zaz):1:4:nan: ++%*3LF: NAN(09A_Zaz):0:4: ++%3LF: 0:1:2:0x0: ++%*3LF: 0:0:2: ++%3LF: 0.0:1:4:0x0: ++%*3LF: 0.0:0:4: ++%3LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0: ++%*3LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3LF: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:4:0x1.69p8: ++%*3LF: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:4: ++%3LF: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:4:0x1.2p5: ++%*3LF: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:4: ++%3LF: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4:0x1.d8p6: ++%*3LF: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4: ++%3LF: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4:0x1.6p3: ++%*3LF: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4: ++%3LF: INFINITY:1:4:inf: ++%*3LF: INFINITY:0:4: ++%3LF: +NAN():0:-1: ++%*3LF: +NAN():0:-1: ++%3LF: +NAN(09A_Zaz):0:-1: ++%*3LF: +NAN(09A_Zaz):0:-1: ++%3LF: +0:1:3:0x0: ++%*3LF: +0:0:3: ++%3LF: +0.0:1:4:0x0: ++%*3LF: +0.0:0:4: ++%3LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0: ++%*3LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3LF: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:4:0x1.2p5: ++%*3LF: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:4: ++%3LF: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:4:0x1.8p1: ++%*3LF: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:4: ++%3LF: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4:0x1.6p3: ++%*3LF: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4: ++%3LF: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4:0x1: ++%*3LF: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4: ++%3LF: +INFINITY:0:-1: ++%*3LF: +INFINITY:0:-1: ++%5000LF: :0:-1: ++%*5000LF: :0:-1: ++%5000LF: -INFINITY:1:10:-inf: ++%*5000LF: -INFINITY:0:10: ++%5000LF: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4938:-0x1.fffffffffffffffep16383: ++%*5000LF: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4938: ++%5000LF: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4935:-0x1.fffffffffffffffep16383: ++%*5000LF: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4935: ++%5000LF: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3722:-0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3722: ++%5000LF: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3719:-0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3719: ++%5000LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:-0x1p-16382: ++%*5000LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970: ++%5000LF: -0.0:1:5:-0x0: ++%*5000LF: -0.0:0:5: ++%5000LF: -0:1:3:-0x0: ++%*5000LF: -0:0:3: ++%5000LF: -NAN(09A_Zaz):1:14:-nan: ++%*5000LF: -NAN(09A_Zaz):0:14: ++%5000LF: -NAN():1:7:-nan: ++%*5000LF: -NAN():0:7: ++%5000LF: NAN():1:6:nan: ++%*5000LF: NAN():0:6: ++%5000LF: NAN(09A_Zaz):1:13:nan: ++%*5000LF: NAN(09A_Zaz):0:13: ++%5000LF: 0:1:2:0x0: ++%*5000LF: 0:0:2: ++%5000LF: 0.0:1:4:0x0: ++%*5000LF: 0.0:0:4: ++%5000LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*5000LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000LF: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%5000LF: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%5000LF: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383: ++%*5000LF: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%5000LF: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:0x1.fffffffffffffffep16383: ++%*5000LF: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%5000LF: INFINITY:1:9:inf: ++%*5000LF: INFINITY:0:9: ++%5000LF: +NAN():1:7:nan: ++%*5000LF: +NAN():0:7: ++%5000LF: +NAN(09A_Zaz):1:14:nan: ++%*5000LF: +NAN(09A_Zaz):0:14: ++%5000LF: +0:1:3:0x0: ++%*5000LF: +0:0:3: ++%5000LF: +0.0:1:5:0x0: ++%*5000LF: +0.0:0:5: ++%5000LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:0x1p-16382: ++%*5000LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970: ++%5000LF: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3719:0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3719: ++%5000LF: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3722:0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3722: ++%5000LF: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4935:0x1.fffffffffffffffep16383: ++%*5000LF: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4935: ++%5000LF: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4938:0x1.fffffffffffffffep16383: ++%*5000LF: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4938: ++%5000LF: +INFINITY:1:10:inf: ++%*5000LF: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-g.input +new file mode 100644 +index 0000000000000000..af43cfe2cde3b19a +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-g.input +@@ -0,0 +1,682 @@ ++%Lg::0:-1: ++%*Lg::0:-1: ++%Lg:-infinity:1:9:-inf: ++%*Lg:-infinity:0:9: ++%Lg:-0xf.fffffffffffffffp+16380:1:27:-0x1.fffffffffffffffep16383: ++%*Lg:-0xf.fffffffffffffffp+16380:0:27: ++%Lg:-0x7.fffffffffffffff8p16381:1:27:-0x1.fffffffffffffffep16383: ++%*Lg:-0x7.fffffffffffffff8p16381:0:27: ++%Lg:-0x2.3456789abcdef01p+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*Lg:-0x2.3456789abcdef01p+12345:0:27: ++%Lg:-0x2.3456789abcdef01p012345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*Lg:-0x2.3456789abcdef01p012345:0:27: ++%Lg:-0x8p-16385:1:11:-0x1p-16382: ++%*Lg:-0x8p-16385:0:11: ++%Lg:-0x0p+0:1:7:-0x0: ++%*Lg:-0x0p+0:0:7: ++%Lg:-0x0p0:1:6:-0x0: ++%*Lg:-0x0p0:0:6: ++%Lg:-nan(09A_Zaz):1:13:-nan: ++%*Lg:-nan(09A_Zaz):0:13: ++%Lg:-nan():1:6:-nan: ++%*Lg:-nan():0:6: ++%Lg:nan():1:5:nan: ++%*Lg:nan():0:5: ++%Lg:nan(09A_Zaz):1:12:nan: ++%*Lg:nan(09A_Zaz):0:12: ++%Lg:0x0p0:1:5:0x0: ++%*Lg:0x0p0:0:5: ++%Lg:0x0p+0:1:6:0x0: ++%*Lg:0x0p+0:0:6: ++%Lg:0x8p-16385:1:10:0x1p-16382: ++%*Lg:0x8p-16385:0:10: ++%Lg:0x2.3456789abcdef01p012345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*Lg:0x2.3456789abcdef01p012345:0:26: ++%Lg:0x2.3456789abcdef01p+12345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*Lg:0x2.3456789abcdef01p+12345:0:26: ++%Lg:0x7.fffffffffffffff8p16381:1:26:0x1.fffffffffffffffep16383: ++%*Lg:0x7.fffffffffffffff8p16381:0:26: ++%Lg:0xf.fffffffffffffffp+16380:1:26:0x1.fffffffffffffffep16383: ++%*Lg:0xf.fffffffffffffffp+16380:0:26: ++%Lg:infinity:1:8:inf: ++%*Lg:infinity:0:8: ++%Lg:+nan():1:6:nan: ++%*Lg:+nan():0:6: ++%Lg:+nan(09A_Zaz):1:13:nan: ++%*Lg:+nan(09A_Zaz):0:13: ++%Lg:+0x0p0:1:6:0x0: ++%*Lg:+0x0p0:0:6: ++%Lg:+0x0p+0:1:7:0x0: ++%*Lg:+0x0p+0:0:7: ++%Lg:+0x8p-16385:1:11:0x1p-16382: ++%*Lg:+0x8p-16385:0:11: ++%Lg:+0x2.3456789abcdef01p012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*Lg:+0x2.3456789abcdef01p012345:0:27: ++%Lg:+0x2.3456789abcdef01p+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*Lg:+0x2.3456789abcdef01p+12345:0:27: ++%Lg:+0x7.fffffffffffffff8p16381:1:27:0x1.fffffffffffffffep16383: ++%*Lg:+0x7.fffffffffffffff8p16381:0:27: ++%Lg:+0xf.fffffffffffffffp+16380:1:27:0x1.fffffffffffffffep16383: ++%*Lg:+0xf.fffffffffffffffp+16380:0:27: ++%Lg:+infinity:1:9:inf: ++%*Lg:+infinity:0:9: ++%1Lg::0:-1: ++%*1Lg::0:-1: ++%1Lg:-infinity:0:-1: ++%*1Lg:-infinity:0:-1: ++%1Lg:-0xf.fffffffffffffffp+16380:0:-1: ++%*1Lg:-0xf.fffffffffffffffp+16380:0:-1: ++%1Lg:-0x7.fffffffffffffff8p16381:0:-1: ++%*1Lg:-0x7.fffffffffffffff8p16381:0:-1: ++%1Lg:-0x2.3456789abcdef01p+12345:0:-1: ++%*1Lg:-0x2.3456789abcdef01p+12345:0:-1: ++%1Lg:-0x2.3456789abcdef01p012345:0:-1: ++%*1Lg:-0x2.3456789abcdef01p012345:0:-1: ++%1Lg:-0x8p-16385:0:-1: ++%*1Lg:-0x8p-16385:0:-1: ++%1Lg:-0x0p+0:0:-1: ++%*1Lg:-0x0p+0:0:-1: ++%1Lg:-0x0p0:0:-1: ++%*1Lg:-0x0p0:0:-1: ++%1Lg:-nan(09A_Zaz):0:-1: ++%*1Lg:-nan(09A_Zaz):0:-1: ++%1Lg:-nan():0:-1: ++%*1Lg:-nan():0:-1: ++%1Lg:nan():0:-1: ++%*1Lg:nan():0:-1: ++%1Lg:nan(09A_Zaz):0:-1: ++%*1Lg:nan(09A_Zaz):0:-1: ++%1Lg:0x0p0:1:1:0x0: ++%*1Lg:0x0p0:0:1: ++%1Lg:0x0p+0:1:1:0x0: ++%*1Lg:0x0p+0:0:1: ++%1Lg:0x8p-16385:1:1:0x0: ++%*1Lg:0x8p-16385:0:1: ++%1Lg:0x2.3456789abcdef01p012345:1:1:0x0: ++%*1Lg:0x2.3456789abcdef01p012345:0:1: ++%1Lg:0x2.3456789abcdef01p+12345:1:1:0x0: ++%*1Lg:0x2.3456789abcdef01p+12345:0:1: ++%1Lg:0x7.fffffffffffffff8p16381:1:1:0x0: ++%*1Lg:0x7.fffffffffffffff8p16381:0:1: ++%1Lg:0xf.fffffffffffffffp+16380:1:1:0x0: ++%*1Lg:0xf.fffffffffffffffp+16380:0:1: ++%1Lg:infinity:0:-1: ++%*1Lg:infinity:0:-1: ++%1Lg:+nan():0:-1: ++%*1Lg:+nan():0:-1: ++%1Lg:+nan(09A_Zaz):0:-1: ++%*1Lg:+nan(09A_Zaz):0:-1: ++%1Lg:+0x0p0:0:-1: ++%*1Lg:+0x0p0:0:-1: ++%1Lg:+0x0p+0:0:-1: ++%*1Lg:+0x0p+0:0:-1: ++%1Lg:+0x8p-16385:0:-1: ++%*1Lg:+0x8p-16385:0:-1: ++%1Lg:+0x2.3456789abcdef01p012345:0:-1: ++%*1Lg:+0x2.3456789abcdef01p012345:0:-1: ++%1Lg:+0x2.3456789abcdef01p+12345:0:-1: ++%*1Lg:+0x2.3456789abcdef01p+12345:0:-1: ++%1Lg:+0x7.fffffffffffffff8p16381:0:-1: ++%*1Lg:+0x7.fffffffffffffff8p16381:0:-1: ++%1Lg:+0xf.fffffffffffffffp+16380:0:-1: ++%*1Lg:+0xf.fffffffffffffffp+16380:0:-1: ++%1Lg:+infinity:0:-1: ++%*1Lg:+infinity:0:-1: ++%2Lg::0:-1: ++%*2Lg::0:-1: ++%2Lg:-infinity:0:-1: ++%*2Lg:-infinity:0:-1: ++%2Lg:-0xf.fffffffffffffffp+16380:1:2:-0x0: ++%*2Lg:-0xf.fffffffffffffffp+16380:0:2: ++%2Lg:-0x7.fffffffffffffff8p16381:1:2:-0x0: ++%*2Lg:-0x7.fffffffffffffff8p16381:0:2: ++%2Lg:-0x2.3456789abcdef01p+12345:1:2:-0x0: ++%*2Lg:-0x2.3456789abcdef01p+12345:0:2: ++%2Lg:-0x2.3456789abcdef01p012345:1:2:-0x0: ++%*2Lg:-0x2.3456789abcdef01p012345:0:2: ++%2Lg:-0x8p-16385:1:2:-0x0: ++%*2Lg:-0x8p-16385:0:2: ++%2Lg:-0x0p+0:1:2:-0x0: ++%*2Lg:-0x0p+0:0:2: ++%2Lg:-0x0p0:1:2:-0x0: ++%*2Lg:-0x0p0:0:2: ++%2Lg:-nan(09A_Zaz):0:-1: ++%*2Lg:-nan(09A_Zaz):0:-1: ++%2Lg:-nan():0:-1: ++%*2Lg:-nan():0:-1: ++%2Lg:nan():0:-1: ++%*2Lg:nan():0:-1: ++%2Lg:nan(09A_Zaz):0:-1: ++%*2Lg:nan(09A_Zaz):0:-1: ++# BZ12701 %2Lg:0x0p0:0:-1: ++# BZ12701 %*2Lg:0x0p0:0:-1: ++# BZ12701 %2Lg:0x0p+0:0:-1: ++# BZ12701 %*2Lg:0x0p+0:0:-1: ++# BZ12701 %2Lg:0x8p-16385:0:-1: ++# BZ12701 %*2Lg:0x8p-16385:0:-1: ++# BZ12701 %2Lg:0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %*2Lg:0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %2Lg:0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*2Lg:0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %2Lg:0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*2Lg:0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %2Lg:0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*2Lg:0xf.fffffffffffffffp+16380:0:-1: ++%2Lg:infinity:0:-1: ++%*2Lg:infinity:0:-1: ++%2Lg:+nan():0:-1: ++%*2Lg:+nan():0:-1: ++%2Lg:+nan(09A_Zaz):0:-1: ++%*2Lg:+nan(09A_Zaz):0:-1: ++%2Lg:+0x0p0:1:2:0x0: ++%*2Lg:+0x0p0:0:2: ++%2Lg:+0x0p+0:1:2:0x0: ++%*2Lg:+0x0p+0:0:2: ++%2Lg:+0x8p-16385:1:2:0x0: ++%*2Lg:+0x8p-16385:0:2: ++%2Lg:+0x2.3456789abcdef01p012345:1:2:0x0: ++%*2Lg:+0x2.3456789abcdef01p012345:0:2: ++%2Lg:+0x2.3456789abcdef01p+12345:1:2:0x0: ++%*2Lg:+0x2.3456789abcdef01p+12345:0:2: ++%2Lg:+0x7.fffffffffffffff8p16381:1:2:0x0: ++%*2Lg:+0x7.fffffffffffffff8p16381:0:2: ++%2Lg:+0xf.fffffffffffffffp+16380:1:2:0x0: ++%*2Lg:+0xf.fffffffffffffffp+16380:0:2: ++%2Lg:+infinity:0:-1: ++%*2Lg:+infinity:0:-1: ++%3Lg::0:-1: ++%*3Lg::0:-1: ++%3Lg:-infinity:0:-1: ++%*3Lg:-infinity:0:-1: ++# BZ12701 %3Lg:-0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*3Lg:-0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %3Lg:-0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*3Lg:-0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %3Lg:-0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*3Lg:-0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %3Lg:-0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %*3Lg:-0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %3Lg:-0x8p-16385:0:-1: ++# BZ12701 %*3Lg:-0x8p-16385:0:-1: ++# BZ12701 %3Lg:-0x0p+0:0:-1: ++# BZ12701 %*3Lg:-0x0p+0:0:-1: ++# BZ12701 %3Lg:-0x0p0:0:-1: ++# BZ12701 %*3Lg:-0x0p0:0:-1: ++%3Lg:-nan(09A_Zaz):0:-1: ++%*3Lg:-nan(09A_Zaz):0:-1: ++%3Lg:-nan():0:-1: ++%*3Lg:-nan():0:-1: ++%3Lg:nan():1:3:nan: ++%*3Lg:nan():0:3: ++%3Lg:nan(09A_Zaz):1:3:nan: ++%*3Lg:nan(09A_Zaz):0:3: ++%3Lg:0x0p0:1:3:0x0: ++%*3Lg:0x0p0:0:3: ++%3Lg:0x0p+0:1:3:0x0: ++%*3Lg:0x0p+0:0:3: ++%3Lg:0x8p-16385:1:3:0x1p3: ++%*3Lg:0x8p-16385:0:3: ++%3Lg:0x2.3456789abcdef01p012345:1:3:0x1p1: ++%*3Lg:0x2.3456789abcdef01p012345:0:3: ++%3Lg:0x2.3456789abcdef01p+12345:1:3:0x1p1: ++%*3Lg:0x2.3456789abcdef01p+12345:0:3: ++%3Lg:0x7.fffffffffffffff8p16381:1:3:0x1.cp2: ++%*3Lg:0x7.fffffffffffffff8p16381:0:3: ++%3Lg:0xf.fffffffffffffffp+16380:1:3:0x1.ep3: ++%*3Lg:0xf.fffffffffffffffp+16380:0:3: ++%3Lg:infinity:1:3:inf: ++%*3Lg:infinity:0:3: ++%3Lg:+nan():0:-1: ++%*3Lg:+nan():0:-1: ++%3Lg:+nan(09A_Zaz):0:-1: ++%*3Lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %3Lg:+0x0p0:0:-1: ++# BZ12701 %*3Lg:+0x0p0:0:-1: ++# BZ12701 %3Lg:+0x0p+0:0:-1: ++# BZ12701 %*3Lg:+0x0p+0:0:-1: ++# BZ12701 %3Lg:+0x8p-16385:0:-1: ++# BZ12701 %*3Lg:+0x8p-16385:0:-1: ++# BZ12701 %3Lg:+0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %*3Lg:+0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %3Lg:+0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*3Lg:+0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %3Lg:+0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*3Lg:+0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %3Lg:+0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*3Lg:+0xf.fffffffffffffffp+16380:0:-1: ++%3Lg:+infinity:0:-1: ++%*3Lg:+infinity:0:-1: ++%4Lg::0:-1: ++%*4Lg::0:-1: ++%4Lg:-infinity:1:4:-inf: ++%*4Lg:-infinity:0:4: ++%4Lg:-0xf.fffffffffffffffp+16380:1:4:-0x1.ep3: ++%*4Lg:-0xf.fffffffffffffffp+16380:0:4: ++%4Lg:-0x7.fffffffffffffff8p16381:1:4:-0x1.cp2: ++%*4Lg:-0x7.fffffffffffffff8p16381:0:4: ++%4Lg:-0x2.3456789abcdef01p+12345:1:4:-0x1p1: ++%*4Lg:-0x2.3456789abcdef01p+12345:0:4: ++%4Lg:-0x2.3456789abcdef01p012345:1:4:-0x1p1: ++%*4Lg:-0x2.3456789abcdef01p012345:0:4: ++%4Lg:-0x8p-16385:1:4:-0x1p3: ++%*4Lg:-0x8p-16385:0:4: ++%4Lg:-0x0p+0:1:4:-0x0: ++%*4Lg:-0x0p+0:0:4: ++%4Lg:-0x0p0:1:4:-0x0: ++%*4Lg:-0x0p0:0:4: ++%4Lg:-nan(09A_Zaz):1:4:-nan: ++%*4Lg:-nan(09A_Zaz):0:4: ++%4Lg:-nan():1:4:-nan: ++%*4Lg:-nan():0:4: ++%4Lg:nan():0:-1: ++%*4Lg:nan():0:-1: ++%4Lg:nan(09A_Zaz):0:-1: ++%*4Lg:nan(09A_Zaz):0:-1: ++# BZ12701 %4Lg:0x0p0:0:-1: ++# BZ12701 %*4Lg:0x0p0:0:-1: ++# BZ12701 %4Lg:0x0p+0:0:-1: ++# BZ12701 %*4Lg:0x0p+0:0:-1: ++# BZ12701 %4Lg:0x8p-16385:0:-1: ++# BZ12701 %*4Lg:0x8p-16385:0:-1: ++%4Lg:0x2.3456789abcdef01p012345:1:4:0x1p1: ++%*4Lg:0x2.3456789abcdef01p012345:0:4: ++%4Lg:0x2.3456789abcdef01p+12345:1:4:0x1p1: ++%*4Lg:0x2.3456789abcdef01p+12345:0:4: ++%4Lg:0x7.fffffffffffffff8p16381:1:4:0x1.cp2: ++%*4Lg:0x7.fffffffffffffff8p16381:0:4: ++%4Lg:0xf.fffffffffffffffp+16380:1:4:0x1.ep3: ++%*4Lg:0xf.fffffffffffffffp+16380:0:4: ++%4Lg:infinity:0:-1: ++%*4Lg:infinity:0:-1: ++%4Lg:+nan():1:4:nan: ++%*4Lg:+nan():0:4: ++%4Lg:+nan(09A_Zaz):1:4:nan: ++%*4Lg:+nan(09A_Zaz):0:4: ++%4Lg:+0x0p0:1:4:0x0: ++%*4Lg:+0x0p0:0:4: ++%4Lg:+0x0p+0:1:4:0x0: ++%*4Lg:+0x0p+0:0:4: ++%4Lg:+0x8p-16385:1:4:0x1p3: ++%*4Lg:+0x8p-16385:0:4: ++%4Lg:+0x2.3456789abcdef01p012345:1:4:0x1p1: ++%*4Lg:+0x2.3456789abcdef01p012345:0:4: ++%4Lg:+0x2.3456789abcdef01p+12345:1:4:0x1p1: ++%*4Lg:+0x2.3456789abcdef01p+12345:0:4: ++%4Lg:+0x7.fffffffffffffff8p16381:1:4:0x1.cp2: ++%*4Lg:+0x7.fffffffffffffff8p16381:0:4: ++%4Lg:+0xf.fffffffffffffffp+16380:1:4:0x1.ep3: ++%*4Lg:+0xf.fffffffffffffffp+16380:0:4: ++%4Lg:+infinity:1:4:inf: ++%*4Lg:+infinity:0:4: ++%5Lg::0:-1: ++%*5Lg::0:-1: ++%5Lg:-infinity:0:-1: ++%*5Lg:-infinity:0:-1: ++%5Lg:-0xf.fffffffffffffffp+16380:1:5:-0x1.ep3: ++%*5Lg:-0xf.fffffffffffffffp+16380:0:5: ++%5Lg:-0x7.fffffffffffffff8p16381:1:5:-0x1.cp2: ++%*5Lg:-0x7.fffffffffffffff8p16381:0:5: ++%5Lg:-0x2.3456789abcdef01p+12345:1:5:-0x1p1: ++%*5Lg:-0x2.3456789abcdef01p+12345:0:5: ++%5Lg:-0x2.3456789abcdef01p012345:1:5:-0x1p1: ++%*5Lg:-0x2.3456789abcdef01p012345:0:5: ++# BZ12701 %5Lg:-0x8p-16385:0:-1: ++# BZ12701 %*5Lg:-0x8p-16385:0:-1: ++# BZ12701 %5Lg:-0x0p+0:0:-1: ++# BZ12701 %*5Lg:-0x0p+0:0:-1: ++# BZ12701 %5Lg:-0x0p0:0:-1: ++# BZ12701 %*5Lg:-0x0p0:0:-1: ++%5Lg:-nan(09A_Zaz):0:-1: ++%*5Lg:-nan(09A_Zaz):0:-1: ++%5Lg:-nan():0:-1: ++%*5Lg:-nan():0:-1: ++%5Lg:nan():1:5:nan: ++%*5Lg:nan():0:5: ++%5Lg:nan(09A_Zaz):0:-1: ++%*5Lg:nan(09A_Zaz):0:-1: ++%5Lg:0x0p0:1:5:0x0: ++%*5Lg:0x0p0:0:5: ++# BZ12701 %5Lg:0x0p+0:0:-1: ++# BZ12701 %*5Lg:0x0p+0:0:-1: ++# BZ12701 %5Lg:0x8p-16385:0:-1: ++# BZ12701 %*5Lg:0x8p-16385:0:-1: ++%5Lg:0x2.3456789abcdef01p012345:1:5:0x1.18p1: ++%*5Lg:0x2.3456789abcdef01p012345:0:5: ++%5Lg:0x2.3456789abcdef01p+12345:1:5:0x1.18p1: ++%*5Lg:0x2.3456789abcdef01p+12345:0:5: ++%5Lg:0x7.fffffffffffffff8p16381:1:5:0x1.fcp2: ++%*5Lg:0x7.fffffffffffffff8p16381:0:5: ++%5Lg:0xf.fffffffffffffffp+16380:1:5:0x1.fep3: ++%*5Lg:0xf.fffffffffffffffp+16380:0:5: ++%5Lg:infinity:0:-1: ++%*5Lg:infinity:0:-1: ++%5Lg:+nan():0:-1: ++%*5Lg:+nan():0:-1: ++%5Lg:+nan(09A_Zaz):0:-1: ++%*5Lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %5Lg:+0x0p0:0:-1: ++# BZ12701 %*5Lg:+0x0p0:0:-1: ++# BZ12701 %5Lg:+0x0p+0:0:-1: ++# BZ12701 %*5Lg:+0x0p+0:0:-1: ++# BZ12701 %5Lg:+0x8p-16385:0:-1: ++# BZ12701 %*5Lg:+0x8p-16385:0:-1: ++%5Lg:+0x2.3456789abcdef01p012345:1:5:0x1p1: ++%*5Lg:+0x2.3456789abcdef01p012345:0:5: ++%5Lg:+0x2.3456789abcdef01p+12345:1:5:0x1p1: ++%*5Lg:+0x2.3456789abcdef01p+12345:0:5: ++%5Lg:+0x7.fffffffffffffff8p16381:1:5:0x1.cp2: ++%*5Lg:+0x7.fffffffffffffff8p16381:0:5: ++%5Lg:+0xf.fffffffffffffffp+16380:1:5:0x1.ep3: ++%*5Lg:+0xf.fffffffffffffffp+16380:0:5: ++%5Lg:+infinity:0:-1: ++%*5Lg:+infinity:0:-1: ++%6Lg::0:-1: ++%*6Lg::0:-1: ++%6Lg:-infinity:0:-1: ++%*6Lg:-infinity:0:-1: ++%6Lg:-0xf.fffffffffffffffp+16380:1:6:-0x1.fep3: ++%*6Lg:-0xf.fffffffffffffffp+16380:0:6: ++%6Lg:-0x7.fffffffffffffff8p16381:1:6:-0x1.fcp2: ++%*6Lg:-0x7.fffffffffffffff8p16381:0:6: ++%6Lg:-0x2.3456789abcdef01p+12345:1:6:-0x1.18p1: ++%*6Lg:-0x2.3456789abcdef01p+12345:0:6: ++%6Lg:-0x2.3456789abcdef01p012345:1:6:-0x1.18p1: ++%*6Lg:-0x2.3456789abcdef01p012345:0:6: ++# BZ12701 %6Lg:-0x8p-16385:0:-1: ++# BZ12701 %*6Lg:-0x8p-16385:0:-1: ++# BZ12701 %6Lg:-0x0p+0:0:-1: ++# BZ12701 %*6Lg:-0x0p+0:0:-1: ++%6Lg:-0x0p0:1:6:-0x0: ++%*6Lg:-0x0p0:0:6: ++%6Lg:-nan(09A_Zaz):0:-1: ++%*6Lg:-nan(09A_Zaz):0:-1: ++%6Lg:-nan():1:6:-nan: ++%*6Lg:-nan():0:6: ++%6Lg:nan():1:5:nan: ++%*6Lg:nan():0:5: ++%6Lg:nan(09A_Zaz):0:-1: ++%*6Lg:nan(09A_Zaz):0:-1: ++%6Lg:0x0p0:1:5:0x0: ++%*6Lg:0x0p0:0:5: ++%6Lg:0x0p+0:1:6:0x0: ++%*6Lg:0x0p+0:0:6: ++%6Lg:0x8p-16385:1:6:0x1p2: ++%*6Lg:0x8p-16385:0:6: ++%6Lg:0x2.3456789abcdef01p012345:1:6:0x1.1ap1: ++%*6Lg:0x2.3456789abcdef01p012345:0:6: ++%6Lg:0x2.3456789abcdef01p+12345:1:6:0x1.1ap1: ++%*6Lg:0x2.3456789abcdef01p+12345:0:6: ++%6Lg:0x7.fffffffffffffff8p16381:1:6:0x1.ffcp2: ++%*6Lg:0x7.fffffffffffffff8p16381:0:6: ++%6Lg:0xf.fffffffffffffffp+16380:1:6:0x1.ffep3: ++%*6Lg:0xf.fffffffffffffffp+16380:0:6: ++%6Lg:infinity:0:-1: ++%*6Lg:infinity:0:-1: ++%6Lg:+nan():1:6:nan: ++%*6Lg:+nan():0:6: ++%6Lg:+nan(09A_Zaz):0:-1: ++%*6Lg:+nan(09A_Zaz):0:-1: ++%6Lg:+0x0p0:1:6:0x0: ++%*6Lg:+0x0p0:0:6: ++# BZ12701 %6Lg:+0x0p+0:0:-1: ++# BZ12701 %*6Lg:+0x0p+0:0:-1: ++# BZ12701 %6Lg:+0x8p-16385:0:-1: ++# BZ12701 %*6Lg:+0x8p-16385:0:-1: ++%6Lg:+0x2.3456789abcdef01p012345:1:6:0x1.18p1: ++%*6Lg:+0x2.3456789abcdef01p012345:0:6: ++%6Lg:+0x2.3456789abcdef01p+12345:1:6:0x1.18p1: ++%*6Lg:+0x2.3456789abcdef01p+12345:0:6: ++%6Lg:+0x7.fffffffffffffff8p16381:1:6:0x1.fcp2: ++%*6Lg:+0x7.fffffffffffffff8p16381:0:6: ++%6Lg:+0xf.fffffffffffffffp+16380:1:6:0x1.fep3: ++%*6Lg:+0xf.fffffffffffffffp+16380:0:6: ++%6Lg:+infinity:0:-1: ++%*6Lg:+infinity:0:-1: ++%22Lg::0:-1: ++%*22Lg::0:-1: ++%22Lg:-infinity:1:9:-inf: ++%*22Lg:-infinity:0:9: ++# BZ12701 %22Lg:-0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*22Lg:-0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %22Lg:-0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*22Lg:-0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %22Lg:-0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*22Lg:-0x2.3456789abcdef01p+12345:0:-1: ++%22Lg:-0x2.3456789abcdef01p012345:1:22:-0x1.1a2b3c4d5e6f7808p1: ++%*22Lg:-0x2.3456789abcdef01p012345:0:22: ++%22Lg:-0x8p-16385:1:11:-0x1p-16382: ++%*22Lg:-0x8p-16385:0:11: ++%22Lg:-0x0p+0:1:7:-0x0: ++%*22Lg:-0x0p+0:0:7: ++%22Lg:-0x0p0:1:6:-0x0: ++%*22Lg:-0x0p0:0:6: ++%22Lg:-nan(09A_Zaz):1:13:-nan: ++%*22Lg:-nan(09A_Zaz):0:13: ++%22Lg:-nan():1:6:-nan: ++%*22Lg:-nan():0:6: ++%22Lg:nan():1:5:nan: ++%*22Lg:nan():0:5: ++%22Lg:nan(09A_Zaz):1:12:nan: ++%*22Lg:nan(09A_Zaz):0:12: ++%22Lg:0x0p0:1:5:0x0: ++%*22Lg:0x0p0:0:5: ++%22Lg:0x0p+0:1:6:0x0: ++%*22Lg:0x0p+0:0:6: ++%22Lg:0x8p-16385:1:10:0x1p-16382: ++%*22Lg:0x8p-16385:0:10: ++%22Lg:0x2.3456789abcdef01p012345:1:22:0x1.1a2b3c4d5e6f7808p2: ++%*22Lg:0x2.3456789abcdef01p012345:0:22: ++%22Lg:0x2.3456789abcdef01p+12345:1:22:0x1.1a2b3c4d5e6f7808p2: ++%*22Lg:0x2.3456789abcdef01p+12345:0:22: ++%22Lg:0x7.fffffffffffffff8p16381:1:22:0x1.fffffffffffffffep3: ++%*22Lg:0x7.fffffffffffffff8p16381:0:22: ++%22Lg:0xf.fffffffffffffffp+16380:1:22:0x1.fffffffffffffffep4: ++%*22Lg:0xf.fffffffffffffffp+16380:0:22: ++%22Lg:infinity:1:8:inf: ++%*22Lg:infinity:0:8: ++%22Lg:+nan():1:6:nan: ++%*22Lg:+nan():0:6: ++%22Lg:+nan(09A_Zaz):1:13:nan: ++%*22Lg:+nan(09A_Zaz):0:13: ++%22Lg:+0x0p0:1:6:0x0: ++%*22Lg:+0x0p0:0:6: ++%22Lg:+0x0p+0:1:7:0x0: ++%*22Lg:+0x0p+0:0:7: ++%22Lg:+0x8p-16385:1:11:0x1p-16382: ++%*22Lg:+0x8p-16385:0:11: ++%22Lg:+0x2.3456789abcdef01p012345:1:22:0x1.1a2b3c4d5e6f7808p1: ++%*22Lg:+0x2.3456789abcdef01p012345:0:22: ++# BZ12701 %22Lg:+0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*22Lg:+0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %22Lg:+0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*22Lg:+0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %22Lg:+0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*22Lg:+0xf.fffffffffffffffp+16380:0:-1: ++%22Lg:+infinity:1:9:inf: ++%*22Lg:+infinity:0:9: ++%37Lg::0:-1: ++%*37Lg::0:-1: ++%37Lg:-infinity:1:9:-inf: ++%*37Lg:-infinity:0:9: ++%37Lg:-0xf.fffffffffffffffp+16380:1:27:-0x1.fffffffffffffffep16383: ++%*37Lg:-0xf.fffffffffffffffp+16380:0:27: ++%37Lg:-0x7.fffffffffffffff8p16381:1:27:-0x1.fffffffffffffffep16383: ++%*37Lg:-0x7.fffffffffffffff8p16381:0:27: ++%37Lg:-0x2.3456789abcdef01p+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg:-0x2.3456789abcdef01p+12345:0:27: ++%37Lg:-0x2.3456789abcdef01p012345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg:-0x2.3456789abcdef01p012345:0:27: ++%37Lg:-0x8p-16385:1:11:-0x1p-16382: ++%*37Lg:-0x8p-16385:0:11: ++%37Lg:-0x0p+0:1:7:-0x0: ++%*37Lg:-0x0p+0:0:7: ++%37Lg:-0x0p0:1:6:-0x0: ++%*37Lg:-0x0p0:0:6: ++%37Lg:-nan(09A_Zaz):1:13:-nan: ++%*37Lg:-nan(09A_Zaz):0:13: ++%37Lg:-nan():1:6:-nan: ++%*37Lg:-nan():0:6: ++%37Lg:nan():1:5:nan: ++%*37Lg:nan():0:5: ++%37Lg:nan(09A_Zaz):1:12:nan: ++%*37Lg:nan(09A_Zaz):0:12: ++%37Lg:0x0p0:1:5:0x0: ++%*37Lg:0x0p0:0:5: ++%37Lg:0x0p+0:1:6:0x0: ++%*37Lg:0x0p+0:0:6: ++%37Lg:0x8p-16385:1:10:0x1p-16382: ++%*37Lg:0x8p-16385:0:10: ++%37Lg:0x2.3456789abcdef01p012345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg:0x2.3456789abcdef01p012345:0:26: ++%37Lg:0x2.3456789abcdef01p+12345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg:0x2.3456789abcdef01p+12345:0:26: ++%37Lg:0x7.fffffffffffffff8p16381:1:26:0x1.fffffffffffffffep16383: ++%*37Lg:0x7.fffffffffffffff8p16381:0:26: ++%37Lg:0xf.fffffffffffffffp+16380:1:26:0x1.fffffffffffffffep16383: ++%*37Lg:0xf.fffffffffffffffp+16380:0:26: ++%37Lg:infinity:1:8:inf: ++%*37Lg:infinity:0:8: ++%37Lg:+nan():1:6:nan: ++%*37Lg:+nan():0:6: ++%37Lg:+nan(09A_Zaz):1:13:nan: ++%*37Lg:+nan(09A_Zaz):0:13: ++%37Lg:+0x0p0:1:6:0x0: ++%*37Lg:+0x0p0:0:6: ++%37Lg:+0x0p+0:1:7:0x0: ++%*37Lg:+0x0p+0:0:7: ++%37Lg:+0x8p-16385:1:11:0x1p-16382: ++%*37Lg:+0x8p-16385:0:11: ++%37Lg:+0x2.3456789abcdef01p012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg:+0x2.3456789abcdef01p012345:0:27: ++%37Lg:+0x2.3456789abcdef01p+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg:+0x2.3456789abcdef01p+12345:0:27: ++%37Lg:+0x7.fffffffffffffff8p16381:1:27:0x1.fffffffffffffffep16383: ++%*37Lg:+0x7.fffffffffffffff8p16381:0:27: ++%37Lg:+0xf.fffffffffffffffp+16380:1:27:0x1.fffffffffffffffep16383: ++%*37Lg:+0xf.fffffffffffffffp+16380:0:27: ++%37Lg:+infinity:1:9:inf: ++%*37Lg:+infinity:0:9: ++%5Lg: :0:-1: ++%*5Lg: :0:-1: ++%5Lg: -infinity:0:-1: ++%*5Lg: -infinity:0:-1: ++%5Lg: -0xf.fffffffffffffffp+16380:1:6:-0x1.ep3: ++%*5Lg: -0xf.fffffffffffffffp+16380:0:6: ++%5Lg: -0x7.fffffffffffffff8p16381:1:6:-0x1.cp2: ++%*5Lg: -0x7.fffffffffffffff8p16381:0:6: ++%5Lg: -0x2.3456789abcdef01p+12345:1:6:-0x1p1: ++%*5Lg: -0x2.3456789abcdef01p+12345:0:6: ++%5Lg: -0x2.3456789abcdef01p012345:1:6:-0x1p1: ++%*5Lg: -0x2.3456789abcdef01p012345:0:6: ++# BZ12701 %5Lg: -0x8p-16385:0:-1: ++# BZ12701 %*5Lg: -0x8p-16385:0:-1: ++# BZ12701 %5Lg: -0x0p+0:0:-1: ++# BZ12701 %*5Lg: -0x0p+0:0:-1: ++# BZ12701 %5Lg: -0x0p0:0:-1: ++# BZ12701 %*5Lg: -0x0p0:0:-1: ++%5Lg: -nan(09A_Zaz):0:-1: ++%*5Lg: -nan(09A_Zaz):0:-1: ++%5Lg: -nan():0:-1: ++%*5Lg: -nan():0:-1: ++%5Lg: nan():1:6:nan: ++%*5Lg: nan():0:6: ++%5Lg: nan(09A_Zaz):0:-1: ++%*5Lg: nan(09A_Zaz):0:-1: ++%5Lg: 0x0p0:1:6:0x0: ++%*5Lg: 0x0p0:0:6: ++# BZ12701 %5Lg: 0x0p+0:0:-1: ++# BZ12701 %*5Lg: 0x0p+0:0:-1: ++# BZ12701 %5Lg: 0x8p-16385:0:-1: ++# BZ12701 %*5Lg: 0x8p-16385:0:-1: ++%5Lg: 0x2.3456789abcdef01p012345:1:6:0x1.18p1: ++%*5Lg: 0x2.3456789abcdef01p012345:0:6: ++%5Lg: 0x2.3456789abcdef01p+12345:1:6:0x1.18p1: ++%*5Lg: 0x2.3456789abcdef01p+12345:0:6: ++%5Lg: 0x7.fffffffffffffff8p16381:1:6:0x1.fcp2: ++%*5Lg: 0x7.fffffffffffffff8p16381:0:6: ++%5Lg: 0xf.fffffffffffffffp+16380:1:6:0x1.fep3: ++%*5Lg: 0xf.fffffffffffffffp+16380:0:6: ++%5Lg: infinity:0:-1: ++%*5Lg: infinity:0:-1: ++%5Lg: +nan():0:-1: ++%*5Lg: +nan():0:-1: ++%5Lg: +nan(09A_Zaz):0:-1: ++%*5Lg: +nan(09A_Zaz):0:-1: ++# BZ12701 %5Lg: +0x0p0:0:-1: ++# BZ12701 %*5Lg: +0x0p0:0:-1: ++# BZ12701 %5Lg: +0x0p+0:0:-1: ++# BZ12701 %*5Lg: +0x0p+0:0:-1: ++# BZ12701 %5Lg: +0x8p-16385:0:-1: ++# BZ12701 %*5Lg: +0x8p-16385:0:-1: ++%5Lg: +0x2.3456789abcdef01p012345:1:6:0x1p1: ++%*5Lg: +0x2.3456789abcdef01p012345:0:6: ++%5Lg: +0x2.3456789abcdef01p+12345:1:6:0x1p1: ++%*5Lg: +0x2.3456789abcdef01p+12345:0:6: ++%5Lg: +0x7.fffffffffffffff8p16381:1:6:0x1.cp2: ++%*5Lg: +0x7.fffffffffffffff8p16381:0:6: ++%5Lg: +0xf.fffffffffffffffp+16380:1:6:0x1.ep3: ++%*5Lg: +0xf.fffffffffffffffp+16380:0:6: ++%5Lg: +infinity:0:-1: ++%*5Lg: +infinity:0:-1: ++%37Lg: :0:-1: ++%*37Lg: :0:-1: ++%37Lg: -infinity:1:10:-inf: ++%*37Lg: -infinity:0:10: ++%37Lg: -0xf.fffffffffffffffp+16380:1:28:-0x1.fffffffffffffffep16383: ++%*37Lg: -0xf.fffffffffffffffp+16380:0:28: ++%37Lg: -0x7.fffffffffffffff8p16381:1:28:-0x1.fffffffffffffffep16383: ++%*37Lg: -0x7.fffffffffffffff8p16381:0:28: ++%37Lg: -0x2.3456789abcdef01p+12345:1:28:-0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg: -0x2.3456789abcdef01p+12345:0:28: ++%37Lg: -0x2.3456789abcdef01p012345:1:28:-0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg: -0x2.3456789abcdef01p012345:0:28: ++%37Lg: -0x8p-16385:1:12:-0x1p-16382: ++%*37Lg: -0x8p-16385:0:12: ++%37Lg: -0x0p+0:1:8:-0x0: ++%*37Lg: -0x0p+0:0:8: ++%37Lg: -0x0p0:1:7:-0x0: ++%*37Lg: -0x0p0:0:7: ++%37Lg: -nan(09A_Zaz):1:14:-nan: ++%*37Lg: -nan(09A_Zaz):0:14: ++%37Lg: -nan():1:7:-nan: ++%*37Lg: -nan():0:7: ++%37Lg: nan():1:6:nan: ++%*37Lg: nan():0:6: ++%37Lg: nan(09A_Zaz):1:13:nan: ++%*37Lg: nan(09A_Zaz):0:13: ++%37Lg: 0x0p0:1:6:0x0: ++%*37Lg: 0x0p0:0:6: ++%37Lg: 0x0p+0:1:7:0x0: ++%*37Lg: 0x0p+0:0:7: ++%37Lg: 0x8p-16385:1:11:0x1p-16382: ++%*37Lg: 0x8p-16385:0:11: ++%37Lg: 0x2.3456789abcdef01p012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg: 0x2.3456789abcdef01p012345:0:27: ++%37Lg: 0x2.3456789abcdef01p+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg: 0x2.3456789abcdef01p+12345:0:27: ++%37Lg: 0x7.fffffffffffffff8p16381:1:27:0x1.fffffffffffffffep16383: ++%*37Lg: 0x7.fffffffffffffff8p16381:0:27: ++%37Lg: 0xf.fffffffffffffffp+16380:1:27:0x1.fffffffffffffffep16383: ++%*37Lg: 0xf.fffffffffffffffp+16380:0:27: ++%37Lg: infinity:1:9:inf: ++%*37Lg: infinity:0:9: ++%37Lg: +nan():1:7:nan: ++%*37Lg: +nan():0:7: ++%37Lg: +nan(09A_Zaz):1:14:nan: ++%*37Lg: +nan(09A_Zaz):0:14: ++%37Lg: +0x0p0:1:7:0x0: ++%*37Lg: +0x0p0:0:7: ++%37Lg: +0x0p+0:1:8:0x0: ++%*37Lg: +0x0p+0:0:8: ++%37Lg: +0x8p-16385:1:12:0x1p-16382: ++%*37Lg: +0x8p-16385:0:12: ++%37Lg: +0x2.3456789abcdef01p012345:1:28:0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg: +0x2.3456789abcdef01p012345:0:28: ++%37Lg: +0x2.3456789abcdef01p+12345:1:28:0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg: +0x2.3456789abcdef01p+12345:0:28: ++%37Lg: +0x7.fffffffffffffff8p16381:1:28:0x1.fffffffffffffffep16383: ++%*37Lg: +0x7.fffffffffffffff8p16381:0:28: ++%37Lg: +0xf.fffffffffffffffp+16380:1:28:0x1.fffffffffffffffep16383: ++%*37Lg: +0xf.fffffffffffffffp+16380:0:28: ++%37Lg: +infinity:1:10:inf: ++%*37Lg: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-gg.input +new file mode 100644 +index 0000000000000000..a274698774017b4b +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-gg.input +@@ -0,0 +1,682 @@ ++%LG::0:-1: ++%*LG::0:-1: ++%LG:-INFINITY:1:9:-inf: ++%*LG:-INFINITY:0:9: ++%LG:-0XF.FFFFFFFFFFFFFFFP+16380:1:27:-0x1.fffffffffffffffep16383: ++%*LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%LG:-0X7.FFFFFFFFFFFFFFF8P16381:1:27:-0x1.fffffffffffffffep16383: ++%*LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%LG:-0X2.3456789ABCDEF01P+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*LG:-0X2.3456789ABCDEF01P+12345:0:27: ++%LG:-0X2.3456789ABCDEF01P012345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*LG:-0X2.3456789ABCDEF01P012345:0:27: ++%LG:-0X8P-16385:1:11:-0x1p-16382: ++%*LG:-0X8P-16385:0:11: ++%LG:-0X0P+0:1:7:-0x0: ++%*LG:-0X0P+0:0:7: ++%LG:-0X0P0:1:6:-0x0: ++%*LG:-0X0P0:0:6: ++%LG:-NAN(09A_Zaz):1:13:-nan: ++%*LG:-NAN(09A_Zaz):0:13: ++%LG:-NAN():1:6:-nan: ++%*LG:-NAN():0:6: ++%LG:NAN():1:5:nan: ++%*LG:NAN():0:5: ++%LG:NAN(09A_Zaz):1:12:nan: ++%*LG:NAN(09A_Zaz):0:12: ++%LG:0X0P0:1:5:0x0: ++%*LG:0X0P0:0:5: ++%LG:0X0P+0:1:6:0x0: ++%*LG:0X0P+0:0:6: ++%LG:0X8P-16385:1:10:0x1p-16382: ++%*LG:0X8P-16385:0:10: ++%LG:0X2.3456789ABCDEF01P012345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*LG:0X2.3456789ABCDEF01P012345:0:26: ++%LG:0X2.3456789ABCDEF01P+12345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*LG:0X2.3456789ABCDEF01P+12345:0:26: ++%LG:0X7.FFFFFFFFFFFFFFF8P16381:1:26:0x1.fffffffffffffffep16383: ++%*LG:0X7.FFFFFFFFFFFFFFF8P16381:0:26: ++%LG:0XF.FFFFFFFFFFFFFFFP+16380:1:26:0x1.fffffffffffffffep16383: ++%*LG:0XF.FFFFFFFFFFFFFFFP+16380:0:26: ++%LG:INFINITY:1:8:inf: ++%*LG:INFINITY:0:8: ++%LG:+NAN():1:6:nan: ++%*LG:+NAN():0:6: ++%LG:+NAN(09A_Zaz):1:13:nan: ++%*LG:+NAN(09A_Zaz):0:13: ++%LG:+0X0P0:1:6:0x0: ++%*LG:+0X0P0:0:6: ++%LG:+0X0P+0:1:7:0x0: ++%*LG:+0X0P+0:0:7: ++%LG:+0X8P-16385:1:11:0x1p-16382: ++%*LG:+0X8P-16385:0:11: ++%LG:+0X2.3456789ABCDEF01P012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*LG:+0X2.3456789ABCDEF01P012345:0:27: ++%LG:+0X2.3456789ABCDEF01P+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*LG:+0X2.3456789ABCDEF01P+12345:0:27: ++%LG:+0X7.FFFFFFFFFFFFFFF8P16381:1:27:0x1.fffffffffffffffep16383: ++%*LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%LG:+0XF.FFFFFFFFFFFFFFFP+16380:1:27:0x1.fffffffffffffffep16383: ++%*LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%LG:+INFINITY:1:9:inf: ++%*LG:+INFINITY:0:9: ++%1LG::0:-1: ++%*1LG::0:-1: ++%1LG:-INFINITY:0:-1: ++%*1LG:-INFINITY:0:-1: ++%1LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%*1LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%1LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++%*1LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++%1LG:-0X2.3456789ABCDEF01P+12345:0:-1: ++%*1LG:-0X2.3456789ABCDEF01P+12345:0:-1: ++%1LG:-0X2.3456789ABCDEF01P012345:0:-1: ++%*1LG:-0X2.3456789ABCDEF01P012345:0:-1: ++%1LG:-0X8P-16385:0:-1: ++%*1LG:-0X8P-16385:0:-1: ++%1LG:-0X0P+0:0:-1: ++%*1LG:-0X0P+0:0:-1: ++%1LG:-0X0P0:0:-1: ++%*1LG:-0X0P0:0:-1: ++%1LG:-NAN(09A_Zaz):0:-1: ++%*1LG:-NAN(09A_Zaz):0:-1: ++%1LG:-NAN():0:-1: ++%*1LG:-NAN():0:-1: ++%1LG:NAN():0:-1: ++%*1LG:NAN():0:-1: ++%1LG:NAN(09A_Zaz):0:-1: ++%*1LG:NAN(09A_Zaz):0:-1: ++%1LG:0X0P0:1:1:0x0: ++%*1LG:0X0P0:0:1: ++%1LG:0X0P+0:1:1:0x0: ++%*1LG:0X0P+0:0:1: ++%1LG:0X8P-16385:1:1:0x0: ++%*1LG:0X8P-16385:0:1: ++%1LG:0X2.3456789ABCDEF01P012345:1:1:0x0: ++%*1LG:0X2.3456789ABCDEF01P012345:0:1: ++%1LG:0X2.3456789ABCDEF01P+12345:1:1:0x0: ++%*1LG:0X2.3456789ABCDEF01P+12345:0:1: ++%1LG:0X7.FFFFFFFFFFFFFFF8P16381:1:1:0x0: ++%*1LG:0X7.FFFFFFFFFFFFFFF8P16381:0:1: ++%1LG:0XF.FFFFFFFFFFFFFFFP+16380:1:1:0x0: ++%*1LG:0XF.FFFFFFFFFFFFFFFP+16380:0:1: ++%1LG:INFINITY:0:-1: ++%*1LG:INFINITY:0:-1: ++%1LG:+NAN():0:-1: ++%*1LG:+NAN():0:-1: ++%1LG:+NAN(09A_Zaz):0:-1: ++%*1LG:+NAN(09A_Zaz):0:-1: ++%1LG:+0X0P0:0:-1: ++%*1LG:+0X0P0:0:-1: ++%1LG:+0X0P+0:0:-1: ++%*1LG:+0X0P+0:0:-1: ++%1LG:+0X8P-16385:0:-1: ++%*1LG:+0X8P-16385:0:-1: ++%1LG:+0X2.3456789ABCDEF01P012345:0:-1: ++%*1LG:+0X2.3456789ABCDEF01P012345:0:-1: ++%1LG:+0X2.3456789ABCDEF01P+12345:0:-1: ++%*1LG:+0X2.3456789ABCDEF01P+12345:0:-1: ++%1LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++%*1LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++%1LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%*1LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%1LG:+INFINITY:0:-1: ++%*1LG:+INFINITY:0:-1: ++%2LG::0:-1: ++%*2LG::0:-1: ++%2LG:-INFINITY:0:-1: ++%*2LG:-INFINITY:0:-1: ++%2LG:-0XF.FFFFFFFFFFFFFFFP+16380:1:2:-0x0: ++%*2LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:2: ++%2LG:-0X7.FFFFFFFFFFFFFFF8P16381:1:2:-0x0: ++%*2LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:2: ++%2LG:-0X2.3456789ABCDEF01P+12345:1:2:-0x0: ++%*2LG:-0X2.3456789ABCDEF01P+12345:0:2: ++%2LG:-0X2.3456789ABCDEF01P012345:1:2:-0x0: ++%*2LG:-0X2.3456789ABCDEF01P012345:0:2: ++%2LG:-0X8P-16385:1:2:-0x0: ++%*2LG:-0X8P-16385:0:2: ++%2LG:-0X0P+0:1:2:-0x0: ++%*2LG:-0X0P+0:0:2: ++%2LG:-0X0P0:1:2:-0x0: ++%*2LG:-0X0P0:0:2: ++%2LG:-NAN(09A_Zaz):0:-1: ++%*2LG:-NAN(09A_Zaz):0:-1: ++%2LG:-NAN():0:-1: ++%*2LG:-NAN():0:-1: ++%2LG:NAN():0:-1: ++%*2LG:NAN():0:-1: ++%2LG:NAN(09A_Zaz):0:-1: ++%*2LG:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LG:0X0P0:0:-1: ++# BZ12701 %*2LG:0X0P0:0:-1: ++# BZ12701 %2LG:0X0P+0:0:-1: ++# BZ12701 %*2LG:0X0P+0:0:-1: ++# BZ12701 %2LG:0X8P-16385:0:-1: ++# BZ12701 %*2LG:0X8P-16385:0:-1: ++# BZ12701 %2LG:0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %*2LG:0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %2LG:0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*2LG:0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %2LG:0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*2LG:0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %2LG:0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*2LG:0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%2LG:INFINITY:0:-1: ++%*2LG:INFINITY:0:-1: ++%2LG:+NAN():0:-1: ++%*2LG:+NAN():0:-1: ++%2LG:+NAN(09A_Zaz):0:-1: ++%*2LG:+NAN(09A_Zaz):0:-1: ++%2LG:+0X0P0:1:2:0x0: ++%*2LG:+0X0P0:0:2: ++%2LG:+0X0P+0:1:2:0x0: ++%*2LG:+0X0P+0:0:2: ++%2LG:+0X8P-16385:1:2:0x0: ++%*2LG:+0X8P-16385:0:2: ++%2LG:+0X2.3456789ABCDEF01P012345:1:2:0x0: ++%*2LG:+0X2.3456789ABCDEF01P012345:0:2: ++%2LG:+0X2.3456789ABCDEF01P+12345:1:2:0x0: ++%*2LG:+0X2.3456789ABCDEF01P+12345:0:2: ++%2LG:+0X7.FFFFFFFFFFFFFFF8P16381:1:2:0x0: ++%*2LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:2: ++%2LG:+0XF.FFFFFFFFFFFFFFFP+16380:1:2:0x0: ++%*2LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:2: ++%2LG:+INFINITY:0:-1: ++%*2LG:+INFINITY:0:-1: ++%3LG::0:-1: ++%*3LG::0:-1: ++%3LG:-INFINITY:0:-1: ++%*3LG:-INFINITY:0:-1: ++# BZ12701 %3LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*3LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %3LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*3LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %3LG:-0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*3LG:-0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %3LG:-0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %*3LG:-0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %3LG:-0X8P-16385:0:-1: ++# BZ12701 %*3LG:-0X8P-16385:0:-1: ++# BZ12701 %3LG:-0X0P+0:0:-1: ++# BZ12701 %*3LG:-0X0P+0:0:-1: ++# BZ12701 %3LG:-0X0P0:0:-1: ++# BZ12701 %*3LG:-0X0P0:0:-1: ++%3LG:-NAN(09A_Zaz):0:-1: ++%*3LG:-NAN(09A_Zaz):0:-1: ++%3LG:-NAN():0:-1: ++%*3LG:-NAN():0:-1: ++%3LG:NAN():1:3:nan: ++%*3LG:NAN():0:3: ++%3LG:NAN(09A_Zaz):1:3:nan: ++%*3LG:NAN(09A_Zaz):0:3: ++%3LG:0X0P0:1:3:0x0: ++%*3LG:0X0P0:0:3: ++%3LG:0X0P+0:1:3:0x0: ++%*3LG:0X0P+0:0:3: ++%3LG:0X8P-16385:1:3:0x1p3: ++%*3LG:0X8P-16385:0:3: ++%3LG:0X2.3456789ABCDEF01P012345:1:3:0x1p1: ++%*3LG:0X2.3456789ABCDEF01P012345:0:3: ++%3LG:0X2.3456789ABCDEF01P+12345:1:3:0x1p1: ++%*3LG:0X2.3456789ABCDEF01P+12345:0:3: ++%3LG:0X7.FFFFFFFFFFFFFFF8P16381:1:3:0x1.cp2: ++%*3LG:0X7.FFFFFFFFFFFFFFF8P16381:0:3: ++%3LG:0XF.FFFFFFFFFFFFFFFP+16380:1:3:0x1.ep3: ++%*3LG:0XF.FFFFFFFFFFFFFFFP+16380:0:3: ++%3LG:INFINITY:1:3:inf: ++%*3LG:INFINITY:0:3: ++%3LG:+NAN():0:-1: ++%*3LG:+NAN():0:-1: ++%3LG:+NAN(09A_Zaz):0:-1: ++%*3LG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LG:+0X0P0:0:-1: ++# BZ12701 %*3LG:+0X0P0:0:-1: ++# BZ12701 %3LG:+0X0P+0:0:-1: ++# BZ12701 %*3LG:+0X0P+0:0:-1: ++# BZ12701 %3LG:+0X8P-16385:0:-1: ++# BZ12701 %*3LG:+0X8P-16385:0:-1: ++# BZ12701 %3LG:+0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %*3LG:+0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %3LG:+0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*3LG:+0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %3LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*3LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %3LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*3LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%3LG:+INFINITY:0:-1: ++%*3LG:+INFINITY:0:-1: ++%4LG::0:-1: ++%*4LG::0:-1: ++%4LG:-INFINITY:1:4:-inf: ++%*4LG:-INFINITY:0:4: ++%4LG:-0XF.FFFFFFFFFFFFFFFP+16380:1:4:-0x1.ep3: ++%*4LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:4: ++%4LG:-0X7.FFFFFFFFFFFFFFF8P16381:1:4:-0x1.cp2: ++%*4LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:4: ++%4LG:-0X2.3456789ABCDEF01P+12345:1:4:-0x1p1: ++%*4LG:-0X2.3456789ABCDEF01P+12345:0:4: ++%4LG:-0X2.3456789ABCDEF01P012345:1:4:-0x1p1: ++%*4LG:-0X2.3456789ABCDEF01P012345:0:4: ++%4LG:-0X8P-16385:1:4:-0x1p3: ++%*4LG:-0X8P-16385:0:4: ++%4LG:-0X0P+0:1:4:-0x0: ++%*4LG:-0X0P+0:0:4: ++%4LG:-0X0P0:1:4:-0x0: ++%*4LG:-0X0P0:0:4: ++%4LG:-NAN(09A_Zaz):1:4:-nan: ++%*4LG:-NAN(09A_Zaz):0:4: ++%4LG:-NAN():1:4:-nan: ++%*4LG:-NAN():0:4: ++%4LG:NAN():0:-1: ++%*4LG:NAN():0:-1: ++%4LG:NAN(09A_Zaz):0:-1: ++%*4LG:NAN(09A_Zaz):0:-1: ++# BZ12701 %4LG:0X0P0:0:-1: ++# BZ12701 %*4LG:0X0P0:0:-1: ++# BZ12701 %4LG:0X0P+0:0:-1: ++# BZ12701 %*4LG:0X0P+0:0:-1: ++# BZ12701 %4LG:0X8P-16385:0:-1: ++# BZ12701 %*4LG:0X8P-16385:0:-1: ++%4LG:0X2.3456789ABCDEF01P012345:1:4:0x1p1: ++%*4LG:0X2.3456789ABCDEF01P012345:0:4: ++%4LG:0X2.3456789ABCDEF01P+12345:1:4:0x1p1: ++%*4LG:0X2.3456789ABCDEF01P+12345:0:4: ++%4LG:0X7.FFFFFFFFFFFFFFF8P16381:1:4:0x1.cp2: ++%*4LG:0X7.FFFFFFFFFFFFFFF8P16381:0:4: ++%4LG:0XF.FFFFFFFFFFFFFFFP+16380:1:4:0x1.ep3: ++%*4LG:0XF.FFFFFFFFFFFFFFFP+16380:0:4: ++%4LG:INFINITY:0:-1: ++%*4LG:INFINITY:0:-1: ++%4LG:+NAN():1:4:nan: ++%*4LG:+NAN():0:4: ++%4LG:+NAN(09A_Zaz):1:4:nan: ++%*4LG:+NAN(09A_Zaz):0:4: ++%4LG:+0X0P0:1:4:0x0: ++%*4LG:+0X0P0:0:4: ++%4LG:+0X0P+0:1:4:0x0: ++%*4LG:+0X0P+0:0:4: ++%4LG:+0X8P-16385:1:4:0x1p3: ++%*4LG:+0X8P-16385:0:4: ++%4LG:+0X2.3456789ABCDEF01P012345:1:4:0x1p1: ++%*4LG:+0X2.3456789ABCDEF01P012345:0:4: ++%4LG:+0X2.3456789ABCDEF01P+12345:1:4:0x1p1: ++%*4LG:+0X2.3456789ABCDEF01P+12345:0:4: ++%4LG:+0X7.FFFFFFFFFFFFFFF8P16381:1:4:0x1.cp2: ++%*4LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:4: ++%4LG:+0XF.FFFFFFFFFFFFFFFP+16380:1:4:0x1.ep3: ++%*4LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:4: ++%4LG:+INFINITY:1:4:inf: ++%*4LG:+INFINITY:0:4: ++%5LG::0:-1: ++%*5LG::0:-1: ++%5LG:-INFINITY:0:-1: ++%*5LG:-INFINITY:0:-1: ++%5LG:-0XF.FFFFFFFFFFFFFFFP+16380:1:5:-0x1.ep3: ++%*5LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:5: ++%5LG:-0X7.FFFFFFFFFFFFFFF8P16381:1:5:-0x1.cp2: ++%*5LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:5: ++%5LG:-0X2.3456789ABCDEF01P+12345:1:5:-0x1p1: ++%*5LG:-0X2.3456789ABCDEF01P+12345:0:5: ++%5LG:-0X2.3456789ABCDEF01P012345:1:5:-0x1p1: ++%*5LG:-0X2.3456789ABCDEF01P012345:0:5: ++# BZ12701 %5LG:-0X8P-16385:0:-1: ++# BZ12701 %*5LG:-0X8P-16385:0:-1: ++# BZ12701 %5LG:-0X0P+0:0:-1: ++# BZ12701 %*5LG:-0X0P+0:0:-1: ++# BZ12701 %5LG:-0X0P0:0:-1: ++# BZ12701 %*5LG:-0X0P0:0:-1: ++%5LG:-NAN(09A_Zaz):0:-1: ++%*5LG:-NAN(09A_Zaz):0:-1: ++%5LG:-NAN():0:-1: ++%*5LG:-NAN():0:-1: ++%5LG:NAN():1:5:nan: ++%*5LG:NAN():0:5: ++%5LG:NAN(09A_Zaz):0:-1: ++%*5LG:NAN(09A_Zaz):0:-1: ++%5LG:0X0P0:1:5:0x0: ++%*5LG:0X0P0:0:5: ++# BZ12701 %5LG:0X0P+0:0:-1: ++# BZ12701 %*5LG:0X0P+0:0:-1: ++# BZ12701 %5LG:0X8P-16385:0:-1: ++# BZ12701 %*5LG:0X8P-16385:0:-1: ++%5LG:0X2.3456789ABCDEF01P012345:1:5:0x1.18p1: ++%*5LG:0X2.3456789ABCDEF01P012345:0:5: ++%5LG:0X2.3456789ABCDEF01P+12345:1:5:0x1.18p1: ++%*5LG:0X2.3456789ABCDEF01P+12345:0:5: ++%5LG:0X7.FFFFFFFFFFFFFFF8P16381:1:5:0x1.fcp2: ++%*5LG:0X7.FFFFFFFFFFFFFFF8P16381:0:5: ++%5LG:0XF.FFFFFFFFFFFFFFFP+16380:1:5:0x1.fep3: ++%*5LG:0XF.FFFFFFFFFFFFFFFP+16380:0:5: ++%5LG:INFINITY:0:-1: ++%*5LG:INFINITY:0:-1: ++%5LG:+NAN():0:-1: ++%*5LG:+NAN():0:-1: ++%5LG:+NAN(09A_Zaz):0:-1: ++%*5LG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5LG:+0X0P0:0:-1: ++# BZ12701 %*5LG:+0X0P0:0:-1: ++# BZ12701 %5LG:+0X0P+0:0:-1: ++# BZ12701 %*5LG:+0X0P+0:0:-1: ++# BZ12701 %5LG:+0X8P-16385:0:-1: ++# BZ12701 %*5LG:+0X8P-16385:0:-1: ++%5LG:+0X2.3456789ABCDEF01P012345:1:5:0x1p1: ++%*5LG:+0X2.3456789ABCDEF01P012345:0:5: ++%5LG:+0X2.3456789ABCDEF01P+12345:1:5:0x1p1: ++%*5LG:+0X2.3456789ABCDEF01P+12345:0:5: ++%5LG:+0X7.FFFFFFFFFFFFFFF8P16381:1:5:0x1.cp2: ++%*5LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:5: ++%5LG:+0XF.FFFFFFFFFFFFFFFP+16380:1:5:0x1.ep3: ++%*5LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:5: ++%5LG:+INFINITY:0:-1: ++%*5LG:+INFINITY:0:-1: ++%6LG::0:-1: ++%*6LG::0:-1: ++%6LG:-INFINITY:0:-1: ++%*6LG:-INFINITY:0:-1: ++%6LG:-0XF.FFFFFFFFFFFFFFFP+16380:1:6:-0x1.fep3: ++%*6LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%6LG:-0X7.FFFFFFFFFFFFFFF8P16381:1:6:-0x1.fcp2: ++%*6LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%6LG:-0X2.3456789ABCDEF01P+12345:1:6:-0x1.18p1: ++%*6LG:-0X2.3456789ABCDEF01P+12345:0:6: ++%6LG:-0X2.3456789ABCDEF01P012345:1:6:-0x1.18p1: ++%*6LG:-0X2.3456789ABCDEF01P012345:0:6: ++# BZ12701 %6LG:-0X8P-16385:0:-1: ++# BZ12701 %*6LG:-0X8P-16385:0:-1: ++# BZ12701 %6LG:-0X0P+0:0:-1: ++# BZ12701 %*6LG:-0X0P+0:0:-1: ++%6LG:-0X0P0:1:6:-0x0: ++%*6LG:-0X0P0:0:6: ++%6LG:-NAN(09A_Zaz):0:-1: ++%*6LG:-NAN(09A_Zaz):0:-1: ++%6LG:-NAN():1:6:-nan: ++%*6LG:-NAN():0:6: ++%6LG:NAN():1:5:nan: ++%*6LG:NAN():0:5: ++%6LG:NAN(09A_Zaz):0:-1: ++%*6LG:NAN(09A_Zaz):0:-1: ++%6LG:0X0P0:1:5:0x0: ++%*6LG:0X0P0:0:5: ++%6LG:0X0P+0:1:6:0x0: ++%*6LG:0X0P+0:0:6: ++%6LG:0X8P-16385:1:6:0x1p2: ++%*6LG:0X8P-16385:0:6: ++%6LG:0X2.3456789ABCDEF01P012345:1:6:0x1.1ap1: ++%*6LG:0X2.3456789ABCDEF01P012345:0:6: ++%6LG:0X2.3456789ABCDEF01P+12345:1:6:0x1.1ap1: ++%*6LG:0X2.3456789ABCDEF01P+12345:0:6: ++%6LG:0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.ffcp2: ++%*6LG:0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%6LG:0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.ffep3: ++%*6LG:0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%6LG:INFINITY:0:-1: ++%*6LG:INFINITY:0:-1: ++%6LG:+NAN():1:6:nan: ++%*6LG:+NAN():0:6: ++%6LG:+NAN(09A_Zaz):0:-1: ++%*6LG:+NAN(09A_Zaz):0:-1: ++%6LG:+0X0P0:1:6:0x0: ++%*6LG:+0X0P0:0:6: ++# BZ12701 %6LG:+0X0P+0:0:-1: ++# BZ12701 %*6LG:+0X0P+0:0:-1: ++# BZ12701 %6LG:+0X8P-16385:0:-1: ++# BZ12701 %*6LG:+0X8P-16385:0:-1: ++%6LG:+0X2.3456789ABCDEF01P012345:1:6:0x1.18p1: ++%*6LG:+0X2.3456789ABCDEF01P012345:0:6: ++%6LG:+0X2.3456789ABCDEF01P+12345:1:6:0x1.18p1: ++%*6LG:+0X2.3456789ABCDEF01P+12345:0:6: ++%6LG:+0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.fcp2: ++%*6LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%6LG:+0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.fep3: ++%*6LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%6LG:+INFINITY:0:-1: ++%*6LG:+INFINITY:0:-1: ++%22LG::0:-1: ++%*22LG::0:-1: ++%22LG:-INFINITY:1:9:-inf: ++%*22LG:-INFINITY:0:9: ++# BZ12701 %22LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*22LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %22LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*22LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %22LG:-0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*22LG:-0X2.3456789ABCDEF01P+12345:0:-1: ++%22LG:-0X2.3456789ABCDEF01P012345:1:22:-0x1.1a2b3c4d5e6f7808p1: ++%*22LG:-0X2.3456789ABCDEF01P012345:0:22: ++%22LG:-0X8P-16385:1:11:-0x1p-16382: ++%*22LG:-0X8P-16385:0:11: ++%22LG:-0X0P+0:1:7:-0x0: ++%*22LG:-0X0P+0:0:7: ++%22LG:-0X0P0:1:6:-0x0: ++%*22LG:-0X0P0:0:6: ++%22LG:-NAN(09A_Zaz):1:13:-nan: ++%*22LG:-NAN(09A_Zaz):0:13: ++%22LG:-NAN():1:6:-nan: ++%*22LG:-NAN():0:6: ++%22LG:NAN():1:5:nan: ++%*22LG:NAN():0:5: ++%22LG:NAN(09A_Zaz):1:12:nan: ++%*22LG:NAN(09A_Zaz):0:12: ++%22LG:0X0P0:1:5:0x0: ++%*22LG:0X0P0:0:5: ++%22LG:0X0P+0:1:6:0x0: ++%*22LG:0X0P+0:0:6: ++%22LG:0X8P-16385:1:10:0x1p-16382: ++%*22LG:0X8P-16385:0:10: ++%22LG:0X2.3456789ABCDEF01P012345:1:22:0x1.1a2b3c4d5e6f7808p2: ++%*22LG:0X2.3456789ABCDEF01P012345:0:22: ++%22LG:0X2.3456789ABCDEF01P+12345:1:22:0x1.1a2b3c4d5e6f7808p2: ++%*22LG:0X2.3456789ABCDEF01P+12345:0:22: ++%22LG:0X7.FFFFFFFFFFFFFFF8P16381:1:22:0x1.fffffffffffffffep3: ++%*22LG:0X7.FFFFFFFFFFFFFFF8P16381:0:22: ++%22LG:0XF.FFFFFFFFFFFFFFFP+16380:1:22:0x1.fffffffffffffffep4: ++%*22LG:0XF.FFFFFFFFFFFFFFFP+16380:0:22: ++%22LG:INFINITY:1:8:inf: ++%*22LG:INFINITY:0:8: ++%22LG:+NAN():1:6:nan: ++%*22LG:+NAN():0:6: ++%22LG:+NAN(09A_Zaz):1:13:nan: ++%*22LG:+NAN(09A_Zaz):0:13: ++%22LG:+0X0P0:1:6:0x0: ++%*22LG:+0X0P0:0:6: ++%22LG:+0X0P+0:1:7:0x0: ++%*22LG:+0X0P+0:0:7: ++%22LG:+0X8P-16385:1:11:0x1p-16382: ++%*22LG:+0X8P-16385:0:11: ++%22LG:+0X2.3456789ABCDEF01P012345:1:22:0x1.1a2b3c4d5e6f7808p1: ++%*22LG:+0X2.3456789ABCDEF01P012345:0:22: ++# BZ12701 %22LG:+0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*22LG:+0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %22LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*22LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %22LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*22LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%22LG:+INFINITY:1:9:inf: ++%*22LG:+INFINITY:0:9: ++%37LG::0:-1: ++%*37LG::0:-1: ++%37LG:-INFINITY:1:9:-inf: ++%*37LG:-INFINITY:0:9: ++%37LG:-0XF.FFFFFFFFFFFFFFFP+16380:1:27:-0x1.fffffffffffffffep16383: ++%*37LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%37LG:-0X7.FFFFFFFFFFFFFFF8P16381:1:27:-0x1.fffffffffffffffep16383: ++%*37LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%37LG:-0X2.3456789ABCDEF01P+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*37LG:-0X2.3456789ABCDEF01P+12345:0:27: ++%37LG:-0X2.3456789ABCDEF01P012345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*37LG:-0X2.3456789ABCDEF01P012345:0:27: ++%37LG:-0X8P-16385:1:11:-0x1p-16382: ++%*37LG:-0X8P-16385:0:11: ++%37LG:-0X0P+0:1:7:-0x0: ++%*37LG:-0X0P+0:0:7: ++%37LG:-0X0P0:1:6:-0x0: ++%*37LG:-0X0P0:0:6: ++%37LG:-NAN(09A_Zaz):1:13:-nan: ++%*37LG:-NAN(09A_Zaz):0:13: ++%37LG:-NAN():1:6:-nan: ++%*37LG:-NAN():0:6: ++%37LG:NAN():1:5:nan: ++%*37LG:NAN():0:5: ++%37LG:NAN(09A_Zaz):1:12:nan: ++%*37LG:NAN(09A_Zaz):0:12: ++%37LG:0X0P0:1:5:0x0: ++%*37LG:0X0P0:0:5: ++%37LG:0X0P+0:1:6:0x0: ++%*37LG:0X0P+0:0:6: ++%37LG:0X8P-16385:1:10:0x1p-16382: ++%*37LG:0X8P-16385:0:10: ++%37LG:0X2.3456789ABCDEF01P012345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*37LG:0X2.3456789ABCDEF01P012345:0:26: ++%37LG:0X2.3456789ABCDEF01P+12345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*37LG:0X2.3456789ABCDEF01P+12345:0:26: ++%37LG:0X7.FFFFFFFFFFFFFFF8P16381:1:26:0x1.fffffffffffffffep16383: ++%*37LG:0X7.FFFFFFFFFFFFFFF8P16381:0:26: ++%37LG:0XF.FFFFFFFFFFFFFFFP+16380:1:26:0x1.fffffffffffffffep16383: ++%*37LG:0XF.FFFFFFFFFFFFFFFP+16380:0:26: ++%37LG:INFINITY:1:8:inf: ++%*37LG:INFINITY:0:8: ++%37LG:+NAN():1:6:nan: ++%*37LG:+NAN():0:6: ++%37LG:+NAN(09A_Zaz):1:13:nan: ++%*37LG:+NAN(09A_Zaz):0:13: ++%37LG:+0X0P0:1:6:0x0: ++%*37LG:+0X0P0:0:6: ++%37LG:+0X0P+0:1:7:0x0: ++%*37LG:+0X0P+0:0:7: ++%37LG:+0X8P-16385:1:11:0x1p-16382: ++%*37LG:+0X8P-16385:0:11: ++%37LG:+0X2.3456789ABCDEF01P012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37LG:+0X2.3456789ABCDEF01P012345:0:27: ++%37LG:+0X2.3456789ABCDEF01P+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37LG:+0X2.3456789ABCDEF01P+12345:0:27: ++%37LG:+0X7.FFFFFFFFFFFFFFF8P16381:1:27:0x1.fffffffffffffffep16383: ++%*37LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%37LG:+0XF.FFFFFFFFFFFFFFFP+16380:1:27:0x1.fffffffffffffffep16383: ++%*37LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%37LG:+INFINITY:1:9:inf: ++%*37LG:+INFINITY:0:9: ++%5LG: :0:-1: ++%*5LG: :0:-1: ++%5LG: -INFINITY:0:-1: ++%*5LG: -INFINITY:0:-1: ++%5LG: -0XF.FFFFFFFFFFFFFFFP+16380:1:6:-0x1.ep3: ++%*5LG: -0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%5LG: -0X7.FFFFFFFFFFFFFFF8P16381:1:6:-0x1.cp2: ++%*5LG: -0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%5LG: -0X2.3456789ABCDEF01P+12345:1:6:-0x1p1: ++%*5LG: -0X2.3456789ABCDEF01P+12345:0:6: ++%5LG: -0X2.3456789ABCDEF01P012345:1:6:-0x1p1: ++%*5LG: -0X2.3456789ABCDEF01P012345:0:6: ++# BZ12701 %5LG: -0X8P-16385:0:-1: ++# BZ12701 %*5LG: -0X8P-16385:0:-1: ++# BZ12701 %5LG: -0X0P+0:0:-1: ++# BZ12701 %*5LG: -0X0P+0:0:-1: ++# BZ12701 %5LG: -0X0P0:0:-1: ++# BZ12701 %*5LG: -0X0P0:0:-1: ++%5LG: -NAN(09A_Zaz):0:-1: ++%*5LG: -NAN(09A_Zaz):0:-1: ++%5LG: -NAN():0:-1: ++%*5LG: -NAN():0:-1: ++%5LG: NAN():1:6:nan: ++%*5LG: NAN():0:6: ++%5LG: NAN(09A_Zaz):0:-1: ++%*5LG: NAN(09A_Zaz):0:-1: ++%5LG: 0X0P0:1:6:0x0: ++%*5LG: 0X0P0:0:6: ++# BZ12701 %5LG: 0X0P+0:0:-1: ++# BZ12701 %*5LG: 0X0P+0:0:-1: ++# BZ12701 %5LG: 0X8P-16385:0:-1: ++# BZ12701 %*5LG: 0X8P-16385:0:-1: ++%5LG: 0X2.3456789ABCDEF01P012345:1:6:0x1.18p1: ++%*5LG: 0X2.3456789ABCDEF01P012345:0:6: ++%5LG: 0X2.3456789ABCDEF01P+12345:1:6:0x1.18p1: ++%*5LG: 0X2.3456789ABCDEF01P+12345:0:6: ++%5LG: 0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.fcp2: ++%*5LG: 0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%5LG: 0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.fep3: ++%*5LG: 0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%5LG: INFINITY:0:-1: ++%*5LG: INFINITY:0:-1: ++%5LG: +NAN():0:-1: ++%*5LG: +NAN():0:-1: ++%5LG: +NAN(09A_Zaz):0:-1: ++%*5LG: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5LG: +0X0P0:0:-1: ++# BZ12701 %*5LG: +0X0P0:0:-1: ++# BZ12701 %5LG: +0X0P+0:0:-1: ++# BZ12701 %*5LG: +0X0P+0:0:-1: ++# BZ12701 %5LG: +0X8P-16385:0:-1: ++# BZ12701 %*5LG: +0X8P-16385:0:-1: ++%5LG: +0X2.3456789ABCDEF01P012345:1:6:0x1p1: ++%*5LG: +0X2.3456789ABCDEF01P012345:0:6: ++%5LG: +0X2.3456789ABCDEF01P+12345:1:6:0x1p1: ++%*5LG: +0X2.3456789ABCDEF01P+12345:0:6: ++%5LG: +0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.cp2: ++%*5LG: +0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%5LG: +0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.ep3: ++%*5LG: +0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%5LG: +INFINITY:0:-1: ++%*5LG: +INFINITY:0:-1: ++%37LG: :0:-1: ++%*37LG: :0:-1: ++%37LG: -INFINITY:1:10:-inf: ++%*37LG: -INFINITY:0:10: ++%37LG: -0XF.FFFFFFFFFFFFFFFP+16380:1:28:-0x1.fffffffffffffffep16383: ++%*37LG: -0XF.FFFFFFFFFFFFFFFP+16380:0:28: ++%37LG: -0X7.FFFFFFFFFFFFFFF8P16381:1:28:-0x1.fffffffffffffffep16383: ++%*37LG: -0X7.FFFFFFFFFFFFFFF8P16381:0:28: ++%37LG: -0X2.3456789ABCDEF01P+12345:1:28:-0x1.1a2b3c4d5e6f7808p12346: ++%*37LG: -0X2.3456789ABCDEF01P+12345:0:28: ++%37LG: -0X2.3456789ABCDEF01P012345:1:28:-0x1.1a2b3c4d5e6f7808p12346: ++%*37LG: -0X2.3456789ABCDEF01P012345:0:28: ++%37LG: -0X8P-16385:1:12:-0x1p-16382: ++%*37LG: -0X8P-16385:0:12: ++%37LG: -0X0P+0:1:8:-0x0: ++%*37LG: -0X0P+0:0:8: ++%37LG: -0X0P0:1:7:-0x0: ++%*37LG: -0X0P0:0:7: ++%37LG: -NAN(09A_Zaz):1:14:-nan: ++%*37LG: -NAN(09A_Zaz):0:14: ++%37LG: -NAN():1:7:-nan: ++%*37LG: -NAN():0:7: ++%37LG: NAN():1:6:nan: ++%*37LG: NAN():0:6: ++%37LG: NAN(09A_Zaz):1:13:nan: ++%*37LG: NAN(09A_Zaz):0:13: ++%37LG: 0X0P0:1:6:0x0: ++%*37LG: 0X0P0:0:6: ++%37LG: 0X0P+0:1:7:0x0: ++%*37LG: 0X0P+0:0:7: ++%37LG: 0X8P-16385:1:11:0x1p-16382: ++%*37LG: 0X8P-16385:0:11: ++%37LG: 0X2.3456789ABCDEF01P012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37LG: 0X2.3456789ABCDEF01P012345:0:27: ++%37LG: 0X2.3456789ABCDEF01P+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37LG: 0X2.3456789ABCDEF01P+12345:0:27: ++%37LG: 0X7.FFFFFFFFFFFFFFF8P16381:1:27:0x1.fffffffffffffffep16383: ++%*37LG: 0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%37LG: 0XF.FFFFFFFFFFFFFFFP+16380:1:27:0x1.fffffffffffffffep16383: ++%*37LG: 0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%37LG: INFINITY:1:9:inf: ++%*37LG: INFINITY:0:9: ++%37LG: +NAN():1:7:nan: ++%*37LG: +NAN():0:7: ++%37LG: +NAN(09A_Zaz):1:14:nan: ++%*37LG: +NAN(09A_Zaz):0:14: ++%37LG: +0X0P0:1:7:0x0: ++%*37LG: +0X0P0:0:7: ++%37LG: +0X0P+0:1:8:0x0: ++%*37LG: +0X0P+0:0:8: ++%37LG: +0X8P-16385:1:12:0x1p-16382: ++%*37LG: +0X8P-16385:0:12: ++%37LG: +0X2.3456789ABCDEF01P012345:1:28:0x1.1a2b3c4d5e6f7808p12346: ++%*37LG: +0X2.3456789ABCDEF01P012345:0:28: ++%37LG: +0X2.3456789ABCDEF01P+12345:1:28:0x1.1a2b3c4d5e6f7808p12346: ++%*37LG: +0X2.3456789ABCDEF01P+12345:0:28: ++%37LG: +0X7.FFFFFFFFFFFFFFF8P16381:1:28:0x1.fffffffffffffffep16383: ++%*37LG: +0X7.FFFFFFFFFFFFFFF8P16381:0:28: ++%37LG: +0XF.FFFFFFFFFFFFFFFP+16380:1:28:0x1.fffffffffffffffep16383: ++%*37LG: +0XF.FFFFFFFFFFFFFFFP+16380:0:28: ++%37LG: +INFINITY:1:10:inf: ++%*37LG: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-skeleton-ldouble.c b/sysdeps/ieee754/ldbl-96/tst-scanf-format-skeleton-ldouble.c +new file mode 100644 +index 0000000000000000..7e8c1d66a64e772e +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-skeleton-ldouble.c +@@ -0,0 +1,33 @@ ++/* Test skeleton for formatted scanf input for ldbl-96 conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++#undef compare_real ++#define compare_real(x, y) \ ++({ \ ++ ieee_long_double_shape_type ux = { .value = x }, uy = { .value = y }; \ ++ (ux.parts.lsw == uy.parts.lsw && ux.parts.msw == uy.parts.msw \ ++ && ux.parts.sign_exponent == uy.parts.sign_exponent); \ ++}) ++ ++typedef long double type_t; ++ ++#include "tst-scanf-format-skeleton.c" diff --git a/SOURCES/glibc-RHEL-46729.patch b/SOURCES/glibc-RHEL-46729.patch new file mode 100644 index 0000000..f835f99 --- /dev/null +++ b/SOURCES/glibc-RHEL-46729.patch @@ -0,0 +1,578 @@ +commit 45c42b65c29422b773ac94771aa71165e245f8f8 +Author: Martin Coufal +Date: Thu Jan 23 13:04:06 2025 +0100 + + Add new tests for fopen + + Adding some basic tests for fopen, testing different modes, stream + positioning and concurrent read/write operation on files. + Reviewed-by: DJ Delorie + +# Conflicts: +# sysdeps/pthread/Makefile (new test added) + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 74e0edff73a9e468..fe69e48849cb9819 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -201,6 +201,7 @@ tests := \ + tst-fmemopen2 \ + tst-fmemopen3 \ + tst-fmemopen4 \ ++ tst-fopen \ + tst-fphex \ + tst-fphex-wide \ + tst-fread \ +diff --git a/stdio-common/tst-fopen.c b/stdio-common/tst-fopen.c +new file mode 100644 +index 0000000000000000..8c1fefd116f9f581 +--- /dev/null ++++ b/stdio-common/tst-fopen.c +@@ -0,0 +1,279 @@ ++/* Basic test for fopen. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++#define APPENDED_TEXT "This is appended text. " ++#define DEFAULT_TEXT "Lorem ipsum dolor sit amet, consectetur " \ ++ "adipiscing elit, sed do eiusmod tempor incididunt ut labore et " \ ++ "dolore magna aliqua." ++#define MAX_BUFFER_SIZE 300 ++ ++ ++static int ++do_test (void) ++{ ++ char *temp_file; ++ FILE *fd_file = NULL; ++ char read_buffer[MAX_BUFFER_SIZE] = ""; ++ size_t ret; ++ ++ /* Prepare files. */ ++ int fd = create_temp_file ("tst-fopen.", &temp_file); ++ TEST_VERIFY_EXIT (fd != -1); ++ fd_file = fdopen (fd, "w"); ++ ret = fwrite (DEFAULT_TEXT, sizeof (char), strlen (DEFAULT_TEXT), fd_file); ++ TEST_COMPARE (ret, strlen (DEFAULT_TEXT)); ++ xfclose (fd_file); ++ ++ /* Test 1: This checks for fopen with mode "r". Open text file for ++ reading. The stream is positioned at the beginning of the file. */ ++ printf ("Test 1: This checks for fopen with mode \"r\".\n"); ++ fd_file = fopen (temp_file, "r"); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_VERIFY (fd_file != NULL); ++ TEST_COMPARE (ftell (fd_file), 0); ++ /* Read should succeed. */ ++ ret = fread (read_buffer, sizeof (char), MAX_BUFFER_SIZE, fd_file); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_COMPARE (ret, strlen (DEFAULT_TEXT)); ++ TEST_VERIFY (strcmp (read_buffer, DEFAULT_TEXT) == 0); ++ /* Write should fail. */ ++ errno = 0; ++ ret = fwrite (DEFAULT_TEXT, sizeof (char), strlen (DEFAULT_TEXT), fd_file); ++ TEST_VERIFY (ferror (fd_file) != 0); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (ret, 0); ++ clearerr (fd_file); ++ /* Opening non-existent file should fail. */ ++ xfclose (fd_file); ++ errno = 0; ++ fd_file = fopen ("file-that-does-not-exist", "r"); ++ TEST_VERIFY (fd_file == NULL); ++ TEST_COMPARE (errno, ENOENT); ++ TEST_VERIFY (fd_file == NULL); ++ ++ memset (read_buffer, 0, MAX_BUFFER_SIZE); ++ ++ /* Test 2: This checks for fopen with mode "r+". Open for reading and ++ writing. The stream is positioned at the beginning of the file. */ ++ printf ("Test 2: This checks for fopen with mode \"r+\".\n"); ++ fd_file = fopen (temp_file, "r+"); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_VERIFY (fd_file != NULL); ++ TEST_COMPARE (ftell (fd_file), 0); ++ /* Read should succeed. */ ++ ret = fread (read_buffer, sizeof (char), MAX_BUFFER_SIZE, fd_file); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_COMPARE (ret, strlen (DEFAULT_TEXT)); ++ TEST_VERIFY (strcmp (read_buffer, DEFAULT_TEXT) == 0); ++ fflush (fd_file); ++ /* File position indicator expected at 0 + read bytes. */ ++ TEST_COMPARE (ftell (fd_file), ret); ++ /* Write should succeed. */ ++ ret = fwrite (DEFAULT_TEXT, sizeof (char), strlen (DEFAULT_TEXT), fd_file); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_COMPARE (ret, strlen (DEFAULT_TEXT)); ++ /* Opening non-existent file should fail. */ ++ xfclose (fd_file); ++ errno = 0; ++ fd_file = fopen ("file-that-does-not-exist", "r+"); ++ TEST_VERIFY (fd_file == NULL); ++ TEST_COMPARE (errno, ENOENT); ++ TEST_VERIFY (fd_file == NULL); ++ ++ memset (read_buffer, 0, MAX_BUFFER_SIZE); ++ ++ /* Test 3: This checks for fopen with mode "w". Truncate file to zero ++ length or create text file for writing. The stream is positioned ++ at the beginning of the file. */ ++ printf ("Test 3: This checks for fopen with mode \"w\".\n"); ++ fd_file = fopen (temp_file, "w"); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_VERIFY (fd_file != NULL); ++ TEST_COMPARE (ftell (fd_file), 0); ++ /* Read should fail. */ ++ errno = 0; ++ ret = fread (read_buffer, sizeof (char), MAX_BUFFER_SIZE, fd_file); ++ TEST_VERIFY (ferror (fd_file) != 0); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (ret, 0); ++ clearerr (fd_file); ++ /* Write should succeed. */ ++ ret = fwrite (DEFAULT_TEXT, sizeof (char), strlen (DEFAULT_TEXT), fd_file); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_COMPARE (ret, strlen (DEFAULT_TEXT)); ++ /* Opening non-existent file should succeed. */ ++ xfclose (fd_file); ++ fd_file = fopen ("/tmp/file-that-does-not-exist", "w"); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_VERIFY (fd_file != NULL); ++ TEST_COMPARE (ftell (fd_file), 0); ++ ++ xfclose (fd_file); ++ remove ("/tmp/file-that-does-not-exist"); ++ memset (read_buffer, 0, MAX_BUFFER_SIZE); ++ ++ /* Test 4: This checks for fopen with mode "w+". Open for reading and ++ writing. The file is created if it does not exist, otherwise it is ++ truncated. The stream is positioned at the beginning of the file. ++ */ ++ printf ("Test 4: This checks for fopen with mode \"w+\".\n"); ++ fd_file = fopen (temp_file, "w+"); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_VERIFY (fd_file != NULL); ++ TEST_COMPARE (ftell (fd_file), 0); ++ /* Read should succeed. */ ++ ret = fread (read_buffer, sizeof (char), MAX_BUFFER_SIZE, fd_file); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_COMPARE (ret, 0); ++ TEST_VERIFY (read_buffer[0] == '\0'); ++ /* Write should succeed. */ ++ ret = fwrite (DEFAULT_TEXT, sizeof (char), strlen (DEFAULT_TEXT), fd_file); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_COMPARE (ret, strlen (DEFAULT_TEXT)); ++ /* Opening non-existent file should succeed. */ ++ xfclose (fd_file); ++ fd_file = fopen ("/tmp/file-that-does-not-exist", "w+"); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_VERIFY (fd_file != NULL); ++ TEST_COMPARE (ftell (fd_file), 0); ++ ++ xfclose (fd_file); ++ remove ("/tmp/file-that-does-not-exist"); ++ memset (read_buffer, 0, MAX_BUFFER_SIZE); ++ ++ /* Test 5: This checks for fopen with mode "a". Open for appending ++ (writing at end of file). The file is created if it does not ++ exist. The stream is positioned at the end of the file. */ ++ printf ("Test 5: This checks for fopen with mode \"a\".\n"); ++ fd_file = fopen (temp_file, "a"); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_VERIFY (fd_file != NULL); ++ TEST_COMPARE (ftell (fd_file), strlen (DEFAULT_TEXT)); ++ /* Read should fail. */ ++ errno = 0; ++ ret = fread (read_buffer, sizeof (char), MAX_BUFFER_SIZE, fd_file); ++ TEST_VERIFY (ferror (fd_file) != 0); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (ret, 0); ++ clearerr (fd_file); ++ /* Write should succeed. */ ++ ret = fwrite (APPENDED_TEXT, sizeof (char), strlen (APPENDED_TEXT), fd_file); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_COMPARE (ret, strlen (APPENDED_TEXT)); ++ /* The file position indicator for the stream is advanced by the ++ * number of bytes successfully read or written. */ ++ TEST_COMPARE (ftell (fd_file), strlen (DEFAULT_TEXT) + ret); ++ /* Opening non-existent file should succeed. */ ++ xfclose (fd_file); ++ fd_file = fopen ("/tmp/file-that-does-not-exist", "a"); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_VERIFY (fd_file != NULL); ++ TEST_COMPARE (ftell (fd_file), 0); ++ ++ xfclose (fd_file); ++ remove ("/tmp/file-that-does-not-exist"); ++ memset (read_buffer, 0, MAX_BUFFER_SIZE); ++ ++ /* Test 6: This checks for fopen with mode "a+". Open for reading and ++ appending (writing at end of file). The file is created if it does ++ not exist. Output is always appended to the end of the file. The ++ initial file position for reading is at the beginning of the file, ++ but it is advanced to the end prior to each write. */ ++ printf ("Test 6: This checks for fopen with mode \"a+\".\n"); ++ errno = 0; ++ fd_file = fopen (temp_file, "a+"); ++ TEST_COMPARE (errno, 0); ++ TEST_VERIFY (fd_file != NULL); ++ TEST_COMPARE (ftell (fd_file), 0); ++ /* Read should succeed. */ ++ ret = fread (read_buffer, sizeof (char), MAX_BUFFER_SIZE, fd_file); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_COMPARE (ret, strlen (DEFAULT_TEXT) + strlen (APPENDED_TEXT)); ++ TEST_VERIFY (strcmp (read_buffer, DEFAULT_TEXT APPENDED_TEXT) == 0); ++ /* Write should succeed. */ ++ const char* SECOND_APPEND = "This is second append."; ++ ret = fwrite (SECOND_APPEND, sizeof (char), strlen (SECOND_APPEND), fd_file); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_COMPARE (ret, strlen (SECOND_APPEND)); ++ /* The file position indicator for the stream is advanced by the ++ number of bytes successfully read or written. */ ++ TEST_COMPARE (ftell (fd_file), ++ strlen (DEFAULT_TEXT) + strlen (APPENDED_TEXT) + ret); ++ /* Opening non-existent file should succeed. */ ++ xfclose (fd_file); ++ fd_file = fopen ("/tmp/file-that-does-not-exist", "a+"); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_VERIFY (fd_file != NULL); ++ TEST_COMPARE (ftell (fd_file), 0); ++ ++ xfclose (fd_file); ++ remove ("/tmp/file-that-does-not-exist"); ++ memset (read_buffer, 0, MAX_BUFFER_SIZE); ++ ++ /* Test 7: This checks for fopen with other valid modes set, such as ++ "rc", "we" or "am". The test calls fopen with these modes and ++ checks that no errors appear. */ ++ printf ("Test 7: This checks for fopen with other valid modes set, " ++ "such as \"rc\", \"we\" or \"am\".\n"); ++ /* These modes all operate correctly with the file already present. */ ++ static const char *valid_modes[] = ++ { "rc", "we", "am", "r+x", "wb+", "ab", 0 }; ++ const char **p = valid_modes; ++ while (*p != 0) ++ { ++ fd_file = fopen (temp_file, *p); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_VERIFY (fd_file != NULL); ++ xfclose (fd_file); ++ ++p; ++ } ++ ++ /* Test 8: This checks for fopen with invalid modes. The test calls ++ fopen with these modes and checks that opening existing files with ++ invalid mode fails and that opening non-existing files with invalid ++ mode doesn't create a new file. */ ++ printf ("Test 8: This checks for fopen with invalid modes.\n"); ++ static const char *invalid_modes[] = { "0", "tr", "z", "x", " ", 0 }; ++ p = invalid_modes; ++ while (*p != 0) ++ { ++ errno = 0; ++ fd_file = fopen (temp_file, *p); ++ TEST_VERIFY (fd_file == NULL); ++ TEST_COMPARE (errno, EINVAL); ++ errno = 0; ++ fd_file = fopen ("/tmp/file-that-does-not-exist", *p); ++ TEST_VERIFY (fd_file == NULL); ++ TEST_COMPARE (errno, EINVAL); ++ ++p; ++ TEST_VERIFY (access ("/tmp/file-that-does-not-exist", F_OK) == -1); ++ } ++ ++ return 0; ++} ++ ++#include +diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile +index 43fcdf1182e735e1..58c33a8e49d517ad 100644 +--- a/sysdeps/pthread/Makefile ++++ b/sysdeps/pthread/Makefile +@@ -131,6 +131,7 @@ tests += tst-cnd-basic tst-mtx-trylock tst-cnd-broadcast \ + tst-sem18 \ + tst-sem19 \ + tst-join16 \ ++ tst-fopen-threaded \ + # tests + + tests-time64 := \ +diff --git a/sysdeps/pthread/tst-fopen-threaded.c b/sysdeps/pthread/tst-fopen-threaded.c +new file mode 100644 +index 0000000000000000..5c792c93e3711621 +--- /dev/null ++++ b/sysdeps/pthread/tst-fopen-threaded.c +@@ -0,0 +1,250 @@ ++/* Test for fread and fwrite with multiple threads. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* Description of test intent. ++ The test creates NUM_THREADS threads for reading and writing to the ++ prepared file. The prepared file contains 'NUM_THREADS - 1' bytes ++ where each byte is unique number from 0 to 'NUM_THREADS - 2'. If all ++ operations are correctly multi-threaded safe then all concurent read ++ operations should succeed and read a unique 1 byte value. The last ++ thread to read should get an EOF. In concurrent write, all write ++ operations should succeed and the file should contain all unique 1 ++ byte values from 0 to 'NUM_THREADS - 1'. Both concurrent read and ++ concurrent write tests are repeated ITERS times to increase ++ the probability of detecting concurrency issues. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++#define NUM_THREADS 100 ++#define ITERS 10 ++ ++char *temp_file; ++pthread_barrier_t barrier; ++ ++struct thread_data ++{ ++ FILE *fd; ++ /* Read value or value to be written. */ ++ unsigned char value; ++ bool eof; ++}; ++ ++static void * ++threadReadRoutine (void *argv) ++{ ++ struct thread_data *my_data; ++ unsigned char read_buffer; ++ int ret = 0; ++ my_data = (struct thread_data *) argv; ++ /* Wait for all threads to be ready to read. */ ++ xpthread_barrier_wait (&barrier); ++ ++ ret = ++ fread (&read_buffer, sizeof (char), sizeof (read_buffer), my_data->fd); ++ if (feof (my_data->fd) != 0) ++ { ++ clearerr (my_data->fd); ++ my_data->eof = true; ++ } ++ else ++ { ++ TEST_COMPARE (ret, 1); ++ /* Save the read value. */ ++ my_data->value = read_buffer; ++ } ++ TEST_COMPARE (ferror (my_data->fd), 0); ++ return NULL; ++} ++ ++void * ++threadWriteRoutine (void *argv) ++{ ++ struct thread_data *my_data; ++ int ret = 0; ++ my_data = (struct thread_data *) argv; ++ /* Wait for all threads to be ready to write. */ ++ xpthread_barrier_wait (&barrier); ++ ++ ret = fwrite (&my_data->value, sizeof (unsigned char), 1, my_data->fd); ++ TEST_COMPARE (ferror (my_data->fd), 0); ++ TEST_COMPARE (feof (my_data->fd), 0); ++ TEST_COMPARE (ret, 1); ++ return NULL; ++} ++ ++void * ++threadOpenCloseRoutine (void *argv) ++{ ++ /* Wait for all threads to be ready to call fopen and fclose. */ ++ xpthread_barrier_wait (&barrier); ++ ++ FILE *fd = xfopen ("/tmp/openclosetest", "w+"); ++ xfclose (fd); ++ return NULL; ++} ++ ++static int ++do_test (void) ++{ ++ FILE *fd_file = NULL; ++ unsigned char buffer[NUM_THREADS] = "0"; ++ size_t ret = 0; ++ pthread_t threads[NUM_THREADS]; ++ struct thread_data thread_data_array[NUM_THREADS]; ++ bool present_values[NUM_THREADS] = { false }; ++ ++ /* Prepare files. */ ++ for (int i = 0; i < NUM_THREADS; i++) ++ buffer[i] = i; ++ int fd = create_temp_file ("tst-fopen.", &temp_file); ++ TEST_VERIFY_EXIT (fd != -1); ++ fd_file = fdopen (fd, "w"); ++ /* NUM_THREADS - 1: last thread will read EOF */ ++ ret = fwrite (buffer, sizeof (unsigned char), NUM_THREADS - 1, fd_file); ++ TEST_COMPARE (ret, NUM_THREADS - 1); ++ xfclose (fd_file); ++ ++ /* Test 1: Concurrent read. */ ++ for (int reps = 1; reps <= ITERS; reps++) ++ { ++ fd_file = xfopen (temp_file, "r"); ++ xpthread_barrier_init (&barrier, NULL, NUM_THREADS); ++ for (int i = 0; i < NUM_THREADS; i++) ++ { ++ thread_data_array[i].fd = fd_file; ++ /* Initialize with highest possible value so it's easier to debug if ++ anything goes wrong. */ ++ thread_data_array[i].value = 255; ++ thread_data_array[i].eof = false; ++ ++ threads[i] = ++ xpthread_create (support_small_stack_thread_attribute (), ++ threadReadRoutine, ++ (void *) &thread_data_array[i]); ++ } ++ ++ for (int i = 0; i < NUM_THREADS; i++) ++ { ++ xpthread_join (threads[i]); ++ } ++ xpthread_barrier_destroy (&barrier); ++ xfclose (fd_file); ++ ++ /* Verify read values. */ ++ int eof_cnt = 0; ++ for (int i = 0; i < NUM_THREADS; i++) ++ present_values[i] = false; ++ for (int i = 0; i < NUM_THREADS; i++) ++ { ++ if (thread_data_array[i].eof) ++ { ++ /* EOF was read. */ ++ present_values[NUM_THREADS - 1] = true; ++ eof_cnt++; ++ } ++ else ++ { ++ /* The same value shouldn't be read twice. */ ++ TEST_VERIFY (!present_values[thread_data_array[i].value]); ++ present_values[thread_data_array[i].value] = true; ++ } ++ } ++ /* EOF is read exactly once. */ ++ TEST_COMPARE (eof_cnt, 1); ++ for (int i = 0; i < NUM_THREADS; i++) ++ { ++ /* All values should be read. */ ++ TEST_VERIFY (present_values[i]); ++ } ++ } ++ ++ /* Test 2: Concurrent write. */ ++ for (int reps = 1; reps <= ITERS; reps++) ++ { ++ fd_file = xfopen (temp_file, "w"); ++ xpthread_barrier_init (&barrier, NULL, NUM_THREADS); ++ for (int i = 0; i < NUM_THREADS; i++) ++ { ++ thread_data_array[i].fd = fd_file; ++ thread_data_array[i].value = i; ++ ++ threads[i] = ++ xpthread_create (support_small_stack_thread_attribute (), ++ threadWriteRoutine, ++ (void *) &thread_data_array[i]); ++ } ++ ++ for (int i = 0; i < NUM_THREADS; i++) ++ { ++ xpthread_join (threads[i]); ++ } ++ xpthread_barrier_destroy (&barrier); ++ xfclose (fd_file); ++ ++ /* Verify written values. */ ++ for (int i = 0; i < NUM_THREADS; i++) ++ present_values[i] = false; ++ memset (buffer, 0, NUM_THREADS); ++ fd_file = xfopen (temp_file, "r"); ++ ret = fread (buffer, sizeof (unsigned char), NUM_THREADS, fd_file); ++ TEST_COMPARE (ret, NUM_THREADS); ++ for (int i = 0; i < NUM_THREADS; i++) ++ { ++ /* The same value shouldn't be written twice. */ ++ TEST_VERIFY (!present_values[buffer[i]]); ++ present_values[buffer[i]] = true; ++ } ++ for (int i = 0; i < NUM_THREADS; i++) ++ { ++ /* All values should be written. */ ++ TEST_VERIFY (present_values[i]); ++ } ++ xfclose (fd_file); ++ } ++ ++ /* Test 3: Concurrent open/close. */ ++ for (int reps = 1; reps <= ITERS; reps++) ++ { ++ xpthread_barrier_init (&barrier, NULL, NUM_THREADS); ++ for (int i = 0; i < NUM_THREADS; i++) ++ { ++ threads[i] = ++ xpthread_create (support_small_stack_thread_attribute (), ++ threadOpenCloseRoutine, NULL); ++ } ++ for (int i = 0; i < NUM_THREADS; i++) ++ { ++ xpthread_join (threads[i]); ++ } ++ xpthread_barrier_destroy (&barrier); ++ } ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-46737-1.patch b/SOURCES/glibc-RHEL-46737-1.patch new file mode 100644 index 0000000..8281a0e --- /dev/null +++ b/SOURCES/glibc-RHEL-46737-1.patch @@ -0,0 +1,124 @@ +From 81e74c8676479811601b5894d72bb3d7e05f68dd Mon Sep 17 00:00:00 2001 +From: DJ Delorie +Date: Fri, 14 Mar 2025 16:08:12 -0400 +Subject: add ptmx support to test-container + +Conflicts: + support/Makefile (context, line numbers) + support/test-container.c (line numbers) + +diff --git a/support/Makefile b/support/Makefile +index dfe8e547f6..d41278eeab 100644 +--- a/support/Makefile ++++ b/support/Makefile +@@ -324,6 +324,7 @@ tests = \ + tst-support_format_dns_packet \ + tst-support_fuse \ + tst-support-open-dev-null-range \ ++ tst-support-openpty \ + tst-support-process_state \ + tst-support_quote_blob \ + tst-support_quote_blob_wide \ +@@ -340,6 +341,10 @@ tests = \ + tst-xsigstack \ + # tests + ++tests-container = \ ++ tst-support-openpty-c \ ++ # tests-container ++ + ifeq ($(run-built-tests),yes) + tests-special = \ + $(objpfx)tst-support_record_failure-2.out +diff --git a/support/test-container.c b/support/test-container.c +index 79d3189e2f..a641250079 100644 +--- a/support/test-container.c ++++ b/support/test-container.c +@@ -1149,6 +1149,9 @@ main (int argc, char **argv) + devmount (new_root_path, "null"); + devmount (new_root_path, "zero"); + devmount (new_root_path, "urandom"); ++#ifdef __linux__ ++ devmount (new_root_path, "ptmx"); ++#endif + + /* We're done with the "old" root, switch to the new one. */ + if (chroot (new_root_path) < 0) +@@ -1214,6 +1217,14 @@ main (int argc, char **argv) + + maybe_xmkdir ("/tmp", 0755); + ++#ifdef __linux__ ++ maybe_xmkdir ("/dev/pts", 0777); ++ if (mount ("/dev/pts", "/dev/pts", "devpts", 0, "newinstance,ptmxmode=0666,mode=0666") < 0) ++ FAIL_EXIT1 ("can't mount /dev/pts: %m\n"); ++ if (mount ("/dev/pts/ptmx", "/dev/ptmx", "", MS_BIND | MS_REC, NULL) < 0) ++ FAIL_EXIT1 ("can't mount /dev/ptmx\n"); ++#endif ++ + if (require_pidns) + { + /* Now that we're pid 1 (effectively "root") we can mount /proc */ +diff --git a/support/tst-support-openpty-c.c b/support/tst-support-openpty-c.c +new file mode 100644 +index 0000000000..0a6a428fc3 +--- /dev/null ++++ b/support/tst-support-openpty-c.c +@@ -0,0 +1,2 @@ ++/* Same test, but in a test-container. */ ++#include "tst-support-openpty.c" +diff --git a/support/tst-support-openpty.c b/support/tst-support-openpty.c +new file mode 100644 +index 0000000000..1222d7018f +--- /dev/null ++++ b/support/tst-support-openpty.c +@@ -0,0 +1,49 @@ ++/* Basic test for support_openpty support in test-container. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++/* Note: the purpose of this test isn't to test if ptys function ++ correctly, but only to verify that test-container's support for ++ them is correct. The many checks in support_openpty.c are ++ sufficient for this. */ ++ ++int ++do_test (void) ++{ ++ int outer, inner; ++ char *name; ++ struct termios term; ++ struct winsize win; ++ ++ cfmakeraw (&term); ++ win.ws_row = 24; ++ win.ws_col = 80; ++ ++ support_openpty (&outer, &inner, &name, &term, &win); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-46737-2.patch b/SOURCES/glibc-RHEL-46737-2.patch new file mode 100644 index 0000000..9e96eb7 --- /dev/null +++ b/SOURCES/glibc-RHEL-46737-2.patch @@ -0,0 +1,1092 @@ +From 95b780c1d0549678c0a244c6e2112ec97edf0839 Mon Sep 17 00:00:00 2001 +From: DJ Delorie +Date: Fri, 14 Mar 2025 16:08:35 -0400 +Subject: stdio: Add more setvbuf tests + + +Conflicts: + stdio-common/Makefile (context, line numbers) + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 31f40cf57c..3fd33b836d 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -304,6 +304,11 @@ endif + endif + endif + ++tests-internal = \ ++ tst-setvbuf2 \ ++ tst-setvbuf2-ind \ ++ # tests-internal ++ + test-srcs = \ + $(xprintf-srcs) \ + $(xscanf-srcs) \ +@@ -348,6 +353,11 @@ tests-special += \ + $(objpfx)tst-vfprintf-width-prec-mem.out \ + # tests-special + ++tests-container += \ ++ tst-setvbuf2 \ ++ tst-setvbuf2-ind ++ # tests-container ++ + generated += \ + $(foreach f,$(xprintf-stems),$(f)-mem.out) \ + $(foreach f,$(xprintf-stems),$(f).mtrace) \ +@@ -602,6 +612,10 @@ $(objpfx)tst-setvbuf1-cmp.out: tst-setvb + cmp $^ > $@; \ + $(evaluate-test) + ++CFLAGS-tst-setvbuf2.c += -DIND_PROC=\"$(objpfx)tst-setvbuf2-ind\" ++$(objpfx)tst-setvbuf2-ind : $(objpfx)tst-setvbuf2-ind.o ++$(objpfx)tst-setvbuf2.out: $(objpfx)tst-setvbuf2-ind ++ + $(objpfx)tst-printf-round: $(libm) + $(objpfx)tst-scanf-round: $(libm) + +diff --git a/stdio-common/tst-setvbuf2-ind.c b/stdio-common/tst-setvbuf2-ind.c +new file mode 100644 +index 0000000000..fda2942c24 +--- /dev/null ++++ b/stdio-common/tst-setvbuf2-ind.c +@@ -0,0 +1,2 @@ ++#define INDEPENDENT_PART 1 ++#include "tst-setvbuf2.c" +diff --git a/stdio-common/tst-setvbuf2.c b/stdio-common/tst-setvbuf2.c +new file mode 100644 +index 0000000000..6cc83355f3 +--- /dev/null ++++ b/stdio-common/tst-setvbuf2.c +@@ -0,0 +1,1030 @@ ++/* Test setvbuf under various conditions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* This file is used twice, once as the test itself (where do_test ++ is defined) and once as a subprocess we spawn to test stdin et all ++ (where main is defined). INDEPENDENT_PART is defined for the ++ latter. ++ ++ Note also that the purpose of this test is to test setvbuf, not the ++ underlying buffering code. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Dear future developer: If you are reading this, you are likely ++ trying to change or understand this test. In that case, these ++ debug/dump macros will be helpful. */ ++#if 0 ++# define debug printf ("\033[3%dm%s:%d\033[0m\n", \ ++ (__LINE__ % 6) + 1, __FUNCTION__, __LINE__); ++ ++static void ++dumpfp (FILE *fp) ++{ ++ char f[10], *p=f; ++ ++ if (fp->_flags & _IO_UNBUFFERED) ++ *p++ = 'N'; ++ if (fp->_flags & _IO_LINE_BUF) ++ *p++ = 'L'; ++ if (p == f) ++ *p++ = 'B'; ++ *p = 0; ++ ++ printf ("FILE %p flags %s" ++ " read %p \033[%dm%+ld \033[%dm%+ld\033[0m" ++ " write %p \033[%dm%+ld \033[%dm%+ld\033[0m %ld" ++ " buf %p \033[%dm%+ld\033[0m sz %ld pend %ld\n", ++ fp, f, ++ ++ fp->_IO_read_base, ++ fp->_IO_read_ptr == fp->_IO_read_base ? 33 : 32, ++ fp->_IO_read_ptr - fp->_IO_read_base, ++ fp->_IO_read_end == fp->_IO_read_base ? 33 : 36, ++ fp->_IO_read_end - fp->_IO_read_base, ++ ++ fp->_IO_write_base, ++ fp->_IO_write_ptr == fp->_IO_write_base ? 33 : 32, ++ fp->_IO_write_ptr - fp->_IO_write_base, ++ fp->_IO_write_end == fp->_IO_write_base ? 33 : 36, ++ fp->_IO_write_end - fp->_IO_write_base, ++ fp->_IO_write_end - fp->_IO_write_base, ++ ++ fp->_IO_buf_base, ++ fp->_IO_buf_end == fp->_IO_buf_base ? 33 : 35, ++ fp->_IO_buf_end - fp->_IO_buf_base, ++ __fbufsize (fp), __fpending (fp) ++ ); ++} ++#else ++# define debug ++# define dumpfp(FP) ++#endif ++ ++#ifndef INDEPENDENT_PART ++/* st_blksize value for that file, or BUFSIZ if out of range. */ ++static int blksize = BUFSIZ; ++#endif ++ ++/* Our test buffer. */ ++#define TEST_BUFSIZE 42 ++static int bufsize = TEST_BUFSIZE < BUFSIZ ? TEST_BUFSIZE : BUFSIZ; ++static char *buffer; ++ ++/* Test data, both written to that file and used as an in-memory ++ stream. */ ++char test_data[2 * BUFSIZ]; ++ ++#define TEST_STRING "abcdef\n" ++ ++enum test_source_case ++ { ++ test_source_file, ++ test_source_pipe, ++ test_source_fifo, ++ test_source_pseudo_terminal, ++ test_source_dev_null, ++ test_source_count, ++ }; ++ ++static const char *const test_source_name[test_source_count] = ++ { ++ "regular file", ++ "pipe", ++ "fifo", ++ "pseudo_terminal", ++ "dev_null" ++ }; ++ ++enum test_stream_case ++ { ++ test_stream_stdin, ++ test_stream_stdout, ++ test_stream_stderr, ++ test_stream_fopen_r, ++ test_stream_fdopen_r, ++ test_stream_fopen_w, ++ test_stream_fdopen_w, ++ test_stream_count ++ }; ++ ++static bool test_stream_reads[test_stream_count] = ++ { ++ true, ++ false, ++ false, ++ true, ++ true, ++ false, ++ false ++ }; ++ ++static const char *const test_stream_name[test_stream_count] = ++ { ++ "stdin", ++ "stdout", ++ "stderr", ++ "fopen (read)", ++ "fdopen (read)", ++ "fopen (write)", ++ "fdopen (write)" ++ }; ++ ++enum test_config_case ++ { ++ test_config_none, ++ test_config_unbuffered, ++ test_config_line, ++ test_config_fully, ++ test_config_count ++ }; ++ ++static const char *const test_config_name[test_config_count] = ++ { ++ "no change", ++ "unbuffered", ++ "line buffered", ++ "fully buffered" ++ }; ++ ++FILE *test_stream; ++ ++char *test_file_name = NULL; ++int pty_fd; ++char *test_pipe_name = NULL; ++int test_pipe[2]; ++ ++/* This is either -1 or represents a pre-opened file descriptor for ++ the test as returned by prepare_test_file. */ ++int test_fd; ++ ++/*------------------------------------------------------------*/ ++ ++/* Note that throughout this test we reopen, remove, and change ++ to/from a fifo, the test file. This would normally cause a race ++ condition, except that we're in a test container. No other process ++ can run in the test container simultaneously. */ ++ ++void ++prepare_test_data (void) ++{ ++ buffer = (char *) xmalloc (bufsize); ++ ++#ifndef INDEPENDENT_PART ++ /* Both file and pipe need this. */ ++ if (test_file_name == NULL) ++ { ++ debug; ++ int fd = create_temp_file ("tst-setvbuf2", &test_file_name); ++ TEST_VERIFY_EXIT (fd != -1); ++ struct stat64 st; ++ xfstat64 (fd, &st); ++ if (st.st_blksize > 0 && st.st_blksize < BUFSIZ) ++ blksize = st.st_blksize; ++ xclose (fd); ++ } ++#endif ++ ++ for (size_t i = 0; i < 2 * BUFSIZ; i++) ++ { ++ unsigned char c = TEST_STRING[i % strlen (TEST_STRING)]; ++ test_data[i] = c; ++ } ++} ++ ++#ifndef INDEPENDENT_PART ++ ++/* These functions provide a source/sink for the "other" side of any ++ pipe-style descriptor we're using for test. */ ++ ++static pthread_t writer_thread_tid = 0; ++static pthread_t reader_thread_tid = 0; ++ ++typedef struct { ++ int fd; ++ const char *fname; ++} ThreadData; ++/* It's OK if this is static, we only run one at a time. */ ++ThreadData thread_data; ++ ++static void * ++writer_thread_proc (void *closure) ++{ ++ ThreadData *td = (ThreadData *) closure; ++ int fd; ++ int i; ++ ssize_t wn; ++ debug; ++ ++ if (td->fname) ++ td->fd = xopen (td->fname, O_WRONLY, 0777); ++ fd = td->fd; ++ ++ while (1) ++ { ++ i = 0; ++ while (i < BUFSIZ) ++ { ++ wn = write (fd, test_data + i, BUFSIZ - i); ++ if (wn <= 0) ++ break; ++ i += wn; ++ } ++ } ++ return NULL; ++} ++ ++static void * ++reader_thread_proc (void *closure) ++{ ++ ThreadData *td = (ThreadData *) closure; ++ int fd; ++ ssize_t rn; ++ int n = 0; ++ debug; ++ ++ if (td->fname) ++ td->fd = xopen (td->fname, O_RDONLY, 0777); ++ fd = td->fd; ++ ++ while (1) ++ { ++ char buf[BUFSIZ]; ++ rn = read (fd, buf, BUFSIZ); ++ if (rn <= 0) ++ break; ++ TEST_COMPARE_BLOB (buf, rn, test_data+n, rn); ++ n += rn; ++ } ++ return NULL; ++} ++ ++static void ++start_writer_thread (int fd) ++{ ++ debug; ++ thread_data.fd = fd; ++ thread_data.fname = NULL; ++ writer_thread_tid = xpthread_create (NULL, writer_thread_proc, ++ (void *)&thread_data); ++} ++ ++static void ++start_writer_thread_n (const char *fname) ++{ ++ debug; ++ thread_data.fd = 0; ++ thread_data.fname = fname; ++ writer_thread_tid = xpthread_create (NULL, writer_thread_proc, ++ (void *)&thread_data); ++} ++ ++static void ++end_writer_thread (void) ++{ ++ debug; ++ if (writer_thread_tid) ++ { ++ pthread_cancel (writer_thread_tid); ++ xpthread_join (writer_thread_tid); ++ xclose (thread_data.fd); ++ writer_thread_tid = 0; ++ } ++} ++ ++static void ++start_reader_thread (int fd) ++{ ++ debug; ++ thread_data.fd = fd; ++ thread_data.fname = NULL; ++ reader_thread_tid = xpthread_create (NULL, reader_thread_proc, ++ (void *)&thread_data); ++} ++ ++static void ++start_reader_thread_n (const char *fname) ++{ ++ debug; ++ thread_data.fd = 0; ++ thread_data.fname = fname; ++ reader_thread_tid = xpthread_create (NULL, reader_thread_proc, ++ (void *)&thread_data); ++} ++ ++static void ++end_reader_thread (void) ++{ ++ debug; ++ if (reader_thread_tid) ++ { ++ pthread_cancel (reader_thread_tid); ++ xpthread_join (reader_thread_tid); ++ xclose (thread_data.fd); ++ reader_thread_tid = 0; ++ } ++} ++ ++/*------------------------------------------------------------*/ ++ ++/* These two functions are reponsible for choosing a file to be tested ++ against, typically by returning a filename but in a few cases also ++ providing a file descriptor (i.e. for fdopen). */ ++ ++static const char * ++prepare_test_file (enum test_source_case f, enum test_stream_case s) ++{ ++ debug; ++ ++ test_fd = -1; ++ ++ switch (f) ++ { ++ case test_source_file: ++ { ++ if (test_stream_reads[f]) ++ { ++ debug; ++ FILE *fp = xfopen (test_file_name, "w"); ++ TEST_VERIFY_EXIT (fwrite (test_data, 1, 2 * BUFSIZ, fp) ++ == 2 * BUFSIZ); ++ xfclose (fp); ++ } ++ debug; ++ return test_file_name; ++ } ++ ++ case test_source_pipe: ++ { ++ debug; ++ xpipe (test_pipe); ++ if (test_stream_reads[s]) ++ { ++ start_writer_thread (test_pipe[1]); ++ test_fd = test_pipe[0]; ++ } ++ else ++ { ++ start_reader_thread (test_pipe[0]); ++ test_fd = test_pipe[1]; ++ } ++ test_pipe_name = xasprintf ("/proc/self/fd/%d", test_fd); ++ debug; ++ return test_pipe_name; ++ } ++ ++ case test_source_fifo: ++ { ++ /* We do not want to fail/exit if the file doesn't exist. */ ++ unlink (test_file_name); ++ xmkfifo (test_file_name, 0600); ++ debug; ++ if (test_stream_reads[s]) ++ start_writer_thread_n (test_file_name); ++ else ++ start_reader_thread_n (test_file_name); ++ debug; ++ return test_file_name; ++ } ++ ++ case test_source_pseudo_terminal: ++ { ++ support_openpty (&pty_fd, &test_fd, &test_pipe_name, NULL, NULL); ++ ++ debug; ++ if (test_stream_reads[s]) ++ start_writer_thread (pty_fd); ++ else ++ start_reader_thread (pty_fd); ++ ++ debug; ++ return test_pipe_name; ++ } ++ ++ case test_source_dev_null: ++ debug; ++ return "/dev/null"; ++ ++ default: ++ abort (); ++ } ++} ++ ++static void ++unprepare_test_file (FILE *fp, ++ enum test_source_case f, ++ enum test_stream_case s) ++{ ++ debug; ++ switch (f) ++ { ++ case test_source_file: ++ break; ++ ++ case test_source_pipe: ++ free (test_pipe_name); ++ if (test_stream_reads[s]) ++ end_writer_thread (); ++ else ++ end_reader_thread (); ++ break; ++ ++ case test_source_fifo: ++ if (test_stream_reads[s]) ++ end_writer_thread (); ++ else ++ end_reader_thread (); ++ unlink (test_file_name); ++ break; ++ ++ case test_source_pseudo_terminal: ++ free (test_pipe_name); ++ if (test_stream_reads[s]) ++ end_writer_thread (); ++ else ++ end_reader_thread (); ++ break; ++ ++ case test_source_dev_null: ++ break; ++ ++ default: ++ abort (); ++ } ++ debug; ++} ++ ++/*------------------------------------------------------------*/ ++ ++/* This function takes a filename and returns a file descriptor, ++ opened according to the method requested. */ ++ ++static FILE * ++open_test_stream (enum test_source_case f, enum test_stream_case s) ++{ ++ int fd; ++ FILE *fp; ++ const char *fname; ++ ++ debug; ++ fname = prepare_test_file (f, s); ++ if (fname == NULL) ++ return NULL; ++ ++ switch (s) ++ { ++ case test_stream_stdin: ++ fp = xfopen (fname, "r"); ++ break; ++ ++ case test_stream_stdout: ++ fp = xfopen (fname, "w"); ++ break; ++ ++ case test_stream_stderr: ++ fp = xfopen (fname, "w"); ++ break; ++ ++ case test_stream_fopen_r: ++ fp = xfopen (fname, "r"); ++ break; ++ ++ case test_stream_fdopen_r: ++ if (test_fd == -1) ++ fd = xopen (fname, O_RDONLY, 0); ++ else ++ fd = test_fd; ++ fp = fdopen (fd, "r"); ++ break; ++ ++ case test_stream_fopen_w: ++ fp = xfopen (fname, "w"); ++ break; ++ ++ case test_stream_fdopen_w: ++ fd = xopen (fname, O_WRONLY|O_CREAT|O_TRUNC, 0777); ++ fp = fdopen (fd, "w"); ++ break; ++ ++ default: ++ abort (); ++ } ++ TEST_VERIFY_EXIT (fp != NULL); ++ ++ if (f == test_source_pseudo_terminal) ++ { ++ struct termios t; ++ /* We disable the NL to CR-LF conversion so that we can compare ++ data without having to remove the extra CRs. */ ++ if (tcgetattr (fileno (fp), &t) < 0) ++ FAIL_EXIT1 ("tcgetattr failed: %m"); ++ t.c_oflag &= ~ONLCR; ++ if (tcsetattr (fileno (fp), TCSANOW, &t) < 0) ++ FAIL_EXIT1 ("tcsetattr failed: %m"); ++ } ++ ++ debug; ++ printf ("source %s stream %s file %s fd %d\n", ++ test_source_name[f], ++ test_stream_name[s], fname, fileno (fp)); ++ return fp; ++} ++ ++#endif ++ ++/*------------------------------------------------------------*/ ++ ++/* These functions do the actual testing - setting various buffering ++ options and verifying that they buffer as expected. */ ++ ++static void ++test_put_string (FILE *fp, const char *s, int count) ++{ ++ while (*s && count--) ++ { ++ fputc (*s++, fp); ++ TEST_VERIFY_EXIT (!ferror (fp)); ++ } ++} ++ ++int ++verify_fully_buffered (FILE *fp, ++ enum test_source_case f, ++ enum test_stream_case s, ++ enum test_config_case c) ++{ ++ debug; ++ if (test_stream_reads[s]) ++ { ++ char buf[10]; ++ dumpfp (fp); ++ size_t fc = fread (buf, 1, 10 - 1, fp); ++ dumpfp (fp); ++ ++ ssize_t count = fp->_IO_read_ptr - fp->_IO_read_base; ++ ++ TEST_VERIFY (fp->_IO_read_base != NULL); ++ if (f == test_source_dev_null) ++ { ++ TEST_VERIFY (fc == 0); ++ TEST_VERIFY (count == 0); ++ } ++ else if (f == test_source_pseudo_terminal) ++ { ++ TEST_VERIFY (fc == 9); ++ TEST_VERIFY (count == 3 || count == 10); ++ } ++ else ++ { ++ TEST_VERIFY (fc == 9); ++ TEST_VERIFY (count == 10); ++ } ++ ++ /* We already checked for the first character being 'a'. */ ++ if (count > 1) ++ { ++ TEST_COMPARE_BLOB (buf, count - 1, test_data + 1, count - 1); ++ TEST_COMPARE_BLOB (fp->_IO_read_base, count, test_data, count); ++ } ++ } ++ else ++ { ++ dumpfp (fp); ++ test_put_string (fp, test_data + 1, 10 - 1); ++ dumpfp (fp); ++ TEST_COMPARE (fp->_IO_write_ptr - fp->_IO_write_base, 10); ++ TEST_COMPARE_BLOB (fp->_IO_write_base, 10, test_data, 10); ++ } ++ ++ TEST_COMPARE ((fp->_flags & (_IO_UNBUFFERED | _IO_LINE_BUF)), 0); ++ if (c != test_config_none) ++ TEST_COMPARE (__fbufsize (fp), bufsize); ++ return 0; ++} ++ ++int ++verify_line_buffered (FILE *fp, ++ enum test_source_case f, ++ enum test_stream_case s, ++ enum test_config_case c) ++{ ++ debug; ++ /* "line buffered" for inputs is not really defined; what you really ++ want here is to control the device providing input. For GLIBC a ++ line-buffered input is treated as fully buffered. */ ++ if (test_stream_reads[s]) ++ { ++ char buf[10]; ++ dumpfp (fp); ++ size_t fc = fread (buf, 1, 10 - 1, fp); ++ dumpfp (fp); ++ ++ ssize_t count = fp->_IO_read_ptr - fp->_IO_read_base; ++ ++ TEST_VERIFY (fp->_IO_read_base != NULL); ++ if (f == test_source_dev_null) ++ { ++ TEST_VERIFY (fc == 0); ++ TEST_VERIFY (count == 0); ++ } ++ else if (f == test_source_pseudo_terminal) ++ { ++ TEST_VERIFY (fc == 9); ++ TEST_VERIFY (count == 3 || count == 10); ++ } ++ else ++ { ++ TEST_VERIFY (fc == 9); ++ TEST_VERIFY (count == 10); ++ } ++ ++ /* We already checked for the first character being 'a'. */ ++ if (count > 1) ++ { ++ TEST_COMPARE_BLOB (buf, count - 1, test_data + 1, count - 1); ++ TEST_COMPARE_BLOB (fp->_IO_read_base, count, test_data, count); ++ } ++ } ++ else ++ { ++ dumpfp (fp); ++ test_put_string (fp, test_data + 1, 10 - 1); ++ dumpfp (fp); ++ TEST_COMPARE (fp->_IO_write_ptr - fp->_IO_write_base, 3); ++ /* The first "abcdef\n" got flushed, leaving "abc". */ ++ TEST_COMPARE_BLOB (fp->_IO_write_base, 3, test_data + 7, 3); ++ } ++ ++ TEST_COMPARE ((fp->_flags & (_IO_UNBUFFERED | _IO_LINE_BUF)), _IO_LINE_BUF); ++ if (c != test_config_none) ++ TEST_COMPARE (__fbufsize (fp), bufsize); ++ return 0; ++} ++ ++int ++verify_unbuffered (FILE *fp, ++ enum test_source_case f, ++ enum test_stream_case s, ++ enum test_config_case c) ++{ ++ debug; ++ if (test_stream_reads[s]) ++ { ++ /* We've already read one byte. */ ++ dumpfp (fp); ++ TEST_VERIFY (fp->_IO_read_base != NULL); ++ if (f == test_source_dev_null) ++ TEST_COMPARE (fp->_IO_read_ptr - fp->_IO_read_base, 0); ++ else ++ { ++ TEST_COMPARE (fp->_IO_read_ptr - fp->_IO_read_base, 1); ++ TEST_COMPARE (fp->_IO_read_base[0], test_data[0]); ++ TEST_VERIFY (fp->_IO_read_ptr == fp->_IO_read_end); ++ } ++ } ++ else ++ { ++ dumpfp (fp); ++ fputc (test_data[1], fp); ++ dumpfp (fp); ++ TEST_COMPARE (fp->_IO_write_ptr - fp->_IO_write_base, 0); ++ TEST_COMPARE (fp->_IO_write_base[0], test_data[1]); ++ TEST_VERIFY (fp->_IO_write_end == fp->_IO_write_base); ++ } ++ TEST_COMPARE ((fp->_flags & (_IO_UNBUFFERED | _IO_LINE_BUF)), ++ _IO_UNBUFFERED); ++ TEST_COMPARE (__fbufsize (fp), 1); ++ return 0; ++} ++ ++static int ++do_setvbuf (FILE *fp, void *buf, int flags, int size, ++ enum test_stream_case s) ++{ ++ if (s != test_stream_stdout) ++ printf ("SETVBUF %p %p %s %d\n", ++ fp, buf, ++ flags == _IONBF ? "_IONBF" ++ : flags == _IOLBF ? "_IOLBF" ++ : flags == _IOFBF ? "_IOFBF" ++ : "???", size); ++ if (setvbuf (fp, buf, flags, size)) ++ { ++ perror ("setvbuf"); ++ return 1; ++ } ++ return 0; ++} ++ ++int ++do_second_part (FILE *fp, ++ enum test_source_case f, ++ enum test_stream_case s, ++ enum test_config_case c) ++{ ++ /* At this point, FP is the stream to test according to the other ++ parameters. */ ++ ++ int rv = 0; ++ int flags_before; ++ int flags_after; ++ ++ debug; ++ ++ flags_before = fp->_flags & (_IO_UNBUFFERED | _IO_LINE_BUF); ++ ++ /* This is where we do the thing we're testing for. */ ++ switch (c) ++ { ++ case test_config_none: ++ /* Buffering is unchanged. */ ++ break; ++ ++ case test_config_unbuffered: ++ do_setvbuf (fp, NULL, _IONBF, 0, s); ++ break; ++ ++ case test_config_line: ++ do_setvbuf (fp, buffer, _IOLBF, bufsize, s); ++ break; ++ ++ case test_config_fully: ++ do_setvbuf (fp, buffer, _IOFBF, bufsize, s); ++ break; ++ ++ default: ++ abort (); ++ } ++ ++ flags_after = fp->_flags & (_IO_UNBUFFERED | _IO_LINE_BUF); ++ ++ /* Check the buffer mode after we touch it, if we touched it. */ ++ switch (c) ++ { ++ case test_config_none: ++ /* Buffering is unchanged, but may change on the first read/write. */ ++ TEST_COMPARE (flags_after, flags_before); ++ break; ++ ++ case test_config_unbuffered: ++ TEST_COMPARE (flags_after, _IO_UNBUFFERED); ++ break; ++ ++ case test_config_line: ++ TEST_COMPARE (flags_after, _IO_LINE_BUF); ++ break; ++ ++ case test_config_fully: ++ TEST_COMPARE (flags_after, 0); ++ break; ++ ++ default: ++ abort (); ++ } ++ ++ /* Glibc defers calculating the appropriate buffering mechanism ++ until it reads from or writes to the device. So we read one ++ character here, and account for that in the tests. */ ++ if (test_stream_reads[s]) ++ { ++ dumpfp (fp); ++ int c = fgetc (fp); ++ if (c != TEST_STRING[0] && f != test_source_dev_null) ++ FAIL ("first char read is %c not %c", c, TEST_STRING[0]); ++ dumpfp (fp); ++ } ++ else ++ { ++ dumpfp (fp); ++ fputc (TEST_STRING[0], fp); ++ dumpfp (fp); ++ } ++ ++ switch (fp->_flags & (_IO_UNBUFFERED | _IO_LINE_BUF)) ++ { ++ case _IO_LINE_BUF: ++ rv += verify_line_buffered (fp, f, s, c); ++ break; ++ ++ case _IO_UNBUFFERED: ++ rv += verify_unbuffered (fp, f, s, c); ++ break; ++ ++ case 0: /* Fully buffered. */ ++ rv += verify_fully_buffered (fp, f, s, c); ++ break; ++ ++ default: ++ abort (); ++ } ++ ++ ++ fclose (fp); ++ return rv; ++} ++ ++/*------------------------------------------------------------*/ ++ ++#ifdef INDEPENDENT_PART ++/* This part is the independent sub-process we call to test stdin et ++ al. */ ++ ++int ++main (int argc, char **argv) ++{ ++ /* This is one of the subprocesses we created to test stdin et ++ al. */ ++ FILE *fp; ++ ++ /* If we're called as a regular test, instead of as a sub-process, ++ don't complain. */ ++ if (argc == 1) ++ return 0; ++ ++ if (argc != 4) ++ { ++ int i; ++ for (i = 0; i <= argc; i ++) ++ printf ("argv[%d] = `%s'\n", i, argv[i] ?: "(null)"); ++ FAIL_EXIT1 ("sub-process called wrong"); ++ } ++ ++ prepare_test_data (); ++ ++ enum test_source_case f = atoi (argv[1]); ++ enum test_stream_case s = atoi (argv[2]); ++ enum test_config_case c = atoi (argv[3]); ++ ++ if (s != test_stream_stdout) ++ printf ("\n\033[41mRunning test %s : %s : %s\033[0m\n", ++ test_source_name[f], ++ test_stream_name[s], ++ test_config_name[c]); ++ ++ switch (s) ++ { ++ case test_stream_stdin: ++ fp = stdin; ++ break; ++ case test_stream_stdout: ++ fp = stdout; ++ break; ++ case test_stream_stderr: ++ fp = stderr; ++ break; ++ default: ++ abort (); ++ } ++ ++ return do_second_part (fp, f, s, c); ++} ++ ++#else ++/* This part is the standard test process. */ ++ ++/* Spawn an independent sub-process with std* redirected. */ ++int ++recurse (FILE *fp, ++ enum test_source_case f, ++ enum test_stream_case s, ++ enum test_config_case c) ++{ ++ /* We need to test stdin, stdout, or stderr, which means creating a ++ subprocess with one of those redirected from FP. */ ++ debug; ++ ++ pid_t pid; ++ int status; ++ ++ pid = fork (); ++ ++ switch (pid) ++ { ++ case -1: /* error */ ++ perror ("fork"); ++ return 1; ++ break; ++ ++ default: /* parent */ ++ fclose (fp); ++ xwaitpid (pid, &status, 0); ++ if (WIFEXITED (status) ++ && WEXITSTATUS (status) == 0) ++ return 0; ++ return 1; ++ ++ case 0: /* child */ ++ switch (s) ++ { ++ case test_stream_stdin: ++ xclose (0); ++ dup2 (fileno (fp), 0); ++ break; ++ case test_stream_stdout: ++ xclose (1); ++ dup2 (fileno (fp), 1); ++ break; ++ case test_stream_stderr: ++ xclose (2); ++ dup2 (fileno (fp), 2); ++ break; ++ default: ++ abort (); ++ } ++ fclose (fp); ++ ++ /* At this point, we have to run a program... which is tricky to ++ properly support for remote targets or crosses, because of ++ glibc versions etc. Hence we run in a test-container. */ ++ ++ char fs[10], ss[10], cs[10]; ++ sprintf (fs, "%d", f); ++ sprintf (ss, "%d", s); ++ sprintf (cs, "%d", c); ++ execl (IND_PROC, IND_PROC, fs, ss, cs, NULL); ++ if (s == test_stream_stdout) ++ fprintf (stderr, "execl (%s) failed, ", IND_PROC); ++ else ++ printf ("execl (%s) failed, ", IND_PROC); ++ perror ("The error was"); ++ exit (1); ++ break; ++ } ++ ++ return 0; ++} ++ ++int ++do_test (void) ++{ ++ int rv = 0; ++ ++ signal (SIGPIPE, SIG_IGN); ++ ++ prepare_test_data (); ++ ++ for (enum test_source_case f = 0; f < test_source_count; ++f) ++ for (enum test_stream_case s = 0; s < test_stream_count; ++s) ++ for (enum test_config_case c = 0; c < test_config_count; ++c) ++ { ++ printf ("\n\033[43mRunning test %s : %s : %s\033[0m\n", ++ test_source_name[f], ++ test_stream_name[s], ++ test_config_name[c]); ++ ++ FILE *fp = open_test_stream (f, s); ++ ++ if (fp) ++ { ++ ++ if (s <= test_stream_stderr) ++ rv += recurse (fp, f, s, c); ++ else ++ rv += do_second_part (fp, f, s, c); ++ ++ unprepare_test_file (fp, f, s); ++ } ++ } ++ ++ free (buffer); ++ ++ printf ("return %d\n", rv); ++ return rv; ++} ++ ++# include ++#endif ++ diff --git a/SOURCES/glibc-RHEL-46737-3.patch b/SOURCES/glibc-RHEL-46737-3.patch new file mode 100644 index 0000000..fc5ce1b --- /dev/null +++ b/SOURCES/glibc-RHEL-46737-3.patch @@ -0,0 +1,112 @@ +commit 4fa959d13d21b8f56a43aa0a416100303736c55c +Author: Florian Weimer +Date: Tue Apr 8 10:39:44 2025 +0200 + + stdio-common: In tst-setvbuf2, close helper thread descriptor only if opened + + The helper thread may get canceled before the open system + call succeds. Then ThreadData.fd remains zero, and eventually + the xclose call in end_reader_thread fails because descriptor 0 + is not open. + + Instead, initialize the fd member to -1 (not a valid descriptor) + and close the descriptor only if valid. Do this in a new end_thread + helper routine. + + Also add more error checking to close operations. + + Fixes commit 95b780c1d0549678c0a244c6e2112ec97edf0839 ("stdio: Add + more setvbuf tests"). + +diff --git a/stdio-common/tst-setvbuf2.c b/stdio-common/tst-setvbuf2.c +index 6cc83355f391afab..84d8b43a5811b4be 100644 +--- a/stdio-common/tst-setvbuf2.c ++++ b/stdio-common/tst-setvbuf2.c +@@ -240,6 +240,21 @@ typedef struct { + /* It's OK if this is static, we only run one at a time. */ + ThreadData thread_data; + ++static void ++end_thread (pthread_t *ptid) ++{ ++ if (*ptid) ++ { ++ pthread_cancel (*ptid); ++ xpthread_join (*ptid); ++ /* The descriptor was passed in, or the helper thread made ++ sufficient progress and opened the file. */ ++ if (thread_data.fd >= 0) ++ xclose (thread_data.fd); ++ *ptid = 0; ++ } ++} ++ + static void * + writer_thread_proc (void *closure) + { +@@ -306,7 +321,7 @@ static void + start_writer_thread_n (const char *fname) + { + debug; +- thread_data.fd = 0; ++ thread_data.fd = -1; + thread_data.fname = fname; + writer_thread_tid = xpthread_create (NULL, writer_thread_proc, + (void *)&thread_data); +@@ -316,13 +331,7 @@ static void + end_writer_thread (void) + { + debug; +- if (writer_thread_tid) +- { +- pthread_cancel (writer_thread_tid); +- xpthread_join (writer_thread_tid); +- xclose (thread_data.fd); +- writer_thread_tid = 0; +- } ++ end_thread (&writer_thread_tid); + } + + static void +@@ -339,7 +348,7 @@ static void + start_reader_thread_n (const char *fname) + { + debug; +- thread_data.fd = 0; ++ thread_data.fd = -1; + thread_data.fname = fname; + reader_thread_tid = xpthread_create (NULL, reader_thread_proc, + (void *)&thread_data); +@@ -349,13 +358,7 @@ static void + end_reader_thread (void) + { + debug; +- if (reader_thread_tid) +- { +- pthread_cancel (reader_thread_tid); +- xpthread_join (reader_thread_tid); +- xclose (thread_data.fd); +- reader_thread_tid = 0; +- } ++ end_thread (&reader_thread_tid); + } + + /*------------------------------------------------------------*/ +@@ -852,7 +855,7 @@ do_second_part (FILE *fp, + } + + +- fclose (fp); ++ xfclose (fp); + return rv; + } + +@@ -939,7 +942,7 @@ recurse (FILE *fp, + break; + + default: /* parent */ +- fclose (fp); ++ xfclose (fp); + xwaitpid (pid, &status, 0); + if (WIFEXITED (status) + && WEXITSTATUS (status) == 0) diff --git a/SOURCES/glibc-RHEL-47403-1.patch b/SOURCES/glibc-RHEL-47403-1.patch new file mode 100644 index 0000000..96d4c50 --- /dev/null +++ b/SOURCES/glibc-RHEL-47403-1.patch @@ -0,0 +1,562 @@ +commit a93d9e03a31ec14405cb3a09aa95413b67067380 +Author: H.J. Lu +Date: Tue Aug 17 19:35:48 2021 -0700 + + Extend struct r_debug to support multiple namespaces [BZ #15971] + + Glibc does not provide an interface for debugger to access libraries + loaded in multiple namespaces via dlmopen. + + The current rtld-debugger interface is described in the file: + + elf/rtld-debugger-interface.txt + + under the "Standard debugger interface" heading. This interface only + provides access to the first link-map (LM_ID_BASE). + + 1. Bump r_version to 2 when multiple namespaces are used. This triggers + the GDB bug: + + https://sourceware.org/bugzilla/show_bug.cgi?id=28236 + + 2. Add struct r_debug_extended to extend struct r_debug into a linked-list, + where each element correlates to an unique namespace. + 3. Initialize the r_debug_extended structure. Bump r_version to 2 for + the new namespace and add the new namespace to the namespace linked list. + 4. Add _dl_debug_update to return the address of struct r_debug' of a + namespace. + 5. Add a hidden symbol, _r_debug_extended, for struct r_debug_extended. + 6. Provide the symbol, _r_debug, with size of struct r_debug, as an alias + of _r_debug_extended, for programs which reference _r_debug. + + This fixes BZ #15971. + + Reviewed-by: Florian Weimer + +Conflicts: + elf/Makefile (fixup context due to reordering) + elf/dl-open.c (modified line didn't exist downstream) + +diff --git a/csu/Makefile b/csu/Makefile +index 3054329cea4a276d..e2390e4a7deb6941 100644 +--- a/csu/Makefile ++++ b/csu/Makefile +@@ -88,6 +88,9 @@ endif + before-compile += $(objpfx)abi-tag.h + generated += abi-tag.h + ++# Put it here to generate it earlier. ++gen-as-const-headers += rtld-sizes.sym ++ + # These are the special initializer/finalizer files. They are always the + # first and last file in the link. crti.o ... crtn.o define the global + # "functions" _init and _fini to run the .init and .fini sections. +diff --git a/csu/rtld-sizes.sym b/csu/rtld-sizes.sym +new file mode 100644 +index 0000000000000000..13924d5efdbaa248 +--- /dev/null ++++ b/csu/rtld-sizes.sym +@@ -0,0 +1,6 @@ ++#include ++ ++-- ++R_DEBUG_SIZE sizeof (struct r_debug) ++R_DEBUG_EXTENDED_SIZE sizeof (struct r_debug_extended) ++R_DEBUG_EXTENDED_ALIGN __alignof (struct r_debug_extended) +diff --git a/elf/Makefile b/elf/Makefile +index 15bec14364266c77..b074cc29664b3e20 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -54,6 +54,7 @@ dl-routines = \ + dl-catch \ + dl-close \ + dl-debug \ ++ dl-debug-symbols \ + dl-deps \ + dl-exception \ + dl-execstack \ +@@ -399,6 +400,7 @@ tests += \ + tst-dlmodcount \ + tst-dlmopen1 \ + tst-dlmopen3 \ ++ tst-dlmopen4 \ + tst-dlmopen-dlerror \ + tst-dlmopen-gethostbyname \ + tst-dlmopen-twice \ +@@ -1973,6 +1975,8 @@ $(objpfx)tst-dlmopen2.out: $(objpfx)tst-dlmopen1mod.so + + $(objpfx)tst-dlmopen3.out: $(objpfx)tst-dlmopen1mod.so + ++$(objpfx)tst-dlmopen4.out: $(objpfx)tst-dlmopen1mod.so ++ + $(objpfx)tst-audit1.out: $(objpfx)tst-auditmod1.so + tst-audit1-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so + +diff --git a/elf/dl-close.c b/elf/dl-close.c +index 9d158c25498fd8ae..bf699e58d753a1e2 100644 +--- a/elf/dl-close.c ++++ b/elf/dl-close.c +@@ -469,7 +469,7 @@ _dl_close_worker (struct link_map *map, bool force) + #endif + + /* Notify the debugger we are about to remove some loaded objects. */ +- struct r_debug *r = _dl_debug_initialize (0, nsid); ++ struct r_debug *r = _dl_debug_update (nsid); + r->r_state = RT_DELETE; + _dl_debug_state (); + LIBC_PROBE (unmap_start, 2, nsid, r); +diff --git a/elf/dl-debug-symbols.S b/elf/dl-debug-symbols.S +new file mode 100644 +index 0000000000000000..b7e9f5d9470c4da2 +--- /dev/null ++++ b/elf/dl-debug-symbols.S +@@ -0,0 +1,36 @@ ++/* Define symbols used to communicate dynamic linker state to the ++ debugger at runtime. ++ Copyright (C) 2021 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++/* Define 2 symbols, _r_debug_extended and _r_debug, which is an alias ++ of _r_debug_extended, but with the size of struct r_debug. */ ++ ++ .globl _r_debug ++ .type _r_debug, %object ++ .size _r_debug, R_DEBUG_SIZE ++ .hidden _r_debug_extended ++ .globl _r_debug_extended ++ .type _r_debug_extended, %object ++ .size _r_debug_extended, R_DEBUG_EXTENDED_SIZE ++ .section .bss ++ .balign R_DEBUG_EXTENDED_ALIGN ++_r_debug: ++_r_debug_extended: ++ .zero R_DEBUG_EXTENDED_SIZE +diff --git a/elf/dl-debug.c b/elf/dl-debug.c +index 2cd5f0975380445c..f637d4bb8de3db8c 100644 +--- a/elf/dl-debug.c ++++ b/elf/dl-debug.c +@@ -30,37 +30,80 @@ extern const int verify_link_map_members[(VERIFY_MEMBER (l_addr) + && VERIFY_MEMBER (l_prev)) + ? 1 : -1]; + +-/* This structure communicates dl state to the debugger. The debugger +- normally finds it via the DT_DEBUG entry in the dynamic section, but in +- a statically-linked program there is no dynamic section for the debugger +- to examine and it looks for this particular symbol name. */ +-struct r_debug _r_debug; ++/* Update the `r_map' member and return the address of `struct r_debug' ++ of the namespace NS. */ + ++struct r_debug * ++_dl_debug_update (Lmid_t ns) ++{ ++ struct r_debug_extended *r; ++ if (ns == LM_ID_BASE) ++ r = &_r_debug_extended; ++ else ++ r = &GL(dl_ns)[ns]._ns_debug; ++ if (r->base.r_map == NULL) ++ atomic_store_release (&r->base.r_map, ++ (void *) GL(dl_ns)[ns]._ns_loaded); ++ return &r->base; ++} + +-/* Initialize _r_debug if it has not already been done. The argument is +- the run-time load address of the dynamic linker, to be put in +- _r_debug.r_ldbase. Returns the address of _r_debug. */ ++/* Initialize _r_debug_extended for the namespace NS. LDBASE is the ++ run-time load address of the dynamic linker, to be put in ++ _r_debug_extended.r_ldbase. Return the address of _r_debug. */ + + struct r_debug * + _dl_debug_initialize (ElfW(Addr) ldbase, Lmid_t ns) + { +- struct r_debug *r; ++ struct r_debug_extended *r, **pp = NULL; + + if (ns == LM_ID_BASE) +- r = &_r_debug; +- else +- r = &GL(dl_ns)[ns]._ns_debug; ++ { ++ r = &_r_debug_extended; ++ /* Initialize r_version to 1. */ ++ if (_r_debug_extended.base.r_version == 0) ++ _r_debug_extended.base.r_version = 1; ++ } ++ else if (DL_NNS > 1) ++ { ++ r = &GL(dl_ns)[ns]._ns_debug; ++ if (r->base.r_brk == 0) ++ { ++ /* Add the new namespace to the linked list. After a namespace ++ is initialized, r_brk becomes non-zero. A namespace becomes ++ empty (r_map == NULL) when it is unused. But it is never ++ removed from the linked list. */ ++ struct r_debug_extended *p; ++ for (pp = &_r_debug_extended.r_next; ++ (p = *pp) != NULL; ++ pp = &p->r_next) ++ ; ++ ++ r->base.r_version = 2; ++ } ++ } ++ ++ if (r->base.r_brk == 0) ++ { ++ /* Tell the debugger where to find the map of loaded objects. ++ This function is called from dlopen. Initialize the namespace ++ only once. */ ++ r->base.r_ldbase = ldbase ?: _r_debug_extended.base.r_ldbase; ++ r->base.r_brk = (ElfW(Addr)) &_dl_debug_state; ++ r->r_next = NULL; ++ } ++ ++ if (r->base.r_map == NULL) ++ atomic_store_release (&r->base.r_map, ++ (void *) GL(dl_ns)[ns]._ns_loaded); + +- if (r->r_map == NULL || ldbase != 0) ++ if (pp != NULL) + { +- /* Tell the debugger where to find the map of loaded objects. */ +- r->r_version = 1 /* R_DEBUG_VERSION XXX */; +- r->r_ldbase = ldbase ?: _r_debug.r_ldbase; +- r->r_map = (void *) GL(dl_ns)[ns]._ns_loaded; +- r->r_brk = (ElfW(Addr)) &_dl_debug_state; ++ atomic_store_release (pp, r); ++ /* Bump r_version to 2 for the new namespace. */ ++ atomic_store_release (&_r_debug_extended.base.r_version, 2); + } + +- return r; ++ return &r->base; + } + + +diff --git a/elf/dl-load.c b/elf/dl-load.c +index eb6b658b698f5694..5b0734c816b351f0 100644 +--- a/elf/dl-load.c ++++ b/elf/dl-load.c +@@ -950,7 +950,7 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd, + /* Initialize to keep the compiler happy. */ + const char *errstring = NULL; + int errval = 0; +- struct r_debug *r = _dl_debug_initialize (0, nsid); ++ struct r_debug *r = _dl_debug_update (nsid); + bool make_consistent = false; + + /* Get file information. To match the kernel behavior, do not fill +diff --git a/elf/dl-open.c b/elf/dl-open.c +index 80af6518d4395906..eef724f7e9b2211d 100644 +--- a/elf/dl-open.c ++++ b/elf/dl-open.c +@@ -596,7 +596,7 @@ dl_open_worker_begin (void *a) + if ((mode & RTLD_GLOBAL) && new->l_global == 0) + add_to_global_update (new); + +- assert (_dl_debug_initialize (0, args->nsid)->r_state == RT_CONSISTENT); ++ assert (_dl_debug_update (args->nsid)->r_state == RT_CONSISTENT); + + return; + } +@@ -634,7 +634,7 @@ dl_open_worker_begin (void *a) + #endif + + /* Notify the debugger all new objects are now ready to go. */ +- struct r_debug *r = _dl_debug_initialize (0, args->nsid); ++ struct r_debug *r = _dl_debug_update (args->nsid); + r->r_state = RT_CONSISTENT; + _dl_debug_state (); + LIBC_PROBE (map_complete, 3, args->nsid, r, new); +@@ -840,7 +840,7 @@ no more namespaces available for dlmopen()")); + } + + GL(dl_ns)[nsid].libc_map = NULL; +- _dl_debug_initialize (0, nsid)->r_state = RT_CONSISTENT; ++ _dl_debug_update (nsid)->r_state = RT_CONSISTENT; + } + /* Never allow loading a DSO in a namespace which is empty. Such + direct placements is only causing problems. Also don't allow +@@ -916,7 +916,7 @@ no more namespaces available for dlmopen()")); + _dl_signal_exception (errcode, &exception, NULL); + } + +- assert (_dl_debug_initialize (0, args.nsid)->r_state == RT_CONSISTENT); ++ assert (_dl_debug_update (args.nsid)->r_state == RT_CONSISTENT); + + /* Release the lock. */ + __rtld_lock_unlock_recursive (GL(dl_load_lock)); +diff --git a/elf/dl-reloc-static-pie.c b/elf/dl-reloc-static-pie.c +index 757205affe65d9e1..5b85df8a2eed1888 100644 +--- a/elf/dl-reloc-static-pie.c ++++ b/elf/dl-reloc-static-pie.c +@@ -62,7 +62,7 @@ _dl_relocate_static_pie (void) + ELF_DYNAMIC_RELOCATE (main_map, NULL, 0, 0, 0); + main_map->l_relocated = 1; + +- /* Initialize _r_debug. */ ++ /* Initialize _r_debug_extended. */ + struct r_debug *r = _dl_debug_initialize (0, LM_ID_BASE); + r->r_state = RT_CONSISTENT; + +diff --git a/elf/link.h b/elf/link.h +index 21a351686b9bf7c8..0906bbe33fbd9f8f 100644 +--- a/elf/link.h ++++ b/elf/link.h +@@ -34,14 +34,13 @@ + #include /* Defines __ELF_NATIVE_CLASS. */ + #include + +-/* Rendezvous structure used by the run-time dynamic linker to communicate +- details of shared object loading to the debugger. If the executable's +- dynamic section has a DT_DEBUG element, the run-time linker sets that +- element's value to the address where this structure can be found. */ ++/* The legacy rendezvous structure used by the run-time dynamic linker to ++ communicate details of shared object loading to the debugger. */ + + struct r_debug + { +- int r_version; /* Version number for this protocol. */ ++ /* Version number for this protocol. It should be greater than 0. */ ++ int r_version; + + struct link_map *r_map; /* Head of the chain of loaded objects. */ + +@@ -63,16 +62,34 @@ struct r_debug + ElfW(Addr) r_ldbase; /* Base address the linker is loaded at. */ + }; + +-/* This is the instance of that structure used by the dynamic linker. */ ++/* This is the symbol of that structure provided by the dynamic linker. */ + extern struct r_debug _r_debug; + ++/* The extended rendezvous structure used by the run-time dynamic linker ++ to communicate details of shared object loading to the debugger. If ++ the executable's dynamic section has a DT_DEBUG element, the run-time ++ linker sets that element's value to the address where this structure ++ can be found. */ ++ ++struct r_debug_extended ++ { ++ struct r_debug base; ++ ++ /* The following field is added by r_version == 2. */ ++ ++ /* Link to the next r_debug_extended structure. Each r_debug_extended ++ structure represents a different namespace. The first ++ r_debug_extended structure is for the default namespace. */ ++ struct r_debug_extended *r_next; ++ }; ++ + /* This symbol refers to the "dynamic structure" in the `.dynamic' section + of whatever module refers to `_DYNAMIC'. So, to find its own +- `struct r_debug', a program could do: ++ `struct r_debug_extended', a program could do: + for (dyn = _DYNAMIC; dyn->d_tag != DT_NULL; ++dyn) + if (dyn->d_tag == DT_DEBUG) +- r_debug = (struct r_debug *) dyn->d_un.d_ptr; +- */ ++ r_debug_extended = (struct r_debug_extended *) dyn->d_un.d_ptr; ++ */ + extern ElfW(Dyn) _DYNAMIC[]; + + /* Structure describing a loaded shared object. The `l_next' and `l_prev' +diff --git a/elf/rtld-debugger-interface.txt b/elf/rtld-debugger-interface.txt +index 61bc99e4b086612f..f3476d8308616f84 100644 +--- a/elf/rtld-debugger-interface.txt ++++ b/elf/rtld-debugger-interface.txt +@@ -9,6 +9,9 @@ structure can be found. + + The r_debug structure contains (amongst others) the following fields: + ++ int r_version: ++ Version number for this protocol. It should be greater than 0. ++ + struct link_map *r_map: + A linked list of loaded objects. + +@@ -32,6 +35,18 @@ but there is no way for the debugger to discover whether any of the + objects in the link-map have been relocated or not. + + ++Extension to the r_debug structure ++================================== ++ ++The r_debug_extended structure is an extension of the r_debug interface. ++If r_version is 2, one additional field is available: ++ ++ struct r_debug_extended *r_next; ++ Link to the next r_debug_extended structure. Each r_debug_extended ++ structure represents a different namespace. A namespace is active ++ if its r_map field isn't NULL. The first r_debug_extended structure ++ is for the default namespace. ++ + Probe-based debugger interface + ============================== + +diff --git a/elf/rtld.c b/elf/rtld.c +index d3d9e6b904ac78fd..7d8ed0ac1188d527 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -1725,7 +1725,7 @@ dl_main (const ElfW(Phdr) *phdr, + objects. */ + call_init_paths (&state); + +- /* Initialize _r_debug. */ ++ /* Initialize _r_debug_extended. */ + struct r_debug *r = _dl_debug_initialize (GL(dl_rtld_map).l_addr, + LM_ID_BASE); + r->r_state = RT_CONSISTENT; +@@ -2531,7 +2531,7 @@ dl_main (const ElfW(Phdr) *phdr, + + /* Notify the debugger all new objects are now ready to go. We must re-get + the address since by now the variable might be in another object. */ +- r = _dl_debug_initialize (0, LM_ID_BASE); ++ r = _dl_debug_update (LM_ID_BASE); + r->r_state = RT_CONSISTENT; + _dl_debug_state (); + LIBC_PROBE (init_complete, 2, LM_ID_BASE, r); +diff --git a/elf/tst-dlmopen4.c b/elf/tst-dlmopen4.c +new file mode 100644 +index 0000000000000000..3fe150e50bc259f0 +--- /dev/null ++++ b/elf/tst-dlmopen4.c +@@ -0,0 +1,72 @@ ++/* Test struct r_debug_extended via DT_DEBUG. ++ Copyright (C) 2021 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#ifndef ELF_MACHINE_GET_R_DEBUG ++# define ELF_MACHINE_GET_R_DEBUG(d) \ ++ (__extension__ ({ \ ++ struct r_debug_extended *debug; \ ++ if ((d)->d_tag == DT_DEBUG) \ ++ debug = (struct r_debug_extended *) (d)->d_un.d_ptr; \ ++ else \ ++ debug = NULL; \ ++ debug; })) ++#endif ++ ++static int ++do_test (void) ++{ ++ ElfW(Dyn) *d; ++ struct r_debug_extended *debug = NULL; ++ ++ for (d = _DYNAMIC; d->d_tag != DT_NULL; ++d) ++ { ++ debug = ELF_MACHINE_GET_R_DEBUG (d); ++ if (debug != NULL) ++ break; ++ } ++ ++ TEST_VERIFY_EXIT (debug != NULL); ++ TEST_COMPARE (debug->base.r_version, 1); ++ TEST_VERIFY_EXIT (debug->r_next == NULL); ++ ++ void *h = xdlmopen (LM_ID_NEWLM, "$ORIGIN/tst-dlmopen1mod.so", ++ RTLD_LAZY); ++ ++ TEST_COMPARE (debug->base.r_version, 2); ++ TEST_VERIFY_EXIT (debug->r_next != NULL); ++ TEST_VERIFY_EXIT (debug->r_next->r_next == NULL); ++ TEST_VERIFY_EXIT (debug->r_next->base.r_map != NULL); ++ TEST_VERIFY_EXIT (debug->r_next->base.r_map->l_name != NULL); ++ const char *name = basename (debug->r_next->base.r_map->l_name); ++ TEST_COMPARE_STRING (name, "tst-dlmopen1mod.so"); ++ ++ xdlclose (h); ++ ++ return 0; ++} ++ ++#include +diff --git a/include/link.h b/include/link.h +index 0dc63ef37d6a5666..0cf130ddb8af2e89 100644 +--- a/include/link.h ++++ b/include/link.h +@@ -362,6 +362,10 @@ struct auditstate + }; + + ++/* This is the hidden instance of struct r_debug_extended used by the ++ dynamic linker. */ ++extern struct r_debug_extended _r_debug_extended attribute_hidden; ++ + #if __ELF_NATIVE_CLASS == 32 + # define symbind symbind32 + # define LA_SYMBIND "la_symbind32" +diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h +index dc4e0555e4ed7f3c..695f3910234e87da 100644 +--- a/sysdeps/generic/ldsodefs.h ++++ b/sysdeps/generic/ldsodefs.h +@@ -376,7 +376,7 @@ struct rtld_global + void (*free) (void *); + } _ns_unique_sym_table; + /* Keep track of changes to each namespace' list. */ +- struct r_debug _ns_debug; ++ struct r_debug_extended _ns_debug; + } _dl_ns[DL_NNS]; + /* One higher than index of last used namespace. */ + EXTERN size_t _dl_nns; +@@ -1128,12 +1128,16 @@ extern void _dl_sort_maps (struct link_map **maps, unsigned int nmaps, + extern void _dl_debug_state (void); + rtld_hidden_proto (_dl_debug_state) + +-/* Initialize `struct r_debug' if it has not already been done. The +- argument is the run-time load address of the dynamic linker, to be put +- in the `r_ldbase' member. Returns the address of the structure. */ ++/* Initialize `struct r_debug_extended' for the namespace NS. LDBASE ++ is the run-time load address of the dynamic linker, to be put in the ++ `r_ldbase' member. Return the address of the structure. */ + extern struct r_debug *_dl_debug_initialize (ElfW(Addr) ldbase, Lmid_t ns) + attribute_hidden; + ++/* Update the `r_map' member and return the address of `struct r_debug' ++ of the namespace NS. */ ++extern struct r_debug *_dl_debug_update (Lmid_t ns) attribute_hidden; ++ + /* Initialize the basic data structure for the search paths. SOURCE + is either "LD_LIBRARY_PATH" or "--library-path". + GLIBC_HWCAPS_PREPEND adds additional glibc-hwcaps subdirectories to diff --git a/SOURCES/glibc-RHEL-47403-10.patch b/SOURCES/glibc-RHEL-47403-10.patch new file mode 100644 index 0000000..bc3a0d6 --- /dev/null +++ b/SOURCES/glibc-RHEL-47403-10.patch @@ -0,0 +1,158 @@ +commit 7278d11f3a0cd528188c719bab75575b0aea2c6e +Author: Florian Weimer +Date: Fri Jul 4 21:46:05 2025 +0200 + + elf: Introduce separate _r_debug_array variable + + It replaces the ns_debug member of the namespaces. Previously, + the base namespace had an unused ns_debug member. + + This change also fixes a concurrency issue: Now _dl_debug_initialize + only updates r_next of the previous namespace's r_debug after the new + r_debug is initialized, so that only the initialized version is + observed. (Client code accessing _r_debug will benefit from load + dependency tracking in CPUs even without explicit barriers.) + + Reviewed-by: H.J. Lu + +diff --git a/elf/dl-debug.c b/elf/dl-debug.c +index f637d4bb8de3db8c..649386d5a6b885ed 100644 +--- a/elf/dl-debug.c ++++ b/elf/dl-debug.c +@@ -30,17 +30,37 @@ extern const int verify_link_map_members[(VERIFY_MEMBER (l_addr) + && VERIFY_MEMBER (l_prev)) + ? 1 : -1]; + ++#ifdef SHARED ++/* r_debug structs for secondary namespaces. The first namespace is ++ handled separately because its r_debug structure must overlap with ++ the public _r_debug symbol, so the first array element corresponds ++ to LM_ID_BASE + 1. See elf/dl-debug-symbols.S. */ ++struct r_debug_extended _r_debug_array[DL_NNS - 1]; ++ ++/* Return the r_debug object for the namespace NS. */ ++static inline struct r_debug_extended * ++get_rdebug (Lmid_t ns) ++{ ++ if (ns == LM_ID_BASE) ++ return &_r_debug_extended; ++ else ++ return &_r_debug_array[ns - 1]; ++} ++#else /* !SHARED */ ++static inline struct r_debug_extended * ++get_rdebug (Lmid_t ns) ++{ ++ return &_r_debug_extended; /* There is just one namespace. */ ++} ++#endif /* !SHARED */ ++ + /* Update the `r_map' member and return the address of `struct r_debug' + of the namespace NS. */ + + struct r_debug * + _dl_debug_update (Lmid_t ns) + { +- struct r_debug_extended *r; +- if (ns == LM_ID_BASE) +- r = &_r_debug_extended; +- else +- r = &GL(dl_ns)[ns]._ns_debug; ++ struct r_debug_extended *r = get_rdebug (ns); + if (r->base.r_map == NULL) + atomic_store_release (&r->base.r_map, + (void *) GL(dl_ns)[ns]._ns_loaded); +@@ -54,34 +74,7 @@ _dl_debug_update (Lmid_t ns) + struct r_debug * + _dl_debug_initialize (ElfW(Addr) ldbase, Lmid_t ns) + { +- struct r_debug_extended *r, **pp = NULL; +- +- if (ns == LM_ID_BASE) +- { +- r = &_r_debug_extended; +- /* Initialize r_version to 1. */ +- if (_r_debug_extended.base.r_version == 0) +- _r_debug_extended.base.r_version = 1; +- } +- else if (DL_NNS > 1) +- { +- r = &GL(dl_ns)[ns]._ns_debug; +- if (r->base.r_brk == 0) +- { +- /* Add the new namespace to the linked list. After a namespace +- is initialized, r_brk becomes non-zero. A namespace becomes +- empty (r_map == NULL) when it is unused. But it is never +- removed from the linked list. */ +- struct r_debug_extended *p; +- for (pp = &_r_debug_extended.r_next; +- (p = *pp) != NULL; +- pp = &p->r_next) +- ; +- +- r->base.r_version = 2; +- } +- } +- ++ struct r_debug_extended *r = get_rdebug (ns); + if (r->base.r_brk == 0) + { + /* Tell the debugger where to find the map of loaded objects. +@@ -89,20 +82,36 @@ _dl_debug_initialize (ElfW(Addr) ldbase, Lmid_t ns) + only once. */ + r->base.r_ldbase = ldbase ?: _r_debug_extended.base.r_ldbase; + r->base.r_brk = (ElfW(Addr)) &_dl_debug_state; +- r->r_next = NULL; ++ ++#ifdef SHARED ++ /* Add the new namespace to the linked list. This assumes that ++ namespaces are allocated in increasing order. After a ++ namespace is initialized, r_brk becomes non-zero. A ++ namespace becomes empty (r_map == NULL) when it is unused. ++ But it is never removed from the linked list. */ ++ ++ if (ns != LM_ID_BASE) ++ { ++ r->base.r_version = 2; ++ if (ns - 1 == LM_ID_BASE) ++ { ++ atomic_store_release (&_r_debug_extended.r_next, r); ++ /* Now there are multiple namespaces. */ ++ atomic_store_release (&_r_debug_extended.base.r_version, 2); ++ } ++ else ++ /* Update r_debug_extended of the previous namespace. */ ++ atomic_store_release (&_r_debug_array[ns - 2].r_next, r); ++ } ++ else ++#endif /* SHARED */ ++ r->base.r_version = 1; + } + + if (r->base.r_map == NULL) + atomic_store_release (&r->base.r_map, + (void *) GL(dl_ns)[ns]._ns_loaded); + +- if (pp != NULL) +- { +- atomic_store_release (pp, r); +- /* Bump r_version to 2 for the new namespace. */ +- atomic_store_release (&_r_debug_extended.base.r_version, 2); +- } +- + return &r->base; + } + +diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h +index 695f3910234e87da..e09edb01da3b5b90 100644 +--- a/sysdeps/generic/ldsodefs.h ++++ b/sysdeps/generic/ldsodefs.h +@@ -375,8 +375,6 @@ struct rtld_global + size_t n_elements; + void (*free) (void *); + } _ns_unique_sym_table; +- /* Keep track of changes to each namespace' list. */ +- struct r_debug_extended _ns_debug; + } _dl_ns[DL_NNS]; + /* One higher than index of last used namespace. */ + EXTERN size_t _dl_nns; diff --git a/SOURCES/glibc-RHEL-47403-11.patch b/SOURCES/glibc-RHEL-47403-11.patch new file mode 100644 index 0000000..c95eba8 --- /dev/null +++ b/SOURCES/glibc-RHEL-47403-11.patch @@ -0,0 +1,17 @@ +Downstream patch to keep ABI stable. +Bring back a dummy `struct r_debug` member in `GL (dl_ns)`, to preserve +`_rtld_global` layout. + +diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h +index e09edb01da3b5b90..3d9b90a22bfa6a7d 100644 +--- a/sysdeps/generic/ldsodefs.h ++++ b/sysdeps/generic/ldsodefs.h +@@ -375,6 +375,8 @@ struct rtld_global + size_t n_elements; + void (*free) (void *); + } _ns_unique_sym_table; ++ /* Dummy structure to keep the ABI stable. */ ++ struct r_debug _ns_debug_unused; + } _dl_ns[DL_NNS]; + /* One higher than index of last used namespace. */ + EXTERN size_t _dl_nns; diff --git a/SOURCES/glibc-RHEL-47403-2.patch b/SOURCES/glibc-RHEL-47403-2.patch new file mode 100644 index 0000000..d7861e9 --- /dev/null +++ b/SOURCES/glibc-RHEL-47403-2.patch @@ -0,0 +1,26 @@ +commit 7e84ac3a3ac9e7c4dc10de2ce65db971b9650e4d +Author: Florian Weimer +Date: Mon Sep 20 15:50:00 2021 +0200 + + elf: Include in elf/dl-debug-symbols.S + + This is necessary to generate assembler marker sections on some + targets. + + Reviewed-by: Szabolcs Nagy + +diff --git a/elf/dl-debug-symbols.S b/elf/dl-debug-symbols.S +index b7e9f5d9470c4da2..28456ab1f237ea87 100644 +--- a/elf/dl-debug-symbols.S ++++ b/elf/dl-debug-symbols.S +@@ -18,6 +18,10 @@ + . */ + + #include ++#include ++ ++/* Some targets define a macro to denote the zero register. */ ++#undef zero + + /* Define 2 symbols, _r_debug_extended and _r_debug, which is an alias + of _r_debug_extended, but with the size of struct r_debug. */ diff --git a/SOURCES/glibc-RHEL-47403-3.patch b/SOURCES/glibc-RHEL-47403-3.patch new file mode 100644 index 0000000..58de62a --- /dev/null +++ b/SOURCES/glibc-RHEL-47403-3.patch @@ -0,0 +1,32 @@ +commit 1b5e65ef6a442fdccf88d43c3048f98292d85631 +Author: Paul Pluzhnikov +Date: Sat Mar 25 21:27:01 2023 +0000 + + Minor: don't call _dl_debug_update (which can have side effects) inside assert + +diff --git a/elf/dl-open.c b/elf/dl-open.c +index eef724f7e9b2211d..0d2b4cd4785a226a 100644 +--- a/elf/dl-open.c ++++ b/elf/dl-open.c +@@ -596,7 +596,9 @@ dl_open_worker_begin (void *a) + if ((mode & RTLD_GLOBAL) && new->l_global == 0) + add_to_global_update (new); + +- assert (_dl_debug_update (args->nsid)->r_state == RT_CONSISTENT); ++ const int r_state __attribute__ ((unused)) ++ = _dl_debug_update (args->nsid)->r_state; ++ assert (r_state == RT_CONSISTENT); + + return; + } +@@ -916,7 +918,9 @@ no more namespaces available for dlmopen()")); + _dl_signal_exception (errcode, &exception, NULL); + } + +- assert (_dl_debug_update (args.nsid)->r_state == RT_CONSISTENT); ++ const int r_state __attribute__ ((unused)) ++ = _dl_debug_update (args.nsid)->r_state; ++ assert (r_state == RT_CONSISTENT); + + /* Release the lock. */ + __rtld_lock_unlock_recursive (GL(dl_load_lock)); diff --git a/SOURCES/glibc-RHEL-47403-4.patch b/SOURCES/glibc-RHEL-47403-4.patch new file mode 100644 index 0000000..08e8cb9 --- /dev/null +++ b/SOURCES/glibc-RHEL-47403-4.patch @@ -0,0 +1,275 @@ +commit 9897ced8e78db5d813166a7ccccfd5a42c69ef20 +Author: Florian Weimer +Date: Fri Oct 25 16:50:10 2024 +0200 + + elf: Run constructors on cyclic recursive dlopen (bug 31986) + + This is conceptually similar to the reported bug, but does not + depend on auditing. The fix is simple: just complete execution + of the constructors. This exposed the fact that the link map + for statically linked executables does not have l_init_called + set, even though constructors have run. + + Reviewed-by: Adhemerval Zanella + +Conflicts: + elf/Makefile (fix local test re-ordering) + +diff --git a/elf/Makefile b/elf/Makefile +index b074cc29664b3e20..dc774b083eda202b 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -398,12 +398,15 @@ tests += \ + tst-dl-is_dso \ + tst-dlclose-lazy \ + tst-dlmodcount \ +- tst-dlmopen1 \ +- tst-dlmopen3 \ +- tst-dlmopen4 \ + tst-dlmopen-dlerror \ + tst-dlmopen-gethostbyname \ + tst-dlmopen-twice \ ++ tst-dlmopen1 \ ++ tst-dlmopen3 \ ++ tst-dlmopen4 \ ++ tst-dlopen-recurse \ ++ tst-dlopen-self \ ++ tst-dlopen-tlsmodid \ + tst-dlopen-tlsreinit1 \ + tst-dlopen-tlsreinit2 \ + tst-dlopen-tlsreinit3 \ +@@ -411,8 +414,6 @@ tests += \ + tst-dlopenfail \ + tst-dlopenfail-2 \ + tst-dlopenrpath \ +- tst-dlopen-self \ +- tst-dlopen-tlsmodid \ + tst-dlsym-error \ + tst-filterobj \ + tst-filterobj-dlopen \ +@@ -775,13 +776,15 @@ modules-names = \ + tst-deep1mod1 \ + tst-deep1mod2 \ + tst-deep1mod3 \ +- tst-dlmopen1mod \ + tst-dlclose-lazy-mod1 \ + tst-dlclose-lazy-mod2 \ + tst-dlmopen-dlerror-mod \ + tst-dlmopen-gethostbyname-mod \ + tst-dlmopen-twice-mod1 \ + tst-dlmopen-twice-mod2 \ ++ tst-dlmopen1mod \ ++ tst-dlopen-recursemod1 \ ++ tst-dlopen-recursemod2 \ + tst-dlopen-sgid-mod \ + tst-dlopen-tlsreinitmod1 \ + tst-dlopen-tlsreinitmod2 \ +@@ -2856,6 +2859,9 @@ tst-dlopen-tlsreinit3-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so + $(objpfx)tst-dlopen-tlsreinit4.out: $(objpfx)tst-auditmod1.so + tst-dlopen-tlsreinit4-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so + ++$(objpfx)tst-dlopen-recurse.out: $(objpfx)tst-dlopen-recursemod1.so ++$(objpfx)tst-dlopen-recursemod1.so: $(objpfx)tst-dlopen-recursemod2.so ++ + LDFLAGS-tst-hash-collision1-mod.so = -Wl,--hash-style=both + $(objpfx)tst-hash-collision1: $(objpfx)tst-hash-collision1-mod.so + LDFLAGS-tst-hash-collision1-mod-gnu.so = -Wl,--hash-style=gnu +diff --git a/elf/dl-open.c b/elf/dl-open.c +index 0d2b4cd4785a226a..0b0bfb8acda28caa 100644 +--- a/elf/dl-open.c ++++ b/elf/dl-open.c +@@ -600,6 +600,14 @@ dl_open_worker_begin (void *a) + = _dl_debug_update (args->nsid)->r_state; + assert (r_state == RT_CONSISTENT); + ++ /* Do not return without calling the (supposedly new) map's ++ constructor. This case occurs if a dependency of a directly ++ opened map has a constructor that calls dlopen again on the ++ initially opened map. The new map is initialized last, so ++ checking only it is enough. */ ++ if (!new->l_init_called) ++ _dl_catch_exception (NULL, call_dl_init, args); ++ + return; + } + +diff --git a/elf/dl-support.c b/elf/dl-support.c +index 00abc2d8056c78b0..f4dc9c61a2637f8b 100644 +--- a/elf/dl-support.c ++++ b/elf/dl-support.c +@@ -103,6 +103,7 @@ static struct link_map _dl_main_map = + .l_used = 1, + .l_tls_offset = NO_TLS_OFFSET, + .l_serial = 1, ++ .l_init_called = 1, + }; + + /* Namespace information. */ +diff --git a/elf/tst-dlopen-recurse.c b/elf/tst-dlopen-recurse.c +new file mode 100644 +index 0000000000000000..c7fb379d373c6e77 +--- /dev/null ++++ b/elf/tst-dlopen-recurse.c +@@ -0,0 +1,34 @@ ++/* Test that recursive dlopen runs constructors before return (bug 31986). ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ void *handle = xdlopen ("tst-dlopen-recursemod1.so", RTLD_NOW); ++ int *status = dlsym (handle, "recursemod1_status"); ++ printf ("info: recursemod1_status == %d (from main)\n", *status); ++ TEST_COMPARE (*status, 2); ++ xdlclose (handle); ++ return 0; ++} ++ ++#include +diff --git a/elf/tst-dlopen-recursemod1.c b/elf/tst-dlopen-recursemod1.c +new file mode 100644 +index 0000000000000000..5e0cc0eb8c32d6d4 +--- /dev/null ++++ b/elf/tst-dlopen-recursemod1.c +@@ -0,0 +1,50 @@ ++/* Directly opened test module that gets recursively opened again. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++int recursemod1_status; ++ ++/* Force linking against st-dlopen-recursemod2.so. Also allows ++ checking for relocation. */ ++extern int recursemod2_status; ++int *force_recursemod2_reference = &recursemod2_status; ++ ++static void __attribute__ ((constructor)) ++init (void) ++{ ++ ++recursemod1_status; ++ printf ("info: tst-dlopen-recursemod1.so constructor called (status %d)\n", ++ recursemod1_status); ++} ++ ++static void __attribute__ ((destructor)) ++fini (void) ++{ ++ /* The recursemod1_status variable was incremented in the ++ tst-dlopen-recursemod2.so constructor. */ ++ printf ("info: tst-dlopen-recursemod1.so destructor called (status %d)\n", ++ recursemod1_status); ++ if (recursemod1_status != 2) ++ { ++ puts ("error: recursemod1_status == 2 expected"); ++ exit (1); ++ } ++} +diff --git a/elf/tst-dlopen-recursemod2.c b/elf/tst-dlopen-recursemod2.c +new file mode 100644 +index 0000000000000000..edd2f2526b877810 +--- /dev/null ++++ b/elf/tst-dlopen-recursemod2.c +@@ -0,0 +1,66 @@ ++/* Indirectly opened module that recursively opens the directly opened module. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++int recursemod2_status; ++ ++static void __attribute__ ((constructor)) ++init (void) ++{ ++ ++recursemod2_status; ++ printf ("info: tst-dlopen-recursemod2.so constructor called (status %d)\n", ++ recursemod2_status); ++ void *handle = dlopen ("tst-dlopen-recursemod1.so", RTLD_NOW); ++ if (handle == NULL) ++ { ++ printf ("error: dlopen: %s\n", dlerror ()); ++ exit (1); ++ } ++ int *status = dlsym (handle, "recursemod1_status"); ++ if (status == NULL) ++ { ++ printf ("error: dlsym: %s\n", dlerror ()); ++ exit (1); ++ } ++ printf ("info: recursemod1_status == %d\n", *status); ++ if (*status != 1) ++ { ++ puts ("error: recursemod1_status == 1 expected"); ++ exit (1); ++ } ++ ++*status; ++ printf ("info: recursemod1_status == %d\n", *status); ++ ++ int **mod2_status = dlsym (handle, "force_recursemod2_reference"); ++ if (mod2_status == NULL || *mod2_status != &recursemod2_status) ++ { ++ puts ("error: invalid recursemod2_status address in" ++ " tst-dlopen-recursemod1.so"); ++ exit (1); ++ } ++} ++ ++static void __attribute__ ((destructor)) ++fini (void) ++{ ++ printf ("info: tst-dlopen-recursemod2.so destructor called (status %d)\n", ++ recursemod2_status); ++} diff --git a/SOURCES/glibc-RHEL-47403-5.patch b/SOURCES/glibc-RHEL-47403-5.patch new file mode 100644 index 0000000..92e6c4d --- /dev/null +++ b/SOURCES/glibc-RHEL-47403-5.patch @@ -0,0 +1,103 @@ +commit e096b7a1896886eb7dd2732ccbf1184b0eec9a63 +Author: Florian Weimer +Date: Fri Oct 25 16:50:10 2024 +0200 + + elf: Signal LA_ACT_CONSISTENT to auditors after RT_CONSISTENT switch + + Auditors can call into the dynamic loader again if + LA_ACT_CONSISTENT, and those recursive calls could observe + r_state != RT_CONSISTENT. + + We should consider failing dlopen/dlmopen/dlclose if + r_state != RT_CONSISTENT. The dynamic linker is probably not + in a state in which it can handle reentrant calls. This + needs further investigation. + + Reviewed-by: Adhemerval Zanella + +Conflicts: + elf/rtld.c (kept SHARED guard downstream) + +diff --git a/elf/dl-close.c b/elf/dl-close.c +index bf699e58d753a1e2..8a4c3528a124d4e7 100644 +--- a/elf/dl-close.c ++++ b/elf/dl-close.c +@@ -759,6 +759,11 @@ _dl_close_worker (struct link_map *map, bool force) + /* TLS is cleaned up for the unloaded modules. */ + __rtld_lock_unlock_recursive (GL(dl_load_tls_lock)); + ++ /* Notify the debugger those objects are finalized and gone. */ ++ r->r_state = RT_CONSISTENT; ++ _dl_debug_state (); ++ LIBC_PROBE (unmap_complete, 2, nsid, r); ++ + #ifdef SHARED + /* Auditing checkpoint: we have deleted all objects. Also, do not notify + auditors of the cleanup of a failed audit module loading attempt. */ +@@ -771,11 +776,6 @@ _dl_close_worker (struct link_map *map, bool force) + --GL(dl_nns); + while (GL(dl_ns)[GL(dl_nns) - 1]._ns_loaded == NULL); + +- /* Notify the debugger those objects are finalized and gone. */ +- r->r_state = RT_CONSISTENT; +- _dl_debug_state (); +- LIBC_PROBE (unmap_complete, 2, nsid, r); +- + /* Recheck if we need to retry, release the lock. */ + out: + if (dl_close_state == rerun) +diff --git a/elf/dl-open.c b/elf/dl-open.c +index 0b0bfb8acda28caa..5095ea4f96b6cf49 100644 +--- a/elf/dl-open.c ++++ b/elf/dl-open.c +@@ -638,17 +638,17 @@ dl_open_worker_begin (void *a) + #endif + } + +-#ifdef SHARED +- /* Auditing checkpoint: we have added all objects. */ +- _dl_audit_activity_nsid (new->l_ns, LA_ACT_CONSISTENT); +-#endif +- + /* Notify the debugger all new objects are now ready to go. */ + struct r_debug *r = _dl_debug_update (args->nsid); + r->r_state = RT_CONSISTENT; + _dl_debug_state (); + LIBC_PROBE (map_complete, 3, args->nsid, r, new); + ++#ifdef SHARED ++ /* Auditing checkpoint: we have added all objects. */ ++ _dl_audit_activity_nsid (new->l_ns, LA_ACT_CONSISTENT); ++#endif ++ + _dl_open_check (new); + + /* Print scope information. */ +diff --git a/elf/rtld.c b/elf/rtld.c +index 7d8ed0ac1188d527..cd233174c9d944b2 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -2524,11 +2524,6 @@ dl_main (const ElfW(Phdr) *phdr, + _dl_relocate_object might need to call `mprotect' for DT_TEXTREL. */ + _dl_sysdep_start_cleanup (); + +-#ifdef SHARED +- /* Auditing checkpoint: we have added all objects. */ +- _dl_audit_activity_nsid (LM_ID_BASE, LA_ACT_CONSISTENT); +-#endif +- + /* Notify the debugger all new objects are now ready to go. We must re-get + the address since by now the variable might be in another object. */ + r = _dl_debug_update (LM_ID_BASE); +@@ -2536,6 +2531,11 @@ dl_main (const ElfW(Phdr) *phdr, + _dl_debug_state (); + LIBC_PROBE (init_complete, 2, LM_ID_BASE, r); + ++#ifdef SHARED ++ /* Auditing checkpoint: we have added all objects. */ ++ _dl_audit_activity_nsid (LM_ID_BASE, LA_ACT_CONSISTENT); ++#endif ++ + #if defined USE_LDCONFIG && !defined MAP_COPY + /* We must munmap() the cache file. */ + _dl_unload_cache (); diff --git a/SOURCES/glibc-RHEL-47403-6.patch b/SOURCES/glibc-RHEL-47403-6.patch new file mode 100644 index 0000000..97e3939 --- /dev/null +++ b/SOURCES/glibc-RHEL-47403-6.patch @@ -0,0 +1,342 @@ +commit 43db5e2c0672cae7edea7c9685b22317eae25471 +Author: Florian Weimer +Date: Fri Oct 25 16:50:10 2024 +0200 + + elf: Signal RT_CONSISTENT after relocation processing in dlopen (bug 31986) + + Previously, a la_activity audit event was generated before + relocation processing completed. This does did not match what + happened during initial startup in elf/rtld.c (towards the end + of dl_main). It also caused various problems if an auditor + tried to open the same shared object again using dlmopen: + If it was the directly loaded object, it had a search scope + associated with it, so the early exit in dl_open_worker_begin + was taken even though the object was unrelocated. This caused + the r_state == RT_CONSISTENT assert to fail. Avoidance of the + assert also depends on reversing the order of r_state update + and auditor event (already implemented in a previous commit). + + At the later point, args->map can be NULL due to failure, + so use the assigned namespace ID instead if that is available. + + Reviewed-by: Adhemerval Zanella + +Conflicts: + elf/Makefile (fixup context) + +diff --git a/elf/Makefile b/elf/Makefile +index dc774b083eda202b..73deb69f5a3c9150 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -404,6 +404,7 @@ tests += \ + tst-dlmopen1 \ + tst-dlmopen3 \ + tst-dlmopen4 \ ++ tst-dlopen-auditdup \ + tst-dlopen-recurse \ + tst-dlopen-self \ + tst-dlopen-tlsmodid \ +@@ -783,6 +784,8 @@ modules-names = \ + tst-dlmopen-twice-mod1 \ + tst-dlmopen-twice-mod2 \ + tst-dlmopen1mod \ ++ tst-dlopen-auditdup-auditmod \ ++ tst-dlopen-auditdupmod \ + tst-dlopen-recursemod1 \ + tst-dlopen-recursemod2 \ + tst-dlopen-sgid-mod \ +@@ -2861,6 +2864,9 @@ tst-dlopen-tlsreinit4-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so + + $(objpfx)tst-dlopen-recurse.out: $(objpfx)tst-dlopen-recursemod1.so + $(objpfx)tst-dlopen-recursemod1.so: $(objpfx)tst-dlopen-recursemod2.so ++tst-dlopen-auditdup-ENV = LD_AUDIT=$(objpfx)tst-dlopen-auditdup-auditmod.so ++$(objpfx)tst-dlopen-auditdup.out: \ ++ $(objpfx)tst-dlopen-auditdupmod.so $(objpfx)tst-dlopen-auditdup-auditmod.so + + LDFLAGS-tst-hash-collision1-mod.so = -Wl,--hash-style=both + $(objpfx)tst-hash-collision1: $(objpfx)tst-hash-collision1-mod.so +diff --git a/elf/dl-open.c b/elf/dl-open.c +index 5095ea4f96b6cf49..6ec1ca033bbe7859 100644 +--- a/elf/dl-open.c ++++ b/elf/dl-open.c +@@ -575,6 +575,14 @@ dl_open_worker_begin (void *a) + _dl_debug_printf ("opening file=%s [%lu]; direct_opencount=%u\n\n", + new->l_name, new->l_ns, new->l_direct_opencount); + ++#ifdef SHARED ++ /* No relocation processing on this execution path. But ++ relocation has not been performed for static ++ position-dependent executables, so disable the assert for ++ static linking. */ ++ assert (new->l_relocated); ++#endif ++ + /* If the user requested the object to be in the global + namespace but it is not so far, prepare to add it now. This + can raise an exception to do a malloc failure. */ +@@ -596,10 +604,6 @@ dl_open_worker_begin (void *a) + if ((mode & RTLD_GLOBAL) && new->l_global == 0) + add_to_global_update (new); + +- const int r_state __attribute__ ((unused)) +- = _dl_debug_update (args->nsid)->r_state; +- assert (r_state == RT_CONSISTENT); +- + /* Do not return without calling the (supposedly new) map's + constructor. This case occurs if a dependency of a directly + opened map has a constructor that calls dlopen again on the +@@ -638,17 +642,6 @@ dl_open_worker_begin (void *a) + #endif + } + +- /* Notify the debugger all new objects are now ready to go. */ +- struct r_debug *r = _dl_debug_update (args->nsid); +- r->r_state = RT_CONSISTENT; +- _dl_debug_state (); +- LIBC_PROBE (map_complete, 3, args->nsid, r, new); +- +-#ifdef SHARED +- /* Auditing checkpoint: we have added all objects. */ +- _dl_audit_activity_nsid (new->l_ns, LA_ACT_CONSISTENT); +-#endif +- + _dl_open_check (new); + + /* Print scope information. */ +@@ -695,6 +688,7 @@ dl_open_worker_begin (void *a) + created dlmopen namespaces. Do not do this for static dlopen + because libc has relocations against ld.so, which may not have + been relocated at this point. */ ++ struct r_debug *r = _dl_debug_update (args->nsid); + #ifdef SHARED + if (GL(dl_ns)[args->nsid].libc_map != NULL) + _dl_open_relocate_one_object (args, r, GL(dl_ns)[args->nsid].libc_map, +@@ -782,6 +776,26 @@ dl_open_worker (void *a) + + __rtld_lock_unlock_recursive (GL(dl_load_tls_lock)); + ++ /* Auditing checkpoint and debugger signalling. Do this even on ++ error, so that dlopen exists with consistent state. */ ++ if (args->nsid >= 0 || args->map != NULL) ++ { ++ Lmid_t nsid = args->map != NULL ? args->map->l_ns : args->nsid; ++ struct r_debug *r = _dl_debug_update (nsid); ++#ifdef SHARED ++ bool was_not_consistent = r->r_state != RT_CONSISTENT; ++#endif ++ r->r_state = RT_CONSISTENT; ++ _dl_debug_state (); ++ LIBC_PROBE (map_complete, 3, nsid, r, new); ++ ++#ifdef SHARED ++ if (was_not_consistent) ++ /* Avoid redudant/recursive signalling. */ ++ _dl_audit_activity_nsid (nsid, LA_ACT_CONSISTENT); ++#endif ++ } ++ + if (__glibc_unlikely (ex.errstring != NULL)) + /* Reraise the error. */ + _dl_signal_exception (err, &ex, NULL); +diff --git a/elf/tst-dlopen-auditdup-auditmod.c b/elf/tst-dlopen-auditdup-auditmod.c +new file mode 100644 +index 0000000000000000..9b67295e94d03e7a +--- /dev/null ++++ b/elf/tst-dlopen-auditdup-auditmod.c +@@ -0,0 +1,100 @@ ++/* Auditor that opens again an object that just has been opened. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++unsigned int ++la_version (unsigned int v) ++{ ++ return LAV_CURRENT; ++} ++ ++static bool trigger_on_la_activity; ++ ++unsigned int ++la_objopen (struct link_map *map, Lmid_t lmid, uintptr_t *cookie) ++{ ++ printf ("info: la_objopen: \"%s\"\n", map->l_name); ++ if (strstr (map->l_name, "/tst-dlopen-auditdupmod.so") != NULL) ++ trigger_on_la_activity = true; ++ return 0; ++} ++ ++void ++la_activity (uintptr_t *cookie, unsigned int flag) ++{ ++ static unsigned int calls; ++ ++calls; ++ printf ("info: la_activity: call %u (flag %u)\n", calls, flag); ++ fflush (stdout); ++ if (trigger_on_la_activity) ++ { ++ /* Avoid triggering on the dlmopen call below. */ ++ static bool recursion; ++ if (recursion) ++ return; ++ recursion = true; ++ ++ puts ("info: about to dlmopen tst-dlopen-auditdupmod.so"); ++ fflush (stdout); ++ void *handle = dlmopen (LM_ID_BASE, "tst-dlopen-auditdupmod.so", ++ RTLD_NOW); ++ if (handle == NULL) ++ { ++ printf ("error: dlmopen: %s\n", dlerror ()); ++ fflush (stdout); ++ _exit (1); ++ } ++ ++ /* Check that the constructor has run. */ ++ int *status = dlsym (handle, "auditdupmod_status"); ++ if (status == NULL) ++ { ++ printf ("error: dlsym: %s\n", dlerror ()); ++ fflush (stdout); ++ _exit (1); ++ } ++ printf ("info: auditdupmod_status == %d\n", *status); ++ if (*status != 1) ++ { ++ puts ("error: auditdupmod_status == 1 expected"); ++ fflush (stdout); ++ _exit (1); ++ } ++ /* Checked in the destructor and the main program. */ ++ ++*status; ++ printf ("info: auditdupmod_status == %d\n", *status); ++ ++ /* Check that the module has been relocated. */ ++ int **status_address = dlsym (handle, "auditdupmod_status_address"); ++ if (status_address == NULL || *status_address != status) ++ { ++ puts ("error: invalid auditdupmod_status address in" ++ " tst-dlopen-auditdupmod.so"); ++ fflush (stdout); ++ _exit (1); ++ } ++ ++ fflush (stdout); ++ } ++} +diff --git a/elf/tst-dlopen-auditdup.c b/elf/tst-dlopen-auditdup.c +new file mode 100644 +index 0000000000000000..d022c58ae3091da1 +--- /dev/null ++++ b/elf/tst-dlopen-auditdup.c +@@ -0,0 +1,36 @@ ++/* Test that recursive dlopen from auditor works (bug 31986). ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ puts ("info: about to dlopen tst-dlopen-auditdupmod.so"); ++ fflush (stdout); ++ void *handle = xdlopen ("tst-dlopen-auditdupmod.so", RTLD_NOW); ++ int *status = xdlsym (handle, "auditdupmod_status"); ++ printf ("info: auditdupmod_status == %d (from main)\n", *status); ++ TEST_COMPARE (*status, 2); ++ xdlclose (handle); ++ return 0; ++} ++ ++#include +diff --git a/elf/tst-dlopen-auditdupmod.c b/elf/tst-dlopen-auditdupmod.c +new file mode 100644 +index 0000000000000000..59b7e21daa8212df +--- /dev/null ++++ b/elf/tst-dlopen-auditdupmod.c +@@ -0,0 +1,48 @@ ++/* Directly opened test module that gets reopened from the auditor. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++int auditdupmod_status; ++ ++/* Used to check for successful relocation processing. */ ++int *auditdupmod_status_address = &auditdupmod_status; ++ ++static void __attribute__ ((constructor)) ++init (void) ++{ ++ ++auditdupmod_status; ++ printf ("info: tst-dlopen-auditdupmod.so constructor called (status %d)\n", ++ auditdupmod_status); ++} ++ ++static void __attribute__ ((destructor)) ++fini (void) ++{ ++ /* The tst-dlopen-auditdup-auditmod.so auditor incremented ++ auditdupmod_status. */ ++ printf ("info: tst-dlopen-auditdupmod.so destructor called (status %d)\n", ++ auditdupmod_status); ++ if (auditdupmod_status != 2) ++ { ++ puts ("error: auditdupmod_status == 2 expected"); ++ exit (1); ++ } ++} diff --git a/SOURCES/glibc-RHEL-47403-7.patch b/SOURCES/glibc-RHEL-47403-7.patch new file mode 100644 index 0000000..a20ef02 --- /dev/null +++ b/SOURCES/glibc-RHEL-47403-7.patch @@ -0,0 +1,272 @@ +commit 95129e6b8fabdaa8cd8a4a5cc20be0f4cb0ba59f +Author: Florian Weimer +Date: Mon Oct 28 14:45:30 2024 +0100 + + Revert "elf: Run constructors on cyclic recursive dlopen (bug 31986)" + + This reverts commit 9897ced8e78db5d813166a7ccccfd5a42c69ef20. + + Adjust the test expectations in elf/tst-dlopen-auditdup-auditmod.c + accordingly. + +Conflicts: + elf/Makefile (fixup context) + +diff --git a/elf/Makefile b/elf/Makefile +index 73deb69f5a3c9150..a358ad7ff0eb2af7 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -405,7 +405,6 @@ tests += \ + tst-dlmopen3 \ + tst-dlmopen4 \ + tst-dlopen-auditdup \ +- tst-dlopen-recurse \ + tst-dlopen-self \ + tst-dlopen-tlsmodid \ + tst-dlopen-tlsreinit1 \ +@@ -786,8 +785,6 @@ modules-names = \ + tst-dlmopen1mod \ + tst-dlopen-auditdup-auditmod \ + tst-dlopen-auditdupmod \ +- tst-dlopen-recursemod1 \ +- tst-dlopen-recursemod2 \ + tst-dlopen-sgid-mod \ + tst-dlopen-tlsreinitmod1 \ + tst-dlopen-tlsreinitmod2 \ +@@ -2862,8 +2859,6 @@ tst-dlopen-tlsreinit3-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so + $(objpfx)tst-dlopen-tlsreinit4.out: $(objpfx)tst-auditmod1.so + tst-dlopen-tlsreinit4-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so + +-$(objpfx)tst-dlopen-recurse.out: $(objpfx)tst-dlopen-recursemod1.so +-$(objpfx)tst-dlopen-recursemod1.so: $(objpfx)tst-dlopen-recursemod2.so + tst-dlopen-auditdup-ENV = LD_AUDIT=$(objpfx)tst-dlopen-auditdup-auditmod.so + $(objpfx)tst-dlopen-auditdup.out: \ + $(objpfx)tst-dlopen-auditdupmod.so $(objpfx)tst-dlopen-auditdup-auditmod.so +diff --git a/elf/dl-open.c b/elf/dl-open.c +index 6ec1ca033bbe7859..6557c2fd7ca0bbfe 100644 +--- a/elf/dl-open.c ++++ b/elf/dl-open.c +@@ -604,14 +604,6 @@ dl_open_worker_begin (void *a) + if ((mode & RTLD_GLOBAL) && new->l_global == 0) + add_to_global_update (new); + +- /* Do not return without calling the (supposedly new) map's +- constructor. This case occurs if a dependency of a directly +- opened map has a constructor that calls dlopen again on the +- initially opened map. The new map is initialized last, so +- checking only it is enough. */ +- if (!new->l_init_called) +- _dl_catch_exception (NULL, call_dl_init, args); +- + return; + } + +diff --git a/elf/dl-support.c b/elf/dl-support.c +index f4dc9c61a2637f8b..00abc2d8056c78b0 100644 +--- a/elf/dl-support.c ++++ b/elf/dl-support.c +@@ -103,7 +103,6 @@ static struct link_map _dl_main_map = + .l_used = 1, + .l_tls_offset = NO_TLS_OFFSET, + .l_serial = 1, +- .l_init_called = 1, + }; + + /* Namespace information. */ +diff --git a/elf/tst-dlopen-auditdup-auditmod.c b/elf/tst-dlopen-auditdup-auditmod.c +index 9b67295e94d03e7a..270a595ec4de1439 100644 +--- a/elf/tst-dlopen-auditdup-auditmod.c ++++ b/elf/tst-dlopen-auditdup-auditmod.c +@@ -66,7 +66,11 @@ la_activity (uintptr_t *cookie, unsigned int flag) + _exit (1); + } + +- /* Check that the constructor has run. */ ++ /* Check that the constructor has not run. Running the ++ constructor would require constructing its dependencies, but ++ the constructor call that triggered this auditing activity ++ has not completed, and constructors among the dependencies ++ may not be able to deal with that. */ + int *status = dlsym (handle, "auditdupmod_status"); + if (status == NULL) + { +@@ -75,9 +79,9 @@ la_activity (uintptr_t *cookie, unsigned int flag) + _exit (1); + } + printf ("info: auditdupmod_status == %d\n", *status); +- if (*status != 1) ++ if (*status != 0) + { +- puts ("error: auditdupmod_status == 1 expected"); ++ puts ("error: auditdupmod_status == 0 expected"); + fflush (stdout); + _exit (1); + } +diff --git a/elf/tst-dlopen-recurse.c b/elf/tst-dlopen-recurse.c +deleted file mode 100644 +index c7fb379d373c6e77..0000000000000000 +--- a/elf/tst-dlopen-recurse.c ++++ /dev/null +@@ -1,34 +0,0 @@ +-/* Test that recursive dlopen runs constructors before return (bug 31986). +- Copyright (C) 2024 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#include +-#include +-#include +- +-static int +-do_test (void) +-{ +- void *handle = xdlopen ("tst-dlopen-recursemod1.so", RTLD_NOW); +- int *status = dlsym (handle, "recursemod1_status"); +- printf ("info: recursemod1_status == %d (from main)\n", *status); +- TEST_COMPARE (*status, 2); +- xdlclose (handle); +- return 0; +-} +- +-#include +diff --git a/elf/tst-dlopen-recursemod1.c b/elf/tst-dlopen-recursemod1.c +deleted file mode 100644 +index 5e0cc0eb8c32d6d4..0000000000000000 +--- a/elf/tst-dlopen-recursemod1.c ++++ /dev/null +@@ -1,50 +0,0 @@ +-/* Directly opened test module that gets recursively opened again. +- Copyright (C) 2024 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#include +-#include +-#include +- +-int recursemod1_status; +- +-/* Force linking against st-dlopen-recursemod2.so. Also allows +- checking for relocation. */ +-extern int recursemod2_status; +-int *force_recursemod2_reference = &recursemod2_status; +- +-static void __attribute__ ((constructor)) +-init (void) +-{ +- ++recursemod1_status; +- printf ("info: tst-dlopen-recursemod1.so constructor called (status %d)\n", +- recursemod1_status); +-} +- +-static void __attribute__ ((destructor)) +-fini (void) +-{ +- /* The recursemod1_status variable was incremented in the +- tst-dlopen-recursemod2.so constructor. */ +- printf ("info: tst-dlopen-recursemod1.so destructor called (status %d)\n", +- recursemod1_status); +- if (recursemod1_status != 2) +- { +- puts ("error: recursemod1_status == 2 expected"); +- exit (1); +- } +-} +diff --git a/elf/tst-dlopen-recursemod2.c b/elf/tst-dlopen-recursemod2.c +deleted file mode 100644 +index edd2f2526b877810..0000000000000000 +--- a/elf/tst-dlopen-recursemod2.c ++++ /dev/null +@@ -1,66 +0,0 @@ +-/* Indirectly opened module that recursively opens the directly opened module. +- Copyright (C) 2024 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#include +-#include +-#include +- +-int recursemod2_status; +- +-static void __attribute__ ((constructor)) +-init (void) +-{ +- ++recursemod2_status; +- printf ("info: tst-dlopen-recursemod2.so constructor called (status %d)\n", +- recursemod2_status); +- void *handle = dlopen ("tst-dlopen-recursemod1.so", RTLD_NOW); +- if (handle == NULL) +- { +- printf ("error: dlopen: %s\n", dlerror ()); +- exit (1); +- } +- int *status = dlsym (handle, "recursemod1_status"); +- if (status == NULL) +- { +- printf ("error: dlsym: %s\n", dlerror ()); +- exit (1); +- } +- printf ("info: recursemod1_status == %d\n", *status); +- if (*status != 1) +- { +- puts ("error: recursemod1_status == 1 expected"); +- exit (1); +- } +- ++*status; +- printf ("info: recursemod1_status == %d\n", *status); +- +- int **mod2_status = dlsym (handle, "force_recursemod2_reference"); +- if (mod2_status == NULL || *mod2_status != &recursemod2_status) +- { +- puts ("error: invalid recursemod2_status address in" +- " tst-dlopen-recursemod1.so"); +- exit (1); +- } +-} +- +-static void __attribute__ ((destructor)) +-fini (void) +-{ +- printf ("info: tst-dlopen-recursemod2.so destructor called (status %d)\n", +- recursemod2_status); +-} diff --git a/SOURCES/glibc-RHEL-47403-8.patch b/SOURCES/glibc-RHEL-47403-8.patch new file mode 100644 index 0000000..159e940 --- /dev/null +++ b/SOURCES/glibc-RHEL-47403-8.patch @@ -0,0 +1,218 @@ +commit d604f9c500570e80febfcc6a52b63a002b466f35 +Author: Florian Weimer +Date: Tue Mar 11 15:30:52 2025 +0100 + + elf: Test dlopen (NULL, RTLD_LAZY) from an ELF constructor + + This call must not complete initialization of all shared objects + in the global scope because the ELF constructor which makes the call + likely has not finished initialization. Calling more constructors + at this point would expose those to a partially constructed + dependency. + + This completes the revert of commit 9897ced8e78db5d813166a7ccccfd5a + ("elf: Run constructors on cyclic recursive dlopen (bug 31986)"). + +Conflicts: + elf/Makefile (fixup context) + +diff --git a/elf/Makefile b/elf/Makefile +index a358ad7ff0eb2af7..3a50ca90366aec94 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -405,6 +405,7 @@ tests += \ + tst-dlmopen3 \ + tst-dlmopen4 \ + tst-dlopen-auditdup \ ++ tst-dlopen-constructor-null \ + tst-dlopen-self \ + tst-dlopen-tlsmodid \ + tst-dlopen-tlsreinit1 \ +@@ -785,6 +786,8 @@ modules-names = \ + tst-dlmopen1mod \ + tst-dlopen-auditdup-auditmod \ + tst-dlopen-auditdupmod \ ++ tst-dlopen-constructor-null-mod1 \ ++ tst-dlopen-constructor-null-mod2 \ + tst-dlopen-sgid-mod \ + tst-dlopen-tlsreinitmod1 \ + tst-dlopen-tlsreinitmod2 \ +@@ -2937,3 +2940,9 @@ $(objpfx)tst-nolink-libc-2: $(objpfx)tst-nolink-libc.o + -Wl,--dynamic-linker=$(objpfx)ld.so + $(objpfx)tst-nolink-libc-2.out: $(objpfx)tst-nolink-libc-2 $(objpfx)ld.so + $< > $@ 2>&1; $(evaluate-test) ++ ++$(objpfx)tst-dlopen-constructor-null: \ ++ $(objpfx)tst-dlopen-constructor-null-mod1.so \ ++ $(objpfx)tst-dlopen-constructor-null-mod2.so ++$(objpfx)tst-dlopen-constructor-null-mod2.so: \ ++ $(objpfx)tst-dlopen-constructor-null-mod1.so +diff --git a/elf/dl-open.c b/elf/dl-open.c +index 6557c2fd7ca0bbfe..c225654822ee3520 100644 +--- a/elf/dl-open.c ++++ b/elf/dl-open.c +@@ -604,6 +604,16 @@ dl_open_worker_begin (void *a) + if ((mode & RTLD_GLOBAL) && new->l_global == 0) + add_to_global_update (new); + ++ /* It is not possible to run the ELF constructor for the new ++ link map if it has not executed yet: If this dlopen call came ++ from an ELF constructor that has not put that object into a ++ consistent state, completing initialization for the entire ++ scope will expose objects that have this partially ++ constructed object among its dependencies to this ++ inconsistent state. This could happen even with a benign ++ dlopen (NULL, RTLD_LAZY) call from a constructor of an ++ initially loaded shared object. */ ++ + return; + } + +diff --git a/elf/tst-dlopen-constructor-null-mod1.c b/elf/tst-dlopen-constructor-null-mod1.c +new file mode 100644 +index 0000000000000000..70a7a0ad46a1a666 +--- /dev/null ++++ b/elf/tst-dlopen-constructor-null-mod1.c +@@ -0,0 +1,55 @@ ++/* Module calling dlopen (NULL, RTLD_LAZY) to obtain the global scope. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++int mod1_status; ++ ++static void __attribute__ ((constructor)) ++init (void) ++{ ++ puts ("info: tst-dlopen-constructor-null-mod1.so constructor"); ++ ++ void *handle = dlopen (NULL, RTLD_LAZY); ++ if (handle == NULL) ++ { ++ printf ("error: %s\n", dlerror ()); ++ exit (1); ++ } ++ puts ("info: dlopen returned"); ++ if (dlsym (handle, "malloc") != malloc) ++ { ++ puts ("error: dlsym did not produce expected result"); ++ exit (1); ++ } ++ dlclose (handle); ++ ++ /* Check that the second module's constructor has not executed. */ ++ if (getenv ("mod2_status") != NULL) ++ { ++ printf ("error: mod2_status environment variable set: %s\n", ++ getenv ("mod2_status")); ++ exit (1); ++ } ++ ++ /* Communicate to the second module that the constructor executed. */ ++ mod1_status = 1; ++} +diff --git a/elf/tst-dlopen-constructor-null-mod2.c b/elf/tst-dlopen-constructor-null-mod2.c +new file mode 100644 +index 0000000000000000..d6e945beaec04815 +--- /dev/null ++++ b/elf/tst-dlopen-constructor-null-mod2.c +@@ -0,0 +1,37 @@ ++/* Module whose constructor should not be invoked by dlopen (NULL, RTLD_LAZY). ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++extern int mod1_status; ++int mod2_status; ++ ++static void __attribute__ ((constructor)) ++init (void) ++{ ++ printf ("info: tst-dlopen-constructor-null-mod2.so constructor" ++ " (mod1_status=%d)", mod1_status); ++ if (!(mod1_status == 1 && mod2_status == 0)) ++ { ++ puts ("error: mod1_status == 1 && mod2_status == 0 expected"); ++ exit (1); ++ } ++ setenv ("mod2_status", "constructed", 1); ++ mod2_status = 1; ++} +diff --git a/elf/tst-dlopen-constructor-null.c b/elf/tst-dlopen-constructor-null.c +new file mode 100644 +index 0000000000000000..db90643325c5235f +--- /dev/null ++++ b/elf/tst-dlopen-constructor-null.c +@@ -0,0 +1,38 @@ ++/* Verify that dlopen (NULL, RTLD_LAZY) does not complete initialization. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* This test mimics what the glvndSetupPthreads function in libglvnd ++ does. */ ++ ++#include ++#include ++ ++/* Defined and initialized in the shared objects. */ ++extern int mod1_status; ++extern int mod2_status; ++ ++static int ++do_test (void) ++{ ++ TEST_COMPARE (mod1_status, 1); ++ TEST_COMPARE (mod2_status, 1); ++ TEST_COMPARE_STRING (getenv ("mod2_status"), "constructed"); ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-47403-9.patch b/SOURCES/glibc-RHEL-47403-9.patch new file mode 100644 index 0000000..8aea49b --- /dev/null +++ b/SOURCES/glibc-RHEL-47403-9.patch @@ -0,0 +1,24 @@ +commit ac73067cb7a328bf106ecd041c020fc61be7e087 +Author: Florian Weimer +Date: Fri Oct 25 17:41:53 2024 +0200 + + elf: Fix map_complete Systemtap probe in dl_open_worker + + The refactoring did not take the change of variable into account. + Fixes commit 43db5e2c0672cae7edea7c9685b22317eae25471 + ("elf: Signal RT_CONSISTENT after relocation processing in dlopen + (bug 31986)"). + +diff --git a/elf/dl-open.c b/elf/dl-open.c +index c225654822ee3520..1e61e402455da666 100644 +--- a/elf/dl-open.c ++++ b/elf/dl-open.c +@@ -789,7 +789,7 @@ dl_open_worker (void *a) + #endif + r->r_state = RT_CONSISTENT; + _dl_debug_state (); +- LIBC_PROBE (map_complete, 3, nsid, r, new); ++ LIBC_PROBE (map_complete, 3, nsid, r, args->map); + + #ifdef SHARED + if (was_not_consistent) diff --git a/SOURCES/glibc-RHEL-48820-1.patch b/SOURCES/glibc-RHEL-48820-1.patch new file mode 100644 index 0000000..bddab39 --- /dev/null +++ b/SOURCES/glibc-RHEL-48820-1.patch @@ -0,0 +1,120 @@ +commit 8f8dd904c4a2207699bb666f30acceb5209c8d3f +Author: Florian Weimer +Date: Wed Nov 6 10:33:44 2024 +0100 + + elf: rtld_multiple_ref is always true + + For a long time, libc.so.6 has dependend on ld.so, which + means that there is a reference to ld.so in all processes, + and rtld_multiple_ref is always true. In fact, if + rtld_multiple_ref were false, some of the ld.so setup code + would not run. + + Reviewed-by: DJ Delorie + +Conflicts: + elf/rtld.c ( + - prelink support not removed downstream + - "elf: Add _dl_find_object function" not ported + downstream + ) + +diff --git a/elf/rtld.c b/elf/rtld.c +index d02ecc834c9a4d43..711bb77d70da6563 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -2002,43 +2002,37 @@ dl_main (const ElfW(Phdr) *phdr, + if (main_map->l_searchlist.r_list[i] == &GL(dl_rtld_map)) + break; + +- bool rtld_multiple_ref = false; +- if (__glibc_likely (i < main_map->l_searchlist.r_nlist)) +- { +- /* Some DT_NEEDED entry referred to the interpreter object itself, so +- put it back in the list of visible objects. We insert it into the +- chain in symbol search order because gdb uses the chain's order as +- its symbol search order. */ +- rtld_multiple_ref = true; ++ /* Insert the link map for the dynamic loader into the chain in ++ symbol search order because gdb uses the chain's order as its ++ symbol search order. */ + +- GL(dl_rtld_map).l_prev = main_map->l_searchlist.r_list[i - 1]; +- if (__glibc_likely (state.mode == rtld_mode_normal)) +- { +- GL(dl_rtld_map).l_next = (i + 1 < main_map->l_searchlist.r_nlist +- ? main_map->l_searchlist.r_list[i + 1] +- : NULL); ++ GL(dl_rtld_map).l_prev = main_map->l_searchlist.r_list[i - 1]; ++ if (__glibc_likely (state.mode == rtld_mode_normal)) ++ { ++ GL(dl_rtld_map).l_next = (i + 1 < main_map->l_searchlist.r_nlist ++ ? main_map->l_searchlist.r_list[i + 1] ++ : NULL); + #ifdef NEED_DL_SYSINFO_DSO +- if (GLRO(dl_sysinfo_map) != NULL +- && GL(dl_rtld_map).l_prev->l_next == GLRO(dl_sysinfo_map) +- && GL(dl_rtld_map).l_next != GLRO(dl_sysinfo_map)) +- GL(dl_rtld_map).l_prev = GLRO(dl_sysinfo_map); ++ if (GLRO(dl_sysinfo_map) != NULL ++ && GL(dl_rtld_map).l_prev->l_next == GLRO(dl_sysinfo_map) ++ && GL(dl_rtld_map).l_next != GLRO(dl_sysinfo_map)) ++ GL(dl_rtld_map).l_prev = GLRO(dl_sysinfo_map); + #endif +- } +- else +- /* In trace mode there might be an invisible object (which we +- could not find) after the previous one in the search list. +- In this case it doesn't matter much where we put the +- interpreter object, so we just initialize the list pointer so +- that the assertion below holds. */ +- GL(dl_rtld_map).l_next = GL(dl_rtld_map).l_prev->l_next; +- +- assert (GL(dl_rtld_map).l_prev->l_next == GL(dl_rtld_map).l_next); +- GL(dl_rtld_map).l_prev->l_next = &GL(dl_rtld_map); +- if (GL(dl_rtld_map).l_next != NULL) +- { +- assert (GL(dl_rtld_map).l_next->l_prev == GL(dl_rtld_map).l_prev); +- GL(dl_rtld_map).l_next->l_prev = &GL(dl_rtld_map); +- } ++ } ++ else ++ /* In trace mode there might be an invisible object (which we ++ could not find) after the previous one in the search list. ++ In this case it doesn't matter much where we put the ++ interpreter object, so we just initialize the list pointer so ++ that the assertion below holds. */ ++ GL(dl_rtld_map).l_next = GL(dl_rtld_map).l_prev->l_next; ++ ++ assert (GL(dl_rtld_map).l_prev->l_next == GL(dl_rtld_map).l_next); ++ GL(dl_rtld_map).l_prev->l_next = &GL(dl_rtld_map); ++ if (GL(dl_rtld_map).l_next != NULL) ++ { ++ assert (GL(dl_rtld_map).l_next->l_prev == GL(dl_rtld_map).l_prev); ++ GL(dl_rtld_map).l_next->l_prev = &GL(dl_rtld_map); + } + + /* Now let us see whether all libraries are available in the +@@ -2212,8 +2206,7 @@ dl_main (const ElfW(Phdr) *phdr, + } + } + +- if ((GLRO(dl_debug_mask) & DL_DEBUG_PRELINK) +- && rtld_multiple_ref) ++ if (GLRO(dl_debug_mask) & DL_DEBUG_PRELINK) + { + /* Mark the link map as not yet relocated again. */ + GL(dl_rtld_map).l_relocated = 0; +@@ -2500,10 +2493,9 @@ dl_main (const ElfW(Phdr) *phdr, + /* Make sure no new search directories have been added. */ + assert (GLRO(dl_init_all_dirs) == GL(dl_all_dirs)); + +- if (! prelinked && rtld_multiple_ref) ++ if (! prelinked) + { +- /* There was an explicit ref to the dynamic linker as a shared lib. +- Re-relocate ourselves with user-controlled symbol definitions. ++ /* Re-relocate ourselves with user-controlled symbol definitions. + + We must do this after TLS initialization in case after this + re-relocation, we might call a user-supplied function diff --git a/SOURCES/glibc-RHEL-48820-2.patch b/SOURCES/glibc-RHEL-48820-2.patch new file mode 100644 index 0000000..c6e1d07 --- /dev/null +++ b/SOURCES/glibc-RHEL-48820-2.patch @@ -0,0 +1,52 @@ +commit a79642204537dec8a1e1c58d1e0a074b3c624f46 +Author: Florian Weimer +Date: Wed Nov 6 10:33:44 2024 +0100 + + elf: Do not define consider_profiling, consider_symbind as macros + + This avoids surprises when refactoring the code if these identifiers + are re-used later in the file. + + Reviewed-by: DJ Delorie + +diff --git a/elf/dl-reloc.c b/elf/dl-reloc.c +index 0254e589c06fbf4c..ded506da9e180eac 100644 +--- a/elf/dl-reloc.c ++++ b/elf/dl-reloc.c +@@ -207,8 +207,8 @@ _dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[], + int lazy = reloc_mode & RTLD_LAZY; + int skip_ifunc = reloc_mode & __RTLD_NOIFUNC; + +-#ifdef SHARED + bool consider_symbind = false; ++#ifdef SHARED + /* If we are auditing, install the same handlers we need for profiling. */ + if ((reloc_mode & __RTLD_AUDIT) == 0) + { +@@ -227,9 +227,7 @@ _dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[], + } + #elif defined PROF + /* Never use dynamic linker profiling for gprof profiling code. */ +-# define consider_profiling 0 +-#else +-# define consider_symbind 0 ++ consider_profiling = 0; + #endif + + /* If DT_BIND_NOW is set relocate all references in this object. We +@@ -287,7 +285,6 @@ _dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[], + + ELF_DYNAMIC_RELOCATE (l, scope, lazy, consider_profiling, skip_ifunc); + +-#ifndef PROF + if ((consider_profiling || consider_symbind) + && l->l_info[DT_PLTRELSZ] != NULL) + { +@@ -308,7 +305,6 @@ _dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[], + _dl_fatal_printf (errstring, RTLD_PROGNAME, l->l_name); + } + } +-#endif + } + + /* Mark the object so we know this work has been done. */ diff --git a/SOURCES/glibc-RHEL-48820-3.patch b/SOURCES/glibc-RHEL-48820-3.patch new file mode 100644 index 0000000..79c7805 --- /dev/null +++ b/SOURCES/glibc-RHEL-48820-3.patch @@ -0,0 +1,77 @@ +commit f2326c2ec0a0a8db7bc7f4db8cce3002768fc3b6 +Author: Florian Weimer +Date: Wed Nov 6 10:33:44 2024 +0100 + + elf: Introduce _dl_relocate_object_no_relro + + And make _dl_protect_relro apply RELRO conditionally. + + Reviewed-by: DJ Delorie + +diff --git a/elf/dl-reloc.c b/elf/dl-reloc.c +index ded506da9e180eac..239f5505f805b008 100644 +--- a/elf/dl-reloc.c ++++ b/elf/dl-reloc.c +@@ -189,12 +189,9 @@ _dl_nothread_init_static_tls (struct link_map *map) + #include "dynamic-link.h" + + void +-_dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[], +- int reloc_mode, int consider_profiling) ++_dl_relocate_object_no_relro (struct link_map *l, struct r_scope_elem *scope[], ++ int reloc_mode, int consider_profiling) + { +- if (l->l_relocated) +- return; +- + struct textrels + { + caddr_t start; +@@ -325,17 +322,24 @@ _dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[], + + textrels = textrels->next; + } +- +- /* In case we can protect the data now that the relocations are +- done, do it. */ +- if (l->l_relro_size != 0) +- _dl_protect_relro (l); + } + ++void ++_dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[], ++ int reloc_mode, int consider_profiling) ++{ ++ if (l->l_relocated) ++ return; ++ _dl_relocate_object_no_relro (l, scope, reloc_mode, consider_profiling); ++ _dl_protect_relro (l); ++} + + void + _dl_protect_relro (struct link_map *l) + { ++ if (l->l_relro_size == 0) ++ return; ++ + ElfW(Addr) start = ALIGN_DOWN((l->l_addr + + l->l_relro_addr), + GLRO(dl_pagesize)); +diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h +index 537d1293c7b5543b..dc4e0555e4ed7f3c 100644 +--- a/sysdeps/generic/ldsodefs.h ++++ b/sysdeps/generic/ldsodefs.h +@@ -1073,6 +1073,13 @@ extern void _dl_relocate_object (struct link_map *map, + int reloc_mode, int consider_profiling) + attribute_hidden; + ++/* Perform relocation, but do not apply RELRO. Does not check ++ L->relocated. Otherwise the same as _dl_relocate_object. */ ++void _dl_relocate_object_no_relro (struct link_map *map, ++ struct r_scope_elem *scope[], ++ int reloc_mode, int consider_profiling) ++ attribute_hidden; ++ + /* Protect PT_GNU_RELRO area. */ + extern void _dl_protect_relro (struct link_map *map) attribute_hidden; + diff --git a/SOURCES/glibc-RHEL-48820-4.patch b/SOURCES/glibc-RHEL-48820-4.patch new file mode 100644 index 0000000..5933759 --- /dev/null +++ b/SOURCES/glibc-RHEL-48820-4.patch @@ -0,0 +1,203 @@ +commit c1560f3f75c0e892b5522c16f91b4e303f677094 +Author: Florian Weimer +Date: Wed Nov 6 10:33:44 2024 +0100 + + elf: Switch to main malloc after final ld.so self-relocation + + Before commit ee1ada1bdb8074de6e1bdc956ab19aef7b6a7872 + ("elf: Rework exception handling in the dynamic loader + [BZ #25486]"), the previous order called the main calloc + to allocate a shadow GOT/PLT array for auditing support. + This happened before libc.so.6 ELF constructors were run, so + a user malloc could run without libc.so.6 having been + initialized fully. One observable effect was that + environ was NULL at this point. + + It does not seem to be possible at present to trigger such + an allocation, but it seems more robust to delay switching + to main malloc after ld.so self-relocation is complete. + The elf/tst-rtld-no-malloc-audit test case fails with a + 2.34-era glibc that does not have this fix. + + Reviewed-by: DJ Delorie + +Conflicts: + elf/Makefile (fixup context) + elf/rtld.c (Align change with glibc-RHEL-48820-1) + +diff --git a/elf/Makefile b/elf/Makefile +index 41adea8d1c6d13ca..0c8e0d794bac640f 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -439,6 +439,9 @@ tests += \ + tst-recursive-tls \ + tst-relsort1 \ + tst-ro-dynamic \ ++ tst-rtld-no-malloc \ ++ tst-rtld-no-malloc-audit \ ++ tst-rtld-no-malloc-preload \ + tst-rtld-run-static \ + tst-single_threaded \ + tst-single_threaded-pthread \ +@@ -2896,3 +2899,9 @@ tst-tls22-mod2.so-no-z-defs = yes + tst-tls22-mod2-gnu2.so-no-z-defs = yes + + $(objpfx)tst-dlopen-sgid.out: $(objpfx)tst-dlopen-sgid-mod.so ++ ++# Reuse an audit module which provides ample debug logging. ++tst-rtld-no-malloc-audit-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so ++ ++# Any shared object should do. ++tst-rtld-no-malloc-preload-ENV = LD_PRELOAD=$(objpfx)tst-auditmod1.so +diff --git a/elf/dl-support.c b/elf/dl-support.c +index 1fea55c443505890..00abc2d8056c78b0 100644 +--- a/elf/dl-support.c ++++ b/elf/dl-support.c +@@ -353,8 +353,7 @@ _dl_non_dynamic_init (void) + } + + /* Setup relro on the binary itself. */ +- if (_dl_main_map.l_relro_size != 0) +- _dl_protect_relro (&_dl_main_map); ++ _dl_protect_relro (&_dl_main_map); + } + + #ifdef DL_SYSINFO_IMPLEMENTATION +diff --git a/elf/rtld.c b/elf/rtld.c +index 711bb77d70da6563..3436dd918e699080 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -2495,26 +2495,23 @@ dl_main (const ElfW(Phdr) *phdr, + + if (! prelinked) + { +- /* Re-relocate ourselves with user-controlled symbol definitions. +- +- We must do this after TLS initialization in case after this +- re-relocation, we might call a user-supplied function +- (e.g. calloc from _dl_relocate_object) that uses TLS data. */ +- +- /* The malloc implementation has been relocated, so resolving +- its symbols (and potentially calling IFUNC resolvers) is safe +- at this point. */ +- __rtld_malloc_init_real (main_map); +- + /* Likewise for the locking implementation. */ + __rtld_mutex_init (); + ++ /* Re-relocate ourselves with user-controlled symbol definitions. */ ++ + RTLD_TIMING_VAR (start); + rtld_timer_start (&start); + +- /* Mark the link map as not yet relocated again. */ +- GL(dl_rtld_map).l_relocated = 0; +- _dl_relocate_object (&GL(dl_rtld_map), main_map->l_scope, 0, 0); ++ _dl_relocate_object_no_relro (&GL(dl_rtld_map), main_map->l_scope, 0, 0); ++ ++ /* The malloc implementation has been relocated, so resolving ++ its symbols (and potentially calling IFUNC resolvers) is safe ++ at this point. */ ++ __rtld_malloc_init_real (main_map); ++ ++ if (GL(dl_rtld_map).l_relro_size != 0) ++ _dl_protect_relro (&GL(dl_rtld_map)); + + rtld_timer_accum (&relocate_time, start); + } +diff --git a/elf/tst-rtld-no-malloc-audit.c b/elf/tst-rtld-no-malloc-audit.c +new file mode 100644 +index 0000000000000000..a028377ad1fea027 +--- /dev/null ++++ b/elf/tst-rtld-no-malloc-audit.c +@@ -0,0 +1 @@ ++#include "tst-rtld-no-malloc.c" +diff --git a/elf/tst-rtld-no-malloc-preload.c b/elf/tst-rtld-no-malloc-preload.c +new file mode 100644 +index 0000000000000000..a028377ad1fea027 +--- /dev/null ++++ b/elf/tst-rtld-no-malloc-preload.c +@@ -0,0 +1 @@ ++#include "tst-rtld-no-malloc.c" +diff --git a/elf/tst-rtld-no-malloc.c b/elf/tst-rtld-no-malloc.c +new file mode 100644 +index 0000000000000000..5f24d4bd72c4af0c +--- /dev/null ++++ b/elf/tst-rtld-no-malloc.c +@@ -0,0 +1,76 @@ ++/* Test that program loading does not call malloc. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++ ++#include ++#include ++ ++static void ++print (const char *s) ++{ ++ const char *end = s + strlen (s); ++ while (s < end) ++ { ++ ssize_t ret = write (STDOUT_FILENO, s, end - s); ++ if (ret <= 0) ++ _exit (2); ++ s += ret; ++ } ++} ++ ++static void __attribute__ ((noreturn)) ++unexpected_call (const char *function) ++{ ++ print ("error: unexpected call to "); ++ print (function); ++ print ("\n"); ++ _exit (1); ++} ++ ++/* These are the malloc functions implement in elf/dl-minimal.c. */ ++ ++void ++free (void *ignored) ++{ ++ unexpected_call ("free"); ++} ++ ++void * ++calloc (size_t ignored1, size_t ignored2) ++{ ++ unexpected_call ("calloc"); ++} ++ ++void * ++malloc (size_t ignored) ++{ ++ unexpected_call ("malloc"); ++} ++ ++void * ++realloc (void *ignored1, size_t ignored2) ++{ ++ unexpected_call ("realloc"); ++} ++ ++int ++main (void) ++{ ++ /* Do not use the test wrapper, to avoid spurious malloc calls from it. */ ++ return 0; ++} diff --git a/SOURCES/glibc-RHEL-48820-5.patch b/SOURCES/glibc-RHEL-48820-5.patch new file mode 100644 index 0000000..7db94b9 --- /dev/null +++ b/SOURCES/glibc-RHEL-48820-5.patch @@ -0,0 +1,228 @@ +commit 706209867f1ba89c458033408d419e92d8055f58 +Author: Florian Weimer +Date: Tue Jan 7 09:18:07 2025 +0100 + + elf: Second ld.so relocation only if libc.so has been loaded + + Commit 8f8dd904c4a2207699bb666f30acceb5209c8d3f (“elf: + rtld_multiple_ref is always true”) removed some code that happened + to enable compatibility with programs that do not link against + libc.so. Such programs cannot call dlopen or any dynamic linker + functions (except __tls_get_addr), so this is not really useful. + Still ld.so should not crash with a null-pointer dereference + or undefined symbol reference in these cases. + + In the main relocation loop, call _dl_relocate_object unconditionally + because it already checks if the object has been relocated. + + If libc.so was loaded, self-relocate ld.so against it and call + __rtld_mutex_init and __rtld_malloc_init_real to activate the full + implementations. Those are available only if libc.so is there, + so skip these initialization steps if libc.so is absent. Without + libc.so, the global scope can be completely empty. This can cause + ld.so self-relocation to fail because if it uses symbol-based + relocations, which is why the second ld.so self-relocation is not + performed if libc.so is missing. + + The previous concern regarding GOT updates through self-relocation + no longer applies because function pointers are updated + explicitly through __rtld_mutex_init and __rtld_malloc_init_real, + and not through relocation. However, the second ld.so self-relocation + is still delayed, in case there are other symbols being used. + + Fixes commit 8f8dd904c4a2207699bb666f30acceb5209c8d3f (“elf: + rtld_multiple_ref is always true”). + + Reviewed-by: Adhemerval Zanella + +Conflicts: + elf/Makefile (fixup context) + elf/rtld.c ( + - Patch off due to prelink code + - "elf: Move _dl_rtld_map, _dl_rtld_audit_state out of GL" not + ported downstream + ) + +diff --git a/elf/Makefile b/elf/Makefile +index 0c8e0d794bac640f..d30f7f67e73a646e 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -2905,3 +2905,20 @@ tst-rtld-no-malloc-audit-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so + + # Any shared object should do. + tst-rtld-no-malloc-preload-ENV = LD_PRELOAD=$(objpfx)tst-auditmod1.so ++ ++# These rules link and run the special elf/tst-nolink-libc-* tests if ++# a port adds them to the tests variables. Neither test variant is ++# linked against libc.so, but tst-nolink-libc-1 is linked against ++# ld.so. The test is always run directly, not under the dynamic ++# linker. ++CFLAGS-tst-nolink-libc.c += $(no-stack-protector) ++$(objpfx)tst-nolink-libc-1: $(objpfx)tst-nolink-libc.o $(objpfx)ld.so ++ $(LINK.o) -nostdlib -nostartfiles -o $@ $< \ ++ -Wl,--dynamic-linker=$(objpfx)ld.so,--no-as-needed $(objpfx)ld.so ++$(objpfx)tst-nolink-libc-1.out: $(objpfx)tst-nolink-libc-1 $(objpfx)ld.so ++ $< > $@ 2>&1; $(evaluate-test) ++$(objpfx)tst-nolink-libc-2: $(objpfx)tst-nolink-libc.o ++ $(LINK.o) -nostdlib -nostartfiles -o $@ $< \ ++ -Wl,--dynamic-linker=$(objpfx)ld.so ++$(objpfx)tst-nolink-libc-2.out: $(objpfx)tst-nolink-libc-2 $(objpfx)ld.so ++ $< > $@ 2>&1; $(evaluate-test) +diff --git a/elf/rtld.c b/elf/rtld.c +index 3436dd918e699080..d3d9e6b904ac78fd 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -2410,25 +2410,25 @@ dl_main (const ElfW(Phdr) *phdr, + } + else + { +- /* Now we have all the objects loaded. Relocate them all except for +- the dynamic linker itself. We do this in reverse order so that copy +- relocs of earlier objects overwrite the data written by later +- objects. We do not re-relocate the dynamic linker itself in this +- loop because that could result in the GOT entries for functions we +- call being changed, and that would break us. It is safe to relocate +- the dynamic linker out of order because it has no copy relocations. +- Likewise for libc, which is relocated early to ensure that IFUNC +- resolvers in libc work. */ ++ /* Now we have all the objects loaded. */ + + int consider_profiling = GLRO(dl_profile) != NULL; + + /* If we are profiling we also must do lazy reloaction. */ + GLRO(dl_lazy) |= consider_profiling; + ++ /* If libc.so has been loaded, relocate it early, after the dynamic ++ loader itself. The initial self-relocation of ld.so should be ++ sufficient for IFUNC resolvers in libc.so. */ + if (GL(dl_ns)[LM_ID_BASE].libc_map != NULL) +- _dl_relocate_object (GL(dl_ns)[LM_ID_BASE].libc_map, +- GL(dl_ns)[LM_ID_BASE].libc_map->l_scope, +- GLRO(dl_lazy) ? RTLD_LAZY : 0, consider_profiling); ++ { ++ RTLD_TIMING_VAR (start); ++ rtld_timer_start (&start); ++ _dl_relocate_object (GL(dl_ns)[LM_ID_BASE].libc_map, ++ GL(dl_ns)[LM_ID_BASE].libc_map->l_scope, ++ GLRO(dl_lazy) ? RTLD_LAZY : 0, consider_profiling); ++ rtld_timer_accum (&relocate_time, start); ++ } + + RTLD_TIMING_VAR (start); + rtld_timer_start (&start); +@@ -2450,9 +2450,8 @@ dl_main (const ElfW(Phdr) *phdr, + /* Also allocated with the fake malloc(). */ + l->l_free_initfini = 0; + +- if (l != &GL(dl_rtld_map)) +- _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0, +- consider_profiling); ++ _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0, ++ consider_profiling); + + /* Add object to slot information data if necessasy. */ + if (l->l_tls_blocksize != 0 && __rtld_tls_init_tp_called) +@@ -2495,25 +2494,22 @@ dl_main (const ElfW(Phdr) *phdr, + + if (! prelinked) + { +- /* Likewise for the locking implementation. */ +- __rtld_mutex_init (); +- +- /* Re-relocate ourselves with user-controlled symbol definitions. */ +- +- RTLD_TIMING_VAR (start); +- rtld_timer_start (&start); +- +- _dl_relocate_object_no_relro (&GL(dl_rtld_map), main_map->l_scope, 0, 0); +- +- /* The malloc implementation has been relocated, so resolving +- its symbols (and potentially calling IFUNC resolvers) is safe +- at this point. */ +- __rtld_malloc_init_real (main_map); ++ /* If libc.so was loaded, relocate ld.so against it. Complete ld.so ++ initialization with mutex symbols from libc.so and malloc symbols ++ from the global scope. */ ++ if (GL(dl_ns)[LM_ID_BASE].libc_map != NULL) ++ { ++ RTLD_TIMING_VAR (start); ++ rtld_timer_start (&start); ++ _dl_relocate_object_no_relro (&GL(dl_rtld_map), main_map->l_scope, 0, 0); ++ rtld_timer_accum (&relocate_time, start); + +- if (GL(dl_rtld_map).l_relro_size != 0) +- _dl_protect_relro (&GL(dl_rtld_map)); ++ __rtld_mutex_init (); ++ __rtld_malloc_init_real (main_map); ++ } + +- rtld_timer_accum (&relocate_time, start); ++ /* All ld.so initialization is complete. Apply RELRO. */ ++ _dl_protect_relro (&GL(dl_rtld_map)); + } + + /* Relocation is complete. Perform early libc initialization. This +diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile +index 460ba54a8afcc515..94eb2665b27371a4 100644 +--- a/sysdeps/unix/sysv/linux/Makefile ++++ b/sysdeps/unix/sysv/linux/Makefile +@@ -393,7 +393,15 @@ libof-lddlibc4 = lddlibc4 + others += pldd + install-bin += pldd + $(objpfx)pldd: $(objpfx)xmalloc.o ++ ++test-internal-extras += tst-nolink-libc ++ifeq ($(run-built-tests),yes) ++tests-special += \ ++ $(objpfx)tst-nolink-libc-1.out \ ++ $(objpfx)tst-nolink-libc-2.out \ ++ # tests-special + endif ++endif # $(subdir) == elf + + ifeq ($(subdir),rt) + CFLAGS-mq_send.c += -fexceptions +diff --git a/sysdeps/unix/sysv/linux/arm/Makefile b/sysdeps/unix/sysv/linux/arm/Makefile +index 32db854cbd6bdfd6..ab7ced85408ee515 100644 +--- a/sysdeps/unix/sysv/linux/arm/Makefile ++++ b/sysdeps/unix/sysv/linux/arm/Makefile +@@ -1,5 +1,8 @@ + ifeq ($(subdir),elf) + sysdep-rtld-routines += aeabi_read_tp libc-do-syscall ++# The test uses INTERNAL_SYSCALL_CALL. In thumb mode, this uses ++# an undefined reference to __libc_do_syscall. ++CFLAGS-tst-nolink-libc.c += -marm + endif + + ifeq ($(subdir),misc) +diff --git a/sysdeps/unix/sysv/linux/tst-nolink-libc.c b/sysdeps/unix/sysv/linux/tst-nolink-libc.c +new file mode 100644 +index 0000000000000000..817f37784b4080f9 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/tst-nolink-libc.c +@@ -0,0 +1,25 @@ ++/* Test program not linked against libc.so and not using any glibc functions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++void ++_start (void) ++{ ++ INTERNAL_SYSCALL_CALL (exit_group, 0); ++} diff --git a/SOURCES/glibc-RHEL-48820-6.patch b/SOURCES/glibc-RHEL-48820-6.patch new file mode 100644 index 0000000..5229bdb --- /dev/null +++ b/SOURCES/glibc-RHEL-48820-6.patch @@ -0,0 +1,28 @@ +commit 39183f47d8bc9eda711c9797b18d69d7a02af91c +Author: Florian Weimer +Date: Wed Jan 8 16:55:31 2025 +0100 + + elf: Minimize library dependencies of tst-nolink-libc.c + + On 32-bit Arm, -fasynchronous-unwind-tables creates a reference + to the symbol __aeabi_unwind_cpp_pr0. Compile the tests without + this flag even if it is passed as part of CC, to avoid linker + failures. + +diff --git a/elf/Makefile b/elf/Makefile +index d30f7f67e73a646e..dc93f631a682a006 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -2910,8 +2910,10 @@ tst-rtld-no-malloc-preload-ENV = LD_PRELOAD=$(objpfx)tst-auditmod1.so + # a port adds them to the tests variables. Neither test variant is + # linked against libc.so, but tst-nolink-libc-1 is linked against + # ld.so. The test is always run directly, not under the dynamic +-# linker. +-CFLAGS-tst-nolink-libc.c += $(no-stack-protector) ++# linker. It is necessary to minimize run-time dependencies, by ++# disabling stack protection and unwinding. ++CFLAGS-tst-nolink-libc.c += $(no-stack-protector) \ ++ -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables + $(objpfx)tst-nolink-libc-1: $(objpfx)tst-nolink-libc.o $(objpfx)ld.so + $(LINK.o) -nostdlib -nostartfiles -o $@ $< \ + -Wl,--dynamic-linker=$(objpfx)ld.so,--no-as-needed $(objpfx)ld.so diff --git a/SOURCES/glibc-RHEL-48820-7.patch b/SOURCES/glibc-RHEL-48820-7.patch new file mode 100644 index 0000000..aa53365 --- /dev/null +++ b/SOURCES/glibc-RHEL-48820-7.patch @@ -0,0 +1,30 @@ +commit d30f41d2c9031b0540641af692e56002eab5599f +Author: Florian Weimer +Date: Thu Jun 26 11:38:00 2025 +0200 + + elf: Add missing DSO dependencies for tst-rtld-no-malloc-{audit,preload} + + Fixes commit c1560f3f75c0e892b5522c16f91b4e303f677094 + ("elf: Switch to main malloc after final ld.so self-relocation"). + + Reviewed-by: Frédéric Bérat + +Conflicts: + elf/Makefile (fixup context) + +diff --git a/elf/Makefile b/elf/Makefile +index dc93f631a682a006..15bec14364266c77 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -2902,9 +2902,11 @@ $(objpfx)tst-dlopen-sgid.out: $(objpfx)tst-dlopen-sgid-mod.so + + # Reuse an audit module which provides ample debug logging. + tst-rtld-no-malloc-audit-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so ++$(objpfx)tst-rtld-no-malloc-audit.out: $(objpfx)tst-auditmod1.so + + # Any shared object should do. + tst-rtld-no-malloc-preload-ENV = LD_PRELOAD=$(objpfx)tst-auditmod1.so ++$(objpfx)tst-rtld-no-malloc-preload.out: $(objpfx)tst-auditmod1.so + + # These rules link and run the special elf/tst-nolink-libc-* tests if + # a port adds them to the tests variables. Neither test variant is diff --git a/SOURCES/glibc-RHEL-49549-1.patch b/SOURCES/glibc-RHEL-49549-1.patch new file mode 100644 index 0000000..299e0fa --- /dev/null +++ b/SOURCES/glibc-RHEL-49549-1.patch @@ -0,0 +1,55 @@ +commit 152f863926e77c6f9c9a8b8779c8084eb844ec44 +Author: Andreas Schwab +Date: Thu Mar 23 16:18:50 2023 +0100 + + _dl_map_object_from_fd: Remove unnecessary debugger notification in error path + + After commit ed3ce71f5c ("elf: Move la_activity (LA_ACT_ADD) after + _dl_add_to_namespace_list() (BZ #28062)") it is no longer necessary to + reset the debugger state in the error case, since the debugger + notification only happens after no more errors can occur. + +diff --git a/elf/dl-load.c b/elf/dl-load.c +index 5b0734c816b351f0..98a91d40b74cb76b 100644 +--- a/elf/dl-load.c ++++ b/elf/dl-load.c +@@ -950,8 +950,6 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd, + /* Initialize to keep the compiler happy. */ + const char *errstring = NULL; + int errval = 0; +- struct r_debug *r = _dl_debug_update (nsid); +- bool make_consistent = false; + + /* Get file information. To match the kernel behavior, do not fill + in this information for the executable in case of an explicit +@@ -983,14 +981,6 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd, + free ((void *) l->l_phdr); + free (l); + free (realname); +- +- if (make_consistent && r != NULL) +- { +- r->r_state = RT_CONSISTENT; +- _dl_debug_state (); +- LIBC_PROBE (map_failed, 2, nsid, r); +- } +- + _dl_signal_error (errval, name, NULL, errstring); + } + +@@ -1476,6 +1466,7 @@ cannot enable executable stack as shared object requires"); + _dl_add_to_namespace_list (l, nsid); + + /* Signal that we are going to add new objects. */ ++ struct r_debug *r = _dl_debug_update (nsid); + if (r->r_state == RT_CONSISTENT) + { + #ifdef SHARED +@@ -1492,7 +1483,6 @@ cannot enable executable stack as shared object requires"); + r->r_state = RT_ADD; + _dl_debug_state (); + LIBC_PROBE (map_start, 2, nsid, r); +- make_consistent = true; + } + else + assert (r->r_state == RT_ADD); diff --git a/SOURCES/glibc-RHEL-49549-2.patch b/SOURCES/glibc-RHEL-49549-2.patch new file mode 100644 index 0000000..71ed350 --- /dev/null +++ b/SOURCES/glibc-RHEL-49549-2.patch @@ -0,0 +1,174 @@ +commit ab5aa2ee3d3f978e474803cbbc5fe805ad30e293 +Author: Andreas Schwab +Date: Thu Mar 23 16:46:20 2023 +0100 + + dlopen: skip debugger notification for DSO loaded from sprof (bug 30258) + + Avoid inconsistent state in the debugger interface. + +Conflicts: + elf/Makefile: Test differences. + +diff --git a/elf/Makefile b/elf/Makefile +index 86d4dd9960088ee1..721f254d121118c0 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -528,6 +528,7 @@ tests-container += \ + + test-srcs = \ + tst-pathopt \ ++ tst-sprof-basic \ + # tests-srcs + + ifeq (yes,$(have-fpie)) +@@ -860,6 +861,7 @@ modules-names = \ + tst-sonamemove-linkmod1 \ + tst-sonamemove-runmod1 \ + tst-sonamemove-runmod2 \ ++ tst-sprof-mod \ + tst-tls19mod1 \ + tst-tls19mod2 \ + tst-tls19mod3 \ +@@ -1114,6 +1116,7 @@ tests-special += \ + $(objpfx)tst-rtld-help.out \ + $(objpfx)tst-rtld-load-self.out \ + $(objpfx)tst-rtld-preload.out \ ++ $(objpfx)tst-sprof-basic.out \ + # tests-special + endif + tests-special += \ +@@ -2946,3 +2949,11 @@ $(objpfx)tst-dlopen-constructor-null: \ + $(objpfx)tst-dlopen-constructor-null-mod2.so + $(objpfx)tst-dlopen-constructor-null-mod2.so: \ + $(objpfx)tst-dlopen-constructor-null-mod1.so ++ ++LDFLAGS-tst-sprof-mod.so = -Wl,-soname,tst-sprof-mod.so ++$(objpfx)tst-sprof-basic: $(objpfx)tst-sprof-mod.so ++$(objpfx)tst-sprof-basic.out: tst-sprof-basic.sh $(objpfx)tst-sprof-basic ++ $(SHELL) $< $(common-objpfx) '$(test-wrapper-env)' \ ++ '$(run-program-env)' > $@; \ ++ $(evaluate-test) ++generated += tst-sprof-mod.so.profile +diff --git a/elf/dl-load.c b/elf/dl-load.c +index 98a91d40b74cb76b..5c1be6e80cd52e2f 100644 +--- a/elf/dl-load.c ++++ b/elf/dl-load.c +@@ -1465,6 +1465,10 @@ cannot enable executable stack as shared object requires"); + /* Now that the object is fully initialized add it to the object list. */ + _dl_add_to_namespace_list (l, nsid); + ++ /* Skip auditing and debugger notification when called from 'sprof'. */ ++ if (mode & __RTLD_SPROF) ++ return l; ++ + /* Signal that we are going to add new objects. */ + struct r_debug *r = _dl_debug_update (nsid); + if (r->r_state == RT_CONSISTENT) +diff --git a/elf/tst-sprof-basic.c b/elf/tst-sprof-basic.c +new file mode 100644 +index 0000000000000000..5e4083305a4acdd6 +--- /dev/null ++++ b/elf/tst-sprof-basic.c +@@ -0,0 +1,25 @@ ++/* Copyright (C) 2023 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++void hello (void); ++ ++int ++main (void) ++{ ++ hello (); ++ return 0; ++} +diff --git a/elf/tst-sprof-basic.sh b/elf/tst-sprof-basic.sh +new file mode 100755 +index 0000000000000000..901db61708c1b8ec +--- /dev/null ++++ b/elf/tst-sprof-basic.sh +@@ -0,0 +1,41 @@ ++#!/bin/sh ++# Test basic functionality of sprof ++# Copyright (C) 2023 Free Software Foundation, Inc. ++# This file is part of the GNU C Library. ++ ++# The GNU C Library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++ ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++ ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, see ++# . ++ ++set -e ++ ++common_objpfx=$1 ++test_wrapper_env=$2 ++run_program_env=$3 ++ ++sprof_mod=tst-sprof-mod.so ++ ++${test_wrapper_env} \ ++${run_program_env} \ ++LD_PROFILE=$sprof_mod \ ++LD_PROFILE_OUTPUT=${common_objpfx}elf \ ++LD_LIBRARY_PATH=${common_objpfx}.:${common_objpfx}elf \ ++ ${common_objpfx}elf/ld.so ${common_objpfx}elf/tst-sprof-basic ++ ++${test_wrapper_env} \ ++${run_program_env} \ ++LD_LIBRARY_PATH=${common_objpfx}.:${common_objpfx}elf \ ++ ${common_objpfx}elf/ld.so ${common_objpfx}elf/sprof -p $sprof_mod \ ++ ${common_objpfx}elf/${sprof_mod}.profile ++ ++exit $? +diff --git a/elf/tst-sprof-mod.c b/elf/tst-sprof-mod.c +new file mode 100644 +index 0000000000000000..8b3f5e8e07f42ae6 +--- /dev/null ++++ b/elf/tst-sprof-mod.c +@@ -0,0 +1,24 @@ ++/* Copyright (C) 2023 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++void ++hello (void) ++{ ++ printf ("Hello World\n"); ++} diff --git a/SOURCES/glibc-RHEL-49549-3.patch b/SOURCES/glibc-RHEL-49549-3.patch new file mode 100644 index 0000000..e639f93 --- /dev/null +++ b/SOURCES/glibc-RHEL-49549-3.patch @@ -0,0 +1,30 @@ +commit f563971b5bf7191acfdd5702fe00878752c2056d +Author: Florian Weimer +Date: Tue Sep 26 11:40:12 2023 +0200 + + elf: Add dummy declaration of _dl_audit_objclose for !SHARED + + This allows us to avoid some #ifdef SHARED conditionals. + + Reviewed-by: Carlos O'Donell + +diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h +index 3d9b90a22bfa6a7d..21dbe2d21ed8e605 100644 +--- a/sysdeps/generic/ldsodefs.h ++++ b/sysdeps/generic/ldsodefs.h +@@ -1457,7 +1457,14 @@ void DL_ARCH_FIXUP_ATTRIBUTE _dl_audit_pltexit (struct link_map *l, + const void *inregs, + void *outregs) + attribute_hidden; +-#endif /* SHARED */ ++ ++#else /* !SHARED */ ++static inline void ++_dl_audit_objclose (struct link_map *l) ++{ ++ /* No audit implementation for !SHARED. */ ++} ++#endif /* !SHARED */ + + #if PTHREAD_IN_LIBC && defined SHARED + /* Recursive locking implementation for use within the dynamic loader. diff --git a/SOURCES/glibc-RHEL-49549-4.patch b/SOURCES/glibc-RHEL-49549-4.patch new file mode 100644 index 0000000..a260ea7 --- /dev/null +++ b/SOURCES/glibc-RHEL-49549-4.patch @@ -0,0 +1,102 @@ +commit ed2b8d3a866eb37e069f6a71bdf10421cd4c5e54 +Author: Adam Sampson +Date: Mon May 6 18:16:32 2024 +0100 + + ldconfig: Move endswithn into a new header file + + is_gdb_python_file is doing a similar test, so it can use this helper + function as well. + + Signed-off-by: Adam Sampson + Reviewed-by: Adhemerval Zanella + +diff --git a/elf/endswith.h b/elf/endswith.h +new file mode 100644 +index 0000000000000000..c6430c48be0c1071 +--- /dev/null ++++ b/elf/endswith.h +@@ -0,0 +1,33 @@ ++/* Copyright (C) 2023-2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published ++ by the Free Software Foundation; version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, see . */ ++ ++#ifndef _ENDSWITH_H ++#define _ENDSWITH_H ++ ++#include ++ ++/* Return true if the N bytes at NAME end with with the characters in ++ the string SUFFIX. (NAME[N + 1] does not have to be a null byte.) ++ Expected to be called with a string literal for SUFFIX. */ ++static inline bool ++endswithn (const char *name, size_t n, const char *suffix) ++{ ++ return (n >= strlen (suffix) ++ && memcmp (name + n - strlen (suffix), suffix, ++ strlen (suffix)) == 0); ++} ++ ++#endif /* _ENDSWITH_H */ +diff --git a/elf/ldconfig.c b/elf/ldconfig.c +index 4a96c409994d96c8..185c8115ae6b4060 100644 +--- a/elf/ldconfig.c ++++ b/elf/ldconfig.c +@@ -41,6 +41,7 @@ + #include + + #include ++#include + #include + #include + #include +@@ -778,17 +779,6 @@ struct dlib_entry + struct dlib_entry *next; + }; + +-/* Return true if the N bytes at NAME end with with the characters in +- the string SUFFIX. (NAME[N + 1] does not have to be a null byte.) +- Expected to be called with a string literal for SUFFIX. */ +-static inline bool +-endswithn (const char *name, size_t n, const char *suffix) +-{ +- return (n >= strlen (suffix) +- && memcmp (name + n - strlen (suffix), suffix, +- strlen (suffix)) == 0); +-} +- + /* Skip some temporary DSO files. These files may be partially written + and lead to ldconfig crashes when examined. */ + static bool +diff --git a/elf/readlib.c b/elf/readlib.c +index 8901de2684835653..2701535e3f24a201 100644 +--- a/elf/readlib.c ++++ b/elf/readlib.c +@@ -35,6 +35,7 @@ + #include + + #include ++#include + + #define Elf32_CLASS ELFCLASS32 + #define Elf64_CLASS ELFCLASS64 +@@ -68,7 +69,7 @@ static bool + is_gdb_python_file (const char *name) + { + size_t len = strlen (name); +- return len > 7 && strcmp (name + len - 7, "-gdb.py") == 0; ++ return endswithn (name, len, "-gdb.py"); + } + + /* Returns 0 if everything is ok, != 0 in case of error. */ diff --git a/SOURCES/glibc-RHEL-49549-5.patch b/SOURCES/glibc-RHEL-49549-5.patch new file mode 100644 index 0000000..debfa2a --- /dev/null +++ b/SOURCES/glibc-RHEL-49549-5.patch @@ -0,0 +1,76 @@ +commit 4a50fdf8b2c1106b50cd9056b4c6f3a72cdeed5f +Author: Florian Weimer +Date: Tue Sep 3 17:52:47 2024 +0200 + + elf: Update DSO list, write audit log to elf/tst-audit23.out + + After commit 1d5024f4f052c12e404d42d3b5bfe9c3e9fd27c4 + ("support: Build with exceptions and asynchronous unwind tables + [BZ #30587]"), libgcc_s is expected to show up in the DSO + list on 32-bit Arm. Do not update max_objs because vdso is not + tracked (and which is the reason why the test currently passes + even with libgcc_s present). + + Also write the log output from the auditor to standard output, + for easier test debugging. + + Reviewed-by: Adhemerval Zanella + +diff --git a/elf/tst-audit23.c b/elf/tst-audit23.c +index 4904cf1340a97ee1..6ac1f20af60a2ebb 100644 +--- a/elf/tst-audit23.c ++++ b/elf/tst-audit23.c +@@ -85,13 +85,28 @@ do_test (int argc, char *argv[]) + = support_capture_subprogram (spargv[0], spargv); + support_capture_subprocess_check (&result, "tst-audit22", 0, sc_allow_stderr); + ++ { ++ FILE *fp = fmemopen (result.err.buffer, result.err.length, "r"); ++ TEST_VERIFY (fp != NULL); ++ unsigned int line = 0; ++ char *buffer = NULL; ++ size_t buffer_length = 0; ++ puts ("info: *** audit log start ***"); ++ while (xgetline (&buffer, &buffer_length, fp)) ++ printf ("%6u\t%s", ++line, buffer); ++ puts ("info: *** audit log end ***"); ++ free (buffer); ++ xfclose (fp); ++ } ++ + /* The expected la_objopen/la_objclose: + 1. executable + 2. loader + 3. libc.so +- 4. tst-audit23mod.so +- 5. libc.so (LM_ID_NEWLM). +- 6. vdso (optional and ignored). */ ++ 4. libgcc_s.so (one some architectures, for libsupport) ++ 5. tst-audit23mod.so ++ 6. libc.so (LM_ID_NEWLM). ++ vdso (optional and ignored). */ + enum { max_objs = 6 }; + struct la_obj_t + { +@@ -115,8 +130,10 @@ do_test (int argc, char *argv[]) + TEST_VERIFY (out != NULL); + char *buffer = NULL; + size_t buffer_length = 0; ++ unsigned int line = 0; + while (xgetline (&buffer, &buffer_length, out)) + { ++ ++line; + if (startswith (buffer, "la_activity: ")) + { + uintptr_t cookie; +@@ -174,8 +191,8 @@ do_test (int argc, char *argv[]) + if (is_vdso (lname)) + continue; + if (nobjs == max_objs) +- FAIL_EXIT1 ("non expected la_objopen: %s %"PRIxPTR" %ld", +- lname, laddr, lmid); ++ FAIL_EXIT1 ("(line %u) non expected la_objopen: %s %"PRIxPTR" %ld", ++ line, lname, laddr, lmid); + objs[nobjs].lname = lname; + objs[nobjs].laddr = laddr; + objs[nobjs].lmid = lmid; diff --git a/SOURCES/glibc-RHEL-49549-6.patch b/SOURCES/glibc-RHEL-49549-6.patch new file mode 100644 index 0000000..b1f2a20 --- /dev/null +++ b/SOURCES/glibc-RHEL-49549-6.patch @@ -0,0 +1,34 @@ +commit a20bc2f6233a726c7df8eaa332b6e498bd59321f +Author: Florian Weimer +Date: Fri Nov 29 15:36:40 2024 +0100 + + elf: Add the endswith function to + + And include for a definition of bool. + + Reviewed-by: Adhemerval Zanella + +diff --git a/elf/endswith.h b/elf/endswith.h +index c6430c48be0c1071..3954e57f8eff0faa 100644 +--- a/elf/endswith.h ++++ b/elf/endswith.h +@@ -17,6 +17,7 @@ + #ifndef _ENDSWITH_H + #define _ENDSWITH_H + ++#include + #include + + /* Return true if the N bytes at NAME end with with the characters in +@@ -30,4 +31,11 @@ endswithn (const char *name, size_t n, const char *suffix) + strlen (suffix)) == 0); + } + ++/* Same as endswithn, but uses the entire SUBJECT for matching. */ ++static inline bool ++endswith (const char *subject, const char *suffix) ++{ ++ return endswithn (subject, strlen (subject), suffix); ++} ++ + #endif /* _ENDSWITH_H */ diff --git a/SOURCES/glibc-RHEL-49549-7.patch b/SOURCES/glibc-RHEL-49549-7.patch new file mode 100644 index 0000000..ebbd1b0 --- /dev/null +++ b/SOURCES/glibc-RHEL-49549-7.patch @@ -0,0 +1,131 @@ +commit 8f36b1469677afe37168f9af1b77402d7a70c673 +Author: Florian Weimer +Date: Fri Aug 9 15:31:18 2024 +0200 + + elf: Signal la_objopen for the proxy link map in dlmopen (bug 31985) + + Previously, the ld.so link map was silently added to the namespace. + This change produces an auditing event for it. + + Reviewed-by: Adhemerval Zanella + +diff --git a/elf/dl-load.c b/elf/dl-load.c +index 5c1be6e80cd52e2f..6714807946b60188 100644 +--- a/elf/dl-load.c ++++ b/elf/dl-load.c +@@ -928,6 +928,37 @@ _dl_process_pt_gnu_property (struct link_map *l, int fd, const ElfW(Phdr) *ph) + } + } + ++static void ++_dl_notify_new_object (int mode, Lmid_t nsid, struct link_map *l) ++{ ++ /* Signal that we are going to add new objects. */ ++ struct r_debug *r = _dl_debug_update (nsid); ++ if (r->r_state == RT_CONSISTENT) ++ { ++#ifdef SHARED ++ /* Auditing checkpoint: we are going to add new objects. Since this ++ is called after _dl_add_to_namespace_list the namespace is guaranteed ++ to not be empty. */ ++ if ((mode & __RTLD_AUDIT) == 0) ++ _dl_audit_activity_nsid (nsid, LA_ACT_ADD); ++#endif ++ ++ /* Notify the debugger we have added some objects. We need to ++ call _dl_debug_initialize in a static program in case dynamic ++ linking has not been used before. */ ++ r->r_state = RT_ADD; ++ _dl_debug_state (); ++ LIBC_PROBE (map_start, 2, nsid, r); ++ } ++ else ++ assert (r->r_state == RT_ADD); ++ ++#ifdef SHARED ++ /* Auditing checkpoint: we have a new object. */ ++ if (!GL(dl_ns)[l->l_ns]._ns_loaded->l_auditing) ++ _dl_audit_objopen (l, nsid); ++#endif ++} + + /* Map in the shared object NAME, actually located in REALNAME, and already + opened on FD. */ +@@ -1024,6 +1055,8 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd, + /* Add the map for the mirrored object to the object list. */ + _dl_add_to_namespace_list (l, nsid); + ++ _dl_notify_new_object (mode, nsid, l); ++ + return l; + } + #endif +@@ -1469,33 +1502,7 @@ cannot enable executable stack as shared object requires"); + if (mode & __RTLD_SPROF) + return l; + +- /* Signal that we are going to add new objects. */ +- struct r_debug *r = _dl_debug_update (nsid); +- if (r->r_state == RT_CONSISTENT) +- { +-#ifdef SHARED +- /* Auditing checkpoint: we are going to add new objects. Since this +- is called after _dl_add_to_namespace_list the namespace is guaranteed +- to not be empty. */ +- if ((mode & __RTLD_AUDIT) == 0) +- _dl_audit_activity_nsid (nsid, LA_ACT_ADD); +-#endif +- +- /* Notify the debugger we have added some objects. We need to +- call _dl_debug_initialize in a static program in case dynamic +- linking has not been used before. */ +- r->r_state = RT_ADD; +- _dl_debug_state (); +- LIBC_PROBE (map_start, 2, nsid, r); +- } +- else +- assert (r->r_state == RT_ADD); +- +-#ifdef SHARED +- /* Auditing checkpoint: we have a new object. */ +- if (!GL(dl_ns)[l->l_ns]._ns_loaded->l_auditing) +- _dl_audit_objopen (l, nsid); +-#endif ++ _dl_notify_new_object (mode, nsid, l); + + return l; + } +diff --git a/elf/tst-audit23.c b/elf/tst-audit23.c +index 6ac1f20af60a2ebb..0c7ca3112381a31e 100644 +--- a/elf/tst-audit23.c ++++ b/elf/tst-audit23.c +@@ -17,6 +17,7 @@ + . */ + + #include ++#include + #include + #include + #include +@@ -106,8 +107,9 @@ do_test (int argc, char *argv[]) + 4. libgcc_s.so (one some architectures, for libsupport) + 5. tst-audit23mod.so + 6. libc.so (LM_ID_NEWLM). ++ 7. loader (proxy link map in new namespace) + vdso (optional and ignored). */ +- enum { max_objs = 6 }; ++ enum { max_objs = 7 }; + struct la_obj_t + { + char *lname; +@@ -236,7 +238,9 @@ do_test (int argc, char *argv[]) + + for (size_t i = 0; i < nobjs; i++) + { +- TEST_COMPARE (objs[i].closed, true); ++ /* This subtest currently does not pass because of bug 32065. */ ++ if (! (endswith (objs[i].lname, LD_SO) && objs[i].lmid != LM_ID_BASE)) ++ TEST_COMPARE (objs[i].closed, true); + free (objs[i].lname); + } + diff --git a/SOURCES/glibc-RHEL-49549-8.patch b/SOURCES/glibc-RHEL-49549-8.patch new file mode 100644 index 0000000..5321e52 --- /dev/null +++ b/SOURCES/glibc-RHEL-49549-8.patch @@ -0,0 +1,76 @@ +commit c4b160744cb39eca20dc36b39c7fa6e10352706c +Author: Florian Weimer +Date: Fri Aug 9 16:06:40 2024 +0200 + + elf: Call la_objclose for proxy link maps in _dl_fini (bug 32065) + + Reviewed-by: Adhemerval Zanella + +diff --git a/elf/dl-fini.c b/elf/dl-fini.c +index fa876da0ffa1cf97..133dbac385b34fbb 100644 +--- a/elf/dl-fini.c ++++ b/elf/dl-fini.c +@@ -74,6 +74,7 @@ _dl_fini (void) + + unsigned int i; + struct link_map *l; ++ struct link_map *proxy_link_map = NULL; + assert (nloaded != 0 || GL(dl_ns)[ns]._ns_loaded == NULL); + for (l = GL(dl_ns)[ns]._ns_loaded, i = 0; l != NULL; l = l->l_next) + /* Do not handle ld.so in secondary namespaces. */ +@@ -89,6 +90,11 @@ _dl_fini (void) + are not dlclose()ed from underneath us. */ + ++l->l_direct_opencount; + } ++ else ++ /* Used below to call la_objclose for the ld.so proxy ++ link map. */ ++ proxy_link_map = l; ++ + assert (ns != LM_ID_BASE || i == nloaded); + assert (ns == LM_ID_BASE || i == nloaded || i == nloaded - 1); + unsigned int nmaps = i; +@@ -158,6 +164,9 @@ _dl_fini (void) + --l->l_direct_opencount; + } + ++ if (proxy_link_map != NULL) ++ _dl_audit_objclose (proxy_link_map); ++ + #ifdef SHARED + _dl_audit_activity_nsid (ns, LA_ACT_CONSISTENT); + #endif +diff --git a/elf/tst-audit23.c b/elf/tst-audit23.c +index 0c7ca3112381a31e..d5137fd44dacde3c 100644 +--- a/elf/tst-audit23.c ++++ b/elf/tst-audit23.c +@@ -236,13 +236,26 @@ do_test (int argc, char *argv[]) + } + } + ++ Lmid_t lmid_other = LM_ID_NEWLM; ++ unsigned int other_namespace_count = 0; + for (size_t i = 0; i < nobjs; i++) + { +- /* This subtest currently does not pass because of bug 32065. */ +- if (! (endswith (objs[i].lname, LD_SO) && objs[i].lmid != LM_ID_BASE)) +- TEST_COMPARE (objs[i].closed, true); ++ if (objs[i].lmid != LM_ID_BASE) ++ { ++ if (lmid_other == LM_ID_NEWLM) ++ lmid_other = objs[i].lmid; ++ TEST_COMPARE (objs[i].lmid, lmid_other); ++ ++other_namespace_count; ++ if (!(endswith (objs[i].lname, "/" LIBC_SO) ++ || endswith (objs[i].lname, "/" LD_SO))) ++ FAIL ("unexpected object in secondary namespace: %s", ++ objs[i].lname); ++ } ++ TEST_COMPARE (objs[i].closed, true); + free (objs[i].lname); + } ++ /* Both libc.so and ld.so should be present. */ ++ TEST_COMPARE (other_namespace_count, 2); + + /* la_activity(LA_ACT_CONSISTENT) should be the last callback received. + Since only one link map may be not-CONSISTENT at a time, this also diff --git a/SOURCES/glibc-RHEL-49549-9.patch b/SOURCES/glibc-RHEL-49549-9.patch new file mode 100644 index 0000000..8378f44 --- /dev/null +++ b/SOURCES/glibc-RHEL-49549-9.patch @@ -0,0 +1,140 @@ +commit 495b96e064da605630a23092d1e484ade4bdc093 +Author: Florian Weimer +Date: Tue Sep 3 17:57:46 2024 +0200 + + elf: Reorder audit events in dlcose to match _dl_fini (bug 32066) + + This was discovered after extending elf/tst-audit23 to cover + dlclose of the dlmopen namespace. + + Auditors already experience the new order during process + shutdown (_dl_fini), so no LAV_CURRENT bump or backwards + compatibility code seems necessary. + + Reviewed-by: Adhemerval Zanella + +diff --git a/elf/dl-close.c b/elf/dl-close.c +index 8a4c3528a124d4e7..236d89f67f3bf410 100644 +--- a/elf/dl-close.c ++++ b/elf/dl-close.c +@@ -303,6 +303,12 @@ _dl_close_worker (struct link_map *map, bool force) + } + + #ifdef SHARED ++ /* Auditing checkpoint: we will start deleting objects. ++ This is supposed to happen before la_objclose (see _dl_fini), ++ but only once per non-recursive dlclose call. */ ++ if (!unload_any) ++ _dl_audit_activity_nsid (nsid, LA_ACT_DELETE); ++ + /* Auditing checkpoint: we remove an object. */ + _dl_audit_objclose (imap); + #endif +@@ -463,12 +469,8 @@ _dl_close_worker (struct link_map *map, bool force) + if (!unload_any) + goto out; + +-#ifdef SHARED +- /* Auditing checkpoint: we will start deleting objects. */ +- _dl_audit_activity_nsid (nsid, LA_ACT_DELETE); +-#endif +- +- /* Notify the debugger we are about to remove some loaded objects. */ ++ /* Notify the debugger we are about to remove some loaded objects. ++ LA_ACT_DELETE has already been signalled above for !unload_any. */ + struct r_debug *r = _dl_debug_update (nsid); + r->r_state = RT_DELETE; + _dl_debug_state (); +diff --git a/elf/tst-audit23.c b/elf/tst-audit23.c +index d5137fd44dacde3c..5e3afd397bb2d3d1 100644 +--- a/elf/tst-audit23.c ++++ b/elf/tst-audit23.c +@@ -31,16 +31,21 @@ + #include + #include + #include ++#include + + static int restart; ++static int do_dlclose; + #define CMDLINE_OPTIONS \ +- { "restart", no_argument, &restart, 1 }, ++ { "restart", no_argument, &restart, 1 }, \ ++ { "dlclose", no_argument, &do_dlclose, 1 }, \ + + static int + handle_restart (void) + { + xdlopen ("tst-audit23mod.so", RTLD_NOW); +- xdlmopen (LM_ID_NEWLM, LIBC_SO, RTLD_NOW); ++ void *handle = xdlmopen (LM_ID_NEWLM, LIBC_SO, RTLD_NOW); ++ if (do_dlclose) ++ xdlclose (handle); + + return 0; + } +@@ -60,8 +65,8 @@ is_vdso (const char *str) + || startswith (str, "linux-vdso"); + } + +-static int +-do_test (int argc, char *argv[]) ++static void ++do_one_test (int argc, char *argv[], bool pass_dlclose_flag) + { + /* We must have either: + - One or four parameters left if called initially: +@@ -69,16 +74,15 @@ do_test (int argc, char *argv[]) + + "--library-path" optional + + the library path optional + + the application name */ +- if (restart) +- return handle_restart (); +- +- char *spargv[9]; ++ char *spargv[10]; + TEST_VERIFY_EXIT (((argc - 1) + 3) < array_length (spargv)); + int i = 0; + for (; i < argc - 1; i++) + spargv[i] = argv[i + 1]; + spargv[i++] = (char *) "--direct"; + spargv[i++] = (char *) "--restart"; ++ if (pass_dlclose_flag) ++ spargv[i++] = (char *) "--dlclose"; + spargv[i] = NULL; + + setenv ("LD_AUDIT", "tst-auditmod23.so", 0); +@@ -146,8 +150,14 @@ do_test (int argc, char *argv[]) + + /* The cookie identifies the object at the head of the link map, + so we only add a new namespace if it changes from the previous +- one. This works since dlmopen is the last in the test body. */ +- if (cookie != last_act_cookie && last_act_cookie != -1) ++ one. This works since dlmopen is the last in the test body. ++ ++ Currently, this does not work as expected because there ++ is no head link map if a namespace is completely deleted. ++ No LA_ACT_CONSISTENT event is generated in that case. ++ See the comment in _dl_audit_activity_nsid and bug 32068. */ ++ if (cookie != last_act_cookie && last_act_cookie != -1 ++ && !pass_dlclose_flag) + TEST_COMPARE (last_act, LA_ACT_CONSISTENT); + + if (this_act == LA_ACT_ADD && acts[nacts] != cookie) +@@ -265,7 +275,16 @@ do_test (int argc, char *argv[]) + + free (buffer); + xfclose (out); ++} ++ ++static int ++do_test (int argc, char *argv[]) ++{ ++ if (restart) ++ return handle_restart (); + ++ do_one_test (argc, argv, false); ++ do_one_test (argc, argv, true); + return 0; + } + diff --git a/SOURCES/glibc-RHEL-50086-1.patch b/SOURCES/glibc-RHEL-50086-1.patch new file mode 100644 index 0000000..2af66bc --- /dev/null +++ b/SOURCES/glibc-RHEL-50086-1.patch @@ -0,0 +1,647 @@ +commit 4f6dae219578d6df475864e273da40bde9d30806 +Author: Stefan Liebler +Date: Tue Apr 29 13:28:58 2025 +0200 + + S390: Add new s390 platform z17. + + The glibc-hwcaps subdirectories are extended by "z17". Libraries are loaded if + the z17 facility bits are active: + - Miscellaneous-instruction-extensions facility 4 + - Vector-enhancements-facility 3 + - Vector-Packed-Decimal-Enhancement Facility 3 + - CPU: Concurrent-Functions Facility + + tst-glibc-hwcaps.c is extended in order to test z17 via new marker6. + In case of running on a z17 with a kernel not recognizing z17 yet, + AT_PLATFORM will be z900 but vector-bit in AT_HWCAP is set. This situation + is now recognized and this testcase does not fail. + + A fatal glibc error is dumped if glibc was build with architecture + level set for z17, but run on an older machine (See dl-hwcap-check.h). + Note, you might get an SIGILL before this check if you don't use: + configure --with-rtld-early-cflags=-march= + + ld.so --list-diagnostics now also dumps information about s390.cpu_features. + + Independent from z17, the s390x kernel won't introduce new HWCAP-Bits if there + is no special handling needed in kernel itself. For z17, we don't have new + HWCAP flags, but have to check the facility bits retrieved by + stfle-instruction. + + Instead of storing all the stfle-bits (currently four 64bit values) in the + cpu_features struct, we now only store those bits, which are needed within + glibc itself. Note that we have this list twice, one with original values and + the other one which can be filtered with GLIBC_TUNABLES=glibc.cpu.hwcaps. + Those new fields are stored in so far reserved space in cpu_features struct. + Thus processes started in between the update of glibc package and we e.g. have + a new ld.so and an old libc.so, won't crash. The glibc internal ifunc-resolvers + would not select the best optimized variant. + + The users of stfle-bits are also updated: + - parsing of GLIBC_TUNABLES=glibc.cpu.hwcaps + - glibc internal ifunc-resolvers + - __libc_ifunc_impl_list + - sysconf + +Note: Conflicts were resolved by Stefan Liebler. + +Conflicts: + elf/Makefile (fixup context) + sysdeps/s390/cpu-features.c (partial re-implement downstream) + sysdeps/s390/multiarch/ifunc-impl-list.c (fixup context) + sysdeps/s390/s390-64/dl-hwcaps-subdirs.c (fixup context) + +diff --git a/elf/Makefile b/elf/Makefile +index ba11f3a8b81e7218..84151f2e59704a43 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -667,6 +667,12 @@ modules-names = \ + libmarkermod5-3 \ + libmarkermod5-4 \ + libmarkermod5-5 \ ++ libmarkermod6-1 \ ++ libmarkermod6-2 \ ++ libmarkermod6-3 \ ++ libmarkermod6-4 \ ++ libmarkermod6-5 \ ++ libmarkermod6-6 \ + ltglobmod1 \ + ltglobmod2 \ + neededobj1 \ +@@ -2624,6 +2630,7 @@ LDFLAGS-libmarkermod2-1.so += -Wl,-soname,libmarkermod2.so + LDFLAGS-libmarkermod3-1.so += -Wl,-soname,libmarkermod3.so + LDFLAGS-libmarkermod4-1.so += -Wl,-soname,libmarkermod4.so + LDFLAGS-libmarkermod5-1.so += -Wl,-soname,libmarkermod5.so ++LDFLAGS-libmarkermod6-1.so += -Wl,-soname,libmarkermod6.so + $(objpfx)libmarkermod%.os : markermodMARKER-VALUE.c + $(compile-command.c) \ + -DMARKER=marker$(firstword $(subst -, ,$*)) \ +@@ -2638,6 +2645,8 @@ $(objpfx)libmarkermod4.so: $(objpfx)libmarkermod4-1.so + cp $< $@ + $(objpfx)libmarkermod5.so: $(objpfx)libmarkermod5-1.so + cp $< $@ ++$(objpfx)libmarkermod6.so: $(objpfx)libmarkermod6-1.so ++ cp $< $@ + + # tst-glibc-hwcaps-prepend checks that --glibc-hwcaps-prepend is + # preferred over auto-detected subdirectories. +diff --git a/elf/tst-glibc-hwcaps-cache.script b/elf/tst-glibc-hwcaps-cache.script +index d58fc8c5de3c5198..af89e9c6f811f483 100644 +--- a/elf/tst-glibc-hwcaps-cache.script ++++ b/elf/tst-glibc-hwcaps-cache.script +@@ -5,6 +5,7 @@ cp $B/elf/libmarkermod2-1.so $L/libmarkermod2.so + cp $B/elf/libmarkermod3-1.so $L/libmarkermod3.so + cp $B/elf/libmarkermod4-1.so $L/libmarkermod4.so + cp $B/elf/libmarkermod5-1.so $L/libmarkermod5.so ++cp $B/elf/libmarkermod6-1.so $L/libmarkermod6.so + + mkdirp 0770 $L/glibc-hwcaps/power9 + cp $B/elf/libmarkermod2-2.so $L/glibc-hwcaps/power9/libmarkermod2.so +@@ -26,6 +27,12 @@ cp $B/elf/libmarkermod5-2.so $L/glibc-hwcaps/z13/libmarkermod5.so + cp $B/elf/libmarkermod5-3.so $L/glibc-hwcaps/z14/libmarkermod5.so + cp $B/elf/libmarkermod5-4.so $L/glibc-hwcaps/z15/libmarkermod5.so + cp $B/elf/libmarkermod5-5.so $L/glibc-hwcaps/z16/libmarkermod5.so ++mkdirp 0770 $L/glibc-hwcaps/z17 ++cp $B/elf/libmarkermod6-2.so $L/glibc-hwcaps/z13/libmarkermod6.so ++cp $B/elf/libmarkermod6-3.so $L/glibc-hwcaps/z14/libmarkermod6.so ++cp $B/elf/libmarkermod6-4.so $L/glibc-hwcaps/z15/libmarkermod6.so ++cp $B/elf/libmarkermod6-5.so $L/glibc-hwcaps/z16/libmarkermod6.so ++cp $B/elf/libmarkermod6-6.so $L/glibc-hwcaps/z17/libmarkermod6.so + + mkdirp 0770 $L/glibc-hwcaps/x86-64-v2 + cp $B/elf/libmarkermod2-2.so $L/glibc-hwcaps/x86-64-v2/libmarkermod2.so +diff --git a/sysdeps/s390/cpu-features.c b/sysdeps/s390/cpu-features.c +index afeb9b56382efa96..e9e7e726b71fb09a 100644 +--- a/sysdeps/s390/cpu-features.c ++++ b/sysdeps/s390/cpu-features.c +@@ -28,7 +28,7 @@ extern __typeof (memcmp) MEMCMP_DEFAULT; + #if HAVE_TUNABLES + # define S390_COPY_CPU_FEATURES(SRC_PTR, DEST_PTR) \ + (DEST_PTR)->hwcap = (SRC_PTR)->hwcap; \ +- (DEST_PTR)->stfle_bits[0] = (SRC_PTR)->stfle_bits[0]; ++ (DEST_PTR)->stfle_filtered = (SRC_PTR)->stfle_filtered; + + static void + TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *valp) +@@ -100,7 +100,7 @@ TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *valp) + disable = true; + hwcap_mask = HWCAP_S390_VXRS | HWCAP_S390_VXRS_EXT + | HWCAP_S390_VXRS_EXT2; +- stfle_bits0_mask = S390_STFLE_MASK_ARCH13_MIE3; ++ stfle_bits0_mask = S390_STFLE_BIT61_ARCH13_MIE3; + } + else if ((feature_len == 3 && *feature == 'z' + && MEMCMP_DEFAULT (feature, "z13", 3) == 0) +@@ -110,7 +110,7 @@ TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *valp) + reset_features = true; + disable = true; + hwcap_mask = HWCAP_S390_VXRS_EXT | HWCAP_S390_VXRS_EXT2; +- stfle_bits0_mask = S390_STFLE_MASK_ARCH13_MIE3; ++ stfle_bits0_mask = S390_STFLE_BIT61_ARCH13_MIE3; + } + else if ((feature_len == 3 && *feature == 'z' + && MEMCMP_DEFAULT (feature, "z14", 3) == 0) +@@ -120,14 +120,16 @@ TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *valp) + reset_features = true; + disable = true; + hwcap_mask = HWCAP_S390_VXRS_EXT2; +- stfle_bits0_mask = S390_STFLE_MASK_ARCH13_MIE3; ++ stfle_bits0_mask = S390_STFLE_BIT61_ARCH13_MIE3; + } + else if ((feature_len == 3 && *feature == 'z' + && (MEMCMP_DEFAULT (feature, "z15", 3) == 0 +- || MEMCMP_DEFAULT (feature, "z16", 3) == 0)) ++ || MEMCMP_DEFAULT (feature, "z16", 3) == 0 ++ || MEMCMP_DEFAULT (feature, "z17", 3) == 0)) + || (feature_len == 6 + && (MEMCMP_DEFAULT (feature, "arch13", 6) == 0 +- || MEMCMP_DEFAULT (feature, "arch14", 6) == 0))) ++ || MEMCMP_DEFAULT (feature, "arch14", 6) == 0 ++ || MEMCMP_DEFAULT (feature, "arch15", 6) == 0))) + { + /* For z15 or newer we don't have to disable something, + but we have to reset to the original values. */ +@@ -165,7 +167,7 @@ TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *valp) + if (feature_len == 10 + && MEMCMP_DEFAULT (feature, "STFLE_MIE3", 10) == 0) + { +- stfle_bits0_mask = S390_STFLE_MASK_ARCH13_MIE3; ++ stfle_bits0_mask = S390_STFLE_BIT61_ARCH13_MIE3; + } + } + +@@ -186,9 +188,9 @@ TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *valp) + if (stfle_bits0_mask != 0ULL) + { + if (disable) +- cpu_features_curr.stfle_bits[0] &= ~stfle_bits0_mask; ++ cpu_features_curr.stfle_filtered &= ~stfle_bits0_mask; + else +- cpu_features_curr.stfle_bits[0] |= stfle_bits0_mask; ++ cpu_features_curr.stfle_filtered |= stfle_bits0_mask; + } + + /* Jump over current token ... */ +@@ -202,14 +204,18 @@ TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *valp) + /* Copy back the features after checking that no unsupported features were + enabled by user. */ + cpu_features->hwcap = cpu_features_curr.hwcap & cpu_features_orig.hwcap; +- cpu_features->stfle_bits[0] = cpu_features_curr.stfle_bits[0] +- & cpu_features_orig.stfle_bits[0]; ++ cpu_features->stfle_filtered = cpu_features_curr.stfle_filtered ++ & cpu_features_orig.stfle_filtered; + } + #endif + + static inline void +-init_cpu_features (struct cpu_features *cpu_features) ++init_cpu_features_no_tunables (struct cpu_features *cpu_features) + { ++ /* Only initialize once. */ ++ if (cpu_features->hwcap != 0) ++ return; ++ + /* Fill cpu_features as passed by kernel and machine. */ + cpu_features->hwcap = GLRO(dl_hwcap); + +@@ -218,20 +224,57 @@ init_cpu_features (struct cpu_features *cpu_features) + && (cpu_features->hwcap & HWCAP_S390_ZARCH) + && (cpu_features->hwcap & HWCAP_S390_HIGH_GPRS))) + { +- register unsigned long reg0 __asm__("0") = 0; ++ unsigned long long stfle_bits[4] = { 0 }; ++ register unsigned long reg0 __asm__("0") = 3; + __asm__ __volatile__(".machine push" "\n\t" + ".machine \"z9-109\"" "\n\t" + ".machinemode \"zarch_nohighgprs\"\n\t" + "stfle %0" "\n\t" + ".machine pop" "\n" +- : "=QS" (cpu_features->stfle_bits[0]), ++ : "=QS" (stfle_bits[0]), + "+d" (reg0) + : : "cc"); ++ ++ unsigned long long internal_stfle_bits = 0; ++ ++ /* Facility bit 34: z10: General instructions extension. */ ++ if ((stfle_bits[0] & (1ULL << (63 - 34))) != 0) ++ internal_stfle_bits |= S390_STFLE_BIT34_Z10; ++ ++ /* Facility bit 45: z196: Distinct operands, popcount, ... */ ++ if ((stfle_bits[0] & (1ULL << (63 - 45))) != 0) ++ internal_stfle_bits |= S390_STFLE_BIT45_Z196; ++ ++ /* Facility bit 61: arch13/z15: Miscellaneous-Instruction-Extensions ++ Facility 3, e.g. mvcrl. */ ++ if ((stfle_bits[0] & (1ULL << (63 - 61))) != 0) ++ internal_stfle_bits |= S390_STFLE_BIT61_ARCH13_MIE3; ++ ++ /* Facility bit 84: arch15/z17: Miscellaneous-instruction-extensions 4 */ ++ if ((stfle_bits[1] & (1ULL << (127 - 84))) != 0) ++ internal_stfle_bits |= S390_STFLE_BIT84_ARCH15_MIE4; ++ ++ /* Facility bit 198: arch15/z17: Vector-enhancements-facility 3 */ ++ if ((stfle_bits[3] & (1ULL << (255 - 198))) != 0) ++ internal_stfle_bits |= S390_STFLE_BIT198_ARCH15_VXRS_EXT3; ++ ++ /* Facility bit 199: arch15/z17: Vector-Packed-Decimal-Enhancement 3 */ ++ if ((stfle_bits[3] & (1ULL << (255 - 199))) != 0) ++ internal_stfle_bits |= S390_STFLE_BIT199_ARCH15_VXRS_PDE3; ++ ++ /* Facility bit 201: arch15/z17: CPU: Concurrent-Functions Facility */ ++ if ((stfle_bits[3] & (1ULL << (255 - 201))) != 0) ++ internal_stfle_bits |= S390_STFLE_BIT201_ARCH15_CON; ++ ++ cpu_features->stfle_orig = internal_stfle_bits; ++ cpu_features->stfle_filtered = internal_stfle_bits; + } +- else +- { +- cpu_features->stfle_bits[0] = 0ULL; +- } ++} ++ ++static inline void ++init_cpu_features (struct cpu_features *cpu_features) ++{ ++ init_cpu_features_no_tunables (cpu_features); + + #if HAVE_TUNABLES + TUNABLE_GET (glibc, cpu, hwcaps, tunable_val_t *, TUNABLE_CALLBACK (set_hwcaps)); +diff --git a/sysdeps/s390/cpu-features.h b/sysdeps/s390/cpu-features.h +index 5e6b58f7c5bb07e4..f98654a7223cfc5b 100644 +--- a/sysdeps/s390/cpu-features.h ++++ b/sysdeps/s390/cpu-features.h +@@ -18,29 +18,58 @@ + #ifndef __CPU_FEATURES_S390X_H + # define __CPU_FEATURES_S390X_H + +-#define S390_STFLE_BITS_Z10 34 /* General instructions extension */ +-#define S390_STFLE_BITS_Z196 45 /* Distinct operands, pop ... */ +-#define S390_STFLE_BITS_ARCH13_MIE3 61 /* Miscellaneous-Instruction-Extensions +- Facility 3, e.g. mvcrl. */ ++/* The following stfle bit definitions are intended to be used for the ++ glibc internal stfle_orig and stfle_filtered fields in cpu_features ++ struct. They can't be used on the double words retrieved by the ++ stfle-instruction. */ + +-#define S390_STFLE_MASK_ARCH13_MIE3 (1ULL << (63 - S390_STFLE_BITS_ARCH13_MIE3)) ++/* Facility bit 34: z10: General instructions extension. */ ++#define S390_STFLE_BIT34_Z10 (1ULL << 0) + ++/* Facility bit 45: z196: Distinct operands, popcount, ... */ ++#define S390_STFLE_BIT45_Z196 (1ULL << 1) + +-#define S390_IS_ARCH13_MIE3(STFLE_BITS_ARRAY) \ +- (((STFLE_BITS_ARRAY)[0] & S390_STFLE_MASK_ARCH13_MIE3) != 0) ++/* Facility bit 61: arch13/z15: Miscellaneous-Instruction-Extensions ++ Facility 3, e.g. mvcrl. */ ++#define S390_STFLE_BIT61_ARCH13_MIE3 (1ULL << 2) + +-#define S390_IS_Z196(STFLE_BITS_ARRAY) \ +- (((STFLE_BITS_ARRAY)[0] & (1ULL << (63 - S390_STFLE_BITS_Z196))) != 0) ++/* Facility bit 84: arch15/z17: Miscellaneous-instruction-extensions ++ facility 4 */ ++#define S390_STFLE_BIT84_ARCH15_MIE4 (1ULL << 3) + +-#define S390_IS_Z10(STFLE_BITS_ARRAY) \ +- (((STFLE_BITS_ARRAY)[0] & (1ULL << (63 - S390_STFLE_BITS_Z10))) != 0) ++/* Facility bit 198: arch15/z17: Vector-enhancements-facility 3 */ ++#define S390_STFLE_BIT198_ARCH15_VXRS_EXT3 (1ULL << 4) ++ ++/* Facility bit 199: arch15/z17: Vector-Packed-Decimal-Enhancement ++ Facility 3 */ ++#define S390_STFLE_BIT199_ARCH15_VXRS_PDE3 (1ULL << 5) ++ ++/* Facility bit 201: arch15/z17: CPU: Concurrent-Functions Facility */ ++#define S390_STFLE_BIT201_ARCH15_CON (1ULL << 6) ++ ++#define S390_IS_ARCH15(STFLE_BITS) \ ++ ((((STFLE_BITS) & S390_STFLE_BIT84_ARCH15_MIE4) != 0) \ ++ && (((STFLE_BITS) & S390_STFLE_BIT198_ARCH15_VXRS_EXT3) != 0) \ ++ && (((STFLE_BITS) & S390_STFLE_BIT199_ARCH15_VXRS_PDE3) != 0) \ ++ && (((STFLE_BITS) & S390_STFLE_BIT201_ARCH15_CON) != 0)) ++ ++#define S390_IS_ARCH13_MIE3(STFLE_BITS) \ ++ (((STFLE_BITS) & S390_STFLE_BIT61_ARCH13_MIE3) != 0) ++ ++#define S390_IS_Z196(STFLE_BITS) \ ++ (((STFLE_BITS) & S390_STFLE_BIT45_Z196) != 0) ++ ++#define S390_IS_Z10(STFLE_BITS) \ ++ (((STFLE_BITS) & S390_STFLE_BIT34_Z10) != 0) + + struct cpu_features + { + unsigned long int hwcap; + unsigned long int __reserved_hwcap2; +- unsigned long long stfle_bits[3]; +- unsigned long long __reserved[11]; ++ unsigned long long __reserved; ++ unsigned long long stfle_orig; ++ unsigned long long stfle_filtered; ++ unsigned long long __reserved2[11]; + }; + + #endif /* __CPU_FEATURES_S390X_H */ +diff --git a/sysdeps/s390/dl-diagnostics-cpu.c b/sysdeps/s390/dl-diagnostics-cpu.c +new file mode 100644 +index 0000000000000000..426af2df7a34b55e +--- /dev/null ++++ b/sysdeps/s390/dl-diagnostics-cpu.c +@@ -0,0 +1,37 @@ ++/* Print CPU diagnostics data in ld.so. s390 version. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++static void ++print_cpu_features_value (const char *label, uint64_t value) ++{ ++ _dl_printf ("s390.cpu_features."); ++ _dl_diagnostics_print_labeled_value (label, value); ++} ++ ++void ++_dl_diagnostics_cpu (void) ++{ ++ const struct cpu_features *cpu_features = &GLRO(dl_s390_cpu_features); ++ print_cpu_features_value ("hwcap", cpu_features->hwcap); ++ print_cpu_features_value ("stfle_orig", cpu_features->stfle_orig); ++ print_cpu_features_value ("stfle_filtered", cpu_features->stfle_filtered); ++} +diff --git a/sysdeps/s390/multiarch/ifunc-impl-list.c b/sysdeps/s390/multiarch/ifunc-impl-list.c +index af2c75f5df7c7e1d..4c5fdf6069c4027b 100644 +--- a/sysdeps/s390/multiarch/ifunc-impl-list.c ++++ b/sysdeps/s390/multiarch/ifunc-impl-list.c +@@ -83,9 +83,9 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, + + /* Get hardware information. */ + const struct cpu_features *features = &GLRO(dl_s390_cpu_features); +- unsigned long int dl_hwcap = features->hwcap; +- const unsigned long long * __attribute__((unused)) stfle_bits +- = features->stfle_bits; ++ unsigned long int dl_hwcap __attribute__ ((unused)) = features->hwcap; ++ const unsigned long long __attribute__((unused)) stfle_bits ++ = features->stfle_filtered; + + #if HAVE_MEMSET_IFUNC + IFUNC_IMPL (i, name, memset, +diff --git a/sysdeps/s390/multiarch/ifunc-resolve.h b/sysdeps/s390/multiarch/ifunc-resolve.h +index c22d59d2a341fff7..16b358ec2e895a4c 100644 +--- a/sysdeps/s390/multiarch/ifunc-resolve.h ++++ b/sysdeps/s390/multiarch/ifunc-resolve.h +@@ -22,7 +22,7 @@ + #include + + #define s390_libc_ifunc_expr_stfle_init() \ +- const unsigned long long *stfle_bits = features->stfle_bits; ++ const unsigned long long stfle_bits = features->stfle_filtered; + + #define s390_libc_ifunc_expr_init() \ + const struct cpu_features *features = &GLRO(dl_s390_cpu_features); \ +diff --git a/sysdeps/s390/s390-64/Makefile b/sysdeps/s390/s390-64/Makefile +index 66ed844e68df5159..991025cd2a97c203 100644 +--- a/sysdeps/s390/s390-64/Makefile ++++ b/sysdeps/s390/s390-64/Makefile +@@ -11,7 +11,8 @@ $(objpfx)tst-glibc-hwcaps: \ + $(objpfx)libmarkermod2-1.so \ + $(objpfx)libmarkermod3-1.so \ + $(objpfx)libmarkermod4-1.so \ +- $(objpfx)libmarkermod5-1.so ++ $(objpfx)libmarkermod5-1.so \ ++ $(objpfx)libmarkermod6-1.so + $(objpfx)tst-glibc-hwcaps.out: \ + $(objpfx)libmarkermod2.so \ + $(objpfx)glibc-hwcaps/z13/libmarkermod2.so \ +@@ -26,7 +27,14 @@ $(objpfx)tst-glibc-hwcaps.out: \ + $(objpfx)glibc-hwcaps/z13/libmarkermod5.so \ + $(objpfx)glibc-hwcaps/z14/libmarkermod5.so \ + $(objpfx)glibc-hwcaps/z15/libmarkermod5.so \ +- $(objpfx)glibc-hwcaps/z16/libmarkermod5.so ++ $(objpfx)glibc-hwcaps/z16/libmarkermod5.so \ ++ $(objpfx)libmarkermod6.so \ ++ $(objpfx)glibc-hwcaps/z13/libmarkermod6.so \ ++ $(objpfx)glibc-hwcaps/z14/libmarkermod6.so \ ++ $(objpfx)glibc-hwcaps/z15/libmarkermod6.so \ ++ $(objpfx)glibc-hwcaps/z16/libmarkermod6.so \ ++ $(objpfx)glibc-hwcaps/z17/libmarkermod6.so ++ + + $(objpfx)glibc-hwcaps/z13/libmarkermod2.so: $(objpfx)libmarkermod2-2.so + $(make-target-directory) +@@ -58,6 +66,21 @@ $(objpfx)glibc-hwcaps/z15/libmarkermod5.so: $(objpfx)libmarkermod5-4.so + $(objpfx)glibc-hwcaps/z16/libmarkermod5.so: $(objpfx)libmarkermod5-5.so + $(make-target-directory) + cp $< $@ ++$(objpfx)glibc-hwcaps/z13/libmarkermod6.so: $(objpfx)libmarkermod6-2.so ++ $(make-target-directory) ++ cp $< $@ ++$(objpfx)glibc-hwcaps/z14/libmarkermod6.so: $(objpfx)libmarkermod6-3.so ++ $(make-target-directory) ++ cp $< $@ ++$(objpfx)glibc-hwcaps/z15/libmarkermod6.so: $(objpfx)libmarkermod6-4.so ++ $(make-target-directory) ++ cp $< $@ ++$(objpfx)glibc-hwcaps/z16/libmarkermod6.so: $(objpfx)libmarkermod6-5.so ++ $(make-target-directory) ++ cp $< $@ ++$(objpfx)glibc-hwcaps/z17/libmarkermod6.so: $(objpfx)libmarkermod6-6.so ++ $(make-target-directory) ++ cp $< $@ + + + ifeq (no,$(build-hardcoded-path-in-tests)) +diff --git a/sysdeps/s390/s390-64/dl-hwcap-check.h b/sysdeps/s390/s390-64/dl-hwcap-check.h +index 52c609571b32f4ab..d52444419b9a54c1 100644 +--- a/sysdeps/s390/s390-64/dl-hwcap-check.h ++++ b/sysdeps/s390/s390-64/dl-hwcap-check.h +@@ -25,8 +25,23 @@ + static inline void + dl_hwcap_check (void) + { +-#if defined __ARCH__ +-# if GCCMACRO__ARCH__ >= 14 ++ /* Note: The s390x kernel won't introduce new HWCAP-Bits if there is ++ no special handling needed in kernel itself. Thus we have have ++ to check the facility-list retrieved with the stfle instruction. ++ We already have a common storage of this list in cpu-features.c. ++ This dl-hwcap-check.h file is included in ++ sysdeps/unix/sysv/linux/dl-sysdep.c, where also dl-machine.h and ++ cpu-features.c is included. Therefore we don't have a special ++ include here. */ ++ ++#if defined GCCMACRO__ARCH__ ++# if GCCMACRO__ARCH__ >= 15 ++ init_cpu_features_no_tunables (&GLRO(dl_s390_cpu_features)); ++ if (!(S390_IS_ARCH15 (GLRO(dl_s390_cpu_features).stfle_orig))) ++ _dl_fatal_printf ("\ ++Fatal glibc error: CPU lacks VXRS_EXT3/VXRS_PDE3/MIE4/Concurrent-functions \ ++support (z17 or later required)\n"); ++# elif GCCMACRO__ARCH__ >= 14 + if (!(GLRO(dl_hwcap) & HWCAP_S390_VXRS_PDE2)) + _dl_fatal_printf ("\ + Fatal glibc error: CPU lacks VXRS_PDE2 support (z16 or later required)\n"); +@@ -39,7 +54,7 @@ Fatal glibc error: CPU lacks VXRS_EXT2 support (z15 or later required)\n"); + _dl_fatal_printf ("\ + Fatal glibc error: CPU lacks VXE support (z14 or later required)\n"); + # endif +-#endif /* __ARCH__ */ ++#endif /* GCCMACRO__ARCH__ */ + } + + #endif /* _DL_HWCAP_CHECK_H */ +diff --git a/sysdeps/s390/s390-64/dl-hwcaps-subdirs.c b/sysdeps/s390/s390-64/dl-hwcaps-subdirs.c +index 187d732d560c4a62..0e4aa067c0b87439 100644 +--- a/sysdeps/s390/s390-64/dl-hwcaps-subdirs.c ++++ b/sysdeps/s390/s390-64/dl-hwcaps-subdirs.c +@@ -18,9 +18,10 @@ + + #include + #include ++#include + +-const char _dl_hwcaps_subdirs[] = "z16:z15:z14:z13"; +-enum { subdirs_count = 4 }; /* Number of components in _dl_hwcaps_subdirs. */ ++const char _dl_hwcaps_subdirs[] = "z17:z16:z15:z14:z13"; ++enum { subdirs_count = 5 }; /* Number of components in _dl_hwcaps_subdirs. */ + + uint32_t + _dl_hwcaps_subdirs_active (void) +@@ -57,5 +58,12 @@ _dl_hwcaps_subdirs_active (void) + return _dl_hwcaps_subdirs_build_bitmask (subdirs_count, active); + ++active; + ++ /* z17. ++ Note: The kernel has not introduced new HWCAP bits as the new facilities do ++ not require kernel interaction. Thus we check the features via stfle. */ ++ if (!(S390_IS_ARCH15 (GLRO(dl_s390_cpu_features).stfle_orig))) ++ return _dl_hwcaps_subdirs_build_bitmask (subdirs_count, active); ++ ++active; ++ + return _dl_hwcaps_subdirs_build_bitmask (subdirs_count, active); + } +diff --git a/sysdeps/s390/s390-64/tst-glibc-hwcaps.c b/sysdeps/s390/s390-64/tst-glibc-hwcaps.c +index f3b8ef3dec80d2d1..211aaf3052a1e12c 100644 +--- a/sysdeps/s390/s390-64/tst-glibc-hwcaps.c ++++ b/sysdeps/s390/s390-64/tst-glibc-hwcaps.c +@@ -26,35 +26,53 @@ extern int marker2 (void); + extern int marker3 (void); + extern int marker4 (void); + extern int marker5 (void); ++extern int marker6 (void); + + /* Return the arch level, 10 for the baseline libmarkermod*.so's. */ + static int + compute_level (void) + { + const char *platform = (const char *) getauxval (AT_PLATFORM); ++ const unsigned long int hwcap = getauxval (AT_HWCAP); ++ const int latest_level = 15; + + /* The arch* versions refer to the edition of the Principles of + Operation, and they are off by two when compared with the recent + product names. (The code below should not be considered an + accurate mapping to Principles of Operation editions for earlier + AT_PLATFORM strings). */ +- if (strcmp (platform, "z900") == 0) +- return 10; +- if (strcmp (platform, "z990") == 0) +- return 10; +- if (strcmp (platform, "z9-109") == 0) +- return 10; +- if (strcmp (platform, "z10") == 0) +- return 10; +- if (strcmp (platform, "z196") == 0) +- return 10; +- if (strcmp (platform, "zEC12") == 0) +- return 10; ++ if ((strcmp (platform, "z900") == 0) ++ || (strcmp (platform, "z990") == 0) ++ || (strcmp (platform, "z9-109") == 0) ++ || (strcmp (platform, "z10") == 0) ++ || (strcmp (platform, "z196") == 0) ++ || (strcmp (platform, "zEC12") == 0)) ++ { ++ if ((hwcap & HWCAP_S390_VX) == 0) ++ { ++ /* As vector-support was introduced with the newer z13 ++ architecture, we are really on one of the tested older ++ architectures. */ ++ return 10; ++ } ++ else ++ { ++ /* According to AT_PLATFORM we are on an older architecture ++ without vector-support, but according to HWCAPs vector ++ registers are supported. This means we are running on a ++ new architecture which is not yet known by the kernel. ++ Thus the default AT_PLATFORM string is used, which is the ++ oldest supported one. For this test, assume we are on ++ the latest known architecture. See ++ /arch/s390/kernel/processor.c:setup_elf_platform(). ++ */ ++ return latest_level; ++ } ++ } + + /* If we are running on z13 or newer and the kernel was booted with novx, + then AT_PLATFORM is z13 or newer, but _dl_hwcaps_subdirs_active will + return zero and the _dl_hwcaps_subdirs are not searched. */ +- const unsigned long int hwcap = getauxval (AT_HWCAP); + if ((hwcap & HWCAP_S390_VX) == 0) + return 10; + +@@ -66,9 +84,12 @@ compute_level (void) + return 13; + if (strcmp (platform, "z16") == 0) + return 14; ++ if (strcmp (platform, "z17") == 0) ++ return latest_level; ++ + printf ("warning: unrecognized AT_PLATFORM value: %s\n", platform); +- /* Assume that the new platform supports z16. */ +- return 14; ++ /* Assume that the new platform supports the latest known architecture. */ ++ return latest_level; + } + + static int +@@ -80,6 +101,7 @@ do_test (void) + TEST_COMPARE (marker3 (), MIN (level - 9, 3)); + TEST_COMPARE (marker4 (), MIN (level - 9, 4)); + TEST_COMPARE (marker5 (), MIN (level - 9, 5)); ++ TEST_COMPARE (marker6 (), MIN (level - 9, 6)); + return 0; + } + +diff --git a/sysdeps/unix/sysv/linux/s390/sysconf.c b/sysdeps/unix/sysv/linux/s390/sysconf.c +index 14821b5f248cd991..fc04a7ddedea0d7e 100644 +--- a/sysdeps/unix/sysv/linux/s390/sysconf.c ++++ b/sysdeps/unix/sysv/linux/s390/sysconf.c +@@ -65,7 +65,7 @@ get_cache_info (int level, int attr, int type) + return 0L; + } + +- if (!S390_IS_Z10 (features->stfle_bits)) ++ if (!S390_IS_Z10 (features->stfle_orig)) + { + /* We are at least on a z9 machine. + Return 256byte for LINESIZE for L1 d/i-cache, diff --git a/SOURCES/glibc-RHEL-50086-2.patch b/SOURCES/glibc-RHEL-50086-2.patch new file mode 100644 index 0000000..c03753f --- /dev/null +++ b/SOURCES/glibc-RHEL-50086-2.patch @@ -0,0 +1,42 @@ +Downstream only. + +From: Stefan Liebler +Date: Tue, 6 May 2025 14:49:22 +0200 +Subject: [PATCH 2/2] S390: Add z17 to legacy hwcap/platform mechanism + + As glibc 2.34 is still generating ld.so.cache entries for libraries + in /usr/lib64/z16/libtest.so, do the same for z17 to have the same behavior. + + See upstream glibc commits: + commit b78ff5a25dc8ba9d8c6df10bb0a533254bdd193f + 'elf: Remove legacy hwcaps support from ldconfig' + https://sourceware.org/git/?p=glibc.git;a=commit;h=b78ff5a25dc8ba9d8c6df10bb0a533254bdd193f + + commit c5aa5fd40adc81c4f0b18e01f329aeaf86518c7b + 'elf: Remove loading legacy hwcaps/platform entries in dynamic loader' + https://sourceware.org/git/?p=glibc.git;a=commit;h=c5aa5fd40adc81c4f0b18e01f329aeaf86518c7b + +diff --git a/sysdeps/s390/dl-procinfo-s390.c b/sysdeps/s390/dl-procinfo-s390.c +index 559f3827936cd017..7842f7742a829e16 100644 +--- a/sysdeps/s390/dl-procinfo-s390.c ++++ b/sysdeps/s390/dl-procinfo-s390.c +@@ -28,5 +28,5 @@ const char _dl_s390_cap_flags[_DL_HWCAP_COUNT][9] = + const char _dl_s390_platforms[_DL_PLATFORMS_COUNT][7] = + { + "g5", "z900", "z990", "z9-109", "z10", "z196", "zEC12", "z13", "z14", "z15", +- "z16" ++ "z16", "z17" + }; +diff --git a/sysdeps/s390/dl-procinfo.h b/sysdeps/s390/dl-procinfo.h +index eb782fc3014cd012..3d78cacc98d79f7f 100644 +--- a/sysdeps/s390/dl-procinfo.h ++++ b/sysdeps/s390/dl-procinfo.h +@@ -24,7 +24,7 @@ + #define _DL_HWCAP_COUNT 23 + extern const char _dl_s390_cap_flags[_DL_HWCAP_COUNT][9] attribute_hidden; + +-#define _DL_PLATFORMS_COUNT 11 ++#define _DL_PLATFORMS_COUNT 12 + extern const char _dl_s390_platforms[_DL_PLATFORMS_COUNT][7] attribute_hidden; + + /* The kernel provides up to 32 capability bits with elf_hwcap. */ diff --git a/SOURCES/glibc-RHEL-50546-1.patch b/SOURCES/glibc-RHEL-50546-1.patch new file mode 100644 index 0000000..2f53691 --- /dev/null +++ b/SOURCES/glibc-RHEL-50546-1.patch @@ -0,0 +1,67 @@ +commit 3b21166c4d34ee032093bcf599ffac42ad8a4371 +Author: Arjun Shankar +Date: Wed Jun 4 13:08:53 2025 +0200 + + manual: Expand Descriptor-Relative Access section + + Improve the clarity of the paragraphs describing common flags and add a + list of common error conditions for descriptor-relative functions. + Reviewed-by: Florian Weimer + +diff --git a/manual/filesys.texi b/manual/filesys.texi +index 450d175e614d8834..28d38f23fc58c51f 100644 +--- a/manual/filesys.texi ++++ b/manual/filesys.texi +@@ -310,12 +310,17 @@ This is a GNU extension. + The flags argument in @code{@dots{}at} functions can be a combination of + the following flags, defined in @file{fcntl.h}. Not all such functions + support all flags, and some (such as @code{openat}) do not accept a +-flags argument at all. +- +-In the flag descriptions below, the @dfn{effective final path component} +-refers to the final component (basename) of the full path constructed +-from the descriptor and file name arguments, using file name lookup, as +-described above. ++flags argument at all. Although the flags specific to each function have ++distinct values from each other, some flags (relevant to different ++functions) might share the same value and therefore are not guaranteed to ++have unique values. ++ ++A non-exhaustive list of common flags and their descriptions follows. Flags ++specific to a function are described alongside the function itself. In ++these flag descriptions, the @dfn{effective final path component} refers to ++the final component (basename) of the full path constructed from the ++descriptor and file name arguments, using file name lookup, as described ++above. + + @vtable @code + @item AT_EMPTY_PATH +@@ -353,6 +358,28 @@ a non-final component of the file name are still followed. + argument to the @code{getauxval} function (with @code{AT_@dots{}} + constants defined in @file{elf.h}). @xref{Auxiliary Vector}. + ++@cindex common errors in descriptor-relative functions ++@cindex common errors in @code{@dots{}at} functions ++ ++The @code{@dots{}at} functions have some common error conditions due to the ++nature of descriptor-relative access. A list of common errors and their ++descriptions follows. Errors specific to a function are described alongside ++the function itself. ++ ++@table @code ++@item EBADF ++The file name argument is a relative path but the descriptor argument ++is neither @code{AT_FDCWD} nor a valid file descriptor. ++ ++@item EINVAL ++If the function accepts a @var{flags} argument, the flag combination passed ++is not valid for the function. ++ ++@item ENOTDIR ++The file name argument is a relative file name but the descriptor ++argument is associated with a file that is not a directory. ++@end table ++ + @node Accessing Directories + @section Accessing Directories + @cindex accessing directories diff --git a/SOURCES/glibc-RHEL-50546-2.patch b/SOURCES/glibc-RHEL-50546-2.patch new file mode 100644 index 0000000..1fc1bb8 --- /dev/null +++ b/SOURCES/glibc-RHEL-50546-2.patch @@ -0,0 +1,50 @@ +commit 941157dbcdf1c410960bde991206bfb6d9bb292f +Author: Arjun Shankar +Date: Wed Jun 4 13:08:54 2025 +0200 + + manual: Document faccessat + + Reviewed-by: Florian Weimer + +diff --git a/manual/filesys.texi b/manual/filesys.texi +index 28d38f23fc58c51f..17c15b54037e719d 100644 +--- a/manual/filesys.texi ++++ b/manual/filesys.texi +@@ -3069,6 +3069,29 @@ Flag meaning test for execute/search permission. + Flag meaning test for existence of the file. + @end deftypevr + ++@deftypefun int faccessat (int @var{filedes}, const char *@var{filename}, int @var{how}, int @var{flags}) ++@standards{POSIX.1-2008, unistd.h} ++@comment Unaudited and therefore marked AC-Unsafe and AS-Unsafe by default ++@safety{@mtsafe{}@asunsafe{@asucorrupt{}}@acunsafe{@acucorrupt{}}} ++This function is a descriptor-relative version of the @code{access} ++function above. @xref{Descriptor-Relative Access}. The @var{flags} ++argument can contain a combination of the flags @code{AT_EACCESS} described ++below, @code{AT_EMPTY_PATH}, and @code{AT_SYMLINK_NOFOLLOW}. ++ ++@vtable @code ++@item AT_EACCESS ++This flag when passed to the @code{faccessat} function causes it to perform ++access checks using effective user and group IDs instead of real IDs, which ++is the default and matches the @code{access} function. ++@end vtable ++ ++Compared to @code{access}, some additional error conditions can occur. ++@xref{Descriptor-Relative Access}. ++ ++This function may not work correctly on older kernels missing the ++@code{faccessat2} system call. ++@end deftypefun ++ + @node File Times + @subsection File Times + +@@ -3849,7 +3872,6 @@ creation always works like @code{open} with @code{O_EXCL}. + The @code{mkdtemp} function comes from OpenBSD. + + @c FIXME these are undocumented: +-@c faccessat + @c fchmodat + @c fchownat + @c futimesat diff --git a/SOURCES/glibc-RHEL-50546-3.patch b/SOURCES/glibc-RHEL-50546-3.patch new file mode 100644 index 0000000..cd96eb5 --- /dev/null +++ b/SOURCES/glibc-RHEL-50546-3.patch @@ -0,0 +1,38 @@ +commit 49766eb1a5b93d093bd0fada55ca7a42dfdb10d6 +Author: Arjun Shankar +Date: Wed Jun 4 13:08:55 2025 +0200 + + manual: Document mkdirat + + Reviewed-by: Florian Weimer + +diff --git a/manual/filesys.texi b/manual/filesys.texi +index 17c15b54037e719d..d8f362f3beda9b28 100644 +--- a/manual/filesys.texi ++++ b/manual/filesys.texi +@@ -1964,6 +1964,17 @@ To use this function, your program should include the header file + @pindex sys/stat.h + @end deftypefun + ++@deftypefun int mkdirat (int @var{filedes}, const char *@var{filename}, mode_t @var{mode}) ++@standards{POSIX.1-2008, sys/stat.h} ++@comment Unaudited and therefore marked AC-Unsafe and AS-Unsafe by default ++@safety{@mtsafe{}@asunsafe{@asucorrupt{}}@acunsafe{@acucorrupt{}}} ++This function is a descriptor-relative version of the @code{mkdir} ++function above. @xref{Descriptor-Relative Access}. ++ ++Compared to @code{mkdir}, some additional error conditions can occur. ++@xref{Descriptor-Relative Access}. ++@end deftypefun ++ + @node File Attributes + @section File Attributes + +@@ -3877,7 +3888,6 @@ The @code{mkdtemp} function comes from OpenBSD. + @c futimesat + @c fstatat (there's a commented-out safety assessment for this one) + @c statx +-@c mkdirat + @c mkfifoat + @c name_to_handle_at + @c openat diff --git a/SOURCES/glibc-RHEL-50546-4.patch b/SOURCES/glibc-RHEL-50546-4.patch new file mode 100644 index 0000000..6fc1c7b --- /dev/null +++ b/SOURCES/glibc-RHEL-50546-4.patch @@ -0,0 +1,38 @@ +commit 60f86c9cd062882cbeb04b2944c3dfb7457ee5c5 +Author: Arjun Shankar +Date: Wed Jun 4 13:08:56 2025 +0200 + + manual: Document renameat + + Reviewed-by: Florian Weimer + +diff --git a/manual/filesys.texi b/manual/filesys.texi +index d8f362f3beda9b28..8a173c562fa71f83 100644 +--- a/manual/filesys.texi ++++ b/manual/filesys.texi +@@ -1910,6 +1910,17 @@ file systems. + @end table + @end deftypefun + ++@deftypefun int renameat (int @var{oldfiledes}, const char *@var{oldname}, int @var{newfiledes}, const char *@var{newname}) ++@standards{POSIX.1-2008, stdio.h} ++@comment Unaudited and therefore marked AC-Unsafe and AS-Unsafe by default ++@safety{@mtsafe{}@asunsafe{@asucorrupt{}}@acunsafe{@acucorrupt{}}} ++This function is a descriptor-relative version of the @code{rename} ++function above. @xref{Descriptor-Relative Access}. ++ ++Compared to @code{rename}, some additional error conditions can occur. ++@xref{Descriptor-Relative Access}. ++@end deftypefun ++ + @node Creating Directories + @section Creating Directories + @cindex creating a directory +@@ -3893,7 +3904,6 @@ The @code{mkdtemp} function comes from OpenBSD. + @c openat + @c open_by_handle_at + @c readlinkat +-@c renameat + @c renameat2 + @c scandirat + @c symlinkat diff --git a/SOURCES/glibc-RHEL-50546-5.patch b/SOURCES/glibc-RHEL-50546-5.patch new file mode 100644 index 0000000..cf770e4 --- /dev/null +++ b/SOURCES/glibc-RHEL-50546-5.patch @@ -0,0 +1,51 @@ +commit 75b725717ff23d0ae38fc7f4a0361cb1bdffbe2e +Author: Arjun Shankar +Date: Wed Jun 4 13:08:57 2025 +0200 + + manual: Document unlinkat + + Reviewed-by: Florian Weimer + +diff --git a/manual/filesys.texi b/manual/filesys.texi +index 8a173c562fa71f83..396d68c32925c501 100644 +--- a/manual/filesys.texi ++++ b/manual/filesys.texi +@@ -1779,6 +1779,31 @@ file system and can't be modified. + @end table + @end deftypefun + ++@deftypefun int unlinkat (int @var{filedes}, const char *@var{filename}, int @var{flags}) ++@standards{POSIX.1-2008, unistd.h} ++@comment Unaudited and therefore marked AC-Unsafe and AS-Unsafe by default ++@safety{@mtsafe{}@asunsafe{@asucorrupt{}}@acunsafe{@acucorrupt{}}} ++This function is a descriptor-relative version of the @code{unlink} ++function above. @xref{Descriptor-Relative Access}. The @var{flags} ++argument may either be @code{0} or contain the flag @code{AT_REMOVEDIR}: ++ ++@table @code ++@item AT_REMOVEDIR ++This flag causes @code{unlinkat} to perform an @code{rmdir} operation on ++@code{filename} instead of performing the equivalent of @code{unlink}. ++@end table ++ ++Compared to @code{unlink}, some additional error conditions can occur due to ++descriptor-relative access. @xref{Descriptor-Relative Access}. In ++addition to this, the following other errors can also occur: ++ ++@table @code ++@item EISDIR ++The effective final path derived from @var{filename} and @var{filedes} is a ++directory but @code{AT_REMOVEDIR} was not passed in @code{flags}. ++@end table ++@end deftypefun ++ + @deftypefun int rmdir (const char *@var{filename}) + @standards{POSIX.1, unistd.h} + @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +@@ -3907,6 +3932,5 @@ The @code{mkdtemp} function comes from OpenBSD. + @c renameat2 + @c scandirat + @c symlinkat +-@c unlinkat + @c utimensat + @c mknodat diff --git a/SOURCES/glibc-RHEL-50546-6.patch b/SOURCES/glibc-RHEL-50546-6.patch new file mode 100644 index 0000000..fa83a4c --- /dev/null +++ b/SOURCES/glibc-RHEL-50546-6.patch @@ -0,0 +1,97 @@ +commit 25f1d945766a3a757d9b54eb48fe7c3c48c0f791 +Author: Arjun Shankar +Date: Wed Jun 4 13:08:58 2025 +0200 + + manual: Document futimens and utimensat + + Document futimens and utimensat. Also document the EINVAL error + condition for futimes. It is inherited by futimens and utimensat as + well. + Reviewed-by: Florian Weimer + +diff --git a/manual/filesys.texi b/manual/filesys.texi +index 396d68c32925c501..f21f21804251e480 100644 +--- a/manual/filesys.texi ++++ b/manual/filesys.texi +@@ -3307,6 +3307,10 @@ permission for the file, or be a privileged user. + @item EBADF + The @var{filedes} argument is not a valid file descriptor. + ++@item EINVAL ++At least one of the fields in the @code{tvp} array passed has an invalid ++value. ++ + @item EPERM + If the @var{times} argument is not a null pointer, you must either be + the owner of the file or be a privileged user. +@@ -3316,6 +3320,64 @@ The file lives on a read-only file system. + @end table + @end deftypefun + ++@deftypefun int futimens (int @var{filedes}, const struct timespec @var{tsp}@t{[2]}) ++@standards{POSIX.1-2008, sys/stat.h} ++@comment Unaudited and therefore marked AC-Unsafe and AS-Unsafe by default ++@safety{@mtsafe{}@asunsafe{@asucorrupt{}}@acunsafe{@acucorrupt{}}} ++This function is like @code{futimes}, except that it sets the file access ++and modification timestamps with nanosecond precision. The argument ++@code{tsp} is used similarly to @code{futimes}' @code{tvp}, but has a ++@code{const struct timespec} type that can express calendar time with ++nanosecond precision. @xref{Time Types}. ++@end deftypefun ++ ++@deftypefun int utimensat (int @var{filedes}, const char *@var{filename}, const struct timespec @var{tsp}@t{[2]}, int @var{flags}) ++@standards{POSIX.1-2008, sys/stat.h} ++@comment Unaudited and therefore marked AC-Unsafe and AS-Unsafe by default ++@safety{@mtsafe{}@asunsafe{@asucorrupt{}}@acunsafe{@acucorrupt{}}} ++This function is a descriptor-relative version of the @code{futimens} ++function above. @xref{Descriptor-Relative Access}. The @var{flags} ++argument can contain a combination of the flags @code{AT_EMPTY_PATH}, and ++@code{AT_SYMLINK_NOFOLLOW}. The call: ++ ++@smallexample ++futimens (@var{filedes}, @var{tsp}) ++@end smallexample ++ ++is equivalent to: ++ ++@smallexample ++utimensat (@var{filedes}, @code{NULL}, @var{tsp}, 0) ++@end smallexample ++ ++Compared to @code{futimens}, some additional error conditions can occur due ++to descriptor-relative access. @xref{Descriptor-Relative Access}. In ++addition to this, the following other errors can also occur: ++ ++@table @code ++@item EINVAL ++The @var{filename} argument is NULL, @var{filedes} is not @code{AT_FDCWD}, ++and @var{flags} is not @code{0}. ++ ++@item ELOOP ++There are too many levels of indirection. This can be the result of ++circular symbolic links to directories. ++ ++@item ENAMETOOLONG ++The resulting path is too long. This error only occurs on systems which ++have a limit on the file name length. ++ ++@item ENOENT ++The @var{filename} argument is an empty string and @var{flags} does not ++contain @code{AT_EMPTY_PATH}, or @var{filename} does not refer to an ++existing file. ++ ++@item ESRCH ++Search permission was denied for one of the prefix components of the the ++@var{filename} argument. ++@end table ++@end deftypefun ++ + @node File Size + @subsection File Size + +@@ -3932,5 +3994,4 @@ The @code{mkdtemp} function comes from OpenBSD. + @c renameat2 + @c scandirat + @c symlinkat +-@c utimensat + @c mknodat diff --git a/SOURCES/glibc-RHEL-53909-1.patch b/SOURCES/glibc-RHEL-53909-1.patch new file mode 100644 index 0000000..f799eeb --- /dev/null +++ b/SOURCES/glibc-RHEL-53909-1.patch @@ -0,0 +1,148 @@ +commit 2eee835eca960c9d4119279804214b7a1ed5d156 +Author: DJ Delorie +Date: Thu Aug 8 22:44:56 2024 -0400 + + inet: test if_nametoindex and if_indextoname + + Tests for if_nameindex, if_name2index, and if_index2name + + Tests that valid results are consistent. + + Tests that invalid parameters fail correctly. + + Reviewed-by: Florian Weimer + +diff --git a/inet/Makefile b/inet/Makefile +index ef6b94ed0b519d6d..dbdcea9e71fdd765 100644 +--- a/inet/Makefile ++++ b/inet/Makefile +@@ -136,6 +136,7 @@ tests := \ + tst-getni1 \ + tst-getni2 \ + tst-if_index-long \ ++ tst-if_nameindex \ + tst-inet6_rth \ + tst-network \ + tst-ntoa \ +diff --git a/inet/tst-if_nameindex.c b/inet/tst-if_nameindex.c +new file mode 100644 +index 0000000000000000..b025cdb3a7c6b68c +--- /dev/null ++++ b/inet/tst-if_nameindex.c +@@ -0,0 +1,116 @@ ++/* Tests for if_nameindex et al. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static char *buffer; ++ ++static const char *test_names[] = { ++ "testing", ++ "invalid", ++ "dont-match", ++ "", ++ "\001\001\001\177", ++ NULL ++}; ++ ++static void ++checki (int i) ++{ ++ char *ifname; ++ ++ /* Test that a known-invalid index returns NULL. */ ++ /* BUFFER should not be accessed. */ ++ ++ printf ("Testing if_indextoname (%d) == NULL\n", i); ++ ifname = if_indextoname (i, NULL); ++ TEST_VERIFY (ifname == NULL); ++ TEST_VERIFY (errno == ENXIO); ++} ++ ++static int ++do_test (void) ++{ ++ struct if_nameindex *if_ni, *ifp; ++ int min_idx, max_idx, buflen = 0; ++ int i; ++ ++ if_ni = if_nameindex (); ++ TEST_VERIFY (if_ni != NULL); ++ ++ min_idx = max_idx = if_ni->if_index; ++ ++ for (ifp = if_ni; !(ifp->if_index == 0 && ifp->if_name == NULL); ifp++) ++ { ++ printf ("%u: %s\n", ifp->if_index, ifp->if_name); ++ if (ifp->if_index < min_idx) ++ min_idx = ifp->if_index; ++ if (ifp->if_index > max_idx) ++ max_idx = ifp->if_index; ++ if (strlen (ifp->if_name) + 1 > buflen) ++ buflen = strlen (ifp->if_name) + 1; ++ } ++ buffer = (char *) xmalloc (buflen); ++ ++ /* Check normal operation. */ ++ for (ifp = if_ni; !(ifp->if_index == 0 && ifp->if_name == NULL); ifp++) ++ { ++ unsigned int idx = if_nametoindex (ifp->if_name); ++ TEST_VERIFY (idx == ifp->if_index); ++ ++ char *fn = if_indextoname (ifp->if_index, buffer); ++ TEST_VERIFY (strcmp (fn, ifp->if_name) == 0); ++ } ++ ++ for (i=-2; iif_index == 0 && ifp->if_name == NULL); ifp++) ++ if (strcmp (test_names[i], ifp->if_name) == 0) ++ goto not_this_one; ++ ++ printf ("Testing if_nametoindex (%s) == 0\n", test_names[i]); ++ ++ unsigned int idx = if_nametoindex (test_names[i]); ++ TEST_VERIFY (idx == 0); ++ TEST_VERIFY (errno == ENODEV); ++ ++ not_this_one: ++ } ++ ++ ++ if_freenameindex (if_ni); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-53909-2.patch b/SOURCES/glibc-RHEL-53909-2.patch new file mode 100644 index 0000000..e3c1b91 --- /dev/null +++ b/SOURCES/glibc-RHEL-53909-2.patch @@ -0,0 +1,20 @@ +commit 79f44e1a47e87907fb8e97bbd098e01c4adc26a5 +Author: Florian Weimer +Date: Mon Aug 26 16:45:31 2024 +0200 + + inet: Avoid label at end of compound statement in tst-if_nameindex + + This fails to compile with GCC 8. + +diff --git a/inet/tst-if_nameindex.c b/inet/tst-if_nameindex.c +index b025cdb3a7c6b68c..5b905601245bef34 100644 +--- a/inet/tst-if_nameindex.c ++++ b/inet/tst-if_nameindex.c +@@ -105,6 +105,7 @@ do_test (void) + TEST_VERIFY (errno == ENODEV); + + not_this_one: ++ ; + } + + diff --git a/SOURCES/glibc-RHEL-55471-1.patch b/SOURCES/glibc-RHEL-55471-1.patch new file mode 100644 index 0000000..d38927c --- /dev/null +++ b/SOURCES/glibc-RHEL-55471-1.patch @@ -0,0 +1,94 @@ +commit 5d4ab106d4cf7d6e410d6fc3d460b090c9108682 +Author: Tulio Magno Quites Machado Filho +Date: Thu Sep 5 15:34:29 2024 -0300 + + Add a new fwrite test for read-only streams + + Ensure that fwrite() behaves correctly even when the stream is + read-only. + + Reviewed-by: Carlos O'Donell + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 74e0edff73a9e468..4c2b820c641e8b55 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -217,6 +217,7 @@ tests := \ + tst-freopen64-7 \ + tst-fseek \ + tst-fwrite \ ++ tst-fwrite-ro \ + tst-getline \ + tst-getline-enomem \ + tst-gets \ +diff --git a/stdio-common/tst-fwrite-ro.c b/stdio-common/tst-fwrite-ro.c +new file mode 100644 +index 0000000000000000..7013bee53cc494d0 +--- /dev/null ++++ b/stdio-common/tst-fwrite-ro.c +@@ -0,0 +1,65 @@ ++/* Test fwrite on a read-only stream. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* A small buffer size is enough to run this test. */ ++#define BUFSIZE 4 ++ ++static int ++do_test (void) ++{ ++ int fd; ++ FILE *f; ++ struct stat64 st; ++ ++ /* Create a temporary file and open it in read-only mode. */ ++ fd = create_temp_file ("tst-fwrite-ro", NULL); ++ TEST_VERIFY_EXIT (fd != -1); ++ f = fdopen (fd, "r"); ++ TEST_VERIFY_EXIT (f != NULL); ++ ++ /* Try to write to the temporary file with nmemb = 0, then check that ++ fwrite returns 0. No errors are expected from this. */ ++ TEST_COMPARE (fwrite ("a", 1, 0, f), 0); ++ TEST_COMPARE (ferror (f), 0); ++ ++ /* Try to write to the temporary file with size = 0, then check that ++ fwrite returns 0. No errors are expected from this. */ ++ TEST_COMPARE (fwrite ("a", 0, 1, f), 0); ++ TEST_COMPARE (ferror (f), 0); ++ ++ /* Try to write a single byte to the temporary file, then check that ++ fwrite returns 0. Check if an error was reported. */ ++ TEST_COMPARE (fwrite ("a", 1, 1, f), 0); ++ TEST_COMPARE (ferror (f), 1); ++ clearerr (f); ++ ++ xfstat64 (fd, &st); ++ TEST_COMPARE (st.st_size, 0); ++ ++ xfclose (f); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-55471-10.patch b/SOURCES/glibc-RHEL-55471-10.patch new file mode 100644 index 0000000..112aae2 --- /dev/null +++ b/SOURCES/glibc-RHEL-55471-10.patch @@ -0,0 +1,39 @@ +commit 4734d0f8adde573aeafe79ad0c71807833db1cae +Author: Stefan Liebler +Date: Mon Feb 24 14:13:00 2025 +0100 + + Increase the amount of data tested in stdio-common/tst-fwrite-pipe.c + + The number of iterations and the length of the string are not high + enough on some systems causing the test to return false-positives. + + Testcase stdio-common/tst-fwrite-bz29459.c was fixed in the same way in + 1b6f868625403d6b7683af840e87d2b18d5d7731 + (Increase the amount of data tested in stdio-common/tst-fwrite-bz29459.c, 2025-02-14) + + Testcases stdio-common/tst-fwrite-bz29459.c and stdio-common/tst-fwrite-pipe.c + were introcued in 596a61cf6b51ce2d58b8ca4e1d1f4fdfe1440dbc + (libio: Start to return errors when flushing fwrite's buffer [BZ #29459], 2025-01-28) + +diff --git a/stdio-common/tst-fwrite-pipe.c b/stdio-common/tst-fwrite-pipe.c +index a6119125b25eeddb..ce1a92b384279600 100644 +--- a/stdio-common/tst-fwrite-pipe.c ++++ b/stdio-common/tst-fwrite-pipe.c +@@ -27,7 +27,7 @@ + /* Usually this test reproduces in a few iterations. However, keep a high + number of iterations in order to avoid return false-positives due to an + overwhelmed/slow system. */ +-#define ITERATIONS 5000 ++#define ITERATIONS 500000 + + #define BUFFERSIZE 20 + +@@ -71,7 +71,7 @@ do_test (void) + { + /* Ensure the string we send has a new line because we're dealing + with a lined-buffered stream. */ +- const char *s = "hello\n"; ++ const char *s = "hello world\n"; + size_t len = strlen (s); + int i; + diff --git a/SOURCES/glibc-RHEL-55471-2.patch b/SOURCES/glibc-RHEL-55471-2.patch new file mode 100644 index 0000000..e8483c1 --- /dev/null +++ b/SOURCES/glibc-RHEL-55471-2.patch @@ -0,0 +1,205 @@ +commit dccc9a5161264d2f98411c24ae22495ca3a09b60 +Author: Tulio Magno Quites Machado Filho +Date: Thu Aug 29 14:12:41 2024 -0300 + + Add a new fwrite test for memory streams + + Ensure that fwrite() behaves correctly when using memory streams. + + Reviewed-by: Carlos O'Donell + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 4c2b820c641e8b55..a483234085a6c612 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -217,6 +217,7 @@ tests := \ + tst-freopen64-7 \ + tst-fseek \ + tst-fwrite \ ++ tst-fwrite-memstrm \ + tst-fwrite-ro \ + tst-getline \ + tst-getline-enomem \ +diff --git a/stdio-common/tst-fwrite-memstrm.c b/stdio-common/tst-fwrite-memstrm.c +new file mode 100644 +index 0000000000000000..7ee38314302ba794 +--- /dev/null ++++ b/stdio-common/tst-fwrite-memstrm.c +@@ -0,0 +1,177 @@ ++/* Test fwrite on a memory stream. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++void ++test_ro (void) ++{ ++ FILE *f; ++ char *out; ++ ++ /* Try to allocate a small buffer for this test. */ ++ out = malloc (2); ++ TEST_VERIFY_EXIT (out != NULL); ++ ++ /* Try to open the allocated buffer as a read-only stream. */ ++ f = fmemopen (out, 2, "r"); ++ TEST_VERIFY_EXIT (f != NULL); ++ ++ /* Try to write to the temporary file with nmemb = 0, then check that ++ fwrite returns 0. No errors are expected from this. */ ++ TEST_COMPARE (fwrite ("a", 1, 0, f), 0); ++ TEST_COMPARE (ferror (f), 0); ++ ++ /* Try to write to the temporary file with size = 0, then check that ++ fwrite returns 0. No errors are expected from this. */ ++ TEST_COMPARE (fwrite ("a", 0, 1, f), 0); ++ TEST_COMPARE (ferror (f), 0); ++ ++ /* Try to write a single byte to the temporary file, then check that ++ fwrite returns 0. Check if an error was reported. */ ++ TEST_COMPARE (fwrite ("a", 1, 1, f), 0); ++ TEST_COMPARE (ferror (f), 1); ++ ++ clearerr (f); ++ xfclose (f); ++ free (out); ++} ++ ++/* Length of the output buffer in bytes. */ ++#define RWBUF_SIZE 16 * 1024 ++/* Maximum number of bytes to be written in output buffer. The rest will be ++ used to check against overflow. */ ++#define RWBUF_SIZE_WRITABLE RWBUF_SIZE-2048 ++ ++/* Use the following byte to identify areas that should have not been ++ modified. */ ++#define KNOWN_BYTE 0xaa ++ ++void ++test_one_rw (const char *in, size_t size, size_t nmemb, ++ size_t expected_ret) ++{ ++ FILE *f; ++ char *out, *expected_out; ++ /* Total number of bytes expected to be written. */ ++ size_t expected_bytes = size * nmemb; ++ ++ printf ("Testing with size = %zd, nmemb = %zd\n", size, nmemb); ++ ++ TEST_VERIFY_EXIT (expected_ret <= RWBUF_SIZE_WRITABLE); ++ TEST_VERIFY_EXIT (expected_bytes <= RWBUF_SIZE_WRITABLE); ++ ++ /* Try to allocate a buffer for this test and initialize it with ++ known contents. */ ++ out = malloc (RWBUF_SIZE); ++ TEST_VERIFY_EXIT (out != NULL); ++ memset (out, KNOWN_BYTE, RWBUF_SIZE); ++ ++ /* Try to allocate a buffer and fill it with the contents that are expected ++ to be in memory after flushing/closing the memory stream. */ ++ expected_out = malloc (RWBUF_SIZE); ++ TEST_VERIFY_EXIT (expected_out != NULL); ++ if (expected_bytes > 0) ++ { ++ memcpy (expected_out, in, expected_bytes); ++ expected_out[expected_bytes] = 0; ++ memset (expected_out + expected_bytes + 1, KNOWN_BYTE, ++ RWBUF_SIZE - expected_bytes - 1); ++ } ++ else ++ { ++ /* No changes to the output are expected. */ ++ memset (expected_out, KNOWN_BYTE, RWBUF_SIZE); ++ } ++ ++ /* Try to open the allocated buffer as a read-write stream. */ ++ f = fmemopen (out, RWBUF_SIZE, "w"); ++ TEST_VERIFY_EXIT (f != NULL); ++ ++ /* Try to write to the memory stream. Check if fwrite() returns the ++ expected value. No errors are expected. */ ++ TEST_COMPARE (fwrite (in, size, nmemb, f), expected_ret); ++ TEST_COMPARE (ferror (f), 0); ++ ++ xfclose (f); ++ ++ /* Ensure the output has the expected contents. */ ++ TEST_COMPARE (memcmp (out, expected_out, expected_bytes), 0); ++ ++ free (expected_out); ++ free (out); ++} ++ ++void ++test_rw (void) ++{ ++ char * in; ++ int i, j; ++ size_t size[] = {1, 8, 11, 16, 17, 0}; ++ size_t nmemb[] = {32, 83, 278, 709, 4097, RWBUF_SIZE / 2, ++ RWBUF_SIZE_WRITABLE, 0}; ++ size_t n; ++ ++ /* Try to write to the temporary file with nmemb = 0, then check that ++ fwrite returns 0; */ ++ test_one_rw ("a", 1, 0, 0); ++ ++ /* Try to write to the temporary file with size = 0, then check that ++ fwrite returns 0; */ ++ test_one_rw ("a", 0, 1, 0); ++ ++ /* Try to write a single byte to the temporary file, then check that ++ fwrite returns 1; */ ++ test_one_rw ("a", 1, 2, 2); ++ ++ in = malloc (RWBUF_SIZE); ++ TEST_VERIFY_EXIT (in != NULL); ++ for (i = 0; i < RWBUF_SIZE / 2; i++) ++ in[i] = i % 0xff; ++ ++ /* Test with all posibilities of size[] x nmemb[]. */ ++ for (i = 0; nmemb[i] != 0; i++) ++ { ++ for (j = 0; size[j] != 0; j++) ++ { ++ n = nmemb[i] / size[j]; ++ test_one_rw (in, size[j], n, n); ++ } ++ /* Run the test with a single item of maximum size. */ ++ test_one_rw (in, nmemb[i], 1, 1); ++ } ++ ++ free (in); ++} ++ ++static int ++do_test (void) ++{ ++ test_ro (); ++ test_rw (); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-55471-3.patch b/SOURCES/glibc-RHEL-55471-3.patch new file mode 100644 index 0000000..4c4c609 --- /dev/null +++ b/SOURCES/glibc-RHEL-55471-3.patch @@ -0,0 +1,166 @@ +commit 97aa92263a151d12286d27d327edc35475fe521c +Author: Tulio Magno Quites Machado Filho +Date: Thu Sep 26 11:30:29 2024 -0300 + + Add a new fwrite test that exercises buffer overflow + + Exercises fwrite's internal buffer when doing a file operation. + The new test, exercises 2 overflow behaviors: + + 1. Call fwrite multiple times making usage of fwrite's internal buffer. + The total number of bytes written is larger than fwrite's internal + buffer, forcing an automatic flush. + + 2. Call fwrite a single time with an amount of data that is larger than + fwrite's internal buffer. + + Reviewed-by: Carlos O'Donell + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index a483234085a6c612..71f6ea12d103564c 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -218,6 +218,7 @@ tests := \ + tst-fseek \ + tst-fwrite \ + tst-fwrite-memstrm \ ++ tst-fwrite-overflow \ + tst-fwrite-ro \ + tst-getline \ + tst-getline-enomem \ +diff --git a/stdio-common/tst-fwrite-overflow.c b/stdio-common/tst-fwrite-overflow.c +new file mode 100644 +index 0000000000000000..fe503fd5890a4812 +--- /dev/null ++++ b/stdio-common/tst-fwrite-overflow.c +@@ -0,0 +1,130 @@ ++/* Test the overflow of fwrite's internal buffer. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* stdio.h provides BUFSIZ, which is the size of fwrite's internal buffer. */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Length of the buffers in bytes. */ ++#define RWBUF_SIZE (2 * BUFSIZ) ++ ++void ++test_one_rw (const char *in, size_t size, size_t nmemb, size_t blocks) ++{ ++ int fd; ++ FILE *f; ++ char *out; ++ size_t written, to_write; ++ const size_t requested = size * nmemb; ++ ++ printf ("Testing with size = %zd, nmemb = %zd, blocks = %zd\n", ++ size, nmemb, blocks); ++ ++ TEST_VERIFY_EXIT (requested <= RWBUF_SIZE); ++ /* Ensure fwrite's internal buffer will overflow. */ ++ TEST_VERIFY_EXIT (requested > BUFSIZ); ++ ++ /* Create a temporary file and open it for reading and writing. */ ++ fd = create_temp_file ("tst-fwrite-overflow", NULL); ++ TEST_VERIFY_EXIT (fd != -1); ++ f = fdopen (fd, "w+"); ++ TEST_VERIFY_EXIT (f != NULL); ++ ++ /* Call fwrite() as many times as needed, until all data is written, ++ limiting the amount of data written per call to block items. */ ++ for (written = 0; written < nmemb; written += to_write) ++ { ++ if (written + blocks <= nmemb) ++ to_write = blocks; ++ else ++ to_write = nmemb - written; ++ /* Check if fwrite() returns the expected value. No errors are ++ expected. */ ++ TEST_COMPARE (fwrite (in + size * written, size, to_write, f), ++ to_write); ++ TEST_COMPARE (ferror (f), 0); ++ } ++ TEST_VERIFY_EXIT (written == nmemb); ++ ++ /* Ensure all the data is flushed to file. */ ++ TEST_COMPARE (fflush (f), 0); ++ ++ /* We have to check if the contents in the file are correct. Go back to ++ the beginning of the file. */ ++ rewind (f); ++ /* Try to allocate a buffer and save the contents of the generated file to ++ it. */ ++ out = xmalloc (RWBUF_SIZE); ++ TEST_COMPARE (fread (out, size, nmemb, f), nmemb); ++ ++ /* Ensure the output has the expected contents. */ ++ TEST_COMPARE (memcmp (out, in, requested), 0); ++ ++ xfclose (f); ++ free (out); ++} ++ ++static int ++do_test (void) ++{ ++ char * in; ++ int i, j; ++ size_t nmemb[] = {BUFSIZ + 1, RWBUF_SIZE, 0}; ++ /* Maximum number of items written for each fwrite call. */ ++ size_t block[] = {100, 1024, 2047, 0}; ++ /* The largest block must fit entirely in fwrite's buffer. */ ++ _Static_assert (2047 < BUFSIZ, ++ "a block must fit in fwrite's internal buffer"); ++ ++ in = xmalloc (RWBUF_SIZE); ++ for (i = 0; i < RWBUF_SIZE; i++) ++ in[i] = i % 0xff; ++ ++ for (i = 0; nmemb[i] != 0; i++) ++ for (j = 0; block[j] != 0; j++) ++ { ++ /* Run a test with an array of nmemb bytes. Write at most block ++ items per fwrite call. */ ++ test_one_rw (in, 1, nmemb[i], block[j]); ++ /* Run a test that overflows fwrite's internal buffer in a single call ++ by writting a single item of nmemb bytes. ++ This call should not use the buffer and should be written directly ++ to the file. */ ++ test_one_rw (in, nmemb[i], 1, nmemb[i]); ++ } ++ ++ for (j = 0; block[j] != 0; j++) ++ { ++ /* Run a test with size=2 and the minimum nmemb value that still ++ overflows the buffer. Write at most block items per fwrite call. */ ++ test_one_rw (in, 2, BUFSIZ / 2 + 1, block[j]); ++ /* Likewise, but size=3. */ ++ test_one_rw (in, 3, BUFSIZ / 3 + 1, block[j]); ++ } ++ ++ free (in); ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-55471-4.patch b/SOURCES/glibc-RHEL-55471-4.patch new file mode 100644 index 0000000..f988bf6 --- /dev/null +++ b/SOURCES/glibc-RHEL-55471-4.patch @@ -0,0 +1,445 @@ +commit 596a61cf6b51ce2d58b8ca4e1d1f4fdfe1440dbc +Author: Tulio Magno Quites Machado Filho +Date: Tue Jan 28 15:37:44 2025 -0300 + + libio: Start to return errors when flushing fwrite's buffer [BZ #29459] + + When an error happens, fwrite is expected to return a value that is less + than nmemb. If this error happens while flushing its internal buffer, + fwrite is in a complex scenario: all the data might have been written to + the buffer, indicating a successful copy, but the buffer is expected to + be flushed and it was not. + + POSIX.1-2024 states the following about errors on fwrite: + + If an error occurs, the resulting value of the file-position indicator + for the stream is unspecified. + + The fwrite() function shall return the number of elements successfully + written, which may be less than nitems if a write error is encountered. + + With that in mind, this commit modifies _IO_new_file_write in order to + return the total number of bytes written via the file pointer. It also + modifies fwrite in order to use the new information and return the + correct number of bytes written even when sputn returns EOF. + + Add 2 tests: + + 1. tst-fwrite-bz29459: This test is based on the reproducer attached to + bug 29459. In order to work, it requires to pipe stdout to another + process making it hard to reuse test-driver.c. This code is more + specific to the issue reported. + 2. tst-fwrite-pipe: Recreates the issue by creating a pipe that is shared + with a child process. Reuses test-driver.c. Evaluates a more generic + scenario. + + Co-authored-by: Florian Weimer + Reviewed-by: DJ Delorie + +Conflicts: + libio/bits/types/struct_FILE.h + (Downstream is missing commit 2a99e2398d9d717c034e915f7846a49e623f5450) + +diff --git a/libio/bits/types/struct_FILE.h b/libio/bits/types/struct_FILE.h +index f7f756a701ce0e93..7292334a28ad3f79 100644 +--- a/libio/bits/types/struct_FILE.h ++++ b/libio/bits/types/struct_FILE.h +@@ -102,8 +102,15 @@ struct _IO_FILE_complete + void *_freeres_buf; + size_t __pad5; + int _mode; ++#ifdef __LP64__ ++ int _unused3; ++#endif ++ __uint64_t _total_written; ++#ifndef __LP64__ ++ int _unused3; ++#endif + /* Make sure we don't get into trouble again. */ +- char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; ++ char _unused2[12 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; + }; + + /* These macros are used by bits/stdio.h and internal headers. */ +diff --git a/libio/fileops.c b/libio/fileops.c +index f43ad59c5a5bca7d..b2354d42b420b80c 100644 +--- a/libio/fileops.c ++++ b/libio/fileops.c +@@ -114,6 +114,7 @@ _IO_new_file_init_internal (struct _IO_FILE_plus *fp) + + _IO_link_in (fp); + fp->file._fileno = -1; ++ fp->file._total_written = 0; + } + + /* External version of _IO_new_file_init_internal which switches off +@@ -1185,6 +1186,7 @@ _IO_new_file_write (FILE *f, const void *data, ssize_t n) + f->_flags |= _IO_ERR_SEEN; + break; + } ++ f->_total_written += count; + to_do -= count; + data = (void *) ((char *) data + count); + } +diff --git a/libio/iofwrite.c b/libio/iofwrite.c +index 71b609c526b79071..5c648302c8fd9224 100644 +--- a/libio/iofwrite.c ++++ b/libio/iofwrite.c +@@ -36,13 +36,42 @@ _IO_fwrite (const void *buf, size_t size, size_t count, FILE *fp) + return 0; + _IO_acquire_lock (fp); + if (_IO_vtable_offset (fp) != 0 || _IO_fwide (fp, -1) == -1) +- written = _IO_sputn (fp, (const char *) buf, request); ++ { ++ /* Compute actually written bytes plus pending buffer ++ contents. */ ++ uint64_t original_total_written ++ = fp->_total_written + (fp->_IO_write_ptr - fp->_IO_write_base); ++ written = _IO_sputn (fp, (const char *) buf, request); ++ if (written == EOF) ++ { ++ /* An error happened and we need to find the appropriate return ++ value. There 3 possible scenarios: ++ 1. If the number of bytes written is between 0..[buffer content], ++ we need to return 0 because none of the bytes from this ++ request have been written; ++ 2. If the number of bytes written is between ++ [buffer content]+1..request-1, that means we managed to write ++ data requested in this fwrite call; ++ 3. We might have written all the requested data and got an error ++ anyway. We can't return success, which means we still have to ++ return less than request. */ ++ if (fp->_total_written > original_total_written) ++ { ++ written = fp->_total_written - original_total_written; ++ /* If everything was reported as written and somehow an ++ error occurred afterwards, avoid reporting success. */ ++ if (written == request) ++ --written; ++ } ++ else ++ /* Only already-pending buffer contents was written. */ ++ written = 0; ++ } ++ } + _IO_release_lock (fp); + /* We have written all of the input in case the return value indicates +- this or EOF is returned. The latter is a special case where we +- simply did not manage to flush the buffer. But the data is in the +- buffer and therefore written as far as fwrite is concerned. */ +- if (written == request || written == EOF) ++ this. */ ++ if (written == request) + return count; + else + return written / size; +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 71f6ea12d103564c..b4a1e62f4a388d0a 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -219,6 +219,7 @@ tests := \ + tst-fwrite \ + tst-fwrite-memstrm \ + tst-fwrite-overflow \ ++ tst-fwrite-pipe \ + tst-fwrite-ro \ + tst-getline \ + tst-getline-enomem \ +@@ -276,6 +277,7 @@ endif + + test-srcs = \ + $(xprintf-srcs) \ ++ tst-fwrite-bz29459 \ + tst-printf \ + tst-printfsz-islongdouble \ + tst-unbputc \ +@@ -284,6 +286,7 @@ test-srcs = \ + ifeq ($(run-built-tests),yes) + tests-special += \ + $(foreach f,$(xprintf-stems),$(objpfx)$(f).out) \ ++ $(objpfx)tst-fwrite-bz29459.out \ + $(objpfx)tst-printf.out \ + $(objpfx)tst-printfsz-islongdouble.out \ + $(objpfx)tst-setvbuf1-cmp.out \ +@@ -436,6 +439,10 @@ tst-freopen64-6-ENV = \ + MALLOC_TRACE=$(objpfx)tst-freopen64-6.mtrace \ + LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so + ++$(objpfx)tst-fwrite-bz29459.out: tst-fwrite-bz29459.sh $(objpfx)tst-fwrite-bz29459 ++ $(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \ ++ $(evaluate-test) ++ + $(objpfx)tst-unbputc.out: tst-unbputc.sh $(objpfx)tst-unbputc + $(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \ + $(evaluate-test) +diff --git a/stdio-common/tst-fwrite-bz29459.c b/stdio-common/tst-fwrite-bz29459.c +new file mode 100644 +index 0000000000000000..0640faac0c3823ef +--- /dev/null ++++ b/stdio-common/tst-fwrite-bz29459.c +@@ -0,0 +1,89 @@ ++/* Test fwrite against bug 29459. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* This test is based on the code attached to bug 29459. ++ It depends on stdout being redirected to a specific process via a script ++ with the same name. Because of this, we cannot use the features from ++ test_driver.c. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Usually this test reproduces in a few iterations. However, keep a high ++ number of iterations in order to avoid return false-positives due to an ++ overwhelmed/slow system. */ ++#define ITERATIONS 5000 ++ ++/* The goal of this test is to use fwrite () on a redirected and closed ++ stdout. A script will guarantee that stdout is redirected to another ++ process that closes it during the execution. The process reading from ++ the pipe must read at least the first line in order to guarantee that ++ flag _IO_CURRENTLY_PUTTING is set in the write end of the pipe, triggering ++ important parts of the code that flushes lines from fwrite's internal ++ buffer. The underlying write () returns EPIPE, which fwrite () must ++ propagate. */ ++ ++int ++main (void) ++{ ++ int i; ++ size_t rc; ++ /* Ensure the string we send has a new line because we're dealing ++ with a lined-buffered stream. */ ++ const char *s = "hello\n"; ++ const size_t len = strlen(s); ++ ++ /* Ensure that fwrite buffers the output before writing to stdout. */ ++ setlinebuf(stdout); ++ /* Ignore SIGPIPE in order to catch the EPIPE returned by the ++ underlying call to write(). */ ++ xsignal(SIGPIPE, SIG_IGN); ++ ++ for (i = 1; i <= ITERATIONS; i++) ++ { ++ /* Keep writing to stdout. The test succeeds if fwrite () returns an ++ error. */ ++ if ((rc = fwrite(s, 1, len, stdout)) < len) ++ { ++ /* An error happened. Check if ferror () does return an error ++ and that it is indeed EPIPE. */ ++ TEST_COMPARE (ferror (stdout), 1); ++ TEST_COMPARE (errno, EPIPE); ++ fprintf(stderr, "Success: i=%d. fwrite returned %zu < %zu " ++ "and errno=EPIPE\n", ++ i, rc, len); ++ /* The test succeeded! */ ++ return 0; ++ } ++ else ++ { ++ /* fwrite () was able to write all the contents. Check if no errors ++ have been reported and try again. */ ++ TEST_COMPARE (ferror (stdout), 0); ++ TEST_COMPARE (errno, 0); ++ } ++ } ++ ++ fprintf(stderr, "Error: fwrite did not return an error\n"); ++ return 1; ++} +diff --git a/stdio-common/tst-fwrite-bz29459.sh b/stdio-common/tst-fwrite-bz29459.sh +new file mode 100755 +index 0000000000000000..164313532b91cb56 +--- /dev/null ++++ b/stdio-common/tst-fwrite-bz29459.sh +@@ -0,0 +1,34 @@ ++#!/bin/sh ++# Test fwrite for bug 29459. ++# Copyright (C) 2025 Free Software Foundation, Inc. ++# This file is part of the GNU C Library. ++ ++# The GNU C Library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++ ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++ ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, see ++# . ++ ++set -e ++ ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++status=0 ++ ++${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-fwrite-bz29459 \ ++ 2> ${common_objpfx}stdio-common/tst-fwrite-bz29459.out \ ++ | head -n1 > /dev/null ++ ++grep -q Success ${common_objpfx}stdio-common/tst-fwrite-bz29459.out || status=1 ++ ++exit $status +diff --git a/stdio-common/tst-fwrite-pipe.c b/stdio-common/tst-fwrite-pipe.c +new file mode 100644 +index 0000000000000000..a6119125b25eeddb +--- /dev/null ++++ b/stdio-common/tst-fwrite-pipe.c +@@ -0,0 +1,130 @@ ++/* Test if fwrite returns EPIPE. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Usually this test reproduces in a few iterations. However, keep a high ++ number of iterations in order to avoid return false-positives due to an ++ overwhelmed/slow system. */ ++#define ITERATIONS 5000 ++ ++#define BUFFERSIZE 20 ++ ++/* When the underlying write () fails with EPIPE, fwrite () is expected to ++ return an error by returning < nmemb and keeping errno=EPIPE. */ ++ ++static int ++do_test (void) ++{ ++ int fd[2]; ++ pid_t p; ++ FILE *f; ++ size_t written; ++ int ret = 1; /* Return failure by default. */ ++ ++ /* Try to create a pipe. */ ++ xpipe (fd); ++ ++ p = xfork (); ++ if (p == 0) ++ { ++ char b[BUFFERSIZE]; ++ size_t bytes; ++ ++ /* Read at least the first line from the pipe before closing it. ++ This is important because it guarantees the file stream will have ++ flag _IO_CURRENTLY_PUTTING set, which triggers important parts of ++ the code that flushes lines from fwrite's internal buffer. */ ++ do { ++ bytes = read (fd[0], b, BUFFERSIZE); ++ } while(bytes > 0 && memrchr (b, '\n', bytes) == NULL); ++ ++ /* Child closes both ends of the pipe in order to trigger an EPIPE ++ error on the parent. */ ++ xclose (fd[0]); ++ xclose (fd[1]); ++ ++ return 0; ++ } ++ else ++ { ++ /* Ensure the string we send has a new line because we're dealing ++ with a lined-buffered stream. */ ++ const char *s = "hello\n"; ++ size_t len = strlen (s); ++ int i; ++ ++ /* Parent only writes to pipe. ++ Close the unused read end of the pipe. */ ++ xclose (fd[0]); ++ ++ /* Ignore SIGPIPE in order to catch the EPIPE returned by the ++ underlying call to write(). */ ++ xsignal(SIGPIPE, SIG_IGN); ++ ++ /* Create a file stream associated with the write end of the pipe. */ ++ f = fdopen (fd[1], "w"); ++ TEST_VERIFY_EXIT (f != NULL); ++ /* Ensure that fwrite buffers the output before writing to the pipe. */ ++ setlinebuf (f); ++ ++ /* Ensure errno is not set before starting. */ ++ errno = 0; ++ for (i = 1; i <= ITERATIONS; i++) ++ { ++ /* Try to write to the pipe. The first calls are expected to ++ suceeded until the child process closes the read end. ++ After that, fwrite () is expected to fail and errno should be ++ set to EPIPE. */ ++ written = fwrite (s, 1, len, f); ++ ++ if (written == len) ++ { ++ TEST_VERIFY_EXIT (ferror (f) == 0); ++ TEST_VERIFY_EXIT (errno == 0); ++ } ++ else ++ { ++ /* An error happened. Check if ferror () does return an error ++ and that it is indeed EPIPE. */ ++ TEST_COMPARE (ferror (f), 1); ++ TEST_COMPARE (errno, EPIPE); ++ /* The test succeeded! Clear the error from the file stream and ++ return success. */ ++ clearerr (f); ++ ret = 0; ++ break; ++ } ++ } ++ ++ xfclose (f); ++ } ++ ++ if (ret) ++ FAIL_RET ("fwrite should have returned an error, but it didn't.\n"); ++ ++ return ret; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-55471-5.patch b/SOURCES/glibc-RHEL-55471-5.patch new file mode 100644 index 0000000..9e1b43c --- /dev/null +++ b/SOURCES/glibc-RHEL-55471-5.patch @@ -0,0 +1,262 @@ +commit 1515f74fd81035a79861cd9fa12053fa9450ec65 +Author: Tulio Magno Quites Machado Filho +Date: Tue Jan 28 15:37:44 2025 -0300 + + libio: Add a new fwrite test that evaluates partial writes + + Test if the file-position is correctly updated when fwrite tries to + flush its internal cache but is not able to completely write all items. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index b4a1e62f4a388d0a..acf7059ba50d2ca9 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -220,6 +220,7 @@ tests := \ + tst-fwrite-memstrm \ + tst-fwrite-overflow \ + tst-fwrite-pipe \ ++ tst-fwrite-pos \ + tst-fwrite-ro \ + tst-getline \ + tst-getline-enomem \ +diff --git a/stdio-common/tst-fwrite-pos.c b/stdio-common/tst-fwrite-pos.c +new file mode 100644 +index 0000000000000000..3923490d5923b4b4 +--- /dev/null ++++ b/stdio-common/tst-fwrite-pos.c +@@ -0,0 +1,233 @@ ++/* Test if fwrite returns consistent values on partial writes. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++/* stdio.h provides BUFSIZ, which is the size of fwrite's internal buffer. */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Length of the buffer in bytes. */ ++#define INBUF_SIZE (BUFSIZ) ++ ++/* Amount of bytes written to fwrite's internal cache that trigger a ++ flush. */ ++#define CACHE_THRESHOLD (BUFSIZ / 2) ++ ++#define ITERATIONS 1000 ++ ++/* Maximum number of bytes written during a partial write. */ ++#define PARTIAL_BYTES 4 ++ ++#define EXPECT_EVENT(opcode, state, expected_state) \ ++ { \ ++ if (state != expected_state) \ ++ { \ ++ char *s = support_fuse_opcode (opcode); \ ++ FAIL ("unexpected event %s at state %d", s, state); \ ++ free (s); \ ++ } \ ++ } ++ ++/* The goal of this test is to check that file position of a file stream is ++ correctly updated when write () returns a partial write. ++ The file system simulates pseudorandom partial writes while the test is ++ running. ++ Meanwhile the main thread calls fwrite () with a large object first and ++ small objects later. The usage of a large enough object ensures that ++ fwrite's internal cache is full enough, without triggering a write to file. ++ Subsequent calls to fwrite are guaranteed to trigger a write to file. */ ++ ++static void ++fuse_thread (struct support_fuse *f, void *closure) ++{ ++ struct fuse_in_header *inh; ++ int state = 0; ++ while ((inh = support_fuse_next (f)) != NULL) ++ { ++ { ++ char *opcode = support_fuse_opcode (inh->opcode); ++ printf ("info: (T) event %s(%llu) len=%u nodeid=%llu\n", ++ opcode, (unsigned long long int) inh->unique, inh->len, ++ (unsigned long long int) inh->nodeid); ++ free (opcode); ++ } ++ ++ /* Handle mountpoint and basic directory operation for the root (1). */ ++ if (support_fuse_handle_mountpoint (f) ++ || (inh->nodeid == 1 && support_fuse_handle_directory (f))) ++ continue; ++ ++ switch (inh->opcode) ++ { ++ case FUSE_LOOKUP: ++ EXPECT_EVENT (inh->nodeid, state, 0); ++ state++; ++ support_fuse_reply_error (f, ENOENT); ++ break; ++ case FUSE_CREATE: ++ EXPECT_EVENT (inh->nodeid, state, 1); ++ state++; ++ struct fuse_entry_out *entry; ++ struct fuse_open_out *open; ++ support_fuse_prepare_create (f, 2, &entry, &open); ++ entry->attr.mode = S_IFREG | 0600; ++ support_fuse_reply_prepared (f); ++ break; ++ case FUSE_GETXATTR: ++ /* We don't need to support extended attributes in this test. */ ++ support_fuse_reply_error (f, ENOSYS); ++ break; ++ case FUSE_GETATTR: ++ /* Happens after open. */ ++ if (inh->nodeid == 2) ++ { ++ struct fuse_attr_out *out = support_fuse_prepare_attr (f); ++ out->attr.mode = S_IFREG | 0600; ++ out->attr.size = 0; ++ support_fuse_reply_prepared (f); ++ } ++ else ++ support_fuse_reply_error (f, ENOENT); ++ break; ++ case FUSE_WRITE: ++ if (inh->nodeid == 2) ++ { ++ struct fuse_write_out out; ++ if (state > 1 && state < ITERATIONS + 2) ++ { ++ /* The 2nd and subsequent calls to fwrite () trigger a ++ flush of fwrite's internal cache. Simulate a partial ++ write of up to PARTIAL_BYTES bytes. */ ++ out.padding = 0; ++ out.size = 1 + rand () % PARTIAL_BYTES, ++ state++; ++ support_fuse_reply (f, &out, sizeof (out)); ++ } ++ else if (state >= ITERATIONS + 2) ++ { ++ /* This request is expected to come from fflush (). Copy ++ all the data successfully. This may be executed more ++ than once. */ ++ struct fuse_write_in *p = support_fuse_cast (WRITE, inh); ++ out.padding = 0; ++ out.size = p->size, ++ state++; ++ support_fuse_reply (f, &out, sizeof (out)); ++ } ++ else ++ support_fuse_reply_error (f, EIO); ++ } ++ else ++ support_fuse_reply_error (f, EIO); ++ break; ++ case FUSE_FLUSH: ++ case FUSE_RELEASE: ++ TEST_COMPARE (inh->nodeid, 2); ++ support_fuse_reply_empty (f); ++ break; ++ default: ++ FAIL ("unexpected event %s", support_fuse_opcode (inh->opcode)); ++ support_fuse_reply_error (f, EIO); ++ } ++ } ++} ++ ++static int ++do_test (void) ++{ ++ char *in; ++ int i; ++ size_t written; ++ ++ _Static_assert (CACHE_THRESHOLD <= INBUF_SIZE, ++ "the input buffer must be larger than the cache threshold"); ++ /* Avoid filling up fwrite's cache. */ ++ _Static_assert (CACHE_THRESHOLD - 1 + PARTIAL_BYTES * ITERATIONS <= BUFSIZ, ++ "fwrite's cache must fit all data written"); ++ ++ support_fuse_init (); ++ struct support_fuse *fs = support_fuse_mount (fuse_thread, NULL); ++ ++ /* Create and open a temporary file in the fuse mount point. */ ++ char *fname = xasprintf ("%s/%sXXXXXX", support_fuse_mountpoint (fs), ++ "tst-fwrite-fuse"); ++ int fd = mkstemp (fname); ++ TEST_VERIFY_EXIT (fd != -1); ++ FILE *f = fdopen (fd, "w"); ++ TEST_VERIFY_EXIT (f != NULL); ++ ++ /* Allocate an input array that will be written to the temporary file. */ ++ in = xmalloc (INBUF_SIZE); ++ for (i = 0; i < INBUF_SIZE; i++) ++ in[i] = i % 0xff; ++ ++ /* Ensure the file position indicator is at the beginning of the stream. */ ++ TEST_COMPARE (ftell (f), 0); ++ ++ /* Try to fill as most data to the cache of the file stream as possible ++ with a single large object. ++ All data is expected to be written to the cache. ++ No errors are expected from this. */ ++ TEST_COMPARE (fwrite (in, CACHE_THRESHOLD - 1, 1, f), 1); ++ TEST_COMPARE (ferror (f), 0); ++ written = CACHE_THRESHOLD - 1; ++ ++ /* Ensure the file position indicator advanced correctly. */ ++ TEST_COMPARE (ftell (f), written); ++ ++ for (i = 0; i < ITERATIONS; i++) ++ { ++ /* Write an extra object of size PARTIAL_BYTES that triggers a write to ++ disk. Our FS will write at most PARTIAL_BYTES bytes to the file ++ instead of all the data. By writting PARTIAL_BYTES, we guarantee ++ the amount of data in the cache will never decrease below ++ CACHE_THRESHOLD. ++ No errors are expected. */ ++ TEST_COMPARE (fwrite (in, PARTIAL_BYTES, 1, f), 1); ++ TEST_COMPARE (ferror (f), 0); ++ written += PARTIAL_BYTES; ++ ++ /* Ensure the file position indicator advanced correctly. */ ++ TEST_COMPARE (ftell (f), written); ++ } ++ ++ /* Flush the rest of the data. */ ++ TEST_COMPARE (fflush (f), 0); ++ TEST_COMPARE (ferror (f), 0); ++ ++ /* Ensure the file position indicator was not modified. */ ++ TEST_COMPARE (ftell (f), written); ++ ++ /* In case an unexpected error happened, clear it before exiting. */ ++ if (ferror (f)) ++ clearerr (f); ++ ++ xfclose (f); ++ free (fname); ++ free (in); ++ support_fuse_unmount (fs); ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-55471-6.patch b/SOURCES/glibc-RHEL-55471-6.patch new file mode 100644 index 0000000..f118179 --- /dev/null +++ b/SOURCES/glibc-RHEL-55471-6.patch @@ -0,0 +1,39 @@ +commit cdb0800022110bc68a033944f09e501be5bd72d7 +Author: Tulio Magno Quites Machado Filho +Date: Thu Jan 30 15:51:01 2025 -0300 + + libio: Replace __LP64__ with __WORDSIZE + + __LP64__ is a GCC extension and shouldn't be used in an installed + header. + + Fixes: 596a61cf6b (libio: Start to return errors when flushing fwrite's buffer [BZ #29459], 2025-01-28) + Reported-by: Florian Weimer + Reviewed-by: Arjun Shankar + +diff --git a/libio/bits/types/struct_FILE.h b/libio/bits/types/struct_FILE.h +index 7292334a28ad3f79..59f316f8a03d9498 100644 +--- a/libio/bits/types/struct_FILE.h ++++ b/libio/bits/types/struct_FILE.h +@@ -32,6 +32,7 @@ + #endif + + #include ++#include + + struct _IO_FILE; + struct _IO_marker; +@@ -102,11 +103,11 @@ struct _IO_FILE_complete + void *_freeres_buf; + size_t __pad5; + int _mode; +-#ifdef __LP64__ ++#if __WORDSIZE == 64 + int _unused3; + #endif + __uint64_t _total_written; +-#ifndef __LP64__ ++#if __WORDSIZE == 32 + int _unused3; + #endif + /* Make sure we don't get into trouble again. */ diff --git a/SOURCES/glibc-RHEL-55471-7.patch b/SOURCES/glibc-RHEL-55471-7.patch new file mode 100644 index 0000000..987ba1f --- /dev/null +++ b/SOURCES/glibc-RHEL-55471-7.patch @@ -0,0 +1,37 @@ +commit 88f7ef881d1b9507aa934104c338b958c37821d7 +Author: Tulio Magno Quites Machado Filho +Date: Fri Jan 31 10:26:22 2025 -0300 + + libio: Initialize _total_written for all kinds of streams + + Move the initialization code to a general place instead of keeping it + specific to file-backed streams. + + Fixes: 596a61cf6b (libio: Start to return errors when flushing fwrite's buffer [BZ #29459], 2025-01-28) + Reported-by: Florian Weimer + Reviewed-by: Arjun Shankar + +diff --git a/libio/fileops.c b/libio/fileops.c +index b2354d42b420b80c..d40748e0fc548fff 100644 +--- a/libio/fileops.c ++++ b/libio/fileops.c +@@ -114,7 +114,6 @@ _IO_new_file_init_internal (struct _IO_FILE_plus *fp) + + _IO_link_in (fp); + fp->file._fileno = -1; +- fp->file._total_written = 0; + } + + /* External version of _IO_new_file_init_internal which switches off +diff --git a/libio/genops.c b/libio/genops.c +index a82c1b96767e14e0..cf6985938255e70d 100644 +--- a/libio/genops.c ++++ b/libio/genops.c +@@ -586,6 +586,7 @@ _IO_no_init (FILE *fp, int flags, int orientation, + stream. */ + fp->_wide_data = (struct _IO_wide_data *) -1L; + fp->_freeres_list = NULL; ++ fp->_total_written = 0; + } + + int diff --git a/SOURCES/glibc-RHEL-55471-8.patch b/SOURCES/glibc-RHEL-55471-8.patch new file mode 100644 index 0000000..5224677 --- /dev/null +++ b/SOURCES/glibc-RHEL-55471-8.patch @@ -0,0 +1,34 @@ +commit 1b6f868625403d6b7683af840e87d2b18d5d7731 +Author: Tulio Magno Quites Machado Filho +Date: Wed Feb 5 17:20:34 2025 -0300 + + Increase the amount of data tested in stdio-common/tst-fwrite-bz29459.c + + The number of iterations and the length of the string are not high + enough on some systems causing the test to return false-positives. + + Fixes: 596a61cf6b (libio: Start to return errors when flushing fwrite's buffer [BZ #29459], 2025-01-28) + Reported-by: Florian Weimer + +diff --git a/stdio-common/tst-fwrite-bz29459.c b/stdio-common/tst-fwrite-bz29459.c +index 0640faac0c3823ef..4fcc4c89e21d754d 100644 +--- a/stdio-common/tst-fwrite-bz29459.c ++++ b/stdio-common/tst-fwrite-bz29459.c +@@ -32,7 +32,7 @@ + /* Usually this test reproduces in a few iterations. However, keep a high + number of iterations in order to avoid return false-positives due to an + overwhelmed/slow system. */ +-#define ITERATIONS 5000 ++#define ITERATIONS 500000 + + /* The goal of this test is to use fwrite () on a redirected and closed + stdout. A script will guarantee that stdout is redirected to another +@@ -50,7 +50,7 @@ main (void) + size_t rc; + /* Ensure the string we send has a new line because we're dealing + with a lined-buffered stream. */ +- const char *s = "hello\n"; ++ const char *s = "hello world\n"; + const size_t len = strlen(s); + + /* Ensure that fwrite buffers the output before writing to stdout. */ diff --git a/SOURCES/glibc-RHEL-55471-9.patch b/SOURCES/glibc-RHEL-55471-9.patch new file mode 100644 index 0000000..46eaf5e --- /dev/null +++ b/SOURCES/glibc-RHEL-55471-9.patch @@ -0,0 +1,35 @@ +Downstream-only patch to restore the extern ABI for functions +like fprintf that use the FILE * type. Rebuilds of applications +receive ABI change reports because of this installed header change +(indirect subtype change in libabigail terms), and given that +this part of struct _IO_FILE is strictly internal, there is no +need to expose this change to installed headers. + +diff --git a/libio/bits/types/struct_FILE.h b/libio/bits/types/struct_FILE.h +index 59f316f8a03d9498..ab64e4e43d663333 100644 +--- a/libio/bits/types/struct_FILE.h ++++ b/libio/bits/types/struct_FILE.h +@@ -103,15 +103,19 @@ struct _IO_FILE_complete + void *_freeres_buf; + size_t __pad5; + int _mode; +-#if __WORDSIZE == 64 ++#ifdef _LIBC ++# if __WORDSIZE == 64 + int _unused3; +-#endif ++# endif + __uint64_t _total_written; +-#if __WORDSIZE == 32 ++# if __WORDSIZE == 32 + int _unused3; +-#endif ++# endif + /* Make sure we don't get into trouble again. */ + char _unused2[12 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; ++#else ++ char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; ++#endif + }; + + /* These macros are used by bits/stdio.h and internal headers. */ diff --git a/SOURCES/glibc-RHEL-56546.patch b/SOURCES/glibc-RHEL-56546.patch new file mode 100644 index 0000000..f94124f --- /dev/null +++ b/SOURCES/glibc-RHEL-56546.patch @@ -0,0 +1,144 @@ +commit 6c9bb270d6a624f82a38443545e3d99f5b1e07e1 +Author: Florian Weimer +Date: Fri May 16 16:47:02 2025 +0200 + + manual: Clarifications for listing directories + + Support for seeking is limited. Using the d_off and d_reclen members + of struct dirent is discouraged, especially with readdir. Concurrent + modification of directories during iteration may result in duplicate + or missing etnries. + +diff --git a/manual/filesys.texi b/manual/filesys.texi +index aabb68385b6b9732..450d175e614d8834 100644 +--- a/manual/filesys.texi ++++ b/manual/filesys.texi +@@ -409,18 +409,41 @@ entries. It contains the following fields: + This is the null-terminated file name component. This is the only + field you can count on in all POSIX systems. + ++While this field is defined with a specified length, functions such as ++@code{readdir} may return a pointer to a @code{struct dirent} where the ++@code{d_name} extends beyond the end of the struct. ++ + @item ino_t d_fileno + This is the file serial number. For BSD compatibility, you can also + refer to this member as @code{d_ino}. On @gnulinuxhurdsystems{} and most POSIX + systems, for most files this the same as the @code{st_ino} member that + @code{stat} will return for the file. @xref{File Attributes}. + ++@item off_t d_off ++This value contains the offset of the next directory entry (after this ++entry) in the directory stream. The value may not be compatible with ++@code{lseek} or @code{seekdir}, especially if the width of @code{d_off} ++is less than 64 bits. Directory entries are not ordered by offset, and ++the @code{d_off} and @code{d_reclen} values are unrelated. Seeking on ++directory streams is not recommended. The symbol ++@code{_DIRENT_HAVE_D_OFF} is defined if the @code{d_ino} member is ++available. ++ + @item unsigned char d_namlen + This is the length of the file name, not including the terminating + null character. Its type is @code{unsigned char} because that is the + integer type of the appropriate size. This member is a BSD extension. + The symbol @code{_DIRENT_HAVE_D_NAMLEN} is defined if this member is +-available. ++available. (It is not available on Linux.) ++ ++@item unsigned short int d_reclen ++This is the length of the entire directory record. When iterating ++through a buffer filled by @code{getdents64} (@pxref{Low-level Directory ++Access}), this value needs to be added to the offset of the current ++directory entry to obtain the offset of the next entry. When using ++@code{readdir} and related functions, the value of @code{d_reclen} is ++undefined and should not be accessed. The symbol ++@code{_DIRENT_HAVE_D_RECLEN} is defined if this member is available. + + @item unsigned char d_type + This is the type of the file, possibly unknown. The following constants +@@ -457,7 +480,7 @@ This member is a BSD extension. The symbol @code{_DIRENT_HAVE_D_TYPE} + is defined if this member is available. On systems where it is used, it + corresponds to the file type bits in the @code{st_mode} member of + @code{struct stat}. If the value cannot be determined the member +-value is DT_UNKNOWN. These two macros convert between @code{d_type} ++value is @code{DT_UNKNOWN}. These two macros convert between @code{d_type} + values and @code{st_mode} values: + + @deftypefun int IFTODT (mode_t @var{mode}) +@@ -632,6 +655,20 @@ and can be rewritten by a subsequent call. + return entries for @file{.} and @file{..}, even though these are always + valid file names in any directory. @xref{File Name Resolution}. + ++If a directory is modified between a call to @code{readdir} and after ++the directory stream was created or @code{rewinddir} was last called on ++it, it is unspecified according to POSIX whether newly created or ++removed entries appear among the entries returned by repeated ++@code{readdir} calls before the end of the directory is reached. ++However, due to practical implementation constraints, it is possible ++that entries (including unrelated, unmodified entries) appear multiple ++times or do not appear at all if the directory is modified while listing ++it. If the application intends to create files in the directory, it may ++be necessary to complete the iteration first and create a copy of the ++information obtained before creating any new files. (See below for ++instructions regarding copying of @code{d_name}.) The iteration can be ++restarted using @code{rewinddir}. @xref{Random Access Directory}. ++ + If there are no more entries in the directory or an error is detected, + @code{readdir} returns a null pointer. The following @code{errno} error + conditions are defined for this function: +@@ -812,6 +849,10 @@ directory since it was opened with @code{opendir}. (Entries for these + files might or might not be returned by @code{readdir} if they were + added or removed since you last called @code{opendir} or + @code{rewinddir}.) ++ ++For example, it is recommended to call @code{rewinddir} followed by ++@code{readdir} to check if a directory is empty after listing it with ++@code{readdir} and deleting all encountered files from it. + @end deftypefun + + @deftypefun {long int} telldir (DIR *@var{dirstream}) +@@ -823,6 +864,13 @@ added or removed since you last called @code{opendir} or + The @code{telldir} function returns the file position of the directory + stream @var{dirstream}. You can use this value with @code{seekdir} to + restore the directory stream to that position. ++ ++Using the the @code{telldir} function is not recommended. ++ ++The value returned by @code{telldir} may not be compatible with the ++@code{d_off} field in @code{struct dirent}, and cannot be used with the ++@code{lseek} function. The returned value may not unambiguously ++identify the position in the directory stream. + @end deftypefun + + @deftypefun void seekdir (DIR *@var{dirstream}, long int @var{pos}) +@@ -836,6 +884,9 @@ stream @var{dirstream} to @var{pos}. The value @var{pos} must be the + result of a previous call to @code{telldir} on this particular stream; + closing and reopening the directory can invalidate values returned by + @code{telldir}. ++ ++Using the the @code{seekdir} function is not recommended. To seek to ++the beginning of the directory stream, use @code{rewinddir}. + @end deftypefun + + +@@ -1007,9 +1058,20 @@ Note that some file systems support file names longer than + @code{NAME_MAX} bytes (e.g., because they support up to 255 Unicode + characters), so a buffer size of at least 1024 is recommended. + ++If the directory has been modified since the first call to ++@code{getdents64} on the directory (opening the descriptor or seeking to ++offset zero), it is possible that the buffer contains entries that have ++been encountered before. Likewise, it is possible that files that are ++still present are not reported before the end of the directory is ++encountered (and @code{getdents64} returns zero). ++ + This function is specific to Linux. + @end deftypefun + ++Systems that support @code{getdents64} support seeking on directory ++streams. @xref{File Position Primitive}. However, the only offset that ++works reliably is offset zero, indicating that reading the directory ++should start from the beginning. + + @node Working with Directory Trees + @section Working with Directory Trees diff --git a/SOURCES/glibc-RHEL-56627-1.patch b/SOURCES/glibc-RHEL-56627-1.patch new file mode 100644 index 0000000..a82a047 --- /dev/null +++ b/SOURCES/glibc-RHEL-56627-1.patch @@ -0,0 +1,451 @@ +Partial backport (without ABI changes, using libc_nonshared.a instead) +of: + +commit 21571ca0d70302909cf72707b2a7736cf12190a0 +Author: Florian Weimer +Date: Wed Sep 11 10:05:08 2024 +0200 + + Linux: Add the sched_setattr and sched_getattr functions + + And struct sched_attr. + + In sysdeps/unix/sysv/linux/bits/sched.h, the hack that defines + sched_param around the inclusion of is quite + ugly, but the definition of struct sched_param has already been + dropped by the kernel, so there is nothing else we can do and maintain + compatibility of with a wide range of kernel header + versions. (An alternative would involve introducing a separate header + for this functionality, but this seems unnecessary.) + + The existing sched_* functions that change scheduler parameters + are already incompatible with PTHREAD_PRIO_PROTECT mutexes, so + there is no harm in adding more functionality in this area. + + The documentation mostly defers to the Linux manual pages. + + Reviewed-by: Carlos O'Donell + +Conflicts: + sysdeps/unix/sysv/linux/Makefile + (variables not sorted downstream, libc_nonshared.a + integration downstream) + sysdeps/unix/sysv/linux/Versions + (not backported) + sysdeps/unix/sysv/linux/*/libc.abilist + (not backported) + +The implementation uses the syscall function, not , +to avoid implicit TCB layout dependencies. Such dependencies +could happen if the system call macros use information in the +TCB to select the way the kernel is entered. + + +diff --git a/manual/resource.texi b/manual/resource.texi +index 37462abc9e467690..bddff67d3d1e414e 100644 +--- a/manual/resource.texi ++++ b/manual/resource.texi +@@ -478,6 +478,7 @@ POSIX syntax had in mind. + * Absolute Priority:: The first tier of priority. Posix + * Realtime Scheduling:: Scheduling among the process nobility + * Basic Scheduling Functions:: Get/set scheduling policy, priority ++* Extensible Scheduling:: Parameterized scheduling policies. + * Traditional Scheduling:: Scheduling among the vulgar masses + * CPU Affinity:: Limiting execution to certain CPUs + @end menu +@@ -952,6 +953,120 @@ function, so there are no specific @code{errno} values. + + @end deftypefun + ++@node Extensible Scheduling ++@subsection Extensible Scheduling ++@cindex scheduling, extensible ++ ++The type @code{struct sched_attr} and the functions @code{sched_setattr} ++and @code{sched_getattr} are used to implement scheduling policies with ++multiple parameters (not just priority and niceness). ++ ++It is expected that these interfaces will be compatible with all future ++scheduling policies. ++ ++For additional information about scheduling policies, consult consult ++the manual pages @manpageurl{sched,7} and @manpageurl{sched_setattr,2}. ++@xref{Linux Kernel}. ++ ++@strong{Note:} Calling the @code{sched_setattr} function is incompatible ++with support for @code{PTHREAD_PRIO_PROTECT} mutexes. ++ ++@deftp {Data Type} {struct sched_attr} ++@standards{Linux, sched.h} ++The @code{sched_attr} structure describes a parameterized scheduling policy. ++ ++@strong{Portability note:} In the future, additional fields can be added ++to @code{struct sched_attr} at the end, so that the size of this data ++type changes. Do not use it in places where this matters, such as ++structure fields in installed header files, where such a change could ++impact the application binary interface (ABI). ++ ++The following generic fields are available. ++ ++@table @code ++@item size ++The actually used size of the data structure. See the description of ++the functions @code{sched_setattr} and @code{sched_getattr} below how this ++field is used to support extension of @code{struct sched_attr} with ++more fields. ++ ++@item sched_policy ++The scheduling policy. This field determines which fields in the ++structure are used, and how the @code{sched_flags} field is interpreted. ++ ++@item sched_flags ++Scheduling flags associated with the scheduling policy. ++@end table ++ ++In addition to the generic fields, policy-specific fields are available. ++For additional information, consult the manual page ++@manpageurl{sched_setattr,2}. @xref{Linux Kernel}. ++@end deftp ++ ++@deftypefun int sched_setaddr (pid_t @var{tid}, struct sched_attr *@var{attr}, unsigned int flags) ++@standards{Linux, sched.h} ++@safety{@mtsafe{}@assafe{}@acsafe{}} ++This functions applies the scheduling policy described by ++@code{*@var{attr}} to the thread @var{tid} (the value zero denotes the ++current thread). ++ ++It is recommended to initialize unused fields to zero, either using ++@code{memset}, or using a structure initializer. The ++@code{@var{attr->size}} field should be set to @code{sizeof (struct ++sched_attr)}, to inform the kernel of the structure version in use. ++ ++The @var{flags} argument must be zero. Other values may become ++available in the future. ++ ++On failure, @code{sched_setattr} returns @math{-1} and sets ++@code{errno}. The following errors are related the way ++extensibility is handled. ++@table @code ++@item E2BIG ++A field in @code{*@var{attr}} has a non-zero value, but is unknown to ++the kernel. The application could try to apply a modified policy, where ++more fields are zero. ++ ++@item EINVAL ++The policy in @code{@var{attr}->sched_policy} is unknown to the kernel, ++or flags are set in @code{@var{attr}->sched_flags} that the kernel does ++not know how to interpret. The application could try with fewer flags ++set, or a different scheduling policy. ++ ++This error also occurs if @var{attr} is @code{NULL} or @var{flags} is ++not zero. ++ ++@item EPERM ++The current thread is not sufficiently privileged to assign the policy, ++either because access to the policy is restricted in general, or because ++the current thread does not have the rights to change the scheduling ++policy of the thread @var{tid}. ++@end table ++ ++Other error codes depend on the scheduling policy. ++@end deftypefun ++ ++@deftypefun int sched_getaddr (pid_t @var{tid}, struct sched_attr *@var{attr}, unsigned int size, unsigned int flags) ++@standards{Linux, sched.h} ++@safety{@mtsafe{}@assafe{}@acsafe{}} ++This function obtains the scheduling policy of the thread @var{tid} ++(zero denotes the current thread) and store it in @code{*@var{attr}}, ++which must have space for at least @var{size} bytes. ++ ++The @var{flags} argument must be zero. Other values may become ++available in the future. ++ ++Upon success, @code{@var{attr}->size} contains the size of the structure ++version used by the kernel. Fields with offsets greater or equal to ++@code{@var{attr}->size} are not updated by the kernel. To obtain ++predictable values for unknown fields, use @code{memset} to set ++all @var{size} bytes to zero prior to calling @code{sched_getattr}. ++ ++On failure, @code{sched_getattr} returns @math{-1} and sets @code{errno}. ++If @code{errno} is @code{E2BIG}, this means that the buffer is not large ++large enough, and the application could retry with a larger buffer. ++@end deftypefun ++ + @node Traditional Scheduling + @subsection Traditional Scheduling + @cindex scheduling, traditional +diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile +index 08b4e7765c07f6a3..d6381fe846c905d6 100644 +--- a/sysdeps/unix/sysv/linux/Makefile ++++ b/sysdeps/unix/sysv/linux/Makefile +@@ -66,7 +66,16 @@ sysdep_routines += adjtimex clone umount umount2 readahead sysctl \ + fxstatat fxstatat64 \ + xmknod xmknodat convert_scm_timestamps \ + closefrom_fallback \ +- clone3 clone-internal ++ clone3 clone-internal \ ++ sched_getattr \ ++ sched_setattr \ ++ # sysdep_routines ++ ++# The implementations go into libc_nonshared.a, to preserve ABI. ++static-only-routines += \ ++ sched_getattr \ ++ sched_setattr \ ++ # static-only-routines + + CFLAGS-gethostid.c = -fexceptions + CFLAGS-tee.c = -fexceptions -fasynchronous-unwind-tables +@@ -128,6 +137,7 @@ tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \ + tst-fdopendir-o_path \ + tst-linux-mremap1 \ + tst-sched-affinity-inheritance \ ++ tst-sched_setattr \ + # tests + + # Test for the symbol version of fcntl that was replaced in glibc 2.28. +diff --git a/sysdeps/unix/sysv/linux/bits/sched.h b/sysdeps/unix/sysv/linux/bits/sched.h +index cd450fdfe510f397..5e0f70a69181bc26 100644 +--- a/sysdeps/unix/sysv/linux/bits/sched.h ++++ b/sysdeps/unix/sysv/linux/bits/sched.h +@@ -34,10 +34,39 @@ + # define SCHED_IDLE 5 + # define SCHED_DEADLINE 6 + ++/* Flags that can be used in policy values. */ + # define SCHED_RESET_ON_FORK 0x40000000 +-#endif + +-#ifdef __USE_GNU ++/* Use "" to work around incorrect macro expansion of the ++ __has_include argument (GCC PR 80005). */ ++# ifdef __has_include ++# if __has_include ("linux/sched/types.h") ++/* Some older Linux versions defined sched_param in . */ ++# define sched_param __glibc_mask_sched_param ++# include ++# undef sched_param ++# endif ++# endif ++# ifndef SCHED_ATTR_SIZE_VER0 ++# include ++# define SCHED_ATTR_SIZE_VER0 48 ++# define SCHED_ATTR_SIZE_VER1 56 ++struct sched_attr ++{ ++ __u32 size; ++ __u32 sched_policy; ++ __u64 sched_flags; ++ __s32 sched_nice; ++ __u32 sched_priority; ++ __u64 sched_runtime; ++ __u64 sched_deadline; ++ __u64 sched_period; ++ __u32 sched_util_min; ++ __u32 sched_util_max; ++ /* Additional fields may be added at the end. */ ++}; ++# endif /* !SCHED_ATTR_SIZE_VER0 */ ++ + /* Cloning flags. */ + # define CSIGNAL 0x000000ff /* Signal mask to be sent at exit. */ + # define CLONE_VM 0x00000100 /* Set if VM shared between processes. */ +@@ -93,6 +122,17 @@ extern int getcpu (unsigned int *, unsigned int *) __THROW; + + /* Switch process to namespace of type NSTYPE indicated by FD. */ + extern int setns (int __fd, int __nstype) __THROW; ++ ++/* Apply the scheduling attributes from *ATTR to the process or thread TID. */ ++int sched_setattr (pid_t tid, struct sched_attr *attr, unsigned int flags) ++ __THROW __nonnull ((2)); ++ ++/* Obtain the scheduling attributes of the process or thread TID and ++ store it in *ATTR. */ ++int sched_getattr (pid_t tid, struct sched_attr *attr, unsigned int size, ++ unsigned int flags) ++ __THROW __nonnull ((2)) __attr_access ((__write_only__, 2, 3)); ++ + #endif + + __END_DECLS +diff --git a/sysdeps/unix/sysv/linux/sched_getattr.c b/sysdeps/unix/sysv/linux/sched_getattr.c +new file mode 100644 +index 0000000000000000..64f0b70514f2b143 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/sched_getattr.c +@@ -0,0 +1,30 @@ ++/* Reading scheduling policy and attributes. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++int ++attribute_hidden ++sched_getattr (pid_t pid, struct sched_attr *attr, unsigned int size, ++ unsigned int flags) ++{ ++ /* Use the syscall function for compatibility with libc_nonshared.a. */ ++ return syscall (__NR_sched_getattr, pid, attr, size, flags); ++} +diff --git a/sysdeps/unix/sysv/linux/sched_setattr.c b/sysdeps/unix/sysv/linux/sched_setattr.c +new file mode 100644 +index 0000000000000000..2a24a734e8d5125b +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/sched_setattr.c +@@ -0,0 +1,29 @@ ++/* Setting scheduling policy and attributes. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++int ++attribute_hidden ++sched_setattr (pid_t pid, struct sched_attr *attr, unsigned int flags) ++{ ++ /* Use the syscall function for compatibility with libc_nonshared.a. */ ++ return syscall (__NR_sched_setattr, pid, attr, flags); ++} +diff --git a/sysdeps/unix/sysv/linux/tst-sched_setattr.c b/sysdeps/unix/sysv/linux/tst-sched_setattr.c +new file mode 100644 +index 0000000000000000..a6288a1a7cc2d01b +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/tst-sched_setattr.c +@@ -0,0 +1,105 @@ ++/* Tests for sched_setattr and sched_getattr. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Padding struct to detect unexpected writes. */ ++union ++{ ++ struct sched_attr attr; ++ /* Hopefully the kernel will never need as much. */ ++ unsigned char padding[4096]; ++} u; ++ ++static void ++check_unused (void) ++{ ++ TEST_VERIFY (u.attr.size < sizeof (u)); ++ for (unsigned int i = u.attr.size; i < sizeof (u); ++i) ++ TEST_COMPARE (u.padding[i], 0xcc); ++} ++ ++static int ++do_test (void) ++{ ++ TEST_VERIFY (sizeof (struct sched_attr) < sizeof (u)); ++ ++ /* Check that reading and re-applying the current policy works. */ ++ memset (&u, 0xcc, sizeof (u)); ++ /* Compiler barrier to bypass write access attribute. */ ++ volatile unsigned int size = sizeof (u); ++ TEST_COMPARE (sched_getattr (0, (struct sched_attr *) &u, size, 0), 0); ++ check_unused (); ++ TEST_COMPARE (sched_setattr (0, &u.attr, 0), 0); /* Apply unchanged. */ ++ ++ /* Try to switch to the SCHED_OTHER policy. */ ++ memset (&u, 0, sizeof (u)); ++ u.attr.size = sizeof (u); /* With padding, kernel should accept zeroes. */ ++ u.attr.sched_policy = SCHED_OTHER; /* Should be the default. */ ++ { ++ errno = 0; ++ int prio = getpriority (PRIO_PROCESS, 0); ++ if (errno != 0) ++ prio = 0; ++ u.attr.sched_nice = prio; ++ } ++ TEST_COMPARE (sched_setattr (0, &u.attr, 0), 0); ++ ++ /* Non-zero values not known to the kernel result in an E2BIG error. */ ++ memset (&u, 0, sizeof (u)); ++ TEST_COMPARE (sched_getattr (0, (struct sched_attr *) &u, size, 0), 0); ++ u.padding[u.attr.size] = 0xcc; ++ u.attr.size = sizeof (u); ++ errno = 0; ++ TEST_COMPARE (sched_setattr (0, &u.attr, 0), -1); ++ TEST_COMPARE (errno, E2BIG); ++ ++ memset (&u, 0xcc, sizeof (u)); ++ TEST_COMPARE (sched_getattr (0, (struct sched_attr *) &u, size, 0), 0); ++ TEST_COMPARE (u.attr.sched_policy, SCHED_OTHER); ++ check_unused (); ++ ++ /* Raise the niceless level to 19 and observe its effect. */ ++ TEST_COMPARE (nice (19), 19); ++ TEST_COMPARE (sched_getattr (0, &u.attr, sizeof (u.attr), 0), 0); ++ TEST_COMPARE (u.attr.sched_policy, SCHED_OTHER); ++ TEST_COMPARE (u.attr.sched_nice, 19); ++ check_unused (); ++ ++ /* Invalid buffer arguments result in EINVAL (not EFAULT). */ ++ { ++ errno = 0; ++ void *volatile null_pointer = NULL; /* compiler barrier. */ ++ TEST_COMPARE (sched_setattr (0, null_pointer, 0), -1); ++ TEST_COMPARE (errno, EINVAL); ++ errno = 0; ++ TEST_COMPARE (sched_getattr (0, null_pointer, size, 0), -1); ++ TEST_COMPARE (errno, EINVAL); ++ } ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-56627-2.patch b/SOURCES/glibc-RHEL-56627-2.patch new file mode 100644 index 0000000..8015b59 --- /dev/null +++ b/SOURCES/glibc-RHEL-56627-2.patch @@ -0,0 +1,143 @@ +commit c444cc1d8335243c5c4e636d6a26c472df85522c +Author: Florian Weimer +Date: Wed Sep 11 10:05:08 2024 +0200 + + Linux: Add missing scheduler constants to + + And add a test, misc/tst-sched-consts, that checks + consistency with . + + Reviewed-by: Carlos O'Donell + +Conflicts: + sysdeps/unix/sysv/linux/Makefile + (missing tests downstream) + +diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile +index d6381fe846c905d6..a7004f57a3f40fb1 100644 +--- a/sysdeps/unix/sysv/linux/Makefile ++++ b/sysdeps/unix/sysv/linux/Makefile +@@ -247,6 +247,16 @@ $(objpfx)tst-mman-consts.out: ../sysdeps/unix/sysv/linux/tst-mman-consts.py + < /dev/null > $@ 2>&1; $(evaluate-test) + $(objpfx)tst-mman-consts.out: $(sysdeps-linux-python-deps) + ++tests-special += \ ++ $(objpfx)tst-sched-consts.out \ ++ # tests-special ++$(objpfx)tst-sched-consts.out: ../sysdeps/unix/sysv/linux/tst-sched-consts.py ++ $(sysdeps-linux-python) \ ++ ../sysdeps/unix/sysv/linux/tst-sched-consts.py \ ++ $(sysdeps-linux-python-cc) \ ++ < /dev/null > $@ 2>&1; $(evaluate-test) ++$(objpfx)tst-sched-consts.out: $(sysdeps-linux-python-deps) ++ + tst-rseq-disable-ENV = GLIBC_TUNABLES=glibc.pthread.rseq=0 + + endif # $(subdir) == misc +diff --git a/sysdeps/unix/sysv/linux/bits/sched.h b/sysdeps/unix/sysv/linux/bits/sched.h +index 5e0f70a69181bc26..d4ac158d99e4c350 100644 +--- a/sysdeps/unix/sysv/linux/bits/sched.h ++++ b/sysdeps/unix/sysv/linux/bits/sched.h +@@ -29,6 +29,7 @@ + #define SCHED_FIFO 1 + #define SCHED_RR 2 + #ifdef __USE_GNU ++# define SCHED_NORMAL SCHED_OTHER + # define SCHED_BATCH 3 + # define SCHED_ISO 4 + # define SCHED_IDLE 5 +@@ -37,6 +38,19 @@ + /* Flags that can be used in policy values. */ + # define SCHED_RESET_ON_FORK 0x40000000 + ++/* Flags for the sched_flags field in struct sched_attr. */ ++#define SCHED_FLAG_RESET_ON_FORK 0x01 ++#define SCHED_FLAG_RECLAIM 0x02 ++#define SCHED_FLAG_DL_OVERRUN 0x04 ++#define SCHED_FLAG_KEEP_POLICY 0x08 ++#define SCHED_FLAG_KEEP_PARAMS 0x10 ++#define SCHED_FLAG_UTIL_CLAMP_MIN 0x20 ++#define SCHED_FLAG_UTIL_CLAMP_MAX 0x40 ++ ++/* Combinations of sched_flags fields. */ ++#define SCHED_FLAG_KEEP_ALL 0x18 ++#define SCHED_FLAG_UTIL_CLAMP 0x60 ++ + /* Use "" to work around incorrect macro expansion of the + __has_include argument (GCC PR 80005). */ + # ifdef __has_include +diff --git a/sysdeps/unix/sysv/linux/tst-sched-consts.py b/sysdeps/unix/sysv/linux/tst-sched-consts.py +new file mode 100644 +index 0000000000000000..70071dcd974fe064 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/tst-sched-consts.py +@@ -0,0 +1,56 @@ ++#!/usr/bin/python3 ++# Test that glibc's sched.h constants match the kernel's. ++# Copyright (C) 2018-2024 Free Software Foundation, Inc. ++# This file is part of the GNU C Library. ++# ++# The GNU C Library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++# ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++# ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, see ++# . ++ ++import argparse ++import sys ++ ++import glibcextract ++import glibcsyscalls ++ ++ ++def main(): ++ """The main entry point.""" ++ parser = argparse.ArgumentParser( ++ description="Test that glibc's sched.h constants " ++ "match the kernel's.") ++ parser.add_argument('--cc', metavar='CC', ++ help='C compiler (including options) to use') ++ args = parser.parse_args() ++ linux_version_headers = glibcsyscalls.linux_kernel_version(args.cc) ++ linux_version_glibc = (6, 10) ++ sys.exit(glibcextract.compare_macro_consts( ++ '#define _GNU_SOURCE 1\n' ++ '#include \n', ++ '#define _GNU_SOURCE 1\n' ++ '#include \n' ++ '#include \n', ++ args.cc, ++ 'SCHED_.*', ++ # SCHED_ISO is reserved, but not implemented in the kernel. ++ # SCHED_OTHER is the standard name for SCHED_NORMAL. ++ # SCHED_FLAG_ALL will receive more and more flags, so ++ # exposing it to userspace does not seem useful. ++ 'SCHED_ISO' ++ '|SCHED_OTHER' ++ '|SCHED_FLAG_ALL', ++ linux_version_glibc > linux_version_headers, ++ linux_version_headers > linux_version_glibc)) ++ ++if __name__ == '__main__': ++ main() +diff --git a/sysdeps/unix/sysv/linux/tst-sched_setattr.c b/sysdeps/unix/sysv/linux/tst-sched_setattr.c +index a6288a1a7cc2d01b..fbb73c31a72de311 100644 +--- a/sysdeps/unix/sysv/linux/tst-sched_setattr.c ++++ b/sysdeps/unix/sysv/linux/tst-sched_setattr.c +@@ -44,6 +44,8 @@ check_unused (void) + static int + do_test (void) + { ++ _Static_assert (SCHED_OTHER == SCHED_NORMAL, ++ "SCHED_OTHER, SCHED_NORMAL values"); + TEST_VERIFY (sizeof (struct sched_attr) < sizeof (u)); + + /* Check that reading and re-applying the current policy works. */ diff --git a/SOURCES/glibc-RHEL-56627-3.patch b/SOURCES/glibc-RHEL-56627-3.patch new file mode 100644 index 0000000..70be7a5 --- /dev/null +++ b/SOURCES/glibc-RHEL-56627-3.patch @@ -0,0 +1,73 @@ +commit b3a6bd625ce96bcec0e5d41b9835b1367d97e548 +Author: Florian Weimer +Date: Mon Jan 20 09:57:09 2025 +0100 + + Linux: Do not check unused bytes after sched_getattr in tst-sched_setattr + + Linux 6.13 was released with a change that overwrites those bytes. + This means that the check_unused subtest fails. + + Update the manual accordingly. + + Tested-by: Xi Ruoyao + Reviewed-by: Adhemerval Zanella + +diff --git a/manual/resource.texi b/manual/resource.texi +index bddff67d3d1e414e..f9fba2ad9cd84c14 100644 +--- a/manual/resource.texi ++++ b/manual/resource.texi +@@ -1058,9 +1058,9 @@ available in the future. + + Upon success, @code{@var{attr}->size} contains the size of the structure + version used by the kernel. Fields with offsets greater or equal to +-@code{@var{attr}->size} are not updated by the kernel. To obtain +-predictable values for unknown fields, use @code{memset} to set +-all @var{size} bytes to zero prior to calling @code{sched_getattr}. ++@code{@var{attr}->size} may not be overwritten by the kernel. To obtain ++predictable values for unknown fields, use @code{memset} to set all ++@var{size} bytes to zero prior to calling @code{sched_getattr}. + + On failure, @code{sched_getattr} returns @math{-1} and sets @code{errno}. + If @code{errno} is @code{E2BIG}, this means that the buffer is not large +diff --git a/sysdeps/unix/sysv/linux/tst-sched_setattr.c b/sysdeps/unix/sysv/linux/tst-sched_setattr.c +index fbb73c31a72de311..6b0913aebae96abe 100644 +--- a/sysdeps/unix/sysv/linux/tst-sched_setattr.c ++++ b/sysdeps/unix/sysv/linux/tst-sched_setattr.c +@@ -33,14 +33,6 @@ union + unsigned char padding[4096]; + } u; + +-static void +-check_unused (void) +-{ +- TEST_VERIFY (u.attr.size < sizeof (u)); +- for (unsigned int i = u.attr.size; i < sizeof (u); ++i) +- TEST_COMPARE (u.padding[i], 0xcc); +-} +- + static int + do_test (void) + { +@@ -53,7 +45,6 @@ do_test (void) + /* Compiler barrier to bypass write access attribute. */ + volatile unsigned int size = sizeof (u); + TEST_COMPARE (sched_getattr (0, (struct sched_attr *) &u, size, 0), 0); +- check_unused (); + TEST_COMPARE (sched_setattr (0, &u.attr, 0), 0); /* Apply unchanged. */ + + /* Try to switch to the SCHED_OTHER policy. */ +@@ -81,14 +72,12 @@ do_test (void) + memset (&u, 0xcc, sizeof (u)); + TEST_COMPARE (sched_getattr (0, (struct sched_attr *) &u, size, 0), 0); + TEST_COMPARE (u.attr.sched_policy, SCHED_OTHER); +- check_unused (); + + /* Raise the niceless level to 19 and observe its effect. */ + TEST_COMPARE (nice (19), 19); + TEST_COMPARE (sched_getattr (0, &u.attr, sizeof (u.attr), 0), 0); + TEST_COMPARE (u.attr.sched_policy, SCHED_OTHER); + TEST_COMPARE (u.attr.sched_nice, 19); +- check_unused (); + + /* Invalid buffer arguments result in EINVAL (not EFAULT). */ + { diff --git a/SOURCES/glibc-RHEL-56627-4.patch b/SOURCES/glibc-RHEL-56627-4.patch new file mode 100644 index 0000000..e8bb32a --- /dev/null +++ b/SOURCES/glibc-RHEL-56627-4.patch @@ -0,0 +1,47 @@ +commit 517846c85dfc48aa231e28e95e8f90a6d8a8efde +Author: Florian Weimer +Date: Wed Mar 12 11:29:10 2025 +0100 + + Makefile: Clean up pthread_atfork integration + + Do not add the pthread_atfork routine again in nptl/Makefile, + instead rely on sysdeps/pthread/Makefile for the integration + (as this is the directory that contains the source file). + + In sysdeps/pthread/Makefile, add to static-only-routines. + + Reviewed-by: Joseph Myers + +diff --git a/nptl/Makefile b/nptl/Makefile +index 455703bbd763d516..d03846c2e04afa2f 100644 +--- a/nptl/Makefile ++++ b/nptl/Makefile +@@ -58,7 +58,6 @@ routines = \ + old_pthread_cond_signal \ + old_pthread_cond_timedwait \ + old_pthread_cond_wait \ +- pthread_atfork \ + pthread_attr_copy \ + pthread_attr_destroy \ + pthread_attr_extension \ +@@ -204,7 +203,6 @@ routines = \ + vars \ + # routines + +-static-only-routines = pthread_atfork + libpthread-routines = libpthread-compat + libpthread-shared-only-routines = libpthread-compat + +diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile +index 58c33a8e49d517ad..fa70a33e25f23230 100644 +--- a/sysdeps/pthread/Makefile ++++ b/sysdeps/pthread/Makefile +@@ -145,7 +145,7 @@ tests-time64 := \ + tst-sem5-time64 \ + tst-thrd-sleep-time64 \ + +-static-only-routines = pthread_atfork ++static-only-routines += pthread_atfork + + # Files which must not be linked with libpthread. + tests-nolibpthread += tst-unload diff --git a/SOURCES/glibc-RHEL-56627-5.patch b/SOURCES/glibc-RHEL-56627-5.patch new file mode 100644 index 0000000..6375614 --- /dev/null +++ b/SOURCES/glibc-RHEL-56627-5.patch @@ -0,0 +1,223 @@ +Partial backport (without ABI changes, using libc_nonshared.a instead) +of: + +commit 74d463c50bb1096efef47022405c7db33f83fb5a +Author: Florian Weimer +Date: Wed Mar 12 10:16:31 2025 +0100 + + Linux: Add the pthread_gettid_np function (bug 27880) + + Current Bionic has this function, with enhanced error checking + (the undefined case terminates the process). + + Reviewed-by: Joseph Myers + +Conflicts: + sysdeps/unix/sysv/linux/*/libc.abilist + (not backported) + nptl/Versions + (not backported) + +The alternate libc_nonshared.a implementation relies on the UAPI +encoding of pthread_getcpuclockid, and avoids a TCB layout +dependency. + +diff --git a/manual/process.texi b/manual/process.texi +index 9307379194c6f666..8535363546520d62 100644 +--- a/manual/process.texi ++++ b/manual/process.texi +@@ -238,6 +238,24 @@ especially regarding reuse of the IDs of threads which have exited. + This function is specific to Linux. + @end deftypefun + ++@deftypefun pid_t pthread_gettid_np (pthread_t @var{thread}) ++@standards{Linux, pthread.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++This function returns the same value that @code{gettid} would return if ++executed on the running thread @var{thread}. ++ ++If @var{thread} is no longer running but it is joinable, it is ++unspecified whether this function returns @minus{}1, or if it returns ++the thread ID of the thread while it was running. If @var{thread} is ++not running and is not joinable, the behavior is undefined. ++ ++@strong{Portability Note:} Linux thread IDs can be reused rather quickly, ++so this function differs from the @code{pthread_getunique_np} function ++found on other systems. ++ ++This function is specific to Linux. ++@end deftypefun ++ + @node Creating a Process + @section Creating a Process + +diff --git a/nptl/Makefile b/nptl/Makefile +index d03846c2e04afa2f..cac75eb8f5b68320 100644 +--- a/nptl/Makefile ++++ b/nptl/Makefile +@@ -118,6 +118,7 @@ routines = \ + pthread_getname \ + pthread_getschedparam \ + pthread_getspecific \ ++ pthread_gettid_np \ + pthread_join \ + pthread_join_common \ + pthread_key_create \ +@@ -203,6 +204,10 @@ routines = \ + vars \ + # routines + ++static-only-routines += \ ++ pthread_gettid_np \ ++ # static-only-routines ++ + libpthread-routines = libpthread-compat + libpthread-shared-only-routines = libpthread-compat + +@@ -314,6 +319,7 @@ tests = \ + tst-pthread-timedlock-lockloop \ + tst-pthread_exit-nothreads \ + tst-pthread_exit-nothreads-static \ ++ tst-pthread_gettid_np \ + tst-robust-fork \ + tst-robustpi1 \ + tst-robustpi2 \ +diff --git a/nptl/pthread_gettid_np.c b/nptl/pthread_gettid_np.c +new file mode 100644 +index 0000000000000000..b602eb7a30bf42a5 +--- /dev/null ++++ b/nptl/pthread_gettid_np.c +@@ -0,0 +1,32 @@ ++/* Get the Linux TID from a pthread_t handle. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If ++ not, see . */ ++ ++#include ++#include ++ ++pid_t ++attribute_hidden ++pthread_gettid_np (pthread_t threadid) ++{ ++ clockid_t clock; ++ if (pthread_getcpuclockid (threadid, &clock) != 0) ++ return -1; ++ /* Reverse the clock ID encoding to obtain the TID. This is part of ++ the kernel/userspace interface, so it is stable ABI. */ ++ return ~(clock >> 3); ++} +diff --git a/nptl/tst-pthread_gettid_np.c b/nptl/tst-pthread_gettid_np.c +new file mode 100644 +index 0000000000000000..6a98d864e222b9f5 +--- /dev/null ++++ b/nptl/tst-pthread_gettid_np.c +@@ -0,0 +1,79 @@ ++/* Test for pthread_gettid_np. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If ++ not, see . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static pthread_barrier_t barrier; ++ ++static pid_t thread_tid; ++ ++static void * ++thread_func (void *ignored) ++{ ++ thread_tid = gettid (); ++ TEST_VERIFY (thread_tid != getpid ()); ++ TEST_COMPARE (thread_tid, pthread_gettid_np (pthread_self ())); ++ xpthread_barrier_wait (&barrier); ++ /* The main thread calls pthread_gettid_np here. */ ++ xpthread_barrier_wait (&barrier); ++ return NULL; ++} ++ ++static int ++do_test (void) ++{ ++ TEST_COMPARE (pthread_gettid_np (pthread_self ()), getpid ()); ++ TEST_COMPARE (pthread_gettid_np (pthread_self ()), gettid ()); ++ ++ xpthread_barrier_init (&barrier, NULL, 2); ++ ++ pthread_t thr = xpthread_create (NULL, thread_func, NULL); ++ xpthread_barrier_wait (&barrier); ++ TEST_COMPARE (thread_tid, pthread_gettid_np (thr)); ++ xpthread_barrier_wait (&barrier); ++ ++ while (true) ++ { ++ /* Check if the kernel thread is still running. */ ++ if (tgkill (getpid (), thread_tid, 0)) ++ { ++ TEST_COMPARE (errno, ESRCH); ++ break; ++ } ++ ++ pid_t tid = pthread_gettid_np (thr); ++ if (tid != thread_tid) ++ { ++ TEST_COMPARE (tid, -1); ++ break; ++ } ++ TEST_COMPARE (sched_yield (), 0); ++ } ++ ++ TEST_VERIFY (xpthread_join (thr) == NULL); ++ ++ return 0; ++} ++ ++#include +diff --git a/sysdeps/nptl/pthread.h b/sysdeps/nptl/pthread.h +index 43146e91c9d9579b..b8bd9213da5c9bc0 100644 +--- a/sysdeps/nptl/pthread.h ++++ b/sysdeps/nptl/pthread.h +@@ -1317,6 +1317,11 @@ extern int pthread_getcpuclockid (pthread_t __thread_id, + __THROW __nonnull ((2)); + #endif + ++#ifdef __USE_GNU ++/* Return the Linux TID for THREAD_ID. Returns -1 on failure. */ ++extern pid_t pthread_gettid_np (pthread_t __thread_id); ++#endif ++ + + /* Install handlers to be called when a new process is created with FORK. + The PREPARE handler is called in the parent process just before performing diff --git a/SOURCES/glibc-RHEL-56627-6.patch b/SOURCES/glibc-RHEL-56627-6.patch new file mode 100644 index 0000000..7fe51f5 --- /dev/null +++ b/SOURCES/glibc-RHEL-56627-6.patch @@ -0,0 +1,20 @@ +commit 6e30efe570f1ba135747c6d8f4004e78cd24c49c +Author: Florian Weimer +Date: Wed Mar 12 11:10:14 2025 +0100 + + nptl: Include in tst-pthread_gettid_np.c + + The test uses the while (true) construct. + +diff --git a/nptl/tst-pthread_gettid_np.c b/nptl/tst-pthread_gettid_np.c +index 6a98d864e222b9f5..ced42915106f5390 100644 +--- a/nptl/tst-pthread_gettid_np.c ++++ b/nptl/tst-pthread_gettid_np.c +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + #include + #include + #include diff --git a/SOURCES/glibc-RHEL-56627-7.patch b/SOURCES/glibc-RHEL-56627-7.patch new file mode 100644 index 0000000..2ba59e0 --- /dev/null +++ b/SOURCES/glibc-RHEL-56627-7.patch @@ -0,0 +1,21 @@ +commit 74c68fa61b5ebf4c64605a3cc5e47154a66671ce +Author: Florian Weimer +Date: Wed Mar 12 10:23:47 2025 +0100 + + Linux: Remove attribute access from sched_getattr (bug 32781) + + The GCC attribute expects an element count, not bytes. + +diff --git a/sysdeps/unix/sysv/linux/bits/sched.h b/sysdeps/unix/sysv/linux/bits/sched.h +index d4ac158d99e4c350..3bdd258bb987d49b 100644 +--- a/sysdeps/unix/sysv/linux/bits/sched.h ++++ b/sysdeps/unix/sysv/linux/bits/sched.h +@@ -145,7 +145,7 @@ int sched_setattr (pid_t tid, struct sched_attr *attr, unsigned int flags) + store it in *ATTR. */ + int sched_getattr (pid_t tid, struct sched_attr *attr, unsigned int size, + unsigned int flags) +- __THROW __nonnull ((2)) __attr_access ((__write_only__, 2, 3)); ++ __THROW __nonnull ((2)); + + #endif + diff --git a/SOURCES/glibc-RHEL-56627-8.patch b/SOURCES/glibc-RHEL-56627-8.patch new file mode 100644 index 0000000..b6f14f6 --- /dev/null +++ b/SOURCES/glibc-RHEL-56627-8.patch @@ -0,0 +1,149 @@ +commit 1ec411f7aec1bb7fb0992c8e23a42cea306305aa +Author: Florian Weimer +Date: Wed Mar 12 10:23:47 2025 +0100 + + Linux: Add new test misc/tst-sched_setattr-thread + + The straightforward sched_getattr call serves as a test for + bug 32781, too. + + Reviewed-by: Joseph Myers + +Conflicts: + sysdeps/unix/sysv/linux/Makefile + (Makefile not reformatted downstream) + +diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile +index a7004f57a3f40fb1..460ba54a8afcc515 100644 +--- a/sysdeps/unix/sysv/linux/Makefile ++++ b/sysdeps/unix/sysv/linux/Makefile +@@ -138,6 +138,7 @@ tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \ + tst-linux-mremap1 \ + tst-sched-affinity-inheritance \ + tst-sched_setattr \ ++ tst-sched_setattr-thread \ + # tests + + # Test for the symbol version of fcntl that was replaced in glibc 2.28. +diff --git a/sysdeps/unix/sysv/linux/tst-sched_setattr-thread.c b/sysdeps/unix/sysv/linux/tst-sched_setattr-thread.c +new file mode 100644 +index 0000000000000000..4600be92fd0a4c28 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/tst-sched_setattr-thread.c +@@ -0,0 +1,116 @@ ++/* Test for sched_setattr, sched_getattr involving multiple threads. ++ Copyright (C) 2024-2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++enum { initial_nice_value = 15 }; ++ ++/* Check that thread TID has nice value EXPECTED. */ ++static void ++check_nice_value (int tid, int expected) ++{ ++ struct sched_attr attr; ++ if (sched_getattr (tid, &attr, sizeof (attr), 0) != 0) ++ FAIL_EXIT1 ("sched_getattr (%d) failed: %m", tid); ++ TEST_COMPARE (attr.sched_policy, SCHED_OTHER); ++ int nice_value = attr.sched_nice; ++ if (attr.sched_nice != expected) ++ FAIL_EXIT1 ("thread %d: expected nice value %d, got %d" ++ " (called from thread %d)", ++ tid, expected, nice_value, (int) gettid ()); ++ printf ("info: thread %d: nice value %d (called from thread %d)\n", ++ tid, nice_value, (int) gettid ()); ++} ++ ++/* Set the nice value for TID to VALUE. */ ++static void ++set_nice_value (int tid, int value) ++{ ++ struct sched_attr attr = ++ { ++ .size = sizeof (attr), ++ .sched_policy = SCHED_OTHER, ++ .sched_nice = value, ++ }; ++ if (sched_setattr (tid, &attr, 0) != 0) ++ FAIL_EXIT1 ("sched_setattr (%d) failed: %m", tid); ++} ++ ++static pthread_barrier_t barrier; ++ ++static void * ++thread_routine (void *nice_value_ptr) ++{ ++ int nice_value = *(int *) nice_value_ptr; ++ /* Check that the nice value was inherited. */ ++ check_nice_value (gettid (), initial_nice_value); ++ xpthread_barrier_wait (&barrier); ++ /* Main thread sets nice value. */ ++ xpthread_barrier_wait (&barrier); ++ check_nice_value (gettid (), nice_value); ++ set_nice_value (gettid (), nice_value + 2); ++ xpthread_barrier_wait (&barrier); ++ /* Main thread sets checks value. */ ++ xpthread_barrier_wait (&barrier); ++ return NULL; ++} ++ ++static int ++do_test (void) ++{ ++ if (nice (initial_nice_value) != initial_nice_value) ++ FAIL_UNSUPPORTED ("cannot set nice value to initial_nice_value: %m"); ++ ++ xpthread_barrier_init (&barrier, NULL, 3); ++ ++ check_nice_value (0, initial_nice_value); ++ check_nice_value (gettid (), initial_nice_value); ++ ++ int nice0 = initial_nice_value + 1; ++ pthread_t thr0 = xpthread_create (NULL, thread_routine, &nice0); ++ int nice1 = initial_nice_value + 2; ++ pthread_t thr1 = xpthread_create (NULL, thread_routine, &nice1); ++ check_nice_value (pthread_gettid_np (thr0), initial_nice_value); ++ check_nice_value (pthread_gettid_np (thr1), initial_nice_value); ++ xpthread_barrier_wait (&barrier); ++ set_nice_value (pthread_gettid_np (thr0), nice0); ++ check_nice_value (pthread_gettid_np (thr0), nice0); ++ check_nice_value (pthread_gettid_np (thr1), initial_nice_value); ++ set_nice_value (pthread_gettid_np (thr1), nice1); ++ check_nice_value (pthread_gettid_np (thr0), nice0); ++ check_nice_value (pthread_gettid_np (thr1), nice1); ++ xpthread_barrier_wait (&barrier); ++ /* Threads set nice value. */ ++ xpthread_barrier_wait (&barrier); ++ check_nice_value (pthread_gettid_np (thr0), nice0 + 2); ++ check_nice_value (pthread_gettid_np (thr1), nice1 + 2); ++ xpthread_barrier_wait (&barrier); ++ ++ TEST_VERIFY (xpthread_join (thr1) == NULL); ++ TEST_VERIFY (xpthread_join (thr0) == NULL); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-57110-1.patch b/SOURCES/glibc-RHEL-57110-1.patch new file mode 100644 index 0000000..b14c557 --- /dev/null +++ b/SOURCES/glibc-RHEL-57110-1.patch @@ -0,0 +1,67 @@ +commit 43afae31e0d7579deef13536c4c3704afaa017da +Author: Maciej W. Rozycki +Date: Thu May 29 22:11:38 2025 +0100 + + manual: Document error codes missing for 'socket' + + Add missing EAFNOSUPPORT, ESOCKTNOSUPPORT, EPROTOTYPE, EINVAL, EPERM, + and ENOMEM error codes, and adjust existing descriptions accordingly. + + On Linux either ENOBUFS or ENOMEM is returned in the case of a memory + allocation failure, depending on the namespace requested, e.g. AF_INET + returns ENOMEM while AF_INET6 returns ENOBUFS, so document these codes + as alternatives. + + Similarly EPERM is returned rather than EACCES on Linux, so document + these codes as alternatives as well. We might want to convert EPERM to + EACCES for POSIX compliance, but it is beyond the scope of this change, + and software has to expect either anyway, owing to the long-established + practice. + + Finally ESOCKTNOSUPPORT is returned rather than EPROTONOSUPPORT for an + unsupported style except for the AF_QIPCRTR namespace where EPROTOTYPE + is used, so document these codes as alternatives too. + + Reviewed-by: Florian Weimer + +diff --git a/manual/socket.texi b/manual/socket.texi +index 63d550e9d484dc65..5199c3734be40136 100644 +--- a/manual/socket.texi ++++ b/manual/socket.texi +@@ -2205,9 +2205,19 @@ socket, or @code{-1} in case of error. The following @code{errno} error + conditions are defined for this function: + + @table @code ++@item EAFNOSUPPORT ++The @var{namespace} requested is not supported. ++ ++@item ESOCKTNOSUPPORT ++@itemx EPROTONOSUPPORT ++@itemx EPROTOTYPE ++The @var{style} is not supported by the @var{namespace} specified. ++ + @item EPROTONOSUPPORT +-The @var{protocol} or @var{style} is not supported by the +-@var{namespace} specified. ++The @var{protocol} is not supported by the @var{namespace} specified. ++ ++@item EINVAL ++The @var{style} or @var{protocol} requested is not valid. + + @item EMFILE + The process already has too many file descriptors open. +@@ -2216,11 +2226,13 @@ The process already has too many file descriptors open. + The system already has too many file descriptors open. + + @item EACCES ++@itemx EPERM + The process does not have the privilege to create a socket of the specified + @var{style} or @var{protocol}. + + @item ENOBUFS +-The system ran out of internal buffer space. ++@itemx ENOMEM ++Insufficient memory was available. + @end table + + The file descriptor returned by the @code{socket} function supports both diff --git a/SOURCES/glibc-RHEL-57110-2.patch b/SOURCES/glibc-RHEL-57110-2.patch new file mode 100644 index 0000000..f162010 --- /dev/null +++ b/SOURCES/glibc-RHEL-57110-2.patch @@ -0,0 +1,36 @@ +commit 79b5febd762d6735ba8e878086a50ea04993e340 +Author: Maciej W. Rozycki +Date: Thu May 29 22:11:38 2025 +0100 + + manual: Document error codes missing for 'inet_ntop' + + Add documentation for EAFNOSUPPORT and ENOSPC error codes returned, and + the return value on failure. + + Reviewed-by: Florian Weimer + +diff --git a/manual/socket.texi b/manual/socket.texi +index 5199c3734be40136..7a833360d91aa2a4 100644 +--- a/manual/socket.texi ++++ b/manual/socket.texi +@@ -1211,7 +1211,19 @@ network (binary) to presentation (textual) form. @var{af} should be + either @code{AF_INET} or @code{AF_INET6}, as appropriate. @var{cp} is a + pointer to the address to be converted. @var{buf} should be a pointer + to a buffer to hold the result, and @var{len} is the length of this +-buffer. The return value from the function will be this buffer address. ++buffer. ++ ++The return value is @var{buf} on success. On failure, the function's ++return value is a null pointer and @code{errno} is set accordingly. ++The following @code{errno} values are specific to this function: ++ ++@table @code ++@item EAFNOSUPPORT ++The address family requested is neither @code{AF_INET} nor @code{AF_INET6}. ++ ++@item ENOSPC ++Insufficient space available for the result in the buffer provided. ++@end table + @end deftypefun + + @node Host Names diff --git a/SOURCES/glibc-RHEL-57110-3.patch b/SOURCES/glibc-RHEL-57110-3.patch new file mode 100644 index 0000000..bc1e2ae --- /dev/null +++ b/SOURCES/glibc-RHEL-57110-3.patch @@ -0,0 +1,47 @@ +commit 46acdf46cc1948187d6540cdf4abee5053cd8bcc +Author: Maciej W. Rozycki +Date: Wed Jun 4 16:27:20 2025 +0100 + + manual: Document error codes missing for 'if_indextoname' + + Add documentation for ENXIO error code returned and refer to 'socket' + for further possible codes from the underlying function call. + + While changing the text clarify the description by mentioning 'ifname' + and replace @code tags with @var ones where referring to a function + parameter. + + Reviewed-by: Florian Weimer + +diff --git a/manual/socket.texi b/manual/socket.texi +index 7a833360d91aa2a4..0f5ec07ede2a1949 100644 +--- a/manual/socket.texi ++++ b/manual/socket.texi +@@ -505,11 +505,22 @@ name. If no interface exists with the name given, it returns 0. + @safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{} @acsfd{}}} + @c It opens a socket with opensock to use ioctl on the fd to get the + @c name from the index. +-This function maps an interface index to its corresponding name. The +-returned name is placed in the buffer pointed to by @code{ifname}, which +-must be at least @code{IFNAMSIZ} bytes in length. If the index was +-invalid, the function's return value is a null pointer, otherwise it is +-@code{ifname}. ++This function maps an interface index @var{ifindex} to its corresponding ++name. The returned name is placed in the buffer pointed to by @var{ifname}, ++which must be at least @code{IFNAMSIZ} bytes in length. ++ ++The return value is @var{ifname} on success. On failure, the function's ++return value is a null pointer and @code{errno} is set accordingly. The ++following @code{errno} values are specific to this function: ++ ++@table @code ++@item ENXIO ++There is no interface at the index requested. ++@end table ++ ++Additionally, since @code{if_indextoname} invokes @code{socket} ++internally, @code{errno} may also be set to a value listed for the ++@code{socket} function (@pxref{Creating a Socket}). + @end deftypefun + + @deftp {Data Type} {struct if_nameindex} diff --git a/SOURCES/glibc-RHEL-57110-4.patch b/SOURCES/glibc-RHEL-57110-4.patch new file mode 100644 index 0000000..85135ac --- /dev/null +++ b/SOURCES/glibc-RHEL-57110-4.patch @@ -0,0 +1,39 @@ +commit 5a9020eeb27eee88e7839ff5e9cea94892ec90ff +Author: Maciej W. Rozycki +Date: Wed Jun 4 16:27:20 2025 +0100 + + manual: Document error codes missing for 'if_nametoindex' + + Add documentation for ENODEV error code returned and refer to 'socket' + for further possible codes from the underlying function call. + + While changing the text clarify the description by mentioning 'ifname'. + + Reviewed-by: Florian Weimer + +diff --git a/manual/socket.texi b/manual/socket.texi +index 0f5ec07ede2a1949..e2f00b82a81fec6f 100644 +--- a/manual/socket.texi ++++ b/manual/socket.texi +@@ -497,7 +497,20 @@ interface name, including its terminating zero byte. + @c takes a lock, which makes all callers AS- and AC-Unsafe. + @c opensock @asulock @aculock @acsfd + This function yields the interface index corresponding to a particular +-name. If no interface exists with the name given, it returns 0. ++name specified with @var{ifname}. ++ ++The return value is the interface index on success. On failure, the ++function's return value is zero and @code{errno} is set accordingly. ++The following @code{errno} values are specific to this function: ++ ++@table @code ++@item ENODEV ++There is no interface by the name requested. ++@end table ++ ++Additionally, since @code{if_nametoindex} invokes @code{socket} ++internally, @code{errno} may also be set to a value listed for the ++@code{socket} function (@pxref{Creating a Socket}). + @end deftypefun + + @deftypefun {char *} if_indextoname (unsigned int @var{ifindex}, char *@var{ifname}) diff --git a/SOURCES/glibc-RHEL-57110-5.patch b/SOURCES/glibc-RHEL-57110-5.patch new file mode 100644 index 0000000..881862c --- /dev/null +++ b/SOURCES/glibc-RHEL-57110-5.patch @@ -0,0 +1,33 @@ +commit 140b20e9716b51659a5223b182dcf07ac62b3f77 +Author: Maciej W. Rozycki +Date: Wed Jun 4 16:27:20 2025 +0100 + + manual: Document error codes missing for 'inet_pton' + + Add documentation for EAFNOSUPPORT error code returned, and the possible + return values on non-success. + + Reviewed-by: Florian Weimer + +diff --git a/manual/socket.texi b/manual/socket.texi +index e2f00b82a81fec6f..ac7e9e8a93bd6ff5 100644 +--- a/manual/socket.texi ++++ b/manual/socket.texi +@@ -1216,6 +1216,17 @@ either @code{AF_INET} or @code{AF_INET6}, as appropriate for the type of + address being converted. @var{cp} is a pointer to the input string, and + @var{buf} is a pointer to a buffer for the result. It is the caller's + responsibility to make sure the buffer is large enough. ++ ++The return value is @code{1} on success and @code{0} if @var{cp} does not ++point to a valid address string for the address family @var{af} requested. ++On failure, the function's return value is @code{-1} and @code{errno} is ++set accordingly. The following @code{errno} values are specific to this ++function: ++ ++@table @code ++@item EAFNOSUPPORT ++The address family requested is neither @code{AF_INET} nor @code{AF_INET6}. ++@end table + @end deftypefun + + @deftypefun {const char *} inet_ntop (int @var{af}, const void *@var{cp}, char *@var{buf}, socklen_t @var{len}) diff --git a/SOURCES/glibc-RHEL-57585-1.patch b/SOURCES/glibc-RHEL-57585-1.patch new file mode 100644 index 0000000..7936eaf --- /dev/null +++ b/SOURCES/glibc-RHEL-57585-1.patch @@ -0,0 +1,41 @@ +commit 400bdb5c85af5a52b3f5653357c9fca87f036bd3 +Author: Paul Eggert +Date: Tue May 28 10:07:47 2024 -0700 + + Improve doc for time_t range (BZ 31808) + +diff --git a/manual/time.texi b/manual/time.texi +index 404d124d1bfdca5c..ed13a1b4ddb64978 100644 +--- a/manual/time.texi ++++ b/manual/time.texi +@@ -123,7 +123,7 @@ The number of clock ticks per second is system-specific. + @code{time_t} is the simplest data type used to represent simple + calendar time. + +-In ISO C, @code{time_t} can be either an integer or a floating-point ++In ISO C, @code{time_t} can be either an integer or a real floating + type, and the meaning of @code{time_t} values is not specified. The + only things a strictly conforming program can do with @code{time_t} + values are: pass them to @code{difftime} to get the elapsed time +@@ -134,11 +134,21 @@ and pass them to the functions that convert them to broken-down time + On POSIX-conformant systems, @code{time_t} is an integer type and its + values represent the number of seconds elapsed since the @dfn{epoch}, + which is 00:00:00 on January 1, 1970, Coordinated Universal Time. ++The count of seconds ignores leap seconds. + + @Theglibc{} additionally guarantees that @code{time_t} is a signed + type, and that all of its functions operate correctly on negative + @code{time_t} values, which are interpreted as times before the epoch. ++Functions like @code{localtime} assume the Gregorian calendar even ++though this is historically inaccurate for timestamps before the ++calendar was introduced or after the calendar will become obsolete. + @cindex epoch ++@Theglibc{} also supports leap seconds as an option, in which case ++@code{time_t} counts leap seconds instead of ignoring them. ++Currently the @code{time_t} type is 64 bits wide on all platforms ++supported by @theglibc{}, except that it is 32 bits wide on a few ++older platforms unless you define @code{_TIME_BITS} to 64. ++@xref{Feature Test Macros}. + @end deftp + + @deftp {Data Type} {struct timespec} diff --git a/SOURCES/glibc-RHEL-57585-2.patch b/SOURCES/glibc-RHEL-57585-2.patch new file mode 100644 index 0000000..e97ab5c --- /dev/null +++ b/SOURCES/glibc-RHEL-57585-2.patch @@ -0,0 +1,203 @@ +commit 21fbc0a19366f89638a30eef2b53c6d4baafdb88 +Author: Paul Eggert +Date: Thu Jun 22 13:44:50 2023 -0700 + + Call "CST" a time zone abbreviation, not a name + + In documentation, call strings like "CST" time zone abbreviations, not + time zone names. This terminology is more precise, and is what tzdb uses. + A string like "CST" is ambiguous and does not fully name a time zone. + +diff --git a/manual/conf.texi b/manual/conf.texi +index ba9847aaa4483585..158285dbf06c76ab 100644 +--- a/manual/conf.texi ++++ b/manual/conf.texi +@@ -85,10 +85,10 @@ If defined, the unvarying maximum number of streams that a single + process can have open simultaneously. @xref{Opening Streams}. + @end deftypevr + +-@cindex limits, time zone name length ++@cindex limits, time zone abbreviation length + @deftypevr Macro int TZNAME_MAX + @standards{POSIX.1, limits.h} +-If defined, the unvarying maximum length of a time zone name. ++If defined, the unvarying maximum length of a time zone abbreviation. + @xref{Time Zone Functions}. + @end deftypevr + +@@ -1044,7 +1044,7 @@ simultaneously. Its value is @code{8}. + @item _POSIX_TZNAME_MAX + @standards{POSIX.1, limits.h} + The value of this macro is the most restrictive limit permitted by POSIX +-for the maximum length of a time zone name. Its value is @code{3}. ++for the maximum length of a time zone abbreviation. Its value is @code{3}. + + @item _POSIX2_RE_DUP_MAX + @standards{POSIX.2, limits.h} +diff --git a/manual/time.texi b/manual/time.texi +index ed13a1b4ddb64978..ea088ce846b26e8d 100644 +--- a/manual/time.texi ++++ b/manual/time.texi +@@ -1037,7 +1037,7 @@ The @code{tm_gmtoff} field is derived from BSD and is a GNU library + extension; it is not visible in a strict @w{ISO C} environment. + + @item const char *tm_zone +-This field is the name for the time zone that was used to compute this ++This field is the abbreviation for the time zone that was used to compute this + broken-down time value. Like @code{tm_gmtoff}, this field is a BSD and + GNU extension, and is not visible in a strict @w{ISO C} environment. + @end table +@@ -2217,7 +2217,7 @@ The full alternative year representation. + The offset from GMT in @w{ISO 8601}/RFC822 format. + + @item %Z +-The timezone name. ++The time zone abbreviation. + + @emph{Note:} Currently, this is not fully implemented. The format is + recognized, input is consumed but no field in @var{tm} is set. +@@ -2378,7 +2378,7 @@ current time of the timezone matched, not of the current timezone of the + runtime environment. + + @emph{Note}: This is not implemented (currently). The problem is that +-timezone names are not unique. If a fixed timezone is assumed for a ++time zone abbreviations are not unique. If a fixed time zone is assumed for a + given string (say @code{EST} meaning US East Coast time), then uses for + countries other than the USA will fail. So far we have found no good + solution to this. +@@ -2534,10 +2534,10 @@ summer time) in the local time zone: + @r{@var{std} @var{offset}} + @end smallexample + +-The @var{std} string specifies the name of the time zone. It must be ++The @var{std} string specifies the time zone abbreviation. It must be + three or more characters long and must not contain a leading colon, + embedded digits, commas, nor plus and minus signs. There is no space +-character separating the time zone name from the @var{offset}, so these ++character separating the time zone abbreviation from the @var{offset}, so these + restrictions are necessary to parse the specification correctly. + + The @var{offset} specifies the time value you must add to the local time +@@ -2561,7 +2561,7 @@ The second format is used when there is Daylight Saving Time: + @end smallexample + + The initial @var{std} and @var{offset} specify the standard time zone, as +-described above. The @var{dst} string and @var{offset} specify the name ++described above. The @var{dst} string and @var{offset} are the abbreviation + and offset for the corresponding Daylight Saving Time zone; if the + @var{offset} is omitted, it defaults to one hour ahead of standard time. + +@@ -2690,10 +2690,10 @@ community of volunteers and put in the public domain. + @deftypevar {char *} tzname [2] + @standards{POSIX.1, time.h} + The array @code{tzname} contains two strings, which are the standard +-names of the pair of time zones (standard and Daylight +-Saving) that the user has selected. @code{tzname[0]} is the name of ++abbreviations of the pair of time zones (standard and Daylight ++Saving) that the user has selected. @code{tzname[0]} abbreviates + the standard time zone (for example, @code{"EST"}), and @code{tzname[1]} +-is the name for the time zone when Daylight Saving Time is in use (for ++abbreviates the time zone when Daylight Saving Time is in use (for + example, @code{"EDT"}). These correspond to the @var{std} and @var{dst} + strings (respectively) from the @code{TZ} environment variable. If + Daylight Saving Time is never used, @code{tzname[1]} is the empty string. +diff --git a/posix/bits/posix1_lim.h b/posix/bits/posix1_lim.h +index c645847858029165..54626e16c059e1f5 100644 +--- a/posix/bits/posix1_lim.h ++++ b/posix/bits/posix1_lim.h +@@ -134,7 +134,7 @@ + /* Maximum number of characters in a tty name. */ + #define _POSIX_TTY_NAME_MAX 9 + +-/* Maximum length of a timezone name (element of `tzname'). */ ++/* Maximum length of a time zone abbreviation (element of 'tzname'). */ + #ifdef __USE_XOPEN2K + # define _POSIX_TZNAME_MAX 6 + #else +diff --git a/time/mktime.c b/time/mktime.c +index 74d9bbaa5b375723..850b6cdc144bbeda 100644 +--- a/time/mktime.c ++++ b/time/mktime.c +@@ -536,7 +536,7 @@ __time64_t + __mktime64 (struct tm *tp) + { + /* POSIX.1 8.1.1 requires that whenever mktime() is called, the +- time zone names contained in the external variable 'tzname' shall ++ time zone abbreviations contained in the external variable 'tzname' shall + be set as if the tzset() function had been called. */ + __tzset (); + +diff --git a/time/time.h b/time/time.h +index bde870c9342a01a3..a6f00196ab4d1649 100644 +--- a/time/time.h ++++ b/time/time.h +@@ -214,7 +214,7 @@ extern char *__REDIRECT_NTH (ctime_r, (const time_t *__restrict __timer, + + + /* Defined in localtime.c. */ +-extern char *__tzname[2]; /* Current timezone names. */ ++extern char *__tzname[2]; /* Current time zone abbreviations. */ + extern int __daylight; /* If daylight-saving time is ever in use. */ + extern long int __timezone; /* Seconds west of UTC. */ + +diff --git a/time/tzfile.c b/time/tzfile.c +index 61cbaebd3e41f95e..07164448d9179b9c 100644 +--- a/time/tzfile.c ++++ b/time/tzfile.c +@@ -407,7 +407,7 @@ __tzfile_read (const char *file, size_t extra, char **extrap) + + fclose (f); + +- /* First "register" all timezone names. */ ++ /* First "register" all time zone abbreviations. */ + for (i = 0; i < num_types; ++i) + if (__tzstring (&zone_names[types[i].idx]) == NULL) + goto ret_free_transitions; +@@ -564,7 +564,7 @@ __tzfile_default (const char *std, const char *dst, + types[1].offset = dstoff; + types[1].isdst = 1; + +- /* Reset the zone names to point to the user's names. */ ++ /* Reset time zone abbreviations to point to the user's abbreviations. */ + __tzname[0] = (char *) std; + __tzname[1] = (char *) dst; + +diff --git a/time/tzset.c b/time/tzset.c +index 2fc51194b63bda8e..889b1a426ef25a8b 100644 +--- a/time/tzset.c ++++ b/time/tzset.c +@@ -145,7 +145,7 @@ compute_offset (unsigned int ss, unsigned int mm, unsigned int hh) + return ss + mm * 60 + hh * 60 * 60; + } + +-/* Parses the time zone name at *TZP, and writes a pointer to an ++/* Parses the time zone abbreviation at *TZP, and writes a pointer to an + interned string to tz_rules[WHICHRULE].name. On success, advances + *TZP, and returns true. Returns false otherwise. */ + static bool +@@ -324,10 +324,10 @@ __tzset_parse_tz (const char *tz) + memset (tz_rules, '\0', sizeof tz_rules); + tz_rules[0].name = tz_rules[1].name = ""; + +- /* Get the standard timezone name. */ ++ /* Get the standard time zone abbreviations. */ + if (parse_tzname (&tz, 0) && parse_offset (&tz, 0)) + { +- /* Get the DST timezone name (if any). */ ++ /* Get the DST time zone abbreviation (if any). */ + if (*tz != '\0') + { + if (parse_tzname (&tz, 1)) +diff --git a/timezone/tst-bz28707.c b/timezone/tst-bz28707.c +index 0a9df1e9a094f1e9..ead469bb7b15d089 100644 +--- a/timezone/tst-bz28707.c ++++ b/timezone/tst-bz28707.c +@@ -37,7 +37,7 @@ do_test (void) + tzset (); + + return +- /* Sanity-check that we got the right timezone-name for DST. For ++ /* Sanity-check that we got the right abbreviation for DST. For + normal time, we're likely to get "-00" (the "unspecified" marker), + even though the POSIX timezone string says "-04". Let's not test + that. */ diff --git a/SOURCES/glibc-RHEL-57585-3.patch b/SOURCES/glibc-RHEL-57585-3.patch new file mode 100644 index 0000000..405db3f --- /dev/null +++ b/SOURCES/glibc-RHEL-57585-3.patch @@ -0,0 +1,1897 @@ +commit ee768a30fe9099972dad04c49972c2508a208b9b +Author: Paul Eggert +Date: Sat Jun 8 09:48:25 2024 -0700 + + Modernize and fix doc’s “Date and Time” (BZ 31876) + + POSIX.1-2024 (now official) specifies tm_gmtoff and tm_zone. + This is a good time to update the manual’s “Date and Time” + chapter so I went through it, fixed some outdated + stuff that had been in there for decades, and improved it to match + POSIX.1-2024 better and to clarify some implementation-defined + behavior. Glibc already conforms to POSIX.1-2024 in these matters, so + this is merely a documentation change. + + * manual/examples/strftim.c: Use snprintf instead of now-deprecated + function asctime. Check for localtime failure. Simplify by using + puts instead of fputs. Prefer ‘buf, sizeof buf’ to less-obvious + ‘buffer, SIZE’. + + * manual/examples/timespec_subtract.c: Modernize to use struct + timespec not struct timeval, and rename from timeval_subtract.c. + All uses changed. Check for overflow. Do not check for negative + return value, which ought to be OK since negative time_t is OK. + Use GNU indenting style. + + * manual/time.texi: + + Document CLOCKS_PER_SEC, TIME_UTC, timespec_get, timespec_getres, + strftime_l. + + Document the storage lifetime of tm_zone and of tzname. + + Caution against use of tzname, timezone and daylight, saying that + these variables have unspecified values when TZ is geographic. + This is what glibc actually does (contrary to what the manual said + before this patch), and POSIX is planned to say the same thing + . + Also say that directly accessing the variables is not thread-safe. + + Say that localtime_r and ctime_r don’t necessarily set time zone + state. Similarly, in the tzset documentation, say that it is called + by ctime, localtime, mktime, strftime, not that it is called by all + time conversion functions that depend on the time zone. + + Say that tm_isdst is useful mostly just for mktime, and that + other uses should prefer tm_gmtoff and tm_zone instead. + + Do not say that strftime ignores tm_gmtoff and tm_zone, because + it doesn’t do that. + + Document what gmtime does to tm_gmtoff and tm_zone. + + Say that the asctime, asctime_r, ctime, and ctime_r are now deprecated + and/or obsolescent, and that behavior is undefined if the year is < + 1000 or > 9999. Document strftime before these now-obsolescent + functions, so that readers see the useful function first. + + Coin the terms “geographical format” and “proleptic format” for the + two main formats of TZ settings, to simplify exposition. Use this + wording consistently. + + Update top-level proleptic syntax to match POSIX.1-2024, which glibc + already implements. Document the angle-bracket quoted forms of time + zone abbreviations in proleptic TZ. Say that time zone abbreviations + can contain only ASCII alphanumerics, ‘+’, and ‘-’. + + Document what happens if the proleptic form specifies a DST + abbreviation and offset but omits the rules. POSIX says this is + implementation-defined so we need to document it. Although this + documentation mentions ‘posixrules’ tersely, we need to rethink + ‘posixrules’ since I think it stops working after 2038. + + Clarify wording about TZ settings beginning with ‘;’. + + Say that timegm is in ISO C (as of C23). + + Say that POSIX.1-2024 removed gettimeofday. + + Say that tm_gmtoff and tm_zone are extensions to ISO C, which is + clearer than saying they are invisible in a struct ISO C enviroment, + and gives us more wiggle room if we want to make them visible in + strict ISO C, something that ISO C allows. + + Drop mention of old standards like POSIX.1c and POSIX.2-1992 in the + text when the history is so old that it’s no longer useful in a + general-purpose manual. + + Define Coordinated Universal Time (UTC), time zone, time zone ruleset, + and POSIX Epoch, and use these phrases more consistently. + + Improve TZ examples to show more variety, and to reflect current + practice and timestamps. Remove obsolete example about Argentina. + Add an example for Ireland. + + Don’t rely on GCC extensions when explaining ctime_r. + + Do not say that difftime produces the mathematically correct result, + since it might be inexact. + + For clock_t don’t say “as in the example above” when there is no + such example, and don’t say that casting to double works “properly + and consistently no matter what”, as it suffers from rounding and + overflow. + + Don’t say broken-down time is not useful for calculations; it’s + merely painful. + + Say that UTC is not defined before 1960. + + Rename Time Zone Functions to Time Zone State. All uses changed. + + Update Internet RFC 822 → 5322, 1305 → 5905. Drop specific years of + ISO 8601 as they don’t matter. + + Minor style changes: @code{"..."} → @t{"..."} to avoid overquoting in + info files, @code → @env for environment variables, Daylight Saving + Time → daylight saving time, white space → whitespace, prime meridian + → Prime Meridian. + +Conflicts: + manual/examples/timeval_subtract.c + (File removed in this patch) + +diff --git a/benchtests/strcoll-inputs/filelist#en_US.UTF-8 b/benchtests/strcoll-inputs/filelist#en_US.UTF-8 +index 43eb9efb40f8f587..3a905df282c8c0db 100644 +--- a/benchtests/strcoll-inputs/filelist#en_US.UTF-8 ++++ b/benchtests/strcoll-inputs/filelist#en_US.UTF-8 +@@ -14282,7 +14282,7 @@ sigusr.c + dir2.c + inetsrv.c + argp-ex3.c +-timeval_subtract.c ++timespec_subtract.c + popen.c + filecli.c + db.c +diff --git a/manual/conf.texi b/manual/conf.texi +index 158285dbf06c76ab..be680e0692b1d0e4 100644 +--- a/manual/conf.texi ++++ b/manual/conf.texi +@@ -89,7 +89,7 @@ process can have open simultaneously. @xref{Opening Streams}. + @deftypevr Macro int TZNAME_MAX + @standards{POSIX.1, limits.h} + If defined, the unvarying maximum length of a time zone abbreviation. +-@xref{Time Zone Functions}. ++@xref{TZ Variable}. + @end deftypevr + + These limit macros are always defined in @file{limits.h}. +diff --git a/manual/contrib.texi b/manual/contrib.texi +index 8ea53e56530d847a..fbb73afedb18e3f5 100644 +--- a/manual/contrib.texi ++++ b/manual/contrib.texi +@@ -510,7 +510,7 @@ a different license: + + @itemize @bullet + @item +-The timezone support code is derived from the public-domain timezone ++The time zone support code is derived from the public-domain time zone + package by Arthur David Olson and his many contributors. + + @item +diff --git a/manual/examples/strftim.c b/manual/examples/strftim.c +index 262804a9a6eec581..571917679f9ebfd5 100644 +--- a/manual/examples/strftim.c ++++ b/manual/examples/strftim.c +@@ -18,30 +18,32 @@ + #include + #include + +-#define SIZE 256 +- + int + main (void) + { +- char buffer[SIZE]; +- time_t curtime; +- struct tm *loctime; ++ /* This buffer is big enough that the strftime calls ++ below cannot possibly exhaust it. */ ++ char buf[256]; + + /* Get the current time. */ +- curtime = time (NULL); ++ time_t curtime = time (NULL); + + /* Convert it to local time representation. */ +- loctime = localtime (&curtime); ++ struct tm *lt = localtime (&curtime); ++ if (!lt) ++ return 1; + +- /* Print out the date and time in the standard format. */ +- fputs (asctime (loctime), stdout); ++ /* Print the date and time in a simple format ++ that is independent of locale. */ ++ strftime (buf, sizeof buf, "%Y-%m-%d %H:%M:%S", lt); ++ puts (buf); + + /*@group*/ +- /* Print it out in a nice format. */ +- strftime (buffer, SIZE, "Today is %A, %B %d.\n", loctime); +- fputs (buffer, stdout); +- strftime (buffer, SIZE, "The time is %I:%M %p.\n", loctime); +- fputs (buffer, stdout); ++ /* Print it in a nicer English format. */ ++ strftime (buf, sizeof buf, "Today is %A, %B %d.", lt); ++ puts (buf); ++ strftime (buf, sizeof buf, "The time is %I:%M %p.", lt); ++ puts (buf); + + return 0; + } +diff --git a/manual/examples/timespec_subtract.c b/manual/examples/timespec_subtract.c +new file mode 100644 +index 0000000000000000..380d173aabb5b30a +--- /dev/null ++++ b/manual/examples/timespec_subtract.c +@@ -0,0 +1,36 @@ ++/* struct timespec subtraction. ++ Copyright (C) 1991-2024 Free Software Foundation, Inc. ++ ++ This program is free software; you can redistribute it and/or ++ modify it under the terms of the GNU General Public License ++ as published by the Free Software Foundation; either version 2 ++ of the License, or (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, see . ++*/ ++#include ++#include ++ ++/* Put into *R the difference between X and Y. ++ Return true if overflow occurs, false otherwise. */ ++ ++bool ++timespec_subtract (struct timespec *r, ++ struct timespec x, struct timespec y) ++{ ++ /* Compute nanoseconds, setting @var{borrow} to 1, 0, or -1 ++ for propagation into seconds. */ ++ long int nsec_diff = x.tv_nsec - y.tv_nsec; ++ int borrow = (nsec_diff < 0) - ! (nsec_diff < 1000000000); ++ r->tv_nsec = nsec_diff + 1000000000 * borrow; ++ ++ /* Compute seconds, returning true if this overflows. */ ++ bool v = ckd_sub (&r->tv_sec, x.tv_sec, y.tv_sec); ++ return v ^ ckd_sub (&r->tv_sec, r->tv_sec, borrow); ++} +diff --git a/manual/examples/timeval_subtract.c b/manual/examples/timeval_subtract.c +deleted file mode 100644 +index 37c7922460e7ee08..0000000000000000 +--- a/manual/examples/timeval_subtract.c ++++ /dev/null +@@ -1,44 +0,0 @@ +-/* struct timeval subtraction. +- Copyright (C) 1991-2021 Free Software Foundation, Inc. +- +- This program is free software; you can redistribute it and/or +- modify it under the terms of the GNU General Public License +- as published by the Free Software Foundation; either version 2 +- of the License, or (at your option) any later version. +- +- This program is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. +- +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . +-*/ +- +-/* Subtract the `struct timeval' values X and Y, +- storing the result in RESULT. +- Return 1 if the difference is negative, otherwise 0. */ +- +-int +-timeval_subtract (struct timeval *result, struct timeval *x, struct timeval *y) +-{ +- /* Perform the carry for the later subtraction by updating @var{y}. */ +- if (x->tv_usec < y->tv_usec) { +- int nsec = (y->tv_usec - x->tv_usec) / 1000000 + 1; +- y->tv_usec -= 1000000 * nsec; +- y->tv_sec += nsec; +- } +- if (x->tv_usec - y->tv_usec > 1000000) { +- int nsec = (x->tv_usec - y->tv_usec) / 1000000; +- y->tv_usec += 1000000 * nsec; +- y->tv_sec -= nsec; +- } +- +- /* Compute the time remaining to wait. +- @code{tv_usec} is certainly positive. */ +- result->tv_sec = x->tv_sec - y->tv_sec; +- result->tv_usec = x->tv_usec - y->tv_usec; +- +- /* Return 1 if result is negative. */ +- return x->tv_sec < y->tv_sec; +-} +diff --git a/manual/install.texi b/manual/install.texi +index 8e34ff7e1847f3ae..5fcd33bd98a1febc 100644 +--- a/manual/install.texi ++++ b/manual/install.texi +@@ -211,7 +211,7 @@ This option hardcodes the newly built C library path in dynamic tests + so that they can be invoked directly. + + @item --disable-timezone-tools +-By default, timezone related utilities (@command{zic}, @command{zdump}, ++By default, time zone related utilities (@command{zic}, @command{zdump}, + and @command{tzselect}) are installed with @theglibc{}. If you are building + these independently (e.g. by using the @samp{tzcode} package), then this + option will allow disabling the install of these. +@@ -489,9 +489,9 @@ permissions on a pseudoterminal so it can be used by the calling process. + If you are using a Linux kernel with the @code{devpts} filesystem enabled + and mounted at @file{/dev/pts}, you don't need this program. + +-After installation you should configure the timezone and install locales +-for your system. The time zone configuration ensures that your system +-time matches the time for your current timezone. The locales ensure that ++After installation you should configure the time zone ruleset and install ++locales for your system. The time zone ruleset ensures that timestamps ++are processed correctly for your location. The locales ensure that + the display of information on your system matches the expectations of + your language and geographic region. + +@@ -514,12 +514,12 @@ as files in the default configured locale installation directory (derived from + root use @samp{DESTDIR} e.g.@: @samp{make localedata/install-locale-files + DESTDIR=/opt/glibc}, but note that this does not change the configured prefix. + +-To configure the locally used timezone, set the @code{TZ} environment ++To configure the time zone ruleset, set the @code{TZ} environment + variable. The script @code{tzselect} helps you to select the right value. + As an example, for Germany, @code{tzselect} would tell you to use + @samp{TZ='Europe/Berlin'}. For a system wide installation (the given + paths are for an installation with @samp{--prefix=/usr}), link the +-timezone file which is in @file{/usr/share/zoneinfo} to the file ++time zone file which is in @file{/usr/share/zoneinfo} to the file + @file{/etc/localtime}. For Germany, you might execute @samp{ln -s + /usr/share/zoneinfo/Europe/Berlin /etc/localtime}. + +diff --git a/manual/startup.texi b/manual/startup.texi +index 2c984a14f5e03297..c1a3683d584cb914 100644 +--- a/manual/startup.texi ++++ b/manual/startup.texi +@@ -567,8 +567,7 @@ Manual}) use the @code{TERM} environment variable, for example. + @item TZ + @cindex @code{TZ} environment variable + +-This specifies the time zone. @xref{TZ Variable}, for information about +-the format of this string and how it is used. ++This specifies the time zone ruleset. @xref{TZ Variable}. + + @item LANG + @cindex @code{LANG} environment variable +diff --git a/manual/time.texi b/manual/time.texi +index ea088ce846b26e8d..39e1a7457e11e538 100644 +--- a/manual/time.texi ++++ b/manual/time.texi +@@ -26,18 +26,22 @@ Discussing time in a technical manual can be difficult because the word + we use a rigorous terminology to avoid confusion, and the only thing we + use the simple word ``time'' for is to talk about the abstract concept. + +-A @dfn{calendar time} is a point in the time continuum, for example +-November 4, 1990, at 18:02.5 UTC. Sometimes this is called ``absolute +-time''. ++A @dfn{calendar time}, sometimes called ``absolute time'', ++is a point in the Earth's time continuum, for example ++June 9, 2024, at 13:50:06.5 Coordinated Universal Time (UTC)@. + @cindex calendar time ++UTC, formerly called Greenwich Mean Time, is the primary time ++standard on Earth, and is the basis for civil time and time zones. ++@cindex Coordinated Universal Time ++@cindex UTC + + We don't speak of a ``date'', because that is inherent in a calendar + time. + @cindex date + + An @dfn{interval} is a contiguous part of the time continuum between two +-calendar times, for example the hour between 9:00 and 10:00 on July 4, +-1980. ++calendar times, for example the hour on June 9, 2024, ++between 13:00 and 14:00 UTC. + @cindex interval + + An @dfn{elapsed time} is the length of an interval, for example, 35 +@@ -85,6 +89,16 @@ easier for people to understand, but more difficult to calculate with. + @cindex Gregorian calendar + @cindex calendar, Gregorian + ++A @dfn{time zone} is a single fixed offset from UTC, along with ++a @dfn{time zone abbreviation} that is a string of characters ++that can include ASCII alphanumerics, @samp{+}, and @samp{-}. ++For example, the current time zone in Japan is ++9 hours ahead (east) of the Prime Meridian with abbreviation @t{"JST"}. ++ ++A @dfn{time zone ruleset} maps each simple calendar time to a single ++time zone. For example, Paris's time zone ruleset might list over a ++dozen time zones that Paris has experienced during its history. ++ + @dfn{CPU time} measures the amount of time that a single process has + actively used a CPU to perform computations. It does not include the + time that process has spent waiting for external events. The system +@@ -132,16 +146,17 @@ and pass them to the functions that convert them to broken-down time + (@pxref{Broken-down Time}). + + On POSIX-conformant systems, @code{time_t} is an integer type and its +-values represent the number of seconds elapsed since the @dfn{epoch}, +-which is 00:00:00 on January 1, 1970, Coordinated Universal Time. ++values represent the number of seconds elapsed since the @dfn{POSIX Epoch}, ++which is January 1, 1970, at 00:00:00 Coordinated Universal Time (UTC)@. + The count of seconds ignores leap seconds. + + @Theglibc{} additionally guarantees that @code{time_t} is a signed + type, and that all of its functions operate correctly on negative +-@code{time_t} values, which are interpreted as times before the epoch. +-Functions like @code{localtime} assume the Gregorian calendar even +-though this is historically inaccurate for timestamps before the +-calendar was introduced or after the calendar will become obsolete. ++@code{time_t} values, which are interpreted as times before the POSIX Epoch. ++Functions like @code{localtime} assume the Gregorian calendar and UTC ++even though this is historically inaccurate for dates before 1582, ++for times before 1960, and for timestamps after the Gregorian calendar ++and UTC will become obsolete. + @cindex epoch + @Theglibc{} also supports leap seconds as an option, in which case + @code{time_t} counts leap seconds instead of ignoring them. +@@ -226,7 +241,7 @@ a value of type @code{double}. + + On POSIX-conformant systems, the advantage of using + @samp{difftime (@var{end}, @var{begin})} over @samp{@var{end} - @var{begin}} +-is that it will produce the mathematically correct result even if ++is that it will not overflow even if + @var{end} and @var{begin} are so far apart that a simple subtraction + would overflow. However, if they are so far apart that a @code{double} + cannot exactly represent the difference, the result will be inexact. +@@ -237,13 +252,13 @@ would be the only way to compute their difference. + @end deftypefun + + @Theglibc{} does not provide any functions for computing the +-difference between two values of type @w{@code{struct timeval}} or +-@w{@code{struct timespec}}. Here is the recommended way to do this +-calculation by hand. It works even on some peculiar operating systems ++difference between two values of type @w{@code{struct timespec}} or ++@w{@code{struct timeval}}. Here is one way to do this ++calculation by hand. It works even on peculiar operating systems + where the @code{tv_sec} member has an unsigned type. + + @smallexample +-@include timeval_subtract.c.texi ++@include timespec_subtract.c.texi + @end smallexample + + @node Processor And CPU Time +@@ -252,7 +267,7 @@ where the @code{tv_sec} member has an unsigned type. + If you're trying to optimize your program or measure its efficiency, + it's very useful to know how much processor time it uses. For that, + calendar time and elapsed times are useless because a process may spend +-time waiting for I/O or for other processes to use the CPU. However, ++time waiting for I/O or for other processes to use the CPU@. However, + you can get the information with the functions in this section. + + CPU time (@pxref{Time Basics}) is represented by the data type +@@ -267,12 +282,16 @@ time before and after the computation. + @cindex clock ticks + @cindex ticks, clock + ++@defvr Macro CLOCKS_PER_SEC ++@standards{ISO, time.h} ++The number of clock ticks per second. ++@end defvr ++ + On @gnulinuxhurdsystems{}, @code{clock_t} is equivalent to @code{long int} and + @code{CLOCKS_PER_SEC} is an integer value. But in other systems, both + @code{clock_t} and the macro @code{CLOCKS_PER_SEC} can be either integer +-or floating-point types. Casting CPU time values to @code{double}, as +-in the example above, makes sure that operations such as arithmetic and +-printing work properly and consistently no matter what the underlying ++or floating-point types. Converting CPU time values to @code{double} ++can help code be more portable no matter what the underlying + representation is. + + Note that the clock can wrap around. On a 32bit system with +@@ -434,8 +453,8 @@ manipulating calendar times. + * Formatting Calendar Time:: Converting times to strings. + * Parsing Date and Time:: Convert textual time and date information back + into broken-down time values. +-* TZ Variable:: How users specify the time zone. +-* Time Zone Functions:: Functions to examine or specify the time zone. ++* TZ Variable:: How users specify the time zone ruleset. ++* Time Zone State:: Time zone state variables. + * Time Functions Example:: An example program showing use of some of + the time functions. + @end menu +@@ -464,30 +483,30 @@ This function cannot fail. + + Some applications need more precise timekeeping than is possible with + a @code{time_t} alone. Some applications also need more control over +-what is meant by ``the current time.'' For these applications, POSIX +-provides a function @code{clock_gettime} that can retrieve the time ++what is meant by ``the current time.'' For these applications, ++POSIX and @w{ISO C} provide functions to retrieve the time + with up to nanosecond precision, from a variety of different clocks. + Clocks can be system-wide, measuring time the same for all processes; + or they can be per-process or per-thread, measuring CPU time consumed + by a particular process, or some other similar resource. Each clock +-has its own resolution and epoch. You can find the resolution of a +-clock with the function @code{clock_getres}. There is no function to ++has its own resolution and epoch. POSIX and @w{ISO C} also provide functions ++for finding the resolution of a clock. There is no function to + get the epoch for a clock; either it is fixed and documented, or the + clock is not meant to be used to measure absolute times. + + @deftp {Data Type} clockid_t + @standards{POSIX.1, time.h} + The type @code{clockid_t} is used for constants that indicate which of +-several system clocks one wishes to use. ++several POSIX system clocks one wishes to use. + @end deftp + +-All systems that support this family of functions will define at least ++All systems that support the POSIX functions will define at least + this clock constant: + + @deftypevr Macro clockid_t CLOCK_REALTIME + @standards{POSIX.1, time.h} +-This clock uses the POSIX epoch, 00:00:00 on January 1, 1970, Coordinated +-Universal Time. It is close to, but not necessarily in lock-step with, the ++This POSIX clock uses the POSIX Epoch, 1970-01-01 00:00:00 UTC@. ++It is close to, but not necessarily in lock-step with, the + clocks of @code{time} (above) and of @code{gettimeofday} (below). + @end deftypevr + +@@ -499,7 +518,7 @@ measurements are not affected by changes to the system clock. + + @deftypevr Macro clockid_t CLOCK_MONOTONIC + @standards{POSIX.1, time.h} +-System-wide clock that continuously measures the advancement of ++This system-wide POSIX clock continuously measures the advancement of + calendar time, ignoring discontinuous changes to the system's + setting for absolute calendar time. + +@@ -509,7 +528,7 @@ Therefore, @code{CLOCK_MONOTONIC} cannot be used to measure + absolute time, only elapsed time. + @end deftypevr + +-Systems may support more than just these two clocks. ++Systems may support more than just these two POSIX clocks. + + @deftypefun int clock_gettime (clockid_t @var{clock}, struct timespec *@var{ts}) + @standards{POSIX.1, time.h} +@@ -554,15 +573,45 @@ The clock identified by @var{clock} is not supported. + @end table + @end deftypefun + +-These functions, and the constants that identify particular clocks, +-are declared in @file{time.h}. +- + @strong{Portability Note:} On some systems, including systems that use + older versions of @theglibc{}, programs that use @code{clock_gettime} + or @code{clock_setres} must be linked with the @code{-lrt} library. + This has not been necessary with @theglibc{} since version 2.17. + +-@Theglibc{} also provides an older, but still widely used, function ++The following @w{ISO C} macros and functions for higher-resolution ++timestamps were standardized more recently than the POSIX functions, ++so they are less portable to older POSIX systems. However, the @w{ISO ++C} functions are portable to C platforms that do not support POSIX. ++ ++@deftypevr Macro int TIME_UTC ++@standards{ISO, time.h} ++This is a positive integer constant designating a simple calendar time base. ++In @theglibc{} and other POSIX systems, ++this is equivalent to the POSIX @code{CLOCK_REALTIME} clock. ++On non-POSIX systems, though, the epoch is implementation-defined. ++@end deftypevr ++ ++Systems may support more than just this @w{ISO C} clock. ++ ++@deftypefun int timespec_get (struct timespec *@var{ts}, int @var{base}) ++@standards{ISO, time.h} ++Store into @code{*@var{ts}} the current time according to the @w{ISO ++C} time @var{base}. ++ ++The return value is @var{base} on success and @code{0} on failure. ++@end deftypefun ++ ++@deftypefun int timespec_getres (struct timespec *@var{res}, int @var{base}) ++@standards{ISO, time.h} ++If @var{ts} is non-null, store into @code{*@var{ts}} the resolution of ++the time provided by @code{timespec_get} function for the @w{ISO C} ++time @var{base}. ++ ++The return value is @var{base} on success and @code{0} on failure. ++@end deftypefun ++ ++The previous functions, data types and constants are declared in @file{time.h}. ++@Theglibc{} also provides an older function + for getting the current time with a resolution of microseconds. This + function is declared in @file{sys/time.h}. + +@@ -579,15 +628,15 @@ On some historic systems, if @var{tzp} was not a null pointer, + information about a system-wide time zone would be written to + @code{*@var{tzp}}. This feature is obsolete and not supported on + @gnusystems{}. You should always supply a null pointer for this +-argument. Instead, use the facilities described in @ref{Time Zone +-Functions} and in @ref{Broken-down Time} for working with time zones. ++argument. Instead, use the facilities described in ++@ref{Broken-down Time} for working with time zones. + + This function cannot fail, and its return value is always @code{0}. + +-@strong{Portability Note:} As of the 2008 revision of POSIX, this +-function is considered obsolete. @Theglibc{} will continue to provide +-this function indefinitely, but new programs should use +-@code{clock_gettime} instead. ++@strong{Portability Note:} POSIX.1-2024 removed this function. ++Although @theglibc{} will continue to provide it indefinitely, ++portable programs should use @code{clock_gettime} or ++@code{timespec_get} instead. + @end deftypefun + + @node Setting and Adjusting the Time +@@ -615,7 +664,7 @@ privileges), but the @code{CLOCK_MONOTONIC} clock cannot. + Because simple calendar times are independent of time zone, this + function should not be used when the time zone changes (e.g.@: if the + computer is physically moved from one zone to another). Instead, use +-the facilities described in @ref{Time Zone Functions}. ++the facilities described in @ref{Time Zone State}. + + @code{clock_settime} causes the clock to jump forwards or backwards, + which can cause a variety of problems. Changing the +@@ -763,7 +812,7 @@ system clock. The value is expressed in microseconds. + + @item long int tolerance + This value represents the maximum frequency error of the system clock in +-scaled PPM. This value is used to increase the @code{maxerror} every ++scaled PPM@. This value is used to increase the @code{maxerror} every + second. + + @item struct timeval time +@@ -847,7 +896,7 @@ The process specified a settings update, but is not superuser. + + @end table + +-For more details see RFC1305 (Network Time Protocol, Version 3) and ++For more details see @w{RFC 5905} (Network Time Protocol, Version 4) and + related documents. + + @strong{Portability note:} Early versions of @theglibc{} did not +@@ -871,7 +920,7 @@ wait longer for the time to become correct. + The @var{delta} argument specifies a relative adjustment to be made to + the clock time. If negative, the system clock is slowed down for a + while until it has lost this much elapsed time. If positive, the system +-clock is speeded up for a while. ++clock is sped up for a while. + + If the @var{olddelta} argument is not a null pointer, the @code{adjtime} + function returns information about any previous time adjustment that +@@ -935,9 +984,9 @@ same as calling @w{@samp{clock_settime (CLOCK_REALTIME)}}, except that + the new time can only be set to a precision of one microsecond. + + When @var{tzp} is not a null pointer, the data it points to @emph{may} +-be used to set a system-wide idea of the current timezone. This ++be used to set a system-wide idea of the current time zone. This + feature is obsolete and not supported on @gnusystems{}. Instead, use +-the facilities described in @ref{Time Zone Functions} and in ++the facilities described in @ref{Time Zone State} and in + @ref{Broken-down Time} for working with time zones. + + The return value is @code{0} on success and @code{-1} on failure. The +@@ -968,8 +1017,8 @@ Simple calendar times represent absolute times as elapsed times since + an epoch. This is convenient for computation, but has no relation to + the way people normally think of calendar time. By contrast, + @dfn{broken-down time} is a binary representation of calendar time +-separated into year, month, day, and so on. Broken-down time values +-are not useful for calculations, but they are useful for printing ++separated into year, month, day, and so on. Although broken-down time ++values are painful to calculate with, they are useful for printing + human readable time information. + + A broken-down time value is always relative to a choice of time +@@ -1020,27 +1069,34 @@ This is the number of full days since the beginning of the year (in the + range @code{0} through @code{365}). + + @item int tm_isdst +-@cindex Daylight Saving Time ++@cindex daylight saving time + @cindex summer time +-This is a flag that indicates whether Daylight Saving Time is (or was, or ++This is a flag that indicates whether daylight saving time is (or was, or + will be) in effect at the time described. The value is positive if +-Daylight Saving Time is in effect, zero if it is not, and negative if the ++daylight saving time is in effect, zero if it is not, and negative if the + information is not available. ++Although this flag is useful when passing a broken-down time to the ++@code{mktime} function, for other uses this flag should be ignored and ++the @code{tm_gmtoff} and @code{tm_zone} fields should be inspected instead. + + @item long int tm_gmtoff + This field describes the time zone that was used to compute this + broken-down time value, including any adjustment for daylight saving; it + is the number of seconds that you must add to UTC to get local time. +-You can also think of this as the number of seconds east of UTC. For +-example, for U.S. Eastern Standard Time, the value is @code{-5*60*60}. +-The @code{tm_gmtoff} field is derived from BSD and is a GNU library +-extension; it is not visible in a strict @w{ISO C} environment. ++You can also think of this as the number of seconds east of the Prime Meridian. ++For example, for U.S. Eastern Standard Time, the value is @code{-5*60*60}. + + @item const char *tm_zone + This field is the abbreviation for the time zone that was used to compute this +-broken-down time value. Like @code{tm_gmtoff}, this field is a BSD and +-GNU extension, and is not visible in a strict @w{ISO C} environment. ++broken-down time value. + @end table ++ ++@strong{Portability note:} The @code{tm_gmtoff} and @code{tm_zone} fields ++are derived from BSD and are POSIX extensions to @w{ISO C}@. ++Code intended to be portable to operating systems that lack ++these fields can instead use time zone state variables, although ++those variables are unreliable when the @env{TZ} environment variable ++has a geographical format. @xref{Time Zone State}. + @end deftp + + +@@ -1055,21 +1111,24 @@ The @code{localtime} function converts the simple time pointed to by + user's specified time zone. + + The return value is a pointer to a static broken-down time structure, which +-might be overwritten by subsequent calls to @code{ctime}, @code{gmtime}, +-or @code{localtime}. (But no other library function overwrites the contents +-of this object.) ++might be overwritten by subsequent calls to @code{gmtime} ++or @code{localtime}. (No other library function overwrites the contents ++of this object.) In @theglibc{}, the structure's @code{tm_zone} ++points to a string with a storage lifetime that lasts indefinitely; ++on other platforms, the lifetime may expire when the @env{TZ} ++environment variable is changed. + + The return value is the null pointer if @var{time} cannot be represented + as a broken-down time; typically this is because the year cannot fit into + an @code{int}. + +-Calling @code{localtime} also sets the current time zone as if +-@code{tzset} were called. @xref{Time Zone Functions}. ++Calling @code{localtime} also sets the time zone state as if ++@code{tzset} were called. @xref{Time Zone State}. + @end deftypefun + + Using the @code{localtime} function is a big problem in multi-threaded + programs. The result is returned in a static buffer and this is used in +-all threads. POSIX.1c introduced a variant of this function. ++all threads. A variant function avoids this problem. + + @deftypefun {struct tm *} localtime_r (const time_t *@var{time}, struct tm *@var{resultp}) + @standards{POSIX.1c, time.h} +@@ -1160,7 +1219,8 @@ and converts it to the broken-down time format. + + But the result is not placed in a static buffer. Instead it is placed + in the object of type @code{struct tm} to which the parameter +-@var{resultp} points. ++@var{resultp} points. Also, the time zone state is not necessarily ++set as if @code{tzset} were called. + + If the conversion is successful the function returns a pointer to the + object the result was written into, i.e., it returns @var{resultp}. +@@ -1173,13 +1233,14 @@ object the result was written into, i.e., it returns @var{resultp}. + @c gmtime @mtasurace:tmbuf @mtsenv @mtslocale @ascuheap @asulock @aculock @acsmem @acsfd + @c tz_convert dup @mtsenv @mtslocale @ascuheap @asulock @aculock @acsmem @acsfd + This function is similar to @code{localtime}, except that the broken-down +-time is expressed as Coordinated Universal Time (UTC) (formerly called +-Greenwich Mean Time (GMT)) rather than relative to a local time zone. ++time is expressed as UTC rather than relative to a local time zone. ++The broken-down time's @code{tm_gmtoff} is 0, and its ++@code{tm_zone} is a string @t{"UTC"} with static storage duration. + + @end deftypefun + + As for the @code{localtime} function we have the problem that the result +-is placed in a static variable. POSIX.1c also provides a replacement for ++is placed in a static variable. A thread-safe replacement is also provided for + @code{gmtime}. + + @deftypefun {struct tm *} gmtime_r (const time_t *@var{time}, struct tm *@var{resultp}) +@@ -1194,7 +1255,7 @@ is placed in a static variable. POSIX.1c also provides a replacement for + @c gmtime_r @mtsenv @mtslocale @ascuheap @asulock @aculock @acsmem @acsfd + @c tz_convert(gmtime_r) dup @mtsenv @mtslocale @ascuheap @asulock @aculock @acsmem @acsfd + This function is similar to @code{localtime_r}, except that it converts +-just like @code{gmtime} the given time as Coordinated Universal Time. ++just like @code{gmtime} the given time as UTC. + + If the conversion is successful the function returns a pointer to the + object the result was written into, i.e., it returns @var{resultp}. +@@ -1244,10 +1305,10 @@ If the specified broken-down time cannot be represented as a simple time, + @code{mktime} returns a value of @code{(time_t)(-1)} and does not modify + the contents of @var{brokentime}. + +-Calling @code{mktime} also sets the current time zone as if ++Calling @code{mktime} also sets the time zone state as if + @code{tzset} were called; @code{mktime} uses this information instead + of @var{brokentime}'s initial @code{tm_gmtoff} and @code{tm_zone} +-members. @xref{Time Zone Functions}. ++members. @xref{Time Zone State}. + @end deftypefun + + @deftypefun time_t timelocal (struct tm *@var{brokentime}) +@@ -1265,7 +1326,7 @@ available. @code{timelocal} is rather rare. + @end deftypefun + + @deftypefun time_t timegm (struct tm *@var{brokentime}) +-@standards{???, time.h} ++@standards{ISO, time.h} + @safety{@prelim{}@mtsafe{@mtsenv{} @mtslocale{}}@asunsafe{@ascuheap{} @asulock{}}@acunsafe{@aculock{} @acsmem{} @acsfd{}}} + @c timegm @mtsenv @mtslocale @ascuheap @asulock @aculock @acsmem @acsfd + @c gmtime_offset triggers the same caveats as localtime_offset in mktime. +@@ -1281,16 +1342,16 @@ available. @code{timelocal} is rather rare. + @c tzfile_compute(!use_localtime) ok + + @code{timegm} is functionally identical to @code{mktime} except it +-always takes the input values to be Coordinated Universal Time (UTC) ++always takes the input values to be UTC + regardless of any local time zone setting. + + Note that @code{timegm} is the inverse of @code{gmtime}. + + @strong{Portability note:} @code{mktime} is essentially universally +-available. @code{timegm} is rather rare. For the most portable +-conversion from a UTC broken-down time to a simple time, set +-the @code{TZ} environment variable to UTC, call @code{mktime}, then set +-@code{TZ} back. ++available. Although @code{timegm} is standardized by C23, some ++other systems lack it; to be portable to them, you can set ++the @env{TZ} environment variable to UTC, call @code{mktime}, then set ++@env{TZ} back. + + @end deftypefun + +@@ -1303,89 +1364,6 @@ The functions described in this section format calendar time values as + strings. These functions are declared in the header file @file{time.h}. + @pindex time.h + +-@deftypefun {char *} asctime (const struct tm *@var{brokentime}) +-@standards{ISO, time.h} +-@safety{@prelim{}@mtunsafe{@mtasurace{:asctime} @mtslocale{}}@asunsafe{}@acsafe{}} +-@c asctime @mtasurace:asctime @mtslocale +-@c Uses a static buffer. +-@c asctime_internal @mtslocale +-@c snprintf dup @mtslocale [no @acsuheap @acsmem] +-@c ab_day_name @mtslocale +-@c ab_month_name @mtslocale +-The @code{asctime} function converts the broken-down time value that +-@var{brokentime} points to into a string in a standard format: +- +-@smallexample +-"Tue May 21 13:46:22 1991\n" +-@end smallexample +- +-The abbreviations for the days of week are: @samp{Sun}, @samp{Mon}, +-@samp{Tue}, @samp{Wed}, @samp{Thu}, @samp{Fri}, and @samp{Sat}. +- +-The abbreviations for the months are: @samp{Jan}, @samp{Feb}, +-@samp{Mar}, @samp{Apr}, @samp{May}, @samp{Jun}, @samp{Jul}, @samp{Aug}, +-@samp{Sep}, @samp{Oct}, @samp{Nov}, and @samp{Dec}. +- +-The return value points to a statically allocated string, which might be +-overwritten by subsequent calls to @code{asctime} or @code{ctime}. +-(But no other library function overwrites the contents of this +-string.) +-@end deftypefun +- +-@deftypefun {char *} asctime_r (const struct tm *@var{brokentime}, char *@var{buffer}) +-@standards{POSIX.1c, time.h} +-@safety{@prelim{}@mtsafe{@mtslocale{}}@assafe{}@acsafe{}} +-@c asctime_r @mtslocale +-@c asctime_internal dup @mtslocale +-This function is similar to @code{asctime} but instead of placing the +-result in a static buffer it writes the string in the buffer pointed to +-by the parameter @var{buffer}. This buffer should have room +-for at least 26 bytes, including the terminating null. +- +-If no error occurred the function returns a pointer to the string the +-result was written into, i.e., it returns @var{buffer}. Otherwise +-it returns @code{NULL}. +-@end deftypefun +- +- +-@deftypefun {char *} ctime (const time_t *@var{time}) +-@standards{ISO, time.h} +-@safety{@prelim{}@mtunsafe{@mtasurace{:tmbuf} @mtasurace{:asctime} @mtsenv{} @mtslocale{}}@asunsafe{@ascuheap{} @asulock{}}@acunsafe{@aculock{} @acsmem{} @acsfd{}}} +-@c ctime @mtasurace:tmbuf @mtasurace:asctime @mtsenv @mtslocale @ascuheap @asulock @aculock @acsmem @acsfd +-@c localtime dup @mtasurace:tmbuf @mtsenv @mtslocale @ascuheap @asulock @aculock @acsmem @acsfd +-@c asctime dup @mtasurace:asctime @mtslocale +-The @code{ctime} function is similar to @code{asctime}, except that you +-specify the calendar time argument as a @code{time_t} simple time value +-rather than in broken-down local time format. It is equivalent to +- +-@smallexample +-asctime (localtime (@var{time})) +-@end smallexample +- +-Calling @code{ctime} also sets the current time zone as if +-@code{tzset} were called. @xref{Time Zone Functions}. +-@end deftypefun +- +-@deftypefun {char *} ctime_r (const time_t *@var{time}, char *@var{buffer}) +-@standards{POSIX.1c, time.h} +-@safety{@prelim{}@mtsafe{@mtsenv{} @mtslocale{}}@asunsafe{@ascuheap{} @asulock{}}@acunsafe{@aculock{} @acsmem{} @acsfd{}}} +-@c ctime_r @mtsenv @mtslocale @ascuheap @asulock @aculock @acsmem @acsfd +-@c localtime_r dup @mtsenv @mtslocale @ascuheap @asulock @aculock @acsmem @acsfd +-@c asctime_r dup @mtslocale +-This function is similar to @code{ctime}, but places the result in the +-string pointed to by @var{buffer}. It is equivalent to (written using +-gcc extensions, @pxref{Statement Exprs,,,gcc,Porting and Using gcc}): +- +-@smallexample +-(@{ struct tm tm; asctime_r (localtime_r (time, &tm), buf); @}) +-@end smallexample +- +-If no error occurred the function returns a pointer to the string the +-result was written into, i.e., it returns @var{buffer}. Otherwise +-it returns @code{NULL}. +-@end deftypefun +- +- + @deftypefun size_t strftime (char *@var{s}, size_t @var{size}, const char *@var{template}, const struct tm *@var{brokentime}) + @standards{ISO, time.h} + @safety{@prelim{}@mtsafe{@mtsenv{} @mtslocale{}}@asunsafe{@asucorrupt{} @ascuheap{} @asulock{} @ascudlopen{}}@acunsafe{@acucorrupt{} @aculock{} @acsmem{} @acsfd{}}} +@@ -1447,10 +1425,10 @@ it returns @code{NULL}. + @c tm_diff ok + This function is similar to the @code{sprintf} function (@pxref{Formatted + Input}), but the conversion specifications that can appear in the format +-template @var{template} are specialized for printing components of the date +-and time @var{brokentime} according to the locale currently specified for ++template @var{template} are specialized for printing components of ++@var{brokentime} according to the locale currently specified for + time conversion (@pxref{Locales}) and the current time zone +-(@pxref{Time Zone Functions}). ++(@pxref{Time Zone State}). + + Ordinary characters appearing in the @var{template} are copied to the + output string @var{s}; this can include multibyte character sequences. +@@ -1486,8 +1464,7 @@ the result is written right adjusted and space padded to the given + size. + + An optional modifier can follow the optional flag and width +-specification. The modifiers, which were first standardized by +-POSIX.2-1992 and by @w{ISO C99}, are: ++specification. The modifiers are: + + @table @code + @item E +@@ -1555,51 +1532,36 @@ If the @code{E} modifier is specified (@code{%EC}), instead produces + the name of the period for the year (e.g.@: an era name) in the + locale's alternative calendar. + +-This format was first standardized by POSIX.2-1992 and by @w{ISO C99}. +- + @item %d + The day of the month as a decimal number (range @code{01} through @code{31}). + + @item %D + The date using the format @code{%m/%d/%y}. + +-This format was first standardized by POSIX.2-1992 and by @w{ISO C99}. +- + @item %e + The day of the month like with @code{%d}, but padded with spaces (range + @code{ 1} through @code{31}). + +-This format was first standardized by POSIX.2-1992 and by @w{ISO C99}. +- + @item %F + The date using the format @code{%Y-%m-%d}. This is the form specified + in the @w{ISO 8601} standard and is the preferred form for all uses. + +-This format was first standardized by @w{ISO C99} and by POSIX.1-2001. +- + @item %g + The year corresponding to the ISO week number, but without the century + (range @code{00} through @code{99}). This has the same format and value + as @code{%y}, except that if the ISO week number (see @code{%V}) belongs + to the previous or next year, that year is used instead. + +-This format was first standardized by @w{ISO C99} and by POSIX.1-2001. +- + @item %G + The year corresponding to the ISO week number. This has the same format + and value as @code{%Y}, except that if the ISO week number (see + @code{%V}) belongs to the previous or next year, that year is used + instead. + +-This format was first standardized by @w{ISO C99} and by POSIX.1-2001 +-but was previously available as a GNU extension. +- + @item %h + The abbreviated month name according to the current locale. The action + is the same as for @code{%b}. + +-This format was first standardized by POSIX.2-1992 and by @w{ISO C99}. +- + @item %H + The hour as a decimal number, using a 24-hour clock (range @code{00} through + @code{23}). +@@ -1632,13 +1594,11 @@ The minute as a decimal number (range @code{00} through @code{59}). + @item %n + A single @samp{\n} (newline) character. + +-This format was first standardized by POSIX.2-1992 and by @w{ISO C99}. +- + @item %p + Either @samp{AM} or @samp{PM}, according to the given time value; or the + corresponding strings for the current locale. Noon is treated as + @samp{PM} and midnight as @samp{AM}. In most locales +-@samp{AM}/@samp{PM} format is not supported, in such cases @code{"%p"} ++@samp{AM}/@samp{PM} format is not supported, in such cases @t{"%p"} + yields an empty string. + + @ignore +@@ -1650,24 +1610,21 @@ Either @samp{am} or @samp{pm}, according to the given time value; or the + corresponding strings for the current locale, printed in lowercase + characters. Noon is treated as @samp{pm} and midnight as @samp{am}. In + most locales @samp{AM}/@samp{PM} format is not supported, in such cases +-@code{"%P"} yields an empty string. ++@t{"%P"} yields an empty string. + + This format is a GNU extension. + + @item %r + The complete calendar time using the AM/PM format of the current locale. + +-This format was first standardized by POSIX.2-1992 and by @w{ISO C99}. + In the POSIX locale, this format is equivalent to @code{%I:%M:%S %p}. + + @item %R + The hour and minute in decimal numbers using the format @code{%H:%M}. + +-This format was first standardized by @w{ISO C99} and by POSIX.1-2001 +-but was previously available as a GNU extension. +- + @item %s +-The number of seconds since the epoch, i.e., since 1970-01-01 00:00:00 UTC. ++The number of seconds since the POSIX Epoch, ++i.e., since 1970-01-01 00:00:00 UTC@. + Leap seconds are not counted unless leap second support is available. + + This format is a GNU extension. +@@ -1678,19 +1635,13 @@ The seconds as a decimal number (range @code{00} through @code{60}). + @item %t + A single @samp{\t} (tabulator) character. + +-This format was first standardized by POSIX.2-1992 and by @w{ISO C99}. +- + @item %T + The time of day using decimal numbers using the format @code{%H:%M:%S}. + +-This format was first standardized by POSIX.2-1992 and by @w{ISO C99}. +- + @item %u + The day of the week as a decimal number (range @code{1} through + @code{7}), Monday being @code{1}. + +-This format was first standardized by POSIX.2-1992 and by @w{ISO C99}. +- + @item %U + The week number of the current year as a decimal number (range @code{00} + through @code{53}), starting with the first Sunday as the first day of +@@ -1698,7 +1649,7 @@ the first week. Days preceding the first Sunday in the year are + considered to be in week @code{00}. + + @item %V +-The @w{ISO 8601:1988} week number as a decimal number (range @code{01} ++The @w{ISO 8601} week number as a decimal number (range @code{01} + through @code{53}). ISO weeks start with Monday and end with Sunday. + Week @code{01} of a year is the first week which has the majority of its + days in that year; this is equivalent to the week containing the year's +@@ -1708,8 +1659,6 @@ The week before week @code{01} of a year is the last week (@code{52} or + @code{53}) of the previous year even if it contains days from the new + year. + +-This format was first standardized by POSIX.2-1992 and by @w{ISO C99}. +- + @item %w + The day of the week as a decimal number (range @code{0} through + @code{6}), Sunday being @code{0}. +@@ -1749,16 +1698,13 @@ extension, the formatting flags @code{_} or @code{-} may be used with + this conversion specifier; they affect how the year number is printed. + + @item %z +-@w{RFC 822}/@w{ISO 8601:1988} style numeric time zone (e.g., ++@w{RFC 5322}/@w{ISO 8601} style numeric time zone (e.g., + @code{-0600} or @code{+0100}), or nothing if no time zone is + determinable. + +-This format was first standardized by @w{ISO C99} and by POSIX.1-2001 +-but was previously available as a GNU extension. +- +-In the POSIX locale, a full @w{RFC 822} timestamp is generated by the format +-@w{@samp{"%a, %d %b %Y %H:%M:%S %z"}} (or the equivalent +-@w{@samp{"%a, %d %b %Y %T %z"}}). ++In the POSIX locale, a full @w{RFC 5322} timestamp is generated by the format ++@w{@t{"%a, %d %b %Y %H:%M:%S %z"}} (or the equivalent ++@w{@t{"%a, %d %b %Y %T %z"}}). + + @item %Z + The time zone abbreviation (empty if the time zone can't be determined). +@@ -1781,7 +1727,7 @@ format strings and certain locales the output really can be the empty + string and this cannot be discovered by testing the return value only. + E.g., in most locales the AM/PM time format is not supported (most of + the world uses the 24 hour time representation). In such locales +-@code{"%p"} will return the empty string, i.e., the return value is ++@t{"%p"} will return the empty string, i.e., the return value is + zero. To detect situations like this something similar to the following + code should be used: + +@@ -1798,16 +1744,22 @@ if (len == 0 && buf[0] != '\0') + If @var{s} is a null pointer, @code{strftime} does not actually write + anything, but instead returns the number of characters it would have written. + +-Calling @code{strftime} also sets the current time zone as if +-@code{tzset} were called; @code{strftime} uses this information +-instead of @var{brokentime}'s @code{tm_gmtoff} and @code{tm_zone} +-members. @xref{Time Zone Functions}. ++Calling @code{strftime} also sets the time zone state as if ++@code{tzset} were called. @xref{Time Zone State}. + + For an example of @code{strftime}, see @ref{Time Functions Example}. + @end deftypefun + ++@deftypefun size_t strftime_l (char *restrict @var{s}, size_t @var{size}, const char *restrict @var{template}, const struct tm *@var{brokentime}, locale_t @var{locale}) ++@standards{POSIX.1, time.h} ++@safety{@prelim{}@mtsafe{@mtsenv{} @mtslocale{}}@asunsafe{@asucorrupt{} @ascuheap{} @asulock{} @ascudlopen{}}@acunsafe{@acucorrupt{} @aculock{} @acsmem{} @acsfd{}}} ++The @code{strftime_l} function is equivalent to the @code{strftime} ++function except that it operates in @var{locale} rather than in ++the current locale. ++@end deftypefun ++ + @deftypefun size_t wcsftime (wchar_t *@var{s}, size_t @var{size}, const wchar_t *@var{template}, const struct tm *@var{brokentime}) +-@standards{ISO/Amend1, time.h} ++@standards{ISO, time.h} + @safety{@prelim{}@mtsafe{@mtsenv{} @mtslocale{}}@asunsafe{@asucorrupt{} @ascuheap{} @asulock{} @ascudlopen{}}@acunsafe{@acucorrupt{} @aculock{} @acsmem{} @acsfd{}}} + @c wcsftime @mtsenv @mtslocale @asucorrupt @ascuheap @asulock @ascudlopen @acucorrupt @aculock @acsmem @acsfd + @c wcsftime_l @mtsenv @mtslocale @asucorrupt @ascuheap @asulock @ascudlopen @acucorrupt @aculock @acsmem @acsfd +@@ -1877,6 +1829,114 @@ can be placed in the buffer @var{s} the return value is zero, with the + same problems indicated in the @code{strftime} documentation. + @end deftypefun + ++@deftypefun {Deprecated function} {char *} asctime (const struct tm *@var{brokentime}) ++@standards{ISO, time.h} ++@safety{@prelim{}@mtunsafe{@mtasurace{:asctime} @mtslocale{}}@asunsafe{}@acsafe{}} ++@c asctime @mtasurace:asctime @mtslocale ++@c Uses a static buffer. ++@c asctime_internal @mtslocale ++@c snprintf dup @mtslocale [no @acsuheap @acsmem] ++@c ab_day_name @mtslocale ++@c ab_month_name @mtslocale ++The @code{asctime} function converts the broken-down time value that ++@var{brokentime} points to into a string in a standard format: ++ ++@smallexample ++"Tue May 21 13:46:22 1991\n" ++@end smallexample ++ ++The abbreviations for the days of week are: @samp{Sun}, @samp{Mon}, ++@samp{Tue}, @samp{Wed}, @samp{Thu}, @samp{Fri}, and @samp{Sat}. ++ ++The abbreviations for the months are: @samp{Jan}, @samp{Feb}, ++@samp{Mar}, @samp{Apr}, @samp{May}, @samp{Jun}, @samp{Jul}, @samp{Aug}, ++@samp{Sep}, @samp{Oct}, @samp{Nov}, and @samp{Dec}. ++ ++Behavior is undefined if the calculated year would be less than 1000 ++or greater than 9999. ++ ++The return value points to a statically allocated string, which might be ++overwritten by subsequent calls to @code{asctime} or @code{ctime}. ++(No other library function overwrites the contents of this ++string.) ++ ++@strong{Portability note:} ++This obsolescent function is deprecated in C23. ++Programs should instead use @code{strftime} or even @code{sprintf}. ++@end deftypefun ++ ++@deftypefun {Deprecated function} {char *} asctime_r (const struct tm *@var{brokentime}, char *@var{buffer}) ++@standards{???, time.h} ++@safety{@prelim{}@mtsafe{@mtslocale{}}@assafe{}@acsafe{}} ++@c asctime_r @mtslocale ++@c asctime_internal dup @mtslocale ++This function is similar to @code{asctime} but instead of placing the ++result in a static buffer it writes the string in the buffer pointed to ++by the parameter @var{buffer}. This buffer should have room ++for at least 26 bytes, including the terminating null. ++Behavior is undefined if the calculated year would be less than 1000 ++or greater than 9999. ++ ++If no error occurred the function returns a pointer to the string the ++result was written into, i.e., it returns @var{buffer}. Otherwise ++it returns @code{NULL}. ++ ++@strong{Portability Note:} ++POSIX.1-2024 removed this obsolescent function. ++Programs should instead use @code{strftime} or even @code{sprintf}. ++@end deftypefun ++ ++@deftypefun {Deprecated function} {char *} ctime (const time_t *@var{time}) ++@standards{ISO, time.h} ++@safety{@prelim{}@mtunsafe{@mtasurace{:tmbuf} @mtasurace{:asctime} @mtsenv{} @mtslocale{}}@asunsafe{@ascuheap{} @asulock{}}@acunsafe{@aculock{} @acsmem{} @acsfd{}}} ++@c ctime @mtasurace:tmbuf @mtasurace:asctime @mtsenv @mtslocale @ascuheap @asulock @aculock @acsmem @acsfd ++@c localtime dup @mtasurace:tmbuf @mtsenv @mtslocale @ascuheap @asulock @aculock @acsmem @acsfd ++@c asctime dup @mtasurace:asctime @mtslocale ++The @code{ctime} function is similar to @code{asctime}, except that you ++specify the calendar time argument as a @code{time_t} simple time value ++rather than in broken-down local time format. It is equivalent to ++ ++@smallexample ++asctime (localtime (@var{time})) ++@end smallexample ++ ++Behavior is undefined if the calculated year would be less than 1000 ++or greater than 9999. ++ ++Calling @code{ctime} also sets the time zone state as if ++@code{tzset} were called. @xref{Time Zone State}. ++ ++@strong{Portability note:} ++This obsolescent function is deprecated in C23. ++Programs should instead use @code{strftime} or even @code{sprintf}. ++@end deftypefun ++ ++@deftypefun {Deprecated function} {char *} ctime_r (const time_t *@var{time}, char *@var{buffer}) ++@standards{???, time.h} ++@safety{@prelim{}@mtsafe{@mtsenv{} @mtslocale{}}@asunsafe{@ascuheap{} @asulock{}}@acunsafe{@aculock{} @acsmem{} @acsfd{}}} ++@c ctime_r @mtsenv @mtslocale @ascuheap @asulock @aculock @acsmem @acsfd ++@c localtime_r dup @mtsenv @mtslocale @ascuheap @asulock @aculock @acsmem @acsfd ++@c asctime_r dup @mtslocale ++This function is similar to @code{ctime}, but places the result in the ++string pointed to by @var{buffer}, and the time zone state is not ++necessarily set as if @code{tzset} were called. It is equivalent to: ++ ++@smallexample ++asctime_r (localtime_r (@var{time}, &(struct tm) @{0@}), @var{buffer}) ++@end smallexample ++ ++Behavior is undefined if the calculated year would be less than 1000 ++or greater than 9999. ++ ++If no error occurred the function returns a pointer to the string the ++result was written into, i.e., it returns @var{buffer}. Otherwise ++it returns @code{NULL}. ++ ++@strong{Portability Note:} ++POSIX.1-2024 removed this obsolescent function. ++Programs should instead use @code{strftime} or even @code{sprintf}. ++@end deftypefun ++ + @node Parsing Date and Time + @subsection Convert textual time and date information back + +@@ -1936,13 +1996,13 @@ structure @var{tp}. + + The input string could be generated by a @code{strftime} call or + obtained any other way. It does not need to be in a human-recognizable +-format; e.g. a date passed as @code{"02:1999:9"} is acceptable, even ++format; e.g. a date passed as @t{"02:1999:9"} is acceptable, even + though it is ambiguous without context. As long as the format string + @var{fmt} matches the input string the function will succeed. + + The user has to make sure, though, that the input can be parsed in a +-unambiguous way. The string @code{"1999112"} can be parsed using the +-format @code{"%Y%m%d"} as 1999-1-12, 1999-11-2, or even 19991-1-2. It ++unambiguous way. The string @t{"1999112"} can be parsed using the ++format @t{"%Y%m%d"} as 1999-1-12, 1999-11-2, or even 19991-1-2. It + is necessary to add appropriate separators to reliably get results. + + The format string consists of the same components as the format string +@@ -2076,7 +2136,7 @@ Same as @code{%M} but using the locale's alternative numeric symbols. + + @item %n + @itemx %t +-Matches any white space. ++Matches any whitespace. + + @item %p + @item %P +@@ -2100,7 +2160,8 @@ The hour and minute in decimal numbers using the format @code{%H:%M}. + @code{%R} is a GNU extension following a GNU extension to @code{strftime}. + + @item %s +-The number of seconds since the epoch, i.e., since 1970-01-01 00:00:00 UTC. ++The number of seconds since the POSIX Epoch, ++i.e., since 1970-01-01 00:00:00 UTC@. + Leap seconds are not counted unless leap second support is available. + + @code{%s} is a GNU extension following a GNU extension to @code{strftime}. +@@ -2140,7 +2201,7 @@ Leading zeroes are permitted but not required. + Same as @code{%U} but using the locale's alternative numeric symbols. + + @item %V +-The @w{ISO 8601:1988} week number as a decimal number (range @code{1} ++The @w{ISO 8601} week number as a decimal number (range @code{1} + through @code{53}). + + Leading zeroes are permitted but not required. +@@ -2214,7 +2275,7 @@ The year as a decimal number, using the Gregorian calendar. + The full alternative year representation. + + @item %z +-The offset from GMT in @w{ISO 8601}/RFC822 format. ++The offset from UTC in @w{ISO 8601}/@w{RFC 5322} format. + + @item %Z + The time zone abbreviation. +@@ -2227,7 +2288,7 @@ A literal @samp{%} character. + @end table + + All other characters in the format string must have a matching character +-in the input string. Exceptions are white spaces in the input string ++in the input string. Exceptions are whitespace characters in the input string + which can match zero or more whitespace characters in the format string. + + @strong{Portability Note:} The XPG standard advises applications to use +@@ -2235,10 +2296,10 @@ at least one whitespace character (as specified by @code{isspace}) or + other non-alphanumeric characters between any two conversion + specifications. @Theglibc{} does not have this limitation but + other libraries might have trouble parsing formats like +-@code{"%d%m%Y%H%M%S"}. ++@t{"%d%m%Y%H%M%S"}. + + The @code{strptime} function processes the input string from right to +-left. Each of the three possible input elements (white space, literal, ++left. Each of the three possible input elements (whitespace, literal, + or format) are handled one after the other. If the input cannot be + matched to the format string the function stops. The remainder of the + format and input strings are not processed. +@@ -2314,8 +2375,8 @@ The Unix standard defines another function for parsing date strings. + The interface is weird, but if the function happens to suit your + application it is just fine. It is problematic to use this function + in multi-threaded programs or libraries, since it returns a pointer to +-a static variable, and uses a global variable and global state (an +-environment variable). ++a static variable, and uses a global variable and global state based ++on an environment variable. + + @defvar getdate_err + @standards{Unix98, time.h} +@@ -2324,9 +2385,9 @@ unsuccessful call to @code{getdate}. Defined values are: + + @table @math + @item 1 +-The environment variable @code{DATEMSK} is not defined or null. ++The environment variable @env{DATEMSK} is not defined or null. + @item 2 +-The template file denoted by the @code{DATEMSK} environment variable ++The template file denoted by the @env{DATEMSK} environment variable + cannot be opened. + @item 3 + Information about the template file cannot retrieved. +@@ -2357,7 +2418,7 @@ string and the result is returned in a statically-allocated variable. + The details about how the string is processed are hidden from the user. + In fact, they can be outside the control of the program. Which formats + are recognized is controlled by the file named by the environment +-variable @code{DATEMSK}. This file should contain ++variable @env{DATEMSK}. This file should contain + lines of valid format strings which could be passed to @code{strptime}. + + The @code{getdate} function reads these format strings one after the +@@ -2374,7 +2435,7 @@ extensions to the @code{strptime} behavior: + @itemize @bullet + @item + If the @code{%Z} format is given the broken-down time is based on the +-current time of the timezone matched, not of the current timezone of the ++current time of the time zone matched, not of the current time zone of the + runtime environment. + + @emph{Note}: This is not implemented (currently). The problem is that +@@ -2453,7 +2514,7 @@ description above for a list of the possible error values. + + @emph{Warning:} The @code{getdate} function should @emph{never} be + used in SUID-programs. The reason is obvious: using the +-@code{DATEMSK} environment variable you can get the function to open ++@env{DATEMSK} environment variable you can get the function to open + any arbitrary file and chances are high that with some bogus input + (such as a binary file) the program will crash. + @end deftypefun +@@ -2502,71 +2563,174 @@ The warning against using @code{getdate} in SUID-programs applies to + @end deftypefun + + @node TZ Variable +-@subsection Specifying the Time Zone with @code{TZ} ++@subsection Specifying the Time Zone with @env{TZ} + + In POSIX systems, a user can specify the time zone by means of the +-@code{TZ} environment variable. For information about how to set ++@env{TZ} environment variable. For information about how to set + environment variables, see @ref{Environment Variables}. The functions + for accessing the time zone are declared in @file{time.h}. + @pindex time.h + @cindex time zone + +-You should not normally need to set @code{TZ}. If the system is ++You should not normally need to set @env{TZ}. If the system is + configured properly, the default time zone will be correct. You might +-set @code{TZ} if you are using a computer over a network from a ++set @env{TZ} if you are using a computer over a network from a + different time zone, and would like times reported to you in the time + zone local to you, rather than what is local to the computer. + +-In POSIX.1 systems the value of the @code{TZ} variable can be in one of +-three formats. With @theglibc{}, the most common format is the +-last one, which can specify a selection from a large database of time +-zone information for many regions of the world. The first two formats +-are used to describe the time zone information directly, which is both +-more cumbersome and less precise. But the POSIX.1 standard only +-specifies the details of the first two formats, so it is good to be +-familiar with them in case you come across a POSIX.1 system that doesn't +-support a time zone information database. ++The value of @env{TZ} can be in one of the following formats: + +-The first format is used when there is no Daylight Saving Time (or +-summer time) in the local time zone: ++@itemize ++@item ++The @dfn{geographical format} specifies a location that stands for ++the past and future time zones observed in that location. ++@xref{Geographical TZ}. ++Here are some examples: + + @smallexample +-@r{@var{std} @var{offset}} ++Asia/Tokyo ++America/New_York ++/usr/share/zoneinfo/America/Nuuk + @end smallexample + +-The @var{std} string specifies the time zone abbreviation. It must be +-three or more characters long and must not contain a leading colon, +-embedded digits, commas, nor plus and minus signs. There is no space ++@item ++The @dfn{proleptic format} represents a time zone that has always ++been and always will be the same offset from UTC, ++optionally with a simple daylight saving scheme that has always been ++(and always will be) used every year. ++@xref{Proleptic TZ}. ++Here are some examples: ++ ++@smallexample ++JST-9 ++EST+5EDT,M3.2.0/2,M11.1.0/2 ++<-02>+2<-01>,M3.5.0/-1,M10.5.0/0 ++@end smallexample ++ ++@item ++The @dfn{colon format} begins with @samp{:}. Here is an example. ++ ++@smallexample ++:/etc/localtime ++@end smallexample ++ ++@noindent ++Each operating system can interpret this format differently; ++in @theglibc{}, the @samp{:} is ignored and @var{characters} ++are treated as if they specified the geographical or proleptic format. ++ ++@item ++As an extension to POSIX, when the value of @env{TZ} is the empty string, ++@theglibc{} uses UTC. ++@end itemize ++ ++@pindex /etc/localtime ++@pindex localtime ++If the @env{TZ} environment variable does not have a value, the ++implementation chooses a time zone by default. In @theglibc{}, the ++default time zone is like the specification @samp{TZ=/etc/localtime} ++(or @samp{TZ=/usr/local/etc/localtime}, depending on how @theglibc{} ++was configured; @pxref{Installation}). Other C libraries use their own ++rule for choosing the default time zone, so there is little we can say ++about them. ++ ++@menu ++* Geographical TZ:: @env{TZ} settings like @samp{America/New_York}. ++* Proleptic TZ:: @env{TZ} settings like @samp{EST+5EDT,M3.2.0/2,M11.1.0/2}. ++@end menu ++ ++@node Geographical TZ ++@subsubsection Geographical Format for @env{TZ} ++ ++The geographical format names a time zone ruleset maintained by the ++@url{http://www.iana.org/time-zones, ++Time Zone Database} of time zone and daylight saving time ++information for most regions of the world. ++This public-domain database is maintained by a community of volunteers. ++@cindex time zone database ++@pindex /usr/share/zoneinfo ++@pindex zoneinfo ++ ++If the format's @var{characters} begin with @samp{/} ++it is an absolute file name; ++otherwise the library looks for the file ++@w{@file{/usr/share/zoneinfo/@var{characters}}}. The @file{zoneinfo} ++directory contains data files describing time zone rulesets in many ++different parts of the world. The names represent major cities, with ++subdirectories for geographical areas; for example, ++@file{America/New_York}, @file{Europe/London}, @file{Asia/Tokyo}. ++These data files are installed by the system administrator, who also ++sets @file{/etc/localtime} to point to the data file for the local time ++zone ruleset. ++ ++If the file corresponding to @var{characters} cannot be read or has ++invalid data, and @var{characters} are not in the proleptic format, ++then @theglibc{} silently defaults to UTC@. However, applications ++should not depend on this, as @env{TZ} formats may be extended in the ++future. ++ ++@node Proleptic TZ ++@subsubsection Proleptic Format for @env{TZ} ++ ++Although the proleptic format is cumbersome and inaccurate for old timestamps, ++POSIX.1-2017 and earlier specified details only for the proleptic format, ++and you may need to use it on small systems that lack a time zone ++information database. ++ ++The proleptic format is: ++ ++@smallexample ++@r{@var{std}@var{offset}[@var{dst}[@var{offset}][@t{,}@var{start}[@t{/}@var{time}]@t{,}@var{end}[@t{/}@var{time}]]]} ++@end smallexample ++ ++The @var{std} string specifies the time zone abbreviation, ++which must be at least three bytes long, ++and which can appear in unquoted or quoted form. ++The unquoted form can contain only ASCII alphabetic characters. ++The quoted form can also contain ASCII digits, @samp{+}, and @samp{-}; ++it is quoted by surrounding it by @samp{<} and @samp{>}, ++which are not part of the abbreviation. There is no space + character separating the time zone abbreviation from the @var{offset}, so these + restrictions are necessary to parse the specification correctly. + + The @var{offset} specifies the time value you must add to the local time +-to get a Coordinated Universal Time value. It has syntax like +-[@code{+}|@code{-}]@var{hh}[@code{:}@var{mm}[@code{:}@var{ss}]]. This +-is positive if the local time zone is west of the Prime Meridian and +-negative if it is east. The hour must be between @code{0} and +-@code{24}, and the minute and seconds between @code{0} and @code{59}. +- +-For example, here is how we would specify Eastern Standard Time, but +-without any Daylight Saving Time alternative: ++to get a UTC value. It has syntax like: + + @smallexample +-EST+5 ++[@t{+}|@t{-}]@var{hh}[@t{:}@var{mm}[@t{:}@var{ss}]] + @end smallexample + +-The second format is used when there is Daylight Saving Time: ++@noindent ++This ++is positive if the local time zone is west of the Prime Meridian and ++negative if it is east; this is opposite from the usual convention ++that positive time zone offsets are east of the Prime Meridian. ++The hour @var{hh} must be between 0 and 24 ++and may be a single digit, and the minutes @var{mm} and seconds ++@var{ss}, if present, must be between 0 and 59. ++ ++For example, to specify time in Panama, which is Eastern Standard Time ++without any daylight saving time alternative: + + @smallexample +-@r{@var{std} @var{offset} @var{dst} [@var{offset}]@code{,}@var{start}[@code{/}@var{time}]@code{,}@var{end}[@code{/}@var{time}]} ++EST+5 + @end smallexample + ++When daylight saving time is used, the proleptic format is more complicated. + The initial @var{std} and @var{offset} specify the standard time zone, as + described above. The @var{dst} string and @var{offset} are the abbreviation +-and offset for the corresponding Daylight Saving Time zone; if the ++and offset for the corresponding daylight saving time zone; if the + @var{offset} is omitted, it defaults to one hour ahead of standard time. + +-The remainder of the specification describes when Daylight Saving Time is +-in effect. The @var{start} field is when Daylight Saving Time goes into ++The remainder of the proleptic format, which starts with the first comma, ++describes when daylight saving time is in effect. This remainder is ++optional and if omitted, @theglibc{} defaults to the daylight saving ++rules that would be used if @env{TZ} had the value @t{"posixrules"}. ++However, other POSIX implementations default to different daylight ++saving rules, so portable @env{TZ} settings should not omit the ++remainder. ++ ++In the remainder, the @var{start} field is when daylight saving time goes into + effect and the @var{end} field is when the change is made back to standard + time. The following formats are recognized for these fields: + +@@ -2589,132 +2753,67 @@ between @code{1} and @code{12}. + @end table + + The @var{time} fields specify when, in the local time currently in +-effect, the change to the other time occurs. If omitted, the default is +-@code{02:00:00}. The hours part of the time fields can range from +-@minus{}167 through 167; this is an extension to POSIX.1, which allows +-only the range 0 through 24. +- +-Here are some example @code{TZ} values, including the appropriate +-Daylight Saving Time and its dates of applicability. In North +-American Eastern Standard Time (EST) and Eastern Daylight Time (EDT), ++effect, the change to the other time occurs. They have the same ++format as @var{offset} except the hours part can range from ++@minus{}167 through 167; for example, @code{-22:30} stands for 01:30 ++the previous day and @code{25:30} stands for 01:30 the next day. If ++omitted, @var{time} defaults to @code{02:00:00}. ++ ++Here are example @env{TZ} values with daylight saving time rules. ++ ++@table @samp ++@item EST+5EDT,M3.2.0/2,M11.1.0/2 ++In North American Eastern Standard Time (EST) and Eastern Daylight Time (EDT), + the normal offset from UTC is 5 hours; since this is +-west of the prime meridian, the sign is positive. Summer time begins on ++west of the Prime Meridian, the sign is positive. Summer time begins on + March's second Sunday at 2:00am, and ends on November's first Sunday + at 2:00am. + +-@smallexample +-EST+5EDT,M3.2.0/2,M11.1.0/2 +-@end smallexample +- ++@item IST-2IDT,M3.4.4/26,M10.5.0 + Israel Standard Time (IST) and Israel Daylight Time (IDT) are 2 hours + ahead of the prime meridian in winter, springing forward an hour on + March's fourth Thursday at 26:00 (i.e., 02:00 on the first Friday on or + after March 23), and falling back on October's last Sunday at 02:00. + +-@smallexample +-IST-2IDT,M3.4.4/26,M10.5.0 +-@end smallexample +- +-Western Argentina Summer Time (WARST) is 3 hours behind the prime +-meridian all year. There is a dummy fall-back transition on December +-31 at 25:00 daylight saving time (i.e., 24:00 standard time, +-equivalent to January 1 at 00:00 standard time), and a simultaneous +-spring-forward transition on January 1 at 00:00 standard time, so +-daylight saving time is in effect all year and the initial @code{WART} +-is a placeholder. ++@item IST-1GMT0,M10.5.0,M3.5.0/1 ++Irish Standard Time (IST) is 1 hour behind the Prime Meridian in ++summer, falling forward to Greenwich Mean Time (GMT, the Prime ++Meridian's time), on October's last Sunday at 00:00 and springing back ++on March's last Sunday at 01:00. This is an example of ``negative ++daylight saving''; here, daylight saving time is one hour west of ++standard time instead of the more usual one hour east. + +-@smallexample +-WART4WARST,J1/0,J365/25 +-@end smallexample +- +-Western Greenland Time (WGT) and Western Greenland Summer Time (WGST) +-are 3 hours behind UTC in the winter. Its clocks follow the European ++@item <-02>+2<-01>,M3.5.0/-1,M10.5.0/0 ++Most of Greenland is 2 hours behind UTC in winter. Clocks follow the European + Union rules of springing forward by one hour on March's last Sunday at +-01:00 UTC (@minus{}02:00 local time) and falling back on October's +-last Sunday at 01:00 UTC (@minus{}01:00 local time). +- +-@smallexample +-WGT3WGST,M3.5.0/-2,M10.5.0/-1 +-@end smallexample ++01:00 UTC (@minus{}01:00 local time) and falling back on October's ++last Sunday at 01:00 UTC (00:00 local time). ++The numeric abbreviations @samp{-02} and @samp{-01} stand ++for standard and daylight saving time, respectively. ++@end table + +-The schedule of Daylight Saving Time in any particular jurisdiction has ++The schedule of daylight saving time in any particular jurisdiction has + changed over the years. To be strictly correct, the conversion of dates + and times in the past should be based on the schedule that was in effect +-then. However, this format has no facilities to let you specify how the ++then. However, the proleptic format does not let you specify how the + schedule has changed from year to year. The most you can do is specify + one particular schedule---usually the present day schedule---and this is + used to convert any date, no matter when. For precise time zone +-specifications, it is best to use the time zone information database +-(see below). +- +-The third format looks like this: +- +-@smallexample +-:@var{characters} +-@end smallexample +- +-Each operating system interprets this format differently; in +-@theglibc{}, @var{characters} is the name of a file which describes the time +-zone. +- +-@pindex /etc/localtime +-@pindex localtime +-If the @code{TZ} environment variable does not have a value, the +-operation chooses a time zone by default. In @theglibc{}, the +-default time zone is like the specification @samp{TZ=:/etc/localtime} +-(or @samp{TZ=:/usr/local/etc/localtime}, depending on how @theglibc{} +-was configured; @pxref{Installation}). Other C libraries use their own +-rule for choosing the default time zone, so there is little we can say +-about them. +- +-@cindex time zone database +-@pindex /usr/share/zoneinfo +-@pindex zoneinfo +-If @var{characters} begins with a slash, it is an absolute file name; +-otherwise the library looks for the file +-@w{@file{/usr/share/zoneinfo/@var{characters}}}. The @file{zoneinfo} +-directory contains data files describing local time zones in many +-different parts of the world. The names represent major cities, with +-subdirectories for geographical areas; for example, +-@file{America/New_York}, @file{Europe/London}, @file{Asia/Hong_Kong}. +-These data files are installed by the system administrator, who also +-sets @file{/etc/localtime} to point to the data file for the local time +-zone. The files typically come from the @url{http://www.iana.org/time-zones, +-Time Zone Database} of time zone and daylight saving time +-information for most regions of the world, which is maintained by a +-community of volunteers and put in the public domain. +- +-@node Time Zone Functions +-@subsection Functions and Variables for Time Zones +- +-@deftypevar {char *} tzname [2] +-@standards{POSIX.1, time.h} +-The array @code{tzname} contains two strings, which are the standard +-abbreviations of the pair of time zones (standard and Daylight +-Saving) that the user has selected. @code{tzname[0]} abbreviates +-the standard time zone (for example, @code{"EST"}), and @code{tzname[1]} +-abbreviates the time zone when Daylight Saving Time is in use (for +-example, @code{"EDT"}). These correspond to the @var{std} and @var{dst} +-strings (respectively) from the @code{TZ} environment variable. If +-Daylight Saving Time is never used, @code{tzname[1]} is the empty string. +- +-The @code{tzname} array is initialized from the @code{TZ} environment +-variable whenever @code{tzset}, @code{ctime}, @code{strftime}, +-@code{mktime}, or @code{localtime} is called. If multiple abbreviations +-have been used (e.g. @code{"EWT"} and @code{"EDT"} for U.S. Eastern War +-Time and Eastern Daylight Time), the array contains the most recent +-abbreviation. +- +-The @code{tzname} array is required for POSIX.1 compatibility, but in +-GNU programs it is better to use the @code{tm_zone} member of the +-broken-down time structure, since @code{tm_zone} reports the correct +-abbreviation even when it is not the latest one. +- +-Though the strings are declared as @code{char *} the user must refrain +-from modifying these strings. Modifying the strings will almost certainly +-lead to trouble. +- +-@end deftypevar ++specifications, it is best to use the geographical format. ++@xref{Geographical TZ}. ++ ++@node Time Zone State ++@subsection State Variables for Time Zones ++ ++For compatibility with POSIX, @theglibc{} defines global state ++variables that depend on time zone rules specified by the @env{TZ} ++environment variable. However, these state variables are obsolescent ++and are planned to be removed in a future version of POSIX, ++and programs generally should avoid them because they are not ++thread-safe and their values are specified only when @env{TZ} uses the ++proleptic format. @xref{TZ Variable}. ++Programs should instead use the @code{tm_gmtoff} and ++@code{tm_zone} members of @code{struct tm}. @xref{Broken-down Time}. + + @deftypefun void tzset (void) + @standards{POSIX.1, time.h} +@@ -2723,34 +2822,64 @@ lead to trouble. + @c libc_lock_lock dup @asulock @aculock + @c tzset_internal dup @mtsenv @mtslocale @ascuheap @asulock @aculock @acsmem @acsfd + @c libc_lock_unlock dup @aculock +-The @code{tzset} function initializes the @code{tzname} variable from +-the value of the @code{TZ} environment variable. It is not usually +-necessary for your program to call this function, because it is called +-automatically when you use the other time conversion functions that +-depend on the time zone. ++The @code{tzset} function initializes the state variables from ++the value of the @env{TZ} environment variable. ++It is not usually necessary for your program to call this function, ++partly because your program should not use the state variables, ++and partly because this function is called automatically ++when you use the time conversion functions @code{localtime}, ++@code{mktime}, @code{strftime}, @code{strftime_l}, and ++@code{wcsftime}, or the deprecated function @code{ctime}. ++Behavior is undefined if one thread accesses any of these variables directly ++while another thread is calling @code{tzset} or any other function ++that is required or allowed to behave as if it called @code{tzset}. + @end deftypefun + +-The following variables are defined for compatibility with System V +-Unix. Like @code{tzname}, these variables are set by calling +-@code{tzset} or the other time conversion functions. ++@deftypevar {char *} tzname [2] ++@standards{POSIX.1, time.h} ++The array @code{tzname} contains two strings, which are ++abbreviations of time zones (standard and Daylight ++Saving) that the user has selected. @code{tzname[0]} abbreviates ++a standard time zone (for example, @t{"EST"}), and @code{tzname[1]} ++abbreviates a time zone when daylight saving time is in use (for ++example, @t{"EDT"}). These correspond to the @var{std} and @var{dst} ++strings (respectively) when the @env{TZ} environment variable ++uses the proleptic format. ++The string values are unspecified if @env{TZ} uses the geographical format, ++so it is generally better to use the broken-down time structure's ++@code{tm_zone} member instead. ++ ++In @theglibc{}, the strings have a storage lifetime that lasts indefinitely; ++on some other platforms, the lifetime lasts only until @env{TZ} is changed. ++ ++The @code{tzname} array is initialized by @code{tzset}. ++Though the strings are declared as @code{char *} ++the user must refrain from modifying them. ++Modifying the strings will almost certainly lead to trouble. ++ ++@end deftypevar + + @deftypevar {long int} timezone +-@standards{SVID, time.h} +-This contains the difference between UTC and the latest local standard +-time, in seconds west of UTC. For example, in the U.S. Eastern time ++@standards{POSIX.1, time.h} ++This contains the difference between UTC and local standard ++time, in seconds west of the Prime Meridian. ++For example, in the U.S. Eastern time + zone, the value is @code{5*60*60}. Unlike the @code{tm_gmtoff} member + of the broken-down time structure, this value is not adjusted for +-daylight saving, and its sign is reversed. In GNU programs it is better +-to use @code{tm_gmtoff}, since it contains the correct offset even when +-it is not the latest one. ++daylight saving, and its sign is reversed. ++The value is unspecified if @env{TZ} uses the geographical format, ++so it is generally better to use the broken-down time structure's ++@code{tm_gmtoff} member instead. + @end deftypevar + + @deftypevar int daylight +-@standards{SVID, time.h} +-This variable has a nonzero value if Daylight Saving Time rules apply. +-A nonzero value does not necessarily mean that Daylight Saving Time is +-now in effect; it means only that Daylight Saving Time is sometimes in +-effect. ++@standards{POSIX.1, time.h} ++ ++This variable is nonzero if daylight saving time rules apply. ++A nonzero value does not necessarily mean that daylight saving time is ++now in effect; it means only that daylight saving time is sometimes in effect. ++This variable has little or no practical use; ++it is present for POSIX compatibility. + @end deftypevar + + @node Time Functions Example +@@ -2766,9 +2895,9 @@ functions. + It produces output like this: + + @smallexample +-Wed Jul 31 13:02:36 1991 +-Today is Wednesday, July 31. +-The time is 01:02 PM. ++2024-06-09 13:50:06 ++Today is Sunday, June 09. ++The time is 01:50 PM. + @end smallexample + + +@@ -2957,7 +3086,7 @@ amount of delay involved. + + @strong{Portability Note:} The @code{setitimer} and @code{getitimer} + functions are derived from BSD Unix, while the @code{alarm} function is +-specified by the POSIX.1 standard. @code{setitimer} is more powerful than ++specified by POSIX@. @code{setitimer} is more powerful than + @code{alarm}, but @code{alarm} is more widely used. + + @node Sleeping +diff --git a/time/localtime.c b/time/localtime.c +index 327c8381da3b7656..6174b13671063068 100644 +--- a/time/localtime.c ++++ b/time/localtime.c +@@ -18,7 +18,10 @@ + + #include + +-/* The C Standard says that localtime and gmtime return the same pointer. */ ++/* C89 says that localtime and gmtime return the same pointer. ++ Although C99 and later relax this to let localtime and gmtime ++ return different pointers, POSIX and glibc currently follow C89's stricter ++ requirement even though this can cause naive programs to misbehave. */ + struct tm _tmbuf; + + diff --git a/SOURCES/glibc-RHEL-57585-4.patch b/SOURCES/glibc-RHEL-57585-4.patch new file mode 100644 index 0000000..17481cd --- /dev/null +++ b/SOURCES/glibc-RHEL-57585-4.patch @@ -0,0 +1,113 @@ +commit 83a1cc3bc3d28c97d1af6c0957b11fe39fd786d8 +Author: Carlos O'Donell +Date: Wed Oct 9 18:32:26 2024 -0400 + +Part of this patch got merged with glibc-RHEL-65356-2.patch however, +the documentation part got removed at the time. +This patch adds the missing documentation that got removed from +glibc-RHEL-65356-2.patch. + +--- 8< --- + + manual: Fix and test @deftypef* function formatting + + The manual contained several instances of incorrect formatting + that were correct texinfo but produced incorrectly rendered manuals + or incorrect behaviour from the tooling. + + The most important was incorrect quoting of function returns + by failing to use {} to quote the return. The impact of this + mistake means that 'info libc func' does not jump to the function + in question but instead to the introductory page under the assumption + that func doesn't exist. The function returns are now correctly + quoted. + + The second issue was the use of a category specifier with + @deftypefun which doesn't accept a category specifier. If a category + specifier is required then @deftypefn needs to be used. This is + corrected by changing the command to @deftypefn for such functions + that used {Deprecated function} as a category. + + The last issue is a missing space between the function name and the + arguments which results in odd function names like "epoll_wait(int" + instead of "epoll_wait". This also impacts the use of 'info libc' + and is corrected. + + We additionally remove ';' from the end of function arguments and + add an 'int' return type for dprintf. + + Lastly we add a new test check-deftype.sh which verifies the expected + formatting of @deftypefun, @deftypefunx, @deftypefn, and + @deftypefnx. The new test is also run as the summary file is + generated to ensure we don't generate incorrect results. + + The existing check-safety.sh is also run directly as a test to increase + coverage since the existing tests only ran on manual install. + + The new tests now run as part of the standard "make check" that + pre-commit CI runs and developers should run. + + No regressions on x86_64. + + HTML and PDF rendering reviewed and looks correct for all changes. + + Reviewed-by: H.J. Lu + +diff --git a/manual/time.texi b/manual/time.texi +index 39e1a7457e11e538..3e8a46a6bfe96e5d 100644 +--- a/manual/time.texi ++++ b/manual/time.texi +@@ -1829,7 +1829,7 @@ can be placed in the buffer @var{s} the return value is zero, with the + same problems indicated in the @code{strftime} documentation. + @end deftypefun + +-@deftypefun {Deprecated function} {char *} asctime (const struct tm *@var{brokentime}) ++@deftypefn {Deprecated function} {char *} asctime (const struct tm *@var{brokentime}) + @standards{ISO, time.h} + @safety{@prelim{}@mtunsafe{@mtasurace{:asctime} @mtslocale{}}@asunsafe{}@acsafe{}} + @c asctime @mtasurace:asctime @mtslocale +@@ -1863,9 +1863,9 @@ string.) + @strong{Portability note:} + This obsolescent function is deprecated in C23. + Programs should instead use @code{strftime} or even @code{sprintf}. +-@end deftypefun ++@end deftypefn + +-@deftypefun {Deprecated function} {char *} asctime_r (const struct tm *@var{brokentime}, char *@var{buffer}) ++@deftypefn {Deprecated function} {char *} asctime_r (const struct tm *@var{brokentime}, char *@var{buffer}) + @standards{???, time.h} + @safety{@prelim{}@mtsafe{@mtslocale{}}@assafe{}@acsafe{}} + @c asctime_r @mtslocale +@@ -1884,9 +1884,9 @@ it returns @code{NULL}. + @strong{Portability Note:} + POSIX.1-2024 removed this obsolescent function. + Programs should instead use @code{strftime} or even @code{sprintf}. +-@end deftypefun ++@end deftypefn + +-@deftypefun {Deprecated function} {char *} ctime (const time_t *@var{time}) ++@deftypefn {Deprecated function} {char *} ctime (const time_t *@var{time}) + @standards{ISO, time.h} + @safety{@prelim{}@mtunsafe{@mtasurace{:tmbuf} @mtasurace{:asctime} @mtsenv{} @mtslocale{}}@asunsafe{@ascuheap{} @asulock{}}@acunsafe{@aculock{} @acsmem{} @acsfd{}}} + @c ctime @mtasurace:tmbuf @mtasurace:asctime @mtsenv @mtslocale @ascuheap @asulock @aculock @acsmem @acsfd +@@ -1909,9 +1909,9 @@ Calling @code{ctime} also sets the time zone state as if + @strong{Portability note:} + This obsolescent function is deprecated in C23. + Programs should instead use @code{strftime} or even @code{sprintf}. +-@end deftypefun ++@end deftypefn + +-@deftypefun {Deprecated function} {char *} ctime_r (const time_t *@var{time}, char *@var{buffer}) ++@deftypefn {Deprecated function} {char *} ctime_r (const time_t *@var{time}, char *@var{buffer}) + @standards{???, time.h} + @safety{@prelim{}@mtsafe{@mtsenv{} @mtslocale{}}@asunsafe{@ascuheap{} @asulock{}}@acunsafe{@aculock{} @acsmem{} @acsfd{}}} + @c ctime_r @mtsenv @mtslocale @ascuheap @asulock @aculock @acsmem @acsfd +@@ -1935,7 +1935,7 @@ it returns @code{NULL}. + @strong{Portability Note:} + POSIX.1-2024 removed this obsolescent function. + Programs should instead use @code{strftime} or even @code{sprintf}. +-@end deftypefun ++@end deftypefn + + @node Parsing Date and Time + @subsection Convert textual time and date information back diff --git a/SOURCES/glibc-RHEL-57585-5.patch b/SOURCES/glibc-RHEL-57585-5.patch new file mode 100644 index 0000000..b531a3c --- /dev/null +++ b/SOURCES/glibc-RHEL-57585-5.patch @@ -0,0 +1,31 @@ +commit 1b29cb7b781ecf3f6dc4647c32861119bacbd5ef +Author: Tulio Magno Quites Machado Filho +Date: Tue Jan 28 15:31:01 2025 -0300 + + manual: Safety annotations for timespec_get and timespec_getres + + Add preliminary annotations that are consistent with clock_gettime and + clock_getres. + + Reviewed-by: Florian Weimer + +diff --git a/manual/time.texi b/manual/time.texi +index 3e8a46a6bfe96e5d..c0e645b15ce44788 100644 +--- a/manual/time.texi ++++ b/manual/time.texi +@@ -595,6 +595,7 @@ Systems may support more than just this @w{ISO C} clock. + + @deftypefun int timespec_get (struct timespec *@var{ts}, int @var{base}) + @standards{ISO, time.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} + Store into @code{*@var{ts}} the current time according to the @w{ISO + C} time @var{base}. + +@@ -603,6 +604,7 @@ The return value is @var{base} on success and @code{0} on failure. + + @deftypefun int timespec_getres (struct timespec *@var{res}, int @var{base}) + @standards{ISO, time.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} + If @var{ts} is non-null, store into @code{*@var{ts}} the resolution of + the time provided by @code{timespec_get} function for the @w{ISO C} + time @var{base}. diff --git a/SOURCES/glibc-RHEL-57587.patch b/SOURCES/glibc-RHEL-57587.patch new file mode 100644 index 0000000..8295e9f --- /dev/null +++ b/SOURCES/glibc-RHEL-57587.patch @@ -0,0 +1,65 @@ +commit f451a02a8c3c0bc6b41dac5e9e6ad49dd1c9529c +Author: Joseph Myers +Date: Mon May 12 14:56:07 2025 +0000 + + Document all CLOCK_* values + + The manual documents CLOCK_REALTIME and CLOCK_MONOTONIC but not other + CLOCK_* values. Add documentation of the POSIX clocks + CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID, along with a + reference to the Linux man pages for the semantics of the + Linux-specific clocks supported (as with some other functionality + coming direct from the Linux kernel where the man pages can be + considered the main documentation). + + Note: CLOCK_MONOTONIC_RAW, CLOCK_REALTIME_COARSE and + CLOCK_MONOTONIC_COARSE are also defined in the toplevel bits/time.h, + as used for Hurd. Nevertheless, I see no sign that the Hurd code in + glibc actually has any support for those clocks, so I think it is + correct to document them as Linux-specific (and to refer only to the + Linux man pages for their semantics). + + Reviewed-by: Carlos O'Donell + +diff --git a/manual/time.texi b/manual/time.texi +index c0e645b15ce44788..8e072c7e375a750e 100644 +--- a/manual/time.texi ++++ b/manual/time.texi +@@ -528,7 +528,36 @@ Therefore, @code{CLOCK_MONOTONIC} cannot be used to measure + absolute time, only elapsed time. + @end deftypevr + +-Systems may support more than just these two POSIX clocks. ++The following clocks are defined by POSIX, but may not be supported by ++all POSIX systems: ++ ++@deftypevr Macro clockid_t CLOCK_PROCESS_CPUTIME_ID ++@standards{POSIX.1, time.h} ++This POSIX clock measures the amount of CPU time used by the calling ++process. ++@end deftypevr ++ ++@deftypevr Macro clockid_t CLOCK_THREAD_CPUTIME_ID ++@standards{POSIX.1, time.h} ++This POSIX clock measures the amount of CPU time used by the calling ++thread. ++@end deftypevr ++ ++The following clocks are Linux extensions: ++ ++@deftypevr Macro clockid_t CLOCK_MONOTONIC_RAW ++@deftypevrx Macro clockid_t CLOCK_REALTIME_COARSE ++@deftypevrx Macro clockid_t CLOCK_MONOTONIC_COARSE ++@deftypevrx Macro clockid_t CLOCK_BOOTTIME ++@deftypevrx Macro clockid_t CLOCK_REALTIME_ALARM ++@deftypevrx Macro clockid_t CLOCK_BOOTTIME_ALARM ++@deftypevrx Macro clockid_t CLOCK_TAI ++@standards{Linux, time.h} ++For details of these clocks, see the manual page ++@manpageurl{clock_gettime,2}. ++@end deftypevr ++ ++Systems may support additional clocks beyond those listed here. + + @deftypefun int clock_gettime (clockid_t @var{clock}, struct timespec *@var{ts}) + @standards{POSIX.1, time.h} diff --git a/SOURCES/glibc-RHEL-57671-1.patch b/SOURCES/glibc-RHEL-57671-1.patch new file mode 100644 index 0000000..f5c66a8 --- /dev/null +++ b/SOURCES/glibc-RHEL-57671-1.patch @@ -0,0 +1,23 @@ +commit 9a743032cd59c59167bf615d8ab4acc96b2bf47e +Author: Maciej W. Rozycki +Date: Fri May 30 15:01:51 2025 +0100 + + manual: Fix invalid 'illegal' usage with 'nanosleep' + + The GNU Coding Standards demand that 'illegal' only be used to refer to + activities prohibited by law. Replace it with 'invalid' accordingly in + the description of the EINVAL error condition for 'nanosleep'. + +diff --git a/manual/time.texi b/manual/time.texi +index 8e072c7e375a750e..6b2d133f8e3080f3 100644 +--- a/manual/time.texi ++++ b/manual/time.texi +@@ -3212,7 +3212,7 @@ elapsed time. + + @item EINVAL + The nanosecond value in the @var{requested_time} parameter contains an +-illegal value. Either the value is negative or greater than or equal to ++invalid value. Either the value is negative or greater than or equal to + 1000 million. + @end table + diff --git a/SOURCES/glibc-RHEL-57671-2.patch b/SOURCES/glibc-RHEL-57671-2.patch new file mode 100644 index 0000000..ff06259 --- /dev/null +++ b/SOURCES/glibc-RHEL-57671-2.patch @@ -0,0 +1,121 @@ +commit 1a3d8f2201d4d613401ce5be9a283f4f28c43093 +Author: Arjun Shankar +Date: Fri May 30 02:09:50 2025 +0200 + + manual: Document clock_nanosleep + + Make minor clarifications in the documentation for 'nanosleep' and add + an entry for 'clock_nanosleep' as a generalized variant of the former + function that allows clock selection. + Reviewed-by: Maciej W. Rozycki + +diff --git a/manual/time.texi b/manual/time.texi +index 6b2d133f8e3080f3..2df54a1b28c72ffe 100644 +--- a/manual/time.texi ++++ b/manual/time.texi +@@ -3179,12 +3179,12 @@ On @gnusystems{}, it is safe to use @code{sleep} and @code{SIGALRM} in + the same program, because @code{sleep} does not work by means of + @code{SIGALRM}. + +-@deftypefun int nanosleep (const struct timespec *@var{requested_time}, struct timespec *@var{remaining}) ++@deftypefun int nanosleep (const struct timespec *@var{requested_time}, struct timespec *@var{remaining_time}) + @standards{POSIX.1, time.h} + @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} + @c On Linux, it's a syscall. On Mach, it calls gettimeofday and uses + @c ports. +-If resolution to seconds is not enough the @code{nanosleep} function can ++If resolution to seconds is not enough, the @code{nanosleep} function can + be used. As the name suggests the sleep interval can be specified in + nanoseconds. The actual elapsed time of the sleep interval might be + longer since the system rounds the elapsed time you request up to the +@@ -3193,21 +3193,22 @@ next integer multiple of the actual resolution the system can deliver. + @code{*@var{requested_time}} is the elapsed time of the interval you + want to sleep. + +-The function returns as @code{*@var{remaining}} the elapsed time left +-in the interval for which you requested to sleep. If the interval +-completed without getting interrupted by a signal, this is zero. ++If @var{remaining_time} is not the null pointer, the function returns as ++@code{*@var{remaining_time}} the elapsed time left in the interval for which ++you requested to sleep. If the interval completed without getting ++interrupted by a signal, this is zero. + + @code{struct timespec} is described in @ref{Time Types}. + +-If the function returns because the interval is over the return value is +-zero. If the function returns @math{-1} the global variable @code{errno} ++If the function returns because the interval is over, the return value is ++zero. If the function returns @math{-1}, the global variable @code{errno} + is set to the following values: + + @table @code + @item EINTR + The call was interrupted because a signal was delivered to the thread. +-If the @var{remaining} parameter is not the null pointer the structure +-pointed to by @var{remaining} is updated to contain the remaining ++If the @var{remaining_time} parameter is not the null pointer, the structure ++pointed to by @var{remaining_time} is updated to contain the remaining + elapsed time. + + @item EINVAL +@@ -3219,10 +3220,58 @@ invalid value. Either the value is negative or greater than or equal to + This function is a cancellation point in multi-threaded programs. This + is a problem if the thread allocates some resources (like memory, file + descriptors, semaphores or whatever) at the time @code{nanosleep} is +-called. If the thread gets canceled these resources stay allocated +-until the program ends. To avoid this calls to @code{nanosleep} should ++called. If the thread gets canceled, these resources stay allocated ++until the program ends. To avoid this, calls to @code{nanosleep} should + be protected using cancellation handlers. + @c ref pthread_cleanup_push / pthread_cleanup_pop + + The @code{nanosleep} function is declared in @file{time.h}. + @end deftypefun ++ ++@deftypefun int clock_nanosleep (clockid_t @var{clock}, int @var{flags}, const struct timespec *@var{requested_time}, struct timespec *@var{remaining_time}) ++@standards{POSIX.1-2001, time.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++This function is a generalized variant of @code{nanosleep}, providing the ++caller with a way to specify the clock to be used to measure elapsed time ++and express the sleep interval in absolute or relative terms. The call: ++ ++@smallexample ++nanosleep (@var{requested_time}, @var{remaining_time}) ++@end smallexample ++ ++is equivalent to: ++ ++@smallexample ++clock_nanosleep (CLOCK_REALTIME, 0, @var{requested_time}, @var{remaining_time}) ++@end smallexample ++ ++The @var{clock} argument specifies the clock to use. ++@xref{Getting the Time}, for the @code{clockid_t} type and possible values ++of @var{clock}. Not all clocks listed are supported for use with ++@code{clock_nanosleep}. For details, see the manual page ++@manpageurl{clock_nanosleep,2}. ++ ++The @var{flags} argument is either @code{0} or @code{TIMER_ABSTIME}. If ++@var{flags} is @code{0}, then @code{clock_nanosleep} interprets ++@var{requested_time} as an interval relative to the current time specified ++by @var{clock}. If it is @code{TIMER_ABSTIME} instead, @var{requested_time} ++specifies an absolute time measured by @var{clock}; if at the time of the ++call the value requested is less than or equal to the clock specified, then ++the function returns right away. When @var{flags} is @code{TIMER_ABSTIME}, ++@var{remaining_time} is not updated. ++ ++The return values and error conditions for @code{clock_nanosleep} are the ++same as for @code{nanosleep}, with the following conditions additionally ++defined: ++ ++@table @code ++@item EINVAL ++The @var{clock} argument is not a valid clock. ++ ++@item EOPNOTSUPP ++The @var{clock} argument is not supported by the kernel for ++@code{clock_nanosleep}. ++@end table ++ ++The @code{clock_nanosleep} function is declared in @file{time.h}. ++@end deftypefun diff --git a/SOURCES/glibc-RHEL-57671-3.patch b/SOURCES/glibc-RHEL-57671-3.patch new file mode 100644 index 0000000..e833d69 --- /dev/null +++ b/SOURCES/glibc-RHEL-57671-3.patch @@ -0,0 +1,74 @@ +commit 591283a68965fe61a7186c9c81f7812e71b282b4 +Author: Arjun Shankar +Date: Mon Jun 2 10:41:02 2025 +0200 + + manual: Correct return value description of 'clock_nanosleep' + + Commit 1a3d8f2201d4d613401ce5be9a283f4f28c43093 incorrectly described + 'clock_nanosleep' as having the same return values as 'nanosleep'. Fix + this, clarifying that 'clock_nanosleep' returns a positive error number + upon failure instead of setting 'errno'. Also clarify that 'nanosleep' + returns '-1' upon error. + + Fixes: 1a3d8f2201d4d613401ce5be9a283f4f28c43093 + Reported-by: Mark Harris + Reviewed-by: Mark Harris + +diff --git a/manual/time.texi b/manual/time.texi +index 2df54a1b28c72ffe..2db0cf0bd8167161 100644 +--- a/manual/time.texi ++++ b/manual/time.texi +@@ -3200,9 +3200,9 @@ interrupted by a signal, this is zero. + + @code{struct timespec} is described in @ref{Time Types}. + +-If the function returns because the interval is over, the return value is +-zero. If the function returns @math{-1}, the global variable @code{errno} +-is set to the following values: ++If the function returns because the interval is over, it returns zero. ++Otherwise it returns @math{-1} and sets the global variable @code{errno} to ++one of the following values: + + @table @code + @item EINTR +@@ -3231,19 +3231,14 @@ The @code{nanosleep} function is declared in @file{time.h}. + @deftypefun int clock_nanosleep (clockid_t @var{clock}, int @var{flags}, const struct timespec *@var{requested_time}, struct timespec *@var{remaining_time}) + @standards{POSIX.1-2001, time.h} + @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +-This function is a generalized variant of @code{nanosleep}, providing the +-caller with a way to specify the clock to be used to measure elapsed time +-and express the sleep interval in absolute or relative terms. The call: +- +-@smallexample +-nanosleep (@var{requested_time}, @var{remaining_time}) +-@end smallexample +- +-is equivalent to: +- +-@smallexample +-clock_nanosleep (CLOCK_REALTIME, 0, @var{requested_time}, @var{remaining_time}) +-@end smallexample ++This function is similar to @code{nanosleep} while additionally providing ++the caller with a way to specify the clock to be used to measure elapsed ++time and express the sleep interval in absolute or relative terms. It ++returns zero when returning because the interval is over, and a positive ++error number corresponding to the error encountered otherwise. This is ++different from @code{nanosleep}, which returns @math{-1} upon failure and ++sets the global variable @code{errno} according to the error encountered ++instead. + + The @var{clock} argument specifies the clock to use. + @xref{Getting the Time}, for the @code{clockid_t} type and possible values +@@ -3260,9 +3255,9 @@ call the value requested is less than or equal to the clock specified, then + the function returns right away. When @var{flags} is @code{TIMER_ABSTIME}, + @var{remaining_time} is not updated. + +-The return values and error conditions for @code{clock_nanosleep} are the +-same as for @code{nanosleep}, with the following conditions additionally +-defined: ++The @code{clock_nanosleep} function returns error codes as positive return ++values. The error conditions for @code{clock_nanosleep} are the same as for ++@code{nanosleep}, with the following conditions additionally defined: + + @table @code + @item EINVAL diff --git a/SOURCES/glibc-RHEL-59712-1.patch b/SOURCES/glibc-RHEL-59712-1.patch new file mode 100644 index 0000000..d40d0e8 --- /dev/null +++ b/SOURCES/glibc-RHEL-59712-1.patch @@ -0,0 +1,193 @@ +commit 9f0d2c0ee6c728643fcf9a4879e9f20f5e45ce5f +Author: Arjun Shankar +Date: Fri Oct 18 16:03:25 2024 +0200 + + libio: Fix a deadlock after fork in popen + + popen modifies its file handler book-keeping under a lock that wasn't + being taken during fork. This meant that a concurrent popen and fork + could end up copying the lock in a "locked" state into the fork child, + where subsequently calling popen would lead to a deadlock due to the + already (spuriously) held lock. + + This commit fixes the deadlock by appropriately taking the lock before + fork, and releasing/resetting it in the parent/child after the fork. + + A new test for concurrent popen and fork is also added. It consistently + hangs (and therefore fails via timeout) without the fix applied. + Reviewed-by: Florian Weimer + +diff --git a/libio/Makefile b/libio/Makefile +index ae704d8767..018c26d971 100644 +--- a/libio/Makefile ++++ b/libio/Makefile +@@ -119,6 +119,7 @@ tests = \ + tst-mmap-offend \ + tst-mmap-setvbuf \ + tst-mmap2-eofsync \ ++ tst-popen-fork \ + tst-popen1 \ + tst-setvbuf1 \ + tst-sprintf-chk-ub \ +diff --git a/libio/iopopen.c b/libio/iopopen.c +index d01cb0648e..352513a291 100644 +--- a/libio/iopopen.c ++++ b/libio/iopopen.c +@@ -57,6 +57,26 @@ unlock (void *not_used) + } + #endif + ++/* These lock/unlock/resetlock functions are used during fork. */ ++ ++void ++_IO_proc_file_chain_lock (void) ++{ ++ _IO_lock_lock (proc_file_chain_lock); ++} ++ ++void ++_IO_proc_file_chain_unlock (void) ++{ ++ _IO_lock_unlock (proc_file_chain_lock); ++} ++ ++void ++_IO_proc_file_chain_resetlock (void) ++{ ++ _IO_lock_init (proc_file_chain_lock); ++} ++ + /* POSIX states popen shall ensure that any streams from previous popen() + calls that remain open in the parent process should be closed in the new + child process. +diff --git a/libio/libioP.h b/libio/libioP.h +index 616253fcd0..a83a411fdf 100644 +--- a/libio/libioP.h ++++ b/libio/libioP.h +@@ -429,6 +429,12 @@ libc_hidden_proto (_IO_list_resetlock) + extern void _IO_enable_locks (void) __THROW; + libc_hidden_proto (_IO_enable_locks) + ++/* Functions for operating popen's proc_file_chain_lock during fork. */ ++ ++extern void _IO_proc_file_chain_lock (void) __THROW attribute_hidden; ++extern void _IO_proc_file_chain_unlock (void) __THROW attribute_hidden; ++extern void _IO_proc_file_chain_resetlock (void) __THROW attribute_hidden; ++ + /* Default jumptable functions. */ + + extern int _IO_default_underflow (FILE *) __THROW; +diff --git a/libio/tst-popen-fork.c b/libio/tst-popen-fork.c +new file mode 100644 +index 0000000000..1df30fc6c0 +--- /dev/null ++++ b/libio/tst-popen-fork.c +@@ -0,0 +1,80 @@ ++/* Test concurrent popen and fork. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++static void ++popen_and_pclose (void) ++{ ++ FILE *f = popen ("true", "r"); ++ TEST_VERIFY_EXIT (f != NULL); ++ pclose (f); ++ return; ++} ++ ++static atomic_bool done = ATOMIC_VAR_INIT (0); ++ ++static void * ++popen_and_pclose_forever (__attribute__ ((unused)) ++ void *arg) ++{ ++ while (!atomic_load_explicit (&done, memory_order_acquire)) ++ popen_and_pclose (); ++ return NULL; ++} ++ ++static int ++do_test (void) ++{ ++ ++ /* Repeatedly call popen in a loop during the entire test. */ ++ pthread_t t = xpthread_create (NULL, popen_and_pclose_forever, NULL); ++ ++ /* Repeatedly fork off and reap child processes one-by-one. ++ Each child calls popen once, then exits, leading to the possibility ++ that a child forks *during* our own popen call, thus inheriting any ++ intermediate popen state, possibly including lock state(s). */ ++ for (int i = 0; i < 100; i++) ++ { ++ int cpid = xfork (); ++ ++ if (cpid == 0) ++ { ++ popen_and_pclose (); ++ _exit (0); ++ } ++ else ++ xwaitpid (cpid, NULL, 0); ++ } ++ ++ /* Stop calling popen. */ ++ atomic_store_explicit (&done, 1, memory_order_release); ++ xpthread_join (t); ++ ++ return 0; ++} ++ ++#include +diff --git a/posix/fork.c b/posix/fork.c +index c2b476ff2d..bd6371a9f4 100644 +--- a/posix/fork.c ++++ b/posix/fork.c +@@ -62,6 +62,7 @@ __libc_fork (void) + call_function_static_weak (__nss_database_fork_prepare_parent, + &nss_database_data); + ++ _IO_proc_file_chain_lock (); + _IO_list_lock (); + + /* Acquire malloc locks. This needs to come last because fork +@@ -94,6 +95,7 @@ __libc_fork (void) + + /* Reset locks in the I/O code. */ + _IO_list_resetlock (); ++ _IO_proc_file_chain_resetlock (); + + call_function_static_weak (__nss_database_fork_subprocess, + &nss_database_data); +@@ -123,6 +125,7 @@ __libc_fork (void) + + /* We execute this even if the 'fork' call failed. */ + _IO_list_unlock (); ++ _IO_proc_file_chain_unlock (); + } + + /* Run the handlers registered for the parent. */ diff --git a/SOURCES/glibc-RHEL-59712-2.patch b/SOURCES/glibc-RHEL-59712-2.patch new file mode 100644 index 0000000..e710a2f --- /dev/null +++ b/SOURCES/glibc-RHEL-59712-2.patch @@ -0,0 +1,26 @@ +commit 6a290b2895b77be839fcb7c44a6a9879560097ad +Author: Arjun Shankar +Date: Fri Oct 25 09:33:45 2024 +0200 + + libio: Correctly link tst-popen-fork against libpthread + + tst-popen-fork failed to build for Hurd due to not being linked with + libpthread. This commit fixes that. + + Tested with build-many-glibcs.py for i686-gnu. + + Reviewed-by: Florian Weimer + +diff --git a/libio/Makefile b/libio/Makefile +index 018c26d971..cd5a3afeeb 100644 +--- a/libio/Makefile ++++ b/libio/Makefile +@@ -144,6 +144,8 @@ tests = \ + tst_wscanf \ + # tests + ++$(objpfx)tst-popen-fork: $(shared-thread-library) ++ + tests-internal = tst-vtables tst-vtables-interposed + + ifeq (yes,$(build-shared)) diff --git a/SOURCES/glibc-RHEL-61558-1.patch b/SOURCES/glibc-RHEL-61558-1.patch new file mode 100644 index 0000000..2055a04 --- /dev/null +++ b/SOURCES/glibc-RHEL-61558-1.patch @@ -0,0 +1,237 @@ +From 21e54f160f6245f959cca1f48bad9cca487c2570 Mon Sep 17 00:00:00 2001 +From: DJ Delorie +Date: Thu, 24 Apr 2025 18:03:21 -0400 +Subject: [PATCH] manual: add remaining CPU_* macros +Content-type: text/plain; charset=UTF-8 + +Adds remaining CPU_* macros, including the CPU_*_S macros +for dynamic-sized cpu sets. + +Reviewed-by: Collin Funk +--- + manual/resource.texi | 177 ++++++++++++++++++++++++++++++++++++++++--- + 1 file changed, 168 insertions(+), 9 deletions(-) + +diff --git a/manual/resource.texi b/manual/resource.texi +index a895021870..a9b4b68e2f 100644 +--- a/manual/resource.texi ++++ b/manual/resource.texi +@@ -1362,26 +1362,73 @@ extent the Linux kernel interface. + @standards{GNU, sched.h} + This data set is a bitset where each bit represents a CPU. How the + system's CPUs are mapped to bits in the bitset is system dependent. +-The data type has a fixed size; in the unlikely case that the number +-of bits are not sufficient to describe the CPUs of the system a +-different interface has to be used. ++The data type has a fixed size; it is strongly recommended to allocate ++a dynamically sized set based on the actual number of CPUs detected, ++such as via @code{get_nprocs_conf()}, and use the @code{CPU_*_S} ++variants instead of the fixed-size ones. + + This type is a GNU extension and is defined in @file{sched.h}. + @end deftp + +-To manipulate the bitset, to set and reset bits, a number of macros are +-defined. Some of the macros take a CPU number as a parameter. Here +-it is important to never exceed the size of the bitset. The following +-macro specifies the number of bits in the @code{cpu_set_t} bitset. ++To manipulate the bitset, to set and reset bits, and thus add and ++remove CPUs from the sets, a number of macros are defined. Some of ++the macros take a CPU number as a parameter. Here it is important to ++never exceed the size of the bitset, either @code{CPU_SETSIZE} for ++fixed sets or the allocated size for dynamic sets. For each macro ++there is a fixed-size version (documented below) and a dynamic-sized ++version (with a @code{_S} suffix). + + @deftypevr Macro int CPU_SETSIZE + @standards{GNU, sched.h} + The value of this macro is the maximum number of CPUs which can be +-handled with a @code{cpu_set_t} object. ++handled with a fixed @code{cpu_set_t} object. + @end deftypevr + ++For applications that require CPU sets larger than the built-in size, ++a set of macros that support dynamically-sized sets are defined. ++ ++@deftypefn Macro size_t CPU_ALLOC_SIZE (size_t @var{count}) ++@standards{GNU, sched.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++@c CPU_ALLOC_SIZE ok ++@c __CPU_ALLOC_SIZE ok ++Given a count of CPUs to hold, returns the size of the set to ++allocate. This return value is appropriate to be used in the *_S macros. ++ ++This macro is a GNU extension and is defined in @file{sched.h}. ++@end deftypefn ++ ++@deftypefn Macro {cpu_set_t *} CPU_ALLOC (size_t @var{count}) ++@standards{GNU, sched.h} ++@safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{} @acsfd{} @acsmem{}}} ++@c CPU_ALLOC ++@c __CPU_ALLOC ++@c __sched_cpualloc ++@c malloc ++Given the count of CPUs to hold, returns a set large enough to hold ++them; that is, the resulting set will be valid for CPUs numbered 0 ++through @var{count}-1, inclusive. This set must be freed via ++@code{CPU_FREE} to avoid memory leaks. Warning: the argument is the ++CPU @emph{count} and not the size returned by @code{CPU_ALLOC_SIZE}. ++ ++This macro is a GNU extension and is defined in @file{sched.h}. ++@end deftypefn ++ ++@deftypefn Macro void CPU_FREE (cpu_set_t *@var{set}) ++@standards{GNU, sched.h} ++@safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{} @acsfd{} @acsmem{}}} ++@c CPU_FREE ++@c __CPU_FREE ++@c __sched_cpufree ++@c free ++Frees a CPU set previously allocated by @code{CPU_ALLOC}. ++ ++This macro is a GNU extension and is defined in @file{sched.h}. ++@end deftypefn ++ + The type @code{cpu_set_t} should be considered opaque; all +-manipulation should happen via the next four macros. ++manipulation should happen via the @code{CPU_*} macros described ++below. + + @deftypefn Macro void CPU_ZERO (cpu_set_t *@var{set}) + @standards{GNU, sched.h} +@@ -1424,6 +1471,39 @@ evaluated more than once. + This macro is a GNU extension and is defined in @file{sched.h}. + @end deftypefn + ++@deftypefn Macro {cpu_set_t *} CPU_AND (cpu_set_t *@var{dest}, cpu_set_t *@var{src1}, cpu_set_t *@var{src2}) ++@standards{GNU, sched.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++@c CPU_AND ok ++@c __CPU_OP_S ok ++This macro populates @var{dest} with only those CPUs included in both ++@var{src1} and @var{src2}. Its value is @var{dest}. ++ ++This macro is a GNU extension and is defined in @file{sched.h}. ++@end deftypefn ++ ++@deftypefn Macro {cpu_set_t *} CPU_OR (cpu_set_t *@var{dest}, cpu_set_t *@var{src1}, cpu_set_t *@var{src2}) ++@standards{GNU, sched.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++@c CPU_OR ok ++@c __CPU_OP_S ok ++This macro populates @var{dest} with those CPUs included in either ++@var{src1} or @var{src2}. Its value is @var{dest}. ++ ++This macro is a GNU extension and is defined in @file{sched.h}. ++@end deftypefn ++ ++@deftypefn Macro {cpu_set_t *} CPU_XOR (cpu_set_t *@var{dest}, cpu_set_t *@var{src1}, cpu_set_t *@var{src2}) ++@standards{GNU, sched.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++@c CPU_XOR ok ++@c __CPU_OP_S ok ++This macro populates @var{dest} with those CPUs included in either ++@var{src1} or @var{src2}, but not both. Its value is @var{dest}. ++ ++This macro is a GNU extension and is defined in @file{sched.h}. ++@end deftypefn ++ + @deftypefn Macro int CPU_ISSET (int @var{cpu}, const cpu_set_t *@var{set}) + @standards{GNU, sched.h} + @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +@@ -1440,6 +1520,54 @@ evaluated more than once. + This macro is a GNU extension and is defined in @file{sched.h}. + @end deftypefn + ++@deftypefn Macro int CPU_COUNT (const cpu_set_t *@var{set}) ++@standards{GNU, sched.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++@c CPU_COUNT ok ++@c __CPU_COUNT_S ok ++@c __sched_cpucount ok ++@c countbits ok ++This macro returns the count of CPUs (bits) set in @var{set}. ++ ++This macro is a GNU extension and is defined in @file{sched.h}. ++@end deftypefn ++ ++@deftypefn Macro int CPU_EQUAL (cpu_set_t *@var{src1}, cpu_set_t *@var{src2}) ++@standards{GNU, sched.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++@c CPU_EQUAL ok ++@c __CPU_EQUAL_S ok ++@c memcmp ok ++This macro returns nonzero if the two sets @var{set1} and @var{set2} ++have the same contents; that is, the set of CPUs represented by both ++sets is identical. ++ ++This macro is a GNU extension and is defined in @file{sched.h}. ++@end deftypefn ++ ++@deftypefn Macro void CPU_ZERO_S (size_t @var{size}, cpu_set_t *@var{set}) ++@end deftypefn ++@deftypefn Macro void CPU_SET_S (int @var{cpu}, size_t @var{size}, cpu_set_t *@var{set}) ++@end deftypefn ++@deftypefn Macro void CPU_CLR_S (int @var{cpu}, size_t @var{size}, cpu_set_t *@var{set}) ++@end deftypefn ++@deftypefn Macro {cpu_set_t *} CPU_AND_S (size_t @var{size}, cpu_set_t *@var{dest}, cpu_set_t *@var{src1}, cpu_set_t *@var{src2}) ++@end deftypefn ++@deftypefn Macro {cpu_set_t *} CPU_OR_S (size_t @var{size}, cpu_set_t *@var{dest}, cpu_set_t *@var{src1}, cpu_set_t *@var{src2}) ++@end deftypefn ++@deftypefn Macro {cpu_set_t *} CPU_XOR_S (size_t @var{size}, cpu_set_t *@var{dest}, cpu_set_t *@var{src1}, cpu_set_t *@var{src2}) ++@end deftypefn ++@deftypefn Macro int CPU_ISSET_S (int @var{cpu}, size_t @var{size}, const cpu_set_t *@var{set}) ++@end deftypefn ++@deftypefn Macro int CPU_COUNT_S (size_t @var{size}, const cpu_set_t *@var{set}) ++@end deftypefn ++@deftypefn Macro int CPU_EQUAL_S (size_t @var{size}, cpu_set_t *@var{src1}, cpu_set_t *@var{src2}) ++@end deftypefn ++ ++Each of these macros performs the same action as its non-@code{_S} variant, ++but takes a @var{size} argument to specify the set size. This ++@var{size} argument is as returned by the @code{CPU_ALLOC_SIZE} macro, ++defined above. + + CPU bitsets can be constructed from scratch or the currently installed + affinity mask can be retrieved from the system. +@@ -1525,6 +1653,37 @@ The operating system does not support this function. + This function is Linux-specific and is declared in @file{sched.h}. + @end deftypefun + ++Here's an example of how to use most of the above to limit the number ++of CPUs a process runs on, not including error handling or good logic ++on CPU choices: ++ ++@example ++#define _GNU_SOURCE ++#include ++#include ++#include ++void ++limit_cpus (void) ++@{ ++ unsigned int mycpu; ++ size_t nproc, cssz, cpu; ++ cpu_set_t *cs; ++ getcpu (&mycpu, NULL); ++ nproc = get_nprocs_conf (); ++ cssz = CPU_ALLOC_SIZE (nproc); ++ cs = CPU_ALLOC (nproc); ++ sched_getaffinity (0, cssz, cs); ++ if (CPU_COUNT_S (cssz, cs) > nproc / 2) ++ @{ ++ for (cpu = nproc / 2; cpu < nproc; cpu ++) ++ if (cpu != mycpu) ++ CPU_CLR_S (cpu, cssz, cs); ++ sched_setaffinity (0, cssz, cs); ++ @} ++ CPU_FREE (cs); ++@} ++@end example ++ + @node Memory Resources + @section Querying memory available resources + +-- +2.43.5 + diff --git a/SOURCES/glibc-RHEL-61558-2.patch b/SOURCES/glibc-RHEL-61558-2.patch new file mode 100644 index 0000000..4661536 --- /dev/null +++ b/SOURCES/glibc-RHEL-61558-2.patch @@ -0,0 +1,465 @@ +From 3270c50e4853d9356eb5892364c52cd1558860ec Mon Sep 17 00:00:00 2001 +From: DJ Delorie +Date: Fri, 2 May 2025 20:51:18 -0400 +Subject: [PATCH] manual: add more pthread functions +Content-type: text/plain; charset=UTF-8 + +Add stubs and partial docs for many undocumented pthreads functions. +While neither exhaustive nor complete, gives minimal usage docs +for many functions and expands the pthreads chapters, making it +easier to continue improving this section in the future. + +Reviewed-by: Collin Funk +--- + +Conflicts + manual/threads.texi + rebased for context + + manual/threads.texi | 396 ++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 396 insertions(+) + +diff -rup a/manual/threads.texi b/manual/threads.texi +--- a/manual/threads.texi 2025-05-16 17:22:06.523156182 -0400 ++++ b/manual/threads.texi 2025-05-16 17:27:24.652130775 -0400 +@@ -552,14 +552,97 @@ get different values identified by the s + This section describes the @glibcadj{} POSIX Threads implementation. + + @menu ++* Creating and Destroying Threads:: + * Thread-specific Data:: Support for creating and + managing thread-specific data + * POSIX Semaphores:: Support for process and thread + synchronization using semaphores ++* POSIX Barriers:: Support for process and thread ++ synchronization using barriers ++* POSIX Spin Locks:: Support for process and thread ++ synchronization using spinlocks ++* POSIX Mutexes:: Support for mutual exclusion ++* POSIX Threads Other APIs:: Other Standard functions + * Non-POSIX Extensions:: Additional functions to extend + POSIX Thread functionality + @end menu + ++@node Creating and Destroying Threads ++@subsection Creating and Destroying Threads ++ ++@deftypefun int pthread_create (pthread_t *@var{newthread}, const pthread_attr_t *@var{attr}, void *(*@var{start_routine}) (void *), void *@var{arg}) ++This function creates a new thread with attributes @var{attr}. This ++thread will call @var{start_routine} and pass it @var{arg}. If ++@var{start_routine} returns, the thread will exit and the return value ++will become the thread's exit value. The new thread's ID is stored in ++@var{newthread}. Returns 0 on success. ++@manpagefunctionstub{pthread_create, 3} ++@end deftypefun ++ ++@deftypefun int pthread_detach (pthread_t @var{th}) ++Indicates that thread @var{th} must clean up after itself ++automatically when it exits, as the parent thread will not call ++@code{pthread_join} on it. ++@manpagefunctionstub{pthread_detach, 3} ++@end deftypefun ++ ++@deftypefun int pthread_join (pthread_t @var{th}, void **@var{thread_return}) ++Waits for thread @var{th} to exit, and stores its return value in ++@var{thread_return}. ++@manpagefunctionstub{pthread_join, 3} ++@end deftypefun ++ ++@deftypefun int pthread_kill (pthread_t @var{th}, int @var{signal}) ++Sends signal @var{signal} to thread @var{th}. ++@manpagefunctionstub{pthread_kill, 3} ++@end deftypefun ++ ++@deftypefun pthread_t pthread_self (void) ++Returns the ID of the thread which performed the call. ++@manpagefunctionstub{pthread_self, 3} ++@end deftypefun ++ ++Each thread has a set of attributes which are passed to ++@code{pthread_create} via the @code{pthread_attr_t} type, which should ++be considered an opaque type. ++ ++@deftypefun int pthread_attr_init (pthread_attr_t *@var{attr}) ++Initializes @var{attr} to its default values and allocates any ++resources required. Once initialized, @var{attr} can be modified by ++other @code{pthread_attr_*} functions, or used by ++@code{pthread_create}. ++@manpagefunctionstub{pthread_attr_init, 3} ++@end deftypefun ++ ++@deftypefun int pthread_attr_destroy (pthread_attr_t *@var{attr}) ++When no longer needed, @var{attr} should be destroyed with this ++function, which releases any resources allocated. Note that ++@var{attr} is only needed for the @code{pthread_create} call, not for ++the running thread itself. ++@manpagefunctionstub{pthread_attr_destroy, 3} ++@end deftypefun ++ ++@deftypefun int pthread_attr_setdetachstate (pthread_attr_t *@var{attr}, int @var{detachstate}) ++Sets the detach state attribute for @var{attr}. This attribute may be one of the following: ++ ++@table @code ++@item PTHREAD_CREATE_DETACHED ++Causes the created thread to be detached, that is, as if ++@code{pthread_detach} had been called on it. ++ ++@item PTHREAD_CREATE_JOINABLE ++Causes the created thread to be joinable, that is, @code{pthread_join} ++must be called on it. ++@end table ++ ++@manpagefunctionstub{pthread_attr_setdetachstate, 3} ++@end deftypefun ++ ++@deftypefun int pthread_attr_getdetachstate (const pthread_attr_t *@var{attr}, int *@var{detachstate}) ++Gets the detach state attribute from @var{attr}. ++@manpagefunctionstub{pthread_attr_getdetachstate, 3} ++@end deftypefun ++ + @node Thread-specific Data + @subsection Thread-specific Data + +@@ -718,6 +801,272 @@ against the clock specified by @var{cloc + @end deftypefun + + ++@node POSIX Barriers ++@subsection POSIX Barriers ++ ++A POSIX barrier works as follows: a file-local or global ++@code{pthread_barrier_t} object is initialized via ++@code{pthread_barrier_init} to require @var{count} threads to wait on ++it. After that, up to @var{count}-1 threads will wait on the barrier ++via @code{pthread_barrier_wait}. None of these calls will return ++until @var{count} threads are waiting via the next call to ++@code{pthread_barrier_wait}, at which point, all of these calls will ++return. The net result is that @var{count} threads will be ++synchronized at that point. At some point after this, the barrier is ++destroyed via @code{pthread_barrier_destroy}. Note that a barrier ++must be destroyed before being re-initialized, to ensure that all ++threads are properly synchronized, but need not be destroyed and ++re-initialized before being reused. ++ ++@deftypefun int pthread_barrier_init (pthread_barrier_t *@var{barrier}, const pthread_barrierattr_t *@var{attr}, unsigned int @var{count}) ++@standards{POSIX, pthread.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++ ++This function initializes a barrier to synchronize @var{count} ++threads. The barrier must be uninitialized or destroyed before it is ++initialized; attempting to initialize an in-use barrier results in ++undefined behavior. ++ ++The @var{attr} argument to @code{pthread_barrier_init} is typically ++NULL for a process-private barrier, but may be used to share a barrier ++across processes (documentation TBD). ++ ++On success, 0 is returned. On error, one of the following is returned: ++ ++@table @code ++@item EINVAL ++Either @var{count} is zero, or is large enough to cause an internal ++overflow. ++@end table ++ ++@end deftypefun ++ ++@deftypefun int pthread_barrier_wait (pthread_barrier_t *@var{barrier}) ++@standards{POSIX, pthread.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++ ++This function synchronizes threads. The first @var{count}-1 threads ++that wait on @var{barrier} will just wait. The next thread that waits ++on @var{barrier} will cause all @var{count} threads' calls to return. ++The @var{barrier} must be initialized with @code{pthread_barrier_init} ++and not yet destroyed with @code{pthread_barrier_destroy}. ++ ++The return value of this function is ++@code{PTHREAD_BARRIER_SERIAL_THREAD} for one thread (it is unspecified ++which thread) and 0 for the remainder, for each batch of @var{count} ++threads synchronized. After such a batch is synchronized, the ++@var{barrier} will begin synchronizing the next @var{count} threads. ++ ++@end deftypefun ++ ++ ++@deftypefun int pthread_barrier_destroy (pthread_barrier_t *@var{barrier}) ++@standards{POSIX, pthread.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++ ++Destroys @var{barrier} and releases any resources it may have ++allocated. A barrier must not be destroyed if any thread is waiting ++on it, or if it was not initialized. This call always succeeds and ++returns 0. ++ ++@end deftypefun ++ ++@node POSIX Spin Locks ++@subsection POSIX Spin Locks ++ ++A spinlock is a low overhead lock suitable for use in a realtime ++thread where it's known that the thread won't be paused by the ++scheduler. Non-realtime threads should use mutexes instead. ++ ++@deftypefun int pthread_spin_init (pthread_spinlock_t *@var{lock}, int @var{pshared}) ++Initializes a spinlock. @var{pshared} is one of: ++ ++@table @code ++@item PTHREAD_PROCESS_PRIVATE ++This spinlock is private to the process which created it. ++ ++@item PTHREAD_PROCESS_SHARED ++This spinlock is shared across any process that can access it, for ++example through shared memory. ++@end table ++ ++@manpagefunctionstub{pthread_spin_init, 3} ++@end deftypefun ++ ++@deftypefun int pthread_spin_destroy (pthread_spinlock_t *@var{lock}) ++Destroys a spinlock and releases any resources it held. ++@manpagefunctionstub{pthread_spin_destroy, 3} ++@end deftypefun ++ ++@deftypefun int pthread_spin_lock (pthread_spinlock_t *@var{lock}) ++Locks a spinlock. Only one thread at a time can lock a spinlock. If ++another thread has locked this spinlock, the calling thread waits ++until it is unlocked, then attempts to lock it. ++@manpagefunctionstub{pthread_spin_lock, 3} ++@end deftypefun ++ ++@deftypefun int pthread_spin_unlock (pthread_spinlock_t *@var{lock}) ++Unlocks a spinlock. If one or more threads are waiting for the lock ++to be unlocked, one of them (unspecified which) will succeed in ++locking it, and will return from @code{pthread_spin_lock}). ++@manpagefunctionstub{pthread_spin_unlock, 3} ++@end deftypefun ++ ++@deftypefun int pthread_spin_trylock (pthread_spinlock_t *@var{lock}) ++Like @code{pthread_spin_unlock} but returns 0 if the lock was ++unlocked, or EBUSY if it was locked. ++@manpagefunctionstub{pthread_spin_trylock, 3} ++@end deftypefun ++ ++@node POSIX Mutexes ++@subsection POSIX Mutexes ++ ++A @emph{mutex}, or ``mutual exclusion'', is a way of guaranteeing that ++only one thread at a time is able to execute a protected bit of code ++(or access any other resource). Two or more threads trying to execute ++the same code at the same time, will instead take turns, according to ++the mutex. ++ ++A mutex is much like a spinlock, but implemented in a way that is more ++appropriate for use in non-realtime threads, and is more ++resource-conserving. ++ ++@deftypefun int pthread_mutex_init (pthread_mutex_t *@var{mutex}, const pthread_mutexattr_t *@var{mutexattr}) ++Initiailizes a mutex. ++@manpagefunctionstub{pthread_mutex_init, 3} ++@end deftypefun ++ ++@deftypefun int pthread_mutex_destroy (pthread_mutex_t *@var{mutex}) ++Destroys a no-longer-needed mutex. ++@manpagefunctionstub{pthread_mutex_destroy, 3} ++@end deftypefun ++ ++@deftypefun int pthread_mutex_lock (pthread_mutex_t *@var{mutex}) ++Only one thread at a time may lock @var{mutex}, and must unlock it ++when appropriate. If a thread calls @code{pthread_mutex_lock} while ++@var{mutex} is locked by another thread, the calling thread will wait ++until @var{mutex} is unlocked, then attempt to lock it. Since there ++may be many threads waiting at the same time, the calling thread may ++need to repeat this wait-and-try many times before it successfully ++locks @var{mutex}, at which point the call to ++@code{pthread_mutex_locks} returns succesfully. ++ ++This function may fail with the following: ++ ++@table @code ++@item EAGAIN ++Too many locks were attempted. ++ ++@item EDEADLK ++The calling thread already holds a lock on @var{mutex}. ++ ++@item EINVAL ++@var{mutex} has an invalid kind, or an invalid priority was requested. ++ ++@item ENOTRECOVERABLE ++The thread holding the lock died in a way that the system cannot recover from. ++ ++@item EOWNERDEAD ++The thread holding the lock died in a way that the system can recover from. ++ ++@end table ++ ++@manpagefunctionstub{pthread_mutex_lock, 3} ++@end deftypefun ++ ++@deftypefun int pthread_mutex_trylock (pthread_mutex_t *@var{mutex}) ++Like @code{pthread_mutex_lock} but if the lock cannot be immediately ++obtained, returns EBUSY. ++@manpagefunctionstub{pthread_mutex_trylock, 3} ++@end deftypefun ++ ++@deftypefun int pthread_mutex_unlock (pthread_mutex_t *@var{mutex}) ++Unlocks @var{mutex}. Returns EPERM if the calling thread doesn't hold ++the lock on @var{mutex}. ++@manpagefunctionstub{pthread_mutex_unlock, 3} ++@end deftypefun ++ ++@deftypefun int pthread_mutex_clocklock (pthread_mutex_t *@var{mutex}, clockid_t @var{clockid}, const struct timespec *@var{abstime}) ++@end deftypefun ++ ++@deftypefun int pthread_mutex_timedlock (pthread_mutex_t *@var{mutex}, const struct timespec *@var{abstime}) ++ ++These two functions act like @code{pthread_mutex_lock} with the ++exception that the call will not wait past time @var{abstime}, as ++reported by @var{clockid} or (for @code{pthread_mutex_timedlock}) ++@code{CLOCK_REALTIME}. If @var{abstime} is reached and the mutex ++still cannot be locked, an @code{ETIMEDOUT} error is returned. ++If the time had already passed when these functions ++are called, and the mutex cannot be immediately locked, the function ++times out immediately. ++@end deftypefun ++ ++@deftypefun int pthread_mutexattr_init (const pthread_mutexattr_t *@var{attr}) ++Initializes @var{attr} with default values. ++@manpagefunctionstub{pthread_mutexattr_init, 3} ++@end deftypefun ++ ++@deftypefun int pthread_mutexattr_destroy (pthread_mutexattr_t *@var{attr}) ++Destroys @var{attr} and releases any resources it may have allocated. ++@manpagefunctionstub{pthread_mutexattr_destroy, 3} ++@end deftypefun ++ ++@deftypefun int pthread_mutexattr_settype (pthread_mutexattr_t *@var{attr}, int @var{kind}) ++This functions allow you to change what kind of mutex a mutex is, by ++changing the attributes used to initialize it. The values for ++@var{kind} are: ++ ++@table @code ++@item PTHREAD_MUTEX_NORMAL ++No attempt to detect deadlock is performed; a thread will deadlock if ++it tries to lock this mutex yet already holds a lock to it. ++Attempting to unlock a mutex not locked by the calling thread results ++in undefined behavior. ++ ++@item PTHREAD_MUTEX_ERRORCHECK ++Attemps to relock a mutex, or unlock a mutex not held, will result in an error. ++ ++@item PTHREAD_MUTEX_RECURSIVE ++Attempts to relock a mutex already held succeed, but require a ++matching number of unlocks to release it. Attempts to unlock a mutex ++not held will result in an error. ++ ++@item PTHREAD_MUTEX_DEFAULT ++Attemps to relock a mutex, or unlock a mutex not held, will result in ++undefined behavior. This is the default. ++ ++@end table ++@end deftypefun ++ ++@deftypefun int pthread_mutexattr_gettype (const pthread_mutexattr_t *@var{attr}, int *@var{kind}) ++This function gets the kind of mutex @var{mutex} is. ++@end deftypefun ++ ++@node POSIX Threads Other APIs ++@subsection POSIX Threads Other APIs ++ ++@deftypefun int pthread_equal (pthread_t @var{thread1}, pthread_t @var{thread2}) ++Compares two thread IDs. If they are the same, returns nonzero, else returns zero. ++@manpagefunctionstub{pthread_equal, 3} ++@end deftypefun ++ ++@deftypefun int pthread_getcpuclockid (pthread_t @var{th}, __clockid_t *@var{clock_id}) ++Get the clock associated with @var{th}. ++@manpagefunctionstub{pthread_getcpuclockid, 3} ++@end deftypefun ++ ++@deftypefun int pthread_once (pthread_once_t *@var{once_control}, void (*@var{init_routine}) (void)) ++Calls @var{init_routine} once for each @var{once_control}, which must ++be statically initalized to @code{PTHREAD_ONCE_INIT}. Subsequent ++calls to @code{pthread_once} with the same @var{once_control} do not ++call @var{init_routine}, even in multi-threaded environments. ++@manpagefunctionstub{pthread_once, 3} ++@end deftypefun ++ ++@deftypefun int pthread_sigmask (int @var{how}, const __sigset_t *@var{newmask}, __sigset_t *@var{oldmask}) ++@manpagefunctionstub{pthread_sigmask, 3} ++@end deftypefun ++ + @node Non-POSIX Extensions + @subsection Non-POSIX Extensions + +@@ -729,8 +1078,10 @@ the standard. + * Default Thread Attributes:: Setting default attributes for + threads in a process. + * Initial Thread Signal Mask:: Setting the initial mask of threads. ++* Thread CPU Affinity:: Limiting which CPUs can run a thread. + * Waiting with Explicit Clocks:: Functions for waiting with an + explicit clock specification. ++* Thread Names:: Changing the name of a thread. + * Single-Threaded:: Detecting single-threaded execution. + * Restartable Sequences:: Linux-specific restartable sequences + integration. +@@ -849,6 +1200,36 @@ signal mask and use @code{pthread_sigmas + If the signal mask was copied to a heap allocation, the copy should be + freed. + ++@node Thread CPU Affinity ++@subsubsection Thread CPU Affinity ++ ++Processes and threads normally run on any available CPU. However, ++they can be given an @emph{affinity} to one or more CPUs, which limits ++them to the CPU set specified. ++ ++@deftypefun int pthread_attr_setaffinity_np (pthread_attr_t *@var{attr}, size_t @var{cpusetsize}, const cpu_set_t *@var{cpuset}) ++Sets the CPU affinity in @var{attr}. The CPU affinity ++controls which CPUs a thread may execute on. @xref{CPU Affinity}. ++@manpagefunctionstub{pthread_attr_setaffinity_np, 3} ++@end deftypefun ++ ++@deftypefun int pthread_attr_getaffinity_np (const pthread_attr_t *@var{attr}, size_t @var{cpusetsize}, cpu_set_t *@var{cpuset}) ++Gets the CPU affinity settings from @var{attr}. ++@manpagefunctionstub{pthread_attr_getaffinity_np, 3} ++@end deftypefun ++ ++@deftypefun int pthread_setaffinity_np (pthread_t *@var{th}, size_t @var{cpusetsize}, const cpu_set_t *@var{cpuset}) ++Sets the CPU affinity for thread @var{th}. The CPU affinity controls ++which CPUs a thread may execute on. @xref{CPU Affinity}. ++@manpagefunctionstub{pthread_setaffinity_np, 3} ++@end deftypefun ++ ++@deftypefun int pthread_getaffinity_np (const pthread_t *@var{th}, size_t @var{cpusetsize}, cpu_set_t *@var{cpuset}) ++Gets the CPU affinity for thread @var{th}. The CPU affinity controls ++which CPUs a thread may execute on. @xref{CPU Affinity}. ++@manpagefunctionstub{pthread_getaffinity_np, 3} ++@end deftypefun ++ + @node Waiting with Explicit Clocks + @subsubsection Functions for Waiting According to a Specific Clock + +@@ -931,6 +1312,21 @@ Currently, @var{clockid} must be either + The @code{sem_clockwait} function also works using a @code{clockid_t} + argument. @xref{POSIX Semaphores}. + ++@node Thread Names ++@subsubsection Thread Names ++ ++@deftypefun int pthread_setname_np (pthread_t @var{th}, const char *@var{name}) ++Gives thread @var{th} the name @var{name}. This name shows up in ++@code{ps} when it's listing individual threads. @var{name} is a ++NUL-terminated string of no more than 15 non-NUL characters. ++@manpagefunctionstub{pthread_setname_np, 3} ++@end deftypefun ++ ++@deftypefun int pthread_getname_np (pthread_t @var{th}, char *@var{buf}, size_t @var{buflen}) ++Retrieves the name of thread @var{th}. ++@manpagefunctionstub{pthread_getname_np, 3} ++@end deftypefun ++ + @node Single-Threaded + @subsubsection Detecting Single-Threaded Execution + diff --git a/SOURCES/glibc-RHEL-61558-3.patch b/SOURCES/glibc-RHEL-61558-3.patch new file mode 100644 index 0000000..f9f3c7d --- /dev/null +++ b/SOURCES/glibc-RHEL-61558-3.patch @@ -0,0 +1,43 @@ +From f176bf2a06b458dea8186fb2ff3bb8ea24da6d67 Mon Sep 17 00:00:00 2001 +From: DJ Delorie +Date: Wed, 7 May 2025 19:23:06 -0400 +Subject: [PATCH] manual: fix typo for sched_[sg]etattr +Content-type: text/plain; charset=UTF-8 + +Originally added in 41a90f3f5f which says it's adding sched_getattr +and sched_setattr. + +Reviewed-by: Collin Funk +--- + manual/resource.texi | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Conflicts + manual/resource.texi + Rebased for context and line numbers + +diff --git a/manual/resource.texi b/manual/resource.texi +index acdb1f3986..a895021870 100644 +--- a/manual/resource.texi ++++ b/manual/resource.texi +@@ -1016,7 +1016,7 @@ For additional information, consult the manual page + @manpageurl{sched_setattr,2}. @xref{Linux Kernel}. + @end deftp + +-@deftypefun int sched_setaddr (pid_t @var{tid}, struct sched_attr *@var{attr}, unsigned int flags) ++@deftypefun int sched_setattr (pid_t @var{tid}, struct sched_attr *@var{attr}, unsigned int flags) + @standards{Linux, sched.h} + @safety{@mtsafe{}@assafe{}@acsafe{}} + This functions applies the scheduling policy described by +@@ -1059,7 +1059,7 @@ policy of the thread @var{tid}. + Other error codes depend on the scheduling policy. + @end deftypefun + +-@deftypefun int sched_getaddr (pid_t @var{tid}, struct sched_attr *@var{attr}, unsigned int size, unsigned int flags) ++@deftypefun int sched_getattr (pid_t @var{tid}, struct sched_attr *@var{attr}, unsigned int size, unsigned int flags) + @standards{Linux, sched.h} + @safety{@mtsafe{}@assafe{}@acsafe{}} + This function obtains the scheduling policy of the thread @var{tid} +-- +2.43.5 + diff --git a/SOURCES/glibc-RHEL-61558-4.patch b/SOURCES/glibc-RHEL-61558-4.patch new file mode 100644 index 0000000..ffe0193 --- /dev/null +++ b/SOURCES/glibc-RHEL-61558-4.patch @@ -0,0 +1,45 @@ +From 579f8668816b35f8302e89e5255aff60b81938df Mon Sep 17 00:00:00 2001 +From: DJ Delorie +Date: Thu, 15 May 2025 16:38:11 -0400 +Subject: [PATCH] manual: add sched_getcpu() +Content-type: text/plain; charset=UTF-8 + +Reviewed-by: Collin Funk +--- + manual/resource.texi | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +Conflicts + manual/resource.texi + rebased for line numbers + +diff --git a/manual/resource.texi b/manual/resource.texi +index a9b4b68e2f..39df1c4cb6 100644 +--- a/manual/resource.texi ++++ b/manual/resource.texi +@@ -1654,6 +1654,22 @@ The operating system does not support this function. + This function is Linux-specific and is declared in @file{sched.h}. + @end deftypefun + ++@deftypefun int sched_getcpu (void) ++@standards{Linux, } ++ ++Similar to @code{getcpu} but with a simpler interface. On success, ++returns a nonnegative number identifying the CPU on which the current ++thread is running. Returns @code{-1} on failure. The following ++@code{errno} error condition is defined for this function: ++ ++@table @code ++@item ENOSYS ++The operating system does not support this function. ++@end table ++ ++This function is Linux-specific and is declared in @file{sched.h}. ++@end deftypefun ++ + Here's an example of how to use most of the above to limit the number + of CPUs a process runs on, not including error handling or good logic + on CPU choices: +-- +2.43.5 + diff --git a/SOURCES/glibc-RHEL-61560.patch b/SOURCES/glibc-RHEL-61560.patch new file mode 100644 index 0000000..e8cbb22 --- /dev/null +++ b/SOURCES/glibc-RHEL-61560.patch @@ -0,0 +1,60 @@ +commit 226476e32251b5688eead482a9338c04ce84d715 +Author: Siddhesh Poyarekar +Date: Thu Jan 30 10:05:17 2025 -0500 + + manual: Explain sched_yield semantics with different schedulers + + The manual entry for sched_yield mentions that the function call could + be a nop if there are no other tasks with the same absolute priority. + Expand the explanation to include example schedulers on Linux so that + it's clear that sched_yield may not always result in a different task + being scheduled. + + Signed-off-by: Siddhesh Poyarekar + Reviewed-by: Joseph Myers + +diff --git a/manual/resource.texi b/manual/resource.texi +index f9fba2ad9cd84c14..c4204dc7a104d72e 100644 +--- a/manual/resource.texi ++++ b/manual/resource.texi +@@ -929,18 +929,31 @@ function, so there are no specific @code{errno} values. + @c Direct syscall on Linux; alias to swtch on HURD. + + This function voluntarily gives up the task's claim on the CPU. +- +-Technically, @code{sched_yield} causes the calling task to be made +-immediately ready to run (as opposed to running, which is what it was +-before). This means that if it has absolute priority higher than 0, it +-gets pushed onto the tail of the queue of tasks that share its ++Depending on the scheduling policy in effect and the tasks ready to run ++on the system, another task may be scheduled to run instead. ++ ++A call to @code{sched_yield} does not guarantee that a different task ++from the calling task is scheduled as a result; it depends on the ++scheduling policy used on the target system. It is possible that the ++call may not result in any visible effect, i.e., the same task gets ++scheduled again. ++ ++For example on Linux systems, when a simple priority-based FIFO ++scheduling policy (@code{SCHED_FIFO}) is in effect, the calling task is ++made immediately ready to run (as opposed to running, which is what it ++was before). This means that if it has absolute priority higher than 0, ++it gets pushed onto the tail of the queue of tasks that share its + absolute priority and are ready to run, and it will run again when its + turn next arrives. If its absolute priority is 0, it is more + complicated, but still has the effect of yielding the CPU to other +-tasks. +- +-If there are no other tasks that share the calling task's absolute +-priority, this function doesn't have any effect. ++tasks. If there are no other tasks that share the calling task's ++absolute priority, it will be scheduled again as if @code{sched_yield} ++was never called. ++ ++Another example could be a time slice based preemptive round-robin ++policy, such as the @code{SCHED_RR} policy on Linux. It is possible ++with this policy that the calling task is scheduled again because it ++still has time left in its slice. + + To the extent that the containing program is oblivious to what other + processes in the system are doing and how fast it executes, this diff --git a/SOURCES/glibc-RHEL-61561.patch b/SOURCES/glibc-RHEL-61561.patch new file mode 100644 index 0000000..8a3ff40 --- /dev/null +++ b/SOURCES/glibc-RHEL-61561.patch @@ -0,0 +1,151 @@ +commit a9017caff3b77032d04e2e439f7c04a63241e63e +Author: Sergey Kolosov +Date: Tue Jan 28 23:56:26 2025 +0100 + + nptl: extend test coverage for sched_yield + + We add sched_yield() API testing to the existing thread affinity + test case because it allows us to test sched_yield() operation + in the following scenarios: + + * On a main thread. + * On multiple threads simultaneously. + * On every CPU the system reports simultaneously. + + The ensures we exercise sched_yield() in as many scenarios as + we would exercise calls to the affinity functions. + + Additionally, the test is improved by adding a semaphore to coordinate + all the threads running, so that an early starter thread won't consume + cpu resources that could be used to start the other threads. + + Co-authored-by: DJ Delorie + Reviewed-by: Carlos O'Donell + +diff --git a/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c b/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c +index afc8c1b96fa2f408..55ddcda2ce24e186 100644 +--- a/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c ++++ b/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c +@@ -38,6 +38,7 @@ + #include + #include + #include ++#include + + /* CPU set configuration determined. Can be used from early_test. */ + struct conf +@@ -253,12 +254,12 @@ do_test (void) + if (getaffinity (sizeof (set), &set) < 0 && errno == ENOSYS) + { + puts ("warning: getaffinity not supported, test cannot run"); +- return 0; ++ return EXIT_UNSUPPORTED; + } + if (sched_getcpu () < 0 && errno == ENOSYS) + { + puts ("warning: sched_getcpu not supported, test cannot run"); +- return 0; ++ return EXIT_UNSUPPORTED; + } + } + +diff --git a/sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c b/sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c +index 1445ea2d19430ce8..545a6c77c6fdd091 100644 +--- a/sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c ++++ b/sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c +@@ -45,10 +45,14 @@ static int still_running; + /* 0 if no scheduling failures, 1 if failures are encountered. */ + static int failed; + ++/* Used to synchronize the threads. */ ++static pthread_barrier_t barrier; ++ + static void * + thread_burn_one_cpu (void *closure) + { + int cpu = (uintptr_t) closure; ++ xpthread_barrier_wait (&barrier); + while (__atomic_load_n (&still_running, __ATOMIC_RELAXED) == 0) + { + int current = sched_getcpu (); +@@ -61,6 +65,11 @@ thread_burn_one_cpu (void *closure) + __atomic_store_n (&still_running, 1, __ATOMIC_RELAXED); + } + } ++ if (sched_yield () != 0) ++ { ++ printf ("error: sched_yield() failed for cpu %d\n", cpu); ++ __atomic_store_n (&failed, 1, __ATOMIC_RELAXED); ++ } + return NULL; + } + +@@ -78,6 +87,7 @@ thread_burn_any_cpu (void *closure) + { + struct burn_thread *param = closure; + ++ xpthread_barrier_wait (&barrier); + /* Schedule this thread around a bit to see if it lands on another + CPU. Run this for 2 seconds, once with sched_yield, once + without. */ +@@ -99,7 +109,11 @@ thread_burn_any_cpu (void *closure) + CPU_SET_S (cpu, CPU_ALLOC_SIZE (param->conf->set_size), + param->seen_set); + if (pass == 1) +- sched_yield (); ++ if (sched_yield () != 0) ++ { ++ printf ("error: sched_yield() failed for cpu %d\n", cpu); ++ __atomic_store_n (&failed, 1, __ATOMIC_RELAXED); ++ } + } + } + return NULL; +@@ -156,6 +170,7 @@ early_test (struct conf *conf) + = calloc (conf->last_cpu + 1, sizeof (*other_threads)); + cpu_set_t *initial_set = CPU_ALLOC (conf->set_size); + cpu_set_t *scratch_set = CPU_ALLOC (conf->set_size); ++ int num_available_cpus = 0; + + if (pinned_threads == NULL || other_threads == NULL + || initial_set == NULL || scratch_set == NULL) +@@ -172,6 +187,7 @@ early_test (struct conf *conf) + { + if (!CPU_ISSET_S (cpu, CPU_ALLOC_SIZE (conf->set_size), initial_set)) + continue; ++ num_available_cpus ++; + other_threads[cpu].conf = conf; + other_threads[cpu].initial_set = initial_set; + other_threads[cpu].thread = cpu; +@@ -194,6 +210,15 @@ early_test (struct conf *conf) + } + support_set_small_thread_stack_size (&attr); + ++ /* This count assumes that all the threads below are created ++ successfully, and call pthread_barrier_wait(). If any threads ++ fail to be created, this function will return FALSE (failure) and ++ the waiting threads will eventually time out the whole test. ++ This is acceptable because we're not testing thread creation and ++ assume all threads will be created, and failure here implies a ++ failure outside the test's scope. */ ++ xpthread_barrier_init (&barrier, NULL, num_available_cpus * 2 + 1); ++ + /* Spawn a thread pinned to each available CPU. */ + for (int cpu = 0; cpu <= conf->last_cpu; ++cpu) + { +@@ -245,6 +270,15 @@ early_test (struct conf *conf) + } + } + ++ /* Test that sched_yield() works correctly in the main thread. This ++ also gives the kernel an opportunity to run the other threads, ++ randomizing thread startup a bit. */ ++ if (sched_yield () != 0) ++ { ++ printf ("error: sched_yield() failed for main thread\n"); ++ __atomic_store_n (&failed, 1, __ATOMIC_RELAXED); ++ } ++ + /* Main thread. */ + struct burn_thread main_thread; + main_thread.conf = conf; diff --git a/SOURCES/glibc-RHEL-61569-1.patch b/SOURCES/glibc-RHEL-61569-1.patch new file mode 100644 index 0000000..8da3909 --- /dev/null +++ b/SOURCES/glibc-RHEL-61569-1.patch @@ -0,0 +1,111 @@ +commit fa53723cdb6f0338558e57a2a0a6459c00a1bc5f +Author: Frédéric Bérat +Date: Fri Nov 29 14:48:43 2024 +0100 + + support: Add support_next_to_fault_before support function + + Refactor the support_next_to_fault and add the + support_next_to_fault_before method returns a buffer with a protected + page before it, to be able to test buffer underflow accesses. + + Reviewed-by: Tulio Magno Quites Machado Filho + +# Conflicts: +# support/next_to_fault.c (copyright update) + +diff --git a/support/next_to_fault.c b/support/next_to_fault.c +index 6d9bcc8ea74c4a5f..b60d5a574484f8e7 100644 +--- a/support/next_to_fault.c ++++ b/support/next_to_fault.c +@@ -1,5 +1,5 @@ +-/* Memory allocation next to an unmapped page. +- Copyright (C) 2017-2021 Free Software Foundation, Inc. ++/* Memory allocation either before or after an unmapped page. ++ Copyright (C) 2017-2025 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -16,34 +16,58 @@ + License along with the GNU C Library; if not, see + . */ + ++#include + #include + #include + #include + #include + #include + +-struct support_next_to_fault +-support_next_to_fault_allocate (size_t size) ++static struct support_next_to_fault ++support_next_to_fault_allocate_any (size_t size, bool fault_after_alloc) + { + long page_size = sysconf (_SC_PAGE_SIZE); ++ long protect_offset = 0; ++ long buffer_offset = page_size; ++ + TEST_VERIFY_EXIT (page_size > 0); + struct support_next_to_fault result; + result.region_size = roundup (size, page_size) + page_size; + if (size + page_size <= size || result.region_size <= size) +- FAIL_EXIT1 ("support_next_to_fault_allocate (%zu): overflow", size); ++ FAIL_EXIT1 ("%s (%zu): overflow", __func__, size); + result.region_start + = xmmap (NULL, result.region_size, PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_ANONYMOUS, -1); +- /* Unmap the page after the allocation. */ +- xmprotect (result.region_start + (result.region_size - page_size), +- page_size, PROT_NONE); +- /* Align the allocation within the region so that it ends just +- before the PROT_NONE page. */ +- result.buffer = result.region_start + result.region_size - page_size - size; ++ ++ if (fault_after_alloc) ++ { ++ protect_offset = result.region_size - page_size; ++ buffer_offset = protect_offset - size; ++ } ++ ++ /* Unmap the page before or after the allocation. */ ++ xmprotect (result.region_start + protect_offset, page_size, PROT_NONE); ++ /* Align the allocation within the region so that it starts after or ends ++ just before the PROT_NONE page. */ ++ result.buffer = result.region_start + buffer_offset; + result.length = size; + return result; + } + ++/* Unmapped a page after the buffer */ ++struct support_next_to_fault ++support_next_to_fault_allocate (size_t size) ++{ ++ return support_next_to_fault_allocate_any (size, true); ++} ++ ++/* Unmapped a page before the buffer */ ++struct support_next_to_fault ++support_next_to_fault_allocate_before (size_t size) ++{ ++ return support_next_to_fault_allocate_any (size, false); ++} ++ + void + support_next_to_fault_free (struct support_next_to_fault *ntf) + { +diff --git a/support/next_to_fault.h b/support/next_to_fault.h +index bd2a0cffedbdc5dc..eb8ff24412f8ae94 100644 +--- a/support/next_to_fault.h ++++ b/support/next_to_fault.h +@@ -41,6 +41,11 @@ struct support_next_to_fault + fault). */ + struct support_next_to_fault support_next_to_fault_allocate (size_t size); + ++/* Allocate a buffer of SIZE bytes just *after* a page which is mapped ++ with PROT_NONE (so that under-running the buffer will cause a ++ fault). */ ++struct support_next_to_fault support_next_to_fault_allocate_before (size_t size); ++ + /* Deallocate the memory region allocated by + next_to_fault_allocate. */ + void support_next_to_fault_free (struct support_next_to_fault *); diff --git a/SOURCES/glibc-RHEL-61569-2.patch b/SOURCES/glibc-RHEL-61569-2.patch new file mode 100644 index 0000000..ece747c --- /dev/null +++ b/SOURCES/glibc-RHEL-61569-2.patch @@ -0,0 +1,395 @@ +commit 8a46bf41e5a61248f626a8213520de499f388122 +Author: Frédéric Bérat +Date: Fri Nov 29 14:50:27 2024 +0100 + + posix: Rewrite cpuset tests + + Rewriting the cpuset macros test to cover more use cases and port the + tests to the new test infrastructure. + + The use cases include bad actor access attempts, before and after the + CPU set structure. + + Reviewed-by: Tulio Magno Quites Machado Filho + +# Conflicts: +# posix/Makefile (new test added) + +diff --git a/posix/Makefile b/posix/Makefile +index 61fcdf015b4ec83b..4c32a088a73723c7 100644 +--- a/posix/Makefile ++++ b/posix/Makefile +@@ -96,7 +96,7 @@ tests := test-errno tstgetopt testfnm runtests runptests \ + tst-execvp3 tst-execvp4 \ + tst-execvpe1 tst-execvpe2 tst-execvpe3 tst-execvpe4 \ + tst-execvpe5 tst-execvpe6 \ +- tst-getaddrinfo3 tst-fnmatch2 tst-cpucount tst-cpuset \ ++ tst-getaddrinfo3 tst-fnmatch2 tst-cpucount \ + bug-getopt1 bug-getopt2 bug-getopt3 bug-getopt4 \ + bug-getopt5 tst-getopt_long1 bug-regex34 bug-regex35 \ + tst-pathconf tst-rxspencer-no-utf8 \ +@@ -108,7 +108,10 @@ tests := test-errno tstgetopt testfnm runtests runptests \ + tst-glob-tilde test-ssize-max tst-spawn4 bug-regex37 \ + bug-regex38 tst-regcomp-truncated tst-spawn-chdir \ + tst-wordexp-nocmd tst-execveat tst-spawn5 \ +- tst-sched_getaffinity ++ tst-sched_getaffinity \ ++ tst-cpuset-dynamic \ ++ tst-cpuset-static \ ++ + + # Test for the glob symbol version that was replaced in glibc 2.27. + ifeq ($(have-GLIBC_2.26)$(build-shared),yesyes) +diff --git a/posix/tst-cpuset-dynamic.c b/posix/tst-cpuset-dynamic.c +new file mode 100644 +index 0000000000000000..6e0f06dfd810a724 +--- /dev/null ++++ b/posix/tst-cpuset-dynamic.c +@@ -0,0 +1,63 @@ ++/* Test that CPU_* macros comply with their specifications. ++ ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define LOCAL_NUM_CPUS 2048 ++#define LOCAL_CPU_SETSIZE LOCAL_NUM_CPUS / 8 ++ ++#define PREPARE_CPU_SET(X) \ ++ X = CPU_ALLOC (LOCAL_NUM_CPUS); ++ ++/* Create a mapping so that access to the page before the cpuset generates a ++ fault. The aim is to check the behavior for negative values since the ++ interface accepts signed int. */ ++#define PREPARE_CPU_SET_TO_FAULT_BEFORE(X) \ ++ size_t local_sz_##X = CPU_ALLOC_SIZE(LOCAL_NUM_CPUS); \ ++ struct support_next_to_fault local_##X = support_next_to_fault_allocate_before(local_sz_##X); \ ++ X = (cpu_set_t *) local_##X.buffer; ++ ++/* Create a mapping so that access to the page after the cpuset generates a ++ fault. The aim is to check the behavior for values above CPU count since the ++ interface accepts signed int. */ ++#define PREPARE_CPU_SET_TO_FAULT(X) \ ++ size_t local_sz_##X = CPU_ALLOC_SIZE(LOCAL_NUM_CPUS); \ ++ struct support_next_to_fault local_##X = support_next_to_fault_allocate(local_sz_##X); \ ++ X = (cpu_set_t *) local_##X.buffer; ++ ++#define GET_SIZE() (size_t) CPU_ALLOC_SIZE(LOCAL_NUM_CPUS) ++ ++#define LOCAL_CPU_ZERO(sz, cpusetp) CPU_ZERO_S(sz, cpusetp) ++#define LOCAL_CPU_SET(cpu, sz, cpusetp) CPU_SET_S(cpu, sz, cpusetp) ++#define LOCAL_CPU_CLR(cpu, sz, cpusetp) CPU_CLR_S(cpu, sz, cpusetp) ++#define LOCAL_CPU_ISSET(cpu, sz, cpusetp) CPU_ISSET_S(cpu, sz, cpusetp) ++#define LOCAL_CPU_COUNT(sz, cpusetp) CPU_COUNT_S(sz, cpusetp) ++#define LOCAL_CPU_AND(sz, destsetp, srcsetp1, srcsetp2) \ ++ CPU_AND_S(sz, destsetp, srcsetp1, srcsetp2) ++#define LOCAL_CPU_OR(sz, destsetp, srcsetp1, srcsetp2) \ ++ CPU_OR_S(sz, destsetp, srcsetp1, srcsetp2) ++#define LOCAL_CPU_XOR(sz, destsetp, srcsetp1, srcsetp2) \ ++ CPU_XOR_S(sz, destsetp, srcsetp1, srcsetp2) ++#define LOCAL_CPU_EQUAL(sz, setp1, setp2) CPU_EQUAL_S(sz, setp1, setp2) ++ ++#define CLEAN_CPU_SET(cpusetp) CPU_FREE(cpusetp) ++#define CLEAN_CPU_SET_TO_FAULT_BEFORE(X) support_next_to_fault_free(&local_##X) ++#define CLEAN_CPU_SET_TO_FAULT(X) support_next_to_fault_free(&local_##X) ++ ++#include "tst-cpuset-skeleton.c" +diff --git a/posix/tst-cpuset-skeleton.c b/posix/tst-cpuset-skeleton.c +new file mode 100644 +index 0000000000000000..2c04989c0da502be +--- /dev/null ++++ b/posix/tst-cpuset-skeleton.c +@@ -0,0 +1,123 @@ ++/* Test that CPU_* macros comply with their specifications. ++ ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ cpu_set_t *cpusetp_A = NULL; ++ cpu_set_t *cpusetp_B = NULL; ++ cpu_set_t *cpusetp_C = NULL; ++ ++ size_t setsz __attribute__ ((unused)) = GET_SIZE(); ++ ++ TEST_VERIFY (CPU_ALLOC_SIZE (-1) == 0); ++ TEST_VERIFY (CPU_ALLOC_SIZE (0) == 0); ++ TEST_VERIFY (CPU_ALLOC_SIZE (1) == sizeof (__cpu_mask)); ++ TEST_VERIFY (CPU_ALLOC_SIZE (INT_MAX) > 0); ++ ++ PREPARE_CPU_SET_TO_FAULT_BEFORE(cpusetp_A); ++ PREPARE_CPU_SET_TO_FAULT(cpusetp_B); ++ PREPARE_CPU_SET(cpusetp_C); ++ ++ /* Bad actor access, negative CPU number */ ++ LOCAL_CPU_SET (-1, setsz, cpusetp_A); ++ TEST_VERIFY (!LOCAL_CPU_ISSET (-1, setsz, cpusetp_A)); ++ ++ /* Bad actor access, above CPU number */ ++ LOCAL_CPU_SET (LOCAL_NUM_CPUS, setsz, cpusetp_B); ++ TEST_VERIFY (!LOCAL_CPU_ISSET (LOCAL_NUM_CPUS, setsz, cpusetp_B)); ++ ++ LOCAL_CPU_ZERO (setsz, cpusetp_A); ++ LOCAL_CPU_ZERO (setsz, cpusetp_B); ++ LOCAL_CPU_ZERO (setsz, cpusetp_C); ++ ++ for (int cpu = 0; cpu < LOCAL_NUM_CPUS; cpu += 2) ++ { ++ /* Set A = 0x55..55 */ ++ LOCAL_CPU_SET (cpu, setsz, cpusetp_A); ++ TEST_VERIFY (LOCAL_CPU_ISSET (cpu, setsz, cpusetp_A)); ++ } ++ for (int cpu = 1; cpu < LOCAL_NUM_CPUS; cpu += 2) ++ { ++ /* Set B = 0xAA..AA */ ++ LOCAL_CPU_SET (cpu, setsz, cpusetp_B); ++ TEST_VERIFY (LOCAL_CPU_ISSET (cpu, setsz, cpusetp_B)); ++ } ++ ++ /* Ensure CPU_COUNT matches expected count */ ++ TEST_VERIFY (LOCAL_CPU_COUNT (setsz, cpusetp_A) == LOCAL_CPU_COUNT (setsz, cpusetp_B)); ++ TEST_VERIFY (LOCAL_CPU_COUNT (setsz, cpusetp_A) == LOCAL_NUM_CPUS / 2); ++ ++ LOCAL_CPU_AND (setsz, cpusetp_C, cpusetp_A, cpusetp_B); ++ for (int cpu = 0; cpu < LOCAL_NUM_CPUS; cpu++) ++ { ++ /* A setsz, B == 0 */ ++ TEST_VERIFY (!LOCAL_CPU_ISSET (cpu, setsz, cpusetp_C)); ++ } ++ ++ LOCAL_CPU_OR (setsz, cpusetp_C, cpusetp_A, cpusetp_B); ++ for (int cpu = 0; cpu < LOCAL_NUM_CPUS; cpu++) ++ { ++ /* A | B == 0xFF..FF */ ++ TEST_VERIFY (LOCAL_CPU_ISSET (cpu, setsz, cpusetp_C)); ++ } ++ ++ /* Check that CPU_ZERO actually does something */ ++ TEST_VERIFY (LOCAL_CPU_COUNT (setsz, cpusetp_C) == LOCAL_NUM_CPUS); ++ LOCAL_CPU_ZERO (setsz, cpusetp_C); ++ TEST_VERIFY (LOCAL_CPU_COUNT (setsz, cpusetp_C) == 0); ++ ++ LOCAL_CPU_XOR (setsz, cpusetp_C, cpusetp_A, cpusetp_A); ++ for (int cpu = 0; cpu < LOCAL_NUM_CPUS; cpu++) ++ { ++ /* A ^ A == 0 */ ++ TEST_VERIFY (!LOCAL_CPU_ISSET (cpu, setsz, cpusetp_C)); ++ } ++ ++ LOCAL_CPU_XOR (setsz, cpusetp_C, cpusetp_A, cpusetp_B); ++ for (int cpu = 0; cpu < LOCAL_NUM_CPUS; cpu++) ++ { ++ /* C = A ^ B == 0xFF..FF */ ++ TEST_VERIFY (LOCAL_CPU_ISSET (cpu, setsz, cpusetp_C)); ++ } ++ ++ for (int cpu = 1; cpu < LOCAL_NUM_CPUS; cpu += 2) ++ { ++ /* C = 0x55..55 */ ++ LOCAL_CPU_CLR (cpu, setsz, cpusetp_C); ++ TEST_VERIFY (!LOCAL_CPU_ISSET (cpu, setsz, cpusetp_C)); ++ } ++ ++ TEST_VERIFY (LOCAL_CPU_EQUAL (setsz, cpusetp_A, cpusetp_C)); ++ ++ CLEAN_CPU_SET(cpusetp_C); ++ CLEAN_CPU_SET_TO_FAULT(cpusetp_B); ++ CLEAN_CPU_SET_TO_FAULT_BEFORE(cpusetp_A); ++ ++ return 0; ++} ++ ++#include +diff --git a/posix/tst-cpuset-static.c b/posix/tst-cpuset-static.c +new file mode 100644 +index 0000000000000000..ad4c40e422c50ab8 +--- /dev/null ++++ b/posix/tst-cpuset-static.c +@@ -0,0 +1,61 @@ ++/* Test that CPU_* macros comply with their specifications. ++ ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define LOCAL_NUM_CPUS CPU_SETSIZE ++ ++/* Create a mapping so that access to the page before the cpuset generates a ++ fault. The aim is to check the behavior for negative values since the ++ interface accepts signed int. */ ++#define PREPARE_CPU_SET_TO_FAULT_BEFORE(X) \ ++ struct support_next_to_fault local_##X = support_next_to_fault_allocate_before(sizeof(*X)); \ ++ X = (cpu_set_t *) local_##X.buffer; ++ ++/* Create a mapping so that access to the page after the cpuset generates a ++ fault. The aim is to check the behavior for values above CPU count since the ++ interface accepts signed int. */ ++#define PREPARE_CPU_SET_TO_FAULT(X) \ ++ struct support_next_to_fault local_##X = support_next_to_fault_allocate(sizeof(*X)); \ ++ X = (cpu_set_t *) local_##X.buffer; ++ ++#define PREPARE_CPU_SET(X) \ ++ cpu_set_t local_##X = {}; \ ++ X = &local_##X; ++ ++#define GET_SIZE() (size_t) sizeof (cpu_set_t) ++ ++#define LOCAL_CPU_ZERO(sz, cpusetp) CPU_ZERO(cpusetp) ++#define LOCAL_CPU_SET(cpu, sz, cpusetp) CPU_SET(cpu, cpusetp) ++#define LOCAL_CPU_CLR(cpu, sz, cpusetp) CPU_CLR(cpu, cpusetp) ++#define LOCAL_CPU_ISSET(cpu, sz, cpusetp) CPU_ISSET(cpu, cpusetp) ++#define LOCAL_CPU_COUNT(sz, cpusetp) CPU_COUNT(cpusetp) ++#define LOCAL_CPU_AND(sz, destsetp, srcsetp1, srcsetp2) \ ++ CPU_AND(destsetp, srcsetp1, srcsetp2) ++#define LOCAL_CPU_OR(sz, destsetp, srcsetp1, srcsetp2) \ ++ CPU_OR(destsetp, srcsetp1, srcsetp2) ++#define LOCAL_CPU_XOR(sz, destsetp, srcsetp1, srcsetp2) \ ++ CPU_XOR(destsetp, srcsetp1, srcsetp2) ++#define LOCAL_CPU_EQUAL(sz, setp1, setp2) CPU_EQUAL(setp1, setp2) ++ ++#define CLEAN_CPU_SET(X) ++#define CLEAN_CPU_SET_TO_FAULT_BEFORE(X) support_next_to_fault_free(&local_##X) ++#define CLEAN_CPU_SET_TO_FAULT(X) support_next_to_fault_free(&local_##X) ++ ++#include "tst-cpuset-skeleton.c" +diff --git a/posix/tst-cpuset.c b/posix/tst-cpuset.c +deleted file mode 100644 +index d736793222af5ec6..0000000000000000 +--- a/posix/tst-cpuset.c ++++ /dev/null +@@ -1,82 +0,0 @@ +-#include +-#include +- +-static int +-do_test (void) +-{ +- int result = 0; +- +- cpu_set_t s1; +- cpu_set_t s2; +- cpu_set_t s3; +- +- CPU_ZERO (&s1); +- CPU_SET (0, &s1); +- +- CPU_ZERO (&s2); +- CPU_SET (0, &s2); +- CPU_SET (1, &s2); +- +- CPU_AND (&s3, &s1, &s2); +- if (! CPU_EQUAL (&s3, &s1)) +- { +- puts ("result of CPU_AND wrong"); +- result = 1; +- } +- +- CPU_OR (&s3, &s1, &s2); +- if (! CPU_EQUAL (&s3, &s2)) +- { +- puts ("result of CPU_OR wrong"); +- result = 1; +- } +- +- CPU_XOR (&s3, &s1, &s2); +- if (CPU_COUNT (&s3) != 1) +- { +- puts ("result of CPU_XOR wrong"); +- result = 1; +- } +- +- cpu_set_t *vs1 = CPU_ALLOC (2048); +- cpu_set_t *vs2 = CPU_ALLOC (2048); +- cpu_set_t *vs3 = CPU_ALLOC (2048); +- size_t vssize = CPU_ALLOC_SIZE (2048); +- +- CPU_ZERO_S (vssize, vs1); +- CPU_SET_S (0, vssize, vs1); +- +- CPU_ZERO_S (vssize, vs2); +- CPU_SET_S (0, vssize, vs2); +- CPU_SET_S (2047, vssize, vs2); +- +- CPU_AND_S (vssize, vs3, vs1, vs2); +- if (! CPU_EQUAL_S (vssize, vs3, vs1)) +- { +- puts ("result of CPU_AND_S wrong"); +- result = 1; +- } +- +- CPU_OR_S (vssize, vs3, vs1, vs2); +- if (! CPU_EQUAL_S (vssize, vs3, vs2)) +- { +- puts ("result of CPU_OR_S wrong"); +- result = 1; +- } +- +- CPU_XOR_S (vssize, vs3, vs1, vs2); +- if (CPU_COUNT_S (vssize, vs3) != 1) +- { +- puts ("result of CPU_XOR_S wrong"); +- result = 1; +- } +- +- CPU_FREE (vs1); +- CPU_FREE (vs2); +- CPU_FREE (vs3); +- +- return result; +-} +- +-#define TEST_FUNCTION do_test () +-#include "../test-skeleton.c" diff --git a/SOURCES/glibc-RHEL-62188-1.patch b/SOURCES/glibc-RHEL-62188-1.patch new file mode 100644 index 0000000..c8bf9ee --- /dev/null +++ b/SOURCES/glibc-RHEL-62188-1.patch @@ -0,0 +1,301 @@ +commit cfb35f5f7f32cec8fa4e16b99e35b7d70fa13f1f +Author: DJ Delorie +Date: Tue Sep 17 22:52:37 2024 -0400 + + rt: more clock_nanosleep tests + + Test that clock_nanosleep rejects out of range time values. + + Test that clock_nanosleep actually sleeps for at least the + requested time relative to the requested clock. + + Reviewed-by: Adhemerval Zanella + +diff --git a/rt/Makefile b/rt/Makefile +index 910e7759956d7ae9..64d2a173e6ea2851 100644 +--- a/rt/Makefile ++++ b/rt/Makefile +@@ -77,6 +77,7 @@ tests := tst-shm tst-timer tst-timer2 \ + tst-bz28213 \ + tst-timer3 tst-timer4 tst-timer5 \ + tst-cpuclock2 tst-cputimer1 tst-cputimer2 tst-cputimer3 \ ++ tst-clock_nanosleep2 \ + tst-shm-cancel \ + tst-mqueue10 + tests-internal := tst-timer-sigmask +@@ -84,6 +85,7 @@ tests-internal := tst-timer-sigmask + tests-time64 := \ + tst-aio6-time64 \ + tst-cpuclock2-time64 \ ++ tst-clock_nanosleep2-time64 \ + tst-mqueue1-time64 \ + tst-mqueue2-time64 \ + tst-mqueue4-time64 \ +diff --git a/rt/tst-clock_nanosleep2-time64.c b/rt/tst-clock_nanosleep2-time64.c +new file mode 100644 +index 0000000000000000..8deb4201f38b094a +--- /dev/null ++++ b/rt/tst-clock_nanosleep2-time64.c +@@ -0,0 +1 @@ ++#include "tst-clock_nanosleep2.c" +diff --git a/rt/tst-clock_nanosleep2.c b/rt/tst-clock_nanosleep2.c +new file mode 100644 +index 0000000000000000..10c822fd54668531 +--- /dev/null ++++ b/rt/tst-clock_nanosleep2.c +@@ -0,0 +1,255 @@ ++/* Test program for process CPU clocks - invalid inputs, minimum time ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* This test has two primary goals - first, to validate that invalid ++ inputs to clock_nanosleep are caught, and second, to validate that ++ clock_nanosleep sleeps for at least the amount of time requested. ++ It is assumed that the system may sleep for an arbitrary additional ++ amount of time beyond the requested time. */ ++ ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++/* This is 1 ms per test, we have 10 tests, so this file runs in on ++ the order of 0.01 seconds. */ ++#define TEST_NSEC 1000000 ++ ++/* Nanoseconds per second. */ ++#define NSECMAX 1000000000L ++ ++static pthread_barrier_t barrier; ++ ++/* This function is intended to rack up both user and system time. */ ++static void * ++chew_cpu (void *arg) ++{ ++ pthread_barrier_wait (&barrier); ++ ++ while (1) ++ { ++ static volatile char buf[4096]; ++ for (int i = 0; i < 100; ++i) ++ for (size_t j = 0; j < sizeof buf; ++j) ++ buf[j] = 0xaa; ++ int nullfd = xopen ("/dev/null", O_WRONLY, 0); ++ for (int i = 0; i < 100; ++i) ++ for (size_t j = 0; j < sizeof buf; ++j) ++ buf[j] = 0xbb; ++ xwrite (nullfd, (char *) buf, sizeof buf); ++ close (nullfd); ++ } ++ ++ return NULL; ++} ++ ++static void ++ptime_1 (const char *n, struct timespec t) ++{ ++ /* This is only for debugging failed test cases. */ ++ printf ("%12s: %lld.%09lld\n", n, (long long int) t.tv_sec, ++ (long long int) t.tv_nsec); ++} ++#define ptime(t) ptime_1 (#t, t) ++ ++static void ++test_interval_1 (const char *n_clock, clockid_t t_clock) ++{ ++ struct timespec me_before, me_after, quantum, me_sleep, me_slept; ++ long long int slept, min_slept; ++ ++ /* Arbitrary to ensure our time period is sufficiently bigger than ++ the time step. */ ++ TEST_VERIFY (clock_getres (t_clock, &quantum) == 0); ++ printf("Clock quantum: %lld ns, test time: %lld ns\n", ++ (long long int) quantum.tv_nsec, (long long int) TEST_NSEC); ++ TEST_VERIFY (quantum.tv_nsec <= TEST_NSEC / 10); ++ ++ min_slept = TEST_NSEC; ++ ++ me_sleep = make_timespec (0, min_slept); ++ ++ printf ("test clock %s for %lld.%09lld sec relative\n", ++ n_clock, (long long int) me_sleep.tv_sec, ++ (long long int) me_sleep.tv_nsec); ++ ++ TEST_COMPARE (clock_gettime (t_clock, &me_before), 0); ++ TEST_COMPARE (clock_nanosleep (t_clock, 0, &me_sleep, NULL), 0); ++ TEST_COMPARE (clock_gettime (t_clock, &me_after), 0); ++ ++ me_slept = timespec_sub (me_after, me_before); ++ slept = support_timespec_ns (me_slept); ++ ++ ptime (me_before); ++ ptime (me_after); ++ ptime (me_sleep); ++ ptime (me_slept); ++ printf ("test slept %lld nsec >= asked for %lld ?\n", slept, min_slept); ++ ++ /* This is the important part - verify that the time slept is at ++ least as much as the time requested. */ ++ TEST_VERIFY (slept >= min_slept); ++} ++ ++static void ++test_abs_1 (const char *n_clock, clockid_t t_clock) ++{ ++ struct timespec me_before, me_after, quantum, me_sleep; ++ ++ /* Arbitrary to ensure our time period is sufficiently bigger than ++ the time step. */ ++ TEST_VERIFY (clock_getres (t_clock, &quantum) == 0); ++ printf("Clock quantum: %lld ns, test time: %lld ns\n", ++ (long long int) quantum.tv_nsec, (long long int) TEST_NSEC); ++ TEST_VERIFY (quantum.tv_nsec <= TEST_NSEC / 10); ++ ++ me_sleep = make_timespec (0, TEST_NSEC); ++ ++ printf ("test clock %s for %lld.%09lld sec absolute\n", ++ n_clock, (long long int) me_sleep.tv_sec, ++ (long long int) me_sleep.tv_nsec); ++ ++ TEST_COMPARE (clock_gettime (t_clock, &me_before), 0); ++ me_sleep = timespec_add (me_sleep, me_before); ++ TEST_COMPARE (clock_nanosleep (t_clock, TIMER_ABSTIME, &me_sleep, NULL), 0); ++ TEST_COMPARE (clock_gettime (t_clock, &me_after), 0); ++ ++ ptime (me_before); ++ ptime (me_sleep); ++ ptime (me_after); ++ ++ printf("test slept until %lld.%09lld after requested %lld.%09lld ?\n", ++ (long long int) me_after.tv_sec, (long long int) me_after.tv_nsec, ++ (long long int) me_sleep.tv_sec, (long long int) me_sleep.tv_nsec); ++ ++ /* This is the important part - verify that the time slept is at ++ least as much as the time requested. */ ++ TEST_TIMESPEC_EQUAL_OR_AFTER (me_after, me_sleep); ++} ++ ++static void ++test_invalids_1 (const char *the_clock_name, int the_clock, ++ const char *flags_name, int flags) ++{ ++ struct timespec me_before; ++ ++ /* Note: do not use make_timespec() in case that function tries to ++ normalize the fields. */ ++ ++ printf ("%s: %s: test tv 0, 0\n", the_clock_name, flags_name); ++ me_before.tv_sec = 0; ++ me_before.tv_nsec = 0; ++ TEST_COMPARE (clock_nanosleep (the_clock, 0, &me_before, NULL), 0); ++ ++ printf ("%s: %s: test tv -1, 0\n", the_clock_name, flags_name); ++ me_before.tv_sec = -1; ++ me_before.tv_nsec = 0; ++ TEST_COMPARE (clock_nanosleep (the_clock, 0, &me_before, NULL), EINVAL); ++ ++ printf ("%s: %s: test tv 0, -1\n", the_clock_name, flags_name); ++ me_before.tv_sec = 0; ++ me_before.tv_nsec = -1; ++ TEST_COMPARE (clock_nanosleep (the_clock, 0, &me_before, NULL), EINVAL); ++ ++ printf ("%s: %s: test tv -1, -1\n", the_clock_name, flags_name); ++ me_before.tv_sec = -1; ++ me_before.tv_nsec = -1; ++ TEST_COMPARE (clock_nanosleep (the_clock, 0, &me_before, NULL), EINVAL); ++ ++ printf ("%s: %s: test tv 0, MAX\n", the_clock_name, flags_name); ++ me_before.tv_sec = 0; ++ me_before.tv_nsec = NSECMAX; ++ TEST_COMPARE (clock_nanosleep (the_clock, 0, &me_before, NULL), EINVAL); ++} ++ ++static int ++do_test (void) ++{ ++ pthread_t th; ++ ++ pthread_barrier_init (&barrier, NULL, 2); ++ ++ /* Test for proper error detection. */ ++ ++#define test_invalids(c, f) test_invalids_1 (#c, c, #f, f) ++ test_invalids (CLOCK_REALTIME, 0); ++#ifdef CLOCK_TAI ++ test_invalids (CLOCK_TAI, 0); ++#endif ++ test_invalids (CLOCK_MONOTONIC, 0); ++#ifdef CLOCK_BOOTTIME ++ test_invalids (CLOCK_BOOTTIME, 0); ++#endif ++ test_invalids (CLOCK_PROCESS_CPUTIME_ID, 0); ++ test_invalids (CLOCK_REALTIME, TIMER_ABSTIME); ++#ifdef CLOCK_TAI ++ test_invalids (CLOCK_TAI, TIMER_ABSTIME); ++#endif ++ test_invalids (CLOCK_MONOTONIC, TIMER_ABSTIME); ++#ifdef CLOCK_BOOTTIME ++ test_invalids (CLOCK_BOOTTIME, TIMER_ABSTIME); ++#endif ++ test_invalids (CLOCK_PROCESS_CPUTIME_ID, TIMER_ABSTIME); ++ ++ /* Test for various clocks "working". */ ++ ++#define test_interval(c) test_interval_1 (#c, c) ++ test_interval (CLOCK_REALTIME); ++#ifdef CLOCK_TAI ++ test_interval (CLOCK_TAI); ++#endif ++ test_interval (CLOCK_MONOTONIC); ++#ifdef CLOCK_BOOTTIME ++ test_interval (CLOCK_BOOTTIME); ++#endif ++ ++ th = xpthread_create (NULL, chew_cpu, NULL); ++ xpthread_barrier_wait (&barrier); ++ test_interval (CLOCK_PROCESS_CPUTIME_ID); ++ xpthread_cancel (th); ++ ++#define test_abs(c) test_abs_1 (#c, c) ++ test_abs (CLOCK_REALTIME); ++#ifdef CLOCK_TAI ++ test_abs (CLOCK_TAI); ++#endif ++ test_abs (CLOCK_MONOTONIC); ++#ifdef CLOCK_BOOTTIME ++ test_abs (CLOCK_BOOTTIME); ++#endif ++ ++ th = xpthread_create (NULL, chew_cpu, NULL); ++ xpthread_barrier_wait (&barrier); ++ test_abs (CLOCK_PROCESS_CPUTIME_ID); ++ xpthread_cancel (th); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-62188-2.patch b/SOURCES/glibc-RHEL-62188-2.patch new file mode 100644 index 0000000..813c7ff --- /dev/null +++ b/SOURCES/glibc-RHEL-62188-2.patch @@ -0,0 +1,18 @@ +commit 1895a35e7092713b224166d36b9bc26e8eb3371f +Author: DJ Delorie +Date: Tue Oct 8 14:30:21 2024 -0400 + + rt: more clock_nanosleep tests addendum + + Forgot to change the first-line description. + +diff --git a/rt/tst-clock_nanosleep2.c b/rt/tst-clock_nanosleep2.c +index 10c822fd54668531..e9b2a2716d6e9016 100644 +--- a/rt/tst-clock_nanosleep2.c ++++ b/rt/tst-clock_nanosleep2.c +@@ -1,4 +1,4 @@ +-/* Test program for process CPU clocks - invalid inputs, minimum time ++/* Test for clock_nanosleep parameter checks and sleep duration. + Copyright (C) 2024 Free Software Foundation, Inc. + This file is part of the GNU C Library. + diff --git a/SOURCES/glibc-RHEL-63210.patch b/SOURCES/glibc-RHEL-63210.patch new file mode 100644 index 0000000..b1224dc --- /dev/null +++ b/SOURCES/glibc-RHEL-63210.patch @@ -0,0 +1,249 @@ +commit 11e188659db264f6b101d8eb65824ffa5bc91a0a +Author: Frédéric Bérat +Date: Mon Sep 9 14:43:36 2024 +0200 + + libio: Add test case for fflush + + Since one path uses _IO_SYNC and the other _IO_OVERFLOW, the newly added + test cases verifies that `fflush (FILE)` and `fflush (NULL)` are + semantically equivalent from the FILE perspective. + + Reviewed-by: Joseph Myers + +diff --git a/libio/Makefile b/libio/Makefile +index 570fa1a02b3565c8..1d2a7fd8ba1d06c7 100644 +--- a/libio/Makefile ++++ b/libio/Makefile +@@ -79,6 +79,8 @@ tests = \ + tst-fclose-unopened \ + tst-fclose-unopened2 \ + tst-fdopen-seek-failure \ ++ tst-fflush \ ++ tst-fflush-NULL \ + tst-fgetc-after-eof \ + tst-fgetwc \ + tst-fgetws \ +diff --git a/libio/tst-fflush-NULL.c b/libio/tst-fflush-NULL.c +new file mode 100644 +index 0000000000000000..4c8fe7cb87235f34 +--- /dev/null ++++ b/libio/tst-fflush-NULL.c +@@ -0,0 +1,24 @@ ++/* Test that fflush (FILE) and fflush (NULL) are semantically equivalent. ++ This is the `fflush (NULL)` part. ++ ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define FILE_FLUSH_TYPE 0 ++#define S_FLUSH_TYPE "NULL" ++ ++#include "tst-fflush-skeleton.c" +diff --git a/libio/tst-fflush-skeleton.c b/libio/tst-fflush-skeleton.c +new file mode 100644 +index 0000000000000000..6341d3d07976eba8 +--- /dev/null ++++ b/libio/tst-fflush-skeleton.c +@@ -0,0 +1,158 @@ ++/* Test that fflush (FILE) and fflush (NULL) are semantically equivalent. ++ ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* A success on this test doesn't imply the effectiveness of fflush as ++ we can't ensure that the file wasn't already in the expected state ++ before the call of the function. It only ensures that, if the test ++ fails, fflush is broken. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define CONTENT_SZ_MAX 32 ++#define TEST_FILE_COUNT 10 ++ ++struct file_tracking ++{ ++ FILE *file; ++ char *name; ++ int fd; ++ char *mfile; ++} files[TEST_FILE_COUNT]; ++ ++static void ++file_init (int file) ++{ ++ int fd = -1; ++ ++ assert (file < TEST_FILE_COUNT); ++ ++ files[file] = (struct file_tracking) { .fd = -1, }; ++ ++ xclose (create_temp_file ("tst-fflush", &files[file].name)); ++ ++ fd = xopen (files[file].name, O_RDONLY, 0); ++ files[file].mfile = xmmap (NULL, CONTENT_SZ_MAX, PROT_READ, MAP_SHARED, fd); ++ xclose (fd); ++} ++ ++static void ++file_cleanup (int file) ++{ ++ free (files[file].name); ++ xmunmap (files[file].mfile, CONTENT_SZ_MAX); ++ files[file] = (struct file_tracking) { .fd = -1, }; ++} ++ ++static void ++file_changed (int to_check, const char *mode) ++{ ++ struct stat stats = { }; ++ char expected[CONTENT_SZ_MAX] = { }; ++ ++ verbose_printf ("Check that %s (%d) exactly contains the data we put in\n", ++ files[to_check].name, to_check); ++ ++ /* File should contain "N:M" where both N and M are one digit exactly. */ ++ snprintf (expected, sizeof (expected), "%d:%d", FILE_FLUSH_TYPE, to_check); ++ TEST_COMPARE_BLOB (files[to_check].mfile, sizeof (expected), ++ expected, sizeof (expected)); ++ ++ TEST_VERIFY (fstat (files[to_check].fd, &stats) >= 0); ++ TEST_VERIFY (stats.st_size == 3); ++ /* In read mode we expect to be at position 1, in write mode at position 3 */ ++ TEST_COMPARE (lseek (files[to_check].fd, 0, SEEK_CUR), ++ mode[0] == 'r' ? 1 : 3); ++ ++ if (support_record_failure_is_failed ()) ++ FAIL_EXIT1 ("exiting due to previous failure"); ++ ++ /* Not reached if the data doesn't match. */ ++} ++ ++static void ++file_flush (const char *mode) ++{ ++ for (int i = 0; i < TEST_FILE_COUNT; i++) ++ { ++ files[i].file = xfopen (files[i].name, mode); ++ files[i].fd = fileno (files[i].file); ++ } ++ ++ /* Print a unique identifier in each file, that is not too long nor contain ++ new line to not trigger _IO_OVERFLOW/_IO_SYNC. */ ++ for (int i = 0; i < TEST_FILE_COUNT; i++) ++ { ++ if (mode[0] == 'r') ++ fgetc (files[i].file); ++ else ++ fprintf (files[i].file, "%d:%d", FILE_FLUSH_TYPE, i); ++ } ++ ++ if (!FILE_FLUSH_TYPE) ++ TEST_VERIFY (fflush (NULL) == 0); ++ else ++ for (int i = 0; i < TEST_FILE_COUNT; i++) ++ TEST_VERIFY (fflush (files[i].file) == 0); ++ ++ for (int i = 0; i < TEST_FILE_COUNT; i++) ++ { ++ verbose_printf ("Check that file %s has been modified after fflush\n", ++ files[i].name); ++ file_changed (i, mode); ++ } ++ ++ for (int i = 0; i < TEST_FILE_COUNT; i++) ++ xfclose (files[i].file); ++} ++ ++static int ++do_test (void) ++{ ++ for (int i = 0; i < TEST_FILE_COUNT; i++) ++ file_init (i); ++ ++ verbose_printf ("Checking fflush(" S_FLUSH_TYPE "), WRITE mode\n"); ++ file_flush ("w"); ++ ++ verbose_printf ("Checking fflush(" S_FLUSH_TYPE "), READWRITE mode\n"); ++ file_flush ("r+"); ++ ++ for (int i = 0; i < TEST_FILE_COUNT; i++) ++ file_cleanup (i); ++ ++ return 0; ++} ++ ++#include +diff --git a/libio/tst-fflush.c b/libio/tst-fflush.c +new file mode 100644 +index 0000000000000000..d3a4b78f4324c7e9 +--- /dev/null ++++ b/libio/tst-fflush.c +@@ -0,0 +1,24 @@ ++/* Test that fflush (FILE) and fflush (NULL) are semantically equivalent. ++ This is the `fflush (FILE)` part. ++ ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define FILE_FLUSH_TYPE 1 ++#define S_FLUSH_TYPE "FILE" ++ ++#include "tst-fflush-skeleton.c" diff --git a/SOURCES/glibc-RHEL-65280-1.patch b/SOURCES/glibc-RHEL-65280-1.patch new file mode 100644 index 0000000..e596d78 --- /dev/null +++ b/SOURCES/glibc-RHEL-65280-1.patch @@ -0,0 +1,29 @@ +commit 8754a4133e154ca853e6765a3fe5c7a904c77626 +Author: Joseph Myers +Date: Fri May 26 15:03:31 2023 +0000 + + Add AT_RSEQ_* from Linux 6.3 to elf.h + + Linux 6.3 adds constants AT_RSEQ_FEATURE_SIZE and AT_RSEQ_ALIGN; add + them to glibc's elf.h. (Recall that, although elf.h is a + system-independent header, so far we've put AT_* constants there even + if Linux-specific, as discussed in bug 15794. So rather than making + any attempt to fix that issue, the new constants are just added there + alongside the existing ones.) + + Tested for x86_64. + +diff --git a/elf/elf.h b/elf/elf.h +index 4738dfa28f6549fc..076d8e3f696c58f7 100644 +--- a/elf/elf.h ++++ b/elf/elf.h +@@ -1205,6 +1205,9 @@ typedef struct + #define AT_HWCAP2 26 /* More machine-dependent hints about + processor capabilities. */ + ++#define AT_RSEQ_FEATURE_SIZE 27 /* rseq supported feature size. */ ++#define AT_RSEQ_ALIGN 28 /* rseq allocation alignment. */ ++ + #define AT_EXECFN 31 /* Filename of executable. */ + + /* Pointer to the global system page used for system calls and other diff --git a/SOURCES/glibc-RHEL-65280-2.patch b/SOURCES/glibc-RHEL-65280-2.patch new file mode 100644 index 0000000..4172c7d --- /dev/null +++ b/SOURCES/glibc-RHEL-65280-2.patch @@ -0,0 +1,152 @@ +commit 2b92982e2369d292560793bee8e730f695f48ff3 +Author: Michael Jeanson +Date: Wed Jul 3 12:35:34 2024 -0400 + + nptl: fix potential merge of __rseq_* relro symbols + + While working on a patch to add support for the extensible rseq ABI, we + came across an issue where a new 'const' variable would be merged with + the existing '__rseq_size' variable. We tracked this to the use of + '-fmerge-all-constants' which allows the compiler to merge identical + constant variables. This means that all 'const' variables in a compile + unit that are of the same size and are initialized to the same value can + be merged. + + In this specific case, on 32 bit systems 'unsigned int' and 'ptrdiff_t' + are both 4 bytes and initialized to 0 which should trigger the merge. + However for reasons we haven't delved into when the attribute 'section + (".data.rel.ro")' is added to the mix, only variables of the same exact + types are merged. As far as we know this behavior is not specified + anywhere and could change with a new compiler version, hence this patch. + + Move the definitions of these variables into an assembler file and add + hidden writable aliases for internal use. This has the added bonus of + removing the asm workaround to set the values on rseq registration. + + Tested on Debian 12 with GCC 12.2. + + Signed-off-by: Michael Jeanson + Reviewed-by: Mathieu Desnoyers + Reviewed-by: Florian Weimer + +diff --git a/elf/Makefile b/elf/Makefile +index e0a86a305c4dc2ed..ec0d67b1549823ad 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -69,6 +69,7 @@ dl-routines = \ + dl-printf \ + dl-profile \ + dl-reloc \ ++ dl-rseq-symbols \ + dl-runtime \ + dl-scope \ + dl-setup_hash \ +diff --git a/elf/dl-rseq-symbols.S b/elf/dl-rseq-symbols.S +new file mode 100644 +index 0000000000000000..b4bba06a99b0a486 +--- /dev/null ++++ b/elf/dl-rseq-symbols.S +@@ -0,0 +1,64 @@ ++/* Define symbols used by rseq. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#if __WORDSIZE == 64 ++#define RSEQ_OFFSET_SIZE 8 ++#else ++#define RSEQ_OFFSET_SIZE 4 ++#endif ++ ++/* Some targets define a macro to denote the zero register. */ ++#undef zero ++ ++/* Define 2 symbols: '__rseq_size' is public const and '_rseq_size' (an ++ alias of '__rseq_size') is hidden and writable for internal use by the ++ dynamic linker which will initialize the value both symbols point to ++ before copy relocations take place. */ ++ ++ .globl __rseq_size ++ .type __rseq_size, %object ++ .size __rseq_size, 4 ++ .hidden _rseq_size ++ .globl _rseq_size ++ .type _rseq_size, %object ++ .size _rseq_size, 4 ++ .section .data.rel.ro ++ .balign 4 ++__rseq_size: ++_rseq_size: ++ .zero 4 ++ ++/* Define 2 symbols: '__rseq_offset' is public const and '_rseq_offset' (an ++ alias of '__rseq_offset') is hidden and writable for internal use by the ++ dynamic linker which will initialize the value both symbols point to ++ before copy relocations take place. */ ++ ++ .globl __rseq_offset ++ .type __rseq_offset, %object ++ .size __rseq_offset, RSEQ_OFFSET_SIZE ++ .hidden _rseq_offset ++ .globl _rseq_offset ++ .type _rseq_offset, %object ++ .size _rseq_offset, RSEQ_OFFSET_SIZE ++ .section .data.rel.ro ++ .balign RSEQ_OFFSET_SIZE ++__rseq_offset: ++_rseq_offset: ++ .zero RSEQ_OFFSET_SIZE +diff --git a/sysdeps/nptl/dl-tls_init_tp.c b/sysdeps/nptl/dl-tls_init_tp.c +index d5f2587f1348441c..039080d7110f5064 100644 +--- a/sysdeps/nptl/dl-tls_init_tp.c ++++ b/sysdeps/nptl/dl-tls_init_tp.c +@@ -45,8 +45,10 @@ rtld_mutex_dummy (pthread_mutex_t *lock) + #endif + + const unsigned int __rseq_flags; +-const unsigned int __rseq_size attribute_relro; +-const ptrdiff_t __rseq_offset attribute_relro; ++ ++/* The variables are in .data.relro but are not yet write-protected. */ ++extern unsigned int _rseq_size attribute_hidden; ++extern ptrdiff_t _rseq_offset attribute_hidden; + + void + __tls_pre_init_tp (void) +@@ -107,10 +109,7 @@ __tls_init_tp (void) + #endif + if (rseq_register_current_thread (pd, do_rseq)) + { +- /* We need a writable view of the variables. They are in +- .data.relro and are not yet write-protected. */ +- extern unsigned int size __asm__ ("__rseq_size"); +- size = sizeof (pd->rseq_area); ++ _rseq_size = sizeof (pd->rseq_area); + } + + #ifdef RSEQ_SIG +@@ -119,8 +118,7 @@ __tls_init_tp (void) + all targets support __thread_pointer, so set __rseq_offset only + if thre rseq registration may have happened because RSEQ_SIG is + defined. */ +- extern ptrdiff_t offset __asm__ ("__rseq_offset"); +- offset = (char *) &pd->rseq_area - (char *) __thread_pointer (); ++ _rseq_offset = (char *) &pd->rseq_area - (char *) __thread_pointer (); + #endif + } + diff --git a/SOURCES/glibc-RHEL-65280-3.patch b/SOURCES/glibc-RHEL-65280-3.patch new file mode 100644 index 0000000..4e969df --- /dev/null +++ b/SOURCES/glibc-RHEL-65280-3.patch @@ -0,0 +1,136 @@ +commit 2e456ccf0c34a056e3ccafac4a0c7effef14d918 +Author: Florian Weimer +Date: Mon Jul 8 21:14:00 2024 +0200 + + Linux: Make __rseq_size useful for feature detection (bug 31965) + + The __rseq_size value is now the active area of struct rseq + (so 20 initially), not the full struct size including padding + at the end (32 initially). + + Update misc/tst-rseq to print some additional diagnostics. + + Reviewed-by: Michael Jeanson + Reviewed-by: Mathieu Desnoyers + +diff --git a/manual/threads.texi b/manual/threads.texi +index 3fd307e69a8029fa..42e824fcdbec60f6 100644 +--- a/manual/threads.texi ++++ b/manual/threads.texi +@@ -1007,8 +1007,12 @@ This variable is either zero (if restartable sequence registration + failed or has been disabled) or the size of the restartable sequence + registration. This can be different from the size of @code{struct rseq} + if the kernel has extended the size of the registration. If +-registration is successful, @code{__rseq_size} is at least 32 (the +-initial size of @code{struct rseq}). ++registration is successful, @code{__rseq_size} is at least 20 (the ++initially active size of @code{struct rseq}). ++ ++Previous versions of @theglibc{} set this to 32 even if the kernel only ++supported the initial area of 20 bytes because the value included unused ++padding at the end of the restartable sequence area. + @end deftypevar + + @deftypevar {unsigned int} __rseq_flags +diff --git a/sysdeps/nptl/dl-tls_init_tp.c b/sysdeps/nptl/dl-tls_init_tp.c +index 039080d7110f5064..2f56281a02246a09 100644 +--- a/sysdeps/nptl/dl-tls_init_tp.c ++++ b/sysdeps/nptl/dl-tls_init_tp.c +@@ -46,10 +46,6 @@ rtld_mutex_dummy (pthread_mutex_t *lock) + + const unsigned int __rseq_flags; + +-/* The variables are in .data.relro but are not yet write-protected. */ +-extern unsigned int _rseq_size attribute_hidden; +-extern ptrdiff_t _rseq_offset attribute_hidden; +- + void + __tls_pre_init_tp (void) + { +@@ -108,9 +104,7 @@ __tls_init_tp (void) + do_rseq = TUNABLE_GET (rseq, int, NULL); + #endif + if (rseq_register_current_thread (pd, do_rseq)) +- { +- _rseq_size = sizeof (pd->rseq_area); +- } ++ _rseq_size = RSEQ_AREA_SIZE_INITIAL_USED; + + #ifdef RSEQ_SIG + /* This should be a compile-time constant, but the current +diff --git a/sysdeps/unix/sysv/linux/rseq-internal.h b/sysdeps/unix/sysv/linux/rseq-internal.h +index 9e8f99fd51a063b1..ccb16640133fa9e3 100644 +--- a/sysdeps/unix/sysv/linux/rseq-internal.h ++++ b/sysdeps/unix/sysv/linux/rseq-internal.h +@@ -25,15 +25,34 @@ + #include + #include + ++/* 32 is the initially required value for the area size. The ++ actually used rseq size may be less (20 bytes initially). */ ++#define RSEQ_AREA_SIZE_INITIAL 32 ++#define RSEQ_AREA_SIZE_INITIAL_USED 20 ++ ++/* The variables are in .data.relro but are not yet write-protected. */ ++extern unsigned int _rseq_size attribute_hidden; ++extern ptrdiff_t _rseq_offset attribute_hidden; ++ + #ifdef RSEQ_SIG + static inline bool + rseq_register_current_thread (struct pthread *self, bool do_rseq) + { + if (do_rseq) + { ++ unsigned int size; ++#if IS_IN (rtld) ++ /* Use the hidden symbol in ld.so. */ ++ size = _rseq_size; ++#else ++ size = __rseq_size; ++#endif ++ if (size < RSEQ_AREA_SIZE_INITIAL) ++ /* The initial implementation used only 20 bytes out of 32, ++ but still expected size 32. */ ++ size = RSEQ_AREA_SIZE_INITIAL; + int ret = INTERNAL_SYSCALL_CALL (rseq, &self->rseq_area, +- sizeof (self->rseq_area), +- 0, RSEQ_SIG); ++ size, 0, RSEQ_SIG); + if (!INTERNAL_SYSCALL_ERROR_P (ret)) + return true; + } +diff --git a/sysdeps/unix/sysv/linux/tst-rseq.c b/sysdeps/unix/sysv/linux/tst-rseq.c +index 572c11166f8b6533..1d404db610c08fdf 100644 +--- a/sysdeps/unix/sysv/linux/tst-rseq.c ++++ b/sysdeps/unix/sysv/linux/tst-rseq.c +@@ -29,6 +29,7 @@ + # include + # include + # include ++# include + # include + # include + # include "tst-rseq.h" +@@ -42,7 +43,8 @@ do_rseq_main_test (void) + TEST_COMPARE (__rseq_flags, 0); + TEST_VERIFY ((char *) __thread_pointer () + __rseq_offset + == (char *) &pd->rseq_area); +- TEST_COMPARE (__rseq_size, sizeof (pd->rseq_area)); ++ /* The current implementation only supports the initial size. */ ++ TEST_COMPARE (__rseq_size, 20); + } + + static void +@@ -52,6 +54,12 @@ do_rseq_test (void) + { + FAIL_UNSUPPORTED ("kernel does not support rseq, skipping test"); + } ++ printf ("info: __rseq_size: %u\n", __rseq_size); ++ printf ("info: __rseq_offset: %td\n", __rseq_offset); ++ printf ("info: __rseq_flags: %u\n", __rseq_flags); ++ printf ("info: getauxval (AT_RSEQ_FEATURE_SIZE): %ld\n", ++ getauxval (AT_RSEQ_FEATURE_SIZE)); ++ printf ("info: getauxval (AT_RSEQ_ALIGN): %ld\n", getauxval (AT_RSEQ_ALIGN)); + do_rseq_main_test (); + } + #else /* RSEQ_SIG */ diff --git a/SOURCES/glibc-RHEL-65280-4.patch b/SOURCES/glibc-RHEL-65280-4.patch new file mode 100644 index 0000000..55bd8f0 --- /dev/null +++ b/SOURCES/glibc-RHEL-65280-4.patch @@ -0,0 +1,54 @@ +commit 97f60abd25628425971f07e9b0e7f8eec0741235 +Author: Michael Jeanson +Date: Thu Nov 7 22:23:49 2024 +0100 + + nptl: initialize rseq area prior to registration + + Per the rseq syscall documentation, 3 fields are required to be + initialized by userspace prior to registration, they are 'cpu_id', + 'rseq_cs' and 'flags'. Since we have no guarantee that 'struct pthread' + is cleared on all architectures, explicitly set those 3 fields prior to + registration. + + Signed-off-by: Michael Jeanson + Reviewed-by: Florian Weimer + +diff --git a/nptl/descr.h b/nptl/descr.h +index 6484e3703f9a0a97..c08c5149c7239e7c 100644 +--- a/nptl/descr.h ++++ b/nptl/descr.h +@@ -424,6 +424,8 @@ struct pthread + { + uint32_t cpu_id_start; + uint32_t cpu_id; ++ uint64_t rseq_cs; ++ uint32_t flags; + }; + char pad[32]; /* Original rseq area size. */ + } rseq_area __attribute__ ((aligned (32))); +diff --git a/sysdeps/unix/sysv/linux/rseq-internal.h b/sysdeps/unix/sysv/linux/rseq-internal.h +index ccb16640133fa9e3..7e70ae7ebdee4917 100644 +--- a/sysdeps/unix/sysv/linux/rseq-internal.h ++++ b/sysdeps/unix/sysv/linux/rseq-internal.h +@@ -51,11 +51,21 @@ rseq_register_current_thread (struct pthread *self, bool do_rseq) + /* The initial implementation used only 20 bytes out of 32, + but still expected size 32. */ + size = RSEQ_AREA_SIZE_INITIAL; ++ ++ /* Initialize the rseq fields that are read by the kernel on ++ registration, there is no guarantee that struct pthread is ++ cleared on all architectures. */ ++ THREAD_SETMEM (self, rseq_area.cpu_id, RSEQ_CPU_ID_UNINITIALIZED); ++ THREAD_SETMEM (self, rseq_area.rseq_cs, 0); ++ THREAD_SETMEM (self, rseq_area.flags, 0); ++ + int ret = INTERNAL_SYSCALL_CALL (rseq, &self->rseq_area, + size, 0, RSEQ_SIG); + if (!INTERNAL_SYSCALL_ERROR_P (ret)) + return true; + } ++ /* When rseq is disabled by tunables or the registration fails, inform ++ userspace by setting 'cpu_id' to RSEQ_CPU_ID_REGISTRATION_FAILED. */ + THREAD_SETMEM (self, rseq_area.cpu_id, RSEQ_CPU_ID_REGISTRATION_FAILED); + return false; + } diff --git a/SOURCES/glibc-RHEL-65280-5.patch b/SOURCES/glibc-RHEL-65280-5.patch new file mode 100644 index 0000000..8265f04 --- /dev/null +++ b/SOURCES/glibc-RHEL-65280-5.patch @@ -0,0 +1,28 @@ +commit d9f40387d3305d97e30a8cf8724218c42a63680a +Author: Michael Jeanson +Date: Wed Nov 20 14:15:42 2024 -0500 + + nptl: initialize cpu_id_start prior to rseq registration + + When adding explicit initialization of rseq fields prior to + registration, I glossed over the fact that 'cpu_id_start' is also + documented as initialized by user-space. + + While current kernels don't validate the content of this field on + registration, future ones could. + + Signed-off-by: Michael Jeanson + Reviewed-by: Mathieu Desnoyers + +diff --git a/sysdeps/unix/sysv/linux/rseq-internal.h b/sysdeps/unix/sysv/linux/rseq-internal.h +index 7e70ae7ebdee4917..c108a12a6227eeac 100644 +--- a/sysdeps/unix/sysv/linux/rseq-internal.h ++++ b/sysdeps/unix/sysv/linux/rseq-internal.h +@@ -56,6 +56,7 @@ rseq_register_current_thread (struct pthread *self, bool do_rseq) + registration, there is no guarantee that struct pthread is + cleared on all architectures. */ + THREAD_SETMEM (self, rseq_area.cpu_id, RSEQ_CPU_ID_UNINITIALIZED); ++ THREAD_SETMEM (self, rseq_area.cpu_id_start, 0); + THREAD_SETMEM (self, rseq_area.rseq_cs, 0); + THREAD_SETMEM (self, rseq_area.flags, 0); + diff --git a/SOURCES/glibc-RHEL-65280-6.patch b/SOURCES/glibc-RHEL-65280-6.patch new file mode 100644 index 0000000..80d354a --- /dev/null +++ b/SOURCES/glibc-RHEL-65280-6.patch @@ -0,0 +1,158 @@ +commit c813c1490d5d8640a94fced10fc7674a48737b96 +Author: Michael Jeanson +Date: Wed Jul 10 15:37:28 2024 -0400 + + nptl: Add rseq auxvals + + Get the rseq feature size and alignment requirement from the auxiliary + vector for use inside the dynamic loader. Use '__rseq_size' directly to + store the feature size. If the main thread registration fails or is + disabled by tunable, reset the value to 0. + + This will be used in the TLS block allocator to compute the size and + alignment of the rseq area block for the extended ABI support. + + Signed-off-by: Michael Jeanson + Reviewed-by: Mathieu Desnoyers + Reviewed-by: Florian Weimer + +Conflicts: + sysdeps/nptl/dl-tls_init_tp.c: Adjust for skipped commit: + 33237fe83d553dff (Remove --enable-tunables configure option) + +diff --git a/sysdeps/nptl/dl-tls_init_tp.c b/sysdeps/nptl/dl-tls_init_tp.c +index 2f56281a02246a09..20552b11843148fb 100644 +--- a/sysdeps/nptl/dl-tls_init_tp.c ++++ b/sysdeps/nptl/dl-tls_init_tp.c +@@ -46,6 +46,8 @@ rtld_mutex_dummy (pthread_mutex_t *lock) + + const unsigned int __rseq_flags; + ++size_t _rseq_align attribute_hidden; ++ + void + __tls_pre_init_tp (void) + { +@@ -99,12 +101,17 @@ __tls_init_tp (void) + } + + { ++ /* If the registration fails or is disabled by tunable, the public ++ '__rseq_size' will be set to '0' regardless of the feature size of the ++ allocated rseq area. An rseq area of at least 32 bytes is always ++ allocated since application code is allowed to check the status of the ++ rseq registration by reading the content of the 'cpu_id' field. */ + bool do_rseq = true; + #if HAVE_TUNABLES + do_rseq = TUNABLE_GET (rseq, int, NULL); + #endif +- if (rseq_register_current_thread (pd, do_rseq)) +- _rseq_size = RSEQ_AREA_SIZE_INITIAL_USED; ++ if (!rseq_register_current_thread (pd, do_rseq)) ++ _rseq_size = 0; + + #ifdef RSEQ_SIG + /* This should be a compile-time constant, but the current +diff --git a/sysdeps/unix/sysv/linux/dl-parse_auxv.h b/sysdeps/unix/sysv/linux/dl-parse_auxv.h +index bf9374371eb217fc..44c135c56570134e 100644 +--- a/sysdeps/unix/sysv/linux/dl-parse_auxv.h ++++ b/sysdeps/unix/sysv/linux/dl-parse_auxv.h +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + + typedef ElfW(Addr) dl_parse_auxv_t[AT_MINSIGSTKSZ + 1]; + +@@ -57,5 +58,17 @@ void _dl_parse_auxv (ElfW(auxv_t) *av, dl_parse_auxv_t auxv_values) + GLRO(dl_sysinfo) = auxv_values[AT_SYSINFO]; + #endif + ++ /* Get the rseq feature size, with a minimum of RSEQ_AREA_SIZE_INITIAL_USED ++ (20) for kernels that don't have AT_RSEQ_FEATURE_SIZE. Limit the feature ++ size to RSEQ_AREA_SIZE_MAX_USED (28) which fits the rseq area in 'struct ++ pthread' and represents the maximum feature size of currently released ++ kernels. Since no kernels currently cross the 32 bytes of the original ++ ABI, the semantics of a feature size of 32 or more are still undetermined. ++ */ ++ _rseq_size = MIN (MAX (auxv_values[AT_RSEQ_FEATURE_SIZE], ++ RSEQ_AREA_SIZE_INITIAL_USED), ++ RSEQ_AREA_SIZE_MAX_USED); ++ _rseq_align = MAX (auxv_values[AT_RSEQ_ALIGN], RSEQ_MIN_ALIGN); ++ + DL_PLATFORM_AUXV + } +diff --git a/sysdeps/unix/sysv/linux/rseq-internal.h b/sysdeps/unix/sysv/linux/rseq-internal.h +index c108a12a6227eeac..f4027b09519a652b 100644 +--- a/sysdeps/unix/sysv/linux/rseq-internal.h ++++ b/sysdeps/unix/sysv/linux/rseq-internal.h +@@ -25,13 +25,31 @@ + #include + #include + +-/* 32 is the initially required value for the area size. The +- actually used rseq size may be less (20 bytes initially). */ ++/* Minimum size of the rseq area allocation required by the syscall. The ++ actually used rseq feature size may be less (20 bytes initially). */ + #define RSEQ_AREA_SIZE_INITIAL 32 ++ ++/* Minimum used feature size of the rseq area. */ + #define RSEQ_AREA_SIZE_INITIAL_USED 20 + +-/* The variables are in .data.relro but are not yet write-protected. */ ++/* Maximum currently used feature size of the rseq area. */ ++#define RSEQ_AREA_SIZE_MAX_USED 28 ++ ++/* Minimum alignment of the rseq area. */ ++#define RSEQ_MIN_ALIGN 32 ++ ++/* Alignment requirement of the rseq area. ++ Populated from the auxiliary vector with a minimum of '32'. ++ In .data.relro but not yet write-protected. */ ++extern size_t _rseq_align attribute_hidden; ++ ++/* Size of the active features in the rseq area. ++ Populated from the auxiliary vector with a minimum of '20'. ++ In .data.relro but not yet write-protected. */ + extern unsigned int _rseq_size attribute_hidden; ++ ++/* Offset from the thread pointer to the rseq area. ++ In .data.relro but not yet write-protected. */ + extern ptrdiff_t _rseq_offset attribute_hidden; + + #ifdef RSEQ_SIG +diff --git a/sysdeps/unix/sysv/linux/tst-rseq.c b/sysdeps/unix/sysv/linux/tst-rseq.c +index 1d404db610c08fdf..5946db73d9b079c3 100644 +--- a/sysdeps/unix/sysv/linux/tst-rseq.c ++++ b/sysdeps/unix/sysv/linux/tst-rseq.c +@@ -38,13 +38,15 @@ static void + do_rseq_main_test (void) + { + struct pthread *pd = THREAD_SELF; ++ size_t rseq_feature_size = MIN (MAX (getauxval (AT_RSEQ_FEATURE_SIZE), ++ RSEQ_AREA_SIZE_INITIAL_USED), ++ RSEQ_AREA_SIZE_MAX_USED); + + TEST_VERIFY_EXIT (rseq_thread_registered ()); + TEST_COMPARE (__rseq_flags, 0); + TEST_VERIFY ((char *) __thread_pointer () + __rseq_offset + == (char *) &pd->rseq_area); +- /* The current implementation only supports the initial size. */ +- TEST_COMPARE (__rseq_size, 20); ++ TEST_COMPARE (__rseq_size, rseq_feature_size); + } + + static void +diff --git a/sysdeps/unix/sysv/linux/tst-rseq.h b/sysdeps/unix/sysv/linux/tst-rseq.h +index a476c316fc2671a0..86cf50fbeff32384 100644 +--- a/sysdeps/unix/sysv/linux/tst-rseq.h ++++ b/sysdeps/unix/sysv/linux/tst-rseq.h +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + + static inline bool + rseq_thread_registered (void) diff --git a/SOURCES/glibc-RHEL-65280-7.patch b/SOURCES/glibc-RHEL-65280-7.patch new file mode 100644 index 0000000..464d16e --- /dev/null +++ b/SOURCES/glibc-RHEL-65280-7.patch @@ -0,0 +1,138 @@ +This reverts glibc-RHEL-65280-6.patch. + +diff --git a/sysdeps/nptl/dl-tls_init_tp.c b/sysdeps/nptl/dl-tls_init_tp.c +index 20552b11843148fb..2f56281a02246a09 100644 +--- a/sysdeps/nptl/dl-tls_init_tp.c ++++ b/sysdeps/nptl/dl-tls_init_tp.c +@@ -46,8 +46,6 @@ rtld_mutex_dummy (pthread_mutex_t *lock) + + const unsigned int __rseq_flags; + +-size_t _rseq_align attribute_hidden; +- + void + __tls_pre_init_tp (void) + { +@@ -101,17 +99,12 @@ __tls_init_tp (void) + } + + { +- /* If the registration fails or is disabled by tunable, the public +- '__rseq_size' will be set to '0' regardless of the feature size of the +- allocated rseq area. An rseq area of at least 32 bytes is always +- allocated since application code is allowed to check the status of the +- rseq registration by reading the content of the 'cpu_id' field. */ + bool do_rseq = true; + #if HAVE_TUNABLES + do_rseq = TUNABLE_GET (rseq, int, NULL); + #endif +- if (!rseq_register_current_thread (pd, do_rseq)) +- _rseq_size = 0; ++ if (rseq_register_current_thread (pd, do_rseq)) ++ _rseq_size = RSEQ_AREA_SIZE_INITIAL_USED; + + #ifdef RSEQ_SIG + /* This should be a compile-time constant, but the current +diff --git a/sysdeps/unix/sysv/linux/dl-parse_auxv.h b/sysdeps/unix/sysv/linux/dl-parse_auxv.h +index 44c135c56570134e..bf9374371eb217fc 100644 +--- a/sysdeps/unix/sysv/linux/dl-parse_auxv.h ++++ b/sysdeps/unix/sysv/linux/dl-parse_auxv.h +@@ -21,7 +21,6 @@ + #include + #include + #include +-#include + + typedef ElfW(Addr) dl_parse_auxv_t[AT_MINSIGSTKSZ + 1]; + +@@ -58,17 +57,5 @@ void _dl_parse_auxv (ElfW(auxv_t) *av, dl_parse_auxv_t auxv_values) + GLRO(dl_sysinfo) = auxv_values[AT_SYSINFO]; + #endif + +- /* Get the rseq feature size, with a minimum of RSEQ_AREA_SIZE_INITIAL_USED +- (20) for kernels that don't have AT_RSEQ_FEATURE_SIZE. Limit the feature +- size to RSEQ_AREA_SIZE_MAX_USED (28) which fits the rseq area in 'struct +- pthread' and represents the maximum feature size of currently released +- kernels. Since no kernels currently cross the 32 bytes of the original +- ABI, the semantics of a feature size of 32 or more are still undetermined. +- */ +- _rseq_size = MIN (MAX (auxv_values[AT_RSEQ_FEATURE_SIZE], +- RSEQ_AREA_SIZE_INITIAL_USED), +- RSEQ_AREA_SIZE_MAX_USED); +- _rseq_align = MAX (auxv_values[AT_RSEQ_ALIGN], RSEQ_MIN_ALIGN); +- + DL_PLATFORM_AUXV + } +diff --git a/sysdeps/unix/sysv/linux/rseq-internal.h b/sysdeps/unix/sysv/linux/rseq-internal.h +index f4027b09519a652b..c108a12a6227eeac 100644 +--- a/sysdeps/unix/sysv/linux/rseq-internal.h ++++ b/sysdeps/unix/sysv/linux/rseq-internal.h +@@ -25,31 +25,13 @@ + #include + #include + +-/* Minimum size of the rseq area allocation required by the syscall. The +- actually used rseq feature size may be less (20 bytes initially). */ ++/* 32 is the initially required value for the area size. The ++ actually used rseq size may be less (20 bytes initially). */ + #define RSEQ_AREA_SIZE_INITIAL 32 +- +-/* Minimum used feature size of the rseq area. */ + #define RSEQ_AREA_SIZE_INITIAL_USED 20 + +-/* Maximum currently used feature size of the rseq area. */ +-#define RSEQ_AREA_SIZE_MAX_USED 28 +- +-/* Minimum alignment of the rseq area. */ +-#define RSEQ_MIN_ALIGN 32 +- +-/* Alignment requirement of the rseq area. +- Populated from the auxiliary vector with a minimum of '32'. +- In .data.relro but not yet write-protected. */ +-extern size_t _rseq_align attribute_hidden; +- +-/* Size of the active features in the rseq area. +- Populated from the auxiliary vector with a minimum of '20'. +- In .data.relro but not yet write-protected. */ ++/* The variables are in .data.relro but are not yet write-protected. */ + extern unsigned int _rseq_size attribute_hidden; +- +-/* Offset from the thread pointer to the rseq area. +- In .data.relro but not yet write-protected. */ + extern ptrdiff_t _rseq_offset attribute_hidden; + + #ifdef RSEQ_SIG +diff --git a/sysdeps/unix/sysv/linux/tst-rseq.c b/sysdeps/unix/sysv/linux/tst-rseq.c +index 5946db73d9b079c3..1d404db610c08fdf 100644 +--- a/sysdeps/unix/sysv/linux/tst-rseq.c ++++ b/sysdeps/unix/sysv/linux/tst-rseq.c +@@ -38,15 +38,13 @@ static void + do_rseq_main_test (void) + { + struct pthread *pd = THREAD_SELF; +- size_t rseq_feature_size = MIN (MAX (getauxval (AT_RSEQ_FEATURE_SIZE), +- RSEQ_AREA_SIZE_INITIAL_USED), +- RSEQ_AREA_SIZE_MAX_USED); + + TEST_VERIFY_EXIT (rseq_thread_registered ()); + TEST_COMPARE (__rseq_flags, 0); + TEST_VERIFY ((char *) __thread_pointer () + __rseq_offset + == (char *) &pd->rseq_area); +- TEST_COMPARE (__rseq_size, rseq_feature_size); ++ /* The current implementation only supports the initial size. */ ++ TEST_COMPARE (__rseq_size, 20); + } + + static void +diff --git a/sysdeps/unix/sysv/linux/tst-rseq.h b/sysdeps/unix/sysv/linux/tst-rseq.h +index 86cf50fbeff32384..a476c316fc2671a0 100644 +--- a/sysdeps/unix/sysv/linux/tst-rseq.h ++++ b/sysdeps/unix/sysv/linux/tst-rseq.h +@@ -23,7 +23,6 @@ + #include + #include + #include +-#include + + static inline bool + rseq_thread_registered (void) diff --git a/SOURCES/glibc-RHEL-65355-1.patch b/SOURCES/glibc-RHEL-65355-1.patch new file mode 100644 index 0000000..333f00d --- /dev/null +++ b/SOURCES/glibc-RHEL-65355-1.patch @@ -0,0 +1,223 @@ +commit a3a5634d9b0e193502d16488205452598dc4aa74 +Author: Arjun Shankar +Date: Tue Jan 14 02:52:09 2025 +0100 + + manual: Consolidate POSIX Semaphores docs in Threads chapter + + This commit moves the `sem_*' family of functions from the IPC chapter, + replacing them with a reference to their new location in the Threads + chapter. `sem_clockwait' is also moved out of the Non-POSIX Extensions + subsection since it is now included in the standard since Issue 8: + https://pubs.opengroup.org/onlinepubs/9799919799/functions/sem_clockwait.html + + Reviewed-by: Adhemerval Zanella + +Conflicts: + manual/ipc.texi (fixup context) + +diff --git a/manual/ipc.texi b/manual/ipc.texi +index 73189960c46c908a..f9c763835961ec32 100644 +--- a/manual/ipc.texi ++++ b/manual/ipc.texi +@@ -46,71 +46,6 @@ by @theglibc{}. + @end deftypefun + + @subsection POSIX Semaphores +- +-@deftypefun int sem_init (sem_t *@var{sem}, int @var{pshared}, unsigned int @var{value}) +-@safety{@prelim{}@mtsafe{}@assafe{}@acunsafe{@acucorrupt{}}} +-@c Does not atomically update sem_t therefore AC-unsafe +-@c because it can leave sem_t partially initialized. +-@end deftypefun +- +-@deftypefun int sem_destroy (sem_t *@var{sem}) +-@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +-@c Function does nothing and is therefore always safe. +-@end deftypefun +- +-@deftypefun {sem_t *} sem_open (const char *@var{name}, int @var{oflag}, ...) +-@safety{@prelim{}@mtsafe{}@asunsafe{@asuinit{}}@acunsafe{@acuinit{}}} +-@c pthread_once asuinit +-@c +-@c We are AC-Unsafe becuase we use pthread_once to initialize +-@c a global variable that holds the location of the mounted +-@c shmfs on Linux. +-@end deftypefun +- +-@deftypefun int sem_close (sem_t *@var{sem}) +-@safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}} +-@c lll_lock asulock aculock +-@c twalk mtsrace{:root} +-@c +-@c We are AS-unsafe because we take a non-recursive lock. +-@c We are AC-unsafe because several internal data structures +-@c are not updated atomically. +-@end deftypefun +- +-@deftypefun int sem_unlink (const char *@var{name}) +-@safety{@prelim{}@mtsafe{}@asunsafe{@asuinit{}}@acunsafe{@acucorrupt{}}} +-@c pthread_once asuinit acucorrupt aculock +-@c mempcpy acucorrupt +-@end deftypefun +- +-@deftypefun int sem_wait (sem_t *@var{sem}) +-@safety{@prelim{}@mtsafe{}@assafe{}@acunsafe{@acucorrupt{}}} +-@c atomic_increment (nwaiters) acucorrupt +-@c +-@c Given the use atomic operations this function seems +-@c to be AS-safe. It is AC-unsafe because there is still +-@c a window between atomic_decrement and the pthread_push +-@c of the handler that undoes that operation. A cancellation +-@c at that point would fail to remove the process from the +-@c waiters count. +-@end deftypefun +- +-@deftypefun int sem_timedwait (sem_t *@var{sem}, const struct timespec *@var{abstime}) +-@safety{@prelim{}@mtsafe{}@assafe{}@acunsafe{@acucorrupt{}}} +-@c Same safety issues as sem_wait. +-@end deftypefun +- +-@deftypefun int sem_trywait (sem_t *@var{sem}) +-@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +-@c All atomic operations are safe in all contexts. +-@end deftypefun +- +-@deftypefun int sem_post (sem_t *@var{sem}) +-@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +-@c Same safety as sem_trywait. +-@end deftypefun +- +-@deftypefun int sem_getvalue (sem_t *@var{sem}, int *@var{sval}) +-@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +-@c Atomic write of a value is safe in all contexts. +-@end deftypefun ++@Theglibc{} provides POSIX semaphores as well. These functions' names begin ++with @code{sem_} and they are declared in @file{semaphore.h}. @xref{POSIX ++Semaphores}. +diff --git a/manual/threads.texi b/manual/threads.texi +index 42e824fcdbec60f6..a6b30c099b5a1323 100644 +--- a/manual/threads.texi ++++ b/manual/threads.texi +@@ -554,6 +554,8 @@ This section describes the @glibcadj{} POSIX Threads implementation. + @menu + * Thread-specific Data:: Support for creating and + managing thread-specific data ++* POSIX Semaphores:: Support for process and thread ++ synchronization using semaphores + * Non-POSIX Extensions:: Additional functions to extend + POSIX Thread functionality + @end menu +@@ -615,6 +617,86 @@ Associate the thread-specific @var{value} with @var{key} in the calling thread. + @end deftypefun + + ++@node POSIX Semaphores ++@subsection POSIX Semaphores ++ ++@deftypefun int sem_init (sem_t *@var{sem}, int @var{pshared}, unsigned int @var{value}) ++@safety{@prelim{}@mtsafe{}@assafe{}@acunsafe{@acucorrupt{}}} ++@c Does not atomically update sem_t therefore AC-unsafe ++@c because it can leave sem_t partially initialized. ++@end deftypefun ++ ++@deftypefun int sem_destroy (sem_t *@var{sem}) ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++@c Function does nothing and is therefore always safe. ++@end deftypefun ++ ++@deftypefun {sem_t *} sem_open (const char *@var{name}, int @var{oflag}, ...) ++@safety{@prelim{}@mtsafe{}@asunsafe{@asuinit{}}@acunsafe{@acuinit{}}} ++@c pthread_once asuinit ++@c ++@c We are AC-Unsafe because we use pthread_once to initialize ++@c a global variable that holds the location of the mounted ++@c shmfs on Linux. ++@end deftypefun ++ ++@deftypefun int sem_close (sem_t *@var{sem}) ++@safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}} ++@c lll_lock asulock aculock ++@c twalk mtsrace{:root} ++@c ++@c We are AS-unsafe because we take a non-recursive lock. ++@c We are AC-unsafe because several internal data structures ++@c are not updated atomically. ++@end deftypefun ++ ++@deftypefun int sem_unlink (const char *@var{name}) ++@safety{@prelim{}@mtsafe{}@asunsafe{@asuinit{}}@acunsafe{@acucorrupt{}}} ++@c pthread_once asuinit acucorrupt aculock ++@c mempcpy acucorrupt ++@end deftypefun ++ ++@deftypefun int sem_wait (sem_t *@var{sem}) ++@safety{@prelim{}@mtsafe{}@assafe{}@acunsafe{@acucorrupt{}}} ++@c atomic_fetch_add_relaxed (nwaiters) acucorrupt ++@c ++@c Given the use atomic operations this function seems ++@c to be AS-safe. It is AC-unsafe because there is still ++@c a window between atomic_fetch_add_relaxed and the pthread_push ++@c of the handler that undoes that operation. A cancellation ++@c at that point would fail to remove the process from the ++@c waiters count. ++@end deftypefun ++ ++@deftypefun int sem_timedwait (sem_t *@var{sem}, const struct timespec *@var{abstime}) ++@safety{@prelim{}@mtsafe{}@assafe{}@acunsafe{@acucorrupt{}}} ++@c Same safety issues as sem_wait. ++@end deftypefun ++ ++@deftypefun int sem_clockwait (sem_t *@var{sem}, clockid_t @var{clockid}, const struct timespec *@var{abstime}) ++@safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}} ++Behaves like @code{sem_timedwait} except the time @var{abstime} is measured ++against the clock specified by @var{clockid} rather than ++@code{CLOCK_REALTIME}. Currently, @var{clockid} must be either ++@code{CLOCK_MONOTONIC} or @code{CLOCK_REALTIME}. ++@end deftypefun ++ ++@deftypefun int sem_trywait (sem_t *@var{sem}) ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++@c All atomic operations are safe in all contexts. ++@end deftypefun ++ ++@deftypefun int sem_post (sem_t *@var{sem}) ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++@c Same safety as sem_trywait. ++@end deftypefun ++ ++@deftypefun int sem_getvalue (sem_t *@var{sem}, int *@var{sval}) ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++@c Atomic write of a value is safe in all contexts. ++@end deftypefun ++ ++ + @node Non-POSIX Extensions + @subsection Non-POSIX Extensions + +@@ -752,16 +834,6 @@ freed. + @Theglibc{} provides several waiting functions that expect an explicit + @code{clockid_t} argument. + +-@comment semaphore.h +-@comment POSIX-proposed +-@deftypefun int sem_clockwait (sem_t *@var{sem}, clockid_t @var{clockid}, const struct timespec *@var{abstime}) +-@safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}} +-Behaves like @code{sem_timedwait} except the time @var{abstime} is measured +-against the clock specified by @var{clockid} rather than +-@code{CLOCK_REALTIME}. Currently, @var{clockid} must be either +-@code{CLOCK_MONOTONIC} or @code{CLOCK_REALTIME}. +-@end deftypefun +- + @comment pthread.h + @comment POSIX-proposed + @deftypefun int pthread_cond_clockwait (pthread_cond_t *@var{cond}, pthread_mutex_t *@var{mutex}, clockid_t @var{clockid}, const struct timespec *@var{abstime}) +@@ -835,6 +907,9 @@ Currently, @var{clockid} must be either @code{CLOCK_MONOTONIC} or + @code{CLOCK_REALTIME}. + @end deftypefun + ++The @code{sem_clockwait} function also works using a @code{clockid_t} ++argument. @xref{POSIX Semaphores}. ++ + @node Single-Threaded + @subsubsection Detecting Single-Threaded Execution + diff --git a/SOURCES/glibc-RHEL-65355-2.patch b/SOURCES/glibc-RHEL-65355-2.patch new file mode 100644 index 0000000..d0d20ea --- /dev/null +++ b/SOURCES/glibc-RHEL-65355-2.patch @@ -0,0 +1,111 @@ +commit 47c4f4045caaaad1e6165cb638e45d633d6ca97f +Author: Arjun Shankar +Date: Tue Jan 14 02:52:10 2025 +0100 + + manual: Add links to POSIX Semaphores man-pages documentation + + The POSIX Semaphores functions are currently undocumented in our info + pages. This commit adds links to the man-pages documentation for all + the `sem_*' functions (except `sem_clockwait') so that they refer to + some useful documentation instead of just being stubs. `sem_clockwait' + isn't documented by man-pages but thankfully already has a small useful + blurb in our own docs. + + Reviewed-by: Adhemerval Zanella + +diff --git a/manual/threads.texi b/manual/threads.texi +index a6b30c099b5a1323..f6cb7974479f75e3 100644 +--- a/manual/threads.texi ++++ b/manual/threads.texi +@@ -621,18 +621,24 @@ Associate the thread-specific @var{value} with @var{key} in the calling thread. + @subsection POSIX Semaphores + + @deftypefun int sem_init (sem_t *@var{sem}, int @var{pshared}, unsigned int @var{value}) ++@standards{POSIX.1-2008, semaphore.h} + @safety{@prelim{}@mtsafe{}@assafe{}@acunsafe{@acucorrupt{}}} ++@manpagefunctionstub{sem_init,3} + @c Does not atomically update sem_t therefore AC-unsafe + @c because it can leave sem_t partially initialized. + @end deftypefun + + @deftypefun int sem_destroy (sem_t *@var{sem}) ++@standards{POSIX.1-2008, semaphore.h} + @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++@manpagefunctionstub{sem_destroy,3} + @c Function does nothing and is therefore always safe. + @end deftypefun + + @deftypefun {sem_t *} sem_open (const char *@var{name}, int @var{oflag}, ...) ++@standards{POSIX.1-2008, semaphore.h} + @safety{@prelim{}@mtsafe{}@asunsafe{@asuinit{}}@acunsafe{@acuinit{}}} ++@manpagefunctionstub{sem_open,3} + @c pthread_once asuinit + @c + @c We are AC-Unsafe because we use pthread_once to initialize +@@ -641,7 +647,9 @@ Associate the thread-specific @var{value} with @var{key} in the calling thread. + @end deftypefun + + @deftypefun int sem_close (sem_t *@var{sem}) ++@standards{POSIX.1-2008, semaphore.h} + @safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}} ++@manpagefunctionstub{sem_close,3} + @c lll_lock asulock aculock + @c twalk mtsrace{:root} + @c +@@ -651,13 +659,17 @@ Associate the thread-specific @var{value} with @var{key} in the calling thread. + @end deftypefun + + @deftypefun int sem_unlink (const char *@var{name}) ++@standards{POSIX.1-2008, semaphore.h} + @safety{@prelim{}@mtsafe{}@asunsafe{@asuinit{}}@acunsafe{@acucorrupt{}}} ++@manpagefunctionstub{sem_unlink,3} + @c pthread_once asuinit acucorrupt aculock + @c mempcpy acucorrupt + @end deftypefun + + @deftypefun int sem_wait (sem_t *@var{sem}) ++@standards{POSIX.1-2008, semaphore.h} + @safety{@prelim{}@mtsafe{}@assafe{}@acunsafe{@acucorrupt{}}} ++@manpagefunctionstub{sem_wait,3} + @c atomic_fetch_add_relaxed (nwaiters) acucorrupt + @c + @c Given the use atomic operations this function seems +@@ -669,11 +681,14 @@ Associate the thread-specific @var{value} with @var{key} in the calling thread. + @end deftypefun + + @deftypefun int sem_timedwait (sem_t *@var{sem}, const struct timespec *@var{abstime}) ++@standards{POSIX.1-2008, semaphore.h} + @safety{@prelim{}@mtsafe{}@assafe{}@acunsafe{@acucorrupt{}}} ++@manpagefunctionstub{sem_timedwait,3} + @c Same safety issues as sem_wait. + @end deftypefun + + @deftypefun int sem_clockwait (sem_t *@var{sem}, clockid_t @var{clockid}, const struct timespec *@var{abstime}) ++@standards{POSIX.1-2024, semaphore.h} + @safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}} + Behaves like @code{sem_timedwait} except the time @var{abstime} is measured + against the clock specified by @var{clockid} rather than +@@ -682,17 +697,23 @@ against the clock specified by @var{clockid} rather than + @end deftypefun + + @deftypefun int sem_trywait (sem_t *@var{sem}) ++@standards{POSIX.1-2008, semaphore.h} + @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++@manpagefunctionstub{sem_trywait,3} + @c All atomic operations are safe in all contexts. + @end deftypefun + + @deftypefun int sem_post (sem_t *@var{sem}) ++@standards{POSIX.1-2008, semaphore.h} + @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++@manpagefunctionstub{sem_post,3} + @c Same safety as sem_trywait. + @end deftypefun + + @deftypefun int sem_getvalue (sem_t *@var{sem}, int *@var{sval}) ++@standards{POSIX.1-2008, semaphore.h} + @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++@manpagefunctionstub{sem_getvalue,3} + @c Atomic write of a value is safe in all contexts. + @end deftypefun + diff --git a/SOURCES/glibc-RHEL-67593.patch b/SOURCES/glibc-RHEL-67593.patch new file mode 100644 index 0000000..a468108 --- /dev/null +++ b/SOURCES/glibc-RHEL-67593.patch @@ -0,0 +1,85 @@ +From bb6496b96444dfd55d7105396780f6eba14b1cd9 Mon Sep 17 00:00:00 2001 +From: DJ Delorie +Date: Fri, 17 Jan 2025 17:34:02 -0500 +Subject: manual: Update signal descriptions + +Based on auditing all the signals and source trees for Hurd and +Linux... + +SIGSYS - This is not used for a bad system call (ENOSYS is used +for that). This is used by SECCOMP and some cases where an invalid +sub-function was requested. + +SIGSTKFLT - Note it used to be a coprocessor stack fault but is now +obsolete and available for general user use. + +SIGLOST - Hurd only now; note that its original purpose as an NFS +lock lost signal is obsolete. + +SIGPWR - Note this is for power lost *and* power restored, and is +more a user-mode signal than a kernel-generated signal. + +Reviewed-by: Florian Weimer + +diff --git a/manual/signal.texi b/manual/signal.texi +index 2012980efe..842b4e49a2 100644 +--- a/manual/signal.texi ++++ b/manual/signal.texi +@@ -427,9 +427,18 @@ failure to properly emulate them. + + @deftypevr Macro int SIGSYS + @standards{Unix, signal.h} +-Bad system call; that is to say, the instruction to trap to the +-operating system was executed, but the code number for the system call +-to perform was invalid. ++System call event. This signal may be generated by a valid system ++call which requested an invalid sub-function, and also by the SECCOMP ++filter when it filters or traps a system call. ++ ++If the system call itself is invalid or unsupported by the kernel, the ++call will not raise this signal, but will return @code{ENOSYS}. ++@end deftypevr ++ ++@deftypevr Macro int SIGSTKFLT ++Coprocessor stack fault. Obsolete, no longer generated. This signal ++may be used by applications in much the way @code{SIGUSR1} and ++@code{SIGUSR2} are. + @end deftypevr + + @node Termination Signals +@@ -752,12 +761,11 @@ that isn't connected. @xref{Sending Data}. + @deftypevr Macro int SIGLOST + @standards{GNU, signal.h} + @cindex lost resource signal +-Resource lost. This signal is generated when you have an advisory lock +-on an NFS file, and the NFS server reboots and forgets about your lock. +- +-On @gnuhurdsystems{}, @code{SIGLOST} is generated when any server program +-dies unexpectedly. It is usually fine to ignore the signal; whatever +-call was made to the server that died just returns an error. ++Resource lost. On @gnuhurdsystems{}, @code{SIGLOST} is generated when ++any server program dies unexpectedly. It is usually fine to ignore ++the signal; whatever call was made to the server that died just ++returns an error. This signal's original purpose of signalling a lost ++NFS lock is obsolete. + @end deftypevr + + @deftypevr Macro int SIGXCPU +@@ -817,6 +825,17 @@ to print some status information about the system and what the process + is doing. Otherwise the default is to do nothing. + @end deftypevr + ++@deftypevr Macro int SIGPWR ++@cindex power event signal ++Power lost or restored. On s390x Linux systems, this signal is ++generated when a machine check warning is issued, and is sent to the ++process designated to receive ctrl-alt-del notifications. Otherwise, ++it is up to userspace applications to generate this signal and manage ++notifications as to the type of power event that happened. ++ ++The default action is to terminate the process. ++@end deftypevr ++ + @node Signal Messages + @subsection Signal Messages + @cindex signal messages diff --git a/SOURCES/glibc-RHEL-68805-1.patch b/SOURCES/glibc-RHEL-68805-1.patch new file mode 100644 index 0000000..cab440c --- /dev/null +++ b/SOURCES/glibc-RHEL-68805-1.patch @@ -0,0 +1,254 @@ +commit a84dcb4bdfe5070f2327da693d8b025c89b4877a +Author: Frederic Berat +Date: Mon Jun 12 17:18:20 2023 +0200 + + tests: replace fread by xfread + + With fortification enabled, fread calls return result needs to be checked, + has it gets the __wur macro enabled. + Reviewed-by: Siddhesh Poyarekar + +Conflicts: + support/Makefile (fixup context) + support/xstdio.h (fixup context) + +diff --git a/libio/bug-fseek.c b/libio/bug-fseek.c +index 1b60580b53cef07a..19d5e2429e36f615 100644 +--- a/libio/bug-fseek.c ++++ b/libio/bug-fseek.c +@@ -3,6 +3,7 @@ + #include + #include + ++#include + + static char *fname; + +@@ -48,7 +49,7 @@ do_test (void) + perror ("fopen(\"r\")"); + } + +- fread (buf, 3, 1, f); ++ xfread (buf, 3, 1, f); + errno = 0; + if (fseek (f, -10, SEEK_CUR) == 0) + { +@@ -72,7 +73,7 @@ Got %d instead\n", + perror ("fopen(\"r+\")"); + } + +- fread (buf, 3, 1, f); ++ xfread (buf, 3, 1, f); + errno = 0; + if (fseek (f, -10, SEEK_CUR) == 0) + { +@@ -96,7 +97,7 @@ Got %d instead\n", + perror ("fopen(\"r+\")"); + } + +- fread (buf, 3, 1, f); ++ xfread (buf, 3, 1, f); + if (ftell (f) != 3) + { + puts ("ftell failed"); +diff --git a/stdio-common/bug12.c b/stdio-common/bug12.c +index 48610c0e78e81b5b..1ba296deb43c0e41 100644 +--- a/stdio-common/bug12.c ++++ b/stdio-common/bug12.c +@@ -1,6 +1,8 @@ + #include + #include + ++#include ++ + char x[4096], z[4096], b[21], m[4096 * 4]; + + int +@@ -20,24 +22,24 @@ main (void) + } + rewind (f); + +- fread (m, 4096 * 4 - 10, 1, f); +- fread (b, 20, 1, f); ++ xfread (m, 4096 * 4 - 10, 1, f); ++ xfread (b, 20, 1, f); + printf ("got %s (should be %s)\n", b, "zzzzzzzzzzxxxxxxxxxx"); + if (strcmp (b, "zzzzzzzzzzxxxxxxxxxx")) + failed = 1; + + fseek (f, -40, SEEK_CUR); +- fread (b, 20, 1, f); ++ xfread (b, 20, 1, f); + printf ("got %s (should be %s)\n", b, "zzzzzzzzzzzzzzzzzzzz"); + if (strcmp (b, "zzzzzzzzzzzzzzzzzzzz")) + failed = 1; + +- fread (b, 20, 1, f); ++ xfread (b, 20, 1, f); + printf ("got %s (should be %s)\n", b, "zzzzzzzzzzxxxxxxxxxx"); + if (strcmp (b, "zzzzzzzzzzxxxxxxxxxx")) + failed = 1; + +- fread (b, 20, 1, f); ++ xfread (b, 20, 1, f); + printf ("got %s (should be %s)\n", b, "xxxxxxxxxxxxxxxxxxxx"); + if (strcmp (b, "xxxxxxxxxxxxxxxxxxxx")) + failed = 1; +diff --git a/stdio-common/bug3.c b/stdio-common/bug3.c +index 62a6cab330925296..deabd0057290e64b 100644 +--- a/stdio-common/bug3.c ++++ b/stdio-common/bug3.c +@@ -1,6 +1,8 @@ + #include + #include + ++#include ++ + int + main (void) + { +@@ -32,7 +34,7 @@ main (void) + char buf[25]; + + buf[0] = j; +- fread (buf + 1, 1, 23, f); ++ xfread (buf + 1, 1, 23, f); + buf[24] = '\0'; + if (strcmp (buf, "Where does this text go?") != 0) + { +diff --git a/stdio-common/bug4.c b/stdio-common/bug4.c +index cf7fe116ebc29fcf..4059ff75b3df916a 100644 +--- a/stdio-common/bug4.c ++++ b/stdio-common/bug4.c +@@ -2,6 +2,8 @@ + #include + #include + ++#include ++ + int stdio_block_read = 1, stdio_block_write = 1; + + int +@@ -30,7 +32,7 @@ main (int argc, char *argv[]) + fseek (f, 8180L, 0); + fwrite ("Where does this text come from?", 1, 31, f); + fseek (f, 8180L, 0); +- fread (buffer, 1, 31, f); ++ xfread (buffer, 1, 31, f); + fwrite (buffer, 1, 31, stdout); + fclose (f); + remove (filename); +diff --git a/stdio-common/tst-cookie.c b/stdio-common/tst-cookie.c +index 030e6845623b14ea..90ebc8e58c4b5f23 100644 +--- a/stdio-common/tst-cookie.c ++++ b/stdio-common/tst-cookie.c +@@ -5,6 +5,8 @@ + + #include + ++#include ++ + + #define THE_COOKIE ((void *) 0xdeadbeeful) + +@@ -77,7 +79,8 @@ do_test (void) + + f = fopencookie (THE_COOKIE, "r+", fcts); + +- fread (buf, 1, 1, f); ++ xfread (buf, 1, 1, f); ++ + fwrite (buf, 1, 1, f); + fseek (f, 0, SEEK_CUR); + fclose (f); +diff --git a/stdio-common/tst-fmemopen3.c b/stdio-common/tst-fmemopen3.c +index d27e68577cc78c73..0e1b14f8de878a36 100644 +--- a/stdio-common/tst-fmemopen3.c ++++ b/stdio-common/tst-fmemopen3.c +@@ -21,6 +21,8 @@ + #include + #include + ++#include ++ + static void + print_buffer (const char *s, size_t n) + { +@@ -153,7 +155,7 @@ do_test_read_seek_neg (const char *mode, const char *expected) + + FILE *fp = fmemopen (buf, sizeof (buf), mode); + fseek (fp, offset, SEEK_END); +- fread (tmp, tmps, 1, fp); ++ xfread (tmp, tmps, 1, fp); + + if (memcmp (tmp, expected, tmps) != 0) + { +diff --git a/support/Makefile b/support/Makefile +index 225c0b3d8b14be28..ef90b96bf5f6db5d 100644 +--- a/support/Makefile ++++ b/support/Makefile +@@ -134,6 +134,7 @@ libsupport-routines = \ + xfdopendir \ + xfopen \ + xfork \ ++ xfread \ + xftruncate \ + xgetline \ + xgetpeername \ +diff --git a/support/xfread.c b/support/xfread.c +new file mode 100644 +index 0000000000000000..948f0c811135f525 +--- /dev/null ++++ b/support/xfread.c +@@ -0,0 +1,39 @@ ++/* fread with error checking. ++ Copyright (C) 2023 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++#include ++ ++void ++xfread (void *ptr, size_t size, size_t nmemb, FILE *stream) ++{ ++ size_t count = 0; ++ char *p = ptr; ++ ++ while (count < nmemb) ++ { ++ size_t ret = fread (p, size, nmemb - count, stream); ++ if (ret <= 0 && ferror(stream)) ++ FAIL_EXIT1 ("read of %zu bytes failed after %td: %m", ++ size * nmemb, p - (char *) ptr); ++ count += ret; ++ p += size * ret; ++ } ++} +diff --git a/support/xstdio.h b/support/xstdio.h +index 2e63a31804964c55..2ecbf770e72e41f5 100644 +--- a/support/xstdio.h ++++ b/support/xstdio.h +@@ -26,6 +26,7 @@ __BEGIN_DECLS + + FILE *xfopen (const char *path, const char *mode); + void xfclose (FILE *); ++void xfread (void *ptr, size_t size, size_t nmemb, FILE *stream); + + /* Read a line from FP, using getline. *BUFFER must be NULL, or a + heap-allocated pointer of *LENGTH bytes. Return the number of diff --git a/SOURCES/glibc-RHEL-68805-2.patch b/SOURCES/glibc-RHEL-68805-2.patch new file mode 100644 index 0000000..25d35ab --- /dev/null +++ b/SOURCES/glibc-RHEL-68805-2.patch @@ -0,0 +1,71 @@ +commit 04b1eb161fdc8b88876bf78b34d2bb92584aba45 +Author: Siddhesh Poyarekar +Date: Fri Nov 8 12:33:47 2024 -0500 + + support: Add xdup + + Add xdup as the error-checking version of dup for test cases. + + Signed-off-by: Siddhesh Poyarekar + Reviewed-by: Adhemerval Zanella + +diff --git a/support/Makefile b/support/Makefile +index ef90b96bf5f6db5d..d6d03c2ed3af3e6d 100644 +--- a/support/Makefile ++++ b/support/Makefile +@@ -128,6 +128,7 @@ libsupport-routines = \ + xcopy_file_range \ + xdlfcn \ + xdlmopen \ ++ xdup \ + xdup2 \ + xfchmod \ + xfclose \ +diff --git a/support/xdup.c b/support/xdup.c +new file mode 100644 +index 0000000000000000..1eab317354f1f353 +--- /dev/null ++++ b/support/xdup.c +@@ -0,0 +1,30 @@ ++/* dup with error checking. ++ Copyright The GNU Toolchain Authors. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++int ++xdup (int from) ++{ ++ int ret = dup (from); ++ if (ret < 0) ++ FAIL_EXIT1 ("dup (%d): %m", from); ++ ++ return ret; ++} +diff --git a/support/xunistd.h b/support/xunistd.h +index 94b1e1eb1b1e8253..a4d0d3427204cfe5 100644 +--- a/support/xunistd.h ++++ b/support/xunistd.h +@@ -35,6 +35,7 @@ pid_t xfork (void); + pid_t xwaitpid (pid_t, int *status, int flags); + void xpipe (int[2]); + void xdup2 (int, int); ++int xdup (int); + int xopen (const char *path, int flags, mode_t); + void support_check_stat_fd (const char *name, int fd, int result); + void support_check_stat_path (const char *name, const char *path, int result); diff --git a/SOURCES/glibc-RHEL-68805-3.patch b/SOURCES/glibc-RHEL-68805-3.patch new file mode 100644 index 0000000..262ac94 --- /dev/null +++ b/SOURCES/glibc-RHEL-68805-3.patch @@ -0,0 +1,119 @@ +commit 377e9733b50ce41e496c467ddcc112f73c88f3bd +Author: Joseph Myers +Date: Tue Jan 28 19:38:27 2025 +0000 + + Fix fflush after ungetc on input file (bug 5994) + + As discussed in bug 5994 (plus duplicates), POSIX requires fflush + after ungetc to discard pushed-back characters but preserve the file + position indicator. For this purpose, each ungetc decrements the file + position indicator by 1; it is unspecified after ungetc at the start + of the file, and after ungetwc, so no special handling is needed for + either of those cases. + + This is fixed with appropriate logic in _IO_new_file_sync. I haven't + made any attempt to test or change things in this area for the "old" + functions; the case of files using mmap is addressed in a subsequent + patch (and there seem to be no problems in this area with files opened + with fmemopen). + + Tested for x86_64. + +diff --git a/libio/fileops.c b/libio/fileops.c +index d40748e0fc548fff..83fd272c8e606b1b 100644 +--- a/libio/fileops.c ++++ b/libio/fileops.c +@@ -799,6 +799,11 @@ _IO_new_file_sync (FILE *fp) + if (fp->_IO_write_ptr > fp->_IO_write_base) + if (_IO_do_flush(fp)) return EOF; + delta = fp->_IO_read_ptr - fp->_IO_read_end; ++ if (_IO_in_backup (fp)) ++ { ++ _IO_switch_to_main_get_area (fp); ++ delta += fp->_IO_read_ptr - fp->_IO_read_end; ++ } + if (delta != 0) + { + off64_t new_pos = _IO_SYSSEEK (fp, delta, 1); +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 95fd52fbf1b1b3fb..e155b96309f4486f 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -277,6 +277,7 @@ tests := \ + tst-swscanf \ + tst-tmpnam \ + tst-ungetc \ ++ tst-ungetc-fflush \ + tst-ungetc-leak \ + tst-ungetc-nomem \ + tst-unlockedio \ +diff --git a/stdio-common/tst-ungetc-fflush.c b/stdio-common/tst-ungetc-fflush.c +new file mode 100644 +index 0000000000000000..a86d1fdb7f8cac88 +--- /dev/null ++++ b/stdio-common/tst-ungetc-fflush.c +@@ -0,0 +1,64 @@ ++/* Test flushing input file after ungetc (bug 5994). ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++ ++int ++do_test (void) ++{ ++ char *filename = NULL; ++ int fd = create_temp_file ("tst-ungetc-fflush", &filename); ++ TEST_VERIFY_EXIT (fd != -1); ++ xclose (fd); ++ ++ /* Test as in bug 5994. */ ++ FILE *fp = xfopen (filename, "w"); ++ TEST_VERIFY_EXIT (fputs ("#include", fp) >= 0); ++ xfclose (fp); ++ fp = xfopen (filename, "r"); ++ TEST_COMPARE (fgetc (fp), '#'); ++ TEST_COMPARE (fgetc (fp), 'i'); ++ TEST_COMPARE (ungetc ('@', fp), '@'); ++ TEST_COMPARE (fflush (fp), 0); ++ TEST_COMPARE (lseek (fileno (fp), 0, SEEK_CUR), 1); ++ TEST_COMPARE (fgetc (fp), 'i'); ++ TEST_COMPARE (fgetc (fp), 'n'); ++ xfclose (fp); ++ ++ /* Test as in bug 12799 (duplicate of 5994). */ ++ fp = xfopen (filename, "w+"); ++ TEST_VERIFY_EXIT (fputs ("hello world", fp) >= 0); ++ rewind (fp); ++ TEST_VERIFY (fileno (fp) >= 0); ++ char buffer[10]; ++ TEST_COMPARE (fread (buffer, 1, 5, fp), 5); ++ TEST_COMPARE (fgetc (fp), ' '); ++ TEST_COMPARE (ungetc ('@', fp), '@'); ++ TEST_COMPARE (fflush (fp), 0); ++ TEST_COMPARE (fgetc (fp), ' '); ++ xfclose (fp); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-68805-4.patch b/SOURCES/glibc-RHEL-68805-4.patch new file mode 100644 index 0000000..0eda281 --- /dev/null +++ b/SOURCES/glibc-RHEL-68805-4.patch @@ -0,0 +1,358 @@ +commit be6818be31e756398e45f70e2819d78be0961223 +Author: Joseph Myers +Date: Tue Jan 28 20:22:56 2025 +0000 + + Make fclose seek input file to right offset (bug 12724) + + As discussed in bug 12724 and required by POSIX, before an input file + (based on an underlying seekable file descriptor) is closed, fclose is + sometimes required to seek that file descriptor to the correct offset, + so that any other file descriptors sharing the underlying open file + description are left at that offset (as a motivating example, a script + could call a sequence of commands each of which processes some data + from (seekable) stdin using stdio; fclose needs to do this so that + each successive command can read exactly the data not handled by + previous commands), but glibc fails to do this. + + The precise POSIX wording has changed a few times; in the 2024 edition + it's "If the file is not already at EOF, and the file is one capable + of seeking, the file offset of the underlying open file description + shall be set to the file position of the stream if the stream is the + active handle to the underlying file description.". + + Add appropriate logic to _IO_new_file_close_it to handle this case. I + haven't made any attempt to test or change things in this area for the + "old" functions. + + Note that there was a previous attempt to fix bug 12724, reverted in + commit eb6cbd249f4465b01f428057bf6ab61f5f0c07e3. The fix version here + addresses the original test in that bug report without breaking the + one given in a subsequent comment in that bug report (which works with + glibc before the patch, but maybe was broken by the original fix that + was reverted). + + The logic here tries to take care not to seek the file, even to its + newly computed current offset, if at EOF / possibly not the active + handle; even seeking to the current offset would be problematic + because of a potential race (fclose computes the current offset, + another thread or process with the active handle does its own seek, + fclose does a seek (not permitted by POSIX in this case) that loses + the effect of the seek on the active handle in another thread or + process). There are tests included for various cases of being or not + being the active handle, though there aren't tests for the potential + race condition. + + Tested for x86_64. + +Conflicts: + stdio-common/Makefile (fixup context) + +diff --git a/libio/fileops.c b/libio/fileops.c +index 83fd272c8e606b1b..47e9b5c27a5bca9f 100644 +--- a/libio/fileops.c ++++ b/libio/fileops.c +@@ -128,15 +128,48 @@ _IO_new_file_init (struct _IO_FILE_plus *fp) + int + _IO_new_file_close_it (FILE *fp) + { +- int write_status; ++ int flush_status = 0; + if (!_IO_file_is_open (fp)) + return EOF; + + if ((fp->_flags & _IO_NO_WRITES) == 0 + && (fp->_flags & _IO_CURRENTLY_PUTTING) != 0) +- write_status = _IO_do_flush (fp); +- else +- write_status = 0; ++ flush_status = _IO_do_flush (fp); ++ else if (fp->_fileno >= 0 ++ /* If this is the active handle, we must seek the ++ underlying open file description (possibly shared with ++ other file descriptors that remain open) to the correct ++ offset. But if this stream is in a state such that some ++ other handle might have become the active handle, then ++ (a) at the time it entered that state, the underlying ++ open file description had the correct offset, and (b) ++ seeking the underlying open file description, even to ++ its newly determined current offset, is not safe because ++ it can race with operations on a different active ++ handle. So check here for cases where it is necessary ++ to seek, while avoiding seeking in cases where it is ++ unsafe to do so. */ ++ && (_IO_in_backup (fp) ++ || (fp->_mode <= 0 && fp->_IO_read_ptr < fp->_IO_read_end) ++ || (_IO_vtable_offset (fp) == 0 ++ && fp->_mode > 0 && (fp->_wide_data->_IO_read_ptr ++ < fp->_wide_data->_IO_read_end)))) ++ { ++ off64_t o = _IO_SEEKOFF (fp, 0, _IO_seek_cur, 0); ++ if (o == EOF) ++ { ++ if (errno != ESPIPE) ++ flush_status = EOF; ++ } ++ else ++ { ++ if (_IO_in_backup (fp)) ++ o -= fp->_IO_save_end - fp->_IO_save_base; ++ flush_status = (_IO_SYSSEEK (fp, o, SEEK_SET) < 0 && errno != ESPIPE ++ ? EOF ++ : 0); ++ } ++ } + + _IO_unsave_markers (fp); + +@@ -161,7 +194,7 @@ _IO_new_file_close_it (FILE *fp) + fp->_fileno = -1; + fp->_offset = _IO_pos_BAD; + +- return close_status ? close_status : write_status; ++ return close_status ? close_status : flush_status; + } + libc_hidden_ver (_IO_new_file_close_it, _IO_file_close_it) + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index e155b96309f4486f..ed358394c90f2319 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -218,6 +218,7 @@ tests := \ + tst-bz11319 \ + tst-bz11319-fortify2 \ + tst-cookie \ ++ tst-fclose-offset \ + tst-fdopen \ + tst-fdopen2 \ + tst-ferror \ +diff --git a/stdio-common/tst-fclose-offset.c b/stdio-common/tst-fclose-offset.c +new file mode 100644 +index 0000000000000000..a31de1117c7dfeec +--- /dev/null ++++ b/stdio-common/tst-fclose-offset.c +@@ -0,0 +1,225 @@ ++/* Test offset of input file descriptor after close (bug 12724). ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++int ++do_test (void) ++{ ++ char *filename = NULL; ++ int fd = create_temp_file ("tst-fclose-offset", &filename); ++ TEST_VERIFY_EXIT (fd != -1); ++ ++ /* Test offset of open file description for output and input streams ++ after fclose, case from bug 12724. */ ++ ++ const char buf[] = "hello world"; ++ xwrite (fd, buf, sizeof buf); ++ TEST_COMPARE (lseek (fd, 1, SEEK_SET), 1); ++ int fd2 = xdup (fd); ++ FILE *f = fdopen (fd2, "w"); ++ TEST_VERIFY_EXIT (f != NULL); ++ TEST_COMPARE (fputc (buf[1], f), buf[1]); ++ xfclose (f); ++ errno = 0; ++ TEST_COMPARE (lseek (fd2, 0, SEEK_CUR), -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), 2); ++ ++ /* Likewise for an input stream. */ ++ fd2 = xdup (fd); ++ f = fdopen (fd2, "r"); ++ TEST_VERIFY_EXIT (f != NULL); ++ TEST_COMPARE (fgetc (f), buf[2]); ++ xfclose (f); ++ errno = 0; ++ TEST_COMPARE (lseek (fd2, 0, SEEK_CUR), -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), 3); ++ ++ /* Test offset of open file description for output and input streams ++ after fclose, case from comment on bug 12724 (failed after first ++ attempt at fixing that bug). This verifies that the offset is ++ not reset when there has been no input or output on the FILE* (in ++ that case, the FILE* might not be the active handle). */ ++ ++ TEST_COMPARE (lseek (fd, 0, SEEK_SET), 0); ++ xwrite (fd, buf, sizeof buf); ++ TEST_COMPARE (lseek (fd, 1, SEEK_SET), 1); ++ fd2 = xdup (fd); ++ f = fdopen (fd2, "w"); ++ TEST_VERIFY_EXIT (f != NULL); ++ TEST_COMPARE (lseek (fd, 4, SEEK_SET), 4); ++ xfclose (f); ++ errno = 0; ++ TEST_COMPARE (lseek (fd2, 0, SEEK_CUR), -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), 4); ++ ++ /* Likewise for an input stream. */ ++ fd2 = xdup (fd); ++ f = fdopen (fd2, "r"); ++ TEST_VERIFY_EXIT (f != NULL); ++ TEST_COMPARE (lseek (fd, 4, SEEK_SET), 4); ++ xfclose (f); ++ errno = 0; ++ TEST_COMPARE (lseek (fd2, 0, SEEK_CUR), -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), 4); ++ ++ /* Further cases without specific tests in bug 12724, to verify ++ proper operation of the rules about the offset only being set ++ when the stream is the active handle. */ ++ ++ /* Test offset set by fclose after fseek and fgetc. */ ++ TEST_COMPARE (lseek (fd, 0, SEEK_SET), 0); ++ fd2 = xdup (fd); ++ f = fdopen (fd2, "r"); ++ TEST_VERIFY_EXIT (f != NULL); ++ TEST_COMPARE (fseek (f, 1, SEEK_SET), 0); ++ TEST_COMPARE (fgetc (f), buf[1]); ++ xfclose (f); ++ errno = 0; ++ TEST_COMPARE (lseek (fd2, 0, SEEK_CUR), -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), 2); ++ ++ /* Test offset not set by fclose after fseek and fgetc, if that ++ fgetc is at EOF (in which case the active handle might have ++ changed). */ ++ TEST_COMPARE (lseek (fd, 0, SEEK_SET), 0); ++ fd2 = xdup (fd); ++ f = fdopen (fd2, "r"); ++ TEST_VERIFY_EXIT (f != NULL); ++ TEST_COMPARE (fseek (f, sizeof buf, SEEK_SET), 0); ++ TEST_COMPARE (fgetc (f), EOF); ++ TEST_COMPARE (lseek (fd, 4, SEEK_SET), 4); ++ xfclose (f); ++ errno = 0; ++ TEST_COMPARE (lseek (fd2, 0, SEEK_CUR), -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), 4); ++ ++ /* Test offset not set by fclose after fseek and fgetc and fflush ++ (active handle might have changed after fflush). */ ++ TEST_COMPARE (lseek (fd, 0, SEEK_SET), 0); ++ fd2 = xdup (fd); ++ f = fdopen (fd2, "r"); ++ TEST_VERIFY_EXIT (f != NULL); ++ TEST_COMPARE (fseek (f, 1, SEEK_SET), 0); ++ TEST_COMPARE (fgetc (f), buf[1]); ++ TEST_COMPARE (fflush (f), 0); ++ TEST_COMPARE (lseek (fd, 4, SEEK_SET), 4); ++ xfclose (f); ++ errno = 0; ++ TEST_COMPARE (lseek (fd2, 0, SEEK_CUR), -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), 4); ++ ++ /* Test offset not set by fclose after fseek and fgetc, if the ++ stream is unbuffered (active handle might change at any ++ time). */ ++ TEST_COMPARE (lseek (fd, 0, SEEK_SET), 0); ++ fd2 = xdup (fd); ++ f = fdopen (fd2, "r"); ++ TEST_VERIFY_EXIT (f != NULL); ++ setbuf (f, NULL); ++ TEST_COMPARE (fseek (f, 1, SEEK_SET), 0); ++ TEST_COMPARE (fgetc (f), buf[1]); ++ TEST_COMPARE (lseek (fd, 4, SEEK_SET), 4); ++ xfclose (f); ++ errno = 0; ++ TEST_COMPARE (lseek (fd2, 0, SEEK_CUR), -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), 4); ++ ++ /* Also test such cases with the stream in wide mode. */ ++ ++ /* Test offset set by fclose after fseek and fgetwc. */ ++ TEST_COMPARE (lseek (fd, 0, SEEK_SET), 0); ++ fd2 = xdup (fd); ++ f = fdopen (fd2, "r"); ++ TEST_VERIFY_EXIT (f != NULL); ++ TEST_COMPARE (fseek (f, 1, SEEK_SET), 0); ++ TEST_COMPARE (fgetwc (f), (wint_t) buf[1]); ++ xfclose (f); ++ errno = 0; ++ TEST_COMPARE (lseek (fd2, 0, SEEK_CUR), -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), 2); ++ ++ /* Test offset not set by fclose after fseek and fgetwc, if that ++ fgetwc is at EOF (in which case the active handle might have ++ changed). */ ++ TEST_COMPARE (lseek (fd, 0, SEEK_SET), 0); ++ fd2 = xdup (fd); ++ f = fdopen (fd2, "r"); ++ TEST_VERIFY_EXIT (f != NULL); ++ TEST_COMPARE (fseek (f, sizeof buf, SEEK_SET), 0); ++ TEST_COMPARE (fgetwc (f), WEOF); ++ TEST_COMPARE (lseek (fd, 4, SEEK_SET), 4); ++ xfclose (f); ++ errno = 0; ++ TEST_COMPARE (lseek (fd2, 0, SEEK_CUR), -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), 4); ++ ++ /* Test offset not set by fclose after fseek and fgetwc and fflush ++ (active handle might have changed after fflush). */ ++ TEST_COMPARE (lseek (fd, 0, SEEK_SET), 0); ++ fd2 = xdup (fd); ++ f = fdopen (fd2, "r"); ++ TEST_VERIFY_EXIT (f != NULL); ++ TEST_COMPARE (fseek (f, 1, SEEK_SET), 0); ++ TEST_COMPARE (fgetwc (f), (wint_t) buf[1]); ++ TEST_COMPARE (fflush (f), 0); ++ TEST_COMPARE (lseek (fd, 4, SEEK_SET), 4); ++ xfclose (f); ++ errno = 0; ++ TEST_COMPARE (lseek (fd2, 0, SEEK_CUR), -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), 4); ++ ++ /* Test offset not set by fclose after fseek and fgetwc, if the ++ stream is unbuffered (active handle might change at any ++ time). */ ++ TEST_COMPARE (lseek (fd, 0, SEEK_SET), 0); ++ fd2 = xdup (fd); ++ f = fdopen (fd2, "r"); ++ TEST_VERIFY_EXIT (f != NULL); ++ setbuf (f, NULL); ++ TEST_COMPARE (fseek (f, 1, SEEK_SET), 0); ++ TEST_COMPARE (fgetwc (f), (wint_t) buf[1]); ++ TEST_COMPARE (lseek (fd, 4, SEEK_SET), 4); ++ xfclose (f); ++ errno = 0; ++ TEST_COMPARE (lseek (fd2, 0, SEEK_CUR), -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), 4); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-68805-5.patch b/SOURCES/glibc-RHEL-68805-5.patch new file mode 100644 index 0000000..48a26cd --- /dev/null +++ b/SOURCES/glibc-RHEL-68805-5.patch @@ -0,0 +1,150 @@ +commit 94251ae99edaa911f4cb8056748dca0874ea268c +Author: Joseph Myers +Date: Tue Jan 28 21:53:49 2025 +0000 + + Make fflush (NULL) flush input files (bug 32369) + + As discussed in bug 32369 and required by POSIX, the POSIX feature + fflush (NULL) should flush input files, not just output files. The + POSIX requirement is that "fflush() shall perform this flushing action + on all streams for which the behavior is defined above", and the + definition for input files is for "a stream open for reading with an + underlying file description, if the file is not already at EOF, and + the file is one capable of seeking". + + Implement this requirement in glibc. (The underlying flushing + implementation is what deals with avoiding errors for seeking on an + unseekable file.) + + Tested for x86_64. + +diff --git a/libio/genops.c b/libio/genops.c +index cf6985938255e70d..560cbdd587ad2240 100644 +--- a/libio/genops.c ++++ b/libio/genops.c +@@ -706,6 +706,13 @@ _IO_flush_all (void) + ) + && _IO_OVERFLOW (fp, EOF) == EOF) + result = EOF; ++ if (_IO_fileno (fp) >= 0 ++ && ((fp->_mode <= 0 && fp->_IO_read_ptr < fp->_IO_read_end) ++ || (_IO_vtable_offset (fp) == 0 ++ && fp->_mode > 0 && (fp->_wide_data->_IO_read_ptr ++ < fp->_wide_data->_IO_read_end))) ++ && _IO_SYNC (fp) != 0) ++ result = EOF; + + _IO_funlockfile (fp); + run_fp = NULL; +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index ed358394c90f2319..0476c3777d7d21c4 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -222,6 +222,7 @@ tests := \ + tst-fdopen \ + tst-fdopen2 \ + tst-ferror \ ++ tst-fflush-all-input \ + tst-fgets \ + tst-fgets2 \ + tst-fileno \ +diff --git a/stdio-common/tst-fflush-all-input.c b/stdio-common/tst-fflush-all-input.c +new file mode 100644 +index 0000000000000000..8e3fca3a087a1699 +--- /dev/null ++++ b/stdio-common/tst-fflush-all-input.c +@@ -0,0 +1,94 @@ ++/* Test fflush (NULL) flushes input files (bug 32369). ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++int ++do_test (void) ++{ ++ FILE *temp = tmpfile (); ++ TEST_VERIFY_EXIT (temp != NULL); ++ fprintf (temp, "abc"); ++ TEST_COMPARE (fflush (temp), 0); ++ TEST_COMPARE (lseek (fileno (temp), 0, SEEK_SET), 0); ++ TEST_COMPARE (fgetc (temp), 'a'); ++ TEST_COMPARE (fflush (NULL), 0); ++ TEST_COMPARE (lseek (fileno (temp), 0, SEEK_CUR), 1); ++ xfclose (temp); ++ ++ /* Likewise, but in wide mode. */ ++ temp = tmpfile (); ++ TEST_VERIFY_EXIT (temp != NULL); ++ fwprintf (temp, L"abc"); ++ TEST_COMPARE (fflush (temp), 0); ++ TEST_COMPARE (lseek (fileno (temp), 0, SEEK_SET), 0); ++ TEST_COMPARE (fgetwc (temp), L'a'); ++ TEST_COMPARE (fflush (NULL), 0); ++ TEST_COMPARE (lseek (fileno (temp), 0, SEEK_CUR), 1); ++ xfclose (temp); ++ ++ /* Similar tests, but with the flush implicitly occurring on exit ++ (in a forked subprocess). */ ++ ++ temp = tmpfile (); ++ TEST_VERIFY_EXIT (temp != NULL); ++ pid_t pid = xfork (); ++ if (pid == 0) ++ { ++ fprintf (temp, "abc"); ++ TEST_COMPARE (fflush (temp), 0); ++ TEST_COMPARE (lseek (fileno (temp), 0, SEEK_SET), 0); ++ TEST_COMPARE (fgetc (temp), 'a'); ++ exit (EXIT_SUCCESS); ++ } ++ else ++ { ++ TEST_COMPARE (xwaitpid (pid, NULL, 0), pid); ++ TEST_COMPARE (lseek (fileno (temp), 0, SEEK_CUR), 1); ++ xfclose (temp); ++ } ++ ++ temp = tmpfile (); ++ TEST_VERIFY_EXIT (temp != NULL); ++ pid = xfork (); ++ if (pid == 0) ++ { ++ fwprintf (temp, L"abc"); ++ TEST_COMPARE (fflush (temp), 0); ++ TEST_COMPARE (lseek (fileno (temp), 0, SEEK_SET), 0); ++ TEST_COMPARE (fgetwc (temp), L'a'); ++ exit (EXIT_SUCCESS); ++ } ++ else ++ { ++ TEST_COMPARE (xwaitpid (pid, NULL, 0), pid); ++ TEST_COMPARE (lseek (fileno (temp), 0, SEEK_CUR), 1); ++ xfclose (temp); ++ } ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-68805-6.patch b/SOURCES/glibc-RHEL-68805-6.patch new file mode 100644 index 0000000..3e4e657 --- /dev/null +++ b/SOURCES/glibc-RHEL-68805-6.patch @@ -0,0 +1,115 @@ +commit 0dcc0b2f63051863187dc678964eb17761b1a820 +Author: Joseph Myers +Date: Tue Jan 28 22:35:21 2025 +0000 + + Fix fseek handling for mmap files after ungetc or fflush (bug 32529) + + As discussed in bug 32529, fseek fails on files opened for reading + using mmap after ungetc. The implementation of fseek for such files + has an offset computation that's also incorrect after fflush. A + combined fix addresses both problems (with tests for both included as + well) and it seems reasonable to consider them a single bug. + + Tested for x86_64. + +diff --git a/libio/fileops.c b/libio/fileops.c +index 47e9b5c27a5bca9f..c77f3572ba23cb05 100644 +--- a/libio/fileops.c ++++ b/libio/fileops.c +@@ -1106,11 +1106,18 @@ _IO_file_seekoff_mmap (FILE *fp, off64_t offset, int dir, int mode) + if (mode == 0) + return fp->_offset - (fp->_IO_read_end - fp->_IO_read_ptr); + ++ if (_IO_in_backup (fp)) ++ { ++ if (dir == _IO_seek_cur) ++ offset += fp->_IO_read_ptr - fp->_IO_read_end; ++ _IO_switch_to_main_get_area (fp); ++ } ++ + switch (dir) + { + case _IO_seek_cur: + /* Adjust for read-ahead (bytes is buffer). */ +- offset += fp->_IO_read_ptr - fp->_IO_read_base; ++ offset += fp->_offset - (fp->_IO_read_end - fp->_IO_read_ptr); + break; + case _IO_seek_set: + break; +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 0476c3777d7d21c4..c620d0ce3681a1ec 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -246,6 +246,7 @@ tests := \ + tst-freopen64-6 \ + tst-freopen64-7 \ + tst-fseek \ ++ tst-fseek-mmap \ + tst-fwrite \ + tst-fwrite-memstrm \ + tst-fwrite-overflow \ +diff --git a/stdio-common/tst-fseek-mmap.c b/stdio-common/tst-fseek-mmap.c +new file mode 100644 +index 0000000000000000..86fa99a1a2e3e7e9 +--- /dev/null ++++ b/stdio-common/tst-fseek-mmap.c +@@ -0,0 +1,59 @@ ++/* Test fseek on files using mmap (bug 32529). ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++ ++int ++do_test (void) ++{ ++ char *filename = NULL; ++ int fd = create_temp_file ("tst-fseek-mmap", &filename); ++ TEST_VERIFY_EXIT (fd != -1); ++ xclose (fd); ++ ++ /* Test fseek after ungetc (bug 32529). */ ++ FILE *fp = xfopen (filename, "w"); ++ TEST_VERIFY (0 <= fputs ("test", fp)); ++ xfclose (fp); ++ ++ fp = xfopen (filename, "rm"); ++ TEST_COMPARE (fgetc (fp), 't'); ++ TEST_COMPARE (ungetc ('u', fp), 'u'); ++ TEST_COMPARE (fseek (fp, 0, SEEK_CUR), 0); ++ xfclose (fp); ++ ++ /* Test fseek positioning after fflush (another issue covered by the ++ same fix). */ ++ fp = xfopen (filename, "rm"); ++ TEST_COMPARE (fgetc (fp), 't'); ++ TEST_COMPARE (fflush (fp), 0); ++ TEST_COMPARE (ftell (fp), 1); ++ TEST_COMPARE (fseek (fp, 0, SEEK_CUR), 0); ++ TEST_COMPARE (ftell (fp), 1); ++ TEST_COMPARE (fgetc (fp), 'e'); ++ xfclose (fp); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-68805-7.patch b/SOURCES/glibc-RHEL-68805-7.patch new file mode 100644 index 0000000..87b55ea --- /dev/null +++ b/SOURCES/glibc-RHEL-68805-7.patch @@ -0,0 +1,110 @@ +commit 3ff3b9997cfef891ba33a14f1dcba0310d96369c +Author: Joseph Myers +Date: Tue Jan 28 23:20:08 2025 +0000 + + Fix fflush handling for mmap files after ungetc (bug 32535) + + As discussed in bug 32535, fflush fails on files opened for reading + using mmap after ungetc. Fix the logic to handle this case and still + compute the file offset correctly. + + Tested for x86_64. + +diff --git a/libio/fileops.c b/libio/fileops.c +index c77f3572ba23cb05..0b35790a9d35bcc5 100644 +--- a/libio/fileops.c ++++ b/libio/fileops.c +@@ -858,17 +858,21 @@ libc_hidden_ver (_IO_new_file_sync, _IO_file_sync) + static int + _IO_file_sync_mmap (FILE *fp) + { ++ off64_t o = fp->_offset - (fp->_IO_read_end - fp->_IO_read_ptr); + if (fp->_IO_read_ptr != fp->_IO_read_end) + { +- if (__lseek64 (fp->_fileno, fp->_IO_read_ptr - fp->_IO_buf_base, +- SEEK_SET) +- != fp->_IO_read_ptr - fp->_IO_buf_base) ++ if (_IO_in_backup (fp)) ++ { ++ _IO_switch_to_main_get_area (fp); ++ o -= fp->_IO_read_end - fp->_IO_read_base; ++ } ++ if (__lseek64 (fp->_fileno, o, SEEK_SET) != o) + { + fp->_flags |= _IO_ERR_SEEN; + return EOF; + } + } +- fp->_offset = fp->_IO_read_ptr - fp->_IO_buf_base; ++ fp->_offset = o; + fp->_IO_read_end = fp->_IO_read_ptr = fp->_IO_read_base; + return 0; + } +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index c620d0ce3681a1ec..a49ab3701e88d4e6 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -223,6 +223,7 @@ tests := \ + tst-fdopen2 \ + tst-ferror \ + tst-fflush-all-input \ ++ tst-fflush-mmap \ + tst-fgets \ + tst-fgets2 \ + tst-fileno \ +diff --git a/stdio-common/tst-fflush-mmap.c b/stdio-common/tst-fflush-mmap.c +new file mode 100644 +index 0000000000000000..3bddb909e072caf2 +--- /dev/null ++++ b/stdio-common/tst-fflush-mmap.c +@@ -0,0 +1,50 @@ ++/* Test fflush after ungetc on files using mmap (bug 32535). ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++ ++int ++do_test (void) ++{ ++ char *filename = NULL; ++ int fd = create_temp_file ("tst-fflush-mmap", &filename); ++ TEST_VERIFY_EXIT (fd != -1); ++ xclose (fd); ++ ++ /* Test fflush after ungetc (bug 32535). */ ++ FILE *fp = xfopen (filename, "w"); ++ TEST_VERIFY (0 <= fputs ("test", fp)); ++ xfclose (fp); ++ ++ fp = xfopen (filename, "rm"); ++ TEST_COMPARE (fgetc (fp), 't'); ++ TEST_COMPARE (ungetc ('u', fp), 'u'); ++ TEST_COMPARE (fflush (fp), 0); ++ TEST_COMPARE (fgetc (fp), 't'); ++ TEST_COMPARE (fgetc (fp), 'e'); ++ xfclose (fp); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-68805-8.patch b/SOURCES/glibc-RHEL-68805-8.patch new file mode 100644 index 0000000..864a6f1 --- /dev/null +++ b/SOURCES/glibc-RHEL-68805-8.patch @@ -0,0 +1,595 @@ +commit 203452a460143c2b0bf80e0e92027e0fd6e19fa4 +Author: Joseph Myers +Date: Tue Jan 28 23:39:12 2025 +0000 + + Add test of input file flushing / offset issues + + Having fixed several bugs relating to flushing of FILE* streams (with + fflush and other operations) and their offsets (both the file position + indicator in the FILE*, and the offset in the underlying open file + description), especially after ungetc but not limited to that case, + add a test that more systematically covers different combinations of + cases for such issues, with 57220 separate scenarios tested (which + include examples of all the five separate fixed bugs), all of which + pass given the five previous bug fixes. + + Tested for x86_64. + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index a49ab3701e88d4e6..fe4a7c4acc3932b2 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -268,6 +268,7 @@ tests := \ + tst-printf-round \ + tst-printfsz \ + tst-put-error \ ++ tst-read-offset \ + tst-renameat2 \ + tst-rndseek \ + tst-scanf-bz27650 \ +diff --git a/stdio-common/tst-read-offset.c b/stdio-common/tst-read-offset.c +new file mode 100644 +index 0000000000000000..b8706607fc86da99 +--- /dev/null ++++ b/stdio-common/tst-read-offset.c +@@ -0,0 +1,560 @@ ++/* Test offsets in files being read, in particular with ungetc. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++static volatile bool fail = false; ++ ++/* Induce a malloc failure whenever FAIL is set. */ ++void * ++malloc (size_t sz) ++{ ++ if (fail) ++ return NULL; ++ ++ static void *(*real_malloc) (size_t); ++ ++ if (real_malloc == NULL) ++ real_malloc = dlsym (RTLD_NEXT, "malloc"); ++ ++ return real_malloc (sz); ++} ++ ++/* The name of the temporary file used by all the tests. */ ++static char *filename; ++ ++/* st_blksize value for that file, or BUFSIZ if out of range. */ ++static int blksize = BUFSIZ; ++ ++/* Test data, both written to that file and used as an in-memory ++ stream. */ ++char test_data[2 * BUFSIZ]; ++ ++/* Ways to open a test stream for reading (that may use different code ++ paths in libio). */ ++enum test_open_case ++ { ++ test_open_fopen, ++ test_open_fopen_m, ++ test_open_fopen64, ++ test_open_fopen64_m, ++ test_open_fmemopen, ++ test_open_max ++ }; ++ ++static const char *const test_open_case_name[test_open_max] = ++ { ++ "fopen", "fopen(mmap)", "fopen64", "fopen64(mmap)", "fmemopen" ++ }; ++ ++static FILE * ++open_test_stream (enum test_open_case c) ++{ ++ FILE *fp; ++ switch (c) ++ { ++ case test_open_fopen: ++ fp = fopen (filename, "r"); ++ break; ++ ++ case test_open_fopen_m: ++ fp = fopen (filename, "rm"); ++ break; ++ ++ case test_open_fopen64: ++ fp = fopen64 (filename, "r"); ++ break; ++ ++ case test_open_fopen64_m: ++ fp = fopen64 (filename, "rm"); ++ break; ++ ++ case test_open_fmemopen: ++ fp = fmemopen (test_data, 2 * BUFSIZ, "r"); ++ break; ++ ++ default: ++ abort (); ++ } ++ TEST_VERIFY_EXIT (fp != NULL); ++ return fp; ++} ++ ++/* Base locations at which the main test (ungetc calls then doing ++ something that clears ungetc characters, then checking offset) ++ starts. */ ++enum test_base_loc ++ { ++ base_loc_start, ++ base_loc_blksize, ++ base_loc_half, ++ base_loc_bufsiz, ++ base_loc_eof, ++ base_loc_max ++ }; ++ ++static int ++base_loc_to_bytes (enum test_base_loc loc, int offset) ++{ ++ switch (loc) ++ { ++ case base_loc_start: ++ return offset; ++ ++ case base_loc_blksize: ++ return blksize + offset; ++ ++ case base_loc_half: ++ return BUFSIZ / 2 + offset; ++ ++ case base_loc_bufsiz: ++ return BUFSIZ + offset; ++ ++ case base_loc_eof: ++ return 2 * BUFSIZ + offset; ++ ++ default: ++ abort (); ++ } ++} ++ ++/* Ways to clear data from ungetc. */ ++enum clear_ungetc_case ++ { ++ clear_fseek, ++ clear_fseekm1, ++ clear_fseekp1, ++ clear_fseeko, ++ clear_fseekom1, ++ clear_fseekop1, ++ clear_fseeko64, ++ clear_fseeko64m1, ++ clear_fseeko64p1, ++ clear_fsetpos, ++ clear_fsetposu, ++ clear_fsetpos64, ++ clear_fsetpos64u, ++ clear_fflush, ++ clear_fflush_null, ++ clear_fclose, ++ clear_max ++ }; ++ ++static const char *const clear_ungetc_case_name[clear_max] = ++ { ++ "fseek", "fseek(-1)", "fseek(1)", "fseeko", "fseeko(-1)", "fseeko(1)", ++ "fseeko64", "fseeko64(-1)", "fseeko64(1)", "fsetpos", "fsetpos(before)", ++ "fsetpos64", "fsetpos64(before)", "fflush", "fflush(NULL)", "fclose" ++ }; ++ ++static int ++clear_offset (enum clear_ungetc_case c, int num_ungetc) ++{ ++ switch (c) ++ { ++ case clear_fseekm1: ++ case clear_fseekom1: ++ case clear_fseeko64m1: ++ return -1; ++ ++ case clear_fseekp1: ++ case clear_fseekop1: ++ case clear_fseeko64p1: ++ return 1; ++ ++ case clear_fsetposu: ++ case clear_fsetpos64u: ++ return num_ungetc; ++ ++ default: ++ return 0; ++ } ++} ++ ++/* The offsets used with fsetpos / fsetpos64. */ ++static fpos_t pos; ++static fpos64_t pos64; ++ ++static int ++do_clear_ungetc (FILE *fp, enum clear_ungetc_case c, int num_ungetc) ++{ ++ int ret; ++ int offset = clear_offset (c, num_ungetc); ++ switch (c) ++ { ++ case clear_fseek: ++ case clear_fseekm1: ++ case clear_fseekp1: ++ ret = fseek (fp, offset, SEEK_CUR); ++ break; ++ ++ case clear_fseeko: ++ case clear_fseekom1: ++ case clear_fseekop1: ++ ret = fseeko (fp, offset, SEEK_CUR); ++ break; ++ ++ case clear_fseeko64: ++ case clear_fseeko64m1: ++ case clear_fseeko64p1: ++ ret = fseeko64 (fp, offset, SEEK_CUR); ++ break; ++ ++ case clear_fsetpos: ++ case clear_fsetposu: ++ ret = fsetpos (fp, &pos); ++ break; ++ ++ case clear_fsetpos64: ++ case clear_fsetpos64u: ++ ret = fsetpos64 (fp, &pos64); ++ break; ++ ++ case clear_fflush: ++ ret = fflush (fp); ++ break; ++ ++ case clear_fflush_null: ++ ret = fflush (NULL); ++ break; ++ ++ case clear_fclose: ++ ret = fclose (fp); ++ break; ++ ++ default: ++ abort(); ++ } ++ TEST_COMPARE (ret, 0); ++ return offset; ++} ++ ++static bool ++clear_valid (enum test_open_case c, enum clear_ungetc_case cl) ++{ ++ switch (c) ++ { ++ case test_open_fmemopen: ++ /* fflush is not valid for input memory streams, and fclose is ++ useless for this test for such streams because there is no ++ underlying open file description for which an offset could be ++ checked after fclose. */ ++ switch (cl) ++ { ++ case clear_fflush: ++ case clear_fflush_null: ++ case clear_fclose: ++ return false; ++ ++ default: ++ return true; ++ } ++ ++ default: ++ /* All ways of clearing ungetc state are valid for streams with ++ an underlying file. */ ++ return true; ++ } ++} ++ ++static bool ++clear_closes_file (enum clear_ungetc_case cl) ++{ ++ switch (cl) ++ { ++ case clear_fclose: ++ return true; ++ ++ default: ++ return false; ++ } ++} ++ ++static void ++clear_getpos_before (FILE *fp, enum clear_ungetc_case c) ++{ ++ switch (c) ++ { ++ case clear_fsetposu: ++ TEST_COMPARE (fgetpos (fp, &pos), 0); ++ break; ++ ++ case clear_fsetpos64u: ++ TEST_COMPARE (fgetpos64 (fp, &pos64), 0); ++ break; ++ ++ default: ++ break; ++ } ++} ++ ++static void ++clear_getpos_after (FILE *fp, enum clear_ungetc_case c) ++{ ++ switch (c) ++ { ++ case clear_fsetpos: ++ TEST_COMPARE (fgetpos (fp, &pos), 0); ++ break; ++ ++ case clear_fsetpos64: ++ TEST_COMPARE (fgetpos64 (fp, &pos64), 0); ++ break; ++ ++ default: ++ break; ++ } ++} ++ ++/* Ways to verify results of clearing ungetc data. */ ++enum verify_case ++ { ++ verify_read, ++ verify_ftell, ++ verify_ftello, ++ verify_ftello64, ++ verify_fd, ++ verify_max ++ }; ++ ++static const char *const verify_case_name[verify_max] = ++ { ++ "read", "ftell", "ftello", "ftello64", "fd" ++ }; ++ ++static bool ++valid_fd_offset (enum test_open_case c, enum clear_ungetc_case cl) ++{ ++ switch (c) ++ { ++ case test_open_fmemopen: ++ /* No open file description. */ ++ return false; ++ ++ default: ++ /* fseek does not necessarily set the offset for the underlying ++ open file description ("If the most recent operation, other ++ than ftell(), on a given stream is fflush(), the file offset ++ in the underlying open file description shall be adjusted to ++ reflect the location specified by fseek()." in POSIX does not ++ include the case here where getc was the last operation). ++ Similarly, fsetpos does not necessarily set that offset ++ either. */ ++ switch (cl) ++ { ++ case clear_fflush: ++ case clear_fflush_null: ++ case clear_fclose: ++ return true; ++ ++ default: ++ return false; ++ } ++ } ++} ++ ++static bool ++verify_valid (enum test_open_case c, enum clear_ungetc_case cl, ++ enum verify_case v) ++{ ++ switch (v) ++ { ++ case verify_fd: ++ return valid_fd_offset (c, cl); ++ ++ default: ++ switch (cl) ++ { ++ case clear_fclose: ++ return false; ++ ++ default: ++ return true; ++ } ++ } ++} ++ ++static bool ++verify_uses_fd (enum verify_case v) ++{ ++ switch (v) ++ { ++ case verify_fd: ++ return true; ++ ++ default: ++ return false; ++ } ++} ++ ++static int ++read_to_test_loc (FILE *fp, enum test_base_loc loc, int offset) ++{ ++ int to_read = base_loc_to_bytes (loc, offset); ++ for (int i = 0; i < to_read; i++) ++ TEST_COMPARE (getc (fp), (unsigned char) i); ++ return to_read; ++} ++ ++static void ++setup (void) ++{ ++ int fd = create_temp_file ("tst-read-offset", &filename); ++ TEST_VERIFY_EXIT (fd != -1); ++ struct stat64 st; ++ xfstat64 (fd, &st); ++ if (st.st_blksize > 0 && st.st_blksize < BUFSIZ) ++ blksize = st.st_blksize; ++ printf ("BUFSIZ = %d, blksize = %d\n", BUFSIZ, blksize); ++ xclose (fd); ++ FILE *fp = xfopen (filename, "w"); ++ for (size_t i = 0; i < 2 * BUFSIZ; i++) ++ { ++ unsigned char c = i; ++ TEST_VERIFY_EXIT (fputc (c, fp) == c); ++ test_data[i] = c; ++ } ++ xfclose (fp); ++} ++ ++static void ++test_one_case (enum test_open_case c, enum test_base_loc loc, int offset, ++ int num_ungetc, int num_ungetc_diff, bool ungetc_fallback, ++ enum clear_ungetc_case cl, enum verify_case v) ++{ ++ int full_offset = base_loc_to_bytes (loc, offset); ++ printf ("Testing %s offset %d ungetc %d different %d %s%s %s\n", ++ test_open_case_name[c], full_offset, num_ungetc, num_ungetc_diff, ++ ungetc_fallback ? "fallback " : "", clear_ungetc_case_name[cl], ++ verify_case_name[v]); ++ FILE *fp = open_test_stream (c); ++ int cur_offset = read_to_test_loc (fp, loc, offset); ++ clear_getpos_before (fp, cl); ++ for (int i = 0; i < num_ungetc; i++) ++ { ++ unsigned char c = (i >= num_ungetc - num_ungetc_diff ++ ? cur_offset ++ : cur_offset - 1); ++ if (ungetc_fallback) ++ fail = true; ++ TEST_COMPARE (ungetc (c, fp), c); ++ fail = false; ++ cur_offset--; ++ } ++ clear_getpos_after (fp, cl); ++ int fd = -1; ++ bool done_dup = false; ++ if (verify_uses_fd (v)) ++ { ++ fd = fileno (fp); ++ TEST_VERIFY (fd != -1); ++ if (clear_closes_file (cl)) ++ { ++ fd = xdup (fd); ++ done_dup = true; ++ } ++ } ++ cur_offset += do_clear_ungetc (fp, cl, num_ungetc); ++ switch (v) ++ { ++ case verify_read: ++ for (; ++ cur_offset <= full_offset + 1 && cur_offset < 2 * BUFSIZ; ++ cur_offset++) ++ TEST_COMPARE (getc (fp), (unsigned char) cur_offset); ++ break; ++ ++ case verify_ftell: ++ TEST_COMPARE (ftell (fp), cur_offset); ++ break; ++ ++ case verify_ftello: ++ TEST_COMPARE (ftello (fp), cur_offset); ++ break; ++ ++ case verify_ftello64: ++ TEST_COMPARE (ftello64 (fp), cur_offset); ++ break; ++ ++ case verify_fd: ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), cur_offset); ++ break; ++ ++ default: ++ abort (); ++ } ++ if (! clear_closes_file (cl)) ++ { ++ int ret = fclose (fp); ++ TEST_COMPARE (ret, 0); ++ } ++ if (done_dup) ++ xclose (fd); ++} ++ ++int ++do_test (void) ++{ ++ setup (); ++ for (enum test_open_case c = 0; c < test_open_max; c++) ++ for (enum test_base_loc loc = 0; loc < base_loc_max; loc++) ++ for (int offset = -2; offset <= 3; offset++) ++ for (int num_ungetc = 0; ++ num_ungetc <= 2 && num_ungetc <= base_loc_to_bytes (loc, offset); ++ num_ungetc++) ++ for (int num_ungetc_diff = 0; ++ num_ungetc_diff <= num_ungetc; ++ num_ungetc_diff++) ++ for (int ungetc_fallback = 0; ++ ungetc_fallback <= (num_ungetc == 1 ? 1 : 0); ++ ungetc_fallback++) ++ for (enum clear_ungetc_case cl = 0; cl < clear_max; cl++) ++ { ++ if (!clear_valid (c, cl)) ++ continue; ++ if (base_loc_to_bytes (loc, offset) > 2 * BUFSIZ) ++ continue; ++ if ((base_loc_to_bytes (loc, offset) ++ - num_ungetc ++ + clear_offset (cl, num_ungetc)) < 0) ++ continue; ++ if ((base_loc_to_bytes (loc, offset) ++ - num_ungetc ++ + clear_offset (cl, num_ungetc)) > 2 * BUFSIZ) ++ continue; ++ for (enum verify_case v = 0; v < verify_max; v++) ++ { ++ if (!verify_valid (c, cl, v)) ++ continue; ++ test_one_case (c, loc, offset, num_ungetc, ++ num_ungetc_diff, ungetc_fallback, cl, v); ++ } ++ } ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-68805-9.patch b/SOURCES/glibc-RHEL-68805-9.patch new file mode 100644 index 0000000..6ab13db --- /dev/null +++ b/SOURCES/glibc-RHEL-68805-9.patch @@ -0,0 +1,110 @@ +commit 7b47b3dd214c8ff2c699f13efe5533941be53635 +Author: Florian Weimer +Date: Tue Apr 8 18:38:38 2025 +0200 + + libio: Synthesize ESPIPE error if lseek returns 0 after reading bytes + + This is required so that fclose, when trying to seek to the right + position after filling the input buffer, does not fail with EINVAL. + This fclose code path only ignores ESPIPE errors. + + Reported by Petr Pisar on + . + + Fixes commit be6818be31e756398e45f70e2819d78be0961223 ("Make fclose + seek input file to right offset (bug 12724)"). + + Reviewed-by: Frédéric Bérat + +Conflicts: + stdio-common/Makefile (fixup context) + +diff --git a/libio/fileops.c b/libio/fileops.c +index 0b35790a9d35bcc5..11303013cb11dbd2 100644 +--- a/libio/fileops.c ++++ b/libio/fileops.c +@@ -928,6 +928,16 @@ do_ftell (FILE *fp) + if (result == EOF) + return result; + ++ if (result == 0 && offset < 0) ++ { ++ /* This happens for some character devices that always report ++ file offset 0 even after some data has been read (instead of ++ failing with ESPIPE). The fclose path ignores this ++ error. */ ++ __set_errno (ESPIPE); ++ return EOF; ++ } ++ + result += offset; + + if (result < 0) +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index fe4a7c4acc3932b2..9a027d41a2e9cc9b 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -218,6 +218,7 @@ tests := \ + tst-bz11319 \ + tst-bz11319-fortify2 \ + tst-cookie \ ++ tst-fclose-devzero \ + tst-fclose-offset \ + tst-fdopen \ + tst-fdopen2 \ +diff --git a/stdio-common/tst-fclose-devzero.c b/stdio-common/tst-fclose-devzero.c +new file mode 100644 +index 0000000000000000..1c7b39a3e04ba80d +--- /dev/null ++++ b/stdio-common/tst-fclose-devzero.c +@@ -0,0 +1,50 @@ ++/* Test that always-zero lseek does not cause fclose failure after fread. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++ ++int ++do_test (void) ++{ ++ for (int do_ftello = 0; do_ftello < 2; ++do_ftello) ++ { ++ FILE *fp = xfopen ("/dev/zero", "r"); ++ char buf[17]; ++ memset (buf, 0xcc, sizeof (buf)); ++ xfread (buf, 1, sizeof (buf), fp); ++ static const char zeros[sizeof (buf)] = { 0 }; ++ TEST_COMPARE_BLOB (buf, sizeof (buf), zeros, sizeof (zeros)); ++ if (do_ftello) ++ { ++ errno = 0; ++ TEST_COMPARE (ftello (fp), -1); ++ TEST_COMPARE (errno, ESPIPE); ++ } ++ /* Do not use xfclose because it flushes first. */ ++ TEST_COMPARE (fclose (fp), 0); ++ } ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-71584.patch b/SOURCES/glibc-RHEL-71584.patch new file mode 100644 index 0000000..009213f --- /dev/null +++ b/SOURCES/glibc-RHEL-71584.patch @@ -0,0 +1,32 @@ +commit 61c3450db96dce96ad2b24b4f0b548e6a46d68e5 +Author: Florian Weimer +Date: Tue Dec 17 18:12:03 2024 +0100 + + x86: Avoid integer truncation with large cache sizes (bug 32470) + + Some hypervisors report 1 TiB L3 cache size. This results + in some variables incorrectly getting zeroed, causing crashes + in memcpy/memmove because invariants are violated. + +Conflicts: + sysdeps/x86/dl-cacheinfo.h (fixup context: HAVE_TUNABLES) + +diff --git a/sysdeps/x86/dl-cacheinfo.h b/sysdeps/x86/dl-cacheinfo.h +index 276442c2f1f03cd6..a65418892d8dc5e2 100644 +--- a/sysdeps/x86/dl-cacheinfo.h ++++ b/sysdeps/x86/dl-cacheinfo.h +@@ -960,12 +960,12 @@ dl_init_cacheinfo (struct cpu_features *cpu_features) + + #if HAVE_TUNABLES + /* NB: The REP MOVSB threshold must be greater than VEC_SIZE * 8. */ +- unsigned int minimum_rep_movsb_threshold; ++ unsigned long int minimum_rep_movsb_threshold; + #endif + /* NB: The default REP MOVSB threshold is 4096 * (VEC_SIZE / 16) for + VEC_SIZE == 64 or 32. For VEC_SIZE == 16, the default REP MOVSB + threshold is 2048 * (VEC_SIZE / 16). */ +- unsigned int rep_movsb_threshold; ++ unsigned long int rep_movsb_threshold; + if (CPU_FEATURE_USABLE_P (cpu_features, AVX512F) + && !CPU_FEATURE_PREFERRED_P (cpu_features, Prefer_No_AVX512)) + { diff --git a/SOURCES/glibc-RHEL-71922.patch b/SOURCES/glibc-RHEL-71922.patch new file mode 100644 index 0000000..aa6513c --- /dev/null +++ b/SOURCES/glibc-RHEL-71922.patch @@ -0,0 +1,179 @@ +commit aa3d7bd5299b33bffc118aa618b59bfa66059bcb +Author: Florian Weimer +Date: Thu Feb 13 21:56:52 2025 +0100 + + elf: Keep using minimal malloc after early DTV resize (bug 32412) + + If an auditor loads many TLS-using modules during startup, it is + possible to trigger DTV resizing. Previously, the DTV was marked + as allocated by the main malloc afterwards, even if the minimal + malloc was still in use. With this change, _dl_resize_dtv marks + the resized DTV as allocated with the minimal malloc. + + The new test reuses TLS-using modules from other auditing tests. + + Reviewed-by: DJ Delorie + +Conflicts: + elf/Makefile + (Usual conflicts due to test backport differences.) + +diff -Nrup a/elf/Makefile b/elf/Makefile +--- a/elf/Makefile 2025-05-14 14:37:07.334678591 -0400 ++++ b/elf/Makefile 2025-05-14 14:34:58.909954088 -0400 +@@ -362,6 +362,7 @@ tests += \ + tst-align2 \ + tst-audit-tlsdesc \ + tst-audit-tlsdesc-dlopen \ ++ tst-audit-tlsdesc-dlopen2 \ + tst-audit1 \ + tst-audit2 \ + tst-audit8 \ +@@ -743,6 +744,7 @@ modules-names = \ + tst-auditmanymod8 \ + tst-auditmanymod9 \ + tst-auditmod-tlsdesc \ ++ tst-auditmod-tlsdesc2 \ + tst-auditmod1 \ + tst-auditmod9a \ + tst-auditmod9b \ +@@ -2771,6 +2773,9 @@ $(objpfx)tst-audit-tlsdesc.out: $(objpfx + tst-audit-tlsdesc-ENV = LD_AUDIT=$(objpfx)tst-auditmod-tlsdesc.so + $(objpfx)tst-audit-tlsdesc-dlopen.out: $(objpfx)tst-auditmod-tlsdesc.so + tst-audit-tlsdesc-dlopen-ENV = LD_AUDIT=$(objpfx)tst-auditmod-tlsdesc.so ++$(objpfx)tst-audit-tlsdesc-dlopen2.out: $(objpfx)tst-auditmod-tlsdesc2.so \ ++ $(patsubst %, $(objpfx)%.so, $(tlsmod17a-modules)) ++tst-audit-tlsdesc-dlopen2-ENV = LD_AUDIT=$(objpfx)tst-auditmod-tlsdesc2.so + + $(objpfx)tst-dlmopen-twice.out: \ + $(objpfx)tst-dlmopen-twice-mod1.so \ +diff -Nrup a/elf/dl-tls.c b/elf/dl-tls.c +--- a/elf/dl-tls.c 2025-05-14 14:37:06.814675657 -0400 ++++ b/elf/dl-tls.c 2025-05-14 14:29:04.110980989 -0400 +@@ -534,6 +534,13 @@ _dl_resize_dtv (dtv_t *dtv, size_t max_m + if (newp == NULL) + oom (); + memcpy (newp, &dtv[-1], (2 + oldsize) * sizeof (dtv_t)); ++#ifdef SHARED ++ /* Auditors can trigger a DTV resize event while the full malloc ++ is not yet in use. Mark the new DTV allocation as the ++ initial allocation. */ ++ if (!__rtld_malloc_is_complete ()) ++ GL(dl_initial_dtv) = &newp[1]; ++#endif + } + else + { +diff -Nrup a/elf/tst-audit-tlsdesc-dlopen2.c b/elf/tst-audit-tlsdesc-dlopen2.c +--- a/elf/tst-audit-tlsdesc-dlopen2.c 1969-12-31 19:00:00.000000000 -0500 ++++ b/elf/tst-audit-tlsdesc-dlopen2.c 2025-05-14 14:29:04.110980989 -0400 +@@ -0,0 +1,46 @@ ++/* Loading TLS-using modules from auditors (bug 32412). Main program. ++ Copyright (C) 2021-2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ puts ("info: start of main program"); ++ ++ /* Load TLS-using modules, to trigger DTV resizing. The dynamic ++ linker will load them again (requiring their own TLS) because the ++ dlopen calls from the auditor were in the auditing namespace. */ ++ for (int i = 1; i <= 19; ++i) ++ { ++ char dso[30]; ++ snprintf (dso, sizeof (dso), "tst-tlsmod17a%d.so", i); ++ char sym[30]; ++ snprintf (sym, sizeof(sym), "tlsmod17a%d", i); ++ ++ void *handle = xdlopen (dso, RTLD_LAZY); ++ int (*func) (void) = xdlsym (handle, sym); ++ /* Trigger TLS allocation. */ ++ func (); ++ } ++ ++ return 0; ++} ++ ++#include +diff -Nrup a/elf/tst-auditmod-tlsdesc2.c b/elf/tst-auditmod-tlsdesc2.c +--- a/elf/tst-auditmod-tlsdesc2.c 1969-12-31 19:00:00.000000000 -0500 ++++ b/elf/tst-auditmod-tlsdesc2.c 2025-05-14 14:29:04.110980989 -0400 +@@ -0,0 +1,59 @@ ++/* Loading TLS-using modules from auditors (bug 32412). Audit module. ++ Copyright (C) 2021-2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++unsigned int ++la_version (unsigned int version) ++{ ++ /* Open some modules, to trigger DTV resizing before the switch to ++ the main malloc. */ ++ for (int i = 1; i <= 19; ++i) ++ { ++ char dso[30]; ++ snprintf (dso, sizeof (dso), "tst-tlsmod17a%d.so", i); ++ char sym[30]; ++ snprintf (sym, sizeof(sym), "tlsmod17a%d", i); ++ ++ void *handle = dlopen (dso, RTLD_LAZY); ++ if (handle == NULL) ++ { ++ printf ("error: dlmopen from auditor: %s\n", dlerror ()); ++ fflush (stdout); ++ _exit (1); ++ } ++ int (*func) (void) = dlsym (handle, sym); ++ if (func == NULL) ++ { ++ printf ("error: dlsym from auditor: %s\n", dlerror ()); ++ fflush (stdout); ++ _exit (1); ++ } ++ /* Trigger TLS allocation. */ ++ func (); ++ } ++ ++ puts ("info: TLS-using modules loaded from auditor"); ++ fflush (stdout); ++ ++ return LAV_CURRENT; ++} diff --git a/SOURCES/glibc-RHEL-72017-1.patch b/SOURCES/glibc-RHEL-72017-1.patch new file mode 100644 index 0000000..dd909af --- /dev/null +++ b/SOURCES/glibc-RHEL-72017-1.patch @@ -0,0 +1,39 @@ +commit 12956e0a330e3d90fc196f7d7a047ce613f78920 +Author: Carlos O'Donell +Date: Thu Jun 8 06:43:44 2023 -0400 + + ctype: Reformat Makefile. + + Reflow and sort Makefile. + + Code generation changes present due to link order changes. + + No regressions on x86_64 and i686. + +diff --git a/ctype/Makefile b/ctype/Makefile +index e8b5684ba77a2cd5..3a59358ec4deb28a 100644 +--- a/ctype/Makefile ++++ b/ctype/Makefile +@@ -24,9 +24,18 @@ include ../Makeconfig + + headers := ctype.h + +-routines := ctype ctype-c99 ctype-extn ctype-c99_l ctype_l isctype +-aux := ctype-info +- +-tests := test_ctype ++routines := \ ++ ctype \ ++ ctype-c99 \ ++ ctype-c99_l \ ++ ctype-extn \ ++ ctype_l \ ++ isctype \ ++ # routines ++aux := ctype-info ++ ++tests := \ ++ test_ctype \ ++ # tests + + include ../Rules diff --git a/SOURCES/glibc-RHEL-72017-2.patch b/SOURCES/glibc-RHEL-72017-2.patch new file mode 100644 index 0000000..37b3b42 --- /dev/null +++ b/SOURCES/glibc-RHEL-72017-2.patch @@ -0,0 +1,298 @@ +commit 10a66a8e421b09682b774c795ef1da402235dddc +Author: Florian Weimer +Date: Fri May 16 19:53:09 2025 +0200 + + Remove + + Use __thread variables directly instead. The macros do not save any + typing. It seems unlikely that a future port will lack __thread + variable support. + + Some of the __libc_tsd_* variables are referenced from assembler + files, so keep their names. Previously, included + , which in turn included , so a few direct includes + of are now required. + + Reviewed-by: Frédéric Bérat + +Conflicts: + sysdeps/generic/libc-tsd.h (copyright year changes) + +diff --git a/ctype/ctype-info.c b/ctype/ctype-info.c +index 783cad132363e583..0288c4121702e1d8 100644 +--- a/ctype/ctype-info.c ++++ b/ctype/ctype-info.c +@@ -19,20 +19,20 @@ + #include + #include + +-__libc_tsd_define (, const uint16_t *, CTYPE_B) +-__libc_tsd_define (, const int32_t *, CTYPE_TOLOWER) +-__libc_tsd_define (, const int32_t *, CTYPE_TOUPPER) ++__thread const uint16_t * __libc_tsd_CTYPE_B; ++__thread const int32_t * __libc_tsd_CTYPE_TOLOWER; ++__thread const int32_t * __libc_tsd_CTYPE_TOUPPER; + + + void + __ctype_init (void) + { +- const uint16_t **bp = __libc_tsd_address (const uint16_t *, CTYPE_B); +- *bp = (const uint16_t *) _NL_CURRENT (LC_CTYPE, _NL_CTYPE_CLASS) + 128; +- const int32_t **up = __libc_tsd_address (const int32_t *, CTYPE_TOUPPER); +- *up = ((int32_t *) _NL_CURRENT (LC_CTYPE, _NL_CTYPE_TOUPPER) + 128); +- const int32_t **lp = __libc_tsd_address (const int32_t *, CTYPE_TOLOWER); +- *lp = ((int32_t *) _NL_CURRENT (LC_CTYPE, _NL_CTYPE_TOLOWER) + 128); ++ __libc_tsd_CTYPE_B ++ = ((const uint16_t *) _NL_CURRENT (LC_CTYPE, _NL_CTYPE_CLASS)) + 128; ++ __libc_tsd_CTYPE_TOUPPER ++ = ((const int32_t *) _NL_CURRENT (LC_CTYPE, _NL_CTYPE_TOUPPER)) + 128; ++ __libc_tsd_CTYPE_TOLOWER = ++ ((const int32_t *) _NL_CURRENT (LC_CTYPE, _NL_CTYPE_TOLOWER)) + 128; + } + libc_hidden_def (__ctype_init) + +diff --git a/include/ctype.h b/include/ctype.h +index 493a6f80ce8e8b8e..e993adc86da43b7c 100644 +--- a/include/ctype.h ++++ b/include/ctype.h +@@ -24,33 +24,32 @@ libc_hidden_proto (toupper) + NL_CURRENT_INDIRECT. */ + + # include "../locale/localeinfo.h" +-# include + + # ifndef CTYPE_EXTERN_INLINE /* Used by ctype/ctype-info.c, which see. */ + # define CTYPE_EXTERN_INLINE extern inline + # endif + +-__libc_tsd_define (extern, const uint16_t *, CTYPE_B) +-__libc_tsd_define (extern, const int32_t *, CTYPE_TOUPPER) +-__libc_tsd_define (extern, const int32_t *, CTYPE_TOLOWER) ++extern __thread const uint16_t * __libc_tsd_CTYPE_B; ++extern __thread const int32_t * __libc_tsd_CTYPE_TOUPPER; ++extern __thread const int32_t * __libc_tsd_CTYPE_TOLOWER; + + + CTYPE_EXTERN_INLINE const uint16_t ** __attribute__ ((const)) + __ctype_b_loc (void) + { +- return __libc_tsd_address (const uint16_t *, CTYPE_B); ++ return &__libc_tsd_CTYPE_B; + } + + CTYPE_EXTERN_INLINE const int32_t ** __attribute__ ((const)) + __ctype_toupper_loc (void) + { +- return __libc_tsd_address (const int32_t *, CTYPE_TOUPPER); ++ return &__libc_tsd_CTYPE_TOUPPER; + } + + CTYPE_EXTERN_INLINE const int32_t ** __attribute__ ((const)) + __ctype_tolower_loc (void) + { +- return __libc_tsd_address (const int32_t *, CTYPE_TOLOWER); ++ return &__libc_tsd_CTYPE_TOLOWER; + } + + # ifndef __NO_CTYPE +diff --git a/include/rpc/rpc.h b/include/rpc/rpc.h +index f5cee6caef6284d2..936ea3cebb8101e1 100644 +--- a/include/rpc/rpc.h ++++ b/include/rpc/rpc.h +@@ -3,8 +3,6 @@ + + # ifndef _ISOMAC + +-#include +- + /* Now define the internal interfaces. */ + extern unsigned long _create_xid (void); + +@@ -47,7 +45,7 @@ extern void __rpc_thread_key_cleanup (void) attribute_hidden; + + extern void __rpc_thread_destroy (void) attribute_hidden; + +-__libc_tsd_define (extern, struct rpc_thread_variables *, RPC_VARS) ++extern __thread struct rpc_thread_variables *__libc_tsd_RPC_VARS; + + #define RPC_THREAD_VARIABLE(x) (__rpc_thread_variables()->x) + +diff --git a/locale/lc-ctype.c b/locale/lc-ctype.c +index 7c97480cbd6ae9b7..9b4a0fb83b6f326b 100644 +--- a/locale/lc-ctype.c ++++ b/locale/lc-ctype.c +@@ -64,12 +64,9 @@ _nl_postload_ctype (void) + in fact using the global locale. */ + if (_NL_CURRENT_LOCALE == &_nl_global_locale) + { +- __libc_tsd_set (const uint16_t *, CTYPE_B, +- (void *) _nl_global_locale.__ctype_b); +- __libc_tsd_set (const int32_t *, CTYPE_TOUPPER, +- (void *) _nl_global_locale.__ctype_toupper); +- __libc_tsd_set (const int32_t *, CTYPE_TOLOWER, +- (void *) _nl_global_locale.__ctype_tolower); ++ __libc_tsd_CTYPE_B = _nl_global_locale.__ctype_b; ++ __libc_tsd_CTYPE_TOUPPER = _nl_global_locale.__ctype_toupper; ++ __libc_tsd_CTYPE_TOLOWER = _nl_global_locale.__ctype_tolower; + } + + #include +diff --git a/locale/localeinfo.h b/locale/localeinfo.h +index b3d4da0185de089b..7d0e01fc9600aa74 100644 +--- a/locale/localeinfo.h ++++ b/locale/localeinfo.h +@@ -220,10 +220,8 @@ extern struct __locale_struct _nl_global_locale attribute_hidden; + + /* This fetches the thread-local locale_t pointer, either one set with + uselocale or &_nl_global_locale. */ +-#define _NL_CURRENT_LOCALE (__libc_tsd_get (locale_t, LOCALE)) +-#include +-__libc_tsd_define (extern, locale_t, LOCALE) +- ++#define _NL_CURRENT_LOCALE __libc_tsd_LOCALE ++extern __thread locale_t __libc_tsd_LOCALE; + + /* For static linking it is desireable to avoid always linking in the code + and data for every category when we can tell at link time that they are +diff --git a/locale/uselocale.c b/locale/uselocale.c +index 0829d892a2421df7..5df8568b9151731c 100644 +--- a/locale/uselocale.c ++++ b/locale/uselocale.c +@@ -34,7 +34,7 @@ __uselocale (locale_t newloc) + { + const locale_t locobj + = newloc == LC_GLOBAL_LOCALE ? &_nl_global_locale : newloc; +- __libc_tsd_set (locale_t, LOCALE, locobj); ++ __libc_tsd_LOCALE = locobj; + + #ifdef NL_CURRENT_INDIRECT + /* Now we must update all the per-category thread-local variables to +@@ -62,11 +62,9 @@ __uselocale (locale_t newloc) + #endif + + /* Update the special tsd cache of some locale data. */ +- __libc_tsd_set (const uint16_t *, CTYPE_B, (void *) locobj->__ctype_b); +- __libc_tsd_set (const int32_t *, CTYPE_TOLOWER, +- (void *) locobj->__ctype_tolower); +- __libc_tsd_set (const int32_t *, CTYPE_TOUPPER, +- (void *) locobj->__ctype_toupper); ++ __libc_tsd_CTYPE_B = locobj->__ctype_b; ++ __libc_tsd_CTYPE_TOLOWER = locobj->__ctype_tolower; ++ __libc_tsd_CTYPE_TOUPPER = locobj->__ctype_toupper; + } + + return oldloc == &_nl_global_locale ? LC_GLOBAL_LOCALE : oldloc; +diff --git a/stdio-common/printf-parsemb.c b/stdio-common/printf-parsemb.c +index 6e64a6bb98a81ce0..d143044165b8d5f1 100644 +--- a/stdio-common/printf-parsemb.c ++++ b/stdio-common/printf-parsemb.c +@@ -17,6 +17,7 @@ + . */ + + #include ++#include + #include + #include + #include +diff --git a/string/strerror.c b/string/strerror.c +index f0b04be13b4b7ed6..3c1b0d936832dfd5 100644 +--- a/string/strerror.c ++++ b/string/strerror.c +@@ -21,5 +21,5 @@ + char * + strerror (int errnum) + { +- return __strerror_l (errnum, __libc_tsd_get (locale_t, LOCALE)); ++ return __strerror_l (errnum, __libc_tsd_LOCALE); + } +diff --git a/sunrpc/rpc_thread.c b/sunrpc/rpc_thread.c +index 0abe6dc172040125..ba2a0fc09e1eb52f 100644 +--- a/sunrpc/rpc_thread.c ++++ b/sunrpc/rpc_thread.c +@@ -3,7 +3,6 @@ + #include + + #include +-#include + #include + #include + +diff --git a/sysdeps/generic/libc-tsd.h b/sysdeps/generic/libc-tsd.h +deleted file mode 100644 +index c18208ce2ba296f6..0000000000000000 +--- a/sysdeps/generic/libc-tsd.h ++++ /dev/null +@@ -1,60 +0,0 @@ +-/* libc-internal interface for thread-specific data. Stub or TLS version. +- Copyright (C) 1998-2021 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#ifndef _GENERIC_LIBC_TSD_H +-#define _GENERIC_LIBC_TSD_H 1 +- +-/* This file defines the following macros for accessing a small fixed +- set of thread-specific `void *' data used only internally by libc. +- +- __libc_tsd_define(CLASS, TYPE, KEY) -- Define or declare a datum with TYPE +- for KEY. CLASS can be `static' for +- keys used in only one source file, +- empty for global definitions, or +- `extern' for global declarations. +- __libc_tsd_address(TYPE, KEY) -- Return the `TYPE *' pointing to +- the current thread's datum for KEY. +- __libc_tsd_get(TYPE, KEY) -- Return the `TYPE' datum for KEY. +- __libc_tsd_set(TYPE, KEY, VALUE) -- Set the datum for KEY to VALUE. +- +- The set of available KEY's will usually be provided as an enum, +- and contains (at least): +- _LIBC_TSD_KEY_MALLOC +- _LIBC_TSD_KEY_DL_ERROR +- _LIBC_TSD_KEY_RPC_VARS +- All uses must be the literal _LIBC_TSD_* name in the __libc_tsd_* macros. +- Some implementations may not provide any enum at all and instead +- using string pasting in the macros. */ +- +-#include +- +-/* When full support for __thread variables is available, this interface is +- just a trivial wrapper for it. Without TLS, this is the generic/stub +- implementation for wholly single-threaded systems. +- +- We don't define an enum for the possible key values, because the KEYs +- translate directly into variables by macro magic. */ +- +-#define __libc_tsd_define(CLASS, TYPE, KEY) \ +- CLASS __thread TYPE __libc_tsd_##KEY attribute_tls_model_ie; +- +-#define __libc_tsd_address(TYPE, KEY) (&__libc_tsd_##KEY) +-#define __libc_tsd_get(TYPE, KEY) (__libc_tsd_##KEY) +-#define __libc_tsd_set(TYPE, KEY, VALUE) (__libc_tsd_##KEY = (VALUE)) +- +-#endif /* libc-tsd.h */ +diff --git a/time/strftime_l.c b/time/strftime_l.c +index 57abbaa571694505..8dd5e58cd6459e90 100644 +--- a/time/strftime_l.c ++++ b/time/strftime_l.c +@@ -40,6 +40,7 @@ + #endif + + #include ++#include + #include /* Some systems define `time_t' here. */ + + #ifdef TIME_WITH_SYS_TIME diff --git a/SOURCES/glibc-RHEL-72017-3.patch b/SOURCES/glibc-RHEL-72017-3.patch new file mode 100644 index 0000000..5125d38 --- /dev/null +++ b/SOURCES/glibc-RHEL-72017-3.patch @@ -0,0 +1,60 @@ +commit a894f04d877653bea1639fc9a4adf73bd9347bf4 +Author: Florian Weimer +Date: Fri May 16 19:53:09 2025 +0200 + + Optimize __libc_tsd_* thread variable access + + These variables are not exported, and libc.so TLS is initial-exec + anyway. Declare these variables as hidden and use the initial-exec + TLS model. + + Reviewed-by: Frédéric Bérat + +diff --git a/include/ctype.h b/include/ctype.h +index e993adc86da43b7c..0f6e7fc7ea28f821 100644 +--- a/include/ctype.h ++++ b/include/ctype.h +@@ -29,9 +29,12 @@ libc_hidden_proto (toupper) + # define CTYPE_EXTERN_INLINE extern inline + # endif + +-extern __thread const uint16_t * __libc_tsd_CTYPE_B; +-extern __thread const int32_t * __libc_tsd_CTYPE_TOUPPER; +-extern __thread const int32_t * __libc_tsd_CTYPE_TOLOWER; ++extern __thread const uint16_t * __libc_tsd_CTYPE_B ++ attribute_hidden attribute_tls_model_ie; ++extern __thread const int32_t * __libc_tsd_CTYPE_TOUPPER ++ attribute_hidden attribute_tls_model_ie; ++extern __thread const int32_t * __libc_tsd_CTYPE_TOLOWER ++ attribute_hidden attribute_tls_model_ie; + + + CTYPE_EXTERN_INLINE const uint16_t ** __attribute__ ((const)) +diff --git a/include/rpc/rpc.h b/include/rpc/rpc.h +index 936ea3cebb8101e1..ba967833ad8d8ac3 100644 +--- a/include/rpc/rpc.h ++++ b/include/rpc/rpc.h +@@ -45,7 +45,8 @@ extern void __rpc_thread_key_cleanup (void) attribute_hidden; + + extern void __rpc_thread_destroy (void) attribute_hidden; + +-extern __thread struct rpc_thread_variables *__libc_tsd_RPC_VARS; ++extern __thread struct rpc_thread_variables *__libc_tsd_RPC_VARS ++ attribute_hidden attribute_tls_model_ie; + + #define RPC_THREAD_VARIABLE(x) (__rpc_thread_variables()->x) + +diff --git a/locale/localeinfo.h b/locale/localeinfo.h +index 7d0e01fc9600aa74..43454b19c1aff3de 100644 +--- a/locale/localeinfo.h ++++ b/locale/localeinfo.h +@@ -221,7 +221,8 @@ extern struct __locale_struct _nl_global_locale attribute_hidden; + /* This fetches the thread-local locale_t pointer, either one set with + uselocale or &_nl_global_locale. */ + #define _NL_CURRENT_LOCALE __libc_tsd_LOCALE +-extern __thread locale_t __libc_tsd_LOCALE; ++extern __thread locale_t __libc_tsd_LOCALE ++ attribute_hidden attribute_tls_model_ie; + + /* For static linking it is desireable to avoid always linking in the code + and data for every category when we can tell at link time that they are diff --git a/SOURCES/glibc-RHEL-72017-4.patch b/SOURCES/glibc-RHEL-72017-4.patch new file mode 100644 index 0000000..8e54d63 --- /dev/null +++ b/SOURCES/glibc-RHEL-72017-4.patch @@ -0,0 +1,66 @@ +commit e0c0f856f58ceb68800a964c36c15c606e7a8c4c +Author: Florian Weimer +Date: Fri May 16 19:53:09 2025 +0200 + + Use proper extern declaration for _nl_C_LC_CTYPE_{class,toupper,tolower} + + The existing initializers already contain explicit casts. Keep them + due to int/uint32_t mismatch. + + Reviewed-by: Frédéric Bérat + +diff --git a/ctype/ctype-info.c b/ctype/ctype-info.c +index 0288c4121702e1d8..3933b3b9f7a26fd1 100644 +--- a/ctype/ctype-info.c ++++ b/ctype/ctype-info.c +@@ -41,10 +41,7 @@ libc_hidden_def (__ctype_init) + #if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3) + + /* Defined in locale/C-ctype.c. */ +-extern const char _nl_C_LC_CTYPE_class[] attribute_hidden; + extern const char _nl_C_LC_CTYPE_class32[] attribute_hidden; +-extern const char _nl_C_LC_CTYPE_toupper[] attribute_hidden; +-extern const char _nl_C_LC_CTYPE_tolower[] attribute_hidden; + extern const char _nl_C_LC_CTYPE_class_upper[] attribute_hidden; + extern const char _nl_C_LC_CTYPE_class_lower[] attribute_hidden; + extern const char _nl_C_LC_CTYPE_class_alpha[] attribute_hidden; +diff --git a/include/ctype.h b/include/ctype.h +index 0f6e7fc7ea28f821..a15e5b66781535d4 100644 +--- a/include/ctype.h ++++ b/include/ctype.h +@@ -66,6 +66,11 @@ __ctype_tolower_loc (void) + # define __isdigit_l(c, l) ({ int __c = (c); __c >= '0' && __c <= '9'; }) + # endif /* Not __NO_CTYPE. */ + ++/* For use in initializers. */ ++extern const char _nl_C_LC_CTYPE_class[] attribute_hidden; ++extern const uint32_t _nl_C_LC_CTYPE_toupper[] attribute_hidden; ++extern const uint32_t _nl_C_LC_CTYPE_tolower[] attribute_hidden; ++ + # endif /* IS_IN (libc). */ + #endif /* Not _ISOMAC. */ + +diff --git a/locale/xlocale.c b/locale/xlocale.c +index be72b5a1b03a1757..28e47d2f7ec38094 100644 +--- a/locale/xlocale.c ++++ b/locale/xlocale.c +@@ -19,18 +19,13 @@ + + #include + #include "localeinfo.h" ++#include + + #define DEFINE_CATEGORY(category, category_name, items, a) \ + extern struct __locale_data _nl_C_##category; + #include "categories.def" + #undef DEFINE_CATEGORY + +-/* Defined in locale/C-ctype.c. */ +-extern const char _nl_C_LC_CTYPE_class[] attribute_hidden; +-extern const char _nl_C_LC_CTYPE_toupper[] attribute_hidden; +-extern const char _nl_C_LC_CTYPE_tolower[] attribute_hidden; +- +- + const struct __locale_struct _nl_C_locobj attribute_hidden = + { + .__locales = diff --git a/SOURCES/glibc-RHEL-72017-5.patch b/SOURCES/glibc-RHEL-72017-5.patch new file mode 100644 index 0000000..2095c8d --- /dev/null +++ b/SOURCES/glibc-RHEL-72017-5.patch @@ -0,0 +1,197 @@ +commit 2745db8dd3ec31045acd761b612516490085bc20 +Author: Florian Weimer +Date: Fri May 16 19:53:09 2025 +0200 + + ctype: Fallback initialization of TLS using relocations (bug 19341, bug 32483) + + This ensures that the ctype data pointers in TLS are valid + in secondary namespaces even without initialization via + __ctype_init. + + Reviewed-by: Frédéric Bérat + +diff --git a/ctype/Makefile b/ctype/Makefile +index 3a59358ec4deb28a..d607f3d05e3f31ad 100644 +--- a/ctype/Makefile ++++ b/ctype/Makefile +@@ -36,6 +36,23 @@ aux := ctype-info + + tests := \ + test_ctype \ ++ tst-ctype-tls-dlmopen \ ++ tst-ctype-tls-dlopen-static \ + # tests + ++tests-static := \ ++ tst-ctype-tls-dlopen-static \ ++ # tests-static ++ ++modules-names := \ ++ tst-ctype-tls-mod \ ++ # modules-names ++ + include ../Rules ++ ++$(objpfx)tst-ctype-tls-dlmopen: $(shared-thread-library) ++$(objpfx)tst-ctype-tls-dlmopen.out: $(objpfx)tst-ctype-tls-mod.so ++$(objpfx)tst-ctype-tls-dlopen-static: $(static-thread-library) ++$(objpfx)tst-ctype-tls-dlopen-static.out: $(objpfx)tst-ctype-tls-mod.so ++tst-ctype-tls-dlopen-static-ENV = \ ++ LD_LIBRARY_PATH=$(ld-library-path):$(common-objpfx):$(common-objpfx)elf +diff --git a/ctype/ctype-info.c b/ctype/ctype-info.c +index 3933b3b9f7a26fd1..e0752b4a1af6df15 100644 +--- a/ctype/ctype-info.c ++++ b/ctype/ctype-info.c +@@ -19,9 +19,17 @@ + #include + #include + +-__thread const uint16_t * __libc_tsd_CTYPE_B; +-__thread const int32_t * __libc_tsd_CTYPE_TOLOWER; +-__thread const int32_t * __libc_tsd_CTYPE_TOUPPER; ++/* Fallback initialization using relocations. See the _nl_C_locobj ++ initializers in locale/xlocale.c. Usually, this is overwritten by ++ __ctype_init before user code runs, but this does not happen for ++ threads in secondary namespaces. With the initializers, secondary ++ namespaces at least get locale data from the C locale. */ ++__thread const uint16_t * __libc_tsd_CTYPE_B ++ = (const uint16_t *) _nl_C_LC_CTYPE_class + 128; ++__thread const int32_t * __libc_tsd_CTYPE_TOLOWER ++ = (const int32_t *) _nl_C_LC_CTYPE_tolower + 128; ++__thread const int32_t * __libc_tsd_CTYPE_TOUPPER ++ = (const int32_t *) _nl_C_LC_CTYPE_toupper + 128; + + + void +diff --git a/ctype/tst-ctype-tls-dlmopen.c b/ctype/tst-ctype-tls-dlmopen.c +new file mode 100644 +index 0000000000000000..f7eeb65551344b72 +--- /dev/null ++++ b/ctype/tst-ctype-tls-dlmopen.c +@@ -0,0 +1,2 @@ ++#define DO_STATIC_TEST 0 ++#include "tst-ctype-tls-skeleton.c" +diff --git a/ctype/tst-ctype-tls-dlopen-static.c b/ctype/tst-ctype-tls-dlopen-static.c +new file mode 100644 +index 0000000000000000..c2c09c362cc95906 +--- /dev/null ++++ b/ctype/tst-ctype-tls-dlopen-static.c +@@ -0,0 +1,2 @@ ++#define DO_STATIC_TEST 1 ++#include "tst-ctype-tls-skeleton.c" +diff --git a/ctype/tst-ctype-tls-mod.c b/ctype/tst-ctype-tls-mod.c +new file mode 100644 +index 0000000000000000..52cbb9dcb67e1800 +--- /dev/null ++++ b/ctype/tst-ctype-tls-mod.c +@@ -0,0 +1,37 @@ ++/* Wrappers for macros in a secondary namespace. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++int ++my_isalpha (int ch) ++{ ++ return isalpha (ch); ++} ++ ++int ++my_toupper (int ch) ++{ ++ return toupper (ch); ++} ++ ++int ++my_tolower (int ch) ++{ ++ return tolower (ch); ++} +diff --git a/ctype/tst-ctype-tls-skeleton.c b/ctype/tst-ctype-tls-skeleton.c +new file mode 100644 +index 0000000000000000..8c53e35899f12b8f +--- /dev/null ++++ b/ctype/tst-ctype-tls-skeleton.c +@@ -0,0 +1,67 @@ ++/* Test that in a secondary namespace works. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* Before this file is included, define DO_STATIC_TEST to 0 or 1. ++ With 0, dlmopen is used for the test. With 1, dlopen is used. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int (*my_isalpha) (int); ++static int (*my_toupper) (int); ++static int (*my_tolower) (int); ++ ++static void * ++checks (void *ignore) ++{ ++ TEST_VERIFY (my_isalpha ('a')); ++ TEST_VERIFY (!my_isalpha ('0')); ++ TEST_COMPARE (my_toupper ('a'), 'A'); ++ TEST_COMPARE (my_toupper ('A'), 'A'); ++ TEST_COMPARE (my_tolower ('a'), 'a'); ++ TEST_COMPARE (my_tolower ('A'), 'a'); ++ return NULL; ++} ++ ++static int ++do_test (void) ++{ ++ char *dso = xasprintf ("%s/ctype/tst-ctype-tls-mod.so", support_objdir_root); ++#if DO_STATIC_TEST ++ void *handle = xdlopen (dso, RTLD_LAZY); ++#else ++ void *handle = xdlmopen (LM_ID_NEWLM, dso, RTLD_LAZY); ++#endif ++ my_isalpha = xdlsym (handle, "my_isalpha"); ++ my_toupper = xdlsym (handle, "my_toupper"); ++ my_tolower = xdlsym (handle, "my_tolower"); ++ ++ checks (NULL); ++ xpthread_join (xpthread_create (NULL, checks, NULL)); ++ ++ xdlclose (handle); ++ free (dso); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-74251.patch b/SOURCES/glibc-RHEL-74251.patch new file mode 100644 index 0000000..7e66e04 --- /dev/null +++ b/SOURCES/glibc-RHEL-74251.patch @@ -0,0 +1,285 @@ +commit 46d31980943d8be2f421c1e3276b265c7552636e +Author: Florian Weimer +Date: Fri Mar 7 17:37:50 2025 +0100 + + elf: Fix handling of symbol versions which hash to zero (bug 29190) + + This was found through code inspection. No application impact is + known. + + Reviewed-by: Adhemerval Zanella + +Conflicts: + elf/Makefile (fixup context) + +diff --git a/elf/Makefile b/elf/Makefile +index a28ea58551ffd1d7..ba11f3a8b81e7218 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -488,6 +488,7 @@ tests += \ + tst-unique2 \ + tst-unwind-ctor \ + tst-unwind-main \ ++ tst-version-hash-zero \ + unload3 \ + unload4 \ + unload5 \ +@@ -927,6 +928,9 @@ modules-names = \ + tst-unique2mod1 \ + tst-unique2mod2 \ + tst-unwind-ctor-lib \ ++ tst-version-hash-zero-linkmod \ ++ tst-version-hash-zero-mod \ ++ tst-version-hash-zero-refmod \ + unload2dep \ + unload2mod \ + unload3mod1 \ +@@ -3014,3 +3018,20 @@ $(objpfx)tst-sprof-basic.out: tst-sprof-basic.sh $(objpfx)tst-sprof-basic + '$(run-program-env)' > $@; \ + $(evaluate-test) + generated += tst-sprof-mod.so.profile ++ ++$(objpfx)tst-version-hash-zero.out: \ ++ $(objpfx)tst-version-hash-zero-mod.so \ ++ $(objpfx)tst-version-hash-zero-refmod.so ++LDFLAGS-tst-version-hash-zero-mod.so = \ ++ -Wl,--version-script=tst-version-hash-zero-mod.map ++# The run-time test module tst-version-hash-zero-refmod.so is linked ++# to a stub module, tst-version-hash-zero-linkmod.so, to produce an ++# expected relocation error. ++$(objpfx)tst-version-hash-zero-refmod.so: \ ++ $(objpfx)tst-version-hash-zero-linkmod.so ++LDFLAGS-tst-version-hash-zero-linkmod.so = \ ++ -Wl,--version-script=tst-version-hash-zero-linkmod.map \ ++ -Wl,--soname=tst-version-hash-zero-mod.so ++$(objpfx)tst-version-hash-zero-refmod.so: \ ++ $(objpfx)tst-version-hash-zero-linkmod.so ++tst-version-hash-zero-refmod.so-no-z-defs = yes +diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c +index 94ae2d0c46696118..4c882bdd173a835d 100644 +--- a/elf/dl-lookup.c ++++ b/elf/dl-lookup.c +@@ -112,12 +112,22 @@ check_match (const char *const undef_name, + /* We can match the version information or use the + default one if it is not hidden. */ + ElfW(Half) ndx = verstab[symidx] & 0x7fff; +- if ((map->l_versions[ndx].hash != version->hash +- || strcmp (map->l_versions[ndx].name, version->name)) +- && (version->hidden || map->l_versions[ndx].hash +- || (verstab[symidx] & 0x8000))) +- /* It's not the version we want. */ +- return NULL; ++ if (map->l_versions[ndx].hash == version->hash ++ && strcmp (map->l_versions[ndx].name, version->name) == 0) ++ /* This is an exact version match. Return the symbol below. */ ++ ; ++ else ++ { ++ if (!version->hidden ++ && map->l_versions[ndx].name[0] == '\0' ++ && (verstab[symidx] & 0x8000) == 0 ++ && (*num_versions)++ == 0) ++ /* This is the global default version. Store it as a ++ fallback match. */ ++ *versioned_sym = sym; ++ ++ return NULL; ++ } + } + } + else +diff --git a/elf/dl-version.c b/elf/dl-version.c +index 914955c2a832e573..982229c32c50d470 100644 +--- a/elf/dl-version.c ++++ b/elf/dl-version.c +@@ -351,6 +351,13 @@ _dl_check_map_versions (struct link_map *map, int verbose, int trace_mode) + ent = (ElfW(Verdef) *) ((char *) ent + ent->vd_next); + } + } ++ ++ /* The empty string has ELF hash zero. This avoids a NULL check ++ before the version string comparison in check_match in ++ dl-lookup.c. */ ++ for (unsigned int i = 0; i < map->l_nversions; ++i) ++ if (map->l_versions[i].name == NULL) ++ map->l_versions[i].name = ""; + } + + return result; +diff --git a/elf/tst-version-hash-zero-linkmod.c b/elf/tst-version-hash-zero-linkmod.c +new file mode 100644 +index 0000000000000000..15e2506d0111bc7e +--- /dev/null ++++ b/elf/tst-version-hash-zero-linkmod.c +@@ -0,0 +1,22 @@ ++/* Stub module for linking tst-version-hash-zero-refmod.so. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If ++ not, see . */ ++ ++/* The version script assigns a different symbol version for the stub ++ module. Loading the module with the incorrect version is expected ++ to fail. */ ++#include "tst-version-hash-zero-mod.c" +diff --git a/elf/tst-version-hash-zero-linkmod.map b/elf/tst-version-hash-zero-linkmod.map +new file mode 100644 +index 0000000000000000..2dba7c22d7ea7d09 +--- /dev/null ++++ b/elf/tst-version-hash-zero-linkmod.map +@@ -0,0 +1,7 @@ ++Base { ++ local: *; ++}; ++ ++OTHER_VERSION { ++ global: global_variable; ++} Base; +diff --git a/elf/tst-version-hash-zero-mod.c b/elf/tst-version-hash-zero-mod.c +new file mode 100644 +index 0000000000000000..ac6b0dc4a57b5775 +--- /dev/null ++++ b/elf/tst-version-hash-zero-mod.c +@@ -0,0 +1,20 @@ ++/* Test module with a zero version symbol hash. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If ++ not, see . */ ++ ++/* The symbol version is assigned by version script. */ ++int global_variable; +diff --git a/elf/tst-version-hash-zero-mod.map b/elf/tst-version-hash-zero-mod.map +new file mode 100644 +index 0000000000000000..41eaff79147a8fcd +--- /dev/null ++++ b/elf/tst-version-hash-zero-mod.map +@@ -0,0 +1,13 @@ ++Base { ++ local: *; ++}; ++ ++/* Define the version so that tst-version-hash-zero-refmod.so passes ++ the initial symbol version check. */ ++OTHER_VERSION { ++} Base; ++ ++/* This version string hashes to zero. */ ++PPPPPPPPPPPP { ++ global: global_variable; ++} Base; +diff --git a/elf/tst-version-hash-zero-refmod.c b/elf/tst-version-hash-zero-refmod.c +new file mode 100644 +index 0000000000000000..cd8b3dcef5b82012 +--- /dev/null ++++ b/elf/tst-version-hash-zero-refmod.c +@@ -0,0 +1,23 @@ ++/* Test module that triggers a relocation failure in tst-version-hash-zero. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If ++ not, see . */ ++ ++/* This is bound to global_variable@@OTHER_VERSION via ++ tst-version-hash-zero-linkmod.so, but at run time, only ++ global_variable@PPPPPPPPPPPP exists. */ ++extern int global_variable; ++int *pointer_variable = &global_variable; +diff --git a/elf/tst-version-hash-zero.c b/elf/tst-version-hash-zero.c +new file mode 100644 +index 0000000000000000..66a0db4f51fa0e10 +--- /dev/null ++++ b/elf/tst-version-hash-zero.c +@@ -0,0 +1,56 @@ ++/* Symbols with version hash zero should not match any version (bug 29190). ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If ++ not, see . */ ++ ++#include ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ void *handle = xdlopen ("tst-version-hash-zero-mod.so", RTLD_NOW); ++ ++ /* This used to crash because some struct r_found_version entries ++ with hash zero did not have valid version strings. */ ++ TEST_VERIFY (xdlvsym (handle, "global_variable", "PPPPPPPPPPPP") != NULL); ++ ++ /* Consistency check. */ ++ TEST_VERIFY (xdlsym (handle, "global_variable") ++ == xdlvsym (handle, "global_variable", "PPPPPPPPPPPP")); ++ ++ /* This symbol version is supposed to be missing. */ ++ TEST_VERIFY (dlvsym (handle, "global_variable", "OTHER_VERSION") == NULL); ++ ++ /* tst-version-hash-zero-refmod.so references ++ global_variable@@OTHER_VERSION and is expected to fail to load. ++ dlvsym sets the hidden flag during lookup. Relocation does not, ++ so this exercises a different failure case. */ ++ TEST_VERIFY_EXIT (dlopen ("tst-version-hash-zero-refmod.so", RTLD_NOW) ++ == NULL); ++ const char *message = dlerror (); ++ if (strstr (message, ++ ": undefined symbol: global_variable, version OTHER_VERSION") ++ == NULL) ++ FAIL_EXIT1 ("unexpected dlopen failure: %s", message); ++ ++ xdlclose (handle); ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-77082-1.patch b/SOURCES/glibc-RHEL-77082-1.patch new file mode 100644 index 0000000..ca6176b --- /dev/null +++ b/SOURCES/glibc-RHEL-77082-1.patch @@ -0,0 +1,87 @@ +commit 0d21b3783f49ae94207a1bb9acd5dc8b071f0b13 +Author: Joe Simmons-Talbott +Date: Tue Apr 4 09:57:45 2023 -0400 + + stdlib: Add testcases for abs(). (BZ #30263) + + Test minimum and maximum int values, zero, and part of the range + of int values. Use '-fno-builtin' to ensure we are testing the + implementation. + + Reviewed-by: Wilco Dijkstra + +Conflicts: + stdlib/Makefile (fixup context) + +diff --git a/stdlib/Makefile b/stdlib/Makefile +index 4f5de988cee07932..9eb6e1b6ee1df080 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile +@@ -86,6 +86,7 @@ tests := \ + testmb2 \ + testrand \ + testsort \ ++ tst-abs \ + tst-at_quick_exit \ + tst-atexit \ + tst-atof1 \ +@@ -174,6 +175,8 @@ LDLIBS-test-dlclose-exit-race = $(shared-thread-library) + LDFLAGS-test-dlclose-exit-race = $(LDFLAGS-rdynamic) + LDLIBS-test-dlclose-exit-race-helper.so = $(libsupport) $(shared-thread-library) + ++CFLAGS-tst-abs.c += -fno-builtin ++ + ifeq ($(have-cxx-thread_local),yes) + CFLAGS-tst-quick_exit.o = -std=c++11 + LDLIBS-tst-quick_exit = -lstdc++ +diff --git a/stdlib/tst-abs.c b/stdlib/tst-abs.c +new file mode 100644 +index 0000000000000000..2b96aedc3e2c0eef +--- /dev/null ++++ b/stdlib/tst-abs.c +@@ -0,0 +1,45 @@ ++/* Basic tests for abs. ++ Copyright (C) 2023 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#include ++ ++#define LARGE_PRIME 49999 ++ ++static int do_test (void) ++{ ++ int i; ++ ++ TEST_COMPARE(abs(INT_MAX), INT_MAX); ++ TEST_COMPARE(abs(INT_MIN + 1), INT_MAX); ++ TEST_COMPARE(abs(-1), 1); ++ TEST_COMPARE(abs(0), 0); ++ TEST_COMPARE(abs(1), 1); ++ ++ for (i = INT_MIN + 1; i < 0; i += LARGE_PRIME) ++ TEST_COMPARE(abs(i), -i); ++ ++ for (i = 0; i < INT_MAX - LARGE_PRIME; i += LARGE_PRIME) ++ TEST_COMPARE(abs(i), i); ++ ++ return EXIT_SUCCESS; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-77082-2.patch b/SOURCES/glibc-RHEL-77082-2.patch new file mode 100644 index 0000000..cfa8ed3 --- /dev/null +++ b/SOURCES/glibc-RHEL-77082-2.patch @@ -0,0 +1,89 @@ +commit b11db301e162480d1812937ab0410dc7585f423c +Author: Joe Simmons-Talbott +Date: Tue Apr 4 09:57:46 2023 -0400 + + stdlib: Add testcases for labs(). (BZ #30263) + + Test minimum and maximum long values, zero, and part of the range + of long values. Use '-fno-builtin' to ensure we are testing the + implementation. + + Reviewed-by: Wilco Dijkstra + +diff --git a/stdlib/Makefile b/stdlib/Makefile +index 9eb6e1b6ee1df080..2bc09c76ffea39e4 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile +@@ -106,6 +106,7 @@ tests := \ + tst-getenv-thread \ + tst-getenv-unsetenv \ + tst-getrandom \ ++ tst-labs \ + tst-limits \ + tst-makecontext \ + tst-makecontext-align \ +@@ -176,6 +177,7 @@ LDFLAGS-test-dlclose-exit-race = $(LDFLAGS-rdynamic) + LDLIBS-test-dlclose-exit-race-helper.so = $(libsupport) $(shared-thread-library) + + CFLAGS-tst-abs.c += -fno-builtin ++CFLAGS-tst-labs.c += -fno-builtin + + ifeq ($(have-cxx-thread_local),yes) + CFLAGS-tst-quick_exit.o = -std=c++11 +diff --git a/stdlib/tst-labs.c b/stdlib/tst-labs.c +new file mode 100644 +index 0000000000000000..92b456745ac1bb2d +--- /dev/null ++++ b/stdlib/tst-labs.c +@@ -0,0 +1,51 @@ ++/* Basic tests for labs. ++ Copyright (C) 2023 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#include ++ ++#define LARGE_PRIME 49999 ++ ++static int do_test (void) ++{ ++ long i; ++ ++ TEST_COMPARE(labs(LONG_MAX), LONG_MAX); ++ TEST_COMPARE(labs(LONG_MIN + 1), LONG_MAX); ++ TEST_COMPARE(labs(-1), 1); ++ TEST_COMPARE(labs(0), 0); ++ TEST_COMPARE(labs(1), 1); ++ ++ for (i = LONG_MIN + 1; i < LONG_MIN + INT_MAX; i += LARGE_PRIME) ++ TEST_COMPARE(labs(i), -i); ++ ++ for (i = LONG_MAX - INT_MAX; i < LONG_MAX - LARGE_PRIME; i += LARGE_PRIME) ++ TEST_COMPARE(labs(i), i); ++ ++ for (i = INT_MIN + 1; i < 0; i += LARGE_PRIME) ++ TEST_COMPARE(labs(i), -i); ++ ++ for (i = 0; i < INT_MAX; i += LARGE_PRIME) ++ TEST_COMPARE(labs(i), i); ++ ++ return EXIT_SUCCESS; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-77082-3.patch b/SOURCES/glibc-RHEL-77082-3.patch new file mode 100644 index 0000000..847efa8 --- /dev/null +++ b/SOURCES/glibc-RHEL-77082-3.patch @@ -0,0 +1,93 @@ +commit d877b52d58b1c73810751bdb48987b84bda87d5e +Author: Joe Simmons-Talbott +Date: Tue Apr 4 09:57:47 2023 -0400 + + stdlib: Add testcases for llabs(). (BZ #30263) + + Test minimum and maximum long long values, zero, 32bit crossover points, and + part of the range of long long values. Use '-fno-builtin' to ensure we are + testing the implementation. + + Reviewed-by: Wilco Dijkstra + +diff --git a/stdlib/Makefile b/stdlib/Makefile +index 2bc09c76ffea39e4..fe43bec0f9d581d5 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile +@@ -108,6 +108,7 @@ tests := \ + tst-getrandom \ + tst-labs \ + tst-limits \ ++ tst-llabs \ + tst-makecontext \ + tst-makecontext-align \ + tst-makecontext2 \ +@@ -178,6 +179,7 @@ LDLIBS-test-dlclose-exit-race-helper.so = $(libsupport) $(shared-thread-library) + + CFLAGS-tst-abs.c += -fno-builtin + CFLAGS-tst-labs.c += -fno-builtin ++CFLAGS-tst-llabs.c += -fno-builtin + + ifeq ($(have-cxx-thread_local),yes) + CFLAGS-tst-quick_exit.o = -std=c++11 +diff --git a/stdlib/tst-llabs.c b/stdlib/tst-llabs.c +new file mode 100644 +index 0000000000000000..be3cd78ceb5e8013 +--- /dev/null ++++ b/stdlib/tst-llabs.c +@@ -0,0 +1,55 @@ ++/* Basic tests for llabs. ++ Copyright (C) 2023 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#include ++ ++#define LARGE_PRIME 49999 ++ ++static int do_test (void) ++{ ++ long i; ++ ++ TEST_COMPARE(llabs(LLONG_MAX), LLONG_MAX); ++ TEST_COMPARE(llabs(LLONG_MIN + 1), LLONG_MAX); ++ TEST_COMPARE(llabs(0x00000000ffffffffL), 0x00000000ffffffffL); ++ TEST_COMPARE(llabs(0x0000000100000000L), 0x0000000100000000L); ++ TEST_COMPARE(llabs(0x80000000ffffffffL), 0x7fffffff00000001L); ++ TEST_COMPARE(llabs(0x8000000100000000L), 0x7fffffff00000000L); ++ TEST_COMPARE(llabs(-1), 1); ++ TEST_COMPARE(llabs(0), 0); ++ TEST_COMPARE(llabs(1), 1); ++ ++ for (i = LLONG_MIN + 1; i < LLONG_MIN + INT_MAX; i += LARGE_PRIME) ++ TEST_COMPARE(llabs(i), -i); ++ ++ for (i = LLONG_MAX - INT_MAX; i < LLONG_MAX - LARGE_PRIME; i += LARGE_PRIME) ++ TEST_COMPARE(llabs(i), i); ++ ++ for (i = INT_MIN + 1; i < 0; i += LARGE_PRIME) ++ TEST_COMPARE(llabs(i), -i); ++ ++ for (i = 0; i < INT_MAX; i += LARGE_PRIME) ++ TEST_COMPARE(llabs(i), i); ++ ++ return EXIT_SUCCESS; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-77082-4.patch b/SOURCES/glibc-RHEL-77082-4.patch new file mode 100644 index 0000000..6ee14a6 --- /dev/null +++ b/SOURCES/glibc-RHEL-77082-4.patch @@ -0,0 +1,59 @@ +commit 8812b9900e5fba3b696f1b34bd6014211327190f +Author: Florian Weimer +Date: Tue May 16 22:54:25 2023 +0200 + + stdlib: Use long long int in stdlib/tst-llabs + + And adjust for GNU style. + + Reviewed-by: Siddhesh Poyarekar + +diff --git a/stdlib/tst-llabs.c b/stdlib/tst-llabs.c +index be3cd78ceb5e8013..5e4d52def9719201 100644 +--- a/stdlib/tst-llabs.c ++++ b/stdlib/tst-llabs.c +@@ -25,29 +25,29 @@ + + static int do_test (void) + { +- long i; +- +- TEST_COMPARE(llabs(LLONG_MAX), LLONG_MAX); +- TEST_COMPARE(llabs(LLONG_MIN + 1), LLONG_MAX); +- TEST_COMPARE(llabs(0x00000000ffffffffL), 0x00000000ffffffffL); +- TEST_COMPARE(llabs(0x0000000100000000L), 0x0000000100000000L); +- TEST_COMPARE(llabs(0x80000000ffffffffL), 0x7fffffff00000001L); +- TEST_COMPARE(llabs(0x8000000100000000L), 0x7fffffff00000000L); +- TEST_COMPARE(llabs(-1), 1); +- TEST_COMPARE(llabs(0), 0); +- TEST_COMPARE(llabs(1), 1); ++ long long int i; ++ ++ TEST_COMPARE (llabs (LLONG_MAX), LLONG_MAX); ++ TEST_COMPARE (llabs (LLONG_MIN + 1), LLONG_MAX); ++ TEST_COMPARE (llabs (0x00000000ffffffffL), 0x00000000ffffffffL); ++ TEST_COMPARE (llabs (0x0000000100000000L), 0x0000000100000000L); ++ TEST_COMPARE (llabs (0x80000000ffffffffL), 0x7fffffff00000001L); ++ TEST_COMPARE (llabs (0x8000000100000000L), 0x7fffffff00000000L); ++ TEST_COMPARE (llabs (-1), 1); ++ TEST_COMPARE (llabs (0), 0); ++ TEST_COMPARE (llabs (1), 1); + + for (i = LLONG_MIN + 1; i < LLONG_MIN + INT_MAX; i += LARGE_PRIME) +- TEST_COMPARE(llabs(i), -i); ++ TEST_COMPARE (llabs (i), -i); + + for (i = LLONG_MAX - INT_MAX; i < LLONG_MAX - LARGE_PRIME; i += LARGE_PRIME) +- TEST_COMPARE(llabs(i), i); ++ TEST_COMPARE (llabs (i), i); + + for (i = INT_MIN + 1; i < 0; i += LARGE_PRIME) +- TEST_COMPARE(llabs(i), -i); ++ TEST_COMPARE (llabs (i), -i); + + for (i = 0; i < INT_MAX; i += LARGE_PRIME) +- TEST_COMPARE(llabs(i), i); ++ TEST_COMPARE (llabs (i), i); + + return EXIT_SUCCESS; + } diff --git a/SOURCES/glibc-RHEL-77082-5.patch b/SOURCES/glibc-RHEL-77082-5.patch new file mode 100644 index 0000000..cd022eb --- /dev/null +++ b/SOURCES/glibc-RHEL-77082-5.patch @@ -0,0 +1,56 @@ +commit 10a81dd4cf89276f7b1208ed044b93ae846800ce +Author: Florian Weimer +Date: Tue May 16 23:26:40 2023 +0200 + + stdlib: Avoid undefined behavior in stdlib/tst-labs + + The last loop could attempt to overflow beyond INT_MAX on 32-bit + architectures. + + Also switch to GNU style. + + Reviewed-by: Siddhesh Poyarekar + +diff --git a/stdlib/tst-labs.c b/stdlib/tst-labs.c +index 92b456745ac1bb2d..a8d2381f87bca855 100644 +--- a/stdlib/tst-labs.c ++++ b/stdlib/tst-labs.c +@@ -25,25 +25,26 @@ + + static int do_test (void) + { +- long i; ++ long int i; + +- TEST_COMPARE(labs(LONG_MAX), LONG_MAX); +- TEST_COMPARE(labs(LONG_MIN + 1), LONG_MAX); +- TEST_COMPARE(labs(-1), 1); +- TEST_COMPARE(labs(0), 0); +- TEST_COMPARE(labs(1), 1); ++ TEST_COMPARE (labs (LONG_MAX), LONG_MAX); ++ TEST_COMPARE (labs (LONG_MIN + 1), LONG_MAX); ++ TEST_COMPARE (labs (-1), 1); ++ TEST_COMPARE (labs (0), 0); ++ TEST_COMPARE (labs (1), 1); + + for (i = LONG_MIN + 1; i < LONG_MIN + INT_MAX; i += LARGE_PRIME) +- TEST_COMPARE(labs(i), -i); ++ TEST_COMPARE (labs (i), -i); + +- for (i = LONG_MAX - INT_MAX; i < LONG_MAX - LARGE_PRIME; i += LARGE_PRIME) +- TEST_COMPARE(labs(i), i); ++ for (i = LONG_MAX - INT_MAX; i < LONG_MAX - LARGE_PRIME; ++ i += LARGE_PRIME) ++ TEST_COMPARE (labs (i), i); + + for (i = INT_MIN + 1; i < 0; i += LARGE_PRIME) +- TEST_COMPARE(labs(i), -i); ++ TEST_COMPARE (labs (i), -i); + +- for (i = 0; i < INT_MAX; i += LARGE_PRIME) +- TEST_COMPARE(labs(i), i); ++ for (i = 0; i <= INT_MAX - LARGE_PRIME; i += LARGE_PRIME) ++ TEST_COMPARE (labs (i), i); + + return EXIT_SUCCESS; + } diff --git a/SOURCES/glibc-RHEL-80538-1.patch b/SOURCES/glibc-RHEL-80538-1.patch new file mode 100644 index 0000000..8cfcfc6 --- /dev/null +++ b/SOURCES/glibc-RHEL-80538-1.patch @@ -0,0 +1,35 @@ +commit 7bb8045ec0595a031e68383849c3fbd9af134312 +Author: Volker Weißmann +Date: Tue Oct 3 19:18:44 2023 +0200 + + Fix FORTIFY_SOURCE false positive + + When -D_FORTIFY_SOURCE=2 was given during compilation, + sprintf and similar functions will check if their + first argument is in read-only memory and exit with + *** %n in writable segment detected *** + otherwise. To check if the memory is read-only, glibc + reads frpm the file "/proc/self/maps". If opening this + file fails due to too many open files (EMFILE), glibc + will now ignore this error. + + Fixes [BZ #30932] + + Signed-off-by: Volker Weißmann + Reviewed-by: Siddhesh Poyarekar + +diff --git a/sysdeps/unix/sysv/linux/readonly-area.c b/sysdeps/unix/sysv/linux/readonly-area.c +index fa407d2f05e6b9aa..1f0d2e2749b159c9 100644 +--- a/sysdeps/unix/sysv/linux/readonly-area.c ++++ b/sysdeps/unix/sysv/linux/readonly-area.c +@@ -42,7 +42,9 @@ __readonly_area (const char *ptr, size_t size) + to the /proc filesystem if it is set[ug]id. There has + been no willingness to change this in the kernel so + far. */ +- || errno == EACCES) ++ || errno == EACCES ++ /* Process has reached the maximum number of open files. */ ++ || errno == EMFILE) + return 1; + return -1; + } diff --git a/SOURCES/glibc-RHEL-80538-2.patch b/SOURCES/glibc-RHEL-80538-2.patch new file mode 100644 index 0000000..ff2c372 --- /dev/null +++ b/SOURCES/glibc-RHEL-80538-2.patch @@ -0,0 +1,121 @@ +commit be7a5468d4f694ee8d052b537141f51af43ca7f2 +Author: Adhemerval Zanella +Date: Tue Oct 3 15:09:36 2023 -0300 + + debug: Add regression tests for BZ 30932 + + Checked on x86_64-linux-gnu. + Reviewed-by: Siddhesh Poyarekar + +Conflicts: + debug/Makefile: Usual test differences; removed use of + missing configure variable no-fortify-source. + +diff --git a/debug/Makefile b/debug/Makefile +index 563e6249121e8bc9..cb93ed80da57f2cc 100644 +--- a/debug/Makefile ++++ b/debug/Makefile +@@ -110,6 +110,7 @@ CPPFLAGS-tst-longjmp_chk2.c += -D_FORTIFY_SOURCE=1 + CFLAGS-tst-longjmp_chk3.c += -fexceptions -fasynchronous-unwind-tables + CPPFLAGS-tst-longjmp_chk3.c += -D_FORTIFY_SOURCE=1 + CPPFLAGS-tst-realpath-chk.c += -D_FORTIFY_SOURCE=2 ++CFLAGS-tst-sprintf-fortify-rdonly.c += -D_FORTIFY_SOURCE=2 + + # _FORTIFY_SOURCE tests. + # Auto-generate tests for _FORTIFY_SOURCE for different levels, compilers and +@@ -203,6 +204,7 @@ tests = backtrace-tst \ + tst-backtrace5 \ + tst-backtrace6 \ + tst-realpath-chk \ ++ tst-sprintf-fortify-rdonly \ + tst-sprintf-fortify-unchecked \ + $(tests-all-chk) \ + +diff --git a/debug/tst-sprintf-fortify-rdonly.c b/debug/tst-sprintf-fortify-rdonly.c +new file mode 100644 +index 0000000000000000..78dece9102d7dfd3 +--- /dev/null ++++ b/debug/tst-sprintf-fortify-rdonly.c +@@ -0,0 +1,82 @@ ++/* Testcase for BZ 30932. ++ Copyright (C) 2023 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++jmp_buf chk_fail_buf; ++bool chk_fail_ok; ++ ++const char *str2 = "F"; ++char buf2[10] = "%s"; ++ ++static int ++do_test (void) ++{ ++ struct rlimit rl; ++ int max_fd = 24; ++ ++ if (getrlimit (RLIMIT_NOFILE, &rl) == -1) ++ FAIL_EXIT1 ("getrlimit (RLIMIT_NOFILE): %m"); ++ ++ max_fd = (rl.rlim_cur < max_fd ? rl.rlim_cur : max_fd); ++ rl.rlim_cur = max_fd; ++ ++ if (setrlimit (RLIMIT_NOFILE, &rl) == 1) ++ FAIL_EXIT1 ("setrlimit (RLIMIT_NOFILE): %m"); ++ ++ /* Exhaust the file descriptor limit with temporary files. */ ++ int nfiles = 0; ++ for (; nfiles < max_fd; nfiles++) ++ { ++ int fd = create_temp_file ("tst-sprintf-fortify-rdonly-.", NULL); ++ if (fd == -1) ++ { ++ if (errno != EMFILE) ++ FAIL_EXIT1 ("create_temp_file: %m"); ++ break; ++ } ++ } ++ TEST_VERIFY_EXIT (nfiles != 0); ++ ++ /* When the format string is writable and contains %n, ++ with -D_FORTIFY_SOURCE=2 it causes __chk_fail. However, if libc can not ++ open procfs to check if the input format string in within a writable ++ memory segment, the fortify version can not perform the check. */ ++ char buf[128]; ++ int n1; ++ int n2; ++ ++ strcpy (buf2 + 2, "%n%s%n"); ++ if (sprintf (buf, buf2, str2, &n1, str2, &n2) != 2 ++ || n1 != 1 || n2 != 2) ++ FAIL_EXIT1 ("sprintf failed: %s %d %d", buf, n1, n2); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-80538-3.patch b/SOURCES/glibc-RHEL-80538-3.patch new file mode 100644 index 0000000..26d8e7c --- /dev/null +++ b/SOURCES/glibc-RHEL-80538-3.patch @@ -0,0 +1,722 @@ +commit ed6a68bac7cd056abda9008019c71b167f0362dc +Author: Adhemerval Zanella +Date: Fri Mar 14 16:09:57 2025 -0300 + + debug: Improve '%n' fortify detection (BZ 30932) + + The 7bb8045ec0 path made the '%n' fortify check ignore EMFILE errors + while trying to open /proc/self/maps, and this added a security + issue where EMFILE can be attacker-controlled thus making it + ineffective for some cases. + + The EMFILE failure is reinstated but with a different error + message. Also, to improve the false positive of the hardening for + the cases where no new files can be opened, the + _dl_readonly_area now uses _dl_find_object to check if the + memory area is within a writable ELF segment. The procfs method is + still used as fallback. + + Checked on x86_64-linux-gnu and i686-linux-gnu. + Reviewed-by: Arjun Shankar + +Changes: + elf/dl-readonly-area.c: Adjust for missing _dl_find_object; use + _dl_find_dso_for_object instead. + +Conflicts: + + Makeconfig: rpath-dirs list difference. + + debug/Makefile: Usual test difference, missing no-fortify-source + + elf/Makefile: Usual test difference. + + elf/rtld.c: rtld_global_ro struct field difference. + + stdio-common/vfprintf-internal.c: Adjust for missing changes: + 1. e88b9f0e5cc50cab57a299dc7efe1a4eb385161d: + "stdio-common: Convert vfprintf and related functions to buffers" + 2. 5442ea7ffe79dfef3b89e21f46211cc42d347210: + "vfprintf: Move argument processing into vfprintf-process-arg.c" + + stdio-common/vfprintf-process-arg.c: Missing file. Changes folded + into stdio-common/vfprintf-internal.c. + +diff --git a/Makeconfig b/Makeconfig +index 89a2881b1ef605e4..ee79d7be396d1c08 100644 +--- a/Makeconfig ++++ b/Makeconfig +@@ -609,7 +609,7 @@ link-libc-printers-tests = $(link-libc-rpath) \ + $(link-libc-tests-after-rpath-link) + + # This is how to find at build-time things that will be installed there. +-rpath-dirs = math elf dlfcn nss nis rt resolv mathvec support ++rpath-dirs = math elf dlfcn nss nis rt resolv mathvec support debug + rpath-link = \ + $(common-objdir):$(subst $(empty) ,:,$(patsubst ../$(subdir),.,$(rpath-dirs:%=$(common-objpfx)%))) + else # build-static +diff --git a/debug/Makefile b/debug/Makefile +index cb93ed80da57f2cc..63395fc626610a53 100644 +--- a/debug/Makefile ++++ b/debug/Makefile +@@ -51,6 +51,7 @@ routines = backtrace backtracesyms backtracesymsfd noophooks \ + fdelt_chk poll_chk ppoll_chk \ + explicit_bzero_chk \ + stack_chk_fail fortify_fail \ ++ readonly-area-fallback \ + $(static-only-routines) + static-only-routines := stack_chk_fail_local + +@@ -111,6 +112,12 @@ CFLAGS-tst-longjmp_chk3.c += -fexceptions -fasynchronous-unwind-tables + CPPFLAGS-tst-longjmp_chk3.c += -D_FORTIFY_SOURCE=1 + CPPFLAGS-tst-realpath-chk.c += -D_FORTIFY_SOURCE=2 + CFLAGS-tst-sprintf-fortify-rdonly.c += -D_FORTIFY_SOURCE=2 ++CFLAGS-tst-sprintf-fortify-rdonly-mod.c += -D_FORTIFY_SOURCE=2 ++CFLAGS-tst-sprintf-fortify-rdonly-dlopen.c += -D_FORTIFY_SOURCE=2 ++ ++$(objpfx)tst-sprintf-fortify-rdonly: \ ++ $(objpfx)tst-sprintf-fortify-rdonly-mod.so \ ++ $(objpfx)tst-sprintf-fortify-rdonly-dlopen.so + + # _FORTIFY_SOURCE tests. + # Auto-generate tests for _FORTIFY_SOURCE for different levels, compilers and +@@ -208,6 +215,11 @@ tests = backtrace-tst \ + tst-sprintf-fortify-unchecked \ + $(tests-all-chk) \ + ++modules-names += \ ++ tst-sprintf-fortify-rdonly-dlopen \ ++ tst-sprintf-fortify-rdonly-mod \ ++ # modules-names ++ + ifeq ($(have-ssp),yes) + tests += tst-ssp-1 + endif +diff --git a/debug/readonly-area.c b/debug/readonly-area.c +index 06302212b15e5262..0648121846cdd5d1 100644 +--- a/debug/readonly-area.c ++++ b/debug/readonly-area.c +@@ -16,18 +16,19 @@ + . */ + + #include ++#include + +-/* Return 1 if the whole area PTR .. PTR+SIZE is not writable. +- Return -1 if it is writable. */ +- +-int ++enum readonly_error_type + __readonly_area (const void *ptr, size_t size) + { +- /* We cannot determine in general whether memory is writable or not. +- This must be handled in a system-dependent manner. to not +- unconditionally break code we need to return here a positive +- answer. This disables this security measure but that is the +- price people have to pay for using systems without a real +- implementation of this interface. */ +- return 1; ++ switch (GLRO(dl_readonly_area (ptr, size))) ++ { ++ case dl_readonly_area_rdonly: ++ return readonly_noerror; ++ case dl_readonly_area_writable: ++ return readonly_area_writable; ++ default: ++ break; ++ } ++ return __readonly_area_fallback (ptr, size); + } +diff --git a/debug/tst-sprintf-fortify-rdonly-dlopen.c b/debug/tst-sprintf-fortify-rdonly-dlopen.c +new file mode 100644 +index 0000000000000000..7da3f51f16421f79 +--- /dev/null ++++ b/debug/tst-sprintf-fortify-rdonly-dlopen.c +@@ -0,0 +1 @@ ++#include "tst-sprintf-fortify-rdonly-mod.c" +diff --git a/debug/tst-sprintf-fortify-rdonly-mod.c b/debug/tst-sprintf-fortify-rdonly-mod.c +new file mode 100644 +index 0000000000000000..3655f27b321eb381 +--- /dev/null ++++ b/debug/tst-sprintf-fortify-rdonly-mod.c +@@ -0,0 +1,56 @@ ++/* Testcase for BZ 30932. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++static const char *str2 = "F"; ++static char writeable_format[10] = "%s"; ++static char relro_format[10] __attribute__ ((section (".data.rel.ro"))) = ++ "%s%n%s%n"; ++ ++void ++init_writable (void) ++{ ++ strcpy (writeable_format + 2, "%n%s%n"); ++} ++ ++int ++sprintf_writable (int *n1, int *n2) ++{ ++ char buf[128]; ++ return sprintf (buf, writeable_format, str2, n1, str2, n2); ++} ++ ++int ++sprintf_relro (int *n1, int *n2) ++{ ++ char buf[128]; ++ return sprintf (buf, relro_format, str2, n1, str2, n2); ++} ++ ++int ++sprintf_writable_malloc (int *n1, int *n2) ++{ ++ char buf[128]; ++ char *buf2_malloc = strdup (writeable_format); ++ if (buf2_malloc == NULL) ++ abort (); ++ return sprintf (buf, buf2_malloc, str2, n1, str2, n2); ++} +diff --git a/debug/tst-sprintf-fortify-rdonly.c b/debug/tst-sprintf-fortify-rdonly.c +index 78dece9102d7dfd3..d47a0b1600a35e84 100644 +--- a/debug/tst-sprintf-fortify-rdonly.c ++++ b/debug/tst-sprintf-fortify-rdonly.c +@@ -27,16 +27,64 @@ + #include + #include + #include ++#include + +-jmp_buf chk_fail_buf; +-bool chk_fail_ok; ++static sigjmp_buf chk_fail_buf; ++static volatile int ret; ++static bool chk_fail_ok; + +-const char *str2 = "F"; +-char buf2[10] = "%s"; ++static void ++handler (int sig) ++{ ++ if (chk_fail_ok) ++ { ++ chk_fail_ok = false; ++ longjmp (chk_fail_buf, 1); ++ } ++ else ++ _exit (127); ++} ++ ++#define FORTIFY_FAIL \ ++ do { printf ("Failure on line %d\n", __LINE__); ret = 1; } while (0) ++#define CHK_FAIL_START \ ++ chk_fail_ok = true; \ ++ if (! sigsetjmp (chk_fail_buf, 1)) \ ++ { ++#define CHK_FAIL_END \ ++ chk_fail_ok = false; \ ++ FORTIFY_FAIL; \ ++ } ++ ++static const char *str2 = "F"; ++static char writeable_format[10] = "%s"; ++static char relro_format[10] __attribute__ ((section (".data.rel.ro"))) = ++ "%s%n%s%n"; ++ ++extern void init_writable (void); ++extern int sprintf_writable (int *, int *); ++extern int sprintf_relro (int *, int *); ++extern int sprintf_writable_malloc (int *, int *); ++ ++#define str(__x) # __x ++void (*init_writable_dlopen)(void); ++int (*sprintf_writable_dlopen)(int *, int *); ++int (*sprintf_rdonly_dlopen)(int *, int *); ++int (*sprintf_writable_malloc_dlopen)(int *, int *); + + static int + do_test (void) + { ++ set_fortify_handler (handler); ++ ++ { ++ void *h = xdlopen ("tst-sprintf-fortify-rdonly-dlopen.so", RTLD_NOW); ++ init_writable_dlopen = xdlsym (h, str(init_writable)); ++ sprintf_writable_dlopen = xdlsym (h, str(sprintf_writable)); ++ sprintf_rdonly_dlopen = xdlsym (h, str(sprintf_relro)); ++ sprintf_writable_malloc_dlopen = xdlsym (h, str(sprintf_writable_malloc)); ++ } ++ + struct rlimit rl; + int max_fd = 24; + +@@ -63,20 +111,94 @@ do_test (void) + } + TEST_VERIFY_EXIT (nfiles != 0); + +- /* When the format string is writable and contains %n, +- with -D_FORTIFY_SOURCE=2 it causes __chk_fail. However, if libc can not +- open procfs to check if the input format string in within a writable +- memory segment, the fortify version can not perform the check. */ +- char buf[128]; +- int n1; +- int n2; +- +- strcpy (buf2 + 2, "%n%s%n"); +- if (sprintf (buf, buf2, str2, &n1, str2, &n2) != 2 +- || n1 != 1 || n2 != 2) +- FAIL_EXIT1 ("sprintf failed: %s %d %d", buf, n1, n2); +- +- return 0; ++ strcpy (writeable_format + 2, "%n%s%n"); ++ init_writable (); ++ init_writable_dlopen (); ++ ++ /* writeable_format is at a writable part of .bss segment, so libc should be ++ able to check it without resorting to procfs. */ ++ { ++ char buf[128]; ++ int n1; ++ int n2; ++ CHK_FAIL_START ++ sprintf (buf, writeable_format, str2, &n1, str2, &n2); ++ CHK_FAIL_END ++ } ++ ++ /* Same as before, but from an library. */ ++ { ++ int n1; ++ int n2; ++ CHK_FAIL_START ++ sprintf_writable (&n1, &n2); ++ CHK_FAIL_END ++ } ++ ++ { ++ int n1; ++ int n2; ++ CHK_FAIL_START ++ sprintf_writable_dlopen (&n1, &n2); ++ CHK_FAIL_END ++ } ++ ++ /* relro_format is at a readonly part of .bss segment, so '%n' in format input ++ should not trigger a fortify failure. */ ++ { ++ char buf[128]; ++ int n1; ++ int n2; ++ if (sprintf (buf, relro_format, str2, &n1, str2, &n2) != 2 ++ || n1 != 1 || n2 != 2) ++ FAIL_EXIT1 ("sprintf failed: %s %d %d", buf, n1, n2); ++ } ++ ++ /* Same as before, but from an library. */ ++ { ++ int n1; ++ int n2; ++ if (sprintf_relro (&n1, &n2) != 2 || n1 != 1 || n2 != 2) ++ FAIL_EXIT1 ("sprintf failed: %d %d", n1, n2); ++ } ++ ++ { ++ int n1; ++ int n2; ++ if (sprintf_rdonly_dlopen (&n1, &n2) != 2 || n1 != 1 || n2 != 2) ++ FAIL_EXIT1 ("sprintf failed: %d %d", n1, n2); ++ } ++ ++ /* However if the format string is placed on a writable memory not covered ++ by ELF segments, libc needs to resort to procfs. */ ++ { ++ char buf[128]; ++ int n1; ++ int n2; ++ char *buf2_malloc = xstrdup (writeable_format); ++ CHK_FAIL_START ++ sprintf (buf, buf2_malloc, str2, &n1, str2, &n2); ++ CHK_FAIL_END ++ } ++ ++ /* Same as before, but from an library. */ ++ { ++ int n1; ++ int n2; ++ CHK_FAIL_START ++ sprintf_writable_malloc (&n1, &n2); ++ CHK_FAIL_END ++ } ++ ++ { ++ int n1; ++ int n2; ++ CHK_FAIL_START ++ sprintf_writable_malloc_dlopen (&n1, &n2); ++ CHK_FAIL_END ++ } ++ ++ return ret; + } + + #include +diff --git a/elf/Makefile b/elf/Makefile +index ec0d67b1549823ad..46a800a4559e0e46 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -68,6 +68,7 @@ dl-routines = \ + dl-origin \ + dl-printf \ + dl-profile \ ++ dl-readonly-area \ + dl-reloc \ + dl-rseq-symbols \ + dl-runtime \ +diff --git a/elf/dl-readonly-area.c b/elf/dl-readonly-area.c +new file mode 100644 +index 0000000000000000..570b99b11527db13 +--- /dev/null ++++ b/elf/dl-readonly-area.c +@@ -0,0 +1,91 @@ ++/* Check if range is within a read-only from a loaded ELF object. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++static bool ++check_relro (const struct link_map *l, uintptr_t start, uintptr_t end) ++{ ++ if (l->l_relro_addr != 0) ++ { ++ uintptr_t relro_start = ALIGN_DOWN (l->l_addr + l->l_relro_addr, ++ GLRO(dl_pagesize)); ++ uintptr_t relro_end = ALIGN_DOWN (l->l_addr + l->l_relro_addr ++ + l->l_relro_size, ++ GLRO(dl_pagesize)); ++ /* RELRO is caved out from a RW segment, so the next range is either ++ RW or nonexistent. */ ++ return relro_start <= start && end <= relro_end ++ ? dl_readonly_area_rdonly : dl_readonly_area_writable; ++ ++ } ++ return dl_readonly_area_writable; ++} ++ ++enum dl_readonly_area_error_type ++_dl_readonly_area (const void *ptr, size_t size) ++{ ++ /* Protect against concurrent loads and unloads. */ ++ __rtld_lock_lock_recursive (GL(dl_load_lock)); ++ ++ const struct link_map *l = _dl_find_dso_for_object ((ElfW(Addr)) ptr); ++ ++ __rtld_lock_unlock_recursive (GL(dl_load_lock)); ++ ++ if (l == NULL) ++ return dl_readonly_area_not_found; ++ ++ uintptr_t ptr_start = (uintptr_t) ptr; ++ uintptr_t ptr_end = ptr_start + size; ++ ++ for (const ElfW(Phdr) *ph = l->l_phdr; ph < &l->l_phdr[l->l_phnum]; ++ph) ++ if (ph->p_type == PT_LOAD) ++ { ++ /* For segments with alignment larger than the page size, ++ _dl_map_segment allocates additional space that is mark as ++ PROT_NONE (so we can ignore). */ ++ uintptr_t from = l->l_addr ++ + ALIGN_DOWN (ph->p_vaddr, GLRO(dl_pagesize)); ++ uintptr_t to = l->l_addr ++ + ALIGN_UP (ph->p_vaddr + ph->p_filesz, GLRO(dl_pagesize)); ++ ++ /* Found an entry that at least partially covers the area. */ ++ if (from < ptr_end && to > ptr_start) ++ { ++ if (ph->p_flags & PF_W) ++ return check_relro (l, ptr_start, ptr_end); ++ ++ if ((ph->p_flags & PF_R) == 0) ++ return dl_readonly_area_writable; ++ ++ if (from <= ptr_start && to >= ptr_end) ++ return dl_readonly_area_rdonly; ++ else if (from <= ptr_start) ++ size -= to - ptr_start; ++ else if (to >= ptr_end) ++ size -= ptr_end - from; ++ else ++ size -= to - from; ++ ++ if (size == 0) ++ break; ++ } ++ } ++ ++ return size == 0 ? dl_readonly_area_rdonly : dl_readonly_area_not_found; ++} +diff --git a/elf/rtld.c b/elf/rtld.c +index d02ecc834c9a4d43..d421750734e113e6 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -381,8 +381,9 @@ struct rtld_global_ro _rtld_global_ro attribute_relro = + ._dl_error_free = _dl_error_free, + ._dl_tls_get_addr_soft = _dl_tls_get_addr_soft, + #ifdef HAVE_DL_DISCOVER_OSVERSION +- ._dl_discover_osversion = _dl_discover_osversion ++ ._dl_discover_osversion = _dl_discover_osversion, + #endif ++ ._dl_readonly_area = _dl_readonly_area, + }; + /* If we would use strong_alias here the compiler would see a + non-hidden definition. This would undo the effect of the previous +diff --git a/include/stdlib.h b/include/stdlib.h +index 1c6f70b0820ced97..22c9fb65c3074765 100644 +--- a/include/stdlib.h ++++ b/include/stdlib.h +@@ -314,6 +314,21 @@ struct abort_msg_s + extern struct abort_msg_s *__abort_msg; + libc_hidden_proto (__abort_msg) + ++enum readonly_error_type ++{ ++ readonly_noerror, ++ readonly_area_writable, ++ readonly_procfs_inaccessible, ++ readonly_procfs_open_fail, ++}; ++ ++extern enum readonly_error_type __readonly_area (const void *ptr, ++ size_t size) ++ attribute_hidden; ++extern enum readonly_error_type __readonly_area_fallback (const void *ptr, ++ size_t size) ++ attribute_hidden; ++ + # if IS_IN (rtld) + extern __typeof (unsetenv) unsetenv attribute_hidden; + extern __typeof (__strtoul_internal) __strtoul_internal attribute_hidden; +diff --git a/stdio-common/vfprintf-internal.c b/stdio-common/vfprintf-internal.c +index 53d93b2f07ecb261..bb1b800a126fd47b 100644 +--- a/stdio-common/vfprintf-internal.c ++++ b/stdio-common/vfprintf-internal.c +@@ -1048,16 +1048,25 @@ static const uint8_t jump_table[] = + LABEL (form_number): \ + if ((mode_flags & PRINTF_FORTIFY) != 0) \ + { \ +- if (! readonly_format) \ +- { \ +- extern int __readonly_area (const void *, size_t) \ +- attribute_hidden; \ +- readonly_format \ +- = __readonly_area (format, ((STR_LEN (format) + 1) \ +- * sizeof (CHAR_T))); \ +- } \ +- if (readonly_format < 0) \ +- __libc_fatal ("*** %n in writable segment detected ***\n"); \ ++ if (readonly_format == readonly_noerror) \ ++ readonly_format = __readonly_area (format, ((STR_LEN (format) + 1)\ ++ * sizeof (CHAR_T))); \ ++ switch (readonly_format) \ ++ { \ ++ case readonly_area_writable: \ ++ __libc_fatal ("*** %n in writable segments detected ***\n"); \ ++ /* The format is not within ELF segments and opening /proc/self/maps\ ++ failed because there are too many files. */ \ ++ case readonly_procfs_open_fail: \ ++ __libc_fatal ("*** procfs could not open ***\n"); \ ++ /* The /proc/self/maps can not be opened either because it is not \ ++ available or the process does not have the right permission. \ ++ Since it should not be attacker-controlled we can avoid \ ++ failure. */ \ ++ case readonly_procfs_inaccessible: \ ++ case readonly_noerror: \ ++ break; \ ++ } \ + } \ + /* Answer the count of characters written. */ \ + if (fspec == NULL) \ +@@ -1299,7 +1308,8 @@ static int buffered_vfprintf (FILE *stream, const CHAR_T *fmt, va_list, + + /* Handle positional format specifiers. */ + static int printf_positional (FILE *s, +- const CHAR_T *format, int readonly_format, ++ const CHAR_T *format, ++ enum readonly_error_type readonly_format, + va_list ap, va_list *ap_savep, int done, + int nspecs_done, const UCHAR_T *lead_str_end, + CHAR_T *work_buffer, int save_errno, +@@ -1350,9 +1360,7 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap, unsigned int mode_flags) + /* For the %m format we may need the current `errno' value. */ + int save_errno = errno; + +- /* 1 if format is in read-only memory, -1 if it is in writable memory, +- 0 if unknown. */ +- int readonly_format = 0; ++ enum readonly_error_type readonly_format = readonly_noerror; + + /* Orient the stream. */ + #ifdef ORIENT +@@ -1693,7 +1701,8 @@ do_positional: + } + + static int +-printf_positional (FILE *s, const CHAR_T *format, int readonly_format, ++printf_positional (FILE *s, const CHAR_T *format, ++ enum readonly_error_type readonly_format, + va_list ap, va_list *ap_savep, int done, int nspecs_done, + const UCHAR_T *lead_str_end, + CHAR_T *work_buffer, int save_errno, +diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h +index 1c9ce3e57d59da9a..15c21491a291d1ae 100644 +--- a/sysdeps/generic/ldsodefs.h ++++ b/sysdeps/generic/ldsodefs.h +@@ -283,6 +283,12 @@ struct audit_ifaces + struct audit_ifaces *next; + }; + ++enum dl_readonly_area_error_type ++{ ++ dl_readonly_area_rdonly, ++ dl_readonly_area_writable, ++ dl_readonly_area_not_found, ++}; + + /* Test whether given NAME matches any of the names of the given object. */ + extern int _dl_name_match_p (const char *__name, const struct link_map *__map) +@@ -711,6 +717,10 @@ struct rtld_global_ro + int (*_dl_discover_osversion) (void); + #endif + ++ /* Implementation of _dl_readonly_area, used in fortify routines to check ++ if memory area is within a read-only ELF segment. */ ++ enum dl_readonly_area_error_type (*_dl_readonly_area) (const void *, size_t); ++ + /* Dynamic linker operations used after static dlopen. */ + const struct dlfcn_hook *_dl_dlfcn_hook; + +@@ -1327,6 +1337,10 @@ extern void _dl_show_scope (struct link_map *new, int from) + extern struct link_map *_dl_find_dso_for_object (const ElfW(Addr) addr); + rtld_hidden_proto (_dl_find_dso_for_object) + ++extern enum dl_readonly_area_error_type _dl_readonly_area (const void *ptr, ++ size_t size) ++ attribute_hidden; ++ + /* Initialization which is normally done by the dynamic linker. */ + extern void _dl_non_dynamic_init (void) + attribute_hidden; +diff --git a/sysdeps/mach/readonly-area.c b/sysdeps/mach/readonly-area-fallback.c +similarity index 90% +rename from sysdeps/mach/readonly-area.c +rename to sysdeps/mach/readonly-area-fallback.c +index 537af6de8ecc217e..14fedc0e1ac078d4 100644 +--- a/sysdeps/mach/readonly-area.c ++++ b/sysdeps/mach/readonly-area-fallback.c +@@ -20,11 +20,8 @@ + #include + #include + +-/* Return 1 if the whole area PTR .. PTR+SIZE is not writable. +- Return -1 if it is writable. */ +- +-int +-__readonly_area (const char *ptr, size_t size) ++enum readonly_error_type ++__readonly_area_fallback (const void *ptr, size_t size) + { + vm_address_t region_address = (uintptr_t) ptr; + vm_size_t region_length = size; +@@ -46,11 +43,11 @@ __readonly_area (const char *ptr, size_t size) + continue; + + if (protection & VM_PROT_WRITE) +- return -1; ++ return readonly_area_writable; + + if (region_address - (uintptr_t) ptr >= size) + break; + } + +- return 1; ++ return readonly_noerror; + } +diff --git a/sysdeps/unix/sysv/linux/readonly-area.c b/sysdeps/unix/sysv/linux/readonly-area-fallback.c +similarity index 84% +rename from sysdeps/unix/sysv/linux/readonly-area.c +rename to sysdeps/unix/sysv/linux/readonly-area-fallback.c +index 1f0d2e2749b159c9..b1d207106b3e16b8 100644 +--- a/sysdeps/unix/sysv/linux/readonly-area.c ++++ b/sysdeps/unix/sysv/linux/readonly-area-fallback.c +@@ -23,11 +23,8 @@ + #include + #include "libio/libioP.h" + +-/* Return 1 if the whole area PTR .. PTR+SIZE is not writable. +- Return -1 if it is writable. */ +- +-int +-__readonly_area (const char *ptr, size_t size) ++enum readonly_error_type ++__readonly_area_fallback (const void *ptr, size_t size) + { + const void *ptr_end = ptr + size; + +@@ -42,11 +39,11 @@ __readonly_area (const char *ptr, size_t size) + to the /proc filesystem if it is set[ug]id. There has + been no willingness to change this in the kernel so + far. */ +- || errno == EACCES +- /* Process has reached the maximum number of open files. */ +- || errno == EMFILE) +- return 1; +- return -1; ++ || errno == EACCES) ++ return readonly_procfs_inaccessible; ++ /* Process has reached the maximum number of open files or another ++ unusual error. */ ++ return readonly_procfs_open_fail; + } + + /* We need no locking. */ +@@ -98,7 +95,5 @@ __readonly_area (const char *ptr, size_t size) + fclose (fp); + free (line); + +- /* If the whole area between ptr and ptr_end is covered by read-only +- VMAs, return 1. Otherwise return -1. */ +- return size == 0 ? 1 : -1; ++ return size == 0 ? readonly_noerror : readonly_area_writable; + } diff --git a/SOURCES/glibc-RHEL-80538-4.patch b/SOURCES/glibc-RHEL-80538-4.patch new file mode 100644 index 0000000..91d107e --- /dev/null +++ b/SOURCES/glibc-RHEL-80538-4.patch @@ -0,0 +1,70 @@ +Downstream-only patch to restore internal GLIBC_PRIVATE ABI change due +to glibc-RHEL-80538-3.patch. Adding an entry to rtld_global_ro struct +changes offsets. This patch corrects that. + +diff --git a/debug/readonly-area.c b/debug/readonly-area.c +index 0648121846cdd5d1..86e3e9b9c3b03958 100644 +--- a/debug/readonly-area.c ++++ b/debug/readonly-area.c +@@ -21,7 +21,7 @@ + enum readonly_error_type + __readonly_area (const void *ptr, size_t size) + { +- switch (GLRO(dl_readonly_area (ptr, size))) ++ switch (_dl_readonly_area (ptr, size)) + { + case dl_readonly_area_rdonly: + return readonly_noerror; +diff --git a/elf/Versions b/elf/Versions +index 4b8b155d8e2bef70..17834c7d1c371e1d 100644 +--- a/elf/Versions ++++ b/elf/Versions +@@ -70,5 +70,8 @@ ld { + + # Set value of a tunable. + __tunable_get_val; ++ ++ # Check if an address range within a loaded ELF object is read-only. ++ _dl_readonly_area; + } + } +diff --git a/elf/rtld.c b/elf/rtld.c +index d421750734e113e6..d02ecc834c9a4d43 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -381,9 +381,8 @@ struct rtld_global_ro _rtld_global_ro attribute_relro = + ._dl_error_free = _dl_error_free, + ._dl_tls_get_addr_soft = _dl_tls_get_addr_soft, + #ifdef HAVE_DL_DISCOVER_OSVERSION +- ._dl_discover_osversion = _dl_discover_osversion, ++ ._dl_discover_osversion = _dl_discover_osversion + #endif +- ._dl_readonly_area = _dl_readonly_area, + }; + /* If we would use strong_alias here the compiler would see a + non-hidden definition. This would undo the effect of the previous +diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h +index 15c21491a291d1ae..537d1293c7b5543b 100644 +--- a/sysdeps/generic/ldsodefs.h ++++ b/sysdeps/generic/ldsodefs.h +@@ -717,10 +717,6 @@ struct rtld_global_ro + int (*_dl_discover_osversion) (void); + #endif + +- /* Implementation of _dl_readonly_area, used in fortify routines to check +- if memory area is within a read-only ELF segment. */ +- enum dl_readonly_area_error_type (*_dl_readonly_area) (const void *, size_t); +- + /* Dynamic linker operations used after static dlopen. */ + const struct dlfcn_hook *_dl_dlfcn_hook; + +@@ -1338,8 +1334,7 @@ extern struct link_map *_dl_find_dso_for_object (const ElfW(Addr) addr); + rtld_hidden_proto (_dl_find_dso_for_object) + + extern enum dl_readonly_area_error_type _dl_readonly_area (const void *ptr, +- size_t size) +- attribute_hidden; ++ size_t size); + + /* Initialization which is normally done by the dynamic linker. */ + extern void _dl_non_dynamic_init (void) diff --git a/SOURCES/glibc-RHEL-83007.patch b/SOURCES/glibc-RHEL-83007.patch new file mode 100644 index 0000000..8ae0eae --- /dev/null +++ b/SOURCES/glibc-RHEL-83007.patch @@ -0,0 +1,62 @@ +commit 10af00f7a135c85796a9c4c75228358b8898da5c +Author: Siddhesh Poyarekar +Date: Fri Mar 14 10:18:21 2025 -0400 + + tst-fopen-threaded: Only check EOF for failing read + + The fread race checker looks for EOF in every thread, which is incorrect + since threads calling fread successfully could lag behind and read the + EOF condition, resulting in multiple threads thinking that they + encountered an EOF. + + Only look for EOF condition if fread fails to read a char. Also drop + the clearerr() since it could mask the failure of another reader, thus + hiding a test failure. + + Finally, also check for error in the stream for completeness. + + Signed-off-by: Siddhesh Poyarekar + Reviewed-by: Florian Weimer + +diff --git a/sysdeps/pthread/tst-fopen-threaded.c b/sysdeps/pthread/tst-fopen-threaded.c +index 5c792c93e3711621..ade58ad19eb209d1 100644 +--- a/sysdeps/pthread/tst-fopen-threaded.c ++++ b/sysdeps/pthread/tst-fopen-threaded.c +@@ -64,19 +64,27 @@ threadReadRoutine (void *argv) + /* Wait for all threads to be ready to read. */ + xpthread_barrier_wait (&barrier); + +- ret = +- fread (&read_buffer, sizeof (char), sizeof (read_buffer), my_data->fd); +- if (feof (my_data->fd) != 0) ++ ret = fread (&read_buffer, 1, sizeof (read_buffer), my_data->fd); ++ /* If no data is returned (we read only 1 byte, so there's no short read ++ situation here), look for EOF flag and record it in MY_DATA. The EOF flag ++ is not cleared because that could result in a test failure being masked ++ when two threads fail to read and one of them clears error/EOF flags ++ before the second one has the chance to observe it. ++ ++ Successful readers could still see the EOF if they fall behind the failing ++ read when calling feof(), which could result in a false test failure. To ++ avoid this race, we only make the failing reader check for EOF or ++ error. */ ++ if (ret == 0) + { +- clearerr (my_data->fd); +- my_data->eof = true; ++ if (feof (my_data->fd) != 0) ++ my_data->eof = true; ++ else ++ FAIL_EXIT1 ("fread failed (ferror: %d): %m", ferror (my_data->fd)); + } + else +- { +- TEST_COMPARE (ret, 1); +- /* Save the read value. */ +- my_data->value = read_buffer; +- } ++ /* Save the read value. */ ++ my_data->value = read_buffer; + TEST_COMPARE (ferror (my_data->fd), 0); + return NULL; + } diff --git a/SOURCES/glibc-RHEL-83527-1.patch b/SOURCES/glibc-RHEL-83527-1.patch new file mode 100644 index 0000000..93983a5 --- /dev/null +++ b/SOURCES/glibc-RHEL-83527-1.patch @@ -0,0 +1,24 @@ +commit 265e13d33c470446043a3d2033984a1197151e09 +Author: H.J. Lu +Date: Sun Dec 22 05:55:39 2024 +0800 + + assert: Sort tests in Makefile + + Signed-off-by: H.J. Lu + +diff --git a/assert/Makefile b/assert/Makefile +index 85358fad51367b49..9fa016c472eb67b1 100644 +--- a/assert/Makefile ++++ b/assert/Makefile +@@ -35,10 +35,10 @@ routines := \ + + tests := \ + test-assert \ ++ test-assert-2 \ + test-assert-perr \ + tst-assert-c++ \ + tst-assert-g++ \ +- test-assert-2 \ + # tests + + ifeq ($(have-cxx-thread_local),yes) diff --git a/SOURCES/glibc-RHEL-83527-2.patch b/SOURCES/glibc-RHEL-83527-2.patch new file mode 100644 index 0000000..535b4ac --- /dev/null +++ b/SOURCES/glibc-RHEL-83527-2.patch @@ -0,0 +1,124 @@ +commit cdb9ba84191ce72e86346fb8b1d906e7cd930ea2 +Author: Siddhesh Poyarekar +Date: Fri Jan 31 12:16:30 2025 -0500 + + assert: Add test for CVE-2025-0395 + + Use the __progname symbol to override the program name to induce the + failure that CVE-2025-0395 describes. + + This is related to BZ #32582 + + Signed-off-by: Siddhesh Poyarekar + Reviewed-by: Adhemerval Zanella + +diff --git a/assert/Makefile b/assert/Makefile +index 9fa016c472eb67b1..80f5fad9f52378db 100644 +--- a/assert/Makefile ++++ b/assert/Makefile +@@ -39,6 +39,7 @@ tests := \ + test-assert-perr \ + tst-assert-c++ \ + tst-assert-g++ \ ++ tst-assert-sa-2025-0001 \ + # tests + + ifeq ($(have-cxx-thread_local),yes) +diff --git a/assert/tst-assert-sa-2025-0001.c b/assert/tst-assert-sa-2025-0001.c +new file mode 100644 +index 0000000000000000..102cb0078dafa9c1 +--- /dev/null ++++ b/assert/tst-assert-sa-2025-0001.c +@@ -0,0 +1,92 @@ ++/* Test for CVE-2025-0395. ++ Copyright The GNU Toolchain Authors. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* Test that a large enough __progname does not result in a buffer overflow ++ when printing an assertion failure. This was CVE-2025-0395. */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++extern const char *__progname; ++ ++int ++do_test (int argc, char **argv) ++{ ++ ++ support_need_proc ("Reads /proc/self/maps to add guards to writable maps."); ++ ignore_stderr (); ++ ++ /* XXX assumes that the assert is on a 2 digit line number. */ ++ const char *prompt = ": %s:99: do_test: Assertion `argc < 1' failed.\n"; ++ ++ int ret = fprintf (stderr, prompt, __FILE__); ++ if (ret < 0) ++ FAIL_EXIT1 ("fprintf failed: %m\n"); ++ ++ size_t pagesize = getpagesize (); ++ size_t namesize = pagesize - 1 - ret; ++ ++ /* Alter the progname so that the assert message fills the entire page. */ ++ char progname[namesize]; ++ memset (progname, 'A', namesize - 1); ++ progname[namesize - 1] = '\0'; ++ __progname = progname; ++ ++ FILE *f = xfopen ("/proc/self/maps", "r"); ++ char *line = NULL; ++ size_t len = 0; ++ uintptr_t prev_to = 0; ++ ++ /* Pad the beginning of every writable mapping with a PROT_NONE map. This ++ ensures that the mmap in the assert_fail path never ends up below a ++ writable map and will terminate immediately in case of a buffer ++ overflow. */ ++ while (xgetline (&line, &len, f)) ++ { ++ uintptr_t from, to; ++ char perm[4]; ++ ++ sscanf (line, "%" SCNxPTR "-%" SCNxPTR " %c%c%c%c ", ++ &from, &to, ++ &perm[0], &perm[1], &perm[2], &perm[3]); ++ ++ bool writable = (memchr (perm, 'w', 4) != NULL); ++ ++ if (prev_to != 0 && from - prev_to > pagesize && writable) ++ xmmap ((void *) from - pagesize, pagesize, PROT_NONE, ++ MAP_ANONYMOUS | MAP_PRIVATE, 0); ++ ++ prev_to = to; ++ } ++ ++ xfclose (f); ++ ++ assert (argc < 1); ++ return 0; ++} ++ ++#define EXPECTED_SIGNAL SIGABRT ++#define TEST_FUNCTION_ARGV do_test ++#include diff --git a/SOURCES/glibc-RHEL-84305.patch b/SOURCES/glibc-RHEL-84305.patch new file mode 100644 index 0000000..d1e3bcb --- /dev/null +++ b/SOURCES/glibc-RHEL-84305.patch @@ -0,0 +1,161 @@ +commit f3c6c190388bb445568cfbf190a0942fc3c28553 +Author: DJ Delorie +Date: Tue Oct 5 14:52:05 2021 -0400 + + Remove unreliable parts of rt/tst-cpuclock2 + + This is a follow-up to the tst-cpuclock1.c change here: + 9a29f1a2ae3d4bb253ee368e0d71db0ca9494120 + + This test, like tst-cpuclock1, may fail on heavily loaded VM + servers (and has occasionally failed on the 32bit trybot), + so tests that rely on "wall time" have been removed. + + Reviewed-by: Adhemerval Zanella + +diff --git a/rt/tst-cpuclock2.c b/rt/tst-cpuclock2.c +index 6981b00376aca030..90ff101841ce8b43 100644 +--- a/rt/tst-cpuclock2.c ++++ b/rt/tst-cpuclock2.c +@@ -64,22 +64,9 @@ chew_cpu (void *arg) + return NULL; + } + +-static unsigned long long int +-tsdiff (const struct timespec *before, const struct timespec *after) +-{ +- struct timespec diff = { .tv_sec = after->tv_sec - before->tv_sec, +- .tv_nsec = after->tv_nsec - before->tv_nsec }; +- while (diff.tv_nsec < 0) +- { +- --diff.tv_sec; +- diff.tv_nsec += 1000000000; +- } +- return diff.tv_sec * 1000000000ULL + diff.tv_nsec; +-} +- +-static unsigned long long int ++static void + test_nanosleep (clockid_t clock, const char *which, +- const struct timespec *before, int *bad) ++ int *bad) + { + const struct timespec sleeptime = { .tv_nsec = 100000000 }; + int e = clock_nanosleep (clock, 0, &sleeptime, NULL); +@@ -87,13 +74,13 @@ test_nanosleep (clockid_t clock, const char *which, + { + printf ("clock_nanosleep not supported for %s CPU clock: %s\n", + which, strerror (e)); +- return 0; ++ return; + } + if (e != 0) + { + printf ("clock_nanosleep on %s CPU clock: %s\n", which, strerror (e)); + *bad = 1; +- return 0; ++ return; + } + + struct timespec after; +@@ -102,16 +89,7 @@ test_nanosleep (clockid_t clock, const char *which, + printf ("clock_gettime on %s CPU clock %lx => %s\n", + which, (unsigned long int) clock, strerror (errno)); + *bad = 1; +- return 0; +- } +- +- unsigned long long int diff = tsdiff (before, &after); +- if (diff < sleeptime.tv_nsec || diff > sleeptime.tv_nsec * 2) +- { +- printf ("clock_nanosleep on %s slept %llu (outside reasonable range)\n", +- which, diff); +- *bad = 1; +- return diff; ++ return; + } + + struct timespec sleeptimeabs = sleeptime; +@@ -128,7 +106,7 @@ test_nanosleep (clockid_t clock, const char *which, + printf ("absolute clock_nanosleep on %s CPU clock: %s\n", + which, strerror (e)); + *bad = 1; +- return diff; ++ return; + } + + struct timespec afterabs; +@@ -137,28 +115,10 @@ test_nanosleep (clockid_t clock, const char *which, + printf ("clock_gettime on %s CPU clock %lx => %s\n", + which, (unsigned long int) clock, strerror (errno)); + *bad = 1; +- return diff; +- } +- +- unsigned long long int sleepdiff = tsdiff (&sleeptimeabs, &afterabs); +- if (sleepdiff > sleeptime.tv_nsec) +- { +- printf ("\ +-absolute clock_nanosleep on %s %llu past target (outside reasonable range)\n", +- which, sleepdiff); +- *bad = 1; ++ return; + } + +- unsigned long long int diffabs = tsdiff (&after, &afterabs); +- if (diffabs < sleeptime.tv_nsec || diffabs > sleeptime.tv_nsec * 2) +- { +- printf ("\ +-absolute clock_nanosleep on %s slept %llu (outside reasonable range)\n", +- which, diffabs); +- *bad = 1; +- } +- +- return diff + diffabs; ++ return; + } + + +@@ -292,37 +252,12 @@ do_test (void) + printf ("self thread after sleep => %ju.%.9ju\n", + (uintmax_t) me_after.tv_sec, (uintmax_t) me_after.tv_nsec); + +- unsigned long long int th_diff = tsdiff (&before, &after); +- unsigned long long int pdiff = tsdiff (&process_before, &process_after); +- unsigned long long int my_diff = tsdiff (&me_before, &me_after); +- +- if (th_diff < 100000000 || th_diff > 600000000) +- { +- printf ("live thread before - after %llu outside reasonable range\n", +- th_diff); +- result = 1; +- } +- +- if (my_diff > 100000000) +- { +- printf ("self thread before - after %llu outside reasonable range\n", +- my_diff); +- result = 1; +- } +- +- if (pdiff < th_diff) +- { +- printf ("process before - after %llu outside reasonable range (%llu)\n", +- pdiff, th_diff); +- result = 1; +- } +- +- process_after.tv_nsec += test_nanosleep (th_clock, "live thread", +- &after, &result); +- process_after.tv_nsec += test_nanosleep (process_clock, "process", +- &process_after, &result); ++ test_nanosleep (th_clock, "live thread", ++ &result); ++ test_nanosleep (process_clock, "process", ++ &result); + test_nanosleep (CLOCK_PROCESS_CPUTIME_ID, +- "PROCESS_CPUTIME_ID", &process_after, &result); ++ "PROCESS_CPUTIME_ID", &result); + + pthread_cancel (th); + diff --git a/SOURCES/glibc-RHEL-92095.patch b/SOURCES/glibc-RHEL-92095.patch new file mode 100644 index 0000000..cedea61 --- /dev/null +++ b/SOURCES/glibc-RHEL-92095.patch @@ -0,0 +1,103 @@ +commit 5324d258427fd11ca0f4f595c94016e568b26d6b +Author: Joe Simmons-Talbott +Date: Wed Jul 5 21:23:28 2023 +0000 + + fileops: Don't process ,ccs= as individual mode flags (BZ#18906) + + In processing the first 7 individual characters of the mode for fopen + if ,ccs= is used those characters will be processed as well. Stop + processing individual mode flags once a comma is encountered. This has + the effect of requiring ,ccs= to be the last mode flag in the mode + string. Add a testcase to check that the ,ccs= mode flag is not + processed as individual mode flags. + + Reviewed-by: DJ Delorie + +Conflicts: + libio/tst-fopenloc.c (fixup context) + +diff --git a/libio/fileops.c b/libio/fileops.c +index 11303013cb11dbd2..f6a17a99e3020323 100644 +--- a/libio/fileops.c ++++ b/libio/fileops.c +@@ -282,6 +282,7 @@ _IO_new_file_fopen (FILE *fp, const char *filename, const char *mode, + switch (*++mode) + { + case '\0': ++ case ',': + break; + case '+': + omode = O_RDWR; +diff --git a/libio/tst-fopenloc.c b/libio/tst-fopenloc.c +index 6e417e6a673a3662..30606f1e3f4f11bb 100644 +--- a/libio/tst-fopenloc.c ++++ b/libio/tst-fopenloc.c +@@ -18,6 +18,7 @@ + . */ + + #include ++#include + #include + #include + #include +@@ -25,6 +26,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -49,13 +51,40 @@ do_bz17916 (void) + if (fp != NULL) + { + printf ("unxpected success\n"); ++ free (ccs); ++ fclose (fp); + return 1; + } ++ + free (ccs); + + return 0; + } + ++static int ++do_bz18906 (void) ++{ ++ /* BZ #18906 -- check processing of ,ccs= as flags case. */ ++ ++ const char *ccs = "r,ccs=+ISO-8859-1"; ++ size_t retval; ++ ++ FILE *fp = fopen (inputfile, ccs); ++ int flags; ++ ++ TEST_VERIFY (fp != NULL); ++ ++ if (fp != NULL) ++ { ++ flags = fcntl (fileno (fp), F_GETFL); ++ retval = (flags & O_RDWR) | (flags & O_WRONLY); ++ TEST_COMPARE (retval, false); ++ fclose (fp); ++ } ++ ++ return EXIT_SUCCESS; ++} ++ + static int + do_test (void) + { +@@ -79,7 +108,10 @@ do_test (void) + + xfclose (fp); + +- return do_bz17916 (); ++ TEST_COMPARE (do_bz17916 (), 0); ++ TEST_COMPARE (do_bz18906 (), 0); ++ ++ return EXIT_SUCCESS; + } + + #include diff --git a/SOURCES/glibc-RHEL-92697-1.patch b/SOURCES/glibc-RHEL-92697-1.patch new file mode 100644 index 0000000..0cc023a --- /dev/null +++ b/SOURCES/glibc-RHEL-92697-1.patch @@ -0,0 +1,95 @@ +commit 5451fa962cd0a90a0e2ec1d8910a559ace02bba0 +Author: Adhemerval Zanella +Date: Mon Nov 6 17:25:49 2023 -0300 + + elf: Ignore LD_LIBRARY_PATH and debug env var for setuid for static + + It mimics the ld.so behavior. + + Checked on x86_64-linux-gnu. + Reviewed-by: Siddhesh Poyarekar + +Conflicts: + elf/dl-support.c + (tunables are still optional downstream, + LD_PROFILE_OUTPUT handling is still present + for static binaries) + +diff --git a/elf/dl-support.c b/elf/dl-support.c +index a2e45e7b14e3a6b9..1fea55c443505890 100644 +--- a/elf/dl-support.c ++++ b/elf/dl-support.c +@@ -272,8 +272,6 @@ _dl_non_dynamic_init (void) + _dl_main_map.l_phdr = GL(dl_phdr); + _dl_main_map.l_phnum = GL(dl_phnum); + +- _dl_verbose = *(getenv ("LD_WARN") ?: "") == '\0' ? 0 : 1; +- + /* Set up the data structures for the system-supplied DSO early, + so they can influence _dl_init_paths. */ + setup_vdso (NULL, NULL); +@@ -281,6 +279,30 @@ _dl_non_dynamic_init (void) + /* With vDSO setup we can initialize the function pointers. */ + setup_vdso_pointers (); + ++ if (__libc_enable_secure) ++ { ++ static const char unsecure_envvars[] = ++ UNSECURE_ENVVARS ++#ifdef EXTRA_UNSECURE_ENVVARS ++ EXTRA_UNSECURE_ENVVARS ++#endif ++ ; ++ const char *cp = unsecure_envvars; ++ ++ while (cp < unsecure_envvars + sizeof (unsecure_envvars)) ++ { ++ __unsetenv (cp); ++ cp = strchr (cp, '\0') + 1; ++ } ++ ++#if !HAVE_TUNABLES ++ if (__access ("/etc/suid-debug", F_OK) != 0) ++ __unsetenv ("MALLOC_CHECK_"); ++#endif ++} ++ ++ _dl_verbose = *(getenv ("LD_WARN") ?: "") == '\0' ? 0 : 1; ++ + /* Initialize the data structures for the search paths for shared + objects. */ + _dl_init_paths (getenv ("LD_LIBRARY_PATH"), "LD_LIBRARY_PATH", +@@ -298,32 +320,11 @@ _dl_non_dynamic_init (void) + _dl_dynamic_weak = *(getenv ("LD_DYNAMIC_WEAK") ?: "") == '\0'; + + _dl_profile_output = getenv ("LD_PROFILE_OUTPUT"); ++ + if (_dl_profile_output == NULL || _dl_profile_output[0] == '\0') + _dl_profile_output + = &"/var/tmp\0/var/profile"[__libc_enable_secure ? 9 : 0]; + +- if (__libc_enable_secure) +- { +- static const char unsecure_envvars[] = +- UNSECURE_ENVVARS +-#ifdef EXTRA_UNSECURE_ENVVARS +- EXTRA_UNSECURE_ENVVARS +-#endif +- ; +- const char *cp = unsecure_envvars; +- +- while (cp < unsecure_envvars + sizeof (unsecure_envvars)) +- { +- __unsetenv (cp); +- cp = (const char *) __rawmemchr (cp, '\0') + 1; +- } +- +-#if !HAVE_TUNABLES +- if (__access ("/etc/suid-debug", F_OK) != 0) +- __unsetenv ("MALLOC_CHECK_"); +-#endif +- } +- + #ifdef DL_PLATFORM_INIT + DL_PLATFORM_INIT; + #endif diff --git a/SOURCES/glibc-RHEL-92697-2.patch b/SOURCES/glibc-RHEL-92697-2.patch new file mode 100644 index 0000000..0d837a4 --- /dev/null +++ b/SOURCES/glibc-RHEL-92697-2.patch @@ -0,0 +1,56 @@ +commit f0c09fe61678df6f7f18fe1ebff074e62fa5ca7a +Author: Florian Weimer +Date: Tue May 20 19:36:02 2025 +0200 + + support: Use const char * argument in support_capture_subprogram_self_sgid + + The function does not modify the passed-in string, so make this clear + via the prototype. + + Reviewed-by: Carlos O'Donell + +diff --git a/support/capture_subprocess.h b/support/capture_subprocess.h +index 4be430f099bcc8cd..4229300d4b0aab29 100644 +--- a/support/capture_subprocess.h ++++ b/support/capture_subprocess.h +@@ -44,8 +44,7 @@ struct support_capture_subprocess support_capture_subprogram + /* Copy the running program into a setgid binary and run it with CHILD_ID + argument. If execution is successful, return the exit status of the child + program, otherwise return a non-zero failure exit code. */ +-int support_capture_subprogram_self_sgid +- (char *child_id); ++int support_capture_subprogram_self_sgid (const char *child_id); + + /* Deallocate the subprocess data captured by + support_capture_subprocess. */ +diff --git a/support/support_capture_subprocess.c b/support/support_capture_subprocess.c +index 0bacf6dbc23b0732..6e6ac8bbb7f64859 100644 +--- a/support/support_capture_subprocess.c ++++ b/support/support_capture_subprocess.c +@@ -109,7 +109,7 @@ support_capture_subprogram (const char *file, char *const argv[]) + safely make it SGID with the TARGET group ID. Then runs the + executable. */ + static int +-copy_and_spawn_sgid (char *child_id, gid_t gid) ++copy_and_spawn_sgid (const char *child_id, gid_t gid) + { + char *dirname = xasprintf ("%s/tst-tunables-setuid.%jd", + test_dir, (intmax_t) getpid ()); +@@ -172,7 +172,7 @@ copy_and_spawn_sgid (char *child_id, gid_t gid) + ret = 0; + infd = outfd = -1; + +- char * const args[] = {execname, child_id, NULL}; ++ char * const args[] = {execname, (char *) child_id, NULL}; + + status = support_subprogram_wait (args[0], args); + +@@ -199,7 +199,7 @@ err: + } + + int +-support_capture_subprogram_self_sgid (char *child_id) ++support_capture_subprogram_self_sgid (const char *child_id) + { + gid_t target = 0; + const int count = 64; diff --git a/SOURCES/glibc-RHEL-92697-3.patch b/SOURCES/glibc-RHEL-92697-3.patch new file mode 100644 index 0000000..8946433 --- /dev/null +++ b/SOURCES/glibc-RHEL-92697-3.patch @@ -0,0 +1,41 @@ +commit d0b8aa6de4529231fadfe604ac2c434e559c2d9e +Author: Florian Weimer +Date: Mon Dec 23 13:57:55 2024 +0100 + + support: Add support_record_failure_barrier + + This can be used to stop execution after a TEST_COMPARE_BLOB + failure, for example. + +diff --git a/support/check.h b/support/check.h +index 8e045dd9c0c36b4c..6b8b70a10961db6c 100644 +--- a/support/check.h ++++ b/support/check.h +@@ -207,6 +207,9 @@ void support_record_failure_reset (void); + failures or not. */ + int support_record_failure_is_failed (void); + ++/* Terminate the process if any failures have been encountered so far. */ ++void support_record_failure_barrier (void); ++ + __END_DECLS + + #endif /* SUPPORT_CHECK_H */ +diff --git a/support/support_record_failure.c b/support/support_record_failure.c +index 903da401555fc83a..c0bd489637990b70 100644 +--- a/support/support_record_failure.c ++++ b/support/support_record_failure.c +@@ -112,3 +112,13 @@ support_record_failure_is_failed (void) + synchronization for reliable test error reporting anyway. */ + return __atomic_load_n (&state->failed, __ATOMIC_RELAXED); + } ++ ++void ++support_record_failure_barrier (void) ++{ ++ if (__atomic_load_n (&state->failed, __ATOMIC_RELAXED)) ++ { ++ puts ("error: exiting due to previous errors"); ++ exit (1); ++ } ++} diff --git a/SOURCES/glibc-RHEL-92697-4.patch b/SOURCES/glibc-RHEL-92697-4.patch new file mode 100644 index 0000000..fd4dc60 --- /dev/null +++ b/SOURCES/glibc-RHEL-92697-4.patch @@ -0,0 +1,158 @@ +commit d8f7a79335b0d861c12c42aec94c04cd5bb181e2 +Author: Florian Weimer +Date: Tue May 20 19:36:02 2025 +0200 + + elf: Test case for bug 32976 (CVE-2025-4802) + + Check that LD_LIBRARY_PATH is ignored for AT_SECURE statically + linked binaries, using support_capture_subprogram_self_sgid. + + Reviewed-by: Carlos O'Donell + +Conflicts: + elf/Makefile + (test list differences) + +diff --git a/elf/Makefile b/elf/Makefile +index f5b89c7deaf167f2..41adea8d1c6d13ca 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -260,6 +260,7 @@ tests-static-normal := \ + tst-array1-static \ + tst-array5-static \ + tst-dl-iter-static \ ++ tst-dlopen-sgid \ + tst-dst-static \ + tst-env-setuid \ + tst-env-setuid-tunables \ +@@ -776,6 +777,7 @@ modules-names = \ + tst-dlmopen-gethostbyname-mod \ + tst-dlmopen-twice-mod1 \ + tst-dlmopen-twice-mod2 \ ++ tst-dlopen-sgid-mod \ + tst-dlopen-tlsreinitmod1 \ + tst-dlopen-tlsreinitmod2 \ + tst-dlopen-tlsreinitmod3 \ +@@ -2892,3 +2894,5 @@ tst-tls22-mod1.so-no-z-defs = yes + tst-tls22-mod1-gnu2.so-no-z-defs = yes + tst-tls22-mod2.so-no-z-defs = yes + tst-tls22-mod2-gnu2.so-no-z-defs = yes ++ ++$(objpfx)tst-dlopen-sgid.out: $(objpfx)tst-dlopen-sgid-mod.so +diff --git a/elf/tst-dlopen-sgid-mod.c b/elf/tst-dlopen-sgid-mod.c +new file mode 100644 +index 0000000000000000..5eb79eef485da4c9 +--- /dev/null ++++ b/elf/tst-dlopen-sgid-mod.c +@@ -0,0 +1 @@ ++/* Opening this object should not succeed. */ +diff --git a/elf/tst-dlopen-sgid.c b/elf/tst-dlopen-sgid.c +new file mode 100644 +index 0000000000000000..47829a405e90b6b9 +--- /dev/null ++++ b/elf/tst-dlopen-sgid.c +@@ -0,0 +1,104 @@ ++/* Test case for ignored LD_LIBRARY_PATH in static startug (bug 32976). ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* This is the name of our test object. Use a custom module for ++ testing, so that this object does not get picked up from the system ++ path. */ ++static const char dso_name[] = "tst-dlopen-sgid-mod.so"; ++ ++/* Used to mark the recursive invocation. */ ++static const char magic_argument[] = "run-actual-test"; ++ ++static int ++do_test (void) ++{ ++/* Pathname of the directory that receives the shared objects this ++ test attempts to load. */ ++ char *libdir = support_create_temp_directory ("tst-dlopen-sgid-"); ++ ++ /* This is supposed to be ignored and stripped. */ ++ TEST_COMPARE (setenv ("LD_LIBRARY_PATH", libdir, 1), 0); ++ ++ /* Copy of libc.so.6. */ ++ { ++ char *from = xasprintf ("%s/%s", support_objdir_root, LIBC_SO); ++ char *to = xasprintf ("%s/%s", libdir, LIBC_SO); ++ add_temp_file (to); ++ support_copy_file (from, to); ++ free (to); ++ free (from); ++ } ++ ++ /* Copy of the test object. */ ++ { ++ char *from = xasprintf ("%s/elf/%s", support_objdir_root, dso_name); ++ char *to = xasprintf ("%s/%s", libdir, dso_name); ++ add_temp_file (to); ++ support_copy_file (from, to); ++ free (to); ++ free (from); ++ } ++ ++ TEST_COMPARE (support_capture_subprogram_self_sgid (magic_argument), 0); ++ ++ free (libdir); ++ ++ return 0; ++} ++ ++static void ++alternative_main (int argc, char **argv) ++{ ++ if (argc == 2 && strcmp (argv[1], magic_argument) == 0) ++ { ++ if (getgid () == getegid ()) ++ /* This can happen if the file system is mounted nosuid. */ ++ FAIL_UNSUPPORTED ("SGID failed: GID and EGID match (%jd)\n", ++ (intmax_t) getgid ()); ++ ++ /* Should be removed due to SGID. */ ++ TEST_COMPARE_STRING (getenv ("LD_LIBRARY_PATH"), NULL); ++ ++ TEST_VERIFY (dlopen (dso_name, RTLD_NOW) == NULL); ++ { ++ const char *message = dlerror (); ++ TEST_COMPARE_STRING (message, ++ "tst-dlopen-sgid-mod.so:" ++ " cannot open shared object file:" ++ " No such file or directory"); ++ } ++ ++ support_record_failure_barrier (); ++ exit (EXIT_SUCCESS); ++ } ++} ++ ++#define PREPARE alternative_main ++#include diff --git a/SOURCES/glibc-RHEL-92697-5.patch b/SOURCES/glibc-RHEL-92697-5.patch new file mode 100644 index 0000000..78a1a20 --- /dev/null +++ b/SOURCES/glibc-RHEL-92697-5.patch @@ -0,0 +1,42 @@ +commit 35fc356fa3b4f485bd3ba3114c9f774e5df7d3c2 +Author: Florian Weimer +Date: Wed May 21 08:43:32 2025 +0200 + + elf: Fix subprocess status handling for tst-dlopen-sgid (bug 32987) + + This should really move into support_capture_subprogram_self_sgid. + + Reviewed-by: Sam James + +diff --git a/elf/tst-dlopen-sgid.c b/elf/tst-dlopen-sgid.c +index 47829a405e90b6b9..5688b79f2e870b1d 100644 +--- a/elf/tst-dlopen-sgid.c ++++ b/elf/tst-dlopen-sgid.c +@@ -26,6 +26,8 @@ + #include + #include + #include ++#include ++#include + #include + + /* This is the name of our test object. Use a custom module for +@@ -66,10 +68,16 @@ do_test (void) + free (from); + } + +- TEST_COMPARE (support_capture_subprogram_self_sgid (magic_argument), 0); +- + free (libdir); + ++ int status = support_capture_subprogram_self_sgid (magic_argument); ++ ++ if (WEXITSTATUS (status) == EXIT_UNSUPPORTED) ++ return EXIT_UNSUPPORTED; ++ ++ if (!WIFEXITED (status)) ++ FAIL_EXIT1 ("Unexpected exit status %d from child process\n", status); ++ + return 0; + } + diff --git a/SOURCES/glibc-RHEL-92697-6.patch b/SOURCES/glibc-RHEL-92697-6.patch new file mode 100644 index 0000000..e67ad64 --- /dev/null +++ b/SOURCES/glibc-RHEL-92697-6.patch @@ -0,0 +1,105 @@ +commit 2f769cec448d84a62b7dd0d4ff56978fe22c0cd6 +Author: Florian Weimer +Date: Wed May 21 16:47:34 2025 +0200 + + support: Pick group in support_capture_subprogram_self_sgid if UID == 0 + + When running as root, it is likely that we can run under any group. + Pick a harmless group from /etc/group in this case. + + Reviewed-by: Carlos O'Donell + +diff --git a/support/support_capture_subprocess.c b/support/support_capture_subprocess.c +index 6e6ac8bbb7f64859..755ee13553b3d253 100644 +--- a/support/support_capture_subprocess.c ++++ b/support/support_capture_subprocess.c +@@ -21,7 +21,11 @@ + + #include + #include ++#include ++#include ++#include + #include ++#include + #include + #include + #include +@@ -198,10 +202,48 @@ err: + return status; + } + ++/* Returns true if a group with NAME has been found, and writes its ++ GID to *TARGET. */ ++static bool ++find_sgid_group (gid_t *target, const char *name) ++{ ++ /* Do not use getgrname_r because it does not work in statically ++ linked binaries if the system libc is different. */ ++ FILE *fp = fopen ("/etc/group", "rce"); ++ if (fp == NULL) ++ return false; ++ __fsetlocking (fp, FSETLOCKING_BYCALLER); ++ ++ bool ok = false; ++ struct scratch_buffer buf; ++ scratch_buffer_init (&buf); ++ while (true) ++ { ++ struct group grp; ++ struct group *result = NULL; ++ int status = fgetgrent_r (fp, &grp, buf.data, buf.length, &result); ++ if (status == 0 && result != NULL) ++ { ++ if (strcmp (result->gr_name, name) == 0) ++ { ++ *target = result->gr_gid; ++ ok = true; ++ break; ++ } ++ } ++ else if (errno != ERANGE) ++ break; ++ else if (!scratch_buffer_grow (&buf)) ++ break; ++ } ++ scratch_buffer_free (&buf); ++ fclose (fp); ++ return ok; ++} ++ + int + support_capture_subprogram_self_sgid (const char *child_id) + { +- gid_t target = 0; + const int count = 64; + gid_t groups[count]; + +@@ -213,6 +255,7 @@ support_capture_subprogram_self_sgid (const char *child_id) + (intmax_t) getuid ()); + + gid_t current = getgid (); ++ gid_t target = current; + for (int i = 0; i < ret; ++i) + { + if (groups[i] != current) +@@ -222,9 +265,16 @@ support_capture_subprogram_self_sgid (const char *child_id) + } + } + +- if (target == 0) +- FAIL_UNSUPPORTED("Could not find a suitable GID for user %jd\n", +- (intmax_t) getuid ()); ++ if (target == current) ++ { ++ /* If running as root, try to find a harmless group for SGID. */ ++ if (getuid () != 0 ++ || (!find_sgid_group (&target, "nogroup") ++ && !find_sgid_group (&target, "bin") ++ && !find_sgid_group (&target, "daemon"))) ++ FAIL_UNSUPPORTED("Could not find a suitable GID for user %jd\n", ++ (intmax_t) getuid ()); ++ } + + return copy_and_spawn_sgid (child_id, target); + } diff --git a/SOURCES/glibc-RHEL-92697-8.patch b/SOURCES/glibc-RHEL-92697-8.patch new file mode 100644 index 0000000..208cb0f --- /dev/null +++ b/SOURCES/glibc-RHEL-92697-8.patch @@ -0,0 +1,52 @@ +commit 6286cca2cb8389dcffec39238a8bf15ffea96396 +Author: Siddhesh Poyarekar +Date: Thu Jun 1 07:23:15 2023 -0400 + + support: Don't fail on fchown when spawning sgid processes + + In some cases (e.g. when podman creates user containers), the only other + group assigned to the executing user is nobody and fchown fails with it + because the group is not mapped. Do not fail the test in this case, + instead exit as unsupported. + + Reported-by: Frédéric Bérat + Tested-by: Frédéric Bérat + Signed-off-by: Siddhesh Poyarekar + Reviewed-by: Carlos O'Donell + +diff --git a/support/support_capture_subprocess.c b/support/support_capture_subprocess.c +index 755ee13553b3d253..544636e52eeaee73 100644 +--- a/support/support_capture_subprocess.c ++++ b/support/support_capture_subprocess.c +@@ -157,9 +157,18 @@ copy_and_spawn_sgid (const char *child_id, gid_t gid) + p += wrcount; + } + } +- TEST_VERIFY (fchown (outfd, getuid (), gid) == 0); ++ ++ bool chowned = false; ++ TEST_VERIFY ((chowned = fchown (outfd, getuid (), gid) == 0) ++ || errno == EPERM); + if (support_record_failure_is_failed ()) + goto err; ++ else if (!chowned) ++ { ++ ret = 77; ++ goto err; ++ } ++ + TEST_VERIFY (fchmod (outfd, 02750) == 0); + if (support_record_failure_is_failed ()) + goto err; +@@ -196,8 +205,10 @@ err: + free (dirname); + } + ++ if (ret == 77) ++ FAIL_UNSUPPORTED ("Failed to make sgid executable for test\n"); + if (ret != 0) +- FAIL_EXIT1("Failed to make sgid executable for test\n"); ++ FAIL_EXIT1 ("Failed to make sgid executable for test\n"); + + return status; + } diff --git a/SOURCES/glibc-RHEL-92697-9.patch b/SOURCES/glibc-RHEL-92697-9.patch new file mode 100644 index 0000000..0a34dbf --- /dev/null +++ b/SOURCES/glibc-RHEL-92697-9.patch @@ -0,0 +1,314 @@ +commit 3a3fb2ed83f79100c116c824454095ecfb335ad7 +Author: Florian Weimer +Date: Thu May 22 14:36:37 2025 +0200 + + Fix error reporting (false negatives) in SGID tests + + And simplify the interface of support_capture_subprogram_self_sgid. + + Use the existing framework for temporary directories (now with + mode 0700) and directory/file deletion. Handle all execution + errors within support_capture_subprogram_self_sgid. In particular, + this includes test failures because the invoked program did not + exit with exit status zero. Existing tests that expect exit + status 42 are adjusted to use zero instead. + + In addition, fix callers not to call exit (0) with test failures + pending (which may mask them, especially when running with --direct). + + Fixes commit 35fc356fa3b4f485bd3ba3114c9f774e5df7d3c2 + ("elf: Fix subprocess status handling for tst-dlopen-sgid (bug 32987)"). + + Reviewed-by: Carlos O'Donell + +Conflicts: + elf/tst-env-setuid.c + (missing commit 11f7e3dd8fed66e0b8740af440cd3151e55a466f + ("elf: Add all malloc tunable to unsecvars") downstream) + +diff --git a/elf/tst-dlopen-sgid.c b/elf/tst-dlopen-sgid.c +index 5688b79f2e870b1d..8aec52e19fc56aba 100644 +--- a/elf/tst-dlopen-sgid.c ++++ b/elf/tst-dlopen-sgid.c +@@ -70,13 +70,7 @@ do_test (void) + + free (libdir); + +- int status = support_capture_subprogram_self_sgid (magic_argument); +- +- if (WEXITSTATUS (status) == EXIT_UNSUPPORTED) +- return EXIT_UNSUPPORTED; +- +- if (!WIFEXITED (status)) +- FAIL_EXIT1 ("Unexpected exit status %d from child process\n", status); ++ support_capture_subprogram_self_sgid (magic_argument); + + return 0; + } +diff --git a/elf/tst-env-setuid-tunables.c b/elf/tst-env-setuid-tunables.c +index cd4e84364074c613..0ee5416026242c65 100644 +--- a/elf/tst-env-setuid-tunables.c ++++ b/elf/tst-env-setuid-tunables.c +@@ -127,10 +127,7 @@ do_test (int argc, char **argv) + + if (ret != 0) + exit (1); +- +- /* Special return code to make sure that the child executed all the way +- through. */ +- exit (42); ++ return 0; + } + else + { +@@ -149,18 +146,7 @@ do_test (int argc, char **argv) + continue; + } + +- int status = support_capture_subprogram_self_sgid (buf); +- +- /* Bail out early if unsupported. */ +- if (WEXITSTATUS (status) == EXIT_UNSUPPORTED) +- return EXIT_UNSUPPORTED; +- +- if (WEXITSTATUS (status) != 42) +- { +- printf (" [%d] child failed with status %d\n", i, +- WEXITSTATUS (status)); +- support_record_failure (); +- } ++ support_capture_subprogram_self_sgid (buf); + } + return 0; + } +diff --git a/elf/tst-env-setuid.c b/elf/tst-env-setuid.c +index 49b5e319e27c2404..0b6e60836ade7958 100644 +--- a/elf/tst-env-setuid.c ++++ b/elf/tst-env-setuid.c +@@ -104,20 +104,14 @@ do_test (int argc, char **argv) + if (ret != 0) + exit (1); + +- exit (EXIT_SUCCESS); ++ return 0; + } + else + { + if (test_parent () != 0) + exit (1); + +- int status = support_capture_subprogram_self_sgid (SETGID_CHILD); +- +- if (WEXITSTATUS (status) == EXIT_UNSUPPORTED) +- return EXIT_UNSUPPORTED; +- +- if (!WIFEXITED (status)) +- FAIL_EXIT1 ("Unexpected exit status %d from child process\n", status); ++ support_capture_subprogram_self_sgid (SETGID_CHILD); + + return 0; + } +diff --git a/stdlib/tst-secure-getenv.c b/stdlib/tst-secure-getenv.c +index 5567c9ae215fd924..cd48c717623628e6 100644 +--- a/stdlib/tst-secure-getenv.c ++++ b/stdlib/tst-secure-getenv.c +@@ -57,13 +57,7 @@ do_test (void) + exit (1); + } + +- int status = support_capture_subprogram_self_sgid (MAGIC_ARGUMENT); +- +- if (WEXITSTATUS (status) == EXIT_UNSUPPORTED) +- return EXIT_UNSUPPORTED; +- +- if (!WIFEXITED (status)) +- FAIL_EXIT1 ("Unexpected exit status %d from child process\n", status); ++ support_capture_subprogram_self_sgid (MAGIC_ARGUMENT); + + return 0; + } +@@ -82,6 +76,7 @@ alternative_main (int argc, char **argv) + if (secure_getenv ("PATH") != NULL) + FAIL_EXIT (4, "PATH variable not filtered out\n"); + ++ support_record_failure_barrier (); + exit (EXIT_SUCCESS); + } + } +diff --git a/support/capture_subprocess.h b/support/capture_subprocess.h +index 4229300d4b0aab29..afec0b14d23be7b1 100644 +--- a/support/capture_subprocess.h ++++ b/support/capture_subprocess.h +@@ -41,10 +41,12 @@ struct support_capture_subprocess support_capture_subprocess + struct support_capture_subprocess support_capture_subprogram + (const char *file, char *const argv[]); + +-/* Copy the running program into a setgid binary and run it with CHILD_ID +- argument. If execution is successful, return the exit status of the child +- program, otherwise return a non-zero failure exit code. */ +-int support_capture_subprogram_self_sgid (const char *child_id); ++/* Copy the running program into a setgid binary and run it with ++ CHILD_ID argument. If the program exits with a non-zero status, ++ exit with that exit status (or status 1 if the program did not exit ++ normally). If the test cannot be performed, exit with ++ EXIT_UNSUPPORTED. */ ++void support_capture_subprogram_self_sgid (const char *child_id); + + /* Deallocate the subprocess data captured by + support_capture_subprocess. */ +diff --git a/support/support_capture_subprocess.c b/support/support_capture_subprocess.c +index 544636e52eeaee73..73e3a16ddc63da94 100644 +--- a/support/support_capture_subprocess.c ++++ b/support/support_capture_subprocess.c +@@ -31,6 +31,7 @@ + #include + #include + #include ++#include + #include + + static void +@@ -112,105 +113,44 @@ support_capture_subprogram (const char *file, char *const argv[]) + /* Copies the executable into a restricted directory, so that we can + safely make it SGID with the TARGET group ID. Then runs the + executable. */ +-static int ++static void + copy_and_spawn_sgid (const char *child_id, gid_t gid) + { +- char *dirname = xasprintf ("%s/tst-tunables-setuid.%jd", +- test_dir, (intmax_t) getpid ()); ++ char *dirname = support_create_temp_directory ("tst-glibc-sgid-"); + char *execname = xasprintf ("%s/bin", dirname); +- int infd = -1; +- int outfd = -1; +- int ret = 1, status = 1; +- +- TEST_VERIFY (mkdir (dirname, 0700) == 0); +- if (support_record_failure_is_failed ()) +- goto err; ++ add_temp_file (execname); + +- infd = open ("/proc/self/exe", O_RDONLY); +- if (infd < 0) ++ if (access ("/proc/self/exe", R_OK) != 0) + FAIL_UNSUPPORTED ("unsupported: Cannot read binary from procfs\n"); + +- outfd = open (execname, O_WRONLY | O_CREAT | O_EXCL, 0700); +- TEST_VERIFY (outfd >= 0); +- if (support_record_failure_is_failed ()) +- goto err; +- +- char buf[4096]; +- for (;;) +- { +- ssize_t rdcount = read (infd, buf, sizeof (buf)); +- TEST_VERIFY (rdcount >= 0); +- if (support_record_failure_is_failed ()) +- goto err; +- if (rdcount == 0) +- break; +- char *p = buf; +- char *end = buf + rdcount; +- while (p != end) +- { +- ssize_t wrcount = write (outfd, buf, end - p); +- if (wrcount == 0) +- errno = ENOSPC; +- TEST_VERIFY (wrcount > 0); +- if (support_record_failure_is_failed ()) +- goto err; +- p += wrcount; +- } +- } ++ support_copy_file ("/proc/self/exe", execname); + +- bool chowned = false; +- TEST_VERIFY ((chowned = fchown (outfd, getuid (), gid) == 0) +- || errno == EPERM); +- if (support_record_failure_is_failed ()) +- goto err; +- else if (!chowned) +- { +- ret = 77; +- goto err; +- } ++ if (chown (execname, getuid (), gid) != 0) ++ FAIL_UNSUPPORTED ("cannot change group of \"%s\" to %jd: %m", ++ execname, (intmax_t) gid); + +- TEST_VERIFY (fchmod (outfd, 02750) == 0); +- if (support_record_failure_is_failed ()) +- goto err; +- TEST_VERIFY (close (outfd) == 0); +- if (support_record_failure_is_failed ()) +- goto err; +- TEST_VERIFY (close (infd) == 0); +- if (support_record_failure_is_failed ()) +- goto err; ++ if (chmod (execname, 02750) != 0) ++ FAIL_UNSUPPORTED ("cannot make \"%s\" SGID: %m ", execname); + + /* We have the binary, now spawn the subprocess. Avoid using + support_subprogram because we only want the program exit status, not the + contents. */ +- ret = 0; +- infd = outfd = -1; + + char * const args[] = {execname, (char *) child_id, NULL}; ++ int status = support_subprogram_wait (args[0], args); + +- status = support_subprogram_wait (args[0], args); ++ free (execname); ++ free (dirname); + +-err: +- if (outfd >= 0) +- close (outfd); +- if (infd >= 0) +- close (infd); +- if (execname != NULL) +- { +- unlink (execname); +- free (execname); +- } +- if (dirname != NULL) ++ if (WIFEXITED (status)) + { +- rmdir (dirname); +- free (dirname); ++ if (WEXITSTATUS (status) == 0) ++ return; ++ else ++ exit (WEXITSTATUS (status)); + } +- +- if (ret == 77) +- FAIL_UNSUPPORTED ("Failed to make sgid executable for test\n"); +- if (ret != 0) +- FAIL_EXIT1 ("Failed to make sgid executable for test\n"); +- +- return status; ++ else ++ FAIL_EXIT1 ("subprogram failed with status %d", status); + } + + /* Returns true if a group with NAME has been found, and writes its +@@ -252,7 +192,7 @@ find_sgid_group (gid_t *target, const char *name) + return ok; + } + +-int ++void + support_capture_subprogram_self_sgid (const char *child_id) + { + const int count = 64; +@@ -287,7 +227,7 @@ support_capture_subprogram_self_sgid (const char *child_id) + (intmax_t) getuid ()); + } + +- return copy_and_spawn_sgid (child_id, target); ++ copy_and_spawn_sgid (child_id, target); + } + + void diff --git a/SOURCES/glibc-RHEL-93320-1.patch b/SOURCES/glibc-RHEL-93320-1.patch new file mode 100644 index 0000000..d5063cf --- /dev/null +++ b/SOURCES/glibc-RHEL-93320-1.patch @@ -0,0 +1,781 @@ +commit 44829b3ddb64e99e37343a0f25b2c082387d31a5 +Author: Noah Goldstein +Date: Thu Oct 21 15:54:57 2021 -0500 + + String: Add support for __memcmpeq() ABI on all targets + + No bug. + + This commit adds support for __memcmpeq() as a new ABI for all + targets. In this commit __memcmpeq() is implemented only as an alias + to the corresponding targets memcmp() implementation. __memcmpeq() is + added as a new symbol starting with GLIBC_2.35 and defined in string.h + with comments explaining its behavior. Basic tests that it is callable + and works where added in string/tester.c + + As discussed in the proposal "Add new ABI '__memcmpeq()' to libc" + __memcmpeq() is essentially a reserved namespace for bcmp(). The means + is shares the same specifications as memcmp() except the return value + for non-equal byte sequences is any non-zero value. This is less + strict than memcmp()'s return value specification and can be better + optimized when a boolean return is all that is needed. + + __memcmpeq() is meant to only be called by compilers if they can prove + that the return value of a memcmp() call is only used for its boolean + value. + + All tests in string/tester.c passed. As well build succeeds on + x86_64-linux-gnu target. + +diff --git a/string/Versions b/string/Versions +index 298ecd401aa49fd5..864c4cf7a4bda473 100644 +--- a/string/Versions ++++ b/string/Versions +@@ -89,4 +89,7 @@ libc { + sigdescr_np; sigabbrev_np; + strerrordesc_np; strerrorname_np; + } ++ GLIBC_2.35 { ++ __memcmpeq; ++ } + } +diff --git a/string/memcmp.c b/string/memcmp.c +index 9b46d7a905c8b788..eac411253050c0e7 100644 +--- a/string/memcmp.c ++++ b/string/memcmp.c +@@ -359,3 +359,6 @@ libc_hidden_builtin_def(memcmp) + # undef bcmp + weak_alias (memcmp, bcmp) + #endif ++ ++#undef __memcmpeq ++strong_alias (memcmp, __memcmpeq) +diff --git a/string/string.h b/string/string.h +index 8dcafb4ac4952853..639e2f56818f16b6 100644 +--- a/string/string.h ++++ b/string/string.h +@@ -64,6 +64,22 @@ extern void *memset (void *__s, int __c, size_t __n) __THROW __nonnull ((1)); + extern int memcmp (const void *__s1, const void *__s2, size_t __n) + __THROW __attribute_pure__ __nonnull ((1, 2)); + ++/* Compare N bytes of S1 and S2. Return zero if S1 and S2 are equal. ++ Return some non-zero value otherwise. ++ ++ Essentially __memcmpeq has the exact same semantics as memcmp ++ except the return value is less constrained. memcmp is always a ++ correct implementation of __memcmpeq. As well !!memcmp, -memcmp, ++ or bcmp are correct implementations. ++ ++ __memcmpeq is meant to be used by compilers when memcmp return is ++ only used for its bolean value. ++ ++ __memcmpeq is declared only for use by compilers. Programs should ++ continue to use memcmp. */ ++extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n) ++ __THROW __attribute_pure__ __nonnull ((1, 2)); ++ + /* Search N bytes of S for C. */ + #ifdef __CORRECT_ISO_CPP_STRING_H_PROTO + extern "C++" +diff --git a/string/tester.c b/string/tester.c +index 778160ae6ecd648e..605b3f00f97ae854 100644 +--- a/string/tester.c ++++ b/string/tester.c +@@ -1449,6 +1449,19 @@ test_bcmp (void) + check(bcmp("abc", "def", 0) == 0, 8); /* Zero count. */ + } + ++static void ++test_memcmpeq (void) ++{ ++ it = "__memcmpeq"; ++ check (__memcmpeq ("a", "a", 1) == 0, 1); /* Identity. */ ++ check (__memcmpeq ("abc", "abc", 3) == 0, 2); /* Multicharacter. */ ++ check (__memcmpeq ("abcd", "abce", 4) != 0, 3); /* Honestly unequal. */ ++ check (__memcmpeq ("abce", "abcd", 4) != 0, 4); ++ check (__memcmpeq ("alph", "beta", 4) != 0, 5); ++ check (__memcmpeq ("abce", "abcd", 3) == 0, 6); /* Count limited. */ ++ check (__memcmpeq ("abc", "def", 0) == 0, 8); /* Zero count. */ ++} ++ + static void + test_strerror (void) + { +@@ -1611,6 +1624,9 @@ main (void) + /* bcmp - somewhat like memcmp. */ + test_bcmp (); + ++ /* __memcmpeq - somewhat like memcmp. */ ++ test_memcmpeq (); ++ + /* strndup. */ + test_strndup (); + +diff --git a/sysdeps/aarch64/memcmp.S b/sysdeps/aarch64/memcmp.S +index c1937f6f5c103a6f..37f37b91914c518b 100644 +--- a/sysdeps/aarch64/memcmp.S ++++ b/sysdeps/aarch64/memcmp.S +@@ -177,4 +177,6 @@ L(ret_0): + END (memcmp) + #undef bcmp + weak_alias (memcmp, bcmp) ++#undef __memcmpeq ++strong_alias (memcmp, __memcmpeq) + libc_hidden_builtin_def (memcmp) +diff --git a/sysdeps/csky/abiv2/memcmp.S b/sysdeps/csky/abiv2/memcmp.S +index 1560387618799d0e..2a4ae577b024277d 100644 +--- a/sysdeps/csky/abiv2/memcmp.S ++++ b/sysdeps/csky/abiv2/memcmp.S +@@ -138,5 +138,6 @@ ENTRY (memcmp) + br .L_s1_aligned + END (memcmp) + weak_alias (memcmp, bcmp) ++strong_alias (memcmp, __memcmpeq) + libc_hidden_def (memcmp) + .weak memcmp +diff --git a/sysdeps/i386/i686/memcmp.S b/sysdeps/i386/i686/memcmp.S +index b26b124fada2048f..90266d904b52368a 100644 +--- a/sysdeps/i386/i686/memcmp.S ++++ b/sysdeps/i386/i686/memcmp.S +@@ -405,4 +405,6 @@ L(table_32bytes) : + + #undef bcmp + weak_alias (memcmp, bcmp) ++#undef __memcmpeq ++strong_alias (memcmp, __memcmpeq) + libc_hidden_builtin_def (memcmp) +diff --git a/sysdeps/i386/i686/multiarch/memcmp-ia32.S b/sysdeps/i386/i686/multiarch/memcmp-ia32.S +index 5f6658b89a0d1d77..a5b5c3d3491f2e5a 100644 +--- a/sysdeps/i386/i686/multiarch/memcmp-ia32.S ++++ b/sysdeps/i386/i686/multiarch/memcmp-ia32.S +@@ -30,6 +30,9 @@ + + # undef weak_alias + # define weak_alias(original, alias) ++ ++# undef strong_alias ++# define strong_alias(original, alias) + #endif + + #include +diff --git a/sysdeps/i386/i686/multiarch/memcmp.c b/sysdeps/i386/i686/multiarch/memcmp.c +index 6e058a885775135c..3b2815edbc4d9d54 100644 +--- a/sysdeps/i386/i686/multiarch/memcmp.c ++++ b/sysdeps/i386/i686/multiarch/memcmp.c +@@ -29,4 +29,5 @@ + libc_ifunc_redirected (__redirect_memcmp, memcmp, IFUNC_SELECTOR ()); + + weak_alias (memcmp, bcmp) ++strong_alias (memcmp, __memcmpeq) + #endif +diff --git a/sysdeps/i386/memcmp.S b/sysdeps/i386/memcmp.S +index 1f212b0f6de8cde9..02473c2c0c827ba2 100644 +--- a/sysdeps/i386/memcmp.S ++++ b/sysdeps/i386/memcmp.S +@@ -70,4 +70,6 @@ END (memcmp) + + #undef bcmp + weak_alias (memcmp, bcmp) ++#undef __memcmpeq ++strong_alias (memcmp, __memcmpeq) + libc_hidden_builtin_def (memcmp) +diff --git a/sysdeps/ia64/memcmp.S b/sysdeps/ia64/memcmp.S +index 98570f4e364464ec..e9c3b645c742d34b 100644 +--- a/sysdeps/ia64/memcmp.S ++++ b/sysdeps/ia64/memcmp.S +@@ -161,4 +161,5 @@ ENTRY(memcmp) + END(memcmp) + + weak_alias (memcmp, bcmp) ++strong_alias (memcmp, __memcmpeq) + libc_hidden_builtin_def (memcmp) +diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist +index c5da10a0cd0140e4..e849d6fa35456b4b 100644 +--- a/sysdeps/mach/hurd/i386/libc.abilist ++++ b/sysdeps/mach/hurd/i386/libc.abilist +@@ -2285,6 +2285,7 @@ GLIBC_2.34 res_send F + GLIBC_2.34 shm_open F + GLIBC_2.34 shm_unlink F + GLIBC_2.34 timespec_getres F ++GLIBC_2.35 __memcmpeq F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/powerpc/powerpc32/405/memcmp.S b/sysdeps/powerpc/powerpc32/405/memcmp.S +index 6a6a54d90f93e751..c2836040a7783fb2 100644 +--- a/sysdeps/powerpc/powerpc32/405/memcmp.S ++++ b/sysdeps/powerpc/powerpc32/405/memcmp.S +@@ -126,3 +126,4 @@ L(st2): + END (memcmp) + libc_hidden_builtin_def (memcmp) + weak_alias (memcmp,bcmp) ++strong_alias (memcmp, __memcmpeq) +diff --git a/sysdeps/powerpc/powerpc32/power4/memcmp.S b/sysdeps/powerpc/powerpc32/power4/memcmp.S +index 814d2f211d95992e..f58e34aba5c2d3dc 100644 +--- a/sysdeps/powerpc/powerpc32/power4/memcmp.S ++++ b/sysdeps/powerpc/powerpc32/power4/memcmp.S +@@ -1373,3 +1373,4 @@ END (memcmp) + + libc_hidden_builtin_def (memcmp) + weak_alias (memcmp, bcmp) ++strong_alias (memcmp, __memcmpeq) +diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-power7.S +index 8a929b2b443a8aff..b17d0e43b77e532d 100644 +--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-power7.S ++++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-power7.S +@@ -38,4 +38,7 @@ + #undef weak_alias + #define weak_alias(a, b) + ++#undef strong_alias ++#define strong_alias(a, b) ++ + #include +diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-ppc32.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-ppc32.S +index 317523b7435b8553..893b6cac9cd7e0cc 100644 +--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-ppc32.S ++++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-ppc32.S +@@ -40,6 +40,10 @@ + # undef weak_alias + # define weak_alias(a, b) \ + .weak b ; b = __memcmp_ppc ++ ++# undef strong_alias ++# define strong_alias(a, b) \ ++ .globl b ; b = __memcmp_ppc + #endif + + #include +diff --git a/sysdeps/powerpc/powerpc32/power7/memcmp.S b/sysdeps/powerpc/powerpc32/power7/memcmp.S +index 8a19953e2d0e8dbc..f8deb4e32cfcce9f 100644 +--- a/sysdeps/powerpc/powerpc32/power7/memcmp.S ++++ b/sysdeps/powerpc/powerpc32/power7/memcmp.S +@@ -1373,3 +1373,4 @@ END (memcmp) + + libc_hidden_builtin_def (memcmp) + weak_alias (memcmp, bcmp) ++strong_alias (memcmp, __memcmpeq) +diff --git a/sysdeps/powerpc/powerpc64/le/power10/memcmp.S b/sysdeps/powerpc/powerpc64/le/power10/memcmp.S +index 52f244e7e77cbdf9..f81c73a29c7f65e5 100644 +--- a/sysdeps/powerpc/powerpc64/le/power10/memcmp.S ++++ b/sysdeps/powerpc/powerpc64/le/power10/memcmp.S +@@ -177,3 +177,4 @@ L(tail8): + END (MEMCMP) + libc_hidden_builtin_def (memcmp) + weak_alias (memcmp, bcmp) ++strong_alias (memcmp, __memcmpeq) +diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power10.S b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power10.S +index 73a0debd4a811d8e..22399f143d089b13 100644 +--- a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power10.S ++++ b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power10.S +@@ -22,5 +22,7 @@ + #define libc_hidden_builtin_def(name) + #undef weak_alias + #define weak_alias(name,alias) ++#undef strong_alias ++#define strong_alias(name,alias) + + #include +diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power4.S b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power4.S +index d2b6c2f934e38001..fe68912a3b347916 100644 +--- a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power4.S ++++ b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power4.S +@@ -22,5 +22,7 @@ + #define libc_hidden_builtin_def(name) + #undef weak_alias + #define weak_alias(name,alias) ++#undef strong_alias ++#define strong_alias(name,alias) + + #include +diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power7.S b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power7.S +index 8671e930f093cbdb..5739471a7d1a4f65 100644 +--- a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power7.S ++++ b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power7.S +@@ -22,5 +22,7 @@ + #define libc_hidden_builtin_def(name) + #undef weak_alias + #define weak_alias(name,alias) ++#undef strong_alias ++#define strong_alias(name,alias) + + #include +diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S +index eb2273d468478add..e6a93e88c616961e 100644 +--- a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S ++++ b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S +@@ -22,5 +22,7 @@ + #define libc_hidden_builtin_def(name) + #undef weak_alias + #define weak_alias(name,alias) ++#undef strong_alias ++#define strong_alias(name,alias) + + #include +diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcmp-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/memcmp-ppc64.c +index 1f9f219971fdbbd9..2bc5fa50d701c0c3 100644 +--- a/sysdeps/powerpc/powerpc64/multiarch/memcmp-ppc64.c ++++ b/sysdeps/powerpc/powerpc64/multiarch/memcmp-ppc64.c +@@ -22,6 +22,10 @@ + #define weak_alias(name, aliasname) \ + extern __typeof (__memcmp_ppc) aliasname \ + __attribute__ ((weak, alias ("__memcmp_ppc"))); ++#undef strong_alias ++#define strong_alias(name, aliasname) \ ++ extern __typeof (__memcmp_ppc) aliasname \ ++ __attribute__ ((alias ("__memcmp_ppc"))); + #if IS_IN (libc) && defined(SHARED) + # undef libc_hidden_builtin_def + # define libc_hidden_builtin_def(name) \ +diff --git a/sysdeps/powerpc/powerpc64/power4/memcmp.S b/sysdeps/powerpc/powerpc64/power4/memcmp.S +index dc1be3a0d8d80d35..cc82be115ff2bd8e 100644 +--- a/sysdeps/powerpc/powerpc64/power4/memcmp.S ++++ b/sysdeps/powerpc/powerpc64/power4/memcmp.S +@@ -1374,3 +1374,4 @@ L(duzeroLength): + END (MEMCMP) + libc_hidden_builtin_def (memcmp) + weak_alias (memcmp, bcmp) ++strong_alias (memcmp, __memcmpeq) +diff --git a/sysdeps/powerpc/powerpc64/power7/memcmp.S b/sysdeps/powerpc/powerpc64/power7/memcmp.S +index bc034a55bc18f520..3044f7ede95ca9bd 100644 +--- a/sysdeps/powerpc/powerpc64/power7/memcmp.S ++++ b/sysdeps/powerpc/powerpc64/power7/memcmp.S +@@ -1059,3 +1059,4 @@ L(duzeroLength): + END (MEMCMP) + libc_hidden_builtin_def (memcmp) + weak_alias (memcmp, bcmp) ++strong_alias (memcmp, __memcmpeq) +diff --git a/sysdeps/powerpc/powerpc64/power8/memcmp.S b/sysdeps/powerpc/powerpc64/power8/memcmp.S +index b676b09a9b33c643..0c6a154502719064 100644 +--- a/sysdeps/powerpc/powerpc64/power8/memcmp.S ++++ b/sysdeps/powerpc/powerpc64/power8/memcmp.S +@@ -1442,3 +1442,4 @@ L(duzeroLength): + END (MEMCMP) + libc_hidden_builtin_def (memcmp) + weak_alias (memcmp, bcmp) ++strong_alias (memcmp, __memcmpeq) +diff --git a/sysdeps/s390/memcmp-z900.S b/sysdeps/s390/memcmp-z900.S +index 995d52e47d713623..d625bf90dd7250ee 100644 +--- a/sysdeps/s390/memcmp-z900.S ++++ b/sysdeps/s390/memcmp-z900.S +@@ -164,6 +164,7 @@ END(MEMCMP_Z196) + Otherwise see sysdeps/s390/memcmp.c. */ + strong_alias (MEMCMP_DEFAULT, memcmp) + weak_alias (memcmp, bcmp) ++strong_alias (memcmp, __memcmpeq) + #endif + + #if defined SHARED && IS_IN (libc) +diff --git a/sysdeps/s390/memcmp.c b/sysdeps/s390/memcmp.c +index 0b4e9da71784fda3..52c20af77229d92f 100644 +--- a/sysdeps/s390/memcmp.c ++++ b/sysdeps/s390/memcmp.c +@@ -46,4 +46,5 @@ s390_libc_ifunc_expr (__redirect_memcmp, memcmp, + }) + ) + weak_alias (memcmp, bcmp); ++strong_alias (memcmp, __memcmpeq) + #endif +diff --git a/sysdeps/sparc/sparc64/memcmp.S b/sysdeps/sparc/sparc64/memcmp.S +index 0935d31fec61e0c4..ded0fab090763336 100644 +--- a/sysdeps/sparc/sparc64/memcmp.S ++++ b/sysdeps/sparc/sparc64/memcmp.S +@@ -139,4 +139,6 @@ END(memcmp) + + #undef bcmp + weak_alias (memcmp, bcmp) ++#undef __memcmpeq ++strong_alias (memcmp, __memcmpeq) + libc_hidden_builtin_def (memcmp) +diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist +index 21a2e50a884c3d64..f227ae6ceec97c73 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist +@@ -2612,3 +2612,4 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F +diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist +index a201fd69bacc3281..0ccc3fc73ecc0e4d 100644 +--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist ++++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist +@@ -2709,6 +2709,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist +index 261143693778ba9f..fd80704787f4ef41 100644 +--- a/sysdeps/unix/sysv/linux/arc/libc.abilist ++++ b/sysdeps/unix/sysv/linux/arc/libc.abilist +@@ -2373,3 +2373,4 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F +diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist +index a426241965d56df9..2ae6c58b8ad6fc01 100644 +--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist ++++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist +@@ -491,6 +491,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F + GLIBC_2.4 _Exit F + GLIBC_2.4 _IO_2_1_stderr_ D 0xa0 + GLIBC_2.4 _IO_2_1_stdin_ D 0xa0 +diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist +index 02f80418cc40ac06..fcfd1e8594d80aa1 100644 +--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist ++++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist +@@ -488,6 +488,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F + GLIBC_2.4 _Exit F + GLIBC_2.4 _IO_2_1_stderr_ D 0xa0 + GLIBC_2.4 _IO_2_1_stdin_ D 0xa0 +diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist +index b7676eb372398daf..ba034b85414a2b55 100644 +--- a/sysdeps/unix/sysv/linux/csky/libc.abilist ++++ b/sysdeps/unix/sysv/linux/csky/libc.abilist +@@ -2647,3 +2647,4 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F +diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist +index f6965c9d9594910a..b7460bec8ace47c2 100644 +--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist ++++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist +@@ -2596,6 +2596,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist +index 2e7603d9ed6728e2..a4dc341dededdc3b 100644 +--- a/sysdeps/unix/sysv/linux/i386/libc.abilist ++++ b/sysdeps/unix/sysv/linux/i386/libc.abilist +@@ -2780,6 +2780,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist +index dd3a56d3fef14600..94b222dbc7ffbb81 100644 +--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist +@@ -2547,6 +2547,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +index c1e0ea9c102a69d1..12fd3b63103c3e6e 100644 +--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist ++++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +@@ -492,6 +492,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F + GLIBC_2.4 _Exit F + GLIBC_2.4 _IO_2_1_stderr_ D 0x98 + GLIBC_2.4 _IO_2_1_stdin_ D 0x98 +diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +index 93161048ca26b91b..4d2296007ab1d922 100644 +--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist ++++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +@@ -2723,6 +2723,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist +index 0aaeec8a2707da2a..a223278a3d4a33d8 100644 +--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist ++++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist +@@ -2696,3 +2696,4 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F +diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist +index bec5f456c9756e83..780a4f5b0bf5518c 100644 +--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist ++++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist +@@ -2693,3 +2693,4 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F +diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +index 97d2127f7828312a..cd65136062a6a876 100644 +--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist ++++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +@@ -2688,6 +2688,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +index acb0756c11995d34..b5b9902db56a4c79 100644 +--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist ++++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +@@ -2686,6 +2686,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +index ebc21dde1eca0d6b..57593d5f94a184f1 100644 +--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist ++++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +@@ -2694,6 +2694,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +index c68f7e3c6cc8baa7..e944d76bed0bfe06 100644 +--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +@@ -2598,6 +2598,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist +index e5b6834f147f1edc..8af5a3a90dfe4089 100644 +--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist ++++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist +@@ -2735,3 +2735,4 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +index 132707c8ad52832b..3a0213b39f8f7abd 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +@@ -2750,6 +2750,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +index 0af2be31a0f4ff91..f57df0234b8bdee3 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +@@ -2783,6 +2783,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist +index cf864632d0cc3438..259a0cfc5126ca9e 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist +@@ -2506,6 +2506,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist +index d566d675d00c881b..126541daf152e1ad 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist +@@ -2808,3 +2808,4 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F +diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist +index c9a7eacb32ebe277..05df4d13d2c35ad1 100644 +--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist ++++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist +@@ -2375,3 +2375,4 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F +diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist +index 8299131cb2ce932e..8e349cbff8cc0507 100644 +--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist +@@ -2575,3 +2575,4 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F +diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +index c3fe78f77fd11c78..e9de402766af0d8a 100644 +--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist ++++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +@@ -2748,6 +2748,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +index 83e542aa8c2563fa..1a010c745d78a07e 100644 +--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +@@ -2543,6 +2543,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist +index dc502f683336ad37..22ce530975944ff6 100644 +--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist ++++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist +@@ -2603,6 +2603,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist +index cba1abb55621ca74..960df07b83bd2cbf 100644 +--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist ++++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist +@@ -2600,6 +2600,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +index d4a516fb47518e12..eedb376f3dfeb8fb 100644 +--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist ++++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +@@ -2743,6 +2743,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +index 6268875ba37ac0d4..86e0c92bef9255ab 100644 +--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +@@ -2570,6 +2570,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +index 095e914b73705601..5e59d90623c2bcba 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +@@ -2521,6 +2521,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +index dd910f7fe934f260..94412dc134af283a 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist ++++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +@@ -2627,3 +2627,4 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __memcmpeq F +diff --git a/sysdeps/x86_64/memcmp.S b/sysdeps/x86_64/memcmp.S +index a9266494635ad2dd..1c217935edb18210 100644 +--- a/sysdeps/x86_64/memcmp.S ++++ b/sysdeps/x86_64/memcmp.S +@@ -359,4 +359,6 @@ END(memcmp) + + #undef bcmp + weak_alias (memcmp, bcmp) ++#undef __memcmpeq ++strong_alias (memcmp, __memcmpeq) + libc_hidden_builtin_def (memcmp) +diff --git a/sysdeps/x86_64/multiarch/memcmp-sse2.S b/sysdeps/x86_64/multiarch/memcmp-sse2.S +index b135fa2d4084b6d0..af737c5e6c65e9b2 100644 +--- a/sysdeps/x86_64/multiarch/memcmp-sse2.S ++++ b/sysdeps/x86_64/multiarch/memcmp-sse2.S +@@ -26,6 +26,9 @@ + + # undef weak_alias + # define weak_alias(ignored1, ignored2) ++ ++# undef strong_alias ++# define strong_alias(ignored1, ignored2) + #endif + + #include +diff --git a/sysdeps/x86_64/multiarch/memcmp.c b/sysdeps/x86_64/multiarch/memcmp.c +index fe725f35639793c2..4a3aad2c9c4a58fd 100644 +--- a/sysdeps/x86_64/multiarch/memcmp.c ++++ b/sysdeps/x86_64/multiarch/memcmp.c +@@ -29,6 +29,8 @@ + libc_ifunc_redirected (__redirect_memcmp, memcmp, IFUNC_SELECTOR ()); + # undef bcmp + weak_alias (memcmp, bcmp) ++# undef __memcmpeq ++strong_alias (memcmp, __memcmpeq) + + # ifdef SHARED + __hidden_ver1 (memcmp, __GI_memcmp, __redirect_memcmp) diff --git a/SOURCES/glibc-RHEL-93320-10.patch b/SOURCES/glibc-RHEL-93320-10.patch new file mode 100644 index 0000000..169f761 --- /dev/null +++ b/SOURCES/glibc-RHEL-93320-10.patch @@ -0,0 +1,35 @@ +commit 4a41fc3cd9cea9223ea4f13f9c766a1e149a0ccc +Author: Florian Weimer +Date: Wed Apr 13 14:18:28 2022 +0200 + + elf: Fix memory leak in _dl_find_object_update (bug 29062) + + The count can be zero if an object has already been loaded as + an indirect dependency (so that l_searchlist.r_list in its link + map is still NULL) is promoted to global scope via RTLD_GLOBAL. + + Fixes commit 5d28a8962dc ("elf: Add _dl_find_object function"). + +diff --git a/elf/dl-find_object.c b/elf/dl-find_object.c +index 2952c651ff26db04..f4484e69c226a0a5 100644 +--- a/elf/dl-find_object.c ++++ b/elf/dl-find_object.c +@@ -788,6 +788,9 @@ _dl_find_object_update (struct link_map *new_map) + for (struct link_map *l = new_map; l != NULL; l = l->l_next) + /* Skip proxy maps and already-processed maps. */ + count += l == l->l_real && !l->l_find_object_processed; ++ if (count == 0) ++ return true; ++ + struct link_map **map_array = malloc (count * sizeof (*map_array)); + if (map_array == NULL) + return false; +@@ -797,8 +800,6 @@ _dl_find_object_update (struct link_map *new_map) + if (l == l->l_real && !l->l_find_object_processed) + map_array[i++] = l; + } +- if (count == 0) +- return true; + + _dl_find_object_link_map_sort (map_array, count); + bool ok = _dl_find_object_update_1 (map_array, count); diff --git a/SOURCES/glibc-RHEL-93320-11.patch b/SOURCES/glibc-RHEL-93320-11.patch new file mode 100644 index 0000000..9086a7b --- /dev/null +++ b/SOURCES/glibc-RHEL-93320-11.patch @@ -0,0 +1,55 @@ +commit 2a5b4f7a715921a232f67f6810268c6cd6aa0af2 +Author: Florian Weimer +Date: Fri Jul 8 12:08:48 2022 +0200 + + elf: Rename tst-audit26 to tst-audit28 + + tst-audit26 and tst-audit27 are already used by aarch64. + + Reviewed-by: Szabolcs Nagy + +(cherry picked from commit 90365b164b8061d891a640a3ae477a6500753291) + +diff --git a/elf/Makefile b/elf/Makefile +index e1e6107c277f5f76..7382cf6dd498ce8a 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -395,7 +395,7 @@ tests += \ + tst-audit24d \ + tst-audit25a \ + tst-audit25b \ +- tst-audit26 \ ++ tst-audit28 \ + tst-auditmany \ + tst-auxobj \ + tst-auxobj-dlopen \ +@@ -782,7 +782,7 @@ modules-names = \ + tst-auditmod24c \ + tst-auditmod24d \ + tst-auditmod25 \ +- tst-auditmod26 \ ++ tst-auditmod28 \ + tst-auxvalmod \ + tst-big-note-lib \ + tst-deep1mod1 \ +@@ -2347,9 +2347,9 @@ $(objpfx)tst-audit25b: $(objpfx)tst-audit25mod1.so \ + LDFLAGS-tst-audit25b = -Wl,-z,now + tst-audit25b-ARGS = -- $(host-test-program-cmd) + +-$(objpfx)tst-audit26.out: $(objpfx)tst-auditmod26.so +-$(objpfx)tst-auditmod26.so: $(libsupport) +-tst-audit26-ENV = LD_AUDIT=$(objpfx)tst-auditmod26.so ++$(objpfx)tst-audit28.out: $(objpfx)tst-auditmod28.so ++$(objpfx)tst-auditmod28.so: $(libsupport) ++tst-audit28-ENV = LD_AUDIT=$(objpfx)tst-auditmod28.so + + # tst-sonamemove links against an older implementation of the library. + LDFLAGS-tst-sonamemove-linkmod1.so = \ +diff --git a/elf/tst-audit26.c b/elf/tst-audit28.c +similarity index 100% +rename from elf/tst-audit26.c +rename to elf/tst-audit28.c +diff --git a/elf/tst-auditmod26.c b/elf/tst-auditmod28.c +similarity index 100% +rename from elf/tst-auditmod26.c +rename to elf/tst-auditmod28.c diff --git a/SOURCES/glibc-RHEL-93320-12.patch b/SOURCES/glibc-RHEL-93320-12.patch new file mode 100644 index 0000000..c170ab2 --- /dev/null +++ b/SOURCES/glibc-RHEL-93320-12.patch @@ -0,0 +1,51 @@ +commit 1bcfe0f732066ae5336b252295591ebe7e51c301 +Author: Florian Weimer +Date: Fri Jul 7 10:11:26 2023 +0200 + + elf: _dl_find_object may return 1 during early startup (bug 30515) + + Success is reported with a 0 return value, and failure is -1. + Enhance the kitchen sink test elf/tst-audit28 to cover + _dl_find_object as well. + + Fixes commit 5d28a8962dcb ("elf: Add _dl_find_object function") + and bug 30515. + + Reviewed-by: Carlos O'Donell + Tested-by: Carlos O'Donell + +diff --git a/elf/dl-find_object.c b/elf/dl-find_object.c +index f4484e69c226a0a5..83a03fbd7c83c6be 100644 +--- a/elf/dl-find_object.c ++++ b/elf/dl-find_object.c +@@ -46,7 +46,7 @@ _dl_find_object_slow (void *pc, struct dl_find_object *result) + struct dl_find_object_internal internal; + _dl_find_object_from_map (l, &internal); + _dl_find_object_to_external (&internal, result); +- return 1; ++ return 0; + } + + /* Object not found. */ +diff --git a/elf/tst-auditmod28.c b/elf/tst-auditmod28.c +index db7ba95abec20f53..9e0a122c389535d0 100644 +--- a/elf/tst-auditmod28.c ++++ b/elf/tst-auditmod28.c +@@ -71,6 +71,17 @@ la_version (unsigned int current) + TEST_VERIFY (dladdr1 (&_exit, &info, &extra_info, RTLD_DL_LINKMAP) != 0); + TEST_VERIFY (extra_info == handle); + ++ /* Check _dl_find_object. */ ++ struct dl_find_object dlfo; ++ TEST_COMPARE (_dl_find_object (__builtin_return_address (0), &dlfo), 0); ++ /* "ld.so" is seen with --enable-hardcoded-path-in-tests. */ ++ if (strcmp (basename (dlfo.dlfo_link_map->l_name), "ld.so") != 0) ++ TEST_COMPARE_STRING (basename (dlfo.dlfo_link_map->l_name), LD_SO); ++ TEST_COMPARE (_dl_find_object (dlsym (handle, "environ"), &dlfo), 0); ++ TEST_COMPARE_STRING (basename (dlfo.dlfo_link_map->l_name), LIBC_SO); ++ TEST_COMPARE (_dl_find_object ((void *) 1, &dlfo), -1); ++ TEST_COMPARE (_dl_find_object ((void *) -1, &dlfo), -1); ++ + /* Verify that dlmopen creates a new namespace. */ + void *dlmopen_handle = xdlmopen (LM_ID_NEWLM, LIBC_SO, RTLD_NOW); + TEST_VERIFY (dlmopen_handle != handle); diff --git a/SOURCES/glibc-RHEL-93320-13.patch b/SOURCES/glibc-RHEL-93320-13.patch new file mode 100644 index 0000000..bb81254 --- /dev/null +++ b/SOURCES/glibc-RHEL-93320-13.patch @@ -0,0 +1,58 @@ +commit 6c915c73d08028987232f6dc718f218c61113240 +Author: Aurelien Jarno +Date: Sun Nov 10 10:50:34 2024 +0100 + + elf: handle addition overflow in _dl_find_object_update_1 [BZ #32245] + + The remaining_to_add variable can be 0 if (current_used + count) wraps, + This is caught by GCC 14+ on hppa, which determines from there that + target_seg could be be NULL when remaining_to_add is zero, which in + turns causes a -Wstringop-overflow warning: + + In file included from ../include/atomic.h:49, + from dl-find_object.c:20: + In function '_dlfo_update_init_seg', + inlined from '_dl_find_object_update_1' at dl-find_object.c:689:30, + inlined from '_dl_find_object_update' at dl-find_object.c:805:13: + ../sysdeps/unix/sysv/linux/hppa/atomic-machine.h:44:4: error: '__atomic_store_4' writing 4 bytes into a region of size 0 overflows the destination [-Werror=stringop-overflow=] + 44 | __atomic_store_n ((mem), (val), __ATOMIC_RELAXED); \ + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + dl-find_object.c:644:3: note: in expansion of macro 'atomic_store_relaxed' + 644 | atomic_store_relaxed (&seg->size, new_seg_size); + | ^~~~~~~~~~~~~~~~~~~~ + In function '_dl_find_object_update': + cc1: note: destination object is likely at address zero + + In practice, this is not possible as it represent counts of link maps. + Link maps have sizes larger than 1 byte, so the sum of any two link map + counts will always fit within a size_t without wrapping around. + + This patch therefore adds a check on remaining_to_add == 0 and tell GCC + that this can not happen using __builtin_unreachable. + + Thanks to Andreas Schwab for the investigation. + + Closes: BZ #32245 + Signed-off-by: Aurelien Jarno + Tested-by: John David Anglin + Reviewed-by: Florian Weimer + +diff --git a/elf/dl-find_object.c b/elf/dl-find_object.c +index 83a03fbd7c83c6be..56894ca24a510b07 100644 +--- a/elf/dl-find_object.c ++++ b/elf/dl-find_object.c +@@ -661,6 +661,14 @@ _dl_find_object_update_1 (struct link_map **loaded, size_t count) + = _dlfo_loaded_mappings[!active_idx]; + size_t remaining_to_add = current_used + count; + ++ /* remaining_to_add can be 0 if (current_used + count) wraps, but in practice ++ this is not possible as it represent counts of link maps. Link maps have ++ sizes larger than 1 byte, so the sum of any two link map counts will ++ always fit within a size_t without wrapping around. This check ensures ++ that target_seg is not erroneously considered potentially NULL by GCC. */ ++ if (remaining_to_add == 0) ++ __builtin_unreachable (); ++ + /* Ensure that the new segment chain has enough space. */ + { + size_t new_allocated diff --git a/SOURCES/glibc-RHEL-93320-14.patch b/SOURCES/glibc-RHEL-93320-14.patch new file mode 100644 index 0000000..a14b8d3 --- /dev/null +++ b/SOURCES/glibc-RHEL-93320-14.patch @@ -0,0 +1,812 @@ +commit 5f3a7ebc358fdcbafcab4f1bf4067120fb519dfc +Author: Adhemerval Zanella +Date: Wed Jan 12 11:31:53 2022 -0300 + + Linux: Add epoll_pwait2 (BZ #27359) + + It is similar to epoll_wait, with the difference the timeout has + nanosecond resoluting by using struct timespec instead of int. + + Although Linux interface only provides 64 bit time_t support, old + 32 bit interface is also provided (so keep in sync with current + practice and to no force opt-in on 64 bit time_t). + + Checked on x86_64-linux-gnu and i686-linux-gnu. + + Reviewed-by: Florian Weimer + +Conflicts: + sysdeps/unix/sysv/linux/Makefile + Updated for layout change + sysdeps/unix/sysv/linux/or1k/libc.abilist + Omitted + +diff --git a/include/sys/epoll.h b/include/sys/epoll.h +index 86e0a54e62a5628b..8049381a269956ce 100644 +--- a/include/sys/epoll.h ++++ b/include/sys/epoll.h +@@ -4,6 +4,14 @@ + # ifndef _ISOMAC + + libc_hidden_proto (epoll_pwait) ++#if __TIMESIZE == 64 ++# define __epoll_pwait2_time64 epoll_pwait2 ++#else ++extern int __epoll_pwait2_time64 (int fd, struct epoll_event *ev, int maxev, ++ const struct __timespec64 *tmo, ++ const sigset_t *s); ++libc_hidden_proto (__epoll_pwait2_time64) ++#endif + + # endif /* !_ISOMAC */ + #endif +diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile +index 94eb2665b27371a4..61a40e31bacdbc22 100644 +--- a/sysdeps/unix/sysv/linux/Makefile ++++ b/sysdeps/unix/sysv/linux/Makefile +@@ -55,7 +55,7 @@ endif + + ifeq ($(subdir),misc) + sysdep_routines += adjtimex clone umount umount2 readahead sysctl \ +- setfsuid setfsgid epoll_pwait signalfd \ ++ setfsuid setfsgid epoll_pwait epoll_pwait2 signalfd \ + eventfd eventfd_read eventfd_write prlimit \ + personality epoll_wait tee vmsplice splice \ + open_by_handle_at mlock2 pkey_mprotect pkey_set pkey_get \ +@@ -131,6 +131,7 @@ tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \ + tst-clock_adjtime tst-adjtimex tst-ntp_adjtime tst-ntp_gettime \ + tst-ntp_gettimex tst-sigtimedwait tst-misalign-clone \ + tst-close_range \ ++ tst-epoll \ + tst-prctl \ + tst-scm_rights \ + tst-getauxval \ +@@ -160,6 +161,7 @@ endif + tests-time64 += \ + tst-adjtimex-time64 \ + tst-clock_adjtime-time64 \ ++ tst-epoll-time64 \ + tst-ntp_adjtime-time64 \ + tst-ntp_gettime-time64 \ + tst-ntp_gettimex-time64 \ +diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions +index 3f8809a1581f27d0..ded087f30ea953fc 100644 +--- a/sysdeps/unix/sysv/linux/Versions ++++ b/sysdeps/unix/sysv/linux/Versions +@@ -293,6 +293,12 @@ libc { + %endif + close_range; + } ++ GLIBC_2.35 { ++%ifdef TIME64_NON_DEFAULT ++ __epoll_pwait2_time64; ++%endif ++ epoll_pwait2; ++ } + GLIBC_PRIVATE { + # functions used in other libraries + __syscall_rt_sigqueueinfo; +diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist +index fed942ed4b9ef469..c1a5ee90e6d4c63e 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist +@@ -2614,3 +2614,4 @@ GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F +diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist +index 28679327043ff0f2..1a30d0666bb76f41 100644 +--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist ++++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist +@@ -2711,6 +2711,7 @@ GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist +index 239db7bab0a18a87..e5dfdab357c72440 100644 +--- a/sysdeps/unix/sysv/linux/arc/libc.abilist ++++ b/sysdeps/unix/sysv/linux/arc/libc.abilist +@@ -2375,3 +2375,4 @@ GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F +diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist +index bc79dcfe8ab4c723..4d3fd872788ba1f0 100644 +--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist ++++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist +@@ -491,8 +491,10 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F + GLIBC_2.4 _Exit F + GLIBC_2.4 _IO_2_1_stderr_ D 0xa0 + GLIBC_2.4 _IO_2_1_stdin_ D 0xa0 +diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist +index 614607fd6baa8c6f..009dc9da14ee5eed 100644 +--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist ++++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist +@@ -488,8 +488,10 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F + GLIBC_2.4 _Exit F + GLIBC_2.4 _IO_2_1_stderr_ D 0xa0 + GLIBC_2.4 _IO_2_1_stdin_ D 0xa0 +diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist +index 2b61543f0dd47034..df8da506cde36eeb 100644 +--- a/sysdeps/unix/sysv/linux/csky/libc.abilist ++++ b/sysdeps/unix/sysv/linux/csky/libc.abilist +@@ -2647,5 +2647,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F +diff --git a/sysdeps/unix/sysv/linux/epoll_pwait2.c b/sysdeps/unix/sysv/linux/epoll_pwait2.c +new file mode 100644 +index 0000000000000000..e38a1b2349edb040 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/epoll_pwait2.c +@@ -0,0 +1,44 @@ ++/* Implementation of epoll_pwait2 syscall wrapper. ++ Copyright (C) 2022 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++int ++__epoll_pwait2_time64 (int fd, struct epoll_event *ev, int maxev, ++ const struct __timespec64 *tmo, const sigset_t *s) ++{ ++ /* The syscall only supports 64-bit time_t. */ ++ return SYSCALL_CANCEL (epoll_pwait2, fd, ev, maxev, tmo, s, __NSIG_BYTES); ++} ++#if __TIMESIZE != 64 ++libc_hidden_def (__epoll_pwait2_time64) ++ ++int ++epoll_pwait2 (int fd, struct epoll_event *ev, int maxev, ++ const struct timespec *tmo, const sigset_t *s) ++{ ++ struct __timespec64 tmo64, *ptmo64 = NULL; ++ if (tmo != NULL) ++ { ++ tmo64 = valid_timespec_to_timespec64 (*tmo); ++ ptmo64 = &tmo64; ++ } ++ return __epoll_pwait2_time64 (fd, ev, maxev, ptmo64, s); ++} ++#endif +diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist +index 6b3cb1adb40c0a01..7ea1b017d05cc1fb 100644 +--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist ++++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist +@@ -2596,8 +2596,10 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist +index 7f608c1b64454bff..99ccf354b3d1a762 100644 +--- a/sysdeps/unix/sysv/linux/i386/libc.abilist ++++ b/sysdeps/unix/sysv/linux/i386/libc.abilist +@@ -2780,8 +2780,10 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist +index 865deec43f99a036..201542d1e76daa60 100644 +--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist +@@ -2549,6 +2549,7 @@ GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +index a172d746328ddeeb..32fd72a78df65bd8 100644 +--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist ++++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +@@ -492,8 +492,10 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F + GLIBC_2.4 _Exit F + GLIBC_2.4 _IO_2_1_stderr_ D 0x98 + GLIBC_2.4 _IO_2_1_stdin_ D 0x98 +diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +index 174e9c7739f966ac..d26f0ae6c2475984 100644 +--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist ++++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +@@ -2723,8 +2723,10 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist +index d042be1369b7d264..520ca0882d8d720b 100644 +--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist ++++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist +@@ -2696,5 +2696,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F +diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist +index 332da62de23b88b8..9162c3139661b2c9 100644 +--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist ++++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist +@@ -2693,5 +2693,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F +diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +index 2d6ec0d0e8f3c797..656fdbdcaa70dad6 100644 +--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist ++++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +@@ -2688,8 +2688,10 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +index 6c5befa72bb5602b..5f0b90d318030622 100644 +--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist ++++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +@@ -2686,8 +2686,10 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +index 5fb24c97e1e6f05d..9f4891fc08d71521 100644 +--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist ++++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +@@ -2694,8 +2694,10 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +index f4f29fc15ee8f1a2..f1b0644bc33ba065 100644 +--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +@@ -2600,6 +2600,7 @@ GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist +index 2e7300cd0512ad78..1cf88e38b943eeb9 100644 +--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist ++++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist +@@ -2735,5 +2735,7 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +index 129a2f16a7b731d3..9692335d106f9400 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +@@ -2750,8 +2750,10 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +index 7e232267791057a3..7da0ed59f2ccb080 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +@@ -2783,8 +2783,10 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist +index 6f97392b7030ee95..72cf6851988a7b91 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist +@@ -2508,6 +2508,7 @@ GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist +index 29058a041a9cdba1..ee7f67f4d09ba7ae 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist +@@ -2810,3 +2810,4 @@ GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F +diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist +index d2924766d2f33039..b8c0854508ec8714 100644 +--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist ++++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist +@@ -2377,3 +2377,4 @@ GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F +diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist +index b770e05da3ae0350..90f331fc0bc06278 100644 +--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist +@@ -2577,3 +2577,4 @@ GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F +diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +index bed3433a2b75d3b4..ded5e3c0ce4da82c 100644 +--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist ++++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +@@ -2748,8 +2748,10 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +index 4f1a143da504d98c..4b262992540d18d6 100644 +--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +@@ -2545,6 +2545,7 @@ GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist +index 92c8dec8ec28c54a..8bfd716fd238a35b 100644 +--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist ++++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist +@@ -2603,8 +2603,10 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist +index 263da58cb7dada2c..47fd204d84ea2432 100644 +--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist ++++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist +@@ -2600,8 +2600,10 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +index 0171efe7db109153..9b82f15109ca4b1a 100644 +--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist ++++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +@@ -2743,8 +2743,10 @@ GLIBC_2.34 tss_create F + GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F ++GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +index 7f8d45f362e63584..94caf012a7e9cada 100644 +--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +@@ -2572,6 +2572,7 @@ GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/sys/epoll.h b/sysdeps/unix/sysv/linux/sys/epoll.h +index b6751f66971b82ca..5eb611da1bfd802f 100644 +--- a/sysdeps/unix/sysv/linux/sys/epoll.h ++++ b/sysdeps/unix/sysv/linux/sys/epoll.h +@@ -22,6 +22,7 @@ + #include + + #include ++#include + + /* Get the platform-dependent flags. */ + #include +@@ -133,6 +134,26 @@ extern int epoll_pwait (int __epfd, struct epoll_event *__events, + int __maxevents, int __timeout, + const __sigset_t *__ss); + ++/* Same as epoll_pwait, but the timeout as a timespec. ++ ++ This function is a cancellation point and therefore not marked with ++ __THROW. */ ++#ifndef __USE_TIME_BITS64 ++extern int epoll_pwait2 (int __epfd, struct epoll_event *__events, ++ int __maxevents, const struct timespec *__timeout, ++ const __sigset_t *__ss); ++#else ++# ifdef __REDIRECT ++extern int __REDIRECT (epoll_pwait2, (int __epfd, struct epoll_event *__ev, ++ int __maxevs, ++ const struct timespec *__timeout, ++ const __sigset_t *__ss), ++ __epoll_pwait2_time64); ++# else ++# define epoll_pwait2 __epoll_pwait2_time64 ++# endif ++#endif ++ + __END_DECLS + + #endif /* sys/epoll.h */ +diff --git a/sysdeps/unix/sysv/linux/tst-epoll-time64.c b/sysdeps/unix/sysv/linux/tst-epoll-time64.c +new file mode 100644 +index 0000000000000000..2e0236792e460ce0 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/tst-epoll-time64.c +@@ -0,0 +1 @@ ++#include "tst-epoll.c" +diff --git a/sysdeps/unix/sysv/linux/tst-epoll.c b/sysdeps/unix/sysv/linux/tst-epoll.c +new file mode 100644 +index 0000000000000000..3ef6ca9fbd3c5a2b +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/tst-epoll.c +@@ -0,0 +1,211 @@ ++/* Basic tests for Linux epoll_* wrappers. ++ Copyright (C) 2022 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* The test focus on checking if the timeout argument is correctly handled ++ by glibc wrappers. */ ++ ++static void ++handler (int sig) ++{ ++} ++ ++typedef int (*epoll_wait_check_t) (int, struct epoll_event *, int, ++ int, const sigset_t *); ++ ++static void ++test_epoll_basic (epoll_wait_check_t epoll_wait_check) ++{ ++ { ++ sigset_t ss_usr1; ++ sigemptyset (&ss_usr1); ++ sigaddset (&ss_usr1, SIGUSR1); ++ TEST_COMPARE (sigprocmask (SIG_BLOCK, &ss_usr1, NULL), 0); ++ } ++ ++ int fds[2][2]; ++ xpipe (fds[0]); ++ xpipe (fds[1]); ++ ++ sigset_t ss; ++ TEST_COMPARE (sigprocmask (SIG_SETMASK, NULL, &ss), 0); ++ sigdelset (&ss, SIGUSR1); ++ ++ int efd = epoll_create1 (0); ++ TEST_VERIFY_EXIT (efd != -1); ++ ++ struct epoll_event event; ++ ++ event.data.fd = fds[1][0]; ++ event.events = EPOLLIN | EPOLLET; ++ TEST_COMPARE (epoll_ctl (efd, EPOLL_CTL_ADD, fds[1][0], &event), 0); ++ ++ pid_t parent = getpid (); ++ pid_t p = xfork (); ++ if (p == 0) ++ { ++ xclose (fds[0][1]); ++ xclose (fds[1][0]); ++ ++ event.data.fd = fds[0][0]; ++ event.events = EPOLLIN | EPOLLET; ++ TEST_COMPARE (epoll_ctl (efd, EPOLL_CTL_ADD, fds[0][0], &event), 0); ++ ++ int e; ++ do ++ { ++ if (getppid () != parent) ++ FAIL_EXIT1 ("getppid()=%d != parent=%d", getppid(), parent); ++ ++ errno = 0; ++ e = epoll_wait_check (efd, &event, 1, 500, &ss); ++ } ++ while (e == 0); ++ ++ TEST_COMPARE (e, -1); ++ TEST_COMPARE (errno, EINTR); ++ ++ TEMP_FAILURE_RETRY (write (fds[1][1], "foo", 3)); ++ ++ exit (0); ++ } ++ ++ xclose (fds[0][0]); ++ xclose (fds[1][1]); ++ ++ /* Wait some time so child is blocked on the syscall. */ ++ nanosleep (&(struct timespec) {0, 10000000}, NULL); ++ TEST_COMPARE (kill (p, SIGUSR1), 0); ++ ++ int e = epoll_wait_check (efd, &event, 1, 500000000, &ss); ++ TEST_COMPARE (e, 1); ++ TEST_VERIFY (event.events & EPOLLIN); ++ ++ xclose (fds[0][1]); ++ xclose (fds[1][0]); ++ xclose (efd); ++} ++ ++ ++static void ++test_epoll_large_timeout (epoll_wait_check_t epoll_wait_check) ++{ ++ timer_t t = support_create_timer (0, 100000000, true, NULL); ++ ++ int fds[2]; ++ xpipe (fds); ++ ++ fd_set rfds; ++ FD_ZERO (&rfds); ++ FD_SET (fds[0], &rfds); ++ ++ sigset_t ss; ++ TEST_COMPARE (sigprocmask (SIG_SETMASK, NULL, &ss), 0); ++ sigdelset (&ss, SIGALRM); ++ ++ int efd = epoll_create1 (0); ++ TEST_VERIFY_EXIT (efd != -1); ++ ++ struct epoll_event event; ++ event.data.fd = fds[0]; ++ event.events = EPOLLIN | EPOLLET; ++ TEST_COMPARE (epoll_ctl (efd, EPOLL_CTL_ADD, fds[0], &event), 0); ++ ++ int tmo = TYPE_MAXIMUM (int); ++ TEST_COMPARE (epoll_wait_check (efd, &event, 1, tmo, &ss), -1); ++ TEST_VERIFY (errno == EINTR || errno == EOVERFLOW); ++ ++ TEST_COMPARE (epoll_wait_check (efd, &event, 1, -1, &ss), -1); ++ TEST_VERIFY (errno == EINTR || errno == EOVERFLOW); ++ ++ support_delete_timer (t); ++ ++ xclose (fds[0]); ++ xclose (fds[1]); ++ xclose (efd); ++} ++ ++ ++static int ++epoll_wait_check (int epfd, struct epoll_event *ev, int maxev, int tmo, ++ const sigset_t *ss) ++{ ++ sigset_t orig; ++ TEST_COMPARE (sigprocmask (SIG_SETMASK, ss, &orig), 0); ++ int r = epoll_wait (epfd, ev, maxev, tmo); ++ TEST_COMPARE (sigprocmask (SIG_SETMASK, &orig, NULL), 0); ++ return r; ++} ++ ++static int ++epoll_pwait_check (int epfd, struct epoll_event *ev, int maxev, int tmo, ++ const sigset_t *ss) ++{ ++ return epoll_pwait (epfd, ev, maxev, tmo, ss); ++} ++ ++static int ++epoll_pwait2_check (int epfd, struct epoll_event *ev, int maxev, int tmo, ++ const sigset_t *ss) ++{ ++ time_t s = tmo == -1 ? TYPE_MAXIMUM (time_t) : tmo / 1000; ++ long int ns = tmo == -1 ? 0 : (tmo % 1000) * 1000000; ++ return epoll_pwait2 (epfd, ev, maxev, &(struct timespec) { s, ns }, ss); ++} ++ ++static int ++do_test (void) ++{ ++ { ++ struct sigaction sa; ++ sa.sa_handler = handler; ++ sa.sa_flags = 0; ++ sigemptyset (&sa.sa_mask); ++ xsigaction (SIGUSR1, &sa, NULL); ++ ++ sa.sa_handler = SIG_IGN; ++ xsigaction (SIGCHLD, &sa, NULL); ++ } ++ ++ int r = epoll_pwait2 (-1, NULL, 0, NULL, NULL); ++ TEST_COMPARE (r, -1); ++ bool pwait2_supported = errno != ENOSYS; ++ ++ test_epoll_basic (epoll_wait_check); ++ test_epoll_basic (epoll_pwait_check); ++ if (pwait2_supported) ++ test_epoll_basic (epoll_pwait2_check); ++ ++ test_epoll_large_timeout (epoll_wait_check); ++ test_epoll_large_timeout (epoll_pwait_check); ++ if (pwait2_supported) ++ test_epoll_large_timeout (epoll_pwait2_check); ++ ++ return 0; ++} ++ ++#include +diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +index c2f1a8ecc6d04dcf..140e9e8c1ce7dd37 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +@@ -2523,6 +2523,7 @@ GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +index 8b43acf1005f1790..04d13ce27e3747f5 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist ++++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +@@ -2629,3 +2629,4 @@ GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 epoll_pwait2 F diff --git a/SOURCES/glibc-RHEL-93320-15.patch b/SOURCES/glibc-RHEL-93320-15.patch new file mode 100644 index 0000000..2cae01c --- /dev/null +++ b/SOURCES/glibc-RHEL-93320-15.patch @@ -0,0 +1,35 @@ +commit cc5372806a4bf34cb5c9038d1716b5ea6202abd0 +Author: Alejandro Colomar +Date: Wed May 31 22:44:22 2023 +0200 + + Fix invalid use of NULL in epoll_pwait2(2) test + + epoll_pwait2(2)'s second argument should be nonnull. We're going to add + __nonnull to the prototype, so let's fix the test accordingly. We can + use a dummy variable to avoid passing NULL. + + Reported-by: Adhemerval Zanella Netto + Signed-off-by: Alejandro Colomar + +diff --git a/sysdeps/unix/sysv/linux/tst-epoll.c b/sysdeps/unix/sysv/linux/tst-epoll.c +index 3ef6ca9fbd3c5a2b..c31d4793115acc7d 100644 +--- a/sysdeps/unix/sysv/linux/tst-epoll.c ++++ b/sysdeps/unix/sysv/linux/tst-epoll.c +@@ -180,6 +180,8 @@ epoll_pwait2_check (int epfd, struct epoll_event *ev, int maxev, int tmo, + static int + do_test (void) + { ++ struct epoll_event ev; ++ + { + struct sigaction sa; + sa.sa_handler = handler; +@@ -191,7 +193,7 @@ do_test (void) + xsigaction (SIGCHLD, &sa, NULL); + } + +- int r = epoll_pwait2 (-1, NULL, 0, NULL, NULL); ++ int r = epoll_pwait2 (-1, &ev, 0, NULL, NULL); + TEST_COMPARE (r, -1); + bool pwait2_supported = errno != ENOSYS; + diff --git a/SOURCES/glibc-RHEL-93320-16.patch b/SOURCES/glibc-RHEL-93320-16.patch new file mode 100644 index 0000000..3a1d7bb --- /dev/null +++ b/SOURCES/glibc-RHEL-93320-16.patch @@ -0,0 +1,891 @@ +commit 342cc934a3bf74ac618e2318d738f22ac93257ba +Author: Adhemerval Zanella +Date: Mon Jun 14 14:41:31 2021 -0300 + + posix: Add terminal control setting support for posix_spawn + + Currently there is no proper way to set the controlling terminal through + posix_spawn in race free manner [1]. This forces shell implementations + to keep using fork+exec when launching background process groups, + even when using posix_spawn yields better performance. + + This patch adds a new GNU extension so the creating process can + configure the created process terminal group. This is done with a new + flag, POSIX_SPAWN_TCSETPGROUP, along with two new attribute functions: + posix_spawnattr_tcsetpgrp_np, and posix_spawnattr_tcgetpgrp_np. + The function sets a new attribute, spawn-tcgroupfd, that references to + the controlling terminal. + + The controlling terminal is set after the spawn-pgroup attribute, and + uses the spawn-tcgroupfd along with current creating process group + (so it is composable with POSIX_SPAWN_SETPGROUP). + + To create a process and set the controlling terminal, one can use the + following sequence: + + posix_spawnattr_t attr; + posix_spawnattr_init (&attr); + posix_spawnattr_setflags (&attr, POSIX_SPAWN_TCSETPGROUP); + posix_spawnattr_tcsetpgrp_np (&attr, tcfd); + + If the idea is also to create a new process groups: + + posix_spawnattr_t attr; + posix_spawnattr_init (&attr); + posix_spawnattr_setflags (&attr, POSIX_SPAWN_TCSETPGROUP + | POSIX_SPAWN_SETPGROUP); + posix_spawnattr_tcsetpgrp_np (&attr, tcfd); + posix_spawnattr_setpgroup (&attr, 0); + + The controlling terminal file descriptor is ignored if the new flag is + not set. + + This interface is slight different than the one provided by QNX [2], + which only provides the POSIX_SPAWN_TCSETPGROUP flag. The QNX + documentation does not specify how the controlling terminal is obtained + nor how it iteracts with POSIX_SPAWN_SETPGROUP. Since a glibc + implementation is library based, it is more straightforward and avoid + requires additional file descriptor operations to request the caller + to setup the controlling terminal file descriptor (and it also allows + a bit less error handling by posix_spawn). + + Checked on x86_64-linux-gnu and i686-linux-gnu. + + [1] https://github.com/ksh93/ksh/issues/79 + [2] https://www.qnx.com/developers/docs/7.0.0/index.html#com.qnx.doc.neutrino.lib_ref/topic/p/posix_spawn.html + + Reviewed-by: Carlos O'Donell + Tested-by: Carlos O'Donell + +Conflicts: + posix/Makefile + Updated for layout change + sysdeps/unix/sysv/linux/or1k/libc.abilist + Omitted + +diff --git a/include/unistd.h b/include/unistd.h +index 5824485629793ccb..a5f6a5ca673a07cf 100644 +--- a/include/unistd.h ++++ b/include/unistd.h +@@ -173,6 +173,8 @@ extern int __truncate (const char *path, __off_t __length); + extern void *__sbrk (intptr_t __delta); + libc_hidden_proto (__sbrk) + ++extern int __tcsetpgrp (int fd, __pid_t pgrp); ++libc_hidden_proto (__tcsetpgrp) + + /* This variable is set nonzero at startup if the process's effective + IDs differ from its real IDs, or it is otherwise indicated that +diff --git a/posix/Makefile b/posix/Makefile +index 4c32a088a73723c7..8cd6963029585e3d 100644 +--- a/posix/Makefile ++++ b/posix/Makefile +@@ -64,6 +64,7 @@ routines := \ + spawnattr_getpgroup spawnattr_setpgroup spawn spawnp spawni \ + spawnattr_getsigmask spawnattr_getschedpolicy spawnattr_getschedparam \ + spawnattr_setsigmask spawnattr_setschedpolicy spawnattr_setschedparam \ ++ spawnattr_tcgetpgrp spawnattr_tcsetpgrp \ + posix_madvise \ + get_child_max sched_cpucount sched_cpualloc sched_cpufree \ + streams-compat \ +@@ -111,7 +112,7 @@ tests := test-errno tstgetopt testfnm runtests runptests \ + tst-sched_getaffinity \ + tst-cpuset-dynamic \ + tst-cpuset-static \ +- ++ tst-spawn6 + + # Test for the glob symbol version that was replaced in glibc 2.27. + ifeq ($(have-GLIBC_2.26)$(build-shared),yesyes) +@@ -292,6 +293,7 @@ tst-execvpe5-ARGS = -- $(host-test-program-cmd) + tst-spawn-ARGS = -- $(host-test-program-cmd) + tst-spawn-static-ARGS = $(tst-spawn-ARGS) + tst-spawn5-ARGS = -- $(host-test-program-cmd) ++tst-spawn6-ARGS = -- $(host-test-program-cmd) + tst-dir-ARGS = `pwd` `cd $(common-objdir)/$(subdir); pwd` `cd $(common-objdir); pwd` $(objpfx)tst-dir + tst-chmod-ARGS = $(objdir) + tst-vfork3-ARGS = --test-dir=$(objpfx) +diff --git a/posix/Versions b/posix/Versions +index a78792135fb6a707..e4f4f649b0f21e85 100644 +--- a/posix/Versions ++++ b/posix/Versions +@@ -156,6 +156,10 @@ libc { + execveat; + posix_spawn_file_actions_addclosefrom_np; + } ++ GLIBC_2.35 { ++ posix_spawnattr_tcgetpgrp_np; ++ posix_spawnattr_tcsetpgrp_np; ++ } + GLIBC_PRIVATE { + __libc_fork; __libc_pread; __libc_pwrite; + __nanosleep_nocancel; __pause_nocancel; +diff --git a/posix/spawn.h b/posix/spawn.h +index 990d8a6ba28855ae..742d4cb6257907b5 100644 +--- a/posix/spawn.h ++++ b/posix/spawn.h +@@ -34,7 +34,8 @@ typedef struct + sigset_t __ss; + struct sched_param __sp; + int __policy; +- int __pad[16]; ++ int __ctty_fd; ++ int __pad[15]; + } posix_spawnattr_t; + + +@@ -59,6 +60,7 @@ typedef struct + #ifdef __USE_GNU + # define POSIX_SPAWN_USEVFORK 0x40 + # define POSIX_SPAWN_SETSID 0x80 ++# define POSIX_SPAWN_TCSETPGROUP 0x100 + #endif + + +@@ -166,6 +168,18 @@ extern int posix_spawnattr_setschedparam (posix_spawnattr_t *__restrict __attr, + __restrict __schedparam) + __THROW __nonnull ((1, 2)); + ++#ifdef __USE_GNU ++/* Make the spawned process the foreground process group on the terminal ++ associated with FD (which must be a controlling terminal, and still be ++ associated with its session). */ ++extern int posix_spawnattr_tcsetpgrp_np (posix_spawnattr_t *__attr, int fd) ++ __THROW __nonnull ((1)); ++ ++/* Return the associated terminal FD in the attribute structure. */ ++extern int posix_spawnattr_tcgetpgrp_np (const posix_spawnattr_t * ++ __restrict __attr, int *fd) ++ __THROW __nonnull ((1, 2)); ++#endif + + /* Initialize data structure for file attribute for `spawn' call. */ + extern int posix_spawn_file_actions_init (posix_spawn_file_actions_t * +diff --git a/posix/spawnattr_setflags.c b/posix/spawnattr_setflags.c +index 2b033a50fc08180f..95f521d04d71aca2 100644 +--- a/posix/spawnattr_setflags.c ++++ b/posix/spawnattr_setflags.c +@@ -26,7 +26,8 @@ + | POSIX_SPAWN_SETSCHEDPARAM \ + | POSIX_SPAWN_SETSCHEDULER \ + | POSIX_SPAWN_SETSID \ +- | POSIX_SPAWN_USEVFORK) ++ | POSIX_SPAWN_USEVFORK \ ++ | POSIX_SPAWN_TCSETPGROUP) + + /* Store flags in the attribute structure. */ + int +diff --git a/posix/spawnattr_tcgetpgrp.c b/posix/spawnattr_tcgetpgrp.c +new file mode 100644 +index 0000000000000000..8db33e447498ce7d +--- /dev/null ++++ b/posix/spawnattr_tcgetpgrp.c +@@ -0,0 +1,26 @@ ++/* Get the controlling terminal option. ++ Copyright (C) 2022 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++int ++posix_spawnattr_tcgetpgrp_np (const posix_spawnattr_t *attr, int *fd) ++{ ++ *fd = attr->__ctty_fd; ++ return 0; ++} +diff --git a/posix/spawnattr_tcsetpgrp.c b/posix/spawnattr_tcsetpgrp.c +new file mode 100644 +index 0000000000000000..c3b2ea2718e2a1f3 +--- /dev/null ++++ b/posix/spawnattr_tcsetpgrp.c +@@ -0,0 +1,26 @@ ++/* Set the controlling terminal option. ++ Copyright (C) 2022 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++int ++posix_spawnattr_tcsetpgrp_np (posix_spawnattr_t *attr, int fd) ++{ ++ attr->__ctty_fd = fd; ++ return 0; ++} +diff --git a/posix/tst-spawn6.c b/posix/tst-spawn6.c +new file mode 100644 +index 0000000000000000..5f95bd1938a69552 +--- /dev/null ++++ b/posix/tst-spawn6.c +@@ -0,0 +1,175 @@ ++/* Check posix_spawn set controlling terminal extension. ++ Copyright (C) 2022 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int ++handle_restart (const char *argv1) ++{ ++ int fd = xopen (_PATH_TTY, O_RDONLY, 0600); ++ ++ /* If process group is not changed (POSIX_SPAWN_SETPGROUP), then check ++ the creating process one, otherwise check against the process group ++ itself. */ ++ pid_t pgrp; ++ if (strcmp (argv1, "setgrpr") != 0) ++ TEST_COMPARE (sscanf (argv1, "%d", &pgrp), 1); ++ else ++ { ++ pgrp = getpgrp (); ++ /* Check if a new process group was actually created. */ ++ pid_t ppid = getppid (); ++ pid_t pgid = getpgid (ppid); ++ TEST_VERIFY (pgid != pgrp); ++ } ++ ++ TEST_COMPARE (tcgetpgrp (fd), pgrp); ++ ++ xclose (fd); ++ return 0; ++} ++ ++static int restart; ++#define CMDLINE_OPTIONS \ ++ { "restart", no_argument, &restart, 1 }, ++ ++static void ++run_subprogram (int argc, char *argv[], const posix_spawnattr_t *attr, ++ int exp_err) ++{ ++ short int flags; ++ TEST_COMPARE (posix_spawnattr_getflags (attr, &flags), 0); ++ bool setpgrp = flags & POSIX_SPAWN_SETPGROUP; ++ ++ char *spargv[9]; ++ char pgrp[INT_STRLEN_BOUND (pid_t)]; ++ ++ int i = 0; ++ for (; i < argc - 1; i++) ++ spargv[i] = argv[i + 1]; ++ spargv[i++] = (char *) "--direct"; ++ spargv[i++] = (char *) "--restart"; ++ if (setpgrp) ++ spargv[i++] = (char *) "setgrpr"; ++ else ++ { ++ snprintf (pgrp, sizeof pgrp, "%d", getpgrp ()); ++ spargv[i++] = pgrp; ++ } ++ spargv[i] = NULL; ++ TEST_VERIFY_EXIT (i < array_length (spargv)); ++ ++ pid_t pid; ++ TEST_COMPARE (posix_spawn (&pid, argv[1], NULL, attr, spargv, environ), ++ exp_err); ++ if (exp_err != 0) ++ return; ++ ++ int status; ++ TEST_COMPARE (xwaitpid (pid, &status, WUNTRACED), pid); ++ TEST_VERIFY (WIFEXITED (status)); ++ TEST_VERIFY (!WIFSTOPPED (status)); ++ TEST_VERIFY (!WIFSIGNALED (status)); ++ TEST_COMPARE (WEXITSTATUS (status), 0); ++} ++ ++static int ++do_test (int argc, char *argv[]) ++{ ++ /* We must have either: ++ - four parameters left if called initially: ++ + path to ld.so optional ++ + "--library-path" optional ++ + the library path optional ++ + the application name ++ - six parameters left if called through re-execution: ++ + --setgrpr optional ++ */ ++ ++ if (restart) ++ return handle_restart (argv[1]); ++ ++ int tcfd = xopen (_PATH_TTY, O_RDONLY, 0600); ++ ++ /* Check getters and setters. */ ++ { ++ posix_spawnattr_t attr; ++ TEST_COMPARE (posix_spawnattr_init (&attr), 0); ++ TEST_COMPARE (posix_spawnattr_tcsetpgrp_np (&attr, tcfd), 0); ++ ++ int fd; ++ TEST_COMPARE (posix_spawnattr_tcgetpgrp_np (&attr, &fd), 0); ++ TEST_COMPARE (tcfd, fd); ++ } ++ ++ /* Check setting the controlling terminal without changing the group. */ ++ { ++ posix_spawnattr_t attr; ++ TEST_COMPARE (posix_spawnattr_init (&attr), 0); ++ TEST_COMPARE (posix_spawnattr_setflags (&attr, POSIX_SPAWN_TCSETPGROUP), ++ 0); ++ TEST_COMPARE (posix_spawnattr_tcsetpgrp_np (&attr, tcfd), 0); ++ ++ run_subprogram (argc, argv, &attr, 0); ++ } ++ ++ /* Check setting both the controlling terminal and the create a new process ++ group. */ ++ { ++ posix_spawnattr_t attr; ++ TEST_COMPARE (posix_spawnattr_init (&attr), 0); ++ TEST_COMPARE (posix_spawnattr_setflags (&attr, POSIX_SPAWN_TCSETPGROUP ++ | POSIX_SPAWN_SETPGROUP), ++ 0); ++ TEST_COMPARE (posix_spawnattr_setpgroup (&attr, 0), 0); ++ TEST_COMPARE (posix_spawnattr_tcsetpgrp_np (&attr, tcfd), 0); ++ ++ run_subprogram (argc, argv, &attr, 0); ++ } ++ ++ /* Trying to set the controlling terminal after a setsid incurs in a ENOTTY ++ from tcsetpgrp. */ ++ { ++ posix_spawnattr_t attr; ++ TEST_COMPARE (posix_spawnattr_init (&attr), 0); ++ TEST_COMPARE (posix_spawnattr_setflags (&attr, POSIX_SPAWN_TCSETPGROUP ++ | POSIX_SPAWN_SETSID), 0); ++ TEST_COMPARE (posix_spawnattr_tcsetpgrp_np (&attr, tcfd), 0); ++ ++ run_subprogram (argc, argv, &attr, ENOTTY); ++ } ++ ++ xclose (tcfd); ++ ++ return 0; ++} ++ ++#define TEST_FUNCTION_ARGV do_test ++#include +diff --git a/sysdeps/mach/hurd/spawni.c b/sysdeps/mach/hurd/spawni.c +index 060e389bbbd2d1de..4d71181643c19b0d 100644 +--- a/sysdeps/mach/hurd/spawni.c ++++ b/sysdeps/mach/hurd/spawni.c +@@ -390,6 +390,19 @@ retry: + if (!err && (flags & POSIX_SPAWN_SETPGROUP) != 0) + err = __proc_setpgrp (proc, new_pid, attrp->__pgrp); + ++ /* Set the controlling terminal. */ ++ if (!err && (flags & POSIX_SPAWN_TCSETPGROUP) != 0) ++ { ++ pid_t pgrp; ++ /* Check if it is possible to avoid an extra syscall. */ ++ if ((attrp->__flags & POSIX_SPAWN_SETPGROUP) != 0 && attrp->__pgrp != 0) ++ pgrp = attrp->__pgrp; ++ else ++ err = __proc_getpgrp (proc, new_pid, &pgrp); ++ if (!err) ++ err = __tcsetpgrp (attrp->__ctty_fd, pgrp); ++ } ++ + /* Set the effective user and group IDs. */ + if (!err && (flags & POSIX_SPAWN_RESETIDS) != 0) + { +diff --git a/sysdeps/unix/bsd/tcsetpgrp.c b/sysdeps/unix/bsd/tcsetpgrp.c +index 98c88db3ae879a17..3930b4f674172195 100644 +--- a/sysdeps/unix/bsd/tcsetpgrp.c ++++ b/sysdeps/unix/bsd/tcsetpgrp.c +@@ -22,7 +22,9 @@ + + /* Set the foreground process group ID of FD set PGRP_ID. */ + int +-tcsetpgrp (int fd, pid_t pgrp_id) ++__tcsetpgrp (int fd, pid_t pgrp_id) + { + return __ioctl (fd, TIOCSPGRP, &pgrp_id); + } ++weak_alias (__tcsetpgrp, tcsetpgrp) ++libc_hidden_def (__tcsetpgrp) +diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist +index c1a5ee90e6d4c63e..9dd574d9e2a7b541 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist +@@ -2615,3 +2615,5 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F +diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist +index 1a30d0666bb76f41..f66704877eb43052 100644 +--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist ++++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist +@@ -2712,6 +2712,8 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist +index e5dfdab357c72440..97aa3da1ad15a459 100644 +--- a/sysdeps/unix/sysv/linux/arc/libc.abilist ++++ b/sysdeps/unix/sysv/linux/arc/libc.abilist +@@ -2376,3 +2376,5 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F +diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist +index 4d3fd872788ba1f0..18f4364856980df6 100644 +--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist ++++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist +@@ -495,6 +495,8 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F + GLIBC_2.4 _Exit F + GLIBC_2.4 _IO_2_1_stderr_ D 0xa0 + GLIBC_2.4 _IO_2_1_stdin_ D 0xa0 +diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist +index 009dc9da14ee5eed..2c12c020b1f2f320 100644 +--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist ++++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist +@@ -492,6 +492,8 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F + GLIBC_2.4 _Exit F + GLIBC_2.4 _IO_2_1_stderr_ D 0xa0 + GLIBC_2.4 _IO_2_1_stdin_ D 0xa0 +diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist +index df8da506cde36eeb..7f28516feb9b3ce0 100644 +--- a/sysdeps/unix/sysv/linux/csky/libc.abilist ++++ b/sysdeps/unix/sysv/linux/csky/libc.abilist +@@ -2651,3 +2651,5 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F +diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist +index 7ea1b017d05cc1fb..9776f20763a46963 100644 +--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist ++++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist +@@ -2600,6 +2600,8 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist +index 99ccf354b3d1a762..96b50d0a9bd68a19 100644 +--- a/sysdeps/unix/sysv/linux/i386/libc.abilist ++++ b/sysdeps/unix/sysv/linux/i386/libc.abilist +@@ -2784,6 +2784,8 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist +index 201542d1e76daa60..9b2eebfbf1b91f06 100644 +--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist +@@ -2550,6 +2550,8 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +index 32fd72a78df65bd8..71cd35488e3b60ab 100644 +--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist ++++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +@@ -496,6 +496,8 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F + GLIBC_2.4 _Exit F + GLIBC_2.4 _IO_2_1_stderr_ D 0x98 + GLIBC_2.4 _IO_2_1_stdin_ D 0x98 +diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +index d26f0ae6c2475984..ced01a501dd816a6 100644 +--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist ++++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +@@ -2727,6 +2727,8 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist +index 520ca0882d8d720b..5406c01f1de62803 100644 +--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist ++++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist +@@ -2700,3 +2700,5 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F +diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist +index 9162c3139661b2c9..53b8ade4c3c16c9f 100644 +--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist ++++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist +@@ -2697,3 +2697,5 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F +diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +index 656fdbdcaa70dad6..919973ea46866c8a 100644 +--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist ++++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +@@ -2692,6 +2692,8 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +index 5f0b90d318030622..cf5a8dc1208d1f45 100644 +--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist ++++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +@@ -2690,6 +2690,8 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +index 9f4891fc08d71521..003c3bd0a6bb0595 100644 +--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist ++++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +@@ -2698,6 +2698,8 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +index f1b0644bc33ba065..73629c2f21aed4a3 100644 +--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +@@ -2601,6 +2601,8 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist +index 1cf88e38b943eeb9..9e8645ebc0a996a7 100644 +--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist ++++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist +@@ -2739,3 +2739,5 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +index 9692335d106f9400..3d1ba9887c327899 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +@@ -2754,6 +2754,8 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +index 7da0ed59f2ccb080..d979a3b93b98cc5a 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +@@ -2787,6 +2787,8 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist +index 72cf6851988a7b91..44688e52cf99e9fc 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist +@@ -2509,6 +2509,8 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist +index ee7f67f4d09ba7ae..40682711eb73fb12 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist +@@ -2811,3 +2811,5 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F +diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist +index b8c0854508ec8714..e239d626b32e03ba 100644 +--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist ++++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist +@@ -2378,3 +2378,5 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F +diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist +index 90f331fc0bc06278..ab0c4e70927d3dc0 100644 +--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist +@@ -2578,3 +2578,5 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F +diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +index ded5e3c0ce4da82c..74e3a4651f215344 100644 +--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist ++++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +@@ -2752,6 +2752,8 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +index 4b262992540d18d6..e5553f06b205f0cf 100644 +--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +@@ -2546,6 +2546,8 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist +index 8bfd716fd238a35b..9662041cd4c5df83 100644 +--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist ++++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist +@@ -2607,6 +2607,8 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist +index 47fd204d84ea2432..bf90e924a671f1c1 100644 +--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist ++++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist +@@ -2604,6 +2604,8 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +index 9b82f15109ca4b1a..ddb0d0621f80426b 100644 +--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist ++++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +@@ -2747,6 +2747,8 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +index 94caf012a7e9cada..ca14224cb7d5740d 100644 +--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +@@ -2573,6 +2573,8 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/spawni.c b/sysdeps/unix/sysv/linux/spawni.c +index 6b0bade4d41eafd5..601850638d538ae0 100644 +--- a/sysdeps/unix/sysv/linux/spawni.c ++++ b/sysdeps/unix/sysv/linux/spawni.c +@@ -164,6 +164,17 @@ __spawni_child (void *arguments) + && __setpgid (0, attr->__pgrp) != 0) + goto fail; + ++ /* Set the controlling terminal. */ ++ if ((attr->__flags & POSIX_SPAWN_TCSETPGROUP) != 0) ++ { ++ /* Check if it is possible to avoid an extra syscall. */ ++ pid_t pgrp = (attr->__flags & POSIX_SPAWN_SETPGROUP) != 0 ++ && attr->__pgrp != 0 ++ ? attr->__pgrp : __getpgid (0); ++ if (__tcsetpgrp (attr->__ctty_fd, pgrp) != 0) ++ goto fail; ++ } ++ + /* Set the effective user and group IDs. */ + if ((attr->__flags & POSIX_SPAWN_RESETIDS) != 0 + && (local_seteuid (__getuid ()) != 0 +diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +index 140e9e8c1ce7dd37..661d928adf2ac13c 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +@@ -2524,6 +2524,8 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +index 04d13ce27e3747f5..bb8058dfa4144bbc 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist ++++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +@@ -2630,3 +2630,5 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F ++GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F ++GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F +diff --git a/termios/tcsetpgrp.c b/termios/tcsetpgrp.c +index 05630cd04cb5f83a..9bd94a70bc9e879f 100644 +--- a/termios/tcsetpgrp.c ++++ b/termios/tcsetpgrp.c +@@ -21,7 +21,7 @@ + + /* Set the foreground process group ID of FD set PGRP_ID. */ + int +-tcsetpgrp (int fd, pid_t pgrp_id) ++__tcsetpgrp (int fd, pid_t pgrp_id) + { + if (fd < 0) + { +@@ -32,6 +32,7 @@ tcsetpgrp (int fd, pid_t pgrp_id) + __set_errno (ENOSYS); + return -1; + } +- ++weak_alias (__tcsetpgrp, tcsetpgrp); ++libc_hidden_def (__tcsetpgrp) + + stub_warning (tcsetpgrp) diff --git a/SOURCES/glibc-RHEL-93320-17.patch b/SOURCES/glibc-RHEL-93320-17.patch new file mode 100644 index 0000000..30116b3 --- /dev/null +++ b/SOURCES/glibc-RHEL-93320-17.patch @@ -0,0 +1,963 @@ +commit 6289d28d3c4e56f34830cfb011c31271ef850418 +Author: Adhemerval Zanella +Date: Thu Jan 27 10:11:30 2022 -0300 + + posix: Replace posix_spawnattr_tc{get,set}pgrp_np with posix_spawn_file_actions_addtcsetpgrp_np + + The posix_spawnattr_tcsetpgrp_np works on a file descriptor (the + controlling terminal), so it would make more sense to actually fit + it on the file actions API. + + Also, POSIX_SPAWN_TCSETPGROUP is not really required since it is + implicit by the presence of tcsetpgrp file action. + + The posix/tst-spawn6.c is also fixed when TTY can is not present. + + Checked on x86_64-linux-gnu and i686-linux-gnu. + + Reviewed-by: Carlos O'Donell + Tested-by: Carlos O'Donell + +Conflicts: + sysdeps/mach/hurd/i386/libc.abilist + Updated for minor context changes + sysdeps/unix/sysv/linux/or1k/libc.abilist + Omitted + +diff --git a/posix/Makefile b/posix/Makefile +index 8cd6963029585e3d..7b70b4a736bc1215 100644 +--- a/posix/Makefile ++++ b/posix/Makefile +@@ -58,13 +58,13 @@ routines := \ + spawn_faction_addopen spawn_faction_adddup2 spawn_valid_fd \ + spawn_faction_addchdir spawn_faction_addfchdir \ + spawn_faction_addclosefrom \ ++ spawn_faction_addtcsetpgrp_np \ + spawnattr_init spawnattr_destroy \ + spawnattr_getdefault spawnattr_setdefault \ + spawnattr_getflags spawnattr_setflags \ + spawnattr_getpgroup spawnattr_setpgroup spawn spawnp spawni \ + spawnattr_getsigmask spawnattr_getschedpolicy spawnattr_getschedparam \ + spawnattr_setsigmask spawnattr_setschedpolicy spawnattr_setschedparam \ +- spawnattr_tcgetpgrp spawnattr_tcsetpgrp \ + posix_madvise \ + get_child_max sched_cpucount sched_cpualloc sched_cpufree \ + streams-compat \ +diff --git a/posix/Versions b/posix/Versions +index e4f4f649b0f21e85..3753810864c8ba97 100644 +--- a/posix/Versions ++++ b/posix/Versions +@@ -157,8 +157,7 @@ libc { + posix_spawn_file_actions_addclosefrom_np; + } + GLIBC_2.35 { +- posix_spawnattr_tcgetpgrp_np; +- posix_spawnattr_tcsetpgrp_np; ++ posix_spawn_file_actions_addtcsetpgrp_np; + } + GLIBC_PRIVATE { + __libc_fork; __libc_pread; __libc_pwrite; +diff --git a/posix/spawn.h b/posix/spawn.h +index 742d4cb6257907b5..7cf1a5b628480404 100644 +--- a/posix/spawn.h ++++ b/posix/spawn.h +@@ -34,8 +34,7 @@ typedef struct + sigset_t __ss; + struct sched_param __sp; + int __policy; +- int __ctty_fd; +- int __pad[15]; ++ int __pad[16]; + } posix_spawnattr_t; + + +@@ -60,7 +59,6 @@ typedef struct + #ifdef __USE_GNU + # define POSIX_SPAWN_USEVFORK 0x40 + # define POSIX_SPAWN_SETSID 0x80 +-# define POSIX_SPAWN_TCSETPGROUP 0x100 + #endif + + +@@ -168,19 +166,6 @@ extern int posix_spawnattr_setschedparam (posix_spawnattr_t *__restrict __attr, + __restrict __schedparam) + __THROW __nonnull ((1, 2)); + +-#ifdef __USE_GNU +-/* Make the spawned process the foreground process group on the terminal +- associated with FD (which must be a controlling terminal, and still be +- associated with its session). */ +-extern int posix_spawnattr_tcsetpgrp_np (posix_spawnattr_t *__attr, int fd) +- __THROW __nonnull ((1)); +- +-/* Return the associated terminal FD in the attribute structure. */ +-extern int posix_spawnattr_tcgetpgrp_np (const posix_spawnattr_t * +- __restrict __attr, int *fd) +- __THROW __nonnull ((1, 2)); +-#endif +- + /* Initialize data structure for file attribute for `spawn' call. */ + extern int posix_spawn_file_actions_init (posix_spawn_file_actions_t * + __file_actions) +@@ -235,6 +220,13 @@ posix_spawn_file_actions_addclosefrom_np (posix_spawn_file_actions_t *, + int __from) + __THROW __nonnull ((1)); + ++/* Add an action to set the process group of the forground process group ++ associated with the terminal TCFD. */ ++extern int ++posix_spawn_file_actions_addtcsetpgrp_np (posix_spawn_file_actions_t *, ++ int __tcfd) ++ __THROW __nonnull ((1)); ++ + #endif + + __END_DECLS +diff --git a/posix/spawn_faction_addtcsetpgrp_np.c b/posix/spawn_faction_addtcsetpgrp_np.c +new file mode 100644 +index 0000000000000000..86f882cd84128f99 +--- /dev/null ++++ b/posix/spawn_faction_addtcsetpgrp_np.c +@@ -0,0 +1,50 @@ ++/* Add tcsetpgrp to the file action list for posix_spawn. ++ Copyright (C) 2022 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++int ++__posix_spawn_file_actions_addtcsetpgrp_np (posix_spawn_file_actions_t ++ *file_actions, int tcfd) ++{ ++ struct __spawn_action *rec; ++ ++ if (!__spawn_valid_fd (tcfd)) ++ return EBADF; ++ ++ /* Allocate more memory if needed. */ ++ if (file_actions->__used == file_actions->__allocated ++ && __posix_spawn_file_actions_realloc (file_actions) != 0) ++ /* This can only mean we ran out of memory. */ ++ return ENOMEM; ++ ++ /* Add the new value. */ ++ rec = &file_actions->__actions[file_actions->__used]; ++ rec->tag = spawn_do_tcsetpgrp; ++ rec->action.setpgrp_action.fd = tcfd; ++ ++ /* Account for the new entry. */ ++ ++file_actions->__used; ++ ++ return 0; ++} ++weak_alias (__posix_spawn_file_actions_addtcsetpgrp_np, ++ posix_spawn_file_actions_addtcsetpgrp_np) +diff --git a/posix/spawn_faction_destroy.c b/posix/spawn_faction_destroy.c +index 1a01b8e80ec58c85..6eddfbe91705c9cb 100644 +--- a/posix/spawn_faction_destroy.c ++++ b/posix/spawn_faction_destroy.c +@@ -40,6 +40,7 @@ __posix_spawn_file_actions_destroy (posix_spawn_file_actions_t *file_actions) + case spawn_do_dup2: + case spawn_do_fchdir: + case spawn_do_closefrom: ++ case spawn_do_tcsetpgrp: + /* No cleanup required. */ + break; + } +diff --git a/posix/spawn_int.h b/posix/spawn_int.h +index 81d43f2fa304e08b..a80fd46c1fe899cb 100644 +--- a/posix/spawn_int.h ++++ b/posix/spawn_int.h +@@ -34,6 +34,7 @@ struct __spawn_action + spawn_do_chdir, + spawn_do_fchdir, + spawn_do_closefrom, ++ spawn_do_tcsetpgrp + } tag; + + union +@@ -66,6 +67,10 @@ struct __spawn_action + { + int from; + } closefrom_action; ++ struct ++ { ++ int fd; ++ } setpgrp_action; + } action; + }; + +diff --git a/posix/spawnattr_setflags.c b/posix/spawnattr_setflags.c +index 95f521d04d71aca2..2b033a50fc08180f 100644 +--- a/posix/spawnattr_setflags.c ++++ b/posix/spawnattr_setflags.c +@@ -26,8 +26,7 @@ + | POSIX_SPAWN_SETSCHEDPARAM \ + | POSIX_SPAWN_SETSCHEDULER \ + | POSIX_SPAWN_SETSID \ +- | POSIX_SPAWN_USEVFORK \ +- | POSIX_SPAWN_TCSETPGROUP) ++ | POSIX_SPAWN_USEVFORK) + + /* Store flags in the attribute structure. */ + int +diff --git a/posix/spawnattr_tcgetpgrp.c b/posix/spawnattr_tcgetpgrp.c +deleted file mode 100644 +index 8db33e447498ce7d..0000000000000000 +--- a/posix/spawnattr_tcgetpgrp.c ++++ /dev/null +@@ -1,26 +0,0 @@ +-/* Get the controlling terminal option. +- Copyright (C) 2022 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#include +- +-int +-posix_spawnattr_tcgetpgrp_np (const posix_spawnattr_t *attr, int *fd) +-{ +- *fd = attr->__ctty_fd; +- return 0; +-} +diff --git a/posix/spawnattr_tcsetpgrp.c b/posix/spawnattr_tcsetpgrp.c +deleted file mode 100644 +index c3b2ea2718e2a1f3..0000000000000000 +--- a/posix/spawnattr_tcsetpgrp.c ++++ /dev/null +@@ -1,26 +0,0 @@ +-/* Set the controlling terminal option. +- Copyright (C) 2022 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#include +- +-int +-posix_spawnattr_tcsetpgrp_np (posix_spawnattr_t *attr, int fd) +-{ +- attr->__ctty_fd = fd; +- return 0; +-} +diff --git a/posix/tst-spawn6.c b/posix/tst-spawn6.c +index 5f95bd1938a69552..911e90a461bfc401 100644 +--- a/posix/tst-spawn6.c ++++ b/posix/tst-spawn6.c +@@ -29,12 +29,11 @@ + #include + #include + #include ++#include + + static int +-handle_restart (const char *argv1) ++handle_restart (const char *argv1, const char *argv2) + { +- int fd = xopen (_PATH_TTY, O_RDONLY, 0600); +- + /* If process group is not changed (POSIX_SPAWN_SETPGROUP), then check + the creating process one, otherwise check against the process group + itself. */ +@@ -50,9 +49,20 @@ handle_restart (const char *argv1) + TEST_VERIFY (pgid != pgrp); + } + +- TEST_COMPARE (tcgetpgrp (fd), pgrp); ++ char *endptr; ++ long int tcfd = strtol (argv2, &endptr, 10); ++ if (*endptr != '\0' || tcfd > INT_MAX) ++ FAIL_EXIT1 ("invalid file descriptor name: %s", argv2); ++ if (tcfd != -1) ++ { ++ TEST_COMPARE (fcntl (tcfd, F_GETFD), -1); ++ TEST_COMPARE (errno, EBADF); ++ } + ++ int fd = xopen (_PATH_TTY, O_RDONLY, 0600); ++ TEST_COMPARE (tcgetpgrp (fd), pgrp); + xclose (fd); ++ + return 0; + } + +@@ -62,6 +72,7 @@ static int restart; + + static void + run_subprogram (int argc, char *argv[], const posix_spawnattr_t *attr, ++ const posix_spawn_file_actions_t *actions, int tcfd, + int exp_err) + { + short int flags; +@@ -69,7 +80,9 @@ run_subprogram (int argc, char *argv[], const posix_spawnattr_t *attr, + bool setpgrp = flags & POSIX_SPAWN_SETPGROUP; + + char *spargv[9]; ++ TEST_VERIFY_EXIT (((argc - 1) + 4) < array_length (spargv)); + char pgrp[INT_STRLEN_BOUND (pid_t)]; ++ char tcfdstr[INT_STRLEN_BOUND (int)]; + + int i = 0; + for (; i < argc - 1; i++) +@@ -83,11 +96,12 @@ run_subprogram (int argc, char *argv[], const posix_spawnattr_t *attr, + snprintf (pgrp, sizeof pgrp, "%d", getpgrp ()); + spargv[i++] = pgrp; + } ++ snprintf (tcfdstr, sizeof tcfdstr, "%d", tcfd); ++ spargv[i++] = tcfdstr; + spargv[i] = NULL; +- TEST_VERIFY_EXIT (i < array_length (spargv)); + + pid_t pid; +- TEST_COMPARE (posix_spawn (&pid, argv[1], NULL, attr, spargv, environ), ++ TEST_COMPARE (posix_spawn (&pid, argv[1], actions, attr, spargv, environ), + exp_err); + if (exp_err != 0) + return; +@@ -114,44 +128,55 @@ do_test (int argc, char *argv[]) + */ + + if (restart) +- return handle_restart (argv[1]); ++ return handle_restart (argv[1], argv[2]); + +- int tcfd = xopen (_PATH_TTY, O_RDONLY, 0600); ++ int tcfd = open64 (_PATH_TTY, O_RDONLY, 0600); ++ if (tcfd == -1) ++ { ++ if (errno == ENXIO) ++ FAIL_UNSUPPORTED ("terminal not available, skipping test"); ++ FAIL_EXIT1 ("open64 (\"%s\", 0x%x, 0600): %m", _PATH_TTY, O_RDONLY); ++ } + +- /* Check getters and setters. */ ++ /* Check setting the controlling terminal without changing the group. */ + { + posix_spawnattr_t attr; + TEST_COMPARE (posix_spawnattr_init (&attr), 0); +- TEST_COMPARE (posix_spawnattr_tcsetpgrp_np (&attr, tcfd), 0); ++ posix_spawn_file_actions_t actions; ++ TEST_COMPARE (posix_spawn_file_actions_init (&actions), 0); ++ TEST_COMPARE (posix_spawn_file_actions_addtcsetpgrp_np (&actions, tcfd), ++ 0); + +- int fd; +- TEST_COMPARE (posix_spawnattr_tcgetpgrp_np (&attr, &fd), 0); +- TEST_COMPARE (tcfd, fd); ++ run_subprogram (argc, argv, &attr, &actions, -1, 0); + } + +- /* Check setting the controlling terminal without changing the group. */ ++ /* Check setting both the controlling terminal and the create a new process ++ group. */ + { + posix_spawnattr_t attr; + TEST_COMPARE (posix_spawnattr_init (&attr), 0); +- TEST_COMPARE (posix_spawnattr_setflags (&attr, POSIX_SPAWN_TCSETPGROUP), ++ TEST_COMPARE (posix_spawnattr_setflags (&attr, POSIX_SPAWN_SETPGROUP), 0); ++ posix_spawn_file_actions_t actions; ++ TEST_COMPARE (posix_spawn_file_actions_init (&actions), 0); ++ TEST_COMPARE (posix_spawn_file_actions_addtcsetpgrp_np (&actions, tcfd), + 0); +- TEST_COMPARE (posix_spawnattr_tcsetpgrp_np (&attr, tcfd), 0); + +- run_subprogram (argc, argv, &attr, 0); ++ run_subprogram (argc, argv, &attr, &actions, -1, 0); + } + +- /* Check setting both the controlling terminal and the create a new process +- group. */ ++ /* Same as before, but check if the addclose file actions closes the terminal ++ file descriptor. */ + { + posix_spawnattr_t attr; + TEST_COMPARE (posix_spawnattr_init (&attr), 0); +- TEST_COMPARE (posix_spawnattr_setflags (&attr, POSIX_SPAWN_TCSETPGROUP +- | POSIX_SPAWN_SETPGROUP), ++ TEST_COMPARE (posix_spawnattr_setflags (&attr, POSIX_SPAWN_SETPGROUP), 0); ++ posix_spawn_file_actions_t actions; ++ TEST_COMPARE (posix_spawn_file_actions_init (&actions), 0); ++ TEST_COMPARE (posix_spawn_file_actions_addtcsetpgrp_np (&actions, tcfd), + 0); +- TEST_COMPARE (posix_spawnattr_setpgroup (&attr, 0), 0); +- TEST_COMPARE (posix_spawnattr_tcsetpgrp_np (&attr, tcfd), 0); ++ TEST_COMPARE (posix_spawn_file_actions_addclose (&actions, tcfd), 0); + +- run_subprogram (argc, argv, &attr, 0); ++ run_subprogram (argc, argv, &attr, &actions, tcfd, 0); + } + + /* Trying to set the controlling terminal after a setsid incurs in a ENOTTY +@@ -159,11 +184,13 @@ do_test (int argc, char *argv[]) + { + posix_spawnattr_t attr; + TEST_COMPARE (posix_spawnattr_init (&attr), 0); +- TEST_COMPARE (posix_spawnattr_setflags (&attr, POSIX_SPAWN_TCSETPGROUP +- | POSIX_SPAWN_SETSID), 0); +- TEST_COMPARE (posix_spawnattr_tcsetpgrp_np (&attr, tcfd), 0); ++ TEST_COMPARE (posix_spawnattr_setflags (&attr, POSIX_SPAWN_SETSID), 0); ++ posix_spawn_file_actions_t actions; ++ TEST_COMPARE (posix_spawn_file_actions_init (&actions), 0); ++ TEST_COMPARE (posix_spawn_file_actions_addtcsetpgrp_np (&actions, tcfd), ++ 0); + +- run_subprogram (argc, argv, &attr, ENOTTY); ++ run_subprogram (argc, argv, &attr, &actions, -1, ENOTTY); + } + + xclose (tcfd); +diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist +index ba6ef0924ca632cb..119fdb1c3abed349 100644 +--- a/sysdeps/mach/hurd/i386/libc.abilist ++++ b/sysdeps/mach/hurd/i386/libc.abilist +@@ -2287,6 +2287,7 @@ GLIBC_2.34 shm_unlink F + GLIBC_2.34 timespec_getres F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/mach/hurd/spawni.c b/sysdeps/mach/hurd/spawni.c +index 4d71181643c19b0d..f46bdd04683a30b6 100644 +--- a/sysdeps/mach/hurd/spawni.c ++++ b/sysdeps/mach/hurd/spawni.c +@@ -390,19 +390,6 @@ retry: + if (!err && (flags & POSIX_SPAWN_SETPGROUP) != 0) + err = __proc_setpgrp (proc, new_pid, attrp->__pgrp); + +- /* Set the controlling terminal. */ +- if (!err && (flags & POSIX_SPAWN_TCSETPGROUP) != 0) +- { +- pid_t pgrp; +- /* Check if it is possible to avoid an extra syscall. */ +- if ((attrp->__flags & POSIX_SPAWN_SETPGROUP) != 0 && attrp->__pgrp != 0) +- pgrp = attrp->__pgrp; +- else +- err = __proc_getpgrp (proc, new_pid, &pgrp); +- if (!err) +- err = __tcsetpgrp (attrp->__ctty_fd, pgrp); +- } +- + /* Set the effective user and group IDs. */ + if (!err && (flags & POSIX_SPAWN_RESETIDS) != 0) + { +@@ -643,6 +630,19 @@ retry: + case spawn_do_closefrom: + err = do_closefrom (action->action.closefrom_action.from); + break; ++ ++ case spawn_do_tcsetpgrp: ++ { ++ pid_t pgrp; ++ /* Check if it is possible to avoid an extra syscall. */ ++ if ((attrp->__flags & POSIX_SPAWN_SETPGROUP) ++ != 0 && attrp->__pgrp != 0) ++ pgrp = attrp->__pgrp; ++ else ++ err = __proc_getpgrp (proc, new_pid, &pgrp); ++ if (!err) ++ err = __tcsetpgrp (action->action.setpgrp_action.fd, pgrp); ++ } + } + + if (err) +diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist +index 9dd574d9e2a7b541..1b63d9e447f16862 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist +@@ -2615,5 +2615,4 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F +diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist +index f66704877eb43052..e7e4cf7d2afe8e37 100644 +--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist ++++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist +@@ -2712,8 +2712,7 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist +index 97aa3da1ad15a459..bc3d228e3183bbff 100644 +--- a/sysdeps/unix/sysv/linux/arc/libc.abilist ++++ b/sysdeps/unix/sysv/linux/arc/libc.abilist +@@ -2376,5 +2376,4 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F +diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist +index 18f4364856980df6..db7039c4aba3a2cb 100644 +--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist ++++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist +@@ -495,8 +495,7 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F + GLIBC_2.4 _Exit F + GLIBC_2.4 _IO_2_1_stderr_ D 0xa0 + GLIBC_2.4 _IO_2_1_stdin_ D 0xa0 +diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist +index 2c12c020b1f2f320..d2add4fb49bec9ae 100644 +--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist ++++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist +@@ -492,8 +492,7 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F + GLIBC_2.4 _Exit F + GLIBC_2.4 _IO_2_1_stderr_ D 0xa0 + GLIBC_2.4 _IO_2_1_stdin_ D 0xa0 +diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist +index 7f28516feb9b3ce0..355d72a30c41b668 100644 +--- a/sysdeps/unix/sysv/linux/csky/libc.abilist ++++ b/sysdeps/unix/sysv/linux/csky/libc.abilist +@@ -2651,5 +2651,4 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F +diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist +index 9776f20763a46963..3df39bb28cc68f8a 100644 +--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist ++++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist +@@ -2600,8 +2600,7 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist +index 96b50d0a9bd68a19..c4da358f80c4aae3 100644 +--- a/sysdeps/unix/sysv/linux/i386/libc.abilist ++++ b/sysdeps/unix/sysv/linux/i386/libc.abilist +@@ -2784,8 +2784,7 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist +index 9b2eebfbf1b91f06..241bac70ea822230 100644 +--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist +@@ -2550,8 +2550,7 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +index 71cd35488e3b60ab..78bf372b729a2aa5 100644 +--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist ++++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +@@ -496,8 +496,7 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F + GLIBC_2.4 _Exit F + GLIBC_2.4 _IO_2_1_stderr_ D 0x98 + GLIBC_2.4 _IO_2_1_stdin_ D 0x98 +diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +index ced01a501dd816a6..00df5c901f5a608b 100644 +--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist ++++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +@@ -2727,8 +2727,7 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist +index 5406c01f1de62803..e8118569c30bbd1e 100644 +--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist ++++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist +@@ -2700,5 +2700,4 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F +diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist +index 53b8ade4c3c16c9f..c0d2373e64a26700 100644 +--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist ++++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist +@@ -2697,5 +2697,4 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F +diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +index 919973ea46866c8a..2d0fd04f54bf3495 100644 +--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist ++++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +@@ -2692,8 +2692,7 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +index cf5a8dc1208d1f45..e39ccfb312c61434 100644 +--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist ++++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +@@ -2690,8 +2690,7 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +index 003c3bd0a6bb0595..1e900f86e43b49ec 100644 +--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist ++++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +@@ -2698,8 +2698,7 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +index 73629c2f21aed4a3..9145ba79316952fd 100644 +--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +@@ -2601,8 +2601,7 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist +index 9e8645ebc0a996a7..e95d60d92622ea38 100644 +--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist ++++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist +@@ -2739,5 +2739,4 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +index 3d1ba9887c327899..3820b9f23524fb40 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +@@ -2754,8 +2754,7 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +index d979a3b93b98cc5a..464dc27fcd688a94 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +@@ -2787,8 +2787,7 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist +index 44688e52cf99e9fc..2f7e58747fb9a6b1 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist +@@ -2509,8 +2509,7 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist +index 40682711eb73fb12..4f3043d913781166 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist +@@ -2811,5 +2811,4 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F +diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist +index e239d626b32e03ba..84b6ac815a622eda 100644 +--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist ++++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist +@@ -2378,5 +2378,4 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F +diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist +index ab0c4e70927d3dc0..4d5c19c56a03175d 100644 +--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist +@@ -2578,5 +2578,4 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F +diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +index 74e3a4651f215344..7c5ee8d56959fb35 100644 +--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist ++++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +@@ -2752,8 +2752,7 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +index e5553f06b205f0cf..50de0b46cf078fda 100644 +--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +@@ -2546,8 +2546,7 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist +index 9662041cd4c5df83..66fba013caaf0200 100644 +--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist ++++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist +@@ -2607,8 +2607,7 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist +index bf90e924a671f1c1..38703f8aa039b976 100644 +--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist ++++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist +@@ -2604,8 +2604,7 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +index ddb0d0621f80426b..6df55eb76582a397 100644 +--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist ++++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +@@ -2747,8 +2747,7 @@ GLIBC_2.35 __epoll_pwait2_time64 F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +index ca14224cb7d5740d..b90569d8814c603a 100644 +--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +@@ -2573,8 +2573,7 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/spawni.c b/sysdeps/unix/sysv/linux/spawni.c +index 601850638d538ae0..231fbef6041d15d8 100644 +--- a/sysdeps/unix/sysv/linux/spawni.c ++++ b/sysdeps/unix/sysv/linux/spawni.c +@@ -164,17 +164,6 @@ __spawni_child (void *arguments) + && __setpgid (0, attr->__pgrp) != 0) + goto fail; + +- /* Set the controlling terminal. */ +- if ((attr->__flags & POSIX_SPAWN_TCSETPGROUP) != 0) +- { +- /* Check if it is possible to avoid an extra syscall. */ +- pid_t pgrp = (attr->__flags & POSIX_SPAWN_SETPGROUP) != 0 +- && attr->__pgrp != 0 +- ? attr->__pgrp : __getpgid (0); +- if (__tcsetpgrp (attr->__ctty_fd, pgrp) != 0) +- goto fail; +- } +- + /* Set the effective user and group IDs. */ + if ((attr->__flags & POSIX_SPAWN_RESETIDS) != 0 + && (local_seteuid (__getuid ()) != 0 +@@ -279,6 +268,16 @@ __spawni_child (void *arguments) + if (r != 0 && !__closefrom_fallback (lowfd, false)) + goto fail; + } break; ++ ++ case spawn_do_tcsetpgrp: ++ { ++ /* Check if it is possible to avoid an extra syscall. */ ++ pid_t pgrp = (attr->__flags & POSIX_SPAWN_SETPGROUP) != 0 ++ && attr->__pgrp != 0 ++ ? attr->__pgrp : __getpgid (0); ++ if (__tcsetpgrp (action->action.setpgrp_action.fd, pgrp) != 0) ++ goto fail; ++ } + } + } + } +diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +index 661d928adf2ac13c..e88b0f101f788eee 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +@@ -2524,8 +2524,7 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +index bb8058dfa4144bbc..e0755272eb62bec3 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist ++++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +@@ -2630,5 +2630,4 @@ GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F + GLIBC_2.35 _dl_find_object F + GLIBC_2.35 epoll_pwait2 F +-GLIBC_2.35 posix_spawnattr_tcgetpgrp_np F +-GLIBC_2.35 posix_spawnattr_tcsetpgrp_np F ++GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F diff --git a/SOURCES/glibc-RHEL-93320-18.patch b/SOURCES/glibc-RHEL-93320-18.patch new file mode 100644 index 0000000..98225df --- /dev/null +++ b/SOURCES/glibc-RHEL-93320-18.patch @@ -0,0 +1,36 @@ +commit 2ff48a4025515e93d722947a9eabb114f4a65b22 +Author: Florian Weimer +Date: Fri Nov 4 07:43:59 2022 +0100 + + posix: Make posix_spawn extensions available by default + + Some sources merely include without -D_GNU_SOURCE and expect + declarations for posix_spawn_file_actions_addchdir_np to be available. + For consistency, declare posix_spawn_file_actions_addfchdir_np, + posix_spawn_file_actions_addclosefrom_np, + posix_spawn_file_actions_addtcsetpgrp_np as well. + + Reviewed-by: Adhemerval Zanella + +diff --git a/posix/spawn.h b/posix/spawn.h +index 7cf1a5b628480404..81202ef0caec031c 100644 +--- a/posix/spawn.h ++++ b/posix/spawn.h +@@ -198,7 +198,7 @@ extern int posix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t * + int __fd, int __newfd) + __THROW __nonnull ((1)); + +-#ifdef __USE_GNU ++#ifdef __USE_MISC + /* Add an action changing the directory to PATH during spawn. This + affects the subsequent file actions. */ + extern int posix_spawn_file_actions_addchdir_np (posix_spawn_file_actions_t * +@@ -227,7 +227,7 @@ posix_spawn_file_actions_addtcsetpgrp_np (posix_spawn_file_actions_t *, + int __tcfd) + __THROW __nonnull ((1)); + +-#endif ++#endif /* __USE_MISC */ + + __END_DECLS + diff --git a/SOURCES/glibc-RHEL-93320-19.patch b/SOURCES/glibc-RHEL-93320-19.patch new file mode 100644 index 0000000..e2be1d6 --- /dev/null +++ b/SOURCES/glibc-RHEL-93320-19.patch @@ -0,0 +1,185 @@ +Downstream-only patch to avoid ABI change: + +Move _dl_find_object and _rtld_libc_freeres to GLIBC_PRIVATE ABI + +Avoid modifying rtld_global_ro as it could cause interesting issues +during glibc updates due to mismatches between running and newly +installed glibc vs. ld.so + +This means _dl_find_object() will not work from a shared object +dlopen()'d from a static binary. Th the corresponding test has to +be removed. This is considered a non-issue at this point as C++ +exceptions are broken in that case for other reasons already +(TLS not initialized properly etc...) + +Signed-off-by: Benjamin Herrenschmidt +Reviewed-by: DJ Delorie + +diff --git a/elf/Makefile b/elf/Makefile +index 7382cf6dd498ce8a..a28ea58551ffd1d7 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -62,6 +62,7 @@ dl-routines = \ + dl-find_object \ + dl-fini \ + dl-init \ ++ dl-libc_freeres \ + dl-load \ + dl-lookup \ + dl-lookup-direct \ +@@ -138,7 +139,6 @@ rtld-routines = \ + dl-hwcaps \ + dl-hwcaps-subdirs \ + dl-hwcaps_split \ +- dl-libc_freeres \ + dl-minimal \ + dl-mutex \ + dl-sysdep \ +@@ -285,7 +285,6 @@ tests-static-internal := \ + tst-stackguard1-static \ + tst-tls1-static \ + tst-tls1-static-non-pie \ +- tst-dl_find_object-static \ + # tests-static-internal + + CRT-tst-tls1-static-non-pie := $(csu-objpfx)crt1.o +diff --git a/elf/Versions b/elf/Versions +index 71d648a6b4bcbf5a..3e729c92d3be282d 100644 +--- a/elf/Versions ++++ b/elf/Versions +@@ -76,5 +76,11 @@ ld { + + # Check if an address range within a loaded ELF object is read-only. + _dl_readonly_area; ++ ++ # Called from __libc_shared to deallocate malloc'ed memory. ++ __rtld_libc_freeres; ++ ++ # Implementation of _dl_find_object. The public entry point is in libc ++ __dl_find_object_internal; + } + } +diff --git a/elf/dl-find_object.c b/elf/dl-find_object.c +index 56894ca24a510b07..99797580066cdce8 100644 +--- a/elf/dl-find_object.c ++++ b/elf/dl-find_object.c +@@ -356,7 +356,7 @@ _dlfo_lookup (uintptr_t pc, struct dl_find_object_internal *first1, size_t size) + } + + int +-_dl_find_object (void *pc1, struct dl_find_object *result) ++__dl_find_object_internal (void *pc1, struct dl_find_object *result) + { + uintptr_t pc = (uintptr_t) pc1; + +@@ -463,7 +463,7 @@ _dl_find_object (void *pc1, struct dl_find_object *result) + return -1; + } /* Transaction retry loop. */ + } +-rtld_hidden_def (_dl_find_object) ++rtld_hidden_def (__dl_find_object_internal) + + /* _dlfo_process_initial is called twice. First to compute the array + sizes from the initial loaded mappings. Second to fill in the +diff --git a/elf/dl-libc_freeres.c b/elf/dl-libc_freeres.c +index 2a377fa9dfc4f1c0..1acb7a87297515b0 100644 +--- a/elf/dl-libc_freeres.c ++++ b/elf/dl-libc_freeres.c +@@ -24,3 +24,4 @@ __rtld_libc_freeres (void) + { + _dl_find_object_freeres (); + } ++rtld_hidden_def (__rtld_libc_freeres) +diff --git a/elf/libc-dl_find_object.c b/elf/libc-dl_find_object.c +index 38ea3bc94999df6e..1ce487ac3812d2a9 100644 +--- a/elf/libc-dl_find_object.c ++++ b/elf/libc-dl_find_object.c +@@ -22,5 +22,5 @@ + int + _dl_find_object (void *address, struct dl_find_object *result) + { +- return GLRO (dl_find_object) (address, result); ++ return __dl_find_object_internal (address, result); + } +diff --git a/elf/rtld.c b/elf/rtld.c +index d698a32ae120e887..667880e18ae816d8 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -381,7 +381,6 @@ struct rtld_global_ro _rtld_global_ro attribute_relro = + ._dl_catch_error = _dl_catch_error, + ._dl_error_free = _dl_error_free, + ._dl_tls_get_addr_soft = _dl_tls_get_addr_soft, +- ._dl_libc_freeres = __rtld_libc_freeres, + #ifdef HAVE_DL_DISCOVER_OSVERSION + ._dl_discover_osversion = _dl_discover_osversion + #endif +@@ -584,10 +583,6 @@ _dl_start (void *arg) + + __rtld_malloc_init_stubs (); + +- /* Do not use an initializer for these members because it would +- intefere with __rtld_static_init. */ +- GLRO (dl_find_object) = &_dl_find_object; +- + { + #ifdef DONT_USE_BOOTSTRAP_MAP + ElfW(Addr) entry = _dl_start_final (arg); +diff --git a/elf/rtld_static_init.c b/elf/rtld_static_init.c +index 6027000d3a56e46e..3f8abb6800b401d7 100644 +--- a/elf/rtld_static_init.c ++++ b/elf/rtld_static_init.c +@@ -78,7 +78,6 @@ __rtld_static_init (struct link_map *map) + extern __typeof (dl->_dl_tls_static_size) _dl_tls_static_size + attribute_hidden; + dl->_dl_tls_static_size = _dl_tls_static_size; +- dl->_dl_find_object = _dl_find_object; + + __rtld_static_init_arch (map, dl); + } +diff --git a/malloc/set-freeres.c b/malloc/set-freeres.c +index 856ff7831f84d07c..2a1e8971b2df218d 100644 +--- a/malloc/set-freeres.c ++++ b/malloc/set-freeres.c +@@ -69,7 +69,7 @@ __libc_freeres (void) + call_function_static_weak (__libc_dlerror_result_free); + + #ifdef SHARED +- GLRO (dl_libc_freeres) (); ++ __rtld_libc_freeres (); + #endif + + for (p = symbol_set_first_element (__libc_freeres_ptrs); +diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h +index 29c87649f14a1b5b..e5860916345487e7 100644 +--- a/sysdeps/generic/ldsodefs.h ++++ b/sysdeps/generic/ldsodefs.h +@@ -714,14 +714,6 @@ struct rtld_global_ro + void (*_dl_error_free) (void *); + void *(*_dl_tls_get_addr_soft) (struct link_map *); + +- /* Called from __libc_shared to deallocate malloc'ed memory. */ +- void (*_dl_libc_freeres) (void); +- +- /* Implementation of _dl_find_object. The public entry point is in +- libc, and this is patched by __rtld_static_init to support static +- dlopen. */ +- int (*_dl_find_object) (void *, struct dl_find_object *); +- + #ifdef HAVE_DL_DISCOVER_OSVERSION + int (*_dl_discover_osversion) (void); + #endif +@@ -1513,7 +1505,13 @@ __rtld_mutex_init (void) + #endif /* !PTHREAD_IN_LIBC */ + + /* Implementation of GL (dl_libc_freeres). */ +-void __rtld_libc_freeres (void) attribute_hidden; ++void __rtld_libc_freeres (void); ++rtld_hidden_proto (__rtld_libc_freeres) ++ ++/* Implementation of _dl_find_object */ ++int __dl_find_object_internal (void *, struct dl_find_object *); ++rtld_hidden_proto (__dl_find_object_internal) ++ + + #if THREAD_GSCOPE_IN_TCB + void __thread_gscope_wait (void) attribute_hidden; diff --git a/SOURCES/glibc-RHEL-93320-2.patch b/SOURCES/glibc-RHEL-93320-2.patch new file mode 100644 index 0000000..57cc896 --- /dev/null +++ b/SOURCES/glibc-RHEL-93320-2.patch @@ -0,0 +1,692 @@ +commit 8bd336a00a5311bf7a9e99b3b0e9f01ff5faa74b +Author: Florian Weimer +Date: Wed Nov 17 12:20:13 2021 +0100 + + nptl: Extract from pthread_cond_common.c + + And make it an installed header. This addresses a few aliasing + violations (which do not seem to result in miscompilation due to + the use of atomics), and also enables use of wide counters in other + parts of the library. + + The debug output in nptl/tst-cond22 has been adjusted to print + the 32-bit values instead because it avoids a big-endian/little-endian + difference. + + Reviewed-by: Adhemerval Zanella + +Conflicts: + nptl/Makefile + Adapt to different overall layout + nptl/tst-cond22.c + Updated for context due to + c36fc50781995e6758cae2b6927839d0157f213c + being already backported + sysdeps/nptl/bits/thread-shared-types.h + Updated for context due to + c36fc50781995e6758cae2b6927839d0157f213c + being already backported + +diff --git a/bits/atomic_wide_counter.h b/bits/atomic_wide_counter.h +new file mode 100644 +index 0000000000000000..0687eb554e5051a1 +--- /dev/null ++++ b/bits/atomic_wide_counter.h +@@ -0,0 +1,35 @@ ++/* Monotonically increasing wide counters (at least 62 bits). ++ Copyright (C) 2016-2021 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#ifndef _BITS_ATOMIC_WIDE_COUNTER_H ++#define _BITS_ATOMIC_WIDE_COUNTER_H ++ ++/* Counter that is monotonically increasing (by less than 2**31 per ++ increment), with a single writer, and an arbitrary number of ++ readers. */ ++typedef union ++{ ++ __extension__ unsigned long long int __value64; ++ struct ++ { ++ unsigned int __low; ++ unsigned int __high; ++ } __value32; ++} __atomic_wide_counter; ++ ++#endif /* _BITS_ATOMIC_WIDE_COUNTER_H */ +diff --git a/include/atomic_wide_counter.h b/include/atomic_wide_counter.h +new file mode 100644 +index 0000000000000000..31f009d5e66cb45f +--- /dev/null ++++ b/include/atomic_wide_counter.h +@@ -0,0 +1,89 @@ ++/* Monotonically increasing wide counters (at least 62 bits). ++ Copyright (C) 2016-2021 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#ifndef _ATOMIC_WIDE_COUNTER_H ++#define _ATOMIC_WIDE_COUNTER_H ++ ++#include ++#include ++ ++#if __HAVE_64B_ATOMICS ++ ++static inline uint64_t ++__atomic_wide_counter_load_relaxed (__atomic_wide_counter *c) ++{ ++ return atomic_load_relaxed (&c->__value64); ++} ++ ++static inline uint64_t ++__atomic_wide_counter_fetch_add_relaxed (__atomic_wide_counter *c, ++ unsigned int val) ++{ ++ return atomic_fetch_add_relaxed (&c->__value64, val); ++} ++ ++static inline uint64_t ++__atomic_wide_counter_fetch_add_acquire (__atomic_wide_counter *c, ++ unsigned int val) ++{ ++ return atomic_fetch_add_acquire (&c->__value64, val); ++} ++ ++static inline void ++__atomic_wide_counter_add_relaxed (__atomic_wide_counter *c, ++ unsigned int val) ++{ ++ atomic_store_relaxed (&c->__value64, ++ atomic_load_relaxed (&c->__value64) + val); ++} ++ ++static uint64_t __attribute__ ((unused)) ++__atomic_wide_counter_fetch_xor_release (__atomic_wide_counter *c, ++ unsigned int val) ++{ ++ return atomic_fetch_xor_release (&c->__value64, val); ++} ++ ++#else /* !__HAVE_64B_ATOMICS */ ++ ++uint64_t __atomic_wide_counter_load_relaxed (__atomic_wide_counter *c) ++ attribute_hidden; ++ ++uint64_t __atomic_wide_counter_fetch_add_relaxed (__atomic_wide_counter *c, ++ unsigned int op) ++ attribute_hidden; ++ ++static inline uint64_t ++__atomic_wide_counter_fetch_add_acquire (__atomic_wide_counter *c, ++ unsigned int val) ++{ ++ uint64_t r = __atomic_wide_counter_fetch_add_relaxed (c, val); ++ atomic_thread_fence_acquire (); ++ return r; ++} ++ ++static inline void ++__atomic_wide_counter_add_relaxed (__atomic_wide_counter *c, ++ unsigned int val) ++{ ++ __atomic_wide_counter_fetch_add_relaxed (c, val); ++} ++ ++#endif /* !__HAVE_64B_ATOMICS */ ++ ++#endif /* _ATOMIC_WIDE_COUNTER_H */ +diff --git a/include/bits/atomic_wide_counter.h b/include/bits/atomic_wide_counter.h +new file mode 100644 +index 0000000000000000..8fb09a529104cc1d +--- /dev/null ++++ b/include/bits/atomic_wide_counter.h +@@ -0,0 +1 @@ ++#include_next +diff --git a/misc/Makefile b/misc/Makefile +index 5d6fc0f6824a734f..6e8725309cf73293 100644 +--- a/misc/Makefile ++++ b/misc/Makefile +@@ -73,7 +73,8 @@ routines := brk sbrk sstk ioctl \ + fgetxattr flistxattr fremovexattr fsetxattr getxattr \ + listxattr lgetxattr llistxattr lremovexattr lsetxattr \ + removexattr setxattr getauxval ifunc-impl-list makedev \ +- allocate_once fd_to_filename single_threaded unwind-link ++ allocate_once fd_to_filename single_threaded unwind-link \ ++ atomic_wide_counter + + generated += tst-error1.mtrace tst-error1-mem.out \ + tst-allocate_once.mtrace tst-allocate_once-mem.out +diff --git a/misc/atomic_wide_counter.c b/misc/atomic_wide_counter.c +new file mode 100644 +index 0000000000000000..56d898192573193e +--- /dev/null ++++ b/misc/atomic_wide_counter.c +@@ -0,0 +1,127 @@ ++/* Monotonically increasing wide counters (at least 62 bits). ++ Copyright (C) 2016-2021 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#if !__HAVE_64B_ATOMICS ++ ++/* Values we add or xor are less than or equal to 1<<31, so we only ++ have to make overflow-and-addition atomic wrt. to concurrent load ++ operations and xor operations. To do that, we split each counter ++ into two 32b values of which we reserve the MSB of each to ++ represent an overflow from the lower-order half to the higher-order ++ half. ++ ++ In the common case, the state is (higher-order / lower-order half, and . is ++ basically concatenation of the bits): ++ 0.h / 0.l = h.l ++ ++ When we add a value of x that overflows (i.e., 0.l + x == 1.L), we run the ++ following steps S1-S4 (the values these represent are on the right-hand ++ side): ++ S1: 0.h / 1.L == (h+1).L ++ S2: 1.(h+1) / 1.L == (h+1).L ++ S3: 1.(h+1) / 0.L == (h+1).L ++ S4: 0.(h+1) / 0.L == (h+1).L ++ If the LSB of the higher-order half is set, readers will ignore the ++ overflow bit in the lower-order half. ++ ++ To get an atomic snapshot in load operations, we exploit that the ++ higher-order half is monotonically increasing; if we load a value V from ++ it, then read the lower-order half, and then read the higher-order half ++ again and see the same value V, we know that both halves have existed in ++ the sequence of values the full counter had. This is similar to the ++ validated reads in the time-based STMs in GCC's libitm (e.g., ++ method_ml_wt). ++ ++ One benefit of this scheme is that this makes load operations ++ obstruction-free because unlike if we would just lock the counter, readers ++ can almost always interpret a snapshot of each halves. Readers can be ++ forced to read a new snapshot when the read is concurrent with an overflow. ++ However, overflows will happen infrequently, so load operations are ++ practically lock-free. */ ++ ++uint64_t ++__atomic_wide_counter_fetch_add_relaxed (__atomic_wide_counter *c, ++ unsigned int op) ++{ ++ /* S1. Note that this is an atomic read-modify-write so it extends the ++ release sequence of release MO store at S3. */ ++ unsigned int l = atomic_fetch_add_relaxed (&c->__value32.__low, op); ++ unsigned int h = atomic_load_relaxed (&c->__value32.__high); ++ uint64_t result = ((uint64_t) h << 31) | l; ++ l += op; ++ if ((l >> 31) > 0) ++ { ++ /* Overflow. Need to increment higher-order half. Note that all ++ add operations are ordered in happens-before. */ ++ h++; ++ /* S2. Release MO to synchronize with the loads of the higher-order half ++ in the load operation. See __condvar_load_64_relaxed. */ ++ atomic_store_release (&c->__value32.__high, ++ h | ((unsigned int) 1 << 31)); ++ l ^= (unsigned int) 1 << 31; ++ /* S3. See __condvar_load_64_relaxed. */ ++ atomic_store_release (&c->__value32.__low, l); ++ /* S4. Likewise. */ ++ atomic_store_release (&c->__value32.__high, h); ++ } ++ return result; ++} ++ ++uint64_t ++__atomic_wide_counter_load_relaxed (__atomic_wide_counter *c) ++{ ++ unsigned int h, l, h2; ++ do ++ { ++ /* This load and the second one below to the same location read from the ++ stores in the overflow handling of the add operation or the ++ initializing stores (which is a simple special case because ++ initialization always completely happens before further use). ++ Because no two stores to the higher-order half write the same value, ++ the loop ensures that if we continue to use the snapshot, this load ++ and the second one read from the same store operation. All candidate ++ store operations have release MO. ++ If we read from S2 in the first load, then we will see the value of ++ S1 on the next load (because we synchronize with S2), or a value ++ later in modification order. We correctly ignore the lower-half's ++ overflow bit in this case. If we read from S4, then we will see the ++ value of S3 in the next load (or a later value), which does not have ++ the overflow bit set anymore. ++ */ ++ h = atomic_load_acquire (&c->__value32.__high); ++ /* This will read from the release sequence of S3 (i.e, either the S3 ++ store or the read-modify-writes at S1 following S3 in modification ++ order). Thus, the read synchronizes with S3, and the following load ++ of the higher-order half will read from the matching S2 (or a later ++ value). ++ Thus, if we read a lower-half value here that already overflowed and ++ belongs to an increased higher-order half value, we will see the ++ latter and h and h2 will not be equal. */ ++ l = atomic_load_acquire (&c->__value32.__low); ++ /* See above. */ ++ h2 = atomic_load_relaxed (&c->__value32.__high); ++ } ++ while (h != h2); ++ if (((l >> 31) > 0) && ((h >> 31) > 0)) ++ l ^= (unsigned int) 1 << 31; ++ return ((uint64_t) (h & ~((unsigned int) 1 << 31)) << 31) + l; ++} ++ ++#endif /* !__HAVE_64B_ATOMICS */ +diff --git a/nptl/Makefile b/nptl/Makefile +index cac75eb8f5b68320..80c7587f0086677b 100644 +--- a/nptl/Makefile ++++ b/nptl/Makefile +@@ -22,8 +22,14 @@ subdir := nptl + + include ../Makeconfig + +-headers := pthread.h semaphore.h bits/semaphore.h \ +- bits/struct_mutex.h bits/struct_rwlock.h ++headers := \ ++ bits/atomic_wide_counter.h \ ++ bits/semaphore.h \ ++ bits/struct_mutex.h \ ++ bits/struct_rwlock.h \ ++ pthread.h \ ++ semaphore.h \ ++ # headers + + extra-libs := libpthread + extra-libs-others := $(extra-libs) +@@ -277,7 +283,6 @@ tests = \ + tst-cancel7 \ + tst-cancel17 \ + tst-cancel24 \ +- tst-cond22 \ + tst-cond26 \ + tst-context1 \ + tst-default-attr \ +@@ -368,6 +373,7 @@ tests-container = tst-pthread-getattr + + tests-internal := \ + tst-barrier5 \ ++ tst-cond22 \ + tst-mutex8 \ + tst-mutex8-static \ + tst-mutexpi8 \ +diff --git a/nptl/pthread_cond_common.c b/nptl/pthread_cond_common.c +index 485aca4076a372d7..9e00ebd73d4d2fba 100644 +--- a/nptl/pthread_cond_common.c ++++ b/nptl/pthread_cond_common.c +@@ -17,79 +17,52 @@ + . */ + + #include ++#include + #include + #include + +-/* We need 3 least-significant bits on __wrefs for something else. */ ++/* We need 3 least-significant bits on __wrefs for something else. ++ This also matches __atomic_wide_counter requirements: The highest ++ value we add is __PTHREAD_COND_MAX_GROUP_SIZE << 2 to __g1_start ++ (the two extra bits are for the lock in the two LSBs of ++ __g1_start). */ + #define __PTHREAD_COND_MAX_GROUP_SIZE ((unsigned) 1 << 29) + +-#if __HAVE_64B_ATOMICS == 1 +- +-static uint64_t __attribute__ ((unused)) ++static inline uint64_t + __condvar_load_wseq_relaxed (pthread_cond_t *cond) + { +- return atomic_load_relaxed (&cond->__data.__wseq); ++ return __atomic_wide_counter_load_relaxed (&cond->__data.__wseq); + } + +-static uint64_t __attribute__ ((unused)) ++static inline uint64_t + __condvar_fetch_add_wseq_acquire (pthread_cond_t *cond, unsigned int val) + { +- return atomic_fetch_add_acquire (&cond->__data.__wseq, val); ++ return __atomic_wide_counter_fetch_add_acquire (&cond->__data.__wseq, val); + } + +-static uint64_t __attribute__ ((unused)) +-__condvar_fetch_xor_wseq_release (pthread_cond_t *cond, unsigned int val) +-{ +- return atomic_fetch_xor_release (&cond->__data.__wseq, val); +-} +- +-static uint64_t __attribute__ ((unused)) ++static inline uint64_t + __condvar_load_g1_start_relaxed (pthread_cond_t *cond) + { +- return atomic_load_relaxed (&cond->__data.__g1_start); ++ return __atomic_wide_counter_load_relaxed (&cond->__data.__g1_start); + } + +-static void __attribute__ ((unused)) ++static inline void + __condvar_add_g1_start_relaxed (pthread_cond_t *cond, unsigned int val) + { +- atomic_store_relaxed (&cond->__data.__g1_start, +- atomic_load_relaxed (&cond->__data.__g1_start) + val); ++ __atomic_wide_counter_add_relaxed (&cond->__data.__g1_start, val); + } + +-#else +- +-/* We use two 64b counters: __wseq and __g1_start. They are monotonically +- increasing and single-writer-multiple-readers counters, so we can implement +- load, fetch-and-add, and fetch-and-xor operations even when we just have +- 32b atomics. Values we add or xor are less than or equal to 1<<31 (*), +- so we only have to make overflow-and-addition atomic wrt. to concurrent +- load operations and xor operations. To do that, we split each counter into +- two 32b values of which we reserve the MSB of each to represent an +- overflow from the lower-order half to the higher-order half. +- +- In the common case, the state is (higher-order / lower-order half, and . is +- basically concatenation of the bits): +- 0.h / 0.l = h.l ++#if __HAVE_64B_ATOMICS == 1 + +- When we add a value of x that overflows (i.e., 0.l + x == 1.L), we run the +- following steps S1-S4 (the values these represent are on the right-hand +- side): +- S1: 0.h / 1.L == (h+1).L +- S2: 1.(h+1) / 1.L == (h+1).L +- S3: 1.(h+1) / 0.L == (h+1).L +- S4: 0.(h+1) / 0.L == (h+1).L +- If the LSB of the higher-order half is set, readers will ignore the +- overflow bit in the lower-order half. ++static inline uint64_t ++__condvar_fetch_xor_wseq_release (pthread_cond_t *cond, unsigned int val) ++{ ++ return atomic_fetch_xor_release (&cond->__data.__wseq.__value64, val); ++} + +- To get an atomic snapshot in load operations, we exploit that the +- higher-order half is monotonically increasing; if we load a value V from +- it, then read the lower-order half, and then read the higher-order half +- again and see the same value V, we know that both halves have existed in +- the sequence of values the full counter had. This is similar to the +- validated reads in the time-based STMs in GCC's libitm (e.g., +- method_ml_wt). ++#else /* !__HAVE_64B_ATOMICS */ + +- The xor operation needs to be an atomic read-modify-write. The write ++/* The xor operation needs to be an atomic read-modify-write. The write + itself is not an issue as it affects just the lower-order half but not bits + used in the add operation. To make the full fetch-and-xor atomic, we + exploit that concurrently, the value can increase by at most 1<<31 (*): The +@@ -97,117 +70,18 @@ __condvar_add_g1_start_relaxed (pthread_cond_t *cond, unsigned int val) + than __PTHREAD_COND_MAX_GROUP_SIZE waiters can enter concurrently and thus + increment __wseq. Therefore, if the xor operation observes a value of + __wseq, then the value it applies the modification to later on can be +- derived (see below). +- +- One benefit of this scheme is that this makes load operations +- obstruction-free because unlike if we would just lock the counter, readers +- can almost always interpret a snapshot of each halves. Readers can be +- forced to read a new snapshot when the read is concurrent with an overflow. +- However, overflows will happen infrequently, so load operations are +- practically lock-free. +- +- (*) The highest value we add is __PTHREAD_COND_MAX_GROUP_SIZE << 2 to +- __g1_start (the two extra bits are for the lock in the two LSBs of +- __g1_start). */ +- +-typedef struct +-{ +- unsigned int low; +- unsigned int high; +-} _condvar_lohi; +- +-static uint64_t +-__condvar_fetch_add_64_relaxed (_condvar_lohi *lh, unsigned int op) +-{ +- /* S1. Note that this is an atomic read-modify-write so it extends the +- release sequence of release MO store at S3. */ +- unsigned int l = atomic_fetch_add_relaxed (&lh->low, op); +- unsigned int h = atomic_load_relaxed (&lh->high); +- uint64_t result = ((uint64_t) h << 31) | l; +- l += op; +- if ((l >> 31) > 0) +- { +- /* Overflow. Need to increment higher-order half. Note that all +- add operations are ordered in happens-before. */ +- h++; +- /* S2. Release MO to synchronize with the loads of the higher-order half +- in the load operation. See __condvar_load_64_relaxed. */ +- atomic_store_release (&lh->high, h | ((unsigned int) 1 << 31)); +- l ^= (unsigned int) 1 << 31; +- /* S3. See __condvar_load_64_relaxed. */ +- atomic_store_release (&lh->low, l); +- /* S4. Likewise. */ +- atomic_store_release (&lh->high, h); +- } +- return result; +-} +- +-static uint64_t +-__condvar_load_64_relaxed (_condvar_lohi *lh) +-{ +- unsigned int h, l, h2; +- do +- { +- /* This load and the second one below to the same location read from the +- stores in the overflow handling of the add operation or the +- initializing stores (which is a simple special case because +- initialization always completely happens before further use). +- Because no two stores to the higher-order half write the same value, +- the loop ensures that if we continue to use the snapshot, this load +- and the second one read from the same store operation. All candidate +- store operations have release MO. +- If we read from S2 in the first load, then we will see the value of +- S1 on the next load (because we synchronize with S2), or a value +- later in modification order. We correctly ignore the lower-half's +- overflow bit in this case. If we read from S4, then we will see the +- value of S3 in the next load (or a later value), which does not have +- the overflow bit set anymore. +- */ +- h = atomic_load_acquire (&lh->high); +- /* This will read from the release sequence of S3 (i.e, either the S3 +- store or the read-modify-writes at S1 following S3 in modification +- order). Thus, the read synchronizes with S3, and the following load +- of the higher-order half will read from the matching S2 (or a later +- value). +- Thus, if we read a lower-half value here that already overflowed and +- belongs to an increased higher-order half value, we will see the +- latter and h and h2 will not be equal. */ +- l = atomic_load_acquire (&lh->low); +- /* See above. */ +- h2 = atomic_load_relaxed (&lh->high); +- } +- while (h != h2); +- if (((l >> 31) > 0) && ((h >> 31) > 0)) +- l ^= (unsigned int) 1 << 31; +- return ((uint64_t) (h & ~((unsigned int) 1 << 31)) << 31) + l; +-} +- +-static uint64_t __attribute__ ((unused)) +-__condvar_load_wseq_relaxed (pthread_cond_t *cond) +-{ +- return __condvar_load_64_relaxed ((_condvar_lohi *) &cond->__data.__wseq32); +-} +- +-static uint64_t __attribute__ ((unused)) +-__condvar_fetch_add_wseq_acquire (pthread_cond_t *cond, unsigned int val) +-{ +- uint64_t r = __condvar_fetch_add_64_relaxed +- ((_condvar_lohi *) &cond->__data.__wseq32, val); +- atomic_thread_fence_acquire (); +- return r; +-} ++ derived. */ + + static uint64_t __attribute__ ((unused)) + __condvar_fetch_xor_wseq_release (pthread_cond_t *cond, unsigned int val) + { +- _condvar_lohi *lh = (_condvar_lohi *) &cond->__data.__wseq32; + /* First, get the current value. See __condvar_load_64_relaxed. */ + unsigned int h, l, h2; + do + { +- h = atomic_load_acquire (&lh->high); +- l = atomic_load_acquire (&lh->low); +- h2 = atomic_load_relaxed (&lh->high); ++ h = atomic_load_acquire (&cond->__data.__wseq.__value32.__high); ++ l = atomic_load_acquire (&cond->__data.__wseq.__value32.__low); ++ h2 = atomic_load_relaxed (&cond->__data.__wseq.__value32.__high); + } + while (h != h2); + if (((l >> 31) > 0) && ((h >> 31) == 0)) +@@ -219,8 +93,9 @@ __condvar_fetch_xor_wseq_release (pthread_cond_t *cond, unsigned int val) + earlier in modification order than the following fetch-xor. + This uses release MO to make the full operation have release semantics + (all other operations access the lower-order half). */ +- unsigned int l2 = atomic_fetch_xor_release (&lh->low, val) +- & ~((unsigned int) 1 << 31); ++ unsigned int l2 ++ = (atomic_fetch_xor_release (&cond->__data.__wseq.__value32.__low, val) ++ & ~((unsigned int) 1 << 31)); + if (l2 < l) + /* The lower-order half overflowed in the meantime. This happened exactly + once due to the limit on concurrent waiters (see above). */ +@@ -228,22 +103,7 @@ __condvar_fetch_xor_wseq_release (pthread_cond_t *cond, unsigned int val) + return ((uint64_t) h << 31) + l2; + } + +-static uint64_t __attribute__ ((unused)) +-__condvar_load_g1_start_relaxed (pthread_cond_t *cond) +-{ +- return __condvar_load_64_relaxed +- ((_condvar_lohi *) &cond->__data.__g1_start32); +-} +- +-static void __attribute__ ((unused)) +-__condvar_add_g1_start_relaxed (pthread_cond_t *cond, unsigned int val) +-{ +- ignore_value (__condvar_fetch_add_64_relaxed +- ((_condvar_lohi *) &cond->__data.__g1_start32, val)); +-} +- +-#endif /* !__HAVE_64B_ATOMICS */ +- ++#endif /* !__HAVE_64B_ATOMICS */ + + /* The lock that signalers use. See pthread_cond_wait_common for uses. + The lock is our normal three-state lock: not acquired (0) / acquired (1) / +diff --git a/nptl/tst-cond22.c b/nptl/tst-cond22.c +index ebeeeaf666070076..bdcb45c53674a5fd 100644 +--- a/nptl/tst-cond22.c ++++ b/nptl/tst-cond22.c +@@ -106,8 +106,11 @@ do_test (void) + status = 1; + } + +- printf ("cond = { %llu, %llu, %u/%u, %u/%u, %u, %u }\n", +- c.__data.__wseq, c.__data.__g1_start, ++ printf ("cond = { 0x%x:%x, 0x%x:%x, %u/%u, %u/%u, %u, %u }\n", ++ c.__data.__wseq.__value32.__high, ++ c.__data.__wseq.__value32.__low, ++ c.__data.__g1_start.__value32.__high, ++ c.__data.__g1_start.__value32.__low, + c.__data.__g_signals[0], c.__data.__g_size[0], + c.__data.__g_signals[1], c.__data.__g_size[1], + c.__data.__g1_orig_size, c.__data.__wrefs); +@@ -149,8 +152,11 @@ do_test (void) + status = 1; + } + +- printf ("cond = { %llu, %llu, %u/%u, %u/%u, %u, %u }\n", +- c.__data.__wseq, c.__data.__g1_start, ++ printf ("cond = { 0x%x:%x, 0x%x:%x, %u/%u, %u/%u, %u, %u }\n", ++ c.__data.__wseq.__value32.__high, ++ c.__data.__wseq.__value32.__low, ++ c.__data.__g1_start.__value32.__high, ++ c.__data.__g1_start.__value32.__low, + c.__data.__g_signals[0], c.__data.__g_size[0], + c.__data.__g_signals[1], c.__data.__g_size[1], + c.__data.__g1_orig_size, c.__data.__wrefs); +diff --git a/sysdeps/nptl/bits/thread-shared-types.h b/sysdeps/nptl/bits/thread-shared-types.h +index 5644472323fe5424..2143281eabc7016c 100644 +--- a/sysdeps/nptl/bits/thread-shared-types.h ++++ b/sysdeps/nptl/bits/thread-shared-types.h +@@ -43,6 +43,8 @@ + + #include + ++#include ++ + + /* Common definition of pthread_mutex_t. */ + +@@ -91,24 +93,8 @@ typedef struct __pthread_internal_slist + + struct __pthread_cond_s + { +- __extension__ union +- { +- __extension__ unsigned long long int __wseq; +- struct +- { +- unsigned int __low; +- unsigned int __high; +- } __wseq32; +- }; +- __extension__ union +- { +- __extension__ unsigned long long int __g1_start; +- struct +- { +- unsigned int __low; +- unsigned int __high; +- } __g1_start32; +- }; ++ __atomic_wide_counter __wseq; ++ __atomic_wide_counter __g1_start; + unsigned int __glibc_unused___g_refs[2] __LOCK_ALIGNMENT; + unsigned int __g_size[2]; + unsigned int __g1_orig_size; diff --git a/SOURCES/glibc-RHEL-93320-3.patch b/SOURCES/glibc-RHEL-93320-3.patch new file mode 100644 index 0000000..b20fce4 --- /dev/null +++ b/SOURCES/glibc-RHEL-93320-3.patch @@ -0,0 +1,119 @@ +commit f1d333b5bfdb3561c93feb4b5653d051c3258c59 +Author: Florian Weimer +Date: Wed Nov 17 12:20:29 2021 +0100 + + elf: Introduce GLRO (dl_libc_freeres), called from __libc_freeres + + This will be used to deallocate memory allocated using the non-minimal + malloc. + + Reviewed-by: Adhemerval Zanella + +Conflicts: + elf/Makefile + Updated for change of layout + sysdeps/generic/ldsodefs.h + Updated for minor context changes + +diff --git a/elf/Makefile b/elf/Makefile +index 3eac746d21042ec9..f5c9b6df9a8f9acd 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -133,6 +133,7 @@ rtld-routines = \ + dl-hwcaps \ + dl-hwcaps-subdirs \ + dl-hwcaps_split \ ++ dl-libc_freeres \ + dl-minimal \ + dl-mutex \ + dl-sysdep \ +diff --git a/elf/dl-libc_freeres.c b/elf/dl-libc_freeres.c +new file mode 100644 +index 0000000000000000..68f305a6f98aac0c +--- /dev/null ++++ b/elf/dl-libc_freeres.c +@@ -0,0 +1,24 @@ ++/* Deallocating malloc'ed memory from the dynamic loader. ++ Copyright (C) 2021 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++void ++__rtld_libc_freeres (void) ++{ ++} +diff --git a/elf/rtld.c b/elf/rtld.c +index dac827e249b2fe14..fd70c4c3528cda2d 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -380,6 +380,7 @@ struct rtld_global_ro _rtld_global_ro attribute_relro = + ._dl_catch_error = _dl_catch_error, + ._dl_error_free = _dl_error_free, + ._dl_tls_get_addr_soft = _dl_tls_get_addr_soft, ++ ._dl_libc_freeres = __rtld_libc_freeres, + #ifdef HAVE_DL_DISCOVER_OSVERSION + ._dl_discover_osversion = _dl_discover_osversion + #endif +diff --git a/malloc/set-freeres.c b/malloc/set-freeres.c +index 5c19a2725cdb61e7..856ff7831f84d07c 100644 +--- a/malloc/set-freeres.c ++++ b/malloc/set-freeres.c +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + + #include "../nss/nsswitch.h" + #include "../libio/libioP.h" +@@ -67,6 +68,10 @@ __libc_freeres (void) + + call_function_static_weak (__libc_dlerror_result_free); + ++#ifdef SHARED ++ GLRO (dl_libc_freeres) (); ++#endif ++ + for (p = symbol_set_first_element (__libc_freeres_ptrs); + !symbol_set_end_p (__libc_freeres_ptrs, p); ++p) + free (*p); +diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h +index 484893c2928db8e7..9142bc8f493bce64 100644 +--- a/sysdeps/generic/ldsodefs.h ++++ b/sysdeps/generic/ldsodefs.h +@@ -713,6 +713,10 @@ struct rtld_global_ro + namespace. */ + void (*_dl_error_free) (void *); + void *(*_dl_tls_get_addr_soft) (struct link_map *); ++ ++ /* Called from __libc_shared to deallocate malloc'ed memory. */ ++ void (*_dl_libc_freeres) (void); ++ + #ifdef HAVE_DL_DISCOVER_OSVERSION + int (*_dl_discover_osversion) (void); + #endif +@@ -1503,6 +1507,9 @@ __rtld_mutex_init (void) + } + #endif /* !PTHREAD_IN_LIBC */ + ++/* Implementation of GL (dl_libc_freeres). */ ++void __rtld_libc_freeres (void) attribute_hidden; ++ + #if THREAD_GSCOPE_IN_TCB + void __thread_gscope_wait (void) attribute_hidden; + # define THREAD_GSCOPE_WAIT() __thread_gscope_wait () diff --git a/SOURCES/glibc-RHEL-93320-4.patch b/SOURCES/glibc-RHEL-93320-4.patch new file mode 100644 index 0000000..2d7117b --- /dev/null +++ b/SOURCES/glibc-RHEL-93320-4.patch @@ -0,0 +1,2764 @@ +commit 5d28a8962dcb6ec056b81d730e3c6fb57185a210 +Author: Florian Weimer +Date: Tue Dec 28 22:52:56 2021 +0100 + + elf: Add _dl_find_object function + + It can be used to speed up the libgcc unwinder, and the internal + _dl_find_dso_for_object function (which is used for caller + identification in dlopen and related functions, and in dladdr). + + _dl_find_object is in the internal namespace due to bug 28503. + If libgcc switches to _dl_find_object, this namespace issue will + be fixed. It is located in libc for two reasons: it is necessary + to forward the call to the static libc after static dlopen, and + there is a link ordering issue with -static-libgcc and libgcc_eh.a + because libc.so is not a linker script that includes ld.so in the + glibc build tree (so that GCC's internal -lc after libgcc_eh.a does + not pick up ld.so). + + It is necessary to do the i386 customization in the + sysdeps/x86/bits/dl_find_object.h header shared with x86-64 because + otherwise, multilib installations are broken. + + The implementation uses software transactional memory, as suggested + by Torvald Riegel. Two copies of the supporting data structures are + used, also achieving full async-signal-safety. + + Reviewed-by: Adhemerval Zanella + +Conflicts: + elf/Makefile + Updated for change of layout + elf/dl-support.c + Updated for minor context changes + elf/rtld.c + Updated for context changes caused by the existing + backport of upstream 706209867f1ba89c458033408d419e92d8055f58 + "elf: Second ld.so relocation only if libc.so has been loaded" + include/link.h + Updated for minor context changes + manual/dynlink.texi + Already added by glibc-RHEL-22165-1.patch, folded in the + typo fix from upstream + 6cf4ebe10c6f0f60cdfce98f5a0ec7c5ceb987df + sysdeps/mach/hurd/i386/libc.abilist + Updated for minor context changes + +diff --git a/bits/dl_find_object.h b/bits/dl_find_object.h +new file mode 100644 +index 0000000000000000..5d652c9c7144b678 +--- /dev/null ++++ b/bits/dl_find_object.h +@@ -0,0 +1,32 @@ ++/* System dependent definitions for finding objects by address. ++ Copyright (C) 2021 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#ifndef _DLFCN_H ++# error "Never use directly; include instead." ++#endif ++ ++/* This implementation does not have a dlfo_eh_dbase member in struct ++ dl_find_object. */ ++#define DLFO_STRUCT_HAS_EH_DBASE 0 ++ ++/* This implementation does not have a dlfo_eh_count member in struct ++ dl_find_object. */ ++#define DLFO_STRUCT_HAS_EH_COUNT 0 ++ ++/* The ELF segment which contains the exception handling data. */ ++#define DLFO_EH_SEGMENT_TYPE PT_GNU_EH_FRAME +diff --git a/dlfcn/Makefile b/dlfcn/Makefile +index d3965427dabed898..3466669f18577b2e 100644 +--- a/dlfcn/Makefile ++++ b/dlfcn/Makefile +@@ -19,7 +19,7 @@ subdir := dlfcn + + include ../Makeconfig + +-headers := bits/dlfcn.h dlfcn.h ++headers := bits/dlfcn.h bits/dl_find_object.h dlfcn.h + extra-libs := libdl + libdl-routines := libdl-compat + routines = \ +diff --git a/dlfcn/dlfcn.h b/dlfcn/dlfcn.h +index 24388cfedae4dd67..8168a71dbfe90e75 100644 +--- a/dlfcn/dlfcn.h ++++ b/dlfcn/dlfcn.h +@@ -28,6 +28,8 @@ + + + #ifdef __USE_GNU ++#include ++ + /* If the first argument of `dlsym' or `dlvsym' is set to RTLD_NEXT + the run-time address of the symbol called NAME in the next shared + object is returned. The "next" relation is defined by the order +@@ -199,6 +201,31 @@ typedef struct + Dl_serpath dls_serpath[1]; /* Actually longer, dls_cnt elements. */ + # endif + } Dl_serinfo; ++ ++struct dl_find_object ++{ ++ __extension__ unsigned long long int dlfo_flags; ++ void *dlfo_map_start; /* Beginning of mapping containing address. */ ++ void *dlfo_map_end; /* End of mapping. */ ++ struct link_map *dlfo_link_map; ++ void *dlfo_eh_frame; /* Exception handling data of the object. */ ++# if DLFO_STRUCT_HAS_EH_DBASE ++ void *dlfo_eh_dbase; /* Base address for DW_EH_PE_datarel. */ ++# if __WORDSIZE == 32 ++ unsigned int __dlfo_eh_dbase_pad; ++# endif ++# endif ++# if DLFO_STRUCT_HAS_EH_COUNT ++ int dlfo_eh_count; /* Number of exception handling entries. */ ++ unsigned int __dlfo_eh_count_pad; ++# endif ++ __extension__ unsigned long long int __dflo_reserved[7]; ++}; ++ ++/* If ADDRESS is found in an object, fill in *RESULT and return 0. ++ Otherwise, return -1. */ ++int _dl_find_object (void *__address, struct dl_find_object *__result) __THROW; ++ + #endif /* __USE_GNU */ + + +diff --git a/elf/Makefile b/elf/Makefile +index f5c9b6df9a8f9acd..e1e6107c277f5f76 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -43,6 +43,7 @@ routines = \ + dl-sym \ + dl-sysdep \ + enbl-secure \ ++ libc-dl_find_object \ + libc_early_init \ + rtld_static_init \ + # routines +@@ -58,6 +59,7 @@ dl-routines = \ + dl-deps \ + dl-exception \ + dl-execstack \ ++ dl-find_object \ + dl-fini \ + dl-init \ + dl-load \ +@@ -119,6 +121,9 @@ elide-routines.os = \ + thread_gscope_wait \ + # elide-routines.os + ++# These object files are only included in the dynamically-linked libc. ++shared-only-routines = libc-dl_find_object ++ + # ld.so uses those routines, plus some special stuff for being the program + # interpreter and operating independent of libc. + rtld-routines = \ +@@ -280,6 +285,7 @@ tests-static-internal := \ + tst-stackguard1-static \ + tst-tls1-static \ + tst-tls1-static-non-pie \ ++ tst-dl_find_object-static \ + # tests-static-internal + + CRT-tst-tls1-static-non-pie := $(csu-objpfx)crt1.o +@@ -520,6 +526,7 @@ tests-internal += \ + tst-tls8 \ + unload \ + unload2 \ ++ tst-dl_find_object tst-dl_find_object-threads \ + # tests-internal + + tests-container += \ +@@ -781,6 +788,16 @@ modules-names = \ + tst-deep1mod1 \ + tst-deep1mod2 \ + tst-deep1mod3 \ ++ tst-dl_find_object-mod1 \ ++ tst-dl_find_object-mod2 \ ++ tst-dl_find_object-mod3 \ ++ tst-dl_find_object-mod4 \ ++ tst-dl_find_object-mod5 \ ++ tst-dl_find_object-mod6 \ ++ tst-dl_find_object-mod7 \ ++ tst-dl_find_object-mod8 \ ++ tst-dl_find_object-mod9 \ ++ tst-dlmopen1mod \ + tst-dlclose-lazy-mod1 \ + tst-dlclose-lazy-mod2 \ + tst-dlmopen-dlerror-mod \ +@@ -2772,6 +2789,37 @@ $(objpfx)tst-ro-dynamic-mod.so: $(objpfx)tst-ro-dynamic-mod.os \ + + $(objpfx)tst-rtld-run-static.out: $(objpfx)ldconfig + ++$(objpfx)tst-dl_find_object.out: \ ++ $(objpfx)tst-dl_find_object-mod1.so $(objpfx)tst-dl_find_object-mod2.so ++$(objpfx)tst-dl_find_object-static.out: \ ++ $(objpfx)tst-dl_find_object-mod1.so $(objpfx)tst-dl_find_object-mod2.so ++tst-dl_find_object-static-ENV = $(static-dlopen-environment) ++CFLAGS-tst-dl_find_object.c += -funwind-tables ++CFLAGS-tst-dl_find_object-static.c += -funwind-tables ++LDFLAGS-tst-dl_find_object-static += -Wl,--eh-frame-hdr ++CFLAGS-tst-dl_find_object-mod1.c += -funwind-tables ++CFLAGS-tst-dl_find_object-mod2.c += -funwind-tables ++LDFLAGS-tst-dl_find_object-mod2.so += -Wl,--enable-new-dtags,-z,nodelete ++$(objpfx)tst-dl_find_object-threads: $(shared-thread-library) ++CFLAGS-tst-dl_find_object-threads.c += -funwind-tables ++$(objpfx)tst-dl_find_object-threads.out: \ ++ $(objpfx)tst-dl_find_object-mod1.so \ ++ $(objpfx)tst-dl_find_object-mod2.so \ ++ $(objpfx)tst-dl_find_object-mod3.so \ ++ $(objpfx)tst-dl_find_object-mod4.so \ ++ $(objpfx)tst-dl_find_object-mod5.so \ ++ $(objpfx)tst-dl_find_object-mod6.so \ ++ $(objpfx)tst-dl_find_object-mod7.so \ ++ $(objpfx)tst-dl_find_object-mod8.so \ ++ $(objpfx)tst-dl_find_object-mod9.so ++CFLAGS-tst-dl_find_object-mod3.c += -funwind-tables ++CFLAGS-tst-dl_find_object-mod4.c += -funwind-tables ++CFLAGS-tst-dl_find_object-mod5.c += -funwind-tables ++CFLAGS-tst-dl_find_object-mod6.c += -funwind-tables ++CFLAGS-tst-dl_find_object-mod7.c += -funwind-tables ++CFLAGS-tst-dl_find_object-mod8.c += -funwind-tables ++CFLAGS-tst-dl_find_object-mod9.c += -funwind-tables ++ + $(objpfx)tst-tls-allocation-failure-static-patched: \ + $(objpfx)tst-tls-allocation-failure-static $(..)scripts/tst-elf-edit.py + cp $< $@ +diff --git a/elf/Versions b/elf/Versions +index 17834c7d1c371e1d..71d648a6b4bcbf5a 100644 +--- a/elf/Versions ++++ b/elf/Versions +@@ -20,6 +20,9 @@ libc { + __register_frame_info_table_bases; _Unwind_Find_FDE; + } + %endif ++ GLIBC_2.35 { ++ _dl_find_object; ++ } + GLIBC_PRIVATE { + # functions used in other libraries + __libc_early_init; +diff --git a/elf/dl-close.c b/elf/dl-close.c +index fa3974afba798073..4514c53d2db261c1 100644 +--- a/elf/dl-close.c ++++ b/elf/dl-close.c +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + + #include + +@@ -694,6 +695,9 @@ _dl_close_worker (struct link_map *map, bool force) + if (imap->l_next != NULL) + imap->l_next->l_prev = imap->l_prev; + ++ /* Update the data used by _dl_find_object. */ ++ _dl_find_object_dlclose (imap); ++ + free (imap->l_versions); + if (imap->l_origin != (char *) -1) + free ((char *) imap->l_origin); +diff --git a/elf/dl-find_object.c b/elf/dl-find_object.c +new file mode 100644 +index 0000000000000000..324f40742d59b4dc +--- /dev/null ++++ b/elf/dl-find_object.c +@@ -0,0 +1,842 @@ ++/* Locating objects in the process image. ld.so implementation. ++ Copyright (C) 2021 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Fallback implementation of _dl_find_object. It uses a linear ++ search, needs locking, and is not async-signal-safe. It is used in ++ _dl_find_object prior to initialization, when called from audit ++ modules. It also serves as the reference implementation for ++ _dl_find_object. */ ++static int ++_dl_find_object_slow (void *pc, struct dl_find_object *result) ++{ ++ ElfW(Addr) addr = (ElfW(Addr)) pc; ++ for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns) ++ for (struct link_map *l = GL(dl_ns)[ns]._ns_loaded; l != NULL; ++ l = l->l_next) ++ if (addr >= l->l_map_start && addr < l->l_map_end ++ && (l->l_contiguous || _dl_addr_inside_object (l, addr))) ++ { ++ assert (ns == l->l_ns); ++ struct dl_find_object_internal internal; ++ _dl_find_object_from_map (l, &internal); ++ _dl_find_object_to_external (&internal, result); ++ return 1; ++ } ++ ++ /* Object not found. */ ++ return -1; ++} ++ ++/* Data for the main executable. There is usually a large gap between ++ the main executable and initially loaded shared objects. Record ++ the main executable separately, to increase the chance that the ++ range for the non-closeable mappings below covers only the shared ++ objects (and not also the gap between main executable and shared ++ objects). */ ++static struct dl_find_object_internal _dlfo_main attribute_relro; ++ ++/* Data for initially loaded shared objects that cannot be unloaded. ++ (This may also contain non-contiguous mappings from the main ++ executable.) The mappings are stored in address order in the ++ _dlfo_nodelete_mappings array (containing ++ _dlfo_nodelete_mappings_size elements). It is not modified after ++ initialization. */ ++static uintptr_t _dlfo_nodelete_mappings_end attribute_relro; ++static size_t _dlfo_nodelete_mappings_size attribute_relro; ++static struct dl_find_object_internal *_dlfo_nodelete_mappings ++ attribute_relro; ++ ++/* Mappings created by dlopen can go away with dlclose, so a dynamic ++ data structure with some synchronization is needed. Individual ++ segments are similar to the _dlfo_nodelete_mappings array above. ++ The previous segment contains lower addresses and is at most half ++ as long. Checking the address of the base address of the first ++ element during a lookup can therefore approximate a binary search ++ over all segments, even though the data is not stored in one ++ contiguous array. ++ ++ During updates, the segments are overwritten in place, and a ++ software transactional memory construct (involving the ++ _dlfo_loaded_mappings_version variable) is used to detect ++ concurrent modification, and retry as necessary. The memory ++ allocations are never deallocated, but slots used for objects that ++ have been dlclose'd can be reused by dlopen. The memory can live ++ in the regular C malloc heap. ++ ++ The segments are populated from the start of the list, with the ++ mappings with the highest address. Only if this segment is full, ++ previous segments are used for mappings at lower addresses. The ++ remaining segments are populated as needed, but after allocating ++ further segments, some of the initial segments (at the end of the ++ linked list) can be empty (with size 0). ++ ++ Adding new elements to this data structure is another source of ++ quadratic behavior for dlopen. If the other causes of quadratic ++ behavior are eliminated, a more complicated data structure will be ++ needed. */ ++struct dlfo_mappings_segment ++{ ++ /* The previous segment has lower base addresses. */ ++ struct dlfo_mappings_segment *previous; ++ ++ /* Used by __libc_freeres to deallocate malloc'ed memory. */ ++ void *to_free; ++ ++ /* Count of array elements in use and allocated. */ ++ size_t size; ++ size_t allocated; ++ ++ struct dl_find_object_internal objects[]; ++}; ++ ++/* To achieve async-signal-safety, two copies of the data structure ++ are used, so that a signal handler can still use this data even if ++ dlopen or dlclose modify the other copy. The the MSB in ++ _dlfo_loaded_mappings_version determines which array element is the ++ currently active region. */ ++static struct dlfo_mappings_segment *_dlfo_loaded_mappings[2]; ++ ++/* Returns the number of actually used elements in all segments ++ starting at SEG. */ ++static inline size_t ++_dlfo_mappings_segment_count_used (struct dlfo_mappings_segment *seg) ++{ ++ size_t count = 0; ++ for (; seg != NULL && seg->size > 0; seg = seg->previous) ++ for (size_t i = 0; i < seg->size; ++i) ++ /* Exclude elements which have been dlclose'd. */ ++ count += seg->objects[i].map != NULL; ++ return count; ++} ++ ++/* Compute the total number of available allocated segments linked ++ from SEG. */ ++static inline size_t ++_dlfo_mappings_segment_count_allocated (struct dlfo_mappings_segment *seg) ++{ ++ size_t count = 0; ++ for (; seg != NULL; seg = seg->previous) ++ count += seg->allocated; ++ return count; ++} ++ ++/* This is essentially an arbitrary value. dlopen allocates plenty of ++ memory anyway, so over-allocated a bit does not hurt. Not having ++ many small-ish segments helps to avoid many small binary searches. ++ Not using a power of 2 means that we do not waste an extra page ++ just for the malloc header if a mapped allocation is used in the ++ glibc allocator. */ ++enum { dlfo_mappings_initial_segment_size = 63 }; ++ ++/* Allocate an empty segment. This used for the first ever ++ allocation. */ ++static struct dlfo_mappings_segment * ++_dlfo_mappings_segment_allocate_unpadded (size_t size) ++{ ++ if (size < dlfo_mappings_initial_segment_size) ++ size = dlfo_mappings_initial_segment_size; ++ /* No overflow checks here because the size is a mapping count, and ++ struct link_map is larger than what we allocate here. */ ++ enum ++ { ++ element_size = sizeof ((struct dlfo_mappings_segment) {}.objects[0]) ++ }; ++ size_t to_allocate = (sizeof (struct dlfo_mappings_segment) ++ + size * element_size); ++ struct dlfo_mappings_segment *result = malloc (to_allocate); ++ if (result != NULL) ++ { ++ result->previous = NULL; ++ result->to_free = NULL; /* Minimal malloc memory cannot be freed. */ ++ result->size = 0; ++ result->allocated = size; ++ } ++ return result; ++} ++ ++/* Allocate an empty segment that is at least SIZE large. PREVIOUS ++ points to the chain of previously allocated segments and can be ++ NULL. */ ++static struct dlfo_mappings_segment * ++_dlfo_mappings_segment_allocate (size_t size, ++ struct dlfo_mappings_segment * previous) ++{ ++ /* Exponential sizing policies, so that lookup approximates a binary ++ search. */ ++ { ++ size_t minimum_growth; ++ if (previous == NULL) ++ minimum_growth = dlfo_mappings_initial_segment_size; ++ else ++ minimum_growth = 2* previous->allocated; ++ if (size < minimum_growth) ++ size = minimum_growth; ++ } ++ enum { cache_line_size_estimate = 128 }; ++ /* No overflow checks here because the size is a mapping count, and ++ struct link_map is larger than what we allocate here. */ ++ enum ++ { ++ element_size = sizeof ((struct dlfo_mappings_segment) {}.objects[0]) ++ }; ++ size_t to_allocate = (sizeof (struct dlfo_mappings_segment) ++ + size * element_size ++ + 2 * cache_line_size_estimate); ++ char *ptr = malloc (to_allocate); ++ if (ptr == NULL) ++ return NULL; ++ char *original_ptr = ptr; ++ /* Start and end at a (conservative) 128-byte cache line boundary. ++ Do not use memalign for compatibility with partially interposing ++ malloc implementations. */ ++ char *end = PTR_ALIGN_DOWN (ptr + to_allocate, cache_line_size_estimate); ++ ptr = PTR_ALIGN_UP (ptr, cache_line_size_estimate); ++ struct dlfo_mappings_segment *result ++ = (struct dlfo_mappings_segment *) ptr; ++ result->previous = previous; ++ result->to_free = original_ptr; ++ result->size = 0; ++ /* We may have obtained slightly more space if malloc happened ++ to provide an over-aligned pointer. */ ++ result->allocated = (((uintptr_t) (end - ptr) ++ - sizeof (struct dlfo_mappings_segment)) ++ / element_size); ++ assert (result->allocated >= size); ++ return result; ++} ++ ++/* Monotonic counter for software transactional memory. The lowest ++ bit indicates which element of the _dlfo_loaded_mappings contains ++ up-to-date data. */ ++static __atomic_wide_counter _dlfo_loaded_mappings_version; ++ ++/* TM version at the start of the read operation. */ ++static inline uint64_t ++_dlfo_read_start_version (void) ++{ ++ /* Acquire MO load synchronizes with the fences at the beginning and ++ end of the TM update region. */ ++ return __atomic_wide_counter_load_acquire (&_dlfo_loaded_mappings_version); ++} ++ ++/* Optimized variant of _dlfo_read_start_version which can be called ++ when the loader is write-locked. */ ++static inline uint64_t ++_dlfo_read_version_locked (void) ++{ ++ return __atomic_wide_counter_load_relaxed (&_dlfo_loaded_mappings_version); ++} ++ ++/* Update the version to reflect that an update is happening. This ++ does not change the bit that controls the active segment chain. ++ Returns the index of the currently active segment chain. */ ++static inline unsigned int ++_dlfo_mappings_begin_update (void) ++{ ++ unsigned int v ++ = __atomic_wide_counter_fetch_add_relaxed (&_dlfo_loaded_mappings_version, ++ 2); ++ /* Subsequent stores to the TM data must not be reordered before the ++ store above with the version update. */ ++ atomic_thread_fence_release (); ++ return v & 1; ++} ++ ++/* Installs the just-updated version as the active version. */ ++static inline void ++_dlfo_mappings_end_update (void) ++{ ++ /* The previous writes to the TM data must not be reordered after ++ the version update below. */ ++ atomic_thread_fence_release (); ++ __atomic_wide_counter_fetch_add_relaxed (&_dlfo_loaded_mappings_version, ++ 1); ++} ++/* Completes an in-place update without switching versions. */ ++static inline void ++_dlfo_mappings_end_update_no_switch (void) ++{ ++ /* The previous writes to the TM data must not be reordered after ++ the version update below. */ ++ atomic_thread_fence_release (); ++ __atomic_wide_counter_fetch_add_relaxed (&_dlfo_loaded_mappings_version, ++ 2); ++} ++ ++/* Return true if the read was successful, given the start ++ version. */ ++static inline bool ++_dlfo_read_success (uint64_t start_version) ++{ ++ return _dlfo_read_start_version () == start_version; ++} ++ ++/* Returns the active segment identified by the specified start ++ version. */ ++static struct dlfo_mappings_segment * ++_dlfo_mappings_active_segment (uint64_t start_version) ++{ ++ return _dlfo_loaded_mappings[start_version & 1]; ++} ++ ++/* Searches PC amoung the address-sorted array [FIRST1, FIRST1 + ++ SIZE). Assumes PC >= FIRST1->map_start. Returns a pointer to the ++ element that contains PC, or NULL if there is no such element. */ ++static inline struct dl_find_object_internal * ++_dlfo_lookup (uintptr_t pc, struct dl_find_object_internal *first1, size_t size) ++{ ++ struct dl_find_object_internal *end = first1 + size; ++ ++ /* Search for a lower bound in first. */ ++ struct dl_find_object_internal *first = first1; ++ while (size > 0) ++ { ++ size_t half = size >> 1; ++ struct dl_find_object_internal *middle = first + half; ++ if (middle->map_start < pc) ++ { ++ first = middle + 1; ++ size -= half + 1; ++ } ++ else ++ size = half; ++ } ++ ++ if (first != end && pc == first->map_start) ++ { ++ if (pc < first->map_end) ++ return first; ++ else ++ /* Zero-length mapping after dlclose. */ ++ return NULL; ++ } ++ else ++ { ++ /* Check to see if PC is in the previous mapping. */ ++ --first; ++ if (pc < first->map_end) ++ /* pc >= first->map_start implied by the search above. */ ++ return first; ++ else ++ return NULL; ++ } ++} ++ ++int ++_dl_find_object (void *pc1, struct dl_find_object *result) ++{ ++ uintptr_t pc = (uintptr_t) pc1; ++ ++ if (__glibc_unlikely (_dlfo_main.map_end == 0)) ++ { ++ /* Not initialized. No locking is needed here because this can ++ only be called from audit modules, which cannot create ++ threads. */ ++ return _dl_find_object_slow (pc1, result); ++ } ++ ++ /* Main executable. */ ++ if (pc >= _dlfo_main.map_start && pc < _dlfo_main.map_end) ++ { ++ _dl_find_object_to_external (&_dlfo_main, result); ++ return 0; ++ } ++ ++ /* Other initially loaded objects. */ ++ if (pc >= _dlfo_nodelete_mappings->map_start ++ && pc < _dlfo_nodelete_mappings_end) ++ { ++ struct dl_find_object_internal *obj ++ = _dlfo_lookup (pc, _dlfo_nodelete_mappings, ++ _dlfo_nodelete_mappings_size); ++ if (obj != NULL) ++ { ++ _dl_find_object_to_external (obj, result); ++ return 0; ++ } ++ /* Fall through to the full search. The kernel may have mapped ++ the initial mappings with gaps that are later filled by ++ dlopen with other mappings. */ ++ } ++ ++ /* Handle audit modules, dlopen, dlopen objects. This uses software ++ transactional memory, with a retry loop in case the version ++ changes during execution. */ ++ while (true) ++ { ++ retry: ++ ; ++ uint64_t start_version = _dlfo_read_start_version (); ++ ++ /* The read through seg->previous assumes that the CPU ++ recognizes the load dependency, so that no invalid size ++ values is read. Furthermore, the code assumes that no ++ out-of-thin-air value for seg->size is observed. Together, ++ this ensures that the observed seg->size value is always less ++ than seg->allocated, so that _dlfo_mappings_index does not ++ read out-of-bounds. (This avoids intermediate TM version ++ verification. A concurrent version update will lead to ++ invalid lookup results, but not to out-of-memory access.) ++ ++ Either seg == NULL or seg->size == 0 terminates the segment ++ list. _dl_find_object_update does not bother to clear the ++ size on earlier unused segments. */ ++ for (struct dlfo_mappings_segment *seg ++ = _dlfo_mappings_active_segment (start_version); ++ seg != NULL && seg->size > 0; seg = seg->previous) ++ if (pc >= seg->objects[0].map_start) ++ { ++ /* PC may lie within this segment. If it is less than the ++ segment start address, it can only lie in a previous ++ segment, due to the base address sorting. */ ++ struct dl_find_object_internal *obj ++ = _dlfo_lookup (pc, seg->objects, seg->size); ++ ++ if (obj != NULL) ++ { ++ /* Found the right mapping. Copy out the data prior to ++ checking if the read transaction was successful. */ ++ struct dl_find_object_internal copy = *obj; ++ if (_dlfo_read_success (start_version)) ++ { ++ _dl_find_object_to_external (©, result); ++ return 0; ++ } ++ else ++ /* Read transaction failure. */ ++ goto retry; ++ } ++ else ++ { ++ /* PC is not covered by this mapping. */ ++ if (_dlfo_read_success (start_version)) ++ return -1; ++ else ++ /* Read transaction failure. */ ++ goto retry; ++ } ++ } /* if: PC might lie within the current seg. */ ++ ++ /* PC is not covered by any segment. */ ++ if (_dlfo_read_success (start_version)) ++ return -1; ++ } /* Transaction retry loop. */ ++} ++rtld_hidden_def (_dl_find_object) ++ ++/* _dlfo_process_initial is called twice. First to compute the array ++ sizes from the initial loaded mappings. Second to fill in the ++ bases and infos arrays with the (still unsorted) data. Returns the ++ number of loaded (non-nodelete) mappings. */ ++static size_t ++_dlfo_process_initial (void) ++{ ++ struct link_map *main_map = GL(dl_ns)[LM_ID_BASE]._ns_loaded; ++ ++ size_t nodelete = 0; ++ if (!main_map->l_contiguous) ++ { ++ struct dl_find_object_internal dlfo; ++ _dl_find_object_from_map (main_map, &dlfo); ++ ++ /* PT_LOAD segments for a non-contiguous are added to the ++ non-closeable mappings. */ ++ for (const ElfW(Phdr) *ph = main_map->l_phdr, ++ *ph_end = main_map->l_phdr + main_map->l_phnum; ++ ph < ph_end; ++ph) ++ if (ph->p_type == PT_LOAD) ++ { ++ if (_dlfo_nodelete_mappings != NULL) ++ { ++ /* Second pass only. */ ++ _dlfo_nodelete_mappings[nodelete] = dlfo; ++ _dlfo_nodelete_mappings[nodelete].map_start ++ = ph->p_vaddr + main_map->l_addr; ++ _dlfo_nodelete_mappings[nodelete].map_end ++ = _dlfo_nodelete_mappings[nodelete].map_start + ph->p_memsz; ++ } ++ ++nodelete; ++ } ++ } ++ ++ size_t loaded = 0; ++ for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns) ++ for (struct link_map *l = GL(dl_ns)[ns]._ns_loaded; l != NULL; ++ l = l->l_next) ++ /* Skip the main map processed above, and proxy maps. */ ++ if (l != main_map && l == l->l_real) ++ { ++ /* lt_library link maps are implicitly NODELETE. */ ++ if (l->l_type == lt_library || l->l_nodelete_active) ++ { ++ if (_dlfo_nodelete_mappings != NULL) ++ /* Second pass only. */ ++ _dl_find_object_from_map ++ (l, _dlfo_nodelete_mappings + nodelete); ++ ++nodelete; ++ } ++ else if (l->l_type == lt_loaded) ++ { ++ if (_dlfo_loaded_mappings[0] != NULL) ++ /* Second pass only. */ ++ _dl_find_object_from_map ++ (l, &_dlfo_loaded_mappings[0]->objects[loaded]); ++ ++loaded; ++ } ++ } ++ ++ _dlfo_nodelete_mappings_size = nodelete; ++ return loaded; ++} ++ ++/* Selection sort based on mapping start address. */ ++void ++_dlfo_sort_mappings (struct dl_find_object_internal *objects, size_t size) ++{ ++ if (size < 2) ++ return; ++ ++ for (size_t i = 0; i < size - 1; ++i) ++ { ++ /* Find minimum. */ ++ size_t min_idx = i; ++ uintptr_t min_val = objects[i].map_start; ++ for (size_t j = i + 1; j < size; ++j) ++ if (objects[j].map_start < min_val) ++ { ++ min_idx = j; ++ min_val = objects[j].map_start; ++ } ++ ++ /* Swap into place. */ ++ struct dl_find_object_internal tmp = objects[min_idx]; ++ objects[min_idx] = objects[i]; ++ objects[i] = tmp; ++ } ++} ++ ++void ++_dl_find_object_init (void) ++{ ++ /* Cover the main mapping. */ ++ { ++ struct link_map *main_map = GL(dl_ns)[LM_ID_BASE]._ns_loaded; ++ ++ if (main_map->l_contiguous) ++ _dl_find_object_from_map (main_map, &_dlfo_main); ++ else ++ { ++ /* Non-contiguous main maps are handled in ++ _dlfo_process_initial. Mark as initialized, but not ++ coverying any valid PC. */ ++ _dlfo_main.map_start = -1; ++ _dlfo_main.map_end = -1; ++ } ++ } ++ ++ /* Allocate the data structures. */ ++ size_t loaded_size = _dlfo_process_initial (); ++ _dlfo_nodelete_mappings = malloc (_dlfo_nodelete_mappings_size ++ * sizeof (*_dlfo_nodelete_mappings)); ++ if (loaded_size > 0) ++ _dlfo_loaded_mappings[0] ++ = _dlfo_mappings_segment_allocate_unpadded (loaded_size); ++ if (_dlfo_nodelete_mappings == NULL ++ || (loaded_size > 0 && _dlfo_loaded_mappings[0] == NULL)) ++ _dl_fatal_printf ("\ ++Fatal glibc error: cannot allocate memory for find-object data\n"); ++ /* Fill in the data with the second call. */ ++ _dlfo_nodelete_mappings_size = 0; ++ _dlfo_process_initial (); ++ ++ /* Sort both arrays. */ ++ if (_dlfo_nodelete_mappings_size > 0) ++ { ++ _dlfo_sort_mappings (_dlfo_nodelete_mappings, ++ _dlfo_nodelete_mappings_size); ++ size_t last_idx = _dlfo_nodelete_mappings_size - 1; ++ _dlfo_nodelete_mappings_end = _dlfo_nodelete_mappings[last_idx].map_end; ++ } ++ if (loaded_size > 0) ++ _dlfo_sort_mappings (_dlfo_loaded_mappings[0]->objects, ++ _dlfo_loaded_mappings[0]->size); ++} ++ ++static void ++_dl_find_object_link_map_sort (struct link_map **loaded, size_t size) ++{ ++ /* Selection sort based on map_start. */ ++ if (size < 2) ++ return; ++ for (size_t i = 0; i < size - 1; ++i) ++ { ++ /* Find minimum. */ ++ size_t min_idx = i; ++ ElfW(Addr) min_val = loaded[i]->l_map_start; ++ for (size_t j = i + 1; j < size; ++j) ++ if (loaded[j]->l_map_start < min_val) ++ { ++ min_idx = j; ++ min_val = loaded[j]->l_map_start; ++ } ++ ++ /* Swap into place. */ ++ struct link_map *tmp = loaded[min_idx]; ++ loaded[min_idx] = loaded[i]; ++ loaded[i] = tmp; ++ } ++} ++ ++/* Initializes the segment for writing. Returns the target write ++ index (plus 1) in this segment. The index is chosen so that a ++ partially filled segment still has data at index 0. */ ++static inline size_t ++_dlfo_update_init_seg (struct dlfo_mappings_segment *seg, ++ size_t remaining_to_add) ++{ ++ if (remaining_to_add < seg->allocated) ++ /* Partially filled segment. */ ++ seg->size = remaining_to_add; ++ else ++ seg->size = seg->allocated; ++ return seg->size; ++} ++ ++/* Invoked from _dl_find_object_update after sorting. */ ++static bool ++_dl_find_object_update_1 (struct link_map **loaded, size_t count) ++{ ++ int active_idx = _dlfo_read_version_locked () & 1; ++ ++ struct dlfo_mappings_segment *current_seg ++ = _dlfo_loaded_mappings[active_idx]; ++ size_t current_used = _dlfo_mappings_segment_count_used (current_seg); ++ ++ struct dlfo_mappings_segment *target_seg ++ = _dlfo_loaded_mappings[!active_idx]; ++ size_t remaining_to_add = current_used + count; ++ ++ /* Ensure that the new segment chain has enough space. */ ++ { ++ size_t new_allocated ++ = _dlfo_mappings_segment_count_allocated (target_seg); ++ if (new_allocated < remaining_to_add) ++ { ++ size_t more = remaining_to_add - new_allocated; ++ target_seg = _dlfo_mappings_segment_allocate (more, target_seg); ++ if (target_seg == NULL) ++ /* Out of memory. Do not end the update and keep the ++ current version unchanged. */ ++ return false; ++ ++ /* Start update cycle. */ ++ _dlfo_mappings_begin_update (); ++ ++ /* The barrier ensures that a concurrent TM read or fork does ++ not see a partially initialized segment. */ ++ atomic_store_release (&_dlfo_loaded_mappings[!active_idx], target_seg); ++ } ++ else ++ /* Start update cycle without allocation. */ ++ _dlfo_mappings_begin_update (); ++ } ++ ++ size_t target_seg_index1 = _dlfo_update_init_seg (target_seg, ++ remaining_to_add); ++ ++ /* Merge the current_seg segment list with the loaded array into the ++ target_set. Merging occurs backwards, in decreasing l_map_start ++ order. */ ++ size_t loaded_index1 = count; ++ size_t current_seg_index1; ++ if (current_seg == NULL) ++ current_seg_index1 = 0; ++ else ++ current_seg_index1 = current_seg->size; ++ while (true) ++ { ++ if (current_seg_index1 == 0) ++ { ++ /* Switch to the previous segment. */ ++ if (current_seg != NULL) ++ current_seg = current_seg->previous; ++ if (current_seg != NULL) ++ { ++ current_seg_index1 = current_seg->size; ++ if (current_seg_index1 == 0) ++ /* No more data in previous segments. */ ++ current_seg = NULL; ++ } ++ } ++ ++ if (current_seg != NULL ++ && (current_seg->objects[current_seg_index1 - 1].map == NULL)) ++ { ++ /* This mapping has been dlclose'd. Do not copy it. */ ++ --current_seg_index1; ++ continue; ++ } ++ ++ if (loaded_index1 == 0 && current_seg == NULL) ++ /* No more data in either source. */ ++ break; ++ ++ /* Make room for another mapping. */ ++ assert (remaining_to_add > 0); ++ if (target_seg_index1 == 0) ++ { ++ /* Switch segments and set the size of the segment. */ ++ target_seg = target_seg->previous; ++ target_seg_index1 = _dlfo_update_init_seg (target_seg, ++ remaining_to_add); ++ } ++ ++ /* Determine where to store the data. */ ++ struct dl_find_object_internal *dlfo ++ = &target_seg->objects[target_seg_index1 - 1]; ++ ++ if (loaded_index1 == 0 ++ || (current_seg != NULL ++ && (loaded[loaded_index1 - 1]->l_map_start ++ < current_seg->objects[current_seg_index1 - 1].map_start))) ++ { ++ /* Prefer mapping in current_seg. */ ++ assert (current_seg_index1 > 0); ++ *dlfo = current_seg->objects[current_seg_index1 - 1]; ++ --current_seg_index1; ++ } ++ else ++ { ++ /* Prefer newly loaded link map. */ ++ assert (loaded_index1 > 0); ++ _dl_find_object_from_map (loaded[loaded_index1 - 1], dlfo); ++ loaded[loaded_index1 - 1]->l_find_object_processed = 1; ++ --loaded_index1; ++ } ++ ++ /* Consume space in target segment. */ ++ --target_seg_index1; ++ ++ --remaining_to_add; ++ } ++ ++ /* Everything has been added. */ ++ assert (remaining_to_add == 0); ++ ++ /* The segment must have been filled up to the beginning. */ ++ assert (target_seg_index1 == 0); ++ ++ /* Prevent searching further into unused segments. */ ++ if (target_seg->previous != NULL) ++ target_seg->previous->size = 0; ++ ++ _dlfo_mappings_end_update (); ++ return true; ++} ++ ++bool ++_dl_find_object_update (struct link_map *new_map) ++{ ++ /* Copy the newly-loaded link maps into an array for sorting. */ ++ size_t count = 0; ++ for (struct link_map *l = new_map; l != NULL; l = l->l_next) ++ /* Skip proxy maps and already-processed maps. */ ++ count += l == l->l_real && !l->l_find_object_processed; ++ struct link_map **map_array = malloc (count * sizeof (*map_array)); ++ if (map_array == NULL) ++ return false; ++ { ++ size_t i = 0; ++ for (struct link_map *l = new_map; l != NULL; l = l->l_next) ++ if (l == l->l_real && !l->l_find_object_processed) ++ map_array[i++] = l; ++ } ++ if (count == 0) ++ return true; ++ ++ _dl_find_object_link_map_sort (map_array, count); ++ bool ok = _dl_find_object_update_1 (map_array, count); ++ free (map_array); ++ return ok; ++} ++ ++void ++_dl_find_object_dlclose (struct link_map *map) ++{ ++ uint64_t start_version = _dlfo_read_version_locked (); ++ uintptr_t map_start = map->l_map_start; ++ ++ ++ /* Directly patch the size information in the mapping to mark it as ++ unused. See the parallel lookup logic in _dl_find_object. Do ++ not check for previous dlclose at the same mapping address ++ because that cannot happen (there would have to be an ++ intermediate dlopen, which drops size-zero mappings). */ ++ for (struct dlfo_mappings_segment *seg ++ = _dlfo_mappings_active_segment (start_version); ++ seg != NULL && seg->size > 0; seg = seg->previous) ++ if (map_start >= seg->objects[0].map_start) ++ { ++ struct dl_find_object_internal *obj ++ = _dlfo_lookup (map_start, seg->objects, seg->size); ++ if (obj == NULL) ++ /* Ignore missing link maps because of potential shutdown ++ issues around __libc_freeres. */ ++ return; ++ ++ /* The update happens in-place, but given that we do not use ++ atomic accesses on the read side, update the version around ++ the update to trigger re-validation in concurrent ++ readers. */ ++ _dlfo_mappings_begin_update (); ++ ++ /* Mark as closed. */ ++ obj->map_end = obj->map_start; ++ obj->map = NULL; ++ ++ _dlfo_mappings_end_update_no_switch (); ++ return; ++ } ++} ++ ++void ++_dl_find_object_freeres (void) ++{ ++ for (int idx = 0; idx < 2; ++idx) ++ { ++ for (struct dlfo_mappings_segment *seg = _dlfo_loaded_mappings[idx]; ++ seg != NULL; ) ++ { ++ struct dlfo_mappings_segment *previous = seg->previous; ++ free (seg->to_free); ++ seg = previous; ++ } ++ /* Stop searching in shared objects. */ ++ _dlfo_loaded_mappings[idx] = 0; ++ } ++} +diff --git a/elf/dl-find_object.h b/elf/dl-find_object.h +new file mode 100644 +index 0000000000000000..f899905e09427a0d +--- /dev/null ++++ b/elf/dl-find_object.h +@@ -0,0 +1,115 @@ ++/* Locating objects in the process image. ld.so implementation. ++ Copyright (C) 2021 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#ifndef _DL_FIND_EH_FRAME_H ++#define _DL_FIND_EH_FRAME_H ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* Internal version of struct dl_find_object. Does not include the ++ (yet unused) flags member. We need to make a copy of data also in ++ struct link_map to support non-contiguous mappings, and to support ++ software transactional memory (the link map is not covered by ++ transactions). */ ++struct dl_find_object_internal ++{ ++ uintptr_t map_start; ++ uintptr_t map_end; /* Set to map_start by dlclose. */ ++ struct link_map *map; /* Set to NULL by dlclose. */ ++ void *eh_frame; ++#if DLFO_STRUCT_HAS_EH_DBASE ++ void *eh_dbase; ++#endif ++#if DLFO_STRUCT_HAS_EH_COUNT ++ int eh_count; ++#endif ++}; ++ ++static inline void ++_dl_find_object_to_external (struct dl_find_object_internal *internal, ++ struct dl_find_object *external) ++{ ++ external->dlfo_flags = 0; ++ external->dlfo_map_start = (void *) internal->map_start; ++ external->dlfo_map_end = (void *) internal->map_end; ++ external->dlfo_link_map = internal->map; ++ external->dlfo_eh_frame = internal->eh_frame; ++# if DLFO_STRUCT_HAS_EH_DBASE ++ external->dlfo_eh_dbase = internal->eh_dbase; ++# endif ++# if DLFO_STRUCT_HAS_EH_COUNT ++ external->dlfo_eh_count = internal->eh_count; ++# endif ++} ++ ++/* Extract the object location data from a link map and writes it to ++ *RESULT. */ ++static void __attribute__ ((unused)) ++_dl_find_object_from_map (struct link_map *l, ++ struct dl_find_object_internal *result) ++{ ++ result->map_start = (uintptr_t) l->l_map_start; ++ result->map_end = (uintptr_t) l->l_map_end; ++ result->map = l; ++ ++#if DLFO_STRUCT_HAS_EH_DBASE ++ result->eh_dbase = (void *) l->l_info[DT_PLTGOT]; ++#endif ++ ++ for (const ElfW(Phdr) *ph = l->l_phdr, *ph_end = l->l_phdr + l->l_phnum; ++ ph < ph_end; ++ph) ++ if (ph->p_type == DLFO_EH_SEGMENT_TYPE) ++ { ++ result->eh_frame = (void *) (ph->p_vaddr + l->l_addr); ++#if DLFO_STRUCT_HAS_EH_COUNT ++ result->eh_count = ph->p_memsz / 8; ++#endif ++ return; ++ } ++ ++ /* Object has no exception handling segment. */ ++ result->eh_frame = NULL; ++#if DLFO_STRUCT_HAS_EH_COUNT ++ result->eh_count = 0; ++#endif ++} ++ ++/* Called by the dynamic linker to set up the data structures for the ++ initially loaded objects. This creates a few persistent ++ allocations, so it should be called with the minimal malloc. */ ++void _dl_find_object_init (void) attribute_hidden; ++ ++/* Called by dlopen/dlmopen to add new objects to the DWARF EH frame ++ data structures. NEW_MAP is the dlopen'ed link map. Link maps on ++ the l_next list are added if l_object_processed is 0. Needs to ++ be protected by loader write lock. Returns true on success, false ++ on malloc failure. */ ++bool _dl_find_object_update (struct link_map *new_map) attribute_hidden; ++ ++/* Called by dlclose to remove the link map from the DWARF EH frame ++ data structures. Needs to be protected by loader write lock. */ ++void _dl_find_object_dlclose (struct link_map *l) attribute_hidden; ++ ++/* Called from __libc_freeres to deallocate malloc'ed memory. */ ++void _dl_find_object_freeres (void) attribute_hidden; ++ ++#endif /* _DL_FIND_OBJECT_H */ +diff --git a/elf/dl-libc_freeres.c b/elf/dl-libc_freeres.c +index 68f305a6f98aac0c..2a377fa9dfc4f1c0 100644 +--- a/elf/dl-libc_freeres.c ++++ b/elf/dl-libc_freeres.c +@@ -17,8 +17,10 @@ + . */ + + #include ++#include + + void + __rtld_libc_freeres (void) + { ++ _dl_find_object_freeres (); + } +diff --git a/elf/dl-open.c b/elf/dl-open.c +index df6aa55a8842ee62..1e659e02882b42c1 100644 +--- a/elf/dl-open.c ++++ b/elf/dl-open.c +@@ -36,6 +36,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -731,6 +732,10 @@ dl_open_worker_begin (void *a) + objects. */ + update_scopes (new); + ++ if (!_dl_find_object_update (new)) ++ _dl_signal_error (ENOMEM, new->l_libname->name, NULL, ++ N_ ("cannot allocate address lookup data")); ++ + /* FIXME: It is unclear whether the order here is correct. + Shouldn't new objects be made available for binding (and thus + execution) only after there TLS data has been set up fully? +diff --git a/elf/dl-support.c b/elf/dl-support.c +index 00abc2d8056c78b0..b80bdfc257f5fee0 100644 +--- a/elf/dl-support.c ++++ b/elf/dl-support.c +@@ -44,6 +44,7 @@ + #include + #include + #include ++#include + + extern char *__progname; + char **_dl_argv = &__progname; /* This is checked for some error messages. */ +@@ -352,6 +353,8 @@ _dl_non_dynamic_init (void) + break; + } + ++ call_function_static_weak (_dl_find_object_init); ++ + /* Setup relro on the binary itself. */ + _dl_protect_relro (&_dl_main_map); + } +diff --git a/elf/libc-dl_find_object.c b/elf/libc-dl_find_object.c +new file mode 100644 +index 0000000000000000..38ea3bc94999df6e +--- /dev/null ++++ b/elf/libc-dl_find_object.c +@@ -0,0 +1,26 @@ ++/* Locating objects in the process image. libc forwarder. ++ Copyright (C) 2021 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++int ++_dl_find_object (void *address, struct dl_find_object *result) ++{ ++ return GLRO (dl_find_object) (address, result); ++} +diff --git a/elf/rtld.c b/elf/rtld.c +index fd70c4c3528cda2d..b5be7674dc1dbf40 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -52,6 +52,7 @@ + #include + #include + #include ++#include + + #include + +@@ -583,6 +584,10 @@ _dl_start (void *arg) + + __rtld_malloc_init_stubs (); + ++ /* Do not use an initializer for these members because it would ++ intefere with __rtld_static_init. */ ++ GLRO (dl_find_object) = &_dl_find_object; ++ + { + #ifdef DONT_USE_BOOTSTRAP_MAP + ElfW(Addr) entry = _dl_start_final (arg); +@@ -2388,6 +2393,9 @@ dl_main (const ElfW(Phdr) *phdr, + rtld_timer_stop (&relocate_time, start); + } + ++ /* Set up the object lookup structures. */ ++ _dl_find_object_init (); ++ + /* The library defining malloc has already been relocated due to + prelinking. Resolve the malloc symbols for the dynamic + loader. */ +@@ -2497,6 +2505,9 @@ dl_main (const ElfW(Phdr) *phdr, + + if (! prelinked) + { ++ /* Set up the object lookup structures. */ ++ _dl_find_object_init (); ++ + /* If libc.so was loaded, relocate ld.so against it. Complete ld.so + initialization with mutex symbols from libc.so and malloc symbols + from the global scope. */ +diff --git a/elf/rtld_static_init.c b/elf/rtld_static_init.c +index 3f8abb6800b401d7..6027000d3a56e46e 100644 +--- a/elf/rtld_static_init.c ++++ b/elf/rtld_static_init.c +@@ -78,6 +78,7 @@ __rtld_static_init (struct link_map *map) + extern __typeof (dl->_dl_tls_static_size) _dl_tls_static_size + attribute_hidden; + dl->_dl_tls_static_size = _dl_tls_static_size; ++ dl->_dl_find_object = _dl_find_object; + + __rtld_static_init_arch (map, dl); + } +diff --git a/elf/tst-dl_find_object-mod1.c b/elf/tst-dl_find_object-mod1.c +new file mode 100644 +index 0000000000000000..d33ef56efddc1c2b +--- /dev/null ++++ b/elf/tst-dl_find_object-mod1.c +@@ -0,0 +1,10 @@ ++char mod1_data; ++ ++void ++mod1_function (void (*f) (void)) ++{ ++ /* Make sure this is not a tail call and unwind information is ++ therefore needed. */ ++ f (); ++ f (); ++} +diff --git a/elf/tst-dl_find_object-mod2.c b/elf/tst-dl_find_object-mod2.c +new file mode 100644 +index 0000000000000000..3dad31c97c906baf +--- /dev/null ++++ b/elf/tst-dl_find_object-mod2.c +@@ -0,0 +1,15 @@ ++#include ++ ++char mod2_data; ++ ++void ++mod2_function (void (*f) (void)) ++{ ++ /* Make sure this is not a tail call and unwind information is ++ therefore needed. */ ++ f (); ++ f (); ++} ++ ++/* Used to verify that _dl_find_object after static dlopen works. */ ++void *find_object = _dl_find_object; +diff --git a/elf/tst-dl_find_object-mod3.c b/elf/tst-dl_find_object-mod3.c +new file mode 100644 +index 0000000000000000..c1fc20ff9ce34503 +--- /dev/null ++++ b/elf/tst-dl_find_object-mod3.c +@@ -0,0 +1,10 @@ ++char mod3_data[4096]; ++ ++void ++mod3_function (void (*f) (void)) ++{ ++ /* Make sure this is not a tail call and unwind information is ++ therefore needed. */ ++ f (); ++ f (); ++} +diff --git a/elf/tst-dl_find_object-mod4.c b/elf/tst-dl_find_object-mod4.c +new file mode 100644 +index 0000000000000000..27934e60113b61b9 +--- /dev/null ++++ b/elf/tst-dl_find_object-mod4.c +@@ -0,0 +1,10 @@ ++char mod4_data; ++ ++void ++mod4_function (void (*f) (void)) ++{ ++ /* Make sure this is not a tail call and unwind information is ++ therefore needed. */ ++ f (); ++ f (); ++} +diff --git a/elf/tst-dl_find_object-mod5.c b/elf/tst-dl_find_object-mod5.c +new file mode 100644 +index 0000000000000000..3bdbda8ccd662376 +--- /dev/null ++++ b/elf/tst-dl_find_object-mod5.c +@@ -0,0 +1,11 @@ ++/* Slightly larger to get different layouts. */ ++char mod5_data[4096]; ++ ++void ++mod5_function (void (*f) (void)) ++{ ++ /* Make sure this is not a tail call and unwind information is ++ therefore needed. */ ++ f (); ++ f (); ++} +diff --git a/elf/tst-dl_find_object-mod6.c b/elf/tst-dl_find_object-mod6.c +new file mode 100644 +index 0000000000000000..f78acffb9eb5dfac +--- /dev/null ++++ b/elf/tst-dl_find_object-mod6.c +@@ -0,0 +1,11 @@ ++/* Large to get different layouts. */ ++char mod6_data[4096]; ++ ++void ++mod6_function (void (*f) (void)) ++{ ++ /* Make sure this is not a tail call and unwind information is ++ therefore needed. */ ++ f (); ++ f (); ++} +diff --git a/elf/tst-dl_find_object-mod7.c b/elf/tst-dl_find_object-mod7.c +new file mode 100644 +index 0000000000000000..71353880da7270df +--- /dev/null ++++ b/elf/tst-dl_find_object-mod7.c +@@ -0,0 +1,10 @@ ++char mod7_data; ++ ++void ++mod7_function (void (*f) (void)) ++{ ++ /* Make sure this is not a tail call and unwind information is ++ therefore needed. */ ++ f (); ++ f (); ++} +diff --git a/elf/tst-dl_find_object-mod8.c b/elf/tst-dl_find_object-mod8.c +new file mode 100644 +index 0000000000000000..41f8f1ea092fbaca +--- /dev/null ++++ b/elf/tst-dl_find_object-mod8.c +@@ -0,0 +1,10 @@ ++char mod8_data; ++ ++void ++mod8_function (void (*f) (void)) ++{ ++ /* Make sure this is not a tail call and unwind information is ++ therefore needed. */ ++ f (); ++ f (); ++} +diff --git a/elf/tst-dl_find_object-mod9.c b/elf/tst-dl_find_object-mod9.c +new file mode 100644 +index 0000000000000000..dc2e7a20cb8a42d8 +--- /dev/null ++++ b/elf/tst-dl_find_object-mod9.c +@@ -0,0 +1,10 @@ ++char mod9_data; ++ ++void ++mod9_function (void (*f) (void)) ++{ ++ /* Make sure this is not a tail call and unwind information is ++ therefore needed. */ ++ f (); ++ f (); ++} +diff --git a/elf/tst-dl_find_object-static.c b/elf/tst-dl_find_object-static.c +new file mode 100644 +index 0000000000000000..a95ebeb84723fe42 +--- /dev/null ++++ b/elf/tst-dl_find_object-static.c +@@ -0,0 +1,22 @@ ++/* Basic tests for _dl_find_object. Static version. ++ Copyright (C) 2021 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* Disable tests around _r_debug and libc symbols that do not work in ++ the static case. */ ++#define FOR_STATIC ++#include "tst-dl_find_object.c" +diff --git a/elf/tst-dl_find_object-threads.c b/elf/tst-dl_find_object-threads.c +new file mode 100644 +index 0000000000000000..472deeec57da0560 +--- /dev/null ++++ b/elf/tst-dl_find_object-threads.c +@@ -0,0 +1,275 @@ ++/* _dl_find_object test with parallelism. ++ Copyright (C) 2021 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Computes the expected _dl_find_object result directly from the ++ map. */ ++static void ++from_map (struct link_map *l, struct dl_find_object *expected) ++{ ++ struct dl_find_object_internal internal; ++ _dl_find_object_from_map (l, &internal); ++ _dl_find_object_to_external (&internal, expected); ++} ++ ++/* Returns the soname for the test object NUMBER. */ ++static char * ++soname (int number) ++{ ++ return xasprintf ("tst-dl_find_object-mod%d.so", number); ++} ++ ++/* Returns the data symbol name for the test object NUMBER. */ ++static char * ++symbol (int number) ++{ ++ return xasprintf ("mod%d_data", number); ++} ++ ++struct verify_data ++{ ++ char *soname; ++ void *address; /* Address in the shared object. */ ++ struct dl_find_object dlfo; ++ pthread_t thr; ++}; ++ ++/* Compare _dl_find_object result at ADDRESS with *EXPECTED. */ ++static void ++check (void *address, struct dl_find_object *expected, int line) ++{ ++ struct dl_find_object actual; ++ int ret = _dl_find_object (address, &actual); ++ if (expected == NULL) ++ { ++ if (ret != -1) ++ { ++ support_record_failure (); ++ printf ("%s:%d: unexpected success for %p\n", ++ __FILE__, line, address); ++ } ++ return; ++ } ++ if (ret != 0) ++ { ++ support_record_failure (); ++ printf ("%s:%d: unexpected failure for %p\n", ++ __FILE__, line, address); ++ return; ++ } ++ ++ if (actual.dlfo_flags != expected->dlfo_flags) ++ { ++ support_record_failure (); ++ printf ("%s:%d: error: %p: flags is %llu, expected %llu\n", ++ __FILE__, line, address, ++ actual.dlfo_flags, expected->dlfo_flags); ++ } ++ if (actual.dlfo_flags != expected->dlfo_flags) ++ { ++ support_record_failure (); ++ printf ("%s:%d: error: %p: map start is %p, expected %p\n", ++ __FILE__, line, ++ address, actual.dlfo_map_start, expected->dlfo_map_start); ++ } ++ if (actual.dlfo_map_end != expected->dlfo_map_end) ++ { ++ support_record_failure (); ++ printf ("%s:%d: error: %p: map end is %p, expected %p\n", ++ __FILE__, line, ++ address, actual.dlfo_map_end, expected->dlfo_map_end); ++ } ++ if (actual.dlfo_link_map != expected->dlfo_link_map) ++ { ++ support_record_failure (); ++ printf ("%s:%d: error: %p: link map is %p, expected %p\n", ++ __FILE__, line, ++ address, actual.dlfo_link_map, expected->dlfo_link_map); ++ } ++ if (actual.dlfo_eh_frame != expected->dlfo_eh_frame) ++ { ++ support_record_failure (); ++ printf ("%s:%d: error: %p: EH frame is %p, expected %p\n", ++ __FILE__, line, ++ address, actual.dlfo_eh_frame, expected->dlfo_eh_frame); ++ } ++#if DLFO_STRUCT_HAS_EH_DBASE ++ if (actual.dlfo_eh_dbase != expected->dlfo_eh_dbase) ++ { ++ support_record_failure (); ++ printf ("%s:%d: error: %p: data base is %p, expected %p\n", ++ __FILE__, line, ++ address, actual.dlfo_eh_dbase, expected->dlfo_eh_dbase); ++ } ++#endif ++#if DLFO_STRUCT_HAS_EH_COUNT ++ if (actual.dlfo_eh_count != expected->dlfo_eh_count) ++ { ++ support_record_failure (); ++ printf ("%s:%d: error: %p: count is %d, expected %d\n", ++ __FILE__, line, ++ address, actual.dlfo_eh_count, expected->dlfo_eh_count); ++ } ++#endif ++} ++ ++/* Request process termination after 3 seconds. */ ++static bool exit_requested; ++static void * ++exit_thread (void *ignored) ++{ ++ usleep (3 * 100 * 1000); ++ __atomic_store_n (&exit_requested, true, __ATOMIC_RELAXED); ++ return NULL; ++} ++ ++static void * ++verify_thread (void *closure) ++{ ++ struct verify_data *data = closure; ++ ++ while (!__atomic_load_n (&exit_requested, __ATOMIC_RELAXED)) ++ { ++ check (data->address, &data->dlfo, __LINE__); ++ check (data->dlfo.dlfo_map_start, &data->dlfo, __LINE__); ++ check (data->dlfo.dlfo_map_end - 1, &data->dlfo, __LINE__); ++ } ++ ++ return NULL; ++} ++ ++/* Sets up the verification data, dlopen'ing shared object NUMBER, and ++ launches a verification thread. */ ++static void ++start_verify (int number, struct verify_data *data) ++{ ++ data->soname = soname (number); ++ struct link_map *l = xdlopen (data->soname, RTLD_NOW); ++ from_map (l, &data->dlfo); ++ TEST_VERIFY_EXIT (data->dlfo.dlfo_link_map == l); ++ char *sym = symbol (number); ++ data->address = xdlsym (data->dlfo.dlfo_link_map, sym); ++ free (sym); ++ data->thr = xpthread_create (NULL, verify_thread, data); ++} ++ ++ ++static int ++do_test (void) ++{ ++ struct verify_data data_mod2; ++ struct verify_data data_mod4; ++ struct verify_data data_mod7; ++ ++ /* Load the modules with gaps. */ ++ { ++ void *mod1 = xdlopen ("tst-dl_find_object-mod1.so", RTLD_NOW); ++ start_verify (2, &data_mod2); ++ void *mod3 = xdlopen ("tst-dl_find_object-mod3.so", RTLD_NOW); ++ start_verify (4, &data_mod4); ++ void *mod5 = xdlopen ("tst-dl_find_object-mod5.so", RTLD_NOW); ++ void *mod6 = xdlopen ("tst-dl_find_object-mod6.so", RTLD_NOW); ++ start_verify (7, &data_mod7); ++ xdlclose (mod6); ++ xdlclose (mod5); ++ xdlclose (mod3); ++ xdlclose (mod1); ++ } ++ ++ /* Objects that continuously opened and closed. */ ++ struct temp_object ++ { ++ char *soname; ++ char *symbol; ++ struct link_map *link_map; ++ void *address; ++ } temp_objects[] = ++ { ++ { soname (1), symbol (1), }, ++ { soname (3), symbol (3), }, ++ { soname (5), symbol (5), }, ++ { soname (6), symbol (6), }, ++ { soname (8), symbol (8), }, ++ { soname (9), symbol (9), }, ++ }; ++ ++ pthread_t exit_thr = xpthread_create (NULL, exit_thread, NULL); ++ ++ struct drand48_data state; ++ srand48_r (1, &state); ++ while (!__atomic_load_n (&exit_requested, __ATOMIC_RELAXED)) ++ { ++ long int idx; ++ lrand48_r (&state, &idx); ++ idx %= array_length (temp_objects); ++ if (temp_objects[idx].link_map == NULL) ++ { ++ temp_objects[idx].link_map = xdlopen (temp_objects[idx].soname, ++ RTLD_NOW); ++ temp_objects[idx].address = xdlsym (temp_objects[idx].link_map, ++ temp_objects[idx].symbol); ++ } ++ else ++ { ++ xdlclose (temp_objects[idx].link_map); ++ temp_objects[idx].link_map = NULL; ++ struct dl_find_object dlfo; ++ int ret = _dl_find_object (temp_objects[idx].address, &dlfo); ++ if (ret != -1) ++ { ++ TEST_VERIFY_EXIT (ret == 0); ++ support_record_failure (); ++ printf ("%s: error: %s EH found after dlclose, link map %p\n", ++ __FILE__, temp_objects[idx].soname, dlfo.dlfo_link_map); ++ } ++ } ++ } ++ ++ xpthread_join (data_mod2.thr); ++ xpthread_join (data_mod4.thr); ++ xpthread_join (data_mod7.thr); ++ xpthread_join (exit_thr); ++ ++ for (size_t i = 0; i < array_length (temp_objects); ++i) ++ { ++ free (temp_objects[i].soname); ++ free (temp_objects[i].symbol); ++ if (temp_objects[i].link_map != NULL) ++ xdlclose (temp_objects[i].link_map); ++ } ++ ++ free (data_mod2.soname); ++ free (data_mod4.soname); ++ xdlclose (data_mod4.dlfo.dlfo_link_map); ++ free (data_mod7.soname); ++ xdlclose (data_mod7.dlfo.dlfo_link_map); ++ ++ return 0; ++} ++ ++#include +diff --git a/elf/tst-dl_find_object.c b/elf/tst-dl_find_object.c +new file mode 100644 +index 0000000000000000..9abffa35d479c8fc +--- /dev/null ++++ b/elf/tst-dl_find_object.c +@@ -0,0 +1,240 @@ ++/* Basic tests for _dl_find_object. ++ Copyright (C) 2021 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Use data objects for testing, so that it is not necessary to decode ++ function descriptors on architectures that have them. */ ++static char main_program_data; ++ ++/* Computes the expected _dl_find_object result directly from the ++ map. */ ++static void ++from_map (struct link_map *l, struct dl_find_object *expected) ++{ ++ struct dl_find_object_internal internal; ++ _dl_find_object_from_map (l, &internal); ++ _dl_find_object_to_external (&internal, expected); ++} ++ ++/* Compare _dl_find_object result at ADDRESS with *EXPECTED. */ ++static void ++check (void *address, ++ struct dl_find_object *expected, int line) ++{ ++ struct dl_find_object actual; ++ int ret = _dl_find_object (address, &actual); ++ if (expected == NULL) ++ { ++ if (ret != -1) ++ { ++ support_record_failure (); ++ printf ("%s:%d: unexpected success for %p\n", ++ __FILE__, line, address); ++ } ++ return; ++ } ++ if (ret != 0) ++ { ++ support_record_failure (); ++ printf ("%s:%d: unexpected failure for %p\n", ++ __FILE__, line, address); ++ return; ++ } ++ ++ if (actual.dlfo_flags != expected->dlfo_flags) ++ { ++ support_record_failure (); ++ printf ("%s:%d: error: %p: flags is %llu, expected %llu\n", ++ __FILE__, line, address, ++ actual.dlfo_flags, expected->dlfo_flags); ++ } ++ if (actual.dlfo_flags != expected->dlfo_flags) ++ { ++ support_record_failure (); ++ printf ("%s:%d: error: %p: map start is %p, expected %p\n", ++ __FILE__, line, ++ address, actual.dlfo_map_start, expected->dlfo_map_start); ++ } ++ if (actual.dlfo_map_end != expected->dlfo_map_end) ++ { ++ support_record_failure (); ++ printf ("%s:%d: error: %p: map end is %p, expected %p\n", ++ __FILE__, line, ++ address, actual.dlfo_map_end, expected->dlfo_map_end); ++ } ++ if (actual.dlfo_link_map != expected->dlfo_link_map) ++ { ++ support_record_failure (); ++ printf ("%s:%d: error: %p: link map is %p, expected %p\n", ++ __FILE__, line, ++ address, actual.dlfo_link_map, expected->dlfo_link_map); ++ } ++ if (actual.dlfo_eh_frame != expected->dlfo_eh_frame) ++ { ++ support_record_failure (); ++ printf ("%s:%d: error: %p: EH frame is %p, expected %p\n", ++ __FILE__, line, ++ address, actual.dlfo_eh_frame, expected->dlfo_eh_frame); ++ } ++#if DLFO_STRUCT_HAS_EH_DBASE ++ if (actual.dlfo_eh_dbase != expected->dlfo_eh_dbase) ++ { ++ support_record_failure (); ++ printf ("%s:%d: error: %p: data base is %p, expected %p\n", ++ __FILE__, line, ++ address, actual.dlfo_eh_dbase, expected->dlfo_eh_dbase); ++ } ++#endif ++#if DLFO_STRUCT_HAS_EH_COUNT ++ if (actual.dlfo_eh_count != expected->dlfo_eh_count) ++ { ++ support_record_failure (); ++ printf ("%s:%d: error: %p: count is %d, expected %d\n", ++ __FILE__, line, ++ address, actual.dlfo_eh_count, expected->dlfo_eh_count); ++ } ++#endif ++} ++ ++/* Check that unwind data for the main executable and the dynamic ++ linker can be found. */ ++static void ++check_initial (void) ++{ ++#ifndef FOR_STATIC ++ /* Avoid direct reference, which could lead to copy relocations. */ ++ struct r_debug *debug = xdlsym (NULL, "_r_debug"); ++ TEST_VERIFY_EXIT (debug != NULL); ++ char **tzname = xdlsym (NULL, "tzname"); ++ ++ /* The main executable has an unnamed link map. */ ++ struct link_map *main_map = (struct link_map *) debug->r_map; ++ TEST_COMPARE_STRING (main_map->l_name, ""); ++ ++ /* The link map of the dynamic linker. */ ++ struct link_map *rtld_map = xdlopen (LD_SO, RTLD_LAZY | RTLD_NOLOAD); ++ TEST_VERIFY_EXIT (rtld_map != NULL); ++ ++ /* The link map of libc.so. */ ++ struct link_map *libc_map = xdlopen (LIBC_SO, RTLD_LAZY | RTLD_NOLOAD); ++ TEST_VERIFY_EXIT (libc_map != NULL); ++ ++ struct dl_find_object expected; ++ ++ /* Data in the main program. */ ++ from_map (main_map, &expected); ++ check (&main_program_data, &expected, __LINE__); ++ /* Corner cases for the mapping. */ ++ check ((void *) main_map->l_map_start, &expected, __LINE__); ++ check ((void *) (main_map->l_map_end - 1), &expected, __LINE__); ++ ++ /* Data in the dynamic loader. */ ++ from_map (rtld_map, &expected); ++ check (debug, &expected, __LINE__); ++ check ((void *) rtld_map->l_map_start, &expected, __LINE__); ++ check ((void *) (rtld_map->l_map_end - 1), &expected, __LINE__); ++ ++ /* Data in libc. */ ++ from_map (libc_map, &expected); ++ check (tzname, &expected, __LINE__); ++ check ((void *) libc_map->l_map_start, &expected, __LINE__); ++ check ((void *) (libc_map->l_map_end - 1), &expected, __LINE__); ++#endif ++} ++ ++static int ++do_test (void) ++{ ++ { ++ struct dl_find_object dlfo = { }; ++ int ret = _dl_find_object (&main_program_data, &dlfo); ++ printf ("info: main program unwind data: %p (%d)\n", ++ dlfo.dlfo_eh_frame, ret); ++ TEST_COMPARE (ret, 0); ++ TEST_VERIFY (dlfo.dlfo_eh_frame != NULL); ++ } ++ ++ check_initial (); ++ ++ /* dlopen-based test. First an object that can be dlclosed. */ ++ struct link_map *mod1 = xdlopen ("tst-dl_find_object-mod1.so", RTLD_NOW); ++ void *mod1_data = xdlsym (mod1, "mod1_data"); ++ void *map_start = (void *) mod1->l_map_start; ++ void *map_end = (void *) (mod1->l_map_end - 1); ++ check_initial (); ++ ++ struct dl_find_object expected; ++ from_map (mod1, &expected); ++ check (mod1_data, &expected, __LINE__); ++ check (map_start, &expected, __LINE__); ++ check (map_end, &expected, __LINE__); ++ ++ /* Unloading must make the data unavailable. */ ++ xdlclose (mod1); ++ check_initial (); ++ check (mod1_data, NULL, __LINE__); ++ check (map_start, NULL, __LINE__); ++ check (map_end, NULL, __LINE__); ++ ++ /* Now try a NODELETE load. */ ++ struct link_map *mod2 = xdlopen ("tst-dl_find_object-mod2.so", RTLD_NOW); ++ void *mod2_data = xdlsym (mod1, "mod2_data"); ++ map_start = (void *) mod2->l_map_start; ++ map_end = (void *) (mod2->l_map_end - 1); ++ check_initial (); ++ from_map (mod2, &expected); ++ check (mod2_data, &expected, __LINE__); ++ check (map_start, &expected, __LINE__); ++ check (map_end, &expected, __LINE__); ++ dlclose (mod2); /* Does nothing due to NODELETE. */ ++ check_initial (); ++ check (mod2_data, &expected, __LINE__); ++ check (map_start, &expected, __LINE__); ++ check (map_end, &expected, __LINE__); ++ ++ /* Now load again the first module. */ ++ mod1 = xdlopen ("tst-dl_find_object-mod1.so", RTLD_NOW); ++ mod1_data = xdlsym (mod1, "mod1_data"); ++ map_start = (void *) mod1->l_map_start; ++ map_end = (void *) (mod1->l_map_end - 1); ++ check_initial (); ++ from_map (mod1, &expected); ++ check (mod1_data, &expected, __LINE__); ++ check (map_start, &expected, __LINE__); ++ check (map_end, &expected, __LINE__); ++ ++ /* Check that _dl_find_object works from a shared object (mostly for ++ static dlopen). */ ++ __typeof (_dl_find_object) *find_object ++ = *(void **) xdlsym (mod2, "find_object"); ++ struct dl_find_object actual; ++ TEST_COMPARE (find_object (&main_program_data, &actual), 0); ++ check (&main_program_data, &actual, __LINE__); /* Reversed check. */ ++ ++ return 0; ++} ++ ++#include +diff --git a/include/atomic_wide_counter.h b/include/atomic_wide_counter.h +index 31f009d5e66cb45f..cf526ed2ea715000 100644 +--- a/include/atomic_wide_counter.h ++++ b/include/atomic_wide_counter.h +@@ -31,6 +31,14 @@ __atomic_wide_counter_load_relaxed (__atomic_wide_counter *c) + } + + static inline uint64_t ++ ++__atomic_wide_counter_load_acquire (__atomic_wide_counter *c) ++{ ++ return atomic_load_acquire (&c->__value64); ++} ++ ++static inline uint64_t ++ + __atomic_wide_counter_fetch_add_relaxed (__atomic_wide_counter *c, + unsigned int val) + { +@@ -64,6 +72,14 @@ __atomic_wide_counter_fetch_xor_release (__atomic_wide_counter *c, + uint64_t __atomic_wide_counter_load_relaxed (__atomic_wide_counter *c) + attribute_hidden; + ++static inline uint64_t ++__atomic_wide_counter_load_acquire (__atomic_wide_counter *c) ++{ ++ uint64_t r = __atomic_wide_counter_load_relaxed (c); ++ atomic_thread_fence_acquire (); ++ return r; ++} ++ + uint64_t __atomic_wide_counter_fetch_add_relaxed (__atomic_wide_counter *c, + unsigned int op) + attribute_hidden; +diff --git a/include/bits/dl_find_object.h b/include/bits/dl_find_object.h +new file mode 100644 +index 0000000000000000..7a323d7d4fac65ed +--- /dev/null ++++ b/include/bits/dl_find_object.h +@@ -0,0 +1 @@ ++#include_next +diff --git a/include/dlfcn.h b/include/dlfcn.h +index e73294b0af587913..ae25f05303b18044 100644 +--- a/include/dlfcn.h ++++ b/include/dlfcn.h +@@ -4,6 +4,8 @@ + #include /* For ElfW. */ + #include + ++rtld_hidden_proto (_dl_find_object) ++ + /* Internally used flag. */ + #define __RTLD_DLOPEN 0x80000000 + #define __RTLD_SPROF 0x40000000 +diff --git a/include/link.h b/include/link.h +index bafac6c9628b183c..9e3a14b2996292fe 100644 +--- a/include/link.h ++++ b/include/link.h +@@ -212,6 +212,9 @@ struct link_map + the dummy malloc in ld.so. */ + unsigned int l_ld_readonly:1; /* Nonzero if dynamic section is readonly. */ + unsigned int l_tls_in_slotinfo:1; /* TLS slotinfo updated in dlopen. */ ++ unsigned int l_find_object_processed:1; /* Zero if _dl_find_object_update ++ needs to process this ++ lt_library map. */ + + /* NODELETE status of the map. Only valid for maps of type + lt_loaded. Lazy binding sets l_nodelete_active directly, +diff --git a/manual/dynlink.texi b/manual/dynlink.texi +index d59dca2b7a916889..f97f13444f1c5946 100644 +--- a/manual/dynlink.texi ++++ b/manual/dynlink.texi +@@ -533,6 +533,111 @@ array. + The @code{dlinfo} function is a GNU extension. + @end deftypefun + ++The remainder of this section documents the @code{_dl_find_object} ++function and supporting types and constants. ++ ++@deftp {Data Type} {struct dl_find_object} ++@standards{GNU, dlfcn.h} ++This structure contains information about a main program or loaded ++object. The @code{_dl_find_object} function uses it to return ++result data to the caller. ++ ++@table @code ++@item unsigned long long int dlfo_flags ++Currently unused and always 0. ++ ++@item void *dlfo_map_start ++The start address of the inspected mapping. This information comes from ++the program header, so it follows its convention, and the address is not ++necessarily page-aligned. ++ ++@item void *dlfo_map_end ++The end address of the mapping. ++ ++@item struct link_map *dlfo_link_map ++This member contains a pointer to the link map of the object. ++ ++@item void *dlfo_eh_frame ++This member contains a pointer to the exception handling data of the ++object. See @code{DLFO_EH_SEGMENT_TYPE} below. ++ ++@end table ++ ++This structure is a GNU extension. ++@end deftp ++ ++@deftypevr Macro int DLFO_STRUCT_HAS_EH_DBASE ++@standards{GNU, dlfcn.h} ++On most targets, this macro is defined as @code{0}. If it is defined to ++@code{1}, @code{struct dl_find_object} contains an additional member ++@code{dlfo_eh_dbase} of type @code{void *}. It is the base address for ++@code{DW_EH_PE_datarel} DWARF encodings to this location. ++ ++This macro is a GNU extension. ++@end deftypevr ++ ++@deftypevr Macro int DLFO_STRUCT_HAS_EH_COUNT ++@standards{GNU, dlfcn.h} ++On most targets, this macro is defined as @code{0}. If it is defined to ++@code{1}, @code{struct dl_find_object} contains an additional member ++@code{dlfo_eh_count} of type @code{int}. It is the number of exception ++handling entries in the EH frame segment identified by the ++@code{dlfo_eh_frame} member. ++ ++This macro is a GNU extension. ++@end deftypevr ++ ++@deftypevr Macro int DLFO_EH_SEGMENT_TYPE ++@standards{GNU, dlfcn.h} ++On targets using DWARF-based exception unwinding, this macro expands to ++@code{PT_GNU_EH_FRAME}. This indicates that @code{dlfo_eh_frame} in ++@code{struct dl_find_object} points to the @code{PT_GNU_EH_FRAME} ++segment of the object. On targets that use other unwinding formats, the ++macro expands to the program header type for the unwinding data. ++ ++This macro is a GNU extension. ++@end deftypevr ++ ++@deftypefun {int} _dl_find_object (void *@var{address}, struct dl_find_object *@var{result}) ++@standards{GNU, dlfcn.h} ++@safety{@mtsafe{}@assafe{}@acsafe{}} ++On success, this function returns 0 and writes about the object ++surrounding the address to @code{*@var{result}}. On failure, -1 is ++returned. ++ ++The @var{address} can be a code address or data address. On ++architectures using function descriptors, no attempt is made to decode ++the function descriptor. Depending on how these descriptors are ++implemented, @code{_dl_find_object} may return the object that defines ++the function descriptor (and not the object that contains the code ++implementing the function), or fail to find any object at all. ++ ++On success @var{address} is greater than or equal to ++@code{@var{result}->dlfo_map_start} and less than ++@code{@var{result}->dlfo_map_end}, that is, the supplied code address is ++located within the reported mapping. ++ ++This function returns a pointer to the unwinding information for the ++object that contains the program code @var{address} in ++@code{@var{result}->dlfo_eh_frame}. If the platform uses DWARF ++unwinding information, this is the in-memory address of the ++@code{PT_GNU_EH_FRAME} segment. See @code{DLFO_EH_SEGMENT_TYPE} above. ++In case @var{address} resides in an object that lacks unwinding information, ++the function still returns 0, but sets @code{@var{result}->dlfo_eh_frame} ++to a null pointer. ++ ++@code{_dl_find_object} itself is thread-safe. However, if the ++application invokes @code{dlclose} for the object that contains ++@var{address} concurrently with @code{_dl_find_object} or after the call ++returns, accessing the unwinding data for that object or the link map ++(through @code{@var{result}->dlfo_link_map}) is not safe. Therefore, the ++application needs to ensure by other means (e.g., by convention) that ++@var{address} remains a valid code address while the unwinding ++information is processed. ++ ++This function is a GNU extension. ++@end deftypefun ++ + @c FIXME these are undocumented: + @c dladdr + @c dladdr1 +diff --git a/sysdeps/arm/bits/dl_find_object.h b/sysdeps/arm/bits/dl_find_object.h +new file mode 100644 +index 0000000000000000..d0204f361fff4152 +--- /dev/null ++++ b/sysdeps/arm/bits/dl_find_object.h +@@ -0,0 +1,25 @@ ++/* arm definitions for finding objects. ++ Copyright (C) 2021 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#ifndef _DLFCN_H ++# error "Never use directly; include instead." ++#endif ++ ++#define DLFO_STRUCT_HAS_EH_DBASE 0 ++#define DLFO_STRUCT_HAS_EH_COUNT 1 ++#define DLFO_EH_SEGMENT_TYPE PT_ARM_EXIDX +diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h +index 9142bc8f493bce64..29c87649f14a1b5b 100644 +--- a/sysdeps/generic/ldsodefs.h ++++ b/sysdeps/generic/ldsodefs.h +@@ -717,6 +717,11 @@ struct rtld_global_ro + /* Called from __libc_shared to deallocate malloc'ed memory. */ + void (*_dl_libc_freeres) (void); + ++ /* Implementation of _dl_find_object. The public entry point is in ++ libc, and this is patched by __rtld_static_init to support static ++ dlopen. */ ++ int (*_dl_find_object) (void *, struct dl_find_object *); ++ + #ifdef HAVE_DL_DISCOVER_OSVERSION + int (*_dl_discover_osversion) (void); + #endif +diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist +index e849d6fa35456b4b..ba6ef0924ca632cb 100644 +--- a/sysdeps/mach/hurd/i386/libc.abilist ++++ b/sysdeps/mach/hurd/i386/libc.abilist +@@ -2286,6 +2286,7 @@ GLIBC_2.34 shm_open F + GLIBC_2.34 shm_unlink F + GLIBC_2.34 timespec_getres F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/nios2/bits/dl_find_object.h b/sysdeps/nios2/bits/dl_find_object.h +new file mode 100644 +index 0000000000000000..1195cb9f8a1caed0 +--- /dev/null ++++ b/sysdeps/nios2/bits/dl_find_object.h +@@ -0,0 +1,25 @@ ++/* nios2 definitions for finding objects. ++ Copyright (C) 2021 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#ifndef _DLFCN_H ++# error "Never use directly; include instead." ++#endif ++ ++#define DLFO_STRUCT_HAS_EH_DBASE 1 ++#define DLFO_STRUCT_HAS_EH_COUNT 0 ++#define DLFO_EH_SEGMENT_TYPE PT_GNU_EH_FRAME +diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist +index f227ae6ceec97c73..fed942ed4b9ef469 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist +@@ -2613,3 +2613,4 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F +diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist +index 0ccc3fc73ecc0e4d..28679327043ff0f2 100644 +--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist ++++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist +@@ -2710,6 +2710,7 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist +index fd80704787f4ef41..239db7bab0a18a87 100644 +--- a/sysdeps/unix/sysv/linux/arc/libc.abilist ++++ b/sysdeps/unix/sysv/linux/arc/libc.abilist +@@ -2374,3 +2374,4 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F +diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist +index 2ae6c58b8ad6fc01..bc79dcfe8ab4c723 100644 +--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist ++++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist +@@ -492,6 +492,7 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F + GLIBC_2.4 _Exit F + GLIBC_2.4 _IO_2_1_stderr_ D 0xa0 + GLIBC_2.4 _IO_2_1_stdin_ D 0xa0 +diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist +index fcfd1e8594d80aa1..614607fd6baa8c6f 100644 +--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist ++++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist +@@ -489,6 +489,7 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F + GLIBC_2.4 _Exit F + GLIBC_2.4 _IO_2_1_stderr_ D 0xa0 + GLIBC_2.4 _IO_2_1_stdin_ D 0xa0 +diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist +index ba034b85414a2b55..2b61543f0dd47034 100644 +--- a/sysdeps/unix/sysv/linux/csky/libc.abilist ++++ b/sysdeps/unix/sysv/linux/csky/libc.abilist +@@ -2648,3 +2648,4 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F +diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist +index b7460bec8ace47c2..6b3cb1adb40c0a01 100644 +--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist ++++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist +@@ -2597,6 +2597,7 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist +index a4dc341dededdc3b..7f608c1b64454bff 100644 +--- a/sysdeps/unix/sysv/linux/i386/libc.abilist ++++ b/sysdeps/unix/sysv/linux/i386/libc.abilist +@@ -2781,6 +2781,7 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist +index 94b222dbc7ffbb81..865deec43f99a036 100644 +--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist +@@ -2548,6 +2548,7 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +index 12fd3b63103c3e6e..a172d746328ddeeb 100644 +--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist ++++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +@@ -493,6 +493,7 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F + GLIBC_2.4 _Exit F + GLIBC_2.4 _IO_2_1_stderr_ D 0x98 + GLIBC_2.4 _IO_2_1_stdin_ D 0x98 +diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +index 4d2296007ab1d922..174e9c7739f966ac 100644 +--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist ++++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +@@ -2724,6 +2724,7 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist +index a223278a3d4a33d8..d042be1369b7d264 100644 +--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist ++++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist +@@ -2697,3 +2697,4 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F +diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist +index 780a4f5b0bf5518c..332da62de23b88b8 100644 +--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist ++++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist +@@ -2694,3 +2694,4 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F +diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +index cd65136062a6a876..2d6ec0d0e8f3c797 100644 +--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist ++++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +@@ -2689,6 +2689,7 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +index b5b9902db56a4c79..6c5befa72bb5602b 100644 +--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist ++++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +@@ -2687,6 +2687,7 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +index 57593d5f94a184f1..5fb24c97e1e6f05d 100644 +--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist ++++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +@@ -2695,6 +2695,7 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +index e944d76bed0bfe06..f4f29fc15ee8f1a2 100644 +--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +@@ -2599,6 +2599,7 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist +index 8af5a3a90dfe4089..2e7300cd0512ad78 100644 +--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist ++++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist +@@ -2736,3 +2736,4 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +index 3a0213b39f8f7abd..129a2f16a7b731d3 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +@@ -2751,6 +2751,7 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +index f57df0234b8bdee3..7e232267791057a3 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +@@ -2784,6 +2784,7 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist +index 259a0cfc5126ca9e..6f97392b7030ee95 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist +@@ -2507,6 +2507,7 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist +index 126541daf152e1ad..29058a041a9cdba1 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist +@@ -2809,3 +2809,4 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F +diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist +index 05df4d13d2c35ad1..d2924766d2f33039 100644 +--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist ++++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist +@@ -2376,3 +2376,4 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F +diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist +index 8e349cbff8cc0507..b770e05da3ae0350 100644 +--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist +@@ -2576,3 +2576,4 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F +diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +index e9de402766af0d8a..bed3433a2b75d3b4 100644 +--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist ++++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +@@ -2749,6 +2749,7 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +index 1a010c745d78a07e..4f1a143da504d98c 100644 +--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +@@ -2544,6 +2544,7 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist +index 22ce530975944ff6..92c8dec8ec28c54a 100644 +--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist ++++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist +@@ -2604,6 +2604,7 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist +index 960df07b83bd2cbf..263da58cb7dada2c 100644 +--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist ++++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist +@@ -2601,6 +2601,7 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +index eedb376f3dfeb8fb..0171efe7db109153 100644 +--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist ++++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +@@ -2744,6 +2744,7 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F + GLIBC_2.4 _IO_fprintf F + GLIBC_2.4 _IO_printf F + GLIBC_2.4 _IO_sprintf F +diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +index 86e0c92bef9255ab..7f8d45f362e63584 100644 +--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +@@ -2571,6 +2571,7 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +index 5e59d90623c2bcba..c2f1a8ecc6d04dcf 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist ++++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +@@ -2522,6 +2522,7 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F + GLIBC_2.4 __confstr_chk F + GLIBC_2.4 __fgets_chk F + GLIBC_2.4 __fgets_unlocked_chk F +diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +index 94412dc134af283a..8b43acf1005f1790 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist ++++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +@@ -2628,3 +2628,4 @@ GLIBC_2.34 tss_delete F + GLIBC_2.34 tss_get F + GLIBC_2.34 tss_set F + GLIBC_2.35 __memcmpeq F ++GLIBC_2.35 _dl_find_object F +diff --git a/sysdeps/x86/bits/dl_find_object.h b/sysdeps/x86/bits/dl_find_object.h +new file mode 100644 +index 0000000000000000..d9852ecb02fca036 +--- /dev/null ++++ b/sysdeps/x86/bits/dl_find_object.h +@@ -0,0 +1,29 @@ ++/* x86 definitions for finding objects. ++ Copyright (C) 2021 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#ifndef _DLFCN_H ++# error "Never use directly; include instead." ++#endif ++ ++#ifdef __x86_64__ ++# define DLFO_STRUCT_HAS_EH_DBASE 0 ++#else ++# define DLFO_STRUCT_HAS_EH_DBASE 1 ++#endif ++#define DLFO_STRUCT_HAS_EH_COUNT 0 ++#define DLFO_EH_SEGMENT_TYPE PT_GNU_EH_FRAME diff --git a/SOURCES/glibc-RHEL-93320-5.patch b/SOURCES/glibc-RHEL-93320-5.patch new file mode 100644 index 0000000..9a0c5de --- /dev/null +++ b/SOURCES/glibc-RHEL-93320-5.patch @@ -0,0 +1,420 @@ +commit acbaad31e8ea10fce8b9c0aef58afb388bf7489d +Author: Florian Weimer +Date: Fri Jan 7 13:21:57 2022 +0100 + + elf: Fix fences in _dl_find_object_update (bug 28745) + + As explained in Hans Boehm, Can Seqlocks Get Along with Programming + Language Memory Models?, an acquire fence is needed in + _dlfo_read_success. The lack of a fence resulted in an observable + bug on powerpc64le compile-time load reordering. + + The fence in _dlfo_mappings_begin_update has been reordered, turning + the fence/store sequence into a release MO store equivalent. + + Relaxed MO loads are used on the reader side, and relaxed MO stores + on the writer side for the shared data, to avoid formal data races. + This is just to be conservative; it should not actually be necessary + given how the data is used. + + This commit also fixes the test run time. The intent was to run it + for 3 seconds, but 0.3 seconds was enough to uncover the bug very + occasionally (while 3 seconds did not reliably show the bug on every + test run). + + Reviewed-by: Szabolcs Nagy + +diff --git a/elf/dl-find_object.c b/elf/dl-find_object.c +index 324f40742d59b4dc..b23bcaf0a15e82cd 100644 +--- a/elf/dl-find_object.c ++++ b/elf/dl-find_object.c +@@ -17,6 +17,7 @@ + . */ + + #include ++#include + #include + #include + #include +@@ -80,13 +81,18 @@ static struct dl_find_object_internal *_dlfo_nodelete_mappings + over all segments, even though the data is not stored in one + contiguous array. + +- During updates, the segments are overwritten in place, and a +- software transactional memory construct (involving the ++ During updates, the segments are overwritten in place. A software ++ transactional memory construct (involving the + _dlfo_loaded_mappings_version variable) is used to detect +- concurrent modification, and retry as necessary. The memory +- allocations are never deallocated, but slots used for objects that +- have been dlclose'd can be reused by dlopen. The memory can live +- in the regular C malloc heap. ++ concurrent modification, and retry as necessary. (This approach is ++ similar to seqlocks, except that two copies are used, and there is ++ only one writer, ever, due to the loader lock.) Technically, ++ relaxed MO loads and stores need to be used for the shared TM data, ++ to avoid data races. ++ ++ The memory allocations are never deallocated, but slots used for ++ objects that have been dlclose'd can be reused by dlopen. The ++ memory can live in the regular C malloc heap. + + The segments are populated from the start of the list, with the + mappings with the highest address. Only if this segment is full, +@@ -101,17 +107,18 @@ static struct dl_find_object_internal *_dlfo_nodelete_mappings + needed. */ + struct dlfo_mappings_segment + { +- /* The previous segment has lower base addresses. */ ++ /* The previous segment has lower base addresses. Constant after ++ initialization; read in the TM region. */ + struct dlfo_mappings_segment *previous; + + /* Used by __libc_freeres to deallocate malloc'ed memory. */ + void *to_free; + + /* Count of array elements in use and allocated. */ +- size_t size; ++ size_t size; /* Read in the TM region. */ + size_t allocated; + +- struct dl_find_object_internal objects[]; ++ struct dl_find_object_internal objects[]; /* Read in the TM region. */ + }; + + /* To achieve async-signal-safety, two copies of the data structure +@@ -240,7 +247,8 @@ static inline uint64_t + _dlfo_read_start_version (void) + { + /* Acquire MO load synchronizes with the fences at the beginning and +- end of the TM update region. */ ++ end of the TM update region in _dlfo_mappings_begin_update, ++ _dlfo_mappings_end_update, _dlfo_mappings_end_update_no_switch. */ + return __atomic_wide_counter_load_acquire (&_dlfo_loaded_mappings_version); + } + +@@ -258,34 +266,30 @@ _dlfo_read_version_locked (void) + static inline unsigned int + _dlfo_mappings_begin_update (void) + { +- unsigned int v +- = __atomic_wide_counter_fetch_add_relaxed (&_dlfo_loaded_mappings_version, +- 2); +- /* Subsequent stores to the TM data must not be reordered before the +- store above with the version update. */ ++ /* The store synchronizes with loads in _dlfo_read_start_version ++ (also called from _dlfo_read_success). */ + atomic_thread_fence_release (); +- return v & 1; ++ return __atomic_wide_counter_fetch_add_relaxed ++ (&_dlfo_loaded_mappings_version, 2); + } + + /* Installs the just-updated version as the active version. */ + static inline void + _dlfo_mappings_end_update (void) + { +- /* The previous writes to the TM data must not be reordered after +- the version update below. */ ++ /* The store synchronizes with loads in _dlfo_read_start_version ++ (also called from _dlfo_read_success). */ + atomic_thread_fence_release (); +- __atomic_wide_counter_fetch_add_relaxed (&_dlfo_loaded_mappings_version, +- 1); ++ __atomic_wide_counter_fetch_add_relaxed (&_dlfo_loaded_mappings_version, 1); + } + /* Completes an in-place update without switching versions. */ + static inline void + _dlfo_mappings_end_update_no_switch (void) + { +- /* The previous writes to the TM data must not be reordered after +- the version update below. */ ++ /* The store synchronizes with loads in _dlfo_read_start_version ++ (also called from _dlfo_read_success). */ + atomic_thread_fence_release (); +- __atomic_wide_counter_fetch_add_relaxed (&_dlfo_loaded_mappings_version, +- 2); ++ __atomic_wide_counter_fetch_add_relaxed (&_dlfo_loaded_mappings_version, 2); + } + + /* Return true if the read was successful, given the start +@@ -293,6 +297,19 @@ _dlfo_mappings_end_update_no_switch (void) + static inline bool + _dlfo_read_success (uint64_t start_version) + { ++ /* See Hans Boehm, Can Seqlocks Get Along with Programming Language ++ Memory Models?, Section 4. This is necessary so that loads in ++ the TM region are not ordered past the version check below. */ ++ atomic_thread_fence_acquire (); ++ ++ /* Synchronizes with stores in _dlfo_mappings_begin_update, ++ _dlfo_mappings_end_update, _dlfo_mappings_end_update_no_switch. ++ It is important that all stores from the last update have been ++ visible, and stores from the next updates are not. ++ ++ Unlike with seqlocks, there is no check for odd versions here ++ because we have read the unmodified copy (confirmed to be ++ unmodified by the unchanged version). */ + return _dlfo_read_start_version () == start_version; + } + +@@ -318,7 +335,7 @@ _dlfo_lookup (uintptr_t pc, struct dl_find_object_internal *first1, size_t size) + { + size_t half = size >> 1; + struct dl_find_object_internal *middle = first + half; +- if (middle->map_start < pc) ++ if (atomic_load_relaxed (&middle->map_start) < pc) + { + first = middle + 1; + size -= half + 1; +@@ -327,9 +344,9 @@ _dlfo_lookup (uintptr_t pc, struct dl_find_object_internal *first1, size_t size) + size = half; + } + +- if (first != end && pc == first->map_start) ++ if (first != end && pc == atomic_load_relaxed (&first->map_start)) + { +- if (pc < first->map_end) ++ if (pc < atomic_load_relaxed (&first->map_end)) + return first; + else + /* Zero-length mapping after dlclose. */ +@@ -339,7 +356,7 @@ _dlfo_lookup (uintptr_t pc, struct dl_find_object_internal *first1, size_t size) + { + /* Check to see if PC is in the previous mapping. */ + --first; +- if (pc < first->map_end) ++ if (pc < atomic_load_relaxed (&first->map_end)) + /* pc >= first->map_start implied by the search above. */ + return first; + else +@@ -408,39 +425,47 @@ _dl_find_object (void *pc1, struct dl_find_object *result) + size on earlier unused segments. */ + for (struct dlfo_mappings_segment *seg + = _dlfo_mappings_active_segment (start_version); +- seg != NULL && seg->size > 0; seg = seg->previous) +- if (pc >= seg->objects[0].map_start) +- { +- /* PC may lie within this segment. If it is less than the +- segment start address, it can only lie in a previous +- segment, due to the base address sorting. */ +- struct dl_find_object_internal *obj +- = _dlfo_lookup (pc, seg->objects, seg->size); ++ seg != NULL; ++ seg = atomic_load_acquire (&seg->previous)) ++ { ++ size_t seg_size = atomic_load_relaxed (&seg->size); ++ if (seg_size == 0) ++ break; + +- if (obj != NULL) +- { +- /* Found the right mapping. Copy out the data prior to +- checking if the read transaction was successful. */ +- struct dl_find_object_internal copy = *obj; +- if (_dlfo_read_success (start_version)) +- { +- _dl_find_object_to_external (©, result); +- return 0; +- } +- else +- /* Read transaction failure. */ +- goto retry; +- } +- else +- { +- /* PC is not covered by this mapping. */ +- if (_dlfo_read_success (start_version)) +- return -1; +- else +- /* Read transaction failure. */ +- goto retry; +- } +- } /* if: PC might lie within the current seg. */ ++ if (pc >= atomic_load_relaxed (&seg->objects[0].map_start)) ++ { ++ /* PC may lie within this segment. If it is less than the ++ segment start address, it can only lie in a previous ++ segment, due to the base address sorting. */ ++ struct dl_find_object_internal *obj ++ = _dlfo_lookup (pc, seg->objects, seg_size); ++ ++ if (obj != NULL) ++ { ++ /* Found the right mapping. Copy out the data prior to ++ checking if the read transaction was successful. */ ++ struct dl_find_object_internal copy; ++ _dl_find_object_internal_copy (obj, ©); ++ if (_dlfo_read_success (start_version)) ++ { ++ _dl_find_object_to_external (©, result); ++ return 0; ++ } ++ else ++ /* Read transaction failure. */ ++ goto retry; ++ } ++ else ++ { ++ /* PC is not covered by this mapping. */ ++ if (_dlfo_read_success (start_version)) ++ return -1; ++ else ++ /* Read transaction failure. */ ++ goto retry; ++ } ++ } /* if: PC might lie within the current seg. */ ++ } + + /* PC is not covered by any segment. */ + if (_dlfo_read_success (start_version)) +@@ -619,15 +644,19 @@ static inline size_t + _dlfo_update_init_seg (struct dlfo_mappings_segment *seg, + size_t remaining_to_add) + { ++ size_t new_seg_size; + if (remaining_to_add < seg->allocated) + /* Partially filled segment. */ +- seg->size = remaining_to_add; ++ new_seg_size = remaining_to_add; + else +- seg->size = seg->allocated; +- return seg->size; ++ new_seg_size = seg->allocated; ++ atomic_store_relaxed (&seg->size, new_seg_size); ++ return new_seg_size; + } + +-/* Invoked from _dl_find_object_update after sorting. */ ++/* Invoked from _dl_find_object_update after sorting. Stores to the ++ shared data need to use relaxed MO. But plain loads can be used ++ because the loader lock prevents concurrent stores. */ + static bool + _dl_find_object_update_1 (struct link_map **loaded, size_t count) + { +@@ -727,7 +756,8 @@ _dl_find_object_update_1 (struct link_map **loaded, size_t count) + { + /* Prefer mapping in current_seg. */ + assert (current_seg_index1 > 0); +- *dlfo = current_seg->objects[current_seg_index1 - 1]; ++ _dl_find_object_internal_copy ++ (¤t_seg->objects[current_seg_index1 - 1], dlfo); + --current_seg_index1; + } + else +@@ -753,7 +783,7 @@ _dl_find_object_update_1 (struct link_map **loaded, size_t count) + + /* Prevent searching further into unused segments. */ + if (target_seg->previous != NULL) +- target_seg->previous->size = 0; ++ atomic_store_relaxed (&target_seg->previous->size, 0); + + _dlfo_mappings_end_update (); + return true; +diff --git a/elf/dl-find_object.h b/elf/dl-find_object.h +index f899905e09427a0d..11569efc9b7daf9c 100644 +--- a/elf/dl-find_object.h ++++ b/elf/dl-find_object.h +@@ -20,6 +20,7 @@ + #define _DL_FIND_EH_FRAME_H + + #include ++#include + #include + #include + #include +@@ -44,6 +45,30 @@ struct dl_find_object_internal + #endif + }; + ++/* Create a copy of *SOURCE in *COPY using relaxed MO loads and ++ stores. */ ++static inline void ++_dl_find_object_internal_copy (const struct dl_find_object_internal *source, ++ struct dl_find_object_internal *copy) ++{ ++ atomic_store_relaxed (©->map_start, ++ atomic_load_relaxed (&source->map_start)); ++ atomic_store_relaxed (©->map_end, ++ atomic_load_relaxed (&source->map_end)); ++ atomic_store_relaxed (©->map, ++ atomic_load_relaxed (&source->map)); ++ atomic_store_relaxed (©->eh_frame, ++ atomic_load_relaxed (&source->eh_frame)); ++#if DLFO_STRUCT_HAS_EH_DBASE ++ atomic_store_relaxed (©->eh_dbase, ++ atomic_load_relaxed (&source->eh_dbase)); ++#endif ++#if DLFO_STRUCT_HAS_EH_COUNT ++ atomic_store_relaxed (©->eh_count, ++ atomic_load_relaxed (&source->eh_count)); ++#endif ++} ++ + static inline void + _dl_find_object_to_external (struct dl_find_object_internal *internal, + struct dl_find_object *external) +@@ -62,34 +87,35 @@ _dl_find_object_to_external (struct dl_find_object_internal *internal, + } + + /* Extract the object location data from a link map and writes it to +- *RESULT. */ ++ *RESULT using relaxed MO stores. */ + static void __attribute__ ((unused)) + _dl_find_object_from_map (struct link_map *l, + struct dl_find_object_internal *result) + { +- result->map_start = (uintptr_t) l->l_map_start; +- result->map_end = (uintptr_t) l->l_map_end; +- result->map = l; ++ atomic_store_relaxed (&result->map_start, (uintptr_t) l->l_map_start); ++ atomic_store_relaxed (&result->map_end, (uintptr_t) l->l_map_end); ++ atomic_store_relaxed (&result->map, l); + + #if DLFO_STRUCT_HAS_EH_DBASE +- result->eh_dbase = (void *) l->l_info[DT_PLTGOT]; ++ atomic_store_relaxed (&result->eh_dbase, (void *) l->l_info[DT_PLTGOT]); + #endif + + for (const ElfW(Phdr) *ph = l->l_phdr, *ph_end = l->l_phdr + l->l_phnum; + ph < ph_end; ++ph) + if (ph->p_type == DLFO_EH_SEGMENT_TYPE) + { +- result->eh_frame = (void *) (ph->p_vaddr + l->l_addr); ++ atomic_store_relaxed (&result->eh_frame, ++ (void *) (ph->p_vaddr + l->l_addr)); + #if DLFO_STRUCT_HAS_EH_COUNT +- result->eh_count = ph->p_memsz / 8; ++ atomic_store_relaxed (&result->eh_count, ph->p_memsz / 8); + #endif + return; + } + + /* Object has no exception handling segment. */ +- result->eh_frame = NULL; ++ atomic_store_relaxed (&result->eh_frame, NULL); + #if DLFO_STRUCT_HAS_EH_COUNT +- result->eh_count = 0; ++ atomic_store_relaxed (&result->eh_count, 0); + #endif + } + +diff --git a/elf/tst-dl_find_object-threads.c b/elf/tst-dl_find_object-threads.c +index 472deeec57da0560..453ba684024b5069 100644 +--- a/elf/tst-dl_find_object-threads.c ++++ b/elf/tst-dl_find_object-threads.c +@@ -138,12 +138,12 @@ check (void *address, struct dl_find_object *expected, int line) + #endif + } + +-/* Request process termination after 3 seconds. */ ++/* Request process termination after 0.3 seconds. */ + static bool exit_requested; + static void * + exit_thread (void *ignored) + { +- usleep (3 * 100 * 1000); ++ usleep (300 * 1000); + __atomic_store_n (&exit_requested, true, __ATOMIC_RELAXED); + return NULL; + } diff --git a/SOURCES/glibc-RHEL-93320-6.patch b/SOURCES/glibc-RHEL-93320-6.patch new file mode 100644 index 0000000..bd529ad --- /dev/null +++ b/SOURCES/glibc-RHEL-93320-6.patch @@ -0,0 +1,124 @@ +commit e72ef23ee88187284b4b1ca9b2e314e618429d35 +Author: Florian Weimer +Date: Mon Jan 10 13:31:39 2022 +0100 + + elf: Simplify software TM implementation in _dl_find_object + + With the current set of fences, the version update at the start + of the TM write operation is redundant, and the version update + at the end does not need to use an atomic read-modify-write + operation. + + Also use relaxed MO stores during the dlclose update, and skip any + version changes there. + + Suggested-by: Szabolcs Nagy + Reviewed-by: Szabolcs Nagy + +diff --git a/elf/dl-find_object.c b/elf/dl-find_object.c +index b23bcaf0a15e82cd..2952c651ff26db04 100644 +--- a/elf/dl-find_object.c ++++ b/elf/dl-find_object.c +@@ -123,9 +123,9 @@ struct dlfo_mappings_segment + + /* To achieve async-signal-safety, two copies of the data structure + are used, so that a signal handler can still use this data even if +- dlopen or dlclose modify the other copy. The the MSB in +- _dlfo_loaded_mappings_version determines which array element is the +- currently active region. */ ++ dlopen or dlclose modify the other copy. The the least significant ++ bit in _dlfo_loaded_mappings_version determines which array element ++ is the currently active region. */ + static struct dlfo_mappings_segment *_dlfo_loaded_mappings[2]; + + /* Returns the number of actually used elements in all segments +@@ -248,7 +248,7 @@ _dlfo_read_start_version (void) + { + /* Acquire MO load synchronizes with the fences at the beginning and + end of the TM update region in _dlfo_mappings_begin_update, +- _dlfo_mappings_end_update, _dlfo_mappings_end_update_no_switch. */ ++ _dlfo_mappings_end_update. */ + return __atomic_wide_counter_load_acquire (&_dlfo_loaded_mappings_version); + } + +@@ -261,35 +261,25 @@ _dlfo_read_version_locked (void) + } + + /* Update the version to reflect that an update is happening. This +- does not change the bit that controls the active segment chain. +- Returns the index of the currently active segment chain. */ +-static inline unsigned int ++ does not change the bit that controls the active segment chain. */ ++static inline void + _dlfo_mappings_begin_update (void) + { +- /* The store synchronizes with loads in _dlfo_read_start_version ++ /* The fence synchronizes with loads in _dlfo_read_start_version + (also called from _dlfo_read_success). */ + atomic_thread_fence_release (); +- return __atomic_wide_counter_fetch_add_relaxed +- (&_dlfo_loaded_mappings_version, 2); + } + + /* Installs the just-updated version as the active version. */ + static inline void + _dlfo_mappings_end_update (void) + { +- /* The store synchronizes with loads in _dlfo_read_start_version ++ /* The fence synchronizes with loads in _dlfo_read_start_version + (also called from _dlfo_read_success). */ + atomic_thread_fence_release (); +- __atomic_wide_counter_fetch_add_relaxed (&_dlfo_loaded_mappings_version, 1); +-} +-/* Completes an in-place update without switching versions. */ +-static inline void +-_dlfo_mappings_end_update_no_switch (void) +-{ +- /* The store synchronizes with loads in _dlfo_read_start_version +- (also called from _dlfo_read_success). */ +- atomic_thread_fence_release (); +- __atomic_wide_counter_fetch_add_relaxed (&_dlfo_loaded_mappings_version, 2); ++ /* No atomic read-modify-write update needed because of the loader ++ lock. */ ++ __atomic_wide_counter_add_relaxed (&_dlfo_loaded_mappings_version, 1); + } + + /* Return true if the read was successful, given the start +@@ -302,10 +292,11 @@ _dlfo_read_success (uint64_t start_version) + the TM region are not ordered past the version check below. */ + atomic_thread_fence_acquire (); + +- /* Synchronizes with stores in _dlfo_mappings_begin_update, +- _dlfo_mappings_end_update, _dlfo_mappings_end_update_no_switch. +- It is important that all stores from the last update have been +- visible, and stores from the next updates are not. ++ /* Synchronizes with the fences in _dlfo_mappings_begin_update, ++ _dlfo_mappings_end_update. It is important that all stores from ++ the last update have become visible, and stores from the next ++ update to this version are not before the version number is ++ updated. + + Unlike with seqlocks, there is no check for odd versions here + because we have read the unmodified copy (confirmed to be +@@ -839,17 +830,10 @@ _dl_find_object_dlclose (struct link_map *map) + issues around __libc_freeres. */ + return; + +- /* The update happens in-place, but given that we do not use +- atomic accesses on the read side, update the version around +- the update to trigger re-validation in concurrent +- readers. */ +- _dlfo_mappings_begin_update (); +- +- /* Mark as closed. */ +- obj->map_end = obj->map_start; +- obj->map = NULL; +- +- _dlfo_mappings_end_update_no_switch (); ++ /* Mark as closed. This does not change the overall data ++ structure, so no TM cycle is needed. */ ++ atomic_store_relaxed (&obj->map_end, obj->map_start); ++ atomic_store_relaxed (&obj->map, NULL); + return; + } + } diff --git a/SOURCES/glibc-RHEL-93320-7.patch b/SOURCES/glibc-RHEL-93320-7.patch new file mode 100644 index 0000000..3f0ba2f --- /dev/null +++ b/SOURCES/glibc-RHEL-93320-7.patch @@ -0,0 +1,353 @@ +commit b4d4ff8963866367ba861681ef3b1251e122014a +Author: Florian Weimer +Date: Mon Jan 17 09:57:19 2022 +0100 + + elf: Introduce rtld_setup_main_map + + This function collects most of the processing needed to initialize + the link map for the main executable. + + Reviewed-by: H.J. Lu + +Conflicts: + elf/rtld.c + Updated for minor context changes + +diff --git a/elf/rtld.c b/elf/rtld.c +index b5be7674dc1dbf40..a47e105987d87add 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -1129,6 +1129,163 @@ rtld_chain_load (struct link_map *main_map, char *argv0) + rtld_soname, pathname, errcode); + } + ++/* Called to complete the initialization of the link map for the main ++ executable. Returns true if there is a PT_INTERP segment. */ ++static bool ++rtld_setup_main_map (struct link_map *main_map) ++{ ++ /* This have already been filled in right after _dl_new_object, or ++ as part of _dl_map_object. */ ++ const ElfW(Phdr) *phdr = main_map->l_phdr; ++ ElfW(Word) phnum = main_map->l_phnum; ++ ++ bool has_interp = false; ++ ++ main_map->l_map_end = 0; ++ main_map->l_text_end = 0; ++ /* Perhaps the executable has no PT_LOAD header entries at all. */ ++ main_map->l_map_start = ~0; ++ /* And it was opened directly. */ ++ ++main_map->l_direct_opencount; ++ ++ /* Scan the program header table for the dynamic section. */ ++ for (const ElfW(Phdr) *ph = phdr; ph < &phdr[phnum]; ++ph) ++ switch (ph->p_type) ++ { ++ case PT_PHDR: ++ /* Find out the load address. */ ++ main_map->l_addr = (ElfW(Addr)) phdr - ph->p_vaddr; ++ break; ++ case PT_DYNAMIC: ++ /* This tells us where to find the dynamic section, ++ which tells us everything we need to do. */ ++ main_map->l_ld = (void *) main_map->l_addr + ph->p_vaddr; ++ main_map->l_ld_readonly = (ph->p_flags & PF_W) == 0; ++ break; ++ case PT_INTERP: ++ /* This "interpreter segment" was used by the program loader to ++ find the program interpreter, which is this program itself, the ++ dynamic linker. We note what name finds us, so that a future ++ dlopen call or DT_NEEDED entry, for something that wants to link ++ against the dynamic linker as a shared library, will know that ++ the shared object is already loaded. */ ++ _dl_rtld_libname.name = ((const char *) main_map->l_addr ++ + ph->p_vaddr); ++ /* _dl_rtld_libname.next = NULL; Already zero. */ ++ GL(dl_rtld_map).l_libname = &_dl_rtld_libname; ++ ++ /* Ordinarilly, we would get additional names for the loader from ++ our DT_SONAME. This can't happen if we were actually linked as ++ a static executable (detect this case when we have no DYNAMIC). ++ If so, assume the filename component of the interpreter path to ++ be our SONAME, and add it to our name list. */ ++ if (GL(dl_rtld_map).l_ld == NULL) ++ { ++ const char *p = NULL; ++ const char *cp = _dl_rtld_libname.name; ++ ++ /* Find the filename part of the path. */ ++ while (*cp != '\0') ++ if (*cp++ == '/') ++ p = cp; ++ ++ if (p != NULL) ++ { ++ _dl_rtld_libname2.name = p; ++ /* _dl_rtld_libname2.next = NULL; Already zero. */ ++ _dl_rtld_libname.next = &_dl_rtld_libname2; ++ } ++ } ++ ++ has_interp = true; ++ break; ++ case PT_LOAD: ++ { ++ ElfW(Addr) mapstart; ++ ElfW(Addr) allocend; ++ ++ /* Remember where the main program starts in memory. */ ++ mapstart = (main_map->l_addr ++ + (ph->p_vaddr & ~(GLRO(dl_pagesize) - 1))); ++ if (main_map->l_map_start > mapstart) ++ main_map->l_map_start = mapstart; ++ ++ /* Also where it ends. */ ++ allocend = main_map->l_addr + ph->p_vaddr + ph->p_memsz; ++ if (main_map->l_map_end < allocend) ++ main_map->l_map_end = allocend; ++ if ((ph->p_flags & PF_X) && allocend > main_map->l_text_end) ++ main_map->l_text_end = allocend; ++ } ++ break; ++ ++ case PT_TLS: ++ if (ph->p_memsz > 0) ++ { ++ /* Note that in the case the dynamic linker we duplicate work ++ here since we read the PT_TLS entry already in ++ _dl_start_final. But the result is repeatable so do not ++ check for this special but unimportant case. */ ++ main_map->l_tls_blocksize = ph->p_memsz; ++ main_map->l_tls_align = ph->p_align; ++ if (ph->p_align == 0) ++ main_map->l_tls_firstbyte_offset = 0; ++ else ++ main_map->l_tls_firstbyte_offset = (ph->p_vaddr ++ & (ph->p_align - 1)); ++ main_map->l_tls_initimage_size = ph->p_filesz; ++ main_map->l_tls_initimage = (void *) ph->p_vaddr; ++ ++ /* This image gets the ID one. */ ++ GL(dl_tls_max_dtv_idx) = main_map->l_tls_modid = 1; ++ } ++ break; ++ ++ case PT_GNU_STACK: ++ GL(dl_stack_flags) = ph->p_flags; ++ break; ++ ++ case PT_GNU_RELRO: ++ main_map->l_relro_addr = ph->p_vaddr; ++ main_map->l_relro_size = ph->p_memsz; ++ break; ++ } ++ /* Process program headers again, but scan them backwards so ++ that PT_NOTE can be skipped if PT_GNU_PROPERTY exits. */ ++ for (const ElfW(Phdr) *ph = &phdr[phnum]; ph != phdr; --ph) ++ switch (ph[-1].p_type) ++ { ++ case PT_NOTE: ++ _dl_process_pt_note (main_map, -1, &ph[-1]); ++ break; ++ case PT_GNU_PROPERTY: ++ _dl_process_pt_gnu_property (main_map, -1, &ph[-1]); ++ break; ++ } ++ ++ /* Adjust the address of the TLS initialization image in case ++ the executable is actually an ET_DYN object. */ ++ if (main_map->l_tls_initimage != NULL) ++ main_map->l_tls_initimage ++ = (char *) main_map->l_tls_initimage + main_map->l_addr; ++ if (! main_map->l_map_end) ++ main_map->l_map_end = ~0; ++ if (! main_map->l_text_end) ++ main_map->l_text_end = ~0; ++ if (! GL(dl_rtld_map).l_libname && GL(dl_rtld_map).l_name) ++ { ++ /* We were invoked directly, so the program might not have a ++ PT_INTERP. */ ++ _dl_rtld_libname.name = GL(dl_rtld_map).l_name; ++ /* _dl_rtld_libname.next = NULL; Already zero. */ ++ GL(dl_rtld_map).l_libname = &_dl_rtld_libname; ++ } ++ else ++ assert (GL(dl_rtld_map).l_libname); /* How else did we get here? */ ++ ++ return has_interp; ++} ++ + /* Adjusts the contents of the stack and related globals for the user + entry point. The ld.so processed skip_args arguments and bumped + _dl_argv and _dl_argc accordingly. Those arguments are removed from +@@ -1191,11 +1348,9 @@ dl_main (const ElfW(Phdr) *phdr, + ElfW(Addr) *user_entry, + ElfW(auxv_t) *auxv) + { +- const ElfW(Phdr) *ph; + struct link_map *main_map; + size_t file_size; + char *file; +- bool has_interp = false; + unsigned int i; + bool prelinked = false; + bool rtld_is_main = false; +@@ -1397,7 +1552,7 @@ dl_main (const ElfW(Phdr) *phdr, + load the program below unless it has a PT_GNU_STACK indicating + nonexecutable stack is ok. */ + +- for (ph = phdr; ph < &phdr[phnum]; ++ph) ++ for (const ElfW(Phdr) *ph = phdr; ph < &phdr[phnum]; ++ph) + if (ph->p_type == PT_GNU_STACK) + { + GL(dl_stack_flags) = ph->p_flags; +@@ -1519,147 +1674,7 @@ dl_main (const ElfW(Phdr) *phdr, + information for the program. */ + } + +- main_map->l_map_end = 0; +- main_map->l_text_end = 0; +- /* Perhaps the executable has no PT_LOAD header entries at all. */ +- main_map->l_map_start = ~0; +- /* And it was opened directly. */ +- ++main_map->l_direct_opencount; +- +- /* Scan the program header table for the dynamic section. */ +- for (ph = phdr; ph < &phdr[phnum]; ++ph) +- switch (ph->p_type) +- { +- case PT_PHDR: +- /* Find out the load address. */ +- main_map->l_addr = (ElfW(Addr)) phdr - ph->p_vaddr; +- break; +- case PT_DYNAMIC: +- /* This tells us where to find the dynamic section, +- which tells us everything we need to do. */ +- main_map->l_ld = (void *) main_map->l_addr + ph->p_vaddr; +- main_map->l_ld_readonly = (ph->p_flags & PF_W) == 0; +- break; +- case PT_INTERP: +- /* This "interpreter segment" was used by the program loader to +- find the program interpreter, which is this program itself, the +- dynamic linker. We note what name finds us, so that a future +- dlopen call or DT_NEEDED entry, for something that wants to link +- against the dynamic linker as a shared library, will know that +- the shared object is already loaded. */ +- _dl_rtld_libname.name = ((const char *) main_map->l_addr +- + ph->p_vaddr); +- /* _dl_rtld_libname.next = NULL; Already zero. */ +- GL(dl_rtld_map).l_libname = &_dl_rtld_libname; +- +- /* Ordinarilly, we would get additional names for the loader from +- our DT_SONAME. This can't happen if we were actually linked as +- a static executable (detect this case when we have no DYNAMIC). +- If so, assume the filename component of the interpreter path to +- be our SONAME, and add it to our name list. */ +- if (GL(dl_rtld_map).l_ld == NULL) +- { +- const char *p = NULL; +- const char *cp = _dl_rtld_libname.name; +- +- /* Find the filename part of the path. */ +- while (*cp != '\0') +- if (*cp++ == '/') +- p = cp; +- +- if (p != NULL) +- { +- _dl_rtld_libname2.name = p; +- /* _dl_rtld_libname2.next = NULL; Already zero. */ +- _dl_rtld_libname.next = &_dl_rtld_libname2; +- } +- } +- +- has_interp = true; +- break; +- case PT_LOAD: +- { +- ElfW(Addr) mapstart; +- ElfW(Addr) allocend; +- +- /* Remember where the main program starts in memory. */ +- mapstart = (main_map->l_addr +- + (ph->p_vaddr & ~(GLRO(dl_pagesize) - 1))); +- if (main_map->l_map_start > mapstart) +- main_map->l_map_start = mapstart; +- +- /* Also where it ends. */ +- allocend = main_map->l_addr + ph->p_vaddr + ph->p_memsz; +- if (main_map->l_map_end < allocend) +- main_map->l_map_end = allocend; +- if ((ph->p_flags & PF_X) && allocend > main_map->l_text_end) +- main_map->l_text_end = allocend; +- } +- break; +- +- case PT_TLS: +- if (ph->p_memsz > 0) +- { +- /* Note that in the case the dynamic linker we duplicate work +- here since we read the PT_TLS entry already in +- _dl_start_final. But the result is repeatable so do not +- check for this special but unimportant case. */ +- main_map->l_tls_blocksize = ph->p_memsz; +- main_map->l_tls_align = ph->p_align; +- if (ph->p_align == 0) +- main_map->l_tls_firstbyte_offset = 0; +- else +- main_map->l_tls_firstbyte_offset = (ph->p_vaddr +- & (ph->p_align - 1)); +- main_map->l_tls_initimage_size = ph->p_filesz; +- main_map->l_tls_initimage = (void *) ph->p_vaddr; +- +- /* This image gets the ID one. */ +- GL(dl_tls_max_dtv_idx) = main_map->l_tls_modid = 1; +- } +- break; +- +- case PT_GNU_STACK: +- GL(dl_stack_flags) = ph->p_flags; +- break; +- +- case PT_GNU_RELRO: +- main_map->l_relro_addr = ph->p_vaddr; +- main_map->l_relro_size = ph->p_memsz; +- break; +- } +- /* Process program headers again, but scan them backwards so +- that PT_NOTE can be skipped if PT_GNU_PROPERTY exits. */ +- for (ph = &phdr[phnum]; ph != phdr; --ph) +- switch (ph[-1].p_type) +- { +- case PT_NOTE: +- _dl_process_pt_note (main_map, -1, &ph[-1]); +- break; +- case PT_GNU_PROPERTY: +- _dl_process_pt_gnu_property (main_map, -1, &ph[-1]); +- break; +- } +- +- /* Adjust the address of the TLS initialization image in case +- the executable is actually an ET_DYN object. */ +- if (main_map->l_tls_initimage != NULL) +- main_map->l_tls_initimage +- = (char *) main_map->l_tls_initimage + main_map->l_addr; +- if (! main_map->l_map_end) +- main_map->l_map_end = ~0; +- if (! main_map->l_text_end) +- main_map->l_text_end = ~0; +- if (! GL(dl_rtld_map).l_libname && GL(dl_rtld_map).l_name) +- { +- /* We were invoked directly, so the program might not have a +- PT_INTERP. */ +- _dl_rtld_libname.name = GL(dl_rtld_map).l_name; +- /* _dl_rtld_libname.next = NULL; Already zero. */ +- GL(dl_rtld_map).l_libname = &_dl_rtld_libname; +- } +- else +- assert (GL(dl_rtld_map).l_libname); /* How else did we get here? */ ++ bool has_interp = rtld_setup_main_map (main_map); + + /* If the current libname is different from the SONAME, add the + latter as well. */ diff --git a/SOURCES/glibc-RHEL-93320-8.patch b/SOURCES/glibc-RHEL-93320-8.patch new file mode 100644 index 0000000..6715ac4 --- /dev/null +++ b/SOURCES/glibc-RHEL-93320-8.patch @@ -0,0 +1,70 @@ +commit 8eb2510d38226ce10a3a15109be948f052585106 +Author: Florian Weimer +Date: Mon Jan 17 09:57:19 2022 +0100 + + elf: Set l_contiguous to 1 for the main map in more cases + + l_contiguous was not initialized at all for the main map and + always 0. This commit adds code to check if the LOAD segments + are adjacent to each other, and sets l_contiguous accordingly. + This helps _dl_find_object because it is more efficient if the + main mapping is contiguous. + + Note that not all (PIE or non-PIE) binaries are contiguous in this + way because BFD ld creates executables with LOAD holes: + + ELF LOAD segments creating holes in the process image on GNU/Linux + https://sourceware.org/pipermail/binutils/2022-January/119082.html + https://sourceware.org/bugzilla/show_bug.cgi?id=28743 + + Reviewed-by: H.J. Lu + +diff --git a/elf/rtld.c b/elf/rtld.c +index a47e105987d87add..d698a32ae120e887 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -1147,6 +1147,22 @@ rtld_setup_main_map (struct link_map *main_map) + main_map->l_map_start = ~0; + /* And it was opened directly. */ + ++main_map->l_direct_opencount; ++ main_map->l_contiguous = 1; ++ ++ /* A PT_LOAD segment at an unexpected address will clear the ++ l_contiguous flag. The ELF specification says that PT_LOAD ++ segments need to be sorted in in increasing order, but perhaps ++ not all executables follow this requirement. Having l_contiguous ++ equal to 1 is just an optimization, so the code below does not ++ try to sort the segments in case they are unordered. ++ ++ There is one corner case in which l_contiguous is not set to 1, ++ but where it could be set: If a PIE (ET_DYN) binary is loaded by ++ glibc itself (not the kernel), it is always contiguous due to the ++ way the glibc loader works. However, the kernel loader may still ++ create holes in this case, and the code here still uses 0 ++ conservatively for the glibc-loaded case, too. */ ++ ElfW(Addr) expected_load_address = 0; + + /* Scan the program header table for the dynamic section. */ + for (const ElfW(Phdr) *ph = phdr; ph < &phdr[phnum]; ++ph) +@@ -1210,12 +1226,21 @@ rtld_setup_main_map (struct link_map *main_map) + if (main_map->l_map_start > mapstart) + main_map->l_map_start = mapstart; + ++ if (main_map->l_contiguous && expected_load_address != 0 ++ && expected_load_address != mapstart) ++ main_map->l_contiguous = 0; ++ + /* Also where it ends. */ + allocend = main_map->l_addr + ph->p_vaddr + ph->p_memsz; + if (main_map->l_map_end < allocend) + main_map->l_map_end = allocend; + if ((ph->p_flags & PF_X) && allocend > main_map->l_text_end) + main_map->l_text_end = allocend; ++ ++ /* The next expected address is the page following this load ++ segment. */ ++ expected_load_address = ((allocend + GLRO(dl_pagesize) - 1) ++ & ~(GLRO(dl_pagesize) - 1)); + } + break; + diff --git a/SOURCES/glibc-RHEL-93320-9.patch b/SOURCES/glibc-RHEL-93320-9.patch new file mode 100644 index 0000000..86d2780 --- /dev/null +++ b/SOURCES/glibc-RHEL-93320-9.patch @@ -0,0 +1,49 @@ +commit 06200aac9bec34dbcac28b8c60e49a77e7851c1f +Author: Florian Weimer +Date: Mon Jan 17 09:57:19 2022 +0100 + + elf/tst-dl_find_object: Disable subtests for non-contiguous maps (bug 28732) + + Reviewed-by: H.J. Lu + +diff --git a/elf/tst-dl_find_object.c b/elf/tst-dl_find_object.c +index 9abffa35d479c8fc..d8c217545d116453 100644 +--- a/elf/tst-dl_find_object.c ++++ b/elf/tst-dl_find_object.c +@@ -71,19 +71,24 @@ check (void *address, + __FILE__, line, address, + actual.dlfo_flags, expected->dlfo_flags); + } +- if (actual.dlfo_flags != expected->dlfo_flags) ++ if (expected->dlfo_link_map->l_contiguous) + { +- support_record_failure (); +- printf ("%s:%d: error: %p: map start is %p, expected %p\n", +- __FILE__, line, +- address, actual.dlfo_map_start, expected->dlfo_map_start); +- } +- if (actual.dlfo_map_end != expected->dlfo_map_end) +- { +- support_record_failure (); +- printf ("%s:%d: error: %p: map end is %p, expected %p\n", +- __FILE__, line, +- address, actual.dlfo_map_end, expected->dlfo_map_end); ++ /* If the mappings are not contiguous, the actual and execpted ++ mappings may differ, so this subtest will not work. */ ++ if (actual.dlfo_flags != expected->dlfo_flags) ++ { ++ support_record_failure (); ++ printf ("%s:%d: error: %p: map start is %p, expected %p\n", ++ __FILE__, line, ++ address, actual.dlfo_map_start, expected->dlfo_map_start); ++ } ++ if (actual.dlfo_map_end != expected->dlfo_map_end) ++ { ++ support_record_failure (); ++ printf ("%s:%d: error: %p: map end is %p, expected %p\n", ++ __FILE__, line, ++ address, actual.dlfo_map_end, expected->dlfo_map_end); ++ } + } + if (actual.dlfo_link_map != expected->dlfo_link_map) + { diff --git a/SOURCES/glibc-RHEL-94634.patch b/SOURCES/glibc-RHEL-94634.patch new file mode 100644 index 0000000..e9a194f --- /dev/null +++ b/SOURCES/glibc-RHEL-94634.patch @@ -0,0 +1,29 @@ +commit b22923abb046311ac9097a36b97b9b97342bac44 +Author: Carlos O'Donell +Date: Thu Aug 15 08:12:35 2024 -0400 + + Report error if setaffinity wrapper fails (Bug 32040) + + Previously if the setaffinity wrapper failed the rest of the subtest + would not execute and the current subtest would be reported as passing. + Now if the setaffinity wrapper fails the subtest is correctly reported + as faling. Tested manually by changing the conditions of the affinity + call including setting size to zero, or checking the wrong condition. + + No regressions on x86_64. + + Reviewed-by: Florian Weimer + +diff --git a/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c b/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c +index 55ddcda2ce24e186..6871ac73fd69a935 100644 +--- a/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c ++++ b/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c +@@ -158,7 +158,7 @@ test_size (const struct conf *conf, size_t size) + if (setaffinity (kernel_size, initial_set) < 0) + { + printf ("error: size %zu: setaffinity: %m\n", size); +- return true; ++ return false; + } + + /* Use one-CPU set to test switching between CPUs. */ diff --git a/SOURCES/glibc-RHEL-95247.patch b/SOURCES/glibc-RHEL-95247.patch new file mode 100644 index 0000000..bd4100a --- /dev/null +++ b/SOURCES/glibc-RHEL-95247.patch @@ -0,0 +1,103 @@ +commit 2fca4b624bd3ceb8c756b4145c7e96aa032b2b98 +Author: Florian Weimer +Date: Wed Jun 4 17:44:19 2025 +0200 + + Makefile: Avoid $(objpfx)/ in makefiles + + If paths with both $(objpfx)/ and $(objpfx) (which already includes + a trailing slash) appear during the build, this can trigger unexpected + rebuilds, or incorrect concurrent rebuilds. + +Conflicts: + elf/Makefile: Adjust for missing test in context lines. + +diff --git a/elf/Makefile b/elf/Makefile +index 3a50ca90366aec94..86d4dd9960088ee1 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -1165,11 +1165,11 @@ $(objpfx)$(1).generated-makefile: $(objpfx)$(1) + endef + endif + +-postclean-generated += $(objpfx)/dso-sort-tests-1.generated-makefile \ +- $(objpfx)/dso-sort-tests-2.generated-makefile \ +- $(objpfx)/dso-sort-tests-all2.generated-makefile \ +- $(objpfx)/dso-sort-tests-all3.generated-makefile \ +- $(objpfx)/dso-sort-tests-all4.generated-makefile ++postclean-generated += $(objpfx)dso-sort-tests-1.generated-makefile \ ++ $(objpfx)dso-sort-tests-2.generated-makefile \ ++ $(objpfx)dso-sort-tests-all2.generated-makefile \ ++ $(objpfx)dso-sort-tests-all3.generated-makefile \ ++ $(objpfx)dso-sort-tests-all4.generated-makefile + + # Generate from each testcase description file + ifeq (yes,$(have-tunables)) +@@ -2757,7 +2757,7 @@ $(objpfx)tst-ro-dynamic-mod.so: $(objpfx)tst-ro-dynamic-mod.os \ + -Wl,--script=tst-ro-dynamic-mod.map \ + $(objpfx)tst-ro-dynamic-mod.os + +-$(objpfx)tst-rtld-run-static.out: $(objpfx)/ldconfig ++$(objpfx)tst-rtld-run-static.out: $(objpfx)ldconfig + + $(objpfx)tst-tls-allocation-failure-static-patched: \ + $(objpfx)tst-tls-allocation-failure-static $(..)scripts/tst-elf-edit.py +diff --git a/nss/Makefile b/nss/Makefile +index 62a68880198c243c..dbdba5bf815136ef 100644 +--- a/nss/Makefile ++++ b/nss/Makefile +@@ -191,39 +191,39 @@ libof-nss_test1 = extramodules + libof-nss_test2 = extramodules + libof-nss_test_errno = extramodules + libof-nss_test_gai_hv2_canonname = extramodules +-$(objpfx)/libnss_test1.so: $(objpfx)nss_test1.os $(link-libc-deps) ++$(objpfx)libnss_test1.so: $(objpfx)nss_test1.os $(link-libc-deps) + $(build-module) +-$(objpfx)/libnss_test2.so: $(objpfx)nss_test2.os $(link-libc-deps) ++$(objpfx)libnss_test2.so: $(objpfx)nss_test2.os $(link-libc-deps) + $(build-module) +-$(objpfx)/libnss_test_errno.so: $(objpfx)nss_test_errno.os $(link-libc-deps) ++$(objpfx)libnss_test_errno.so: $(objpfx)nss_test_errno.os $(link-libc-deps) + $(build-module) +-$(objpfx)/libnss_test_gai_hv2_canonname.so: \ ++$(objpfx)libnss_test_gai_hv2_canonname.so: \ + $(objpfx)nss_test_gai_hv2_canonname.os $(link-libc-deps) + $(build-module) + $(objpfx)nss_test2.os : nss_test1.c + # Use the nss_files suffix for these objects as well. +-$(objpfx)/libnss_test1.so$(libnss_files.so-version): $(objpfx)/libnss_test1.so ++$(objpfx)libnss_test1.so$(libnss_files.so-version): $(objpfx)libnss_test1.so + $(make-link) +-$(objpfx)/libnss_test2.so$(libnss_files.so-version): $(objpfx)/libnss_test2.so ++$(objpfx)libnss_test2.so$(libnss_files.so-version): $(objpfx)libnss_test2.so + $(make-link) +-$(objpfx)/libnss_test_errno.so$(libnss_files.so-version): \ +- $(objpfx)/libnss_test_errno.so ++$(objpfx)libnss_test_errno.so$(libnss_files.so-version): \ ++ $(objpfx)libnss_test_errno.so + $(make-link) +-$(objpfx)/libnss_test_gai_hv2_canonname.so$(libnss_files.so-version): \ +- $(objpfx)/libnss_test_gai_hv2_canonname.so ++$(objpfx)libnss_test_gai_hv2_canonname.so$(libnss_files.so-version): \ ++ $(objpfx)libnss_test_gai_hv2_canonname.so + $(make-link) + $(patsubst %,$(objpfx)%.out,$(tests) $(tests-container)) : \ +- $(objpfx)/libnss_test1.so$(libnss_files.so-version) \ +- $(objpfx)/libnss_test2.so$(libnss_files.so-version) \ +- $(objpfx)/libnss_test_errno.so$(libnss_files.so-version) \ +- $(objpfx)/libnss_test_gai_hv2_canonname.so$(libnss_files.so-version) ++ $(objpfx)libnss_test1.so$(libnss_files.so-version) \ ++ $(objpfx)libnss_test2.so$(libnss_files.so-version) \ ++ $(objpfx)libnss_test_errno.so$(libnss_files.so-version) \ ++ $(objpfx)libnss_test_gai_hv2_canonname.so$(libnss_files.so-version) + + ifeq (yes,$(have-thread-library)) + $(objpfx)tst-cancel-getpwuid_r: $(shared-thread-library) + endif + +-$(objpfx)tst-nss-files-alias-leak.out: $(objpfx)/libnss_files.so +-$(objpfx)tst-nss-files-alias-truncated.out: $(objpfx)/libnss_files.so ++$(objpfx)tst-nss-files-alias-leak.out: $(objpfx)libnss_files.so ++$(objpfx)tst-nss-files-alias-truncated.out: $(objpfx)libnss_files.so + + tst-nss-gai-hv2-canonname-ENV = \ + MALLOC_TRACE=$(objpfx)tst-nss-gai-hv2-canonname.mtrace \ diff --git a/SOURCES/glibc-RHEL-95546-1.patch b/SOURCES/glibc-RHEL-95546-1.patch new file mode 100644 index 0000000..dbfcddd --- /dev/null +++ b/SOURCES/glibc-RHEL-95546-1.patch @@ -0,0 +1,199 @@ +This reverts "glibc-RHEL-24740-3.patch" to fix CVE-2025-5702. + +diff --git a/sysdeps/powerpc/powerpc64/le/power10/strcmp.S b/sysdeps/powerpc/powerpc64/le/power10/strcmp.S +index 3406f4f26a214270..a3c1adad539978e0 100644 +--- a/sysdeps/powerpc/powerpc64/le/power10/strcmp.S ++++ b/sysdeps/powerpc/powerpc64/le/power10/strcmp.S +@@ -62,7 +62,7 @@ + lxvl 32+v5,reg2,r0; \ + add reg1,reg1,len_reg; \ + add reg2,reg2,len_reg; \ +- vcmpnezb v7,v4,v5; \ ++ vcmpnezb. v7,v4,v5; \ + vctzlsbb r6,v7; \ + cmpld cr7,r6,len_reg; \ + blt cr7,L(different); \ +@@ -72,110 +72,70 @@ + + .machine power9 + ENTRY_TOCLESS (STRCMP, 4) +- andi. r7,r3,4095 +- andi. r8,r4,4095 +- cmpldi cr0,r7,4096-16 +- cmpldi cr1,r8,4096-16 +- bgt cr0,L(crosses) +- bgt cr1,L(crosses) +- COMPARE_16(v4,v5,0) +- +-L(crosses): +- andi. r7,r3,15 +- subfic r7,r7,16 /* r7(nalign1) = 16 - (str1 & 15). */ +- andi. r9,r4,15 +- subfic r5,r9,16 /* r5(nalign2) = 16 - (str2 & 15). */ +- cmpld cr7,r7,r5 +- beq cr7,L(same_aligned) +- blt cr7,L(nalign1_min) ++ li r11,16 ++ /* eq bit of cr1 used as swap status flag to indicate if ++ source pointers were swapped. */ ++ crclr 4*cr1+eq ++ vspltisb v19,-1 ++ andi. r7,r3,15 ++ sub r7,r11,r7 /* r7(nalign1) = 16 - (str1 & 15). */ ++ andi. r9,r4,15 ++ sub r5,r11,r9 /* r5(nalign2) = 16 - (str2 & 15). */ ++ cmpld cr7,r7,r5 ++ beq cr7,L(same_aligned) ++ blt cr7,L(nalign1_min) ++ /* Swap r3 and r4, and r7 and r5 such that r3 and r7 hold the ++ pointer which is closer to the next 16B boundary so that only ++ one CHECK_N_BYTES is needed before entering the loop below. */ ++ mr r8,r4 ++ mr r4,r3 ++ mr r3,r8 ++ mr r12,r7 ++ mr r7,r5 ++ mr r5,r12 ++ crset 4*cr1+eq /* Set bit on swapping source pointers. */ + +- /* nalign2 is minimum and s2 pointer is aligned. */ +- CHECK_N_BYTES(r3,r4,r5) +- /* Are we on the 64B hunk which crosses a page? */ +- andi. r10,r3,63 /* Determine offset into 64B hunk. */ +- andi. r8,r3,15 /* The offset into the 16B hunk. */ +- neg r7,r3 +- andi. r9,r7,15 /* Number of bytes after a 16B cross. */ +- rlwinm. r7,r7,26,0x3F /* ((r3-4096))>>6&63. */ +- beq L(compare_64_pagecross) +- mtctr r7 +- b L(compare_64B_unaligned) +- +- /* nalign1 is minimum and s1 pointer is aligned. */ ++ .p2align 5 + L(nalign1_min): + CHECK_N_BYTES(r3,r4,r7) +- /* Are we on the 64B hunk which crosses a page? */ +- andi. r10,r4,63 /* Determine offset into 64B hunk. */ +- andi. r8,r4,15 /* The offset into the 16B hunk. */ +- neg r7,r4 +- andi. r9,r7,15 /* Number of bytes after a 16B cross. */ +- rlwinm. r7,r7,26,0x3F /* ((r4-4096))>>6&63. */ +- beq L(compare_64_pagecross) +- mtctr r7 + + .p2align 5 +-L(compare_64B_unaligned): +- COMPARE_16(v4,v5,0) +- COMPARE_16(v4,v5,16) +- COMPARE_16(v4,v5,32) +- COMPARE_16(v4,v5,48) +- addi r3,r3,64 +- addi r4,r4,64 +- bdnz L(compare_64B_unaligned) ++L(s1_aligned): ++ /* r9 and r5 is number of bytes to be read after and before ++ page boundary correspondingly. */ ++ sub r5,r5,r7 ++ subfic r9,r5,16 ++ /* Now let r7 hold the count of quadwords which can be ++ checked without crossing a page boundary. quadword offset is ++ (str2>>4)&0xFF. */ ++ rlwinm r7,r4,28,0xFF ++ /* Below check is required only for first iteration. For second ++ iteration and beyond, the new loop counter is always 255. */ ++ cmpldi r7,255 ++ beq L(L3) ++ /* Get the initial loop count by 255-((str2>>4)&0xFF). */ ++ subfic r11,r7,255 + +- /* Cross the page boundary of s2, carefully. Only for first +- iteration we have to get the count of 64B blocks to be checked. +- From second iteration and beyond, loop counter is always 63. */ +-L(compare_64_pagecross): +- li r11, 63 ++ .p2align 5 ++L(L1): + mtctr r11 +- cmpldi r10,16 +- ble L(cross_4) +- cmpldi r10,32 +- ble L(cross_3) +- cmpldi r10,48 +- ble L(cross_2) +-L(cross_1): +- CHECK_N_BYTES(r3,r4,r9) +- CHECK_N_BYTES(r3,r4,r8) +- COMPARE_16(v4,v5,0) +- COMPARE_16(v4,v5,16) +- COMPARE_16(v4,v5,32) +- addi r3,r3,48 +- addi r4,r4,48 +- b L(compare_64B_unaligned) +-L(cross_2): +- COMPARE_16(v4,v5,0) +- addi r3,r3,16 +- addi r4,r4,16 +- CHECK_N_BYTES(r3,r4,r9) +- CHECK_N_BYTES(r3,r4,r8) +- COMPARE_16(v4,v5,0) +- COMPARE_16(v4,v5,16) +- addi r3,r3,32 +- addi r4,r4,32 +- b L(compare_64B_unaligned) +-L(cross_3): +- COMPARE_16(v4,v5,0) +- COMPARE_16(v4,v5,16) +- addi r3,r3,32 +- addi r4,r4,32 +- CHECK_N_BYTES(r3,r4,r9) +- CHECK_N_BYTES(r3,r4,r8) +- COMPARE_16(v4,v5,0) ++ ++ .p2align 5 ++L(L2): ++ COMPARE_16(v4,v5,0) /* Load 16B blocks using lxv. */ + addi r3,r3,16 + addi r4,r4,16 +- b L(compare_64B_unaligned) +-L(cross_4): +- COMPARE_16(v4,v5,0) +- COMPARE_16(v4,v5,16) +- COMPARE_16(v4,v5,32) +- addi r3,r3,48 +- addi r4,r4,48 ++ bdnz L(L2) ++ /* Cross the page boundary of s2, carefully. */ ++ ++ .p2align 5 ++L(L3): ++ CHECK_N_BYTES(r3,r4,r5) + CHECK_N_BYTES(r3,r4,r9) +- CHECK_N_BYTES(r3,r4,r8) +- b L(compare_64B_unaligned) ++ li r11,255 /* Load the new loop counter. */ ++ b L(L1) + ++ .p2align 5 + L(same_aligned): + CHECK_N_BYTES(r3,r4,r7) + /* Align s1 to 32B and adjust s2 address. +@@ -208,7 +168,18 @@ L(16B_aligned_loop): + + /* Calculate and return the difference. */ + L(different): +- TAIL(v4,v5) ++ vctzlsbb r6,v7 ++ vextubrx r5,r6,v4 ++ vextubrx r4,r6,v5 ++ bt 4*cr1+eq,L(swapped) ++ subf r3,r4,r5 ++ blr ++ ++ /* If src pointers were swapped, then swap the ++ indices and calculate the return value. */ ++L(swapped): ++ subf r3,r5,r4 ++ blr + + .p2align 5 + L(32B_aligned_loop): diff --git a/SOURCES/glibc-RHEL-95546-2.patch b/SOURCES/glibc-RHEL-95546-2.patch new file mode 100644 index 0000000..93f21af --- /dev/null +++ b/SOURCES/glibc-RHEL-95546-2.patch @@ -0,0 +1,432 @@ +This reverts glibc-RHEL-24740-2.patch due to a psABI violation in +Power10 implementation (swbz#33059). + +See + +Relates to CVE-2025-5702. + +diff --git a/sysdeps/powerpc/powerpc64/le/power10/memchr.S b/sysdeps/powerpc/powerpc64/le/power10/memchr.S +deleted file mode 100644 +index faf293f3447e6fc6..0000000000000000 +--- a/sysdeps/powerpc/powerpc64/le/power10/memchr.S ++++ /dev/null +@@ -1,315 +0,0 @@ +-/* Optimized memchr implementation for POWER10 LE. +- Copyright (C) 2021-2023 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#include +- +-# ifndef MEMCHR +-# define MEMCHR __memchr +-# endif +-# define M_VREG_ZERO v20 +-# define M_OFF_START_LOOP 256 +-# define MEMCHR_SUBTRACT_VECTORS \ +- vsububm v4,v4,v18; \ +- vsububm v5,v5,v18; \ +- vsububm v6,v6,v18; \ +- vsububm v7,v7,v18; +-# define M_TAIL(vreg,increment) \ +- vctzlsbb r4,vreg; \ +- cmpld r5,r4; \ +- ble L(null); \ +- addi r4,r4,increment; \ +- add r3,r6,r4; \ +- blr +- +-/* TODO: Replace macros by the actual instructions when minimum binutils becomes +- >= 2.35. This is used to keep compatibility with older versions. */ +-#define M_VEXTRACTBM(rt,vrb) \ +- .long(((4)<<(32-6)) \ +- | ((rt)<<(32-11)) \ +- | ((8)<<(32-16)) \ +- | ((vrb)<<(32-21)) \ +- | 1602) +- +-#define M_LXVP(xtp,dq,ra) \ +- .long(((6)<<(32-6)) \ +- | ((((xtp)-32)>>1)<<(32-10)) \ +- | ((1)<<(32-11)) \ +- | ((ra)<<(32-16)) \ +- | dq) +- +-#define CHECK16B(vreg,offset,addr,label) \ +- lxv vreg+32,offset(addr); \ +- vcmpequb. vreg,vreg,v18; \ +- bne cr6,L(label); \ +- cmpldi r5,16; \ +- ble L(null); \ +- addi r5,r5,-16; +- +-/* Load 4 quadwords, merge into one VR for speed and check for NULLs. r6 has # +- of bytes already checked. */ +-#define CHECK64B(offset,addr,label) \ +- M_LXVP(v4+32,offset,addr); \ +- M_LXVP(v6+32,offset+32,addr); \ +- MEMCHR_SUBTRACT_VECTORS; \ +- vminub v14,v4,v5; \ +- vminub v15,v6,v7; \ +- vminub v16,v14,v15; \ +- vcmpequb. v0,v16,M_VREG_ZERO; \ +- beq cr6,$+12; \ +- li r7,offset; \ +- b L(label); \ +- cmpldi r5,64; \ +- ble L(null); \ +- addi r5,r5,-64 +- +-/* Implements the function +- void *[r3] memchr (const void *s [r3], int c [r4], size_t n [r5]). */ +- +- .machine power9 +- +-ENTRY_TOCLESS (MEMCHR) +- CALL_MCOUNT 3 +- +- cmpldi r5,0 +- beq L(null) +- mr r0,r5 +- xori r6,r4,0xff +- +- mtvsrd v18+32,r4 /* matching char in v18 */ +- mtvsrd v19+32,r6 /* non matching char in v19 */ +- +- vspltb v18,v18,7 /* replicate */ +- vspltb v19,v19,7 /* replicate */ +- vspltisb M_VREG_ZERO,0 +- +- /* Next 16B-aligned address. Prepare address for L(aligned). */ +- addi r6,r3,16 +- clrrdi r6,r6,4 +- +- /* Align data and fill bytes not loaded with non matching char. */ +- lvx v0,0,r3 +- lvsr v1,0,r3 +- vperm v0,v19,v0,v1 +- +- vcmpequb. v6,v0,v18 +- bne cr6,L(found) +- sub r4,r6,r3 +- cmpld r5,r4 +- ble L(null) +- sub r5,r5,r4 +- +- /* Test up to OFF_START_LOOP-16 bytes in 16B chunks. The main loop is +- optimized for longer strings, so checking the first bytes in 16B +- chunks benefits a lot small strings. */ +- .p2align 5 +-L(aligned): +- cmpldi r5,0 +- beq L(null) +- +- CHECK16B(v0,0,r6,tail1) +- CHECK16B(v1,16,r6,tail2) +- CHECK16B(v2,32,r6,tail3) +- CHECK16B(v3,48,r6,tail4) +- CHECK16B(v4,64,r6,tail5) +- CHECK16B(v5,80,r6,tail6) +- CHECK16B(v6,96,r6,tail7) +- CHECK16B(v7,112,r6,tail8) +- CHECK16B(v8,128,r6,tail9) +- CHECK16B(v9,144,r6,tail10) +- CHECK16B(v10,160,r6,tail11) +- CHECK16B(v0,176,r6,tail12) +- CHECK16B(v1,192,r6,tail13) +- CHECK16B(v2,208,r6,tail14) +- CHECK16B(v3,224,r6,tail15) +- +- cmpdi cr5,r4,0 /* Check if c == 0. This will be useful to +- choose how we will perform the main loop. */ +- +- /* Prepare address for the loop. */ +- addi r4,r3,M_OFF_START_LOOP +- clrrdi r4,r4,6 +- sub r6,r4,r3 +- sub r5,r0,r6 +- addi r6,r4,128 +- +- /* If c == 0, use the loop without the vsububm. */ +- beq cr5,L(loop) +- +- /* This is very similar to the block after L(loop), the difference is +- that here MEMCHR_SUBTRACT_VECTORS is not empty, and we subtract +- each byte loaded by the char we are looking for, this way we can keep +- using vminub to merge the results and checking for nulls. */ +- .p2align 5 +-L(memchr_loop): +- CHECK64B(0,r4,pre_tail_64b) +- CHECK64B(64,r4,pre_tail_64b) +- addi r4,r4,256 +- +- CHECK64B(0,r6,tail_64b) +- CHECK64B(64,r6,tail_64b) +- addi r6,r6,256 +- +- CHECK64B(0,r4,pre_tail_64b) +- CHECK64B(64,r4,pre_tail_64b) +- addi r4,r4,256 +- +- CHECK64B(0,r6,tail_64b) +- CHECK64B(64,r6,tail_64b) +- addi r6,r6,256 +- +- b L(memchr_loop) +- /* Switch to a more aggressive approach checking 64B each time. Use 2 +- pointers 128B apart and unroll the loop once to make the pointer +- updates and usages separated enough to avoid stalls waiting for +- address calculation. */ +- .p2align 5 +-L(loop): +-#undef MEMCHR_SUBTRACT_VECTORS +-#define MEMCHR_SUBTRACT_VECTORS /* nothing */ +- CHECK64B(0,r4,pre_tail_64b) +- CHECK64B(64,r4,pre_tail_64b) +- addi r4,r4,256 +- +- CHECK64B(0,r6,tail_64b) +- CHECK64B(64,r6,tail_64b) +- addi r6,r6,256 +- +- CHECK64B(0,r4,pre_tail_64b) +- CHECK64B(64,r4,pre_tail_64b) +- addi r4,r4,256 +- +- CHECK64B(0,r6,tail_64b) +- CHECK64B(64,r6,tail_64b) +- addi r6,r6,256 +- +- b L(loop) +- +- .p2align 5 +-L(pre_tail_64b): +- mr r6,r4 +-L(tail_64b): +- /* OK, we found a null byte. Let's look for it in the current 64-byte +- block and mark it in its corresponding VR. lxvp vx,0(ry) puts the +- low 16B bytes into vx+1, and the high into vx, so the order here is +- v5, v4, v7, v6. */ +- vcmpequb v1,v5,M_VREG_ZERO +- vcmpequb v2,v4,M_VREG_ZERO +- vcmpequb v3,v7,M_VREG_ZERO +- vcmpequb v4,v6,M_VREG_ZERO +- +- /* Take into account the other 64B blocks we had already checked. */ +- add r6,r6,r7 +- /* Extract first bit of each byte. */ +- M_VEXTRACTBM(r8,v1) +- M_VEXTRACTBM(r9,v2) +- M_VEXTRACTBM(r10,v3) +- M_VEXTRACTBM(r11,v4) +- +- /* Shift each value into their corresponding position. */ +- sldi r9,r9,16 +- sldi r10,r10,32 +- sldi r11,r11,48 +- +- /* Merge the results. */ +- or r8,r8,r9 +- or r9,r10,r11 +- or r11,r9,r8 +- +- cnttzd r0,r11 /* Count trailing zeros before the match. */ +- cmpld r5,r0 +- ble L(null) +- add r3,r6,r0 /* Compute final address. */ +- blr +- +- .p2align 5 +-L(tail1): +- M_TAIL(v0,0) +- +- .p2align 5 +-L(tail2): +- M_TAIL(v1,16) +- +- .p2align 5 +-L(tail3): +- M_TAIL(v2,32) +- +- .p2align 5 +-L(tail4): +- M_TAIL(v3,48) +- +- .p2align 5 +-L(tail5): +- M_TAIL(v4,64) +- +- .p2align 5 +-L(tail6): +- M_TAIL(v5,80) +- +- .p2align 5 +-L(tail7): +- M_TAIL(v6,96) +- +- .p2align 5 +-L(tail8): +- M_TAIL(v7,112) +- +- .p2align 5 +-L(tail9): +- M_TAIL(v8,128) +- +- .p2align 5 +-L(tail10): +- M_TAIL(v9,144) +- +- .p2align 5 +-L(tail11): +- M_TAIL(v10,160) +- +- .p2align 5 +-L(tail12): +- M_TAIL(v0,176) +- +- .p2align 5 +-L(tail13): +- M_TAIL(v1,192) +- +- .p2align 5 +-L(tail14): +- M_TAIL(v2,208) +- +- .p2align 5 +-L(tail15): +- M_TAIL(v3,224) +- +- .p2align 5 +-L(found): +- vctzlsbb r7,v6 +- cmpld r5,r7 +- ble L(null) +- add r3,r3,r7 +- blr +- +- .p2align 5 +-L(null): +- li r3,0 +- blr +- +-END (MEMCHR) +- +-weak_alias (__memchr, memchr) +-libc_hidden_builtin_def (memchr) +diff --git a/sysdeps/powerpc/powerpc64/multiarch/Makefile b/sysdeps/powerpc/powerpc64/multiarch/Makefile +index b4251932de1854c2..91ed88a9c716800d 100644 +--- a/sysdeps/powerpc/powerpc64/multiarch/Makefile ++++ b/sysdeps/powerpc/powerpc64/multiarch/Makefile +@@ -31,10 +31,10 @@ sysdep_routines += memcpy-power8-cached memcpy-power7 memcpy-a2 memcpy-power6 \ + strncase-power8 + + ifneq (,$(filter %le,$(config-machine))) +-sysdep_routines += memchr-power10 memcmp-power10 memcpy-power10 \ +- memmove-power10 memset-power10 rawmemchr-power9 \ +- rawmemchr-power10 strcmp-power9 strcmp-power10 \ +- strncmp-power9 strcpy-power9 stpcpy-power9 \ ++sysdep_routines += memcmp-power10 memcpy-power10 memmove-power10 memset-power10 \ ++ rawmemchr-power9 rawmemchr-power10 \ ++ strcmp-power9 strcmp-power10 strncmp-power9 \ ++ strcpy-power9 stpcpy-power9 \ + strlen-power9 strncpy-power9 stpncpy-power9 strlen-power10 + endif + CFLAGS-strncase-power7.c += -mcpu=power7 -funroll-loops +diff --git a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c +index e8a38fd4d5e1357e..caec2047ab10d209 100644 +--- a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c ++++ b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c +@@ -265,12 +265,6 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, + + /* Support sysdeps/powerpc/powerpc64/multiarch/memchr.c. */ + IFUNC_IMPL (i, name, memchr, +-#ifdef __LITTLE_ENDIAN__ +- IFUNC_IMPL_ADD (array, i, memchr, +- hwcap2 & PPC_FEATURE2_ARCH_3_1 +- && hwcap & PPC_FEATURE_HAS_VSX, +- __memchr_power10) +-#endif + IFUNC_IMPL_ADD (array, i, memchr, + hwcap2 & PPC_FEATURE2_ARCH_2_07 + && hwcap & PPC_FEATURE_HAS_ALTIVEC, +diff --git a/sysdeps/powerpc/powerpc64/multiarch/memchr-power10.S b/sysdeps/powerpc/powerpc64/multiarch/memchr-power10.S +deleted file mode 100644 +index b9ed7926762e2b6f..0000000000000000 +--- a/sysdeps/powerpc/powerpc64/multiarch/memchr-power10.S ++++ /dev/null +@@ -1,28 +0,0 @@ +-/* Optimized memchr implementation for POWER10/PPC64. +- Copyright (C) 2016-2023 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#if defined __LITTLE_ENDIAN__ && IS_IN (libc) +-#define MEMCHR __memchr_power10 +- +-#undef libc_hidden_builtin_def +-#define libc_hidden_builtin_def(name) +-#undef weak_alias +-#define weak_alias(name,alias) +- +-#include +-#endif +diff --git a/sysdeps/powerpc/powerpc64/multiarch/memchr.c b/sysdeps/powerpc/powerpc64/multiarch/memchr.c +index 389d5f18683c2dfc..f40013e06113096f 100644 +--- a/sysdeps/powerpc/powerpc64/multiarch/memchr.c ++++ b/sysdeps/powerpc/powerpc64/multiarch/memchr.c +@@ -25,23 +25,15 @@ extern __typeof (__memchr) __memchr_ppc attribute_hidden; + extern __typeof (__memchr) __memchr_power7 attribute_hidden; + extern __typeof (__memchr) __memchr_power8 attribute_hidden; + +-# ifdef __LITTLE_ENDIAN__ +-extern __typeof (__memchr) __memchr_power10 attribute_hidden; +-# endif + /* Avoid DWARF definition DIE on ifunc symbol so that GDB can handle + ifunc symbol properly. */ + libc_ifunc (__memchr, +-# ifdef __LITTLE_ENDIAN__ +- (hwcap2 & PPC_FEATURE2_ARCH_3_1 +- && hwcap & PPC_FEATURE_HAS_VSX) +- ? __memchr_power10 : +-# endif +- (hwcap2 & PPC_FEATURE2_ARCH_2_07 +- && hwcap & PPC_FEATURE_HAS_ALTIVEC) +- ? __memchr_power8 : +- (hwcap & PPC_FEATURE_ARCH_2_06) +- ? __memchr_power7 +- : __memchr_ppc); ++ (hwcap2 & PPC_FEATURE2_ARCH_2_07 ++ && hwcap & PPC_FEATURE_HAS_ALTIVEC) ++ ? __memchr_power8 : ++ (hwcap & PPC_FEATURE_ARCH_2_06) ++ ? __memchr_power7 ++ : __memchr_ppc); + + weak_alias (__memchr, memchr) + libc_hidden_builtin_def (memchr) diff --git a/SOURCES/glibc-RHEL-95546-3.patch b/SOURCES/glibc-RHEL-95546-3.patch new file mode 100644 index 0000000..84f4950 --- /dev/null +++ b/SOURCES/glibc-RHEL-95546-3.patch @@ -0,0 +1,294 @@ +This reverts glibc-RHEL-24740-1.patch to fix CVE-2025-5702. + +diff --git a/sysdeps/powerpc/powerpc64/le/power10/strcmp.S b/sysdeps/powerpc/powerpc64/le/power10/strcmp.S +deleted file mode 100644 +index a3c1adad539978e0..0000000000000000 +--- a/sysdeps/powerpc/powerpc64/le/power10/strcmp.S ++++ /dev/null +@@ -1,204 +0,0 @@ +-/* Optimized strcmp implementation for PowerPC64/POWER10. +- Copyright (C) 2021-2023 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +-#include +- +-#ifndef STRCMP +-# define STRCMP strcmp +-#endif +- +-/* Implements the function +- int [r3] strcmp (const char *s1 [r3], const char *s2 [r4]). */ +- +-/* TODO: Change this to actual instructions when minimum binutils is upgraded +- to 2.27. Macros are defined below for these newer instructions in order +- to maintain compatibility. */ +- +-#define LXVP(xtp,dq,ra) \ +- .long(((6)<<(32-6)) \ +- | ((((xtp)-32)>>1)<<(32-10)) \ +- | ((1)<<(32-11)) \ +- | ((ra)<<(32-16)) \ +- | dq) +- +-#define COMPARE_16(vreg1,vreg2,offset) \ +- lxv vreg1+32,offset(r3); \ +- lxv vreg2+32,offset(r4); \ +- vcmpnezb. v7,vreg1,vreg2; \ +- bne cr6,L(different); \ +- +-#define COMPARE_32(vreg1,vreg2,offset,label1,label2) \ +- LXVP(vreg1+32,offset,r3); \ +- LXVP(vreg2+32,offset,r4); \ +- vcmpnezb. v7,vreg1+1,vreg2+1; \ +- bne cr6,L(label1); \ +- vcmpnezb. v7,vreg1,vreg2; \ +- bne cr6,L(label2); \ +- +-#define TAIL(vreg1,vreg2) \ +- vctzlsbb r6,v7; \ +- vextubrx r5,r6,vreg1; \ +- vextubrx r4,r6,vreg2; \ +- subf r3,r4,r5; \ +- blr; \ +- +-#define CHECK_N_BYTES(reg1,reg2,len_reg) \ +- sldi r0,len_reg,56; \ +- lxvl 32+v4,reg1,r0; \ +- lxvl 32+v5,reg2,r0; \ +- add reg1,reg1,len_reg; \ +- add reg2,reg2,len_reg; \ +- vcmpnezb. v7,v4,v5; \ +- vctzlsbb r6,v7; \ +- cmpld cr7,r6,len_reg; \ +- blt cr7,L(different); \ +- +- /* TODO: change this to .machine power10 when the minimum required +- binutils allows it. */ +- +- .machine power9 +-ENTRY_TOCLESS (STRCMP, 4) +- li r11,16 +- /* eq bit of cr1 used as swap status flag to indicate if +- source pointers were swapped. */ +- crclr 4*cr1+eq +- vspltisb v19,-1 +- andi. r7,r3,15 +- sub r7,r11,r7 /* r7(nalign1) = 16 - (str1 & 15). */ +- andi. r9,r4,15 +- sub r5,r11,r9 /* r5(nalign2) = 16 - (str2 & 15). */ +- cmpld cr7,r7,r5 +- beq cr7,L(same_aligned) +- blt cr7,L(nalign1_min) +- /* Swap r3 and r4, and r7 and r5 such that r3 and r7 hold the +- pointer which is closer to the next 16B boundary so that only +- one CHECK_N_BYTES is needed before entering the loop below. */ +- mr r8,r4 +- mr r4,r3 +- mr r3,r8 +- mr r12,r7 +- mr r7,r5 +- mr r5,r12 +- crset 4*cr1+eq /* Set bit on swapping source pointers. */ +- +- .p2align 5 +-L(nalign1_min): +- CHECK_N_BYTES(r3,r4,r7) +- +- .p2align 5 +-L(s1_aligned): +- /* r9 and r5 is number of bytes to be read after and before +- page boundary correspondingly. */ +- sub r5,r5,r7 +- subfic r9,r5,16 +- /* Now let r7 hold the count of quadwords which can be +- checked without crossing a page boundary. quadword offset is +- (str2>>4)&0xFF. */ +- rlwinm r7,r4,28,0xFF +- /* Below check is required only for first iteration. For second +- iteration and beyond, the new loop counter is always 255. */ +- cmpldi r7,255 +- beq L(L3) +- /* Get the initial loop count by 255-((str2>>4)&0xFF). */ +- subfic r11,r7,255 +- +- .p2align 5 +-L(L1): +- mtctr r11 +- +- .p2align 5 +-L(L2): +- COMPARE_16(v4,v5,0) /* Load 16B blocks using lxv. */ +- addi r3,r3,16 +- addi r4,r4,16 +- bdnz L(L2) +- /* Cross the page boundary of s2, carefully. */ +- +- .p2align 5 +-L(L3): +- CHECK_N_BYTES(r3,r4,r5) +- CHECK_N_BYTES(r3,r4,r9) +- li r11,255 /* Load the new loop counter. */ +- b L(L1) +- +- .p2align 5 +-L(same_aligned): +- CHECK_N_BYTES(r3,r4,r7) +- /* Align s1 to 32B and adjust s2 address. +- Use lxvp only if both s1 and s2 are 32B aligned. */ +- COMPARE_16(v4,v5,0) +- COMPARE_16(v4,v5,16) +- COMPARE_16(v4,v5,32) +- COMPARE_16(v4,v5,48) +- addi r3,r3,64 +- addi r4,r4,64 +- COMPARE_16(v4,v5,0) +- COMPARE_16(v4,v5,16) +- +- clrldi r6,r3,59 +- subfic r5,r6,32 +- add r3,r3,r5 +- add r4,r4,r5 +- andi. r5,r4,0x1F +- beq cr0,L(32B_aligned_loop) +- +- .p2align 5 +-L(16B_aligned_loop): +- COMPARE_16(v4,v5,0) +- COMPARE_16(v4,v5,16) +- COMPARE_16(v4,v5,32) +- COMPARE_16(v4,v5,48) +- addi r3,r3,64 +- addi r4,r4,64 +- b L(16B_aligned_loop) +- +- /* Calculate and return the difference. */ +-L(different): +- vctzlsbb r6,v7 +- vextubrx r5,r6,v4 +- vextubrx r4,r6,v5 +- bt 4*cr1+eq,L(swapped) +- subf r3,r4,r5 +- blr +- +- /* If src pointers were swapped, then swap the +- indices and calculate the return value. */ +-L(swapped): +- subf r3,r5,r4 +- blr +- +- .p2align 5 +-L(32B_aligned_loop): +- COMPARE_32(v14,v16,0,tail1,tail2) +- COMPARE_32(v18,v20,32,tail3,tail4) +- COMPARE_32(v22,v24,64,tail5,tail6) +- COMPARE_32(v26,v28,96,tail7,tail8) +- addi r3,r3,128 +- addi r4,r4,128 +- b L(32B_aligned_loop) +- +-L(tail1): TAIL(v15,v17) +-L(tail2): TAIL(v14,v16) +-L(tail3): TAIL(v19,v21) +-L(tail4): TAIL(v18,v20) +-L(tail5): TAIL(v23,v25) +-L(tail6): TAIL(v22,v24) +-L(tail7): TAIL(v27,v29) +-L(tail8): TAIL(v26,v28) +- +-END (STRCMP) +-libc_hidden_builtin_def (strcmp) +diff --git a/sysdeps/powerpc/powerpc64/multiarch/Makefile b/sysdeps/powerpc/powerpc64/multiarch/Makefile +index 91ed88a9c716800d..0ee7ce39d6470d80 100644 +--- a/sysdeps/powerpc/powerpc64/multiarch/Makefile ++++ b/sysdeps/powerpc/powerpc64/multiarch/Makefile +@@ -33,8 +33,7 @@ sysdep_routines += memcpy-power8-cached memcpy-power7 memcpy-a2 memcpy-power6 \ + ifneq (,$(filter %le,$(config-machine))) + sysdep_routines += memcmp-power10 memcpy-power10 memmove-power10 memset-power10 \ + rawmemchr-power9 rawmemchr-power10 \ +- strcmp-power9 strcmp-power10 strncmp-power9 \ +- strcpy-power9 stpcpy-power9 \ ++ strcmp-power9 strncmp-power9 strcpy-power9 stpcpy-power9 \ + strlen-power9 strncpy-power9 stpncpy-power9 strlen-power10 + endif + CFLAGS-strncase-power7.c += -mcpu=power7 -funroll-loops +diff --git a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c +index caec2047ab10d209..2c84d287ee76a7ea 100644 +--- a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c ++++ b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c +@@ -416,10 +416,6 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, + /* Support sysdeps/powerpc/powerpc64/multiarch/strcmp.c. */ + IFUNC_IMPL (i, name, strcmp, + #ifdef __LITTLE_ENDIAN__ +- IFUNC_IMPL_ADD (array, i, strcmp, +- (hwcap2 & PPC_FEATURE2_ARCH_3_1) +- && (hwcap & PPC_FEATURE_HAS_VSX), +- __strcmp_power10) + IFUNC_IMPL_ADD (array, i, strcmp, + hwcap2 & PPC_FEATURE2_ARCH_3_00 + && hwcap & PPC_FEATURE_HAS_ALTIVEC, +diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power10.S b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power10.S +deleted file mode 100644 +index c80067ce3305de81..0000000000000000 +--- a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power10.S ++++ /dev/null +@@ -1,26 +0,0 @@ +-/* Optimized strcmp implementation for POWER10/PPC64. +- Copyright (C) 2021-2023 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#if defined __LITTLE_ENDIAN__ && IS_IN (libc) +-#define STRCMP __strcmp_power10 +- +-#undef libc_hidden_builtin_def +-#define libc_hidden_builtin_def(name) +- +-#include +-#endif /* __LITTLE_ENDIAN__ && IS_IN (libc) */ +diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp.c b/sysdeps/powerpc/powerpc64/multiarch/strcmp.c +index 4e77005117525edb..8132682a992edb7a 100644 +--- a/sysdeps/powerpc/powerpc64/multiarch/strcmp.c ++++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp.c +@@ -29,16 +29,12 @@ extern __typeof (strcmp) __strcmp_power7 attribute_hidden; + extern __typeof (strcmp) __strcmp_power8 attribute_hidden; + # ifdef __LITTLE_ENDIAN__ + extern __typeof (strcmp) __strcmp_power9 attribute_hidden; +-extern __typeof (strcmp) __strcmp_power10 attribute_hidden; + # endif + + # undef strcmp + + libc_ifunc_redirected (__redirect_strcmp, strcmp, + # ifdef __LITTLE_ENDIAN__ +- (hwcap2 & PPC_FEATURE2_ARCH_3_1 +- && hwcap & PPC_FEATURE_HAS_VSX) +- ? __strcmp_power10 : + (hwcap2 & PPC_FEATURE2_ARCH_3_00 + && hwcap & PPC_FEATURE_HAS_ALTIVEC) + ? __strcmp_power9 : diff --git a/SOURCES/glibc.abignore b/SOURCES/glibc.abignore new file mode 100644 index 0000000..f06108b --- /dev/null +++ b/SOURCES/glibc.abignore @@ -0,0 +1,52 @@ +[suppress_type] + # From glibc-2.34-173. + type_kind = struct + name = pthread + # The change to add rseq_cs, rseq_flags overlapped with padding. + has_data_member = rseq_area + has_data_member_insert_at = end +[suppress_type] + # From glibc-2.34-175. + type_kind = struct + name = _IO_FILE + has_data_member_inserted_between = {offset_of(_unused2), end} +[suppress_function] + # From glibc-2.34-182. + name = _dl_readonly_area + parameter = '0 void * + parameter = '1 size_t + +# Changes in glibc-2.34-216. +[suppress_function] + symbol_name = epoll_pwait2 +[suppress_function] + symbol_name = __epoll_pwait2_time64 +[suppress_function] + # Use symbol name to ignore the (unexported) __-prefixed symbol as well. + symbol_name = posix_spawn_file_actions_addtcsetpgrp_np +[suppress_function] + # Use symbol_name to ignore bcmp, memcmp aliases of the new symbol. + symbol_name = __memcmpeq +[suppress_function] + symbol_name = _dl_find_object +[suppress_function] + name = __dl_find_object_internal + parameter = '0 void * + parameter = '1 dl_find_object * +[suppress_function] + name = __rtld_libc_freeres +[suppress_type] + type_kind = struct + name = link_map + has_data_member_inserted_between = {offset_of(l_tls_in_slotinfo), offset_of(l_nodelete_active)} +[suppress_type] + type_kind = struct + name = __pthread_cond_s + has_data_member = {__wseq, __wseq32, __g1_start, __g1_start32} + +# This type is covered by the ABI checks in ld-so-abi*.baseline. +[suppress_type] + # From glibc-2.34-168.el9_6.23. + type_kind = struct + name = rtld_global_ro + has_data_member = _dl_s390_cpu_features diff --git a/SOURCES/ld-so-abi-aarch64.baseline b/SOURCES/ld-so-abi-aarch64.baseline new file mode 100644 index 0000000..77ed91b --- /dev/null +++ b/SOURCES/ld-so-abi-aarch64.baseline @@ -0,0 +1,541 @@ +--- _rtld_global_ro --- +/* offset | size */ type = struct rtld_global_ro { +/* 0 | 4 */ int _dl_debug_mask; +/* 4 | 4 */ unsigned int _dl_osversion; +/* 8 | 8 */ const char *_dl_platform; +/* 16 | 8 */ size_t _dl_platformlen; +/* 24 | 8 */ size_t _dl_pagesize; +/* 32 | 8 */ size_t _dl_minsigstacksize; +/* 40 | 4 */ int _dl_inhibit_cache; +/* XXX 4-byte hole */ +/* 48 | 16 */ struct r_scope_elem { +/* 48 | 8 */ struct link_map **r_list; +/* 56 | 4 */ unsigned int r_nlist; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } _dl_initial_searchlist; +/* 64 | 4 */ int _dl_clktck; +/* 68 | 4 */ int _dl_verbose; +/* 72 | 4 */ int _dl_debug_fd; +/* 76 | 4 */ int _dl_lazy; +/* 80 | 4 */ int _dl_bind_not; +/* 84 | 4 */ int _dl_dynamic_weak; +/* 88 | 4 */ fpu_control_t _dl_fpu_control; +/* 92 | 4 */ int _dl_correct_cache_id; +/* 96 | 8 */ uint64_t _dl_hwcap; +/* 104 | 8 */ Elf64_auxv_t *_dl_auxv; +/* 112 | 16 */ struct cpu_features { +/* 112 | 8 */ uint64_t midr_el1; +/* 120 | 4 */ unsigned int zva_size; +/* 124 | 1 */ _Bool bti; +/* 125 | 1 */ uint8_t mte_state; +/* 126 | 1 */ _Bool sve; +/* XXX 1-byte padding */ + + /* total size (bytes): 16 */ + } _dl_aarch64_cpu_features; +/* 128 | 320 */ const char _dl_aarch64_cap_flags[32][10]; +/* 448 | 8 */ const char *_dl_inhibit_rpath; +/* 456 | 8 */ const char *_dl_origin_path; +/* 464 | 8 */ Elf64_Addr _dl_use_load_bias; +/* 472 | 8 */ size_t _dl_tls_static_size; +/* 480 | 8 */ size_t _dl_tls_static_align; +/* 488 | 8 */ size_t _dl_tls_static_surplus; +/* 496 | 8 */ const char *_dl_profile; +/* 504 | 8 */ const char *_dl_profile_output; +/* 512 | 8 */ const char *_dl_trace_prelink; +/* 520 | 8 */ struct link_map *_dl_trace_prelink_map; +/* 528 | 8 */ struct r_search_path_elem *_dl_init_all_dirs; +/* 536 | 8 */ const Elf64_Ehdr *_dl_sysinfo_dso; +/* 544 | 8 */ struct link_map *_dl_sysinfo_map; +/* 552 | 8 */ int (*_dl_vdso_clock_gettime64)(clockid_t, struct timespec *); +/* 560 | 8 */ int (*_dl_vdso_gettimeofday)(struct timeval *, void *); +/* 568 | 8 */ int (*_dl_vdso_clock_getres_time64)(clockid_t, struct timespec *); +/* 576 | 8 */ uint64_t _dl_hwcap2; +/* 584 | 4 */ enum dso_sort_algorithm _dl_dso_sort_algo; +/* XXX 4-byte hole */ +/* 592 | 8 */ void (*_dl_debug_printf)(const char *, ...); +/* 600 | 8 */ void (*_dl_mcount)(Elf64_Addr, Elf64_Addr); +/* 608 | 8 */ lookup_t (*_dl_lookup_symbol_x)(const char *, struct link_map *, const Elf64_Sym **, struct r_scope_elem **, const struct r_found_version *, int, int, struct link_map *); +/* 616 | 8 */ void *(*_dl_open)(const char *, int, const void *, Lmid_t, int, char **, char **); +/* 624 | 8 */ void (*_dl_close)(void *); +/* 632 | 8 */ int (*_dl_catch_error)(const char **, const char **, _Bool *, void (*)(void *), void *); +/* 640 | 8 */ void (*_dl_error_free)(void *); +/* 648 | 8 */ void *(*_dl_tls_get_addr_soft)(struct link_map *); +/* 656 | 8 */ int (*_dl_discover_osversion)(void); +/* 664 | 8 */ const struct dlfcn_hook *_dl_dlfcn_hook; +/* 672 | 8 */ struct audit_ifaces *_dl_audit; +/* 680 | 4 */ unsigned int _dl_naudit; +/* XXX 4-byte padding */ + + /* total size (bytes): 688 */ + } +--- _rtld_global --- +/* offset | size */ type = struct rtld_global { +/* 0 | 2560 */ struct link_namespaces _dl_ns[16]; +/* 2560 | 8 */ size_t _dl_nns; +/* 2568 | 48 */ __rtld_lock_recursive_t _dl_load_lock; +/* 2616 | 48 */ __rtld_lock_recursive_t _dl_load_write_lock; +/* 2664 | 48 */ __rtld_lock_recursive_t _dl_load_tls_lock; +/* 2712 | 8 */ unsigned long long _dl_load_adds; +/* 2720 | 8 */ struct link_map *_dl_initfirst; +/* 2728 | 8 */ struct link_map *_dl_profile_map; +/* 2736 | 8 */ unsigned long _dl_num_relocations; +/* 2744 | 8 */ unsigned long _dl_num_cache_relocations; +/* 2752 | 8 */ struct r_search_path_elem *_dl_all_dirs; +/* 2760 | 1200 */ struct link_map { +/* 2760 | 8 */ Elf64_Addr l_addr; +/* 2768 | 8 */ char *l_name; +/* 2776 | 8 */ Elf64_Dyn *l_ld; +/* 2784 | 8 */ struct link_map *l_next; +/* 2792 | 8 */ struct link_map *l_prev; +/* 2800 | 8 */ struct link_map *l_real; +/* 2808 | 8 */ Lmid_t l_ns; +/* 2816 | 8 */ struct libname_list *l_libname; +/* 2824 | 664 */ Elf64_Dyn *l_info[83]; +/* 3488 | 8 */ const Elf64_Phdr *l_phdr; +/* 3496 | 8 */ Elf64_Addr l_entry; +/* 3504 | 2 */ Elf64_Half l_phnum; +/* 3506 | 2 */ Elf64_Half l_ldnum; +/* XXX 4-byte hole */ +/* 3512 | 16 */ struct r_scope_elem { +/* 3512 | 8 */ struct link_map **r_list; +/* 3520 | 4 */ unsigned int r_nlist; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_searchlist; +/* 3528 | 16 */ struct r_scope_elem { +/* 3528 | 8 */ struct link_map **r_list; +/* 3536 | 4 */ unsigned int r_nlist; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_symbolic_searchlist; +/* 3544 | 8 */ struct link_map *l_loader; +/* 3552 | 8 */ struct r_found_version *l_versions; +/* 3560 | 4 */ unsigned int l_nversions; +/* 3564 | 4 */ Elf_Symndx l_nbuckets; +/* 3568 | 4 */ Elf32_Word l_gnu_bitmask_idxbits; +/* 3572 | 4 */ Elf32_Word l_gnu_shift; +/* 3576 | 8 */ const Elf64_Addr *l_gnu_bitmask; +/* 3584 | 8 */ union { +/* 8 */ const Elf32_Word *l_gnu_buckets; +/* 8 */ const Elf_Symndx *l_chain; + + /* total size (bytes): 8 */ + }; +/* 3592 | 8 */ union { +/* 8 */ const Elf32_Word *l_gnu_chain_zero; +/* 8 */ const Elf_Symndx *l_buckets; + + /* total size (bytes): 8 */ + }; +/* 3600 | 4 */ unsigned int l_direct_opencount; +/* 3604: 0 | 4 */ enum {lt_executable, lt_library, lt_loaded} l_type : 2; +/* 3604: 2 | 4 */ unsigned int l_relocated : 1; +/* 3604: 3 | 4 */ unsigned int l_init_called : 1; +/* 3604: 4 | 4 */ unsigned int l_global : 1; +/* 3604: 5 | 4 */ unsigned int l_reserved : 2; +/* 3604: 7 | 4 */ unsigned int l_main_map : 1; +/* 3605: 0 | 4 */ unsigned int l_visited : 1; +/* 3605: 1 | 4 */ unsigned int l_map_used : 1; +/* 3605: 2 | 4 */ unsigned int l_map_done : 1; +/* 3605: 3 | 4 */ unsigned int l_phdr_allocated : 1; +/* 3605: 4 | 4 */ unsigned int l_soname_added : 1; +/* 3605: 5 | 4 */ unsigned int l_faked : 1; +/* 3605: 6 | 4 */ unsigned int l_need_tls_init : 1; +/* 3605: 7 | 4 */ unsigned int l_auditing : 1; +/* 3606: 0 | 4 */ unsigned int l_audit_any_plt : 1; +/* 3606: 1 | 4 */ unsigned int l_removed : 1; +/* 3606: 2 | 4 */ unsigned int l_contiguous : 1; +/* 3606: 3 | 4 */ unsigned int l_symbolic_in_local_scope : 1; +/* 3606: 4 | 4 */ unsigned int l_free_initfini : 1; +/* 3606: 5 | 4 */ unsigned int l_ld_readonly : 1; +/* 3606: 6 | 4 */ unsigned int l_tls_in_slotinfo : 1; +/* 3606: 7 | 4 */ unsigned int l_find_object_processed : 1; +/* 3607 | 1 */ _Bool l_nodelete_active; +/* 3608 | 1 */ _Bool l_nodelete_pending; +/* XXX 7-byte hole */ +/* 3616 | 16 */ struct r_search_path_struct { +/* 3616 | 8 */ struct r_search_path_elem **dirs; +/* 3624 | 4 */ int malloced; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_rpath_dirs; +/* 3632 | 8 */ struct reloc_result *l_reloc_result; +/* 3640 | 8 */ Elf64_Versym *l_versyms; +/* 3648 | 8 */ const char *l_origin; +/* 3656 | 8 */ Elf64_Addr l_map_start; +/* 3664 | 8 */ Elf64_Addr l_map_end; +/* 3672 | 8 */ Elf64_Addr l_text_end; +/* 3680 | 32 */ struct r_scope_elem *l_scope_mem[4]; +/* 3712 | 8 */ size_t l_scope_max; +/* 3720 | 8 */ struct r_scope_elem **l_scope; +/* 3728 | 16 */ struct r_scope_elem *l_local_scope[2]; +/* 3744 | 16 */ struct r_file_id { +/* 3744 | 8 */ dev_t dev; +/* 3752 | 8 */ ino64_t ino; + + /* total size (bytes): 16 */ + } l_file_id; +/* 3760 | 16 */ struct r_search_path_struct { +/* 3760 | 8 */ struct r_search_path_elem **dirs; +/* 3768 | 4 */ int malloced; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_runpath_dirs; +/* 3776 | 8 */ struct link_map **l_initfini; +/* 3784 | 8 */ struct link_map_reldeps *l_reldeps; +/* 3792 | 4 */ unsigned int l_reldepsmax; +/* 3796 | 4 */ unsigned int l_used; +/* 3800 | 4 */ Elf64_Word l_feature_1; +/* 3804 | 4 */ Elf64_Word l_flags_1; +/* 3808 | 4 */ Elf64_Word l_flags; +/* 3812 | 4 */ int l_idx; +/* 3816 | 24 */ struct link_map_machine { +/* 3816 | 8 */ Elf64_Addr plt; +/* 3824 | 8 */ void *tlsdesc_table; +/* 3832 | 1 */ _Bool bti_fail; +/* XXX 7-byte padding */ + + /* total size (bytes): 24 */ + } l_mach; +/* 3840 | 32 */ struct { +/* 3840 | 8 */ const Elf64_Sym *sym; +/* 3848 | 4 */ int type_class; +/* XXX 4-byte hole */ +/* 3856 | 8 */ struct link_map *value; +/* 3864 | 8 */ const Elf64_Sym *ret; + + /* total size (bytes): 32 */ + } l_lookup_cache; +/* 3872 | 8 */ void *l_tls_initimage; +/* 3880 | 8 */ size_t l_tls_initimage_size; +/* 3888 | 8 */ size_t l_tls_blocksize; +/* 3896 | 8 */ size_t l_tls_align; +/* 3904 | 8 */ size_t l_tls_firstbyte_offset; +/* 3912 | 8 */ ptrdiff_t l_tls_offset; +/* 3920 | 8 */ size_t l_tls_modid; +/* 3928 | 8 */ size_t l_tls_dtor_count; +/* 3936 | 8 */ Elf64_Addr l_relro_addr; +/* 3944 | 8 */ size_t l_relro_size; +/* 3952 | 8 */ unsigned long long l_serial; + + /* total size (bytes): 1200 */ + } _dl_rtld_map; +/* 3960 | 256 */ struct auditstate _dl_rtld_auditstate[16]; +/* 4216 | 4 */ Elf64_Word _dl_stack_flags; +/* 4220 | 1 */ _Bool _dl_tls_dtv_gaps; +/* XXX 3-byte hole */ +/* 4224 | 8 */ size_t _dl_tls_max_dtv_idx; +/* 4232 | 8 */ struct dtv_slotinfo_list *_dl_tls_dtv_slotinfo_list; +/* 4240 | 8 */ size_t _dl_tls_static_nelem; +/* 4248 | 8 */ size_t _dl_tls_static_used; +/* 4256 | 8 */ size_t _dl_tls_static_optional; +/* 4264 | 8 */ void *_dl_initial_dtv; +/* 4272 | 8 */ size_t _dl_tls_generation; +/* 4280 | 8 */ struct dl_scope_free_list *_dl_scope_free_list; +/* 4288 | 16 */ list_t _dl_stack_used; +/* 4304 | 16 */ list_t _dl_stack_user; +/* 4320 | 16 */ list_t _dl_stack_cache; +/* 4336 | 8 */ size_t _dl_stack_cache_actsize; +/* 4344 | 8 */ uintptr_t _dl_in_flight_stack; +/* 4352 | 4 */ int _dl_stack_cache_lock; +/* XXX 4-byte padding */ + + /* total size (bytes): 4360 */ + } +--- struct link_map --- +/* offset | size */ type = struct link_map { +/* 0 | 8 */ Elf64_Addr l_addr; +/* 8 | 8 */ char *l_name; +/* 16 | 8 */ Elf64_Dyn *l_ld; +/* 24 | 8 */ struct link_map *l_next; +/* 32 | 8 */ struct link_map *l_prev; +/* 40 | 8 */ struct link_map *l_real; +/* 48 | 8 */ Lmid_t l_ns; +/* 56 | 8 */ struct libname_list *l_libname; +/* 64 | 664 */ Elf64_Dyn *l_info[83]; +/* 728 | 8 */ const Elf64_Phdr *l_phdr; +/* 736 | 8 */ Elf64_Addr l_entry; +/* 744 | 2 */ Elf64_Half l_phnum; +/* 746 | 2 */ Elf64_Half l_ldnum; +/* XXX 4-byte hole */ +/* 752 | 16 */ struct r_scope_elem { +/* 752 | 8 */ struct link_map **r_list; +/* 760 | 4 */ unsigned int r_nlist; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_searchlist; +/* 768 | 16 */ struct r_scope_elem { +/* 768 | 8 */ struct link_map **r_list; +/* 776 | 4 */ unsigned int r_nlist; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_symbolic_searchlist; +/* 784 | 8 */ struct link_map *l_loader; +/* 792 | 8 */ struct r_found_version *l_versions; +/* 800 | 4 */ unsigned int l_nversions; +/* 804 | 4 */ Elf_Symndx l_nbuckets; +/* 808 | 4 */ Elf32_Word l_gnu_bitmask_idxbits; +/* 812 | 4 */ Elf32_Word l_gnu_shift; +/* 816 | 8 */ const Elf64_Addr *l_gnu_bitmask; +/* 824 | 8 */ union { +/* 8 */ const Elf32_Word *l_gnu_buckets; +/* 8 */ const Elf_Symndx *l_chain; + + /* total size (bytes): 8 */ + }; +/* 832 | 8 */ union { +/* 8 */ const Elf32_Word *l_gnu_chain_zero; +/* 8 */ const Elf_Symndx *l_buckets; + + /* total size (bytes): 8 */ + }; +/* 840 | 4 */ unsigned int l_direct_opencount; +/* 844: 0 | 4 */ enum {lt_executable, lt_library, lt_loaded} l_type : 2; +/* 844: 2 | 4 */ unsigned int l_relocated : 1; +/* 844: 3 | 4 */ unsigned int l_init_called : 1; +/* 844: 4 | 4 */ unsigned int l_global : 1; +/* 844: 5 | 4 */ unsigned int l_reserved : 2; +/* 844: 7 | 4 */ unsigned int l_main_map : 1; +/* 845: 0 | 4 */ unsigned int l_visited : 1; +/* 845: 1 | 4 */ unsigned int l_map_used : 1; +/* 845: 2 | 4 */ unsigned int l_map_done : 1; +/* 845: 3 | 4 */ unsigned int l_phdr_allocated : 1; +/* 845: 4 | 4 */ unsigned int l_soname_added : 1; +/* 845: 5 | 4 */ unsigned int l_faked : 1; +/* 845: 6 | 4 */ unsigned int l_need_tls_init : 1; +/* 845: 7 | 4 */ unsigned int l_auditing : 1; +/* 846: 0 | 4 */ unsigned int l_audit_any_plt : 1; +/* 846: 1 | 4 */ unsigned int l_removed : 1; +/* 846: 2 | 4 */ unsigned int l_contiguous : 1; +/* 846: 3 | 4 */ unsigned int l_symbolic_in_local_scope : 1; +/* 846: 4 | 4 */ unsigned int l_free_initfini : 1; +/* 846: 5 | 4 */ unsigned int l_ld_readonly : 1; +/* 846: 6 | 4 */ unsigned int l_tls_in_slotinfo : 1; +/* 846: 7 | 4 */ unsigned int l_find_object_processed : 1; +/* 847 | 1 */ _Bool l_nodelete_active; +/* 848 | 1 */ _Bool l_nodelete_pending; +/* XXX 7-byte hole */ +/* 856 | 16 */ struct r_search_path_struct { +/* 856 | 8 */ struct r_search_path_elem **dirs; +/* 864 | 4 */ int malloced; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_rpath_dirs; +/* 872 | 8 */ struct reloc_result *l_reloc_result; +/* 880 | 8 */ Elf64_Versym *l_versyms; +/* 888 | 8 */ const char *l_origin; +/* 896 | 8 */ Elf64_Addr l_map_start; +/* 904 | 8 */ Elf64_Addr l_map_end; +/* 912 | 8 */ Elf64_Addr l_text_end; +/* 920 | 32 */ struct r_scope_elem *l_scope_mem[4]; +/* 952 | 8 */ size_t l_scope_max; +/* 960 | 8 */ struct r_scope_elem **l_scope; +/* 968 | 16 */ struct r_scope_elem *l_local_scope[2]; +/* 984 | 16 */ struct r_file_id { +/* 984 | 8 */ dev_t dev; +/* 992 | 8 */ ino64_t ino; + + /* total size (bytes): 16 */ + } l_file_id; +/* 1000 | 16 */ struct r_search_path_struct { +/* 1000 | 8 */ struct r_search_path_elem **dirs; +/* 1008 | 4 */ int malloced; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_runpath_dirs; +/* 1016 | 8 */ struct link_map **l_initfini; +/* 1024 | 8 */ struct link_map_reldeps *l_reldeps; +/* 1032 | 4 */ unsigned int l_reldepsmax; +/* 1036 | 4 */ unsigned int l_used; +/* 1040 | 4 */ Elf64_Word l_feature_1; +/* 1044 | 4 */ Elf64_Word l_flags_1; +/* 1048 | 4 */ Elf64_Word l_flags; +/* 1052 | 4 */ int l_idx; +/* 1056 | 24 */ struct link_map_machine { +/* 1056 | 8 */ Elf64_Addr plt; +/* 1064 | 8 */ void *tlsdesc_table; +/* 1072 | 1 */ _Bool bti_fail; +/* XXX 7-byte padding */ + + /* total size (bytes): 24 */ + } l_mach; +/* 1080 | 32 */ struct { +/* 1080 | 8 */ const Elf64_Sym *sym; +/* 1088 | 4 */ int type_class; +/* XXX 4-byte hole */ +/* 1096 | 8 */ struct link_map *value; +/* 1104 | 8 */ const Elf64_Sym *ret; + + /* total size (bytes): 32 */ + } l_lookup_cache; +/* 1112 | 8 */ void *l_tls_initimage; +/* 1120 | 8 */ size_t l_tls_initimage_size; +/* 1128 | 8 */ size_t l_tls_blocksize; +/* 1136 | 8 */ size_t l_tls_align; +/* 1144 | 8 */ size_t l_tls_firstbyte_offset; +/* 1152 | 8 */ ptrdiff_t l_tls_offset; +/* 1160 | 8 */ size_t l_tls_modid; +/* 1168 | 8 */ size_t l_tls_dtor_count; +/* 1176 | 8 */ Elf64_Addr l_relro_addr; +/* 1184 | 8 */ size_t l_relro_size; +/* 1192 | 8 */ unsigned long long l_serial; + + /* total size (bytes): 1200 */ + } +--- struct pthread --- +/* offset | size */ type = struct pthread { +/* 0 | 192 */ union { +/* 8 */ struct { +/* 0 | 4 */ int multiple_threads; +/* 4 | 4 */ int gscope_flag; + + /* total size (bytes): 8 */ + } header; +/* 192 */ void *__padding[24]; + + /* total size (bytes): 192 */ + }; +/* 192 | 16 */ list_t list; +/* 208 | 4 */ pid_t tid; +/* 212 | 4 */ pid_t pid_ununsed; +/* 216 | 8 */ void *robust_prev; +/* 224 | 24 */ struct robust_list_head { +/* 224 | 8 */ void *list; +/* 232 | 8 */ long futex_offset; +/* 240 | 8 */ void *list_op_pending; + + /* total size (bytes): 24 */ + } robust_head; +/* 248 | 8 */ struct _pthread_cleanup_buffer *cleanup; +/* 256 | 8 */ struct pthread_unwind_buf *cleanup_jmp_buf; +/* 264 | 4 */ int cancelhandling; +/* 268 | 4 */ int flags; +/* 272 | 512 */ struct pthread_key_data specific_1stblock[32]; +/* 784 | 256 */ struct pthread_key_data *specific[32]; +/* 1040 | 1 */ _Bool specific_used; +/* 1041 | 1 */ _Bool report_events; +/* 1042 | 1 */ _Bool user_stack; +/* 1043 | 1 */ _Bool stopped_start; +/* 1044 | 4 */ int setup_failed; +/* 1048 | 4 */ int lock; +/* 1052 | 4 */ unsigned int setxid_futex; +/* 1056 | 8 */ struct pthread *joinid; +/* 1064 | 8 */ void *result; +/* 1072 | 4 */ struct sched_param { +/* 1072 | 4 */ int sched_priority; + + /* total size (bytes): 4 */ + } schedparam; +/* 1076 | 4 */ int schedpolicy; +/* 1080 | 8 */ void *(*start_routine)(void *); +/* 1088 | 8 */ void *arg; +/* 1096 | 24 */ td_eventbuf_t eventbuf; +/* 1120 | 8 */ struct pthread *nextevent; +/* XXX 8-byte hole */ +/* 1136 | 32 */ struct _Unwind_Exception { +/* 1136 | 32 */ union { +/* 32 */ struct { +/* 1136 | 8 */ _Unwind_Exception_Class exception_class; +/* 1144 | 8 */ _Unwind_Exception_Cleanup_Fn exception_cleanup; +/* 1152 | 8 */ _Unwind_Word private_1; +/* 1160 | 8 */ _Unwind_Word private_2; + + /* total size (bytes): 32 */ + }; +/* 16 */ _Unwind_Word unwind_exception_align[2]; + + /* total size (bytes): 32 */ + }; + + /* total size (bytes): 32 */ + } exc; +/* 1168 | 8 */ void *stackblock; +/* 1176 | 8 */ size_t stackblock_size; +/* 1184 | 8 */ size_t guardsize; +/* 1192 | 8 */ size_t reported_guardsize; +/* 1200 | 8 */ struct priority_protection_data *tpp; +/* 1208 | 568 */ struct __res_state { +/* 1208 | 4 */ int retrans; +/* 1212 | 4 */ int retry; +/* 1216 | 8 */ unsigned long options; +/* 1224 | 4 */ int nscount; +/* 1228 | 48 */ struct sockaddr_in nsaddr_list[3]; +/* 1276 | 2 */ unsigned short id; +/* XXX 2-byte hole */ +/* 1280 | 56 */ char *dnsrch[7]; +/* 1336 | 256 */ char defdname[256]; +/* 1592 | 8 */ unsigned long pfcode; +/* 1600: 0 | 4 */ unsigned int ndots : 4; +/* 1600: 4 | 4 */ unsigned int nsort : 4; +/* 1601: 0 | 4 */ unsigned int ipv6_unavail : 1; +/* 1601: 1 | 4 */ unsigned int unused : 23; +/* 1604 | 80 */ struct { +/* 0 | 4 */ struct in_addr addr; +/* 4 | 4 */ uint32_t mask; + } sort_list[10]; +/* XXX 4-byte hole */ +/* 1688 | 8 */ void *__glibc_unused_qhook; +/* 1696 | 8 */ void *__glibc_unused_rhook; +/* 1704 | 4 */ int res_h_errno; +/* 1708 | 4 */ int _vcsock; +/* 1712 | 4 */ unsigned int _flags; +/* XXX 4-byte hole */ +/* 1720 | 56 */ union { +/* 52 */ char pad[52]; +/* 56 */ struct { +/* 1720 | 2 */ uint16_t nscount; +/* 1722 | 6 */ uint16_t nsmap[3]; +/* 1728 | 12 */ int nssocks[3]; +/* 1740 | 2 */ uint16_t nscount6; +/* 1742 | 2 */ uint16_t nsinit; +/* 1744 | 24 */ struct sockaddr_in6 *nsaddrs[3]; +/* 1768 | 8 */ unsigned long long __glibc_extension_index; + + /* total size (bytes): 56 */ + } _ext; + + /* total size (bytes): 56 */ + } _u; + + /* total size (bytes): 568 */ + } res; +/* 1776 | 128 */ sigset_t sigmask; +/* 1904 | 1 */ _Bool c11; +/* 1905 | 1 */ _Bool exiting; +/* XXX 2-byte hole */ +/* 1908 | 4 */ int exit_lock; +/* 1912 | 16 */ struct tls_internal_t { +/* 1912 | 8 */ char *strsignal_buf; +/* 1920 | 8 */ char *strerror_l_buf; + + /* total size (bytes): 16 */ + } tls_state; +/* XXX 24-byte hole */ +/* 1952 | 32 */ union { +/* 24 */ struct { +/* 1952 | 4 */ uint32_t cpu_id_start; +/* 1956 | 4 */ uint32_t cpu_id; +/* 1960 | 8 */ uint64_t rseq_cs; +/* 1968 | 4 */ uint32_t flags; +/* XXX 4-byte padding */ + + /* total size (bytes): 24 */ + }; +/* 32 */ char pad[32]; + + /* total size (bytes): 32 */ + } rseq_area; + + /* total size (bytes): 1984 */ + } diff --git a/SOURCES/ld-so-abi-i386.baseline b/SOURCES/ld-so-abi-i386.baseline new file mode 100644 index 0000000..97c85ca --- /dev/null +++ b/SOURCES/ld-so-abi-i386.baseline @@ -0,0 +1,568 @@ +--- _rtld_global_ro --- +/* offset | size */ type = struct rtld_global_ro { +/* 0 | 4 */ int _dl_debug_mask; +/* 4 | 4 */ unsigned int _dl_osversion; +/* 8 | 4 */ const char *_dl_platform; +/* 12 | 4 */ size_t _dl_platformlen; +/* 16 | 4 */ size_t _dl_pagesize; +/* 20 | 4 */ size_t _dl_minsigstacksize; +/* 24 | 4 */ int _dl_inhibit_cache; +/* 28 | 8 */ struct r_scope_elem { +/* 28 | 4 */ struct link_map **r_list; +/* 32 | 4 */ unsigned int r_nlist; + + /* total size (bytes): 8 */ + } _dl_initial_searchlist; +/* 36 | 4 */ int _dl_clktck; +/* 40 | 4 */ int _dl_verbose; +/* 44 | 4 */ int _dl_debug_fd; +/* 48 | 4 */ int _dl_lazy; +/* 52 | 4 */ int _dl_bind_not; +/* 56 | 4 */ int _dl_dynamic_weak; +/* 60 | 2 */ fpu_control_t _dl_fpu_control; +/* XXX 2-byte hole */ +/* 64 | 4 */ int _dl_correct_cache_id; +/* 68 | 8 */ uint64_t _dl_hwcap; +/* 76 | 4 */ Elf32_auxv_t *_dl_auxv; +/* 80 | 396 */ struct cpu_features { +/* 80 | 20 */ struct cpu_features_basic { +/* 80 | 4 */ enum cpu_features_kind kind; +/* 84 | 4 */ int max_cpuid; +/* 88 | 4 */ unsigned int family; +/* 92 | 4 */ unsigned int model; +/* 96 | 4 */ unsigned int stepping; + + /* total size (bytes): 20 */ + } basic; +/* 100 | 288 */ struct cpuid_feature_internal features[9]; +/* 388 | 4 */ unsigned int preferred[1]; +/* 392 | 4 */ unsigned int isa_1; +/* 396 | 4 */ unsigned long xsave_state_size; +/* 400 | 4 */ unsigned int xsave_state_full_size; +/* 404 | 4 */ unsigned long data_cache_size; +/* 408 | 4 */ unsigned long shared_cache_size; +/* 412 | 4 */ unsigned long non_temporal_threshold; +/* 416 | 4 */ unsigned long rep_movsb_threshold; +/* 420 | 4 */ unsigned long rep_movsb_stop_threshold; +/* 424 | 4 */ unsigned long rep_stosb_threshold; +/* 428 | 4 */ unsigned long level1_icache_size; +/* 432 | 4 */ unsigned long level1_icache_linesize; +/* 436 | 4 */ unsigned long level1_dcache_size; +/* 440 | 4 */ unsigned long level1_dcache_assoc; +/* 444 | 4 */ unsigned long level1_dcache_linesize; +/* 448 | 4 */ unsigned long level2_cache_size; +/* 452 | 4 */ unsigned long level2_cache_assoc; +/* 456 | 4 */ unsigned long level2_cache_linesize; +/* 460 | 4 */ unsigned long level3_cache_size; +/* 464 | 4 */ unsigned long level3_cache_assoc; +/* 468 | 4 */ unsigned long level3_cache_linesize; +/* 472 | 4 */ unsigned long level4_cache_size; + + /* total size (bytes): 396 */ + } _dl_x86_cpu_features; +/* 476 | 27 */ const char _dl_x86_hwcap_flags[3][9]; +/* 503 | 36 */ const char _dl_x86_platforms[4][9]; +/* 539 | 256 */ const char _dl_x86_cap_flags[32][8]; +/* XXX 1-byte hole */ +/* 796 | 4 */ const char *_dl_inhibit_rpath; +/* 800 | 4 */ const char *_dl_origin_path; +/* 804 | 4 */ Elf32_Addr _dl_use_load_bias; +/* 808 | 4 */ size_t _dl_tls_static_size; +/* 812 | 4 */ size_t _dl_tls_static_align; +/* 816 | 4 */ size_t _dl_tls_static_surplus; +/* 820 | 4 */ const char *_dl_profile; +/* 824 | 4 */ const char *_dl_profile_output; +/* 828 | 4 */ const char *_dl_trace_prelink; +/* 832 | 4 */ struct link_map *_dl_trace_prelink_map; +/* 836 | 4 */ struct r_search_path_elem *_dl_init_all_dirs; +/* 840 | 4 */ uintptr_t _dl_sysinfo; +/* 844 | 4 */ const Elf32_Ehdr *_dl_sysinfo_dso; +/* 848 | 4 */ struct link_map *_dl_sysinfo_map; +/* 852 | 4 */ int (*_dl_vdso_clock_gettime)(clockid_t, struct timespec *); +/* 856 | 4 */ int (*_dl_vdso_clock_gettime64)(clockid_t, struct __timespec64 *); +/* 860 | 4 */ int (*_dl_vdso_gettimeofday)(struct timeval *, void *); +/* 864 | 4 */ time_t (*_dl_vdso_time)(time_t *); +/* 868 | 4 */ int (*_dl_vdso_clock_getres)(clockid_t, struct timespec *); +/* 872 | 8 */ uint64_t _dl_hwcap2; +/* 880 | 4 */ enum dso_sort_algorithm _dl_dso_sort_algo; +/* 884 | 4 */ void (*_dl_debug_printf)(const char *, ...); +/* 888 | 4 */ void (*_dl_mcount)(Elf32_Addr, Elf32_Addr); +/* 892 | 4 */ lookup_t (*_dl_lookup_symbol_x)(const char *, struct link_map *, const Elf32_Sym **, struct r_scope_elem **, const struct r_found_version *, int, int, struct link_map *); +/* 896 | 4 */ void *(*_dl_open)(const char *, int, const void *, Lmid_t, int, char **, char **); +/* 900 | 4 */ void (*_dl_close)(void *); +/* 904 | 4 */ int (*_dl_catch_error)(const char **, const char **, _Bool *, void (*)(void *), void *); +/* 908 | 4 */ void (*_dl_error_free)(void *); +/* 912 | 4 */ void *(*_dl_tls_get_addr_soft)(struct link_map *); +/* 916 | 4 */ int (*_dl_discover_osversion)(void); +/* 920 | 4 */ const struct dlfcn_hook *_dl_dlfcn_hook; +/* 924 | 4 */ struct audit_ifaces *_dl_audit; +/* 928 | 4 */ unsigned int _dl_naudit; + + /* total size (bytes): 932 */ + } +--- _rtld_global --- +/* offset | size */ type = struct rtld_global { +/* 0 | 1344 */ struct link_namespaces _dl_ns[16]; +/* 1344 | 4 */ size_t _dl_nns; +/* 1348 | 24 */ __rtld_lock_recursive_t _dl_load_lock; +/* 1372 | 24 */ __rtld_lock_recursive_t _dl_load_write_lock; +/* 1396 | 24 */ __rtld_lock_recursive_t _dl_load_tls_lock; +/* 1420 | 8 */ unsigned long long _dl_load_adds; +/* 1428 | 4 */ struct link_map *_dl_initfirst; +/* 1432 | 4 */ struct link_map *_dl_profile_map; +/* 1436 | 4 */ unsigned long _dl_num_relocations; +/* 1440 | 4 */ unsigned long _dl_num_cache_relocations; +/* 1444 | 4 */ struct r_search_path_elem *_dl_all_dirs; +/* 1448 | 620 */ struct link_map { +/* 1448 | 4 */ Elf32_Addr l_addr; +/* 1452 | 4 */ char *l_name; +/* 1456 | 4 */ Elf32_Dyn *l_ld; +/* 1460 | 4 */ struct link_map *l_next; +/* 1464 | 4 */ struct link_map *l_prev; +/* 1468 | 4 */ struct link_map *l_real; +/* 1472 | 4 */ Lmid_t l_ns; +/* 1476 | 4 */ struct libname_list *l_libname; +/* 1480 | 308 */ Elf32_Dyn *l_info[77]; +/* 1788 | 4 */ const Elf32_Phdr *l_phdr; +/* 1792 | 4 */ Elf32_Addr l_entry; +/* 1796 | 2 */ Elf32_Half l_phnum; +/* 1798 | 2 */ Elf32_Half l_ldnum; +/* 1800 | 8 */ struct r_scope_elem { +/* 1800 | 4 */ struct link_map **r_list; +/* 1804 | 4 */ unsigned int r_nlist; + + /* total size (bytes): 8 */ + } l_searchlist; +/* 1808 | 8 */ struct r_scope_elem { +/* 1808 | 4 */ struct link_map **r_list; +/* 1812 | 4 */ unsigned int r_nlist; + + /* total size (bytes): 8 */ + } l_symbolic_searchlist; +/* 1816 | 4 */ struct link_map *l_loader; +/* 1820 | 4 */ struct r_found_version *l_versions; +/* 1824 | 4 */ unsigned int l_nversions; +/* 1828 | 4 */ Elf_Symndx l_nbuckets; +/* 1832 | 4 */ Elf32_Word l_gnu_bitmask_idxbits; +/* 1836 | 4 */ Elf32_Word l_gnu_shift; +/* 1840 | 4 */ const Elf32_Addr *l_gnu_bitmask; +/* 1844 | 4 */ union { +/* 4 */ const Elf32_Word *l_gnu_buckets; +/* 4 */ const Elf_Symndx *l_chain; + + /* total size (bytes): 4 */ + }; +/* 1848 | 4 */ union { +/* 4 */ const Elf32_Word *l_gnu_chain_zero; +/* 4 */ const Elf_Symndx *l_buckets; + + /* total size (bytes): 4 */ + }; +/* 1852 | 4 */ unsigned int l_direct_opencount; +/* 1856: 0 | 4 */ enum {lt_executable, lt_library, lt_loaded} l_type : 2; +/* 1856: 2 | 4 */ unsigned int l_relocated : 1; +/* 1856: 3 | 4 */ unsigned int l_init_called : 1; +/* 1856: 4 | 4 */ unsigned int l_global : 1; +/* 1856: 5 | 4 */ unsigned int l_reserved : 2; +/* 1856: 7 | 4 */ unsigned int l_main_map : 1; +/* 1857: 0 | 4 */ unsigned int l_visited : 1; +/* 1857: 1 | 4 */ unsigned int l_map_used : 1; +/* 1857: 2 | 4 */ unsigned int l_map_done : 1; +/* 1857: 3 | 4 */ unsigned int l_phdr_allocated : 1; +/* 1857: 4 | 4 */ unsigned int l_soname_added : 1; +/* 1857: 5 | 4 */ unsigned int l_faked : 1; +/* 1857: 6 | 4 */ unsigned int l_need_tls_init : 1; +/* 1857: 7 | 4 */ unsigned int l_auditing : 1; +/* 1858: 0 | 4 */ unsigned int l_audit_any_plt : 1; +/* 1858: 1 | 4 */ unsigned int l_removed : 1; +/* 1858: 2 | 4 */ unsigned int l_contiguous : 1; +/* 1858: 3 | 4 */ unsigned int l_symbolic_in_local_scope : 1; +/* 1858: 4 | 4 */ unsigned int l_free_initfini : 1; +/* 1858: 5 | 4 */ unsigned int l_ld_readonly : 1; +/* 1858: 6 | 4 */ unsigned int l_tls_in_slotinfo : 1; +/* 1858: 7 | 4 */ unsigned int l_find_object_processed : 1; +/* 1859 | 1 */ _Bool l_nodelete_active; +/* 1860 | 1 */ _Bool l_nodelete_pending; +/* 1861: 0 | 4 */ enum {lc_property_unknown, lc_property_none, lc_property_valid} l_property : 2; +/* XXX 6-bit hole */ +/* XXX 2-byte hole */ +/* 1864 | 4 */ unsigned int l_x86_feature_1_and; +/* 1868 | 4 */ unsigned int l_x86_isa_1_needed; +/* 1872 | 8 */ struct r_search_path_struct { +/* 1872 | 4 */ struct r_search_path_elem **dirs; +/* 1876 | 4 */ int malloced; + + /* total size (bytes): 8 */ + } l_rpath_dirs; +/* 1880 | 4 */ struct reloc_result *l_reloc_result; +/* 1884 | 4 */ Elf32_Versym *l_versyms; +/* 1888 | 4 */ const char *l_origin; +/* 1892 | 4 */ Elf32_Addr l_map_start; +/* 1896 | 4 */ Elf32_Addr l_map_end; +/* 1900 | 4 */ Elf32_Addr l_text_end; +/* 1904 | 16 */ struct r_scope_elem *l_scope_mem[4]; +/* 1920 | 4 */ size_t l_scope_max; +/* 1924 | 4 */ struct r_scope_elem **l_scope; +/* 1928 | 8 */ struct r_scope_elem *l_local_scope[2]; +/* 1936 | 16 */ struct r_file_id { +/* 1936 | 8 */ dev_t dev; +/* 1944 | 8 */ ino64_t ino; + + /* total size (bytes): 16 */ + } l_file_id; +/* 1952 | 8 */ struct r_search_path_struct { +/* 1952 | 4 */ struct r_search_path_elem **dirs; +/* 1956 | 4 */ int malloced; + + /* total size (bytes): 8 */ + } l_runpath_dirs; +/* 1960 | 4 */ struct link_map **l_initfini; +/* 1964 | 4 */ struct link_map_reldeps *l_reldeps; +/* 1968 | 4 */ unsigned int l_reldepsmax; +/* 1972 | 4 */ unsigned int l_used; +/* 1976 | 4 */ Elf32_Word l_feature_1; +/* 1980 | 4 */ Elf32_Word l_flags_1; +/* 1984 | 4 */ Elf32_Word l_flags; +/* 1988 | 4 */ int l_idx; +/* 1992 | 12 */ struct link_map_machine { +/* 1992 | 4 */ Elf32_Addr plt; +/* 1996 | 4 */ Elf32_Addr gotplt; +/* 2000 | 4 */ void *tlsdesc_table; + + /* total size (bytes): 12 */ + } l_mach; +/* 2004 | 16 */ struct { +/* 2004 | 4 */ const Elf32_Sym *sym; +/* 2008 | 4 */ int type_class; +/* 2012 | 4 */ struct link_map *value; +/* 2016 | 4 */ const Elf32_Sym *ret; + + /* total size (bytes): 16 */ + } l_lookup_cache; +/* 2020 | 4 */ void *l_tls_initimage; +/* 2024 | 4 */ size_t l_tls_initimage_size; +/* 2028 | 4 */ size_t l_tls_blocksize; +/* 2032 | 4 */ size_t l_tls_align; +/* 2036 | 4 */ size_t l_tls_firstbyte_offset; +/* 2040 | 4 */ ptrdiff_t l_tls_offset; +/* 2044 | 4 */ size_t l_tls_modid; +/* 2048 | 4 */ size_t l_tls_dtor_count; +/* 2052 | 4 */ Elf32_Addr l_relro_addr; +/* 2056 | 4 */ size_t l_relro_size; +/* 2060 | 8 */ unsigned long long l_serial; + + /* total size (bytes): 620 */ + } _dl_rtld_map; +/* 2068 | 128 */ struct auditstate _dl_rtld_auditstate[16]; +/* 2196 | 4 */ unsigned int _dl_x86_feature_1; +/* 2200 | 4 */ struct dl_x86_feature_control { +/* 2200: 0 | 4 */ enum dl_x86_cet_control ibt : 2; +/* 2200: 2 | 4 */ enum dl_x86_cet_control shstk : 2; +/* XXX 4-bit padding */ +/* XXX 3-byte padding */ + + /* total size (bytes): 4 */ + } _dl_x86_feature_control; +/* 2204 | 4 */ Elf32_Word _dl_stack_flags; +/* 2208 | 1 */ _Bool _dl_tls_dtv_gaps; +/* XXX 3-byte hole */ +/* 2212 | 4 */ size_t _dl_tls_max_dtv_idx; +/* 2216 | 4 */ struct dtv_slotinfo_list *_dl_tls_dtv_slotinfo_list; +/* 2220 | 4 */ size_t _dl_tls_static_nelem; +/* 2224 | 4 */ size_t _dl_tls_static_used; +/* 2228 | 4 */ size_t _dl_tls_static_optional; +/* 2232 | 4 */ void *_dl_initial_dtv; +/* 2236 | 4 */ size_t _dl_tls_generation; +/* 2240 | 4 */ struct dl_scope_free_list *_dl_scope_free_list; +/* 2244 | 8 */ list_t _dl_stack_used; +/* 2252 | 8 */ list_t _dl_stack_user; +/* 2260 | 8 */ list_t _dl_stack_cache; +/* 2268 | 4 */ size_t _dl_stack_cache_actsize; +/* 2272 | 4 */ uintptr_t _dl_in_flight_stack; +/* 2276 | 4 */ int _dl_stack_cache_lock; + + /* total size (bytes): 2280 */ + } +--- struct link_map --- +/* offset | size */ type = struct link_map { +/* 0 | 4 */ Elf32_Addr l_addr; +/* 4 | 4 */ char *l_name; +/* 8 | 4 */ Elf32_Dyn *l_ld; +/* 12 | 4 */ struct link_map *l_next; +/* 16 | 4 */ struct link_map *l_prev; +/* 20 | 4 */ struct link_map *l_real; +/* 24 | 4 */ Lmid_t l_ns; +/* 28 | 4 */ struct libname_list *l_libname; +/* 32 | 308 */ Elf32_Dyn *l_info[77]; +/* 340 | 4 */ const Elf32_Phdr *l_phdr; +/* 344 | 4 */ Elf32_Addr l_entry; +/* 348 | 2 */ Elf32_Half l_phnum; +/* 350 | 2 */ Elf32_Half l_ldnum; +/* 352 | 8 */ struct r_scope_elem { +/* 352 | 4 */ struct link_map **r_list; +/* 356 | 4 */ unsigned int r_nlist; + + /* total size (bytes): 8 */ + } l_searchlist; +/* 360 | 8 */ struct r_scope_elem { +/* 360 | 4 */ struct link_map **r_list; +/* 364 | 4 */ unsigned int r_nlist; + + /* total size (bytes): 8 */ + } l_symbolic_searchlist; +/* 368 | 4 */ struct link_map *l_loader; +/* 372 | 4 */ struct r_found_version *l_versions; +/* 376 | 4 */ unsigned int l_nversions; +/* 380 | 4 */ Elf_Symndx l_nbuckets; +/* 384 | 4 */ Elf32_Word l_gnu_bitmask_idxbits; +/* 388 | 4 */ Elf32_Word l_gnu_shift; +/* 392 | 4 */ const Elf32_Addr *l_gnu_bitmask; +/* 396 | 4 */ union { +/* 4 */ const Elf32_Word *l_gnu_buckets; +/* 4 */ const Elf_Symndx *l_chain; + + /* total size (bytes): 4 */ + }; +/* 400 | 4 */ union { +/* 4 */ const Elf32_Word *l_gnu_chain_zero; +/* 4 */ const Elf_Symndx *l_buckets; + + /* total size (bytes): 4 */ + }; +/* 404 | 4 */ unsigned int l_direct_opencount; +/* 408: 0 | 4 */ enum {lt_executable, lt_library, lt_loaded} l_type : 2; +/* 408: 2 | 4 */ unsigned int l_relocated : 1; +/* 408: 3 | 4 */ unsigned int l_init_called : 1; +/* 408: 4 | 4 */ unsigned int l_global : 1; +/* 408: 5 | 4 */ unsigned int l_reserved : 2; +/* 408: 7 | 4 */ unsigned int l_main_map : 1; +/* 409: 0 | 4 */ unsigned int l_visited : 1; +/* 409: 1 | 4 */ unsigned int l_map_used : 1; +/* 409: 2 | 4 */ unsigned int l_map_done : 1; +/* 409: 3 | 4 */ unsigned int l_phdr_allocated : 1; +/* 409: 4 | 4 */ unsigned int l_soname_added : 1; +/* 409: 5 | 4 */ unsigned int l_faked : 1; +/* 409: 6 | 4 */ unsigned int l_need_tls_init : 1; +/* 409: 7 | 4 */ unsigned int l_auditing : 1; +/* 410: 0 | 4 */ unsigned int l_audit_any_plt : 1; +/* 410: 1 | 4 */ unsigned int l_removed : 1; +/* 410: 2 | 4 */ unsigned int l_contiguous : 1; +/* 410: 3 | 4 */ unsigned int l_symbolic_in_local_scope : 1; +/* 410: 4 | 4 */ unsigned int l_free_initfini : 1; +/* 410: 5 | 4 */ unsigned int l_ld_readonly : 1; +/* 410: 6 | 4 */ unsigned int l_tls_in_slotinfo : 1; +/* 410: 7 | 4 */ unsigned int l_find_object_processed : 1; +/* 411 | 1 */ _Bool l_nodelete_active; +/* 412 | 1 */ _Bool l_nodelete_pending; +/* 413: 0 | 4 */ enum {lc_property_unknown, lc_property_none, lc_property_valid} l_property : 2; +/* XXX 6-bit hole */ +/* XXX 2-byte hole */ +/* 416 | 4 */ unsigned int l_x86_feature_1_and; +/* 420 | 4 */ unsigned int l_x86_isa_1_needed; +/* 424 | 8 */ struct r_search_path_struct { +/* 424 | 4 */ struct r_search_path_elem **dirs; +/* 428 | 4 */ int malloced; + + /* total size (bytes): 8 */ + } l_rpath_dirs; +/* 432 | 4 */ struct reloc_result *l_reloc_result; +/* 436 | 4 */ Elf32_Versym *l_versyms; +/* 440 | 4 */ const char *l_origin; +/* 444 | 4 */ Elf32_Addr l_map_start; +/* 448 | 4 */ Elf32_Addr l_map_end; +/* 452 | 4 */ Elf32_Addr l_text_end; +/* 456 | 16 */ struct r_scope_elem *l_scope_mem[4]; +/* 472 | 4 */ size_t l_scope_max; +/* 476 | 4 */ struct r_scope_elem **l_scope; +/* 480 | 8 */ struct r_scope_elem *l_local_scope[2]; +/* 488 | 16 */ struct r_file_id { +/* 488 | 8 */ dev_t dev; +/* 496 | 8 */ ino64_t ino; + + /* total size (bytes): 16 */ + } l_file_id; +/* 504 | 8 */ struct r_search_path_struct { +/* 504 | 4 */ struct r_search_path_elem **dirs; +/* 508 | 4 */ int malloced; + + /* total size (bytes): 8 */ + } l_runpath_dirs; +/* 512 | 4 */ struct link_map **l_initfini; +/* 516 | 4 */ struct link_map_reldeps *l_reldeps; +/* 520 | 4 */ unsigned int l_reldepsmax; +/* 524 | 4 */ unsigned int l_used; +/* 528 | 4 */ Elf32_Word l_feature_1; +/* 532 | 4 */ Elf32_Word l_flags_1; +/* 536 | 4 */ Elf32_Word l_flags; +/* 540 | 4 */ int l_idx; +/* 544 | 12 */ struct link_map_machine { +/* 544 | 4 */ Elf32_Addr plt; +/* 548 | 4 */ Elf32_Addr gotplt; +/* 552 | 4 */ void *tlsdesc_table; + + /* total size (bytes): 12 */ + } l_mach; +/* 556 | 16 */ struct { +/* 556 | 4 */ const Elf32_Sym *sym; +/* 560 | 4 */ int type_class; +/* 564 | 4 */ struct link_map *value; +/* 568 | 4 */ const Elf32_Sym *ret; + + /* total size (bytes): 16 */ + } l_lookup_cache; +/* 572 | 4 */ void *l_tls_initimage; +/* 576 | 4 */ size_t l_tls_initimage_size; +/* 580 | 4 */ size_t l_tls_blocksize; +/* 584 | 4 */ size_t l_tls_align; +/* 588 | 4 */ size_t l_tls_firstbyte_offset; +/* 592 | 4 */ ptrdiff_t l_tls_offset; +/* 596 | 4 */ size_t l_tls_modid; +/* 600 | 4 */ size_t l_tls_dtor_count; +/* 604 | 4 */ Elf32_Addr l_relro_addr; +/* 608 | 4 */ size_t l_relro_size; +/* 612 | 8 */ unsigned long long l_serial; + + /* total size (bytes): 620 */ + } +--- struct pthread --- +/* offset | size */ type = struct pthread { +/* 0 | 96 */ union { +/* 56 */ tcbhead_t header; +/* 96 */ void *__padding[24]; + + /* total size (bytes): 96 */ + }; +/* 96 | 8 */ list_t list; +/* 104 | 4 */ pid_t tid; +/* 108 | 4 */ pid_t pid_ununsed; +/* 112 | 12 */ union { +/* 4 */ __pthread_slist_t robust_list; +/* 12 */ struct robust_list_head { +/* 112 | 4 */ void *list; +/* 116 | 4 */ long futex_offset; +/* 120 | 4 */ void *list_op_pending; + + /* total size (bytes): 12 */ + } robust_head; + + /* total size (bytes): 12 */ + }; +/* 124 | 4 */ struct _pthread_cleanup_buffer *cleanup; +/* 128 | 4 */ struct pthread_unwind_buf *cleanup_jmp_buf; +/* 132 | 4 */ int cancelhandling; +/* 136 | 4 */ int flags; +/* 140 | 256 */ struct pthread_key_data specific_1stblock[32]; +/* 396 | 128 */ struct pthread_key_data *specific[32]; +/* 524 | 1 */ _Bool specific_used; +/* 525 | 1 */ _Bool report_events; +/* 526 | 1 */ _Bool user_stack; +/* 527 | 1 */ _Bool stopped_start; +/* 528 | 4 */ int setup_failed; +/* 532 | 4 */ int lock; +/* 536 | 4 */ unsigned int setxid_futex; +/* 540 | 8 */ hp_timing_t cpuclock_offset_ununsed; +/* 548 | 4 */ struct pthread *joinid; +/* 552 | 4 */ void *result; +/* 556 | 4 */ struct sched_param { +/* 556 | 4 */ int sched_priority; + + /* total size (bytes): 4 */ + } schedparam; +/* 560 | 4 */ int schedpolicy; +/* 564 | 4 */ void *(*start_routine)(void *); +/* 568 | 4 */ void *arg; +/* 572 | 16 */ td_eventbuf_t eventbuf; +/* 588 | 4 */ struct pthread *nextevent; +/* 592 | 24 */ struct _Unwind_Exception { +/* 592 | 24 */ union { +/* 20 */ struct { +/* 592 | 8 */ _Unwind_Exception_Class exception_class; +/* 600 | 4 */ _Unwind_Exception_Cleanup_Fn exception_cleanup; +/* 604 | 4 */ _Unwind_Word private_1; +/* 608 | 4 */ _Unwind_Word private_2; + + /* total size (bytes): 20 */ + }; +/* 8 */ _Unwind_Word unwind_exception_align[2]; + + /* total size (bytes): 24 */ + }; + + /* total size (bytes): 24 */ + } exc; +/* 616 | 4 */ void *stackblock; +/* 620 | 4 */ size_t stackblock_size; +/* 624 | 4 */ size_t guardsize; +/* 628 | 4 */ size_t reported_guardsize; +/* 632 | 4 */ struct priority_protection_data *tpp; +/* 636 | 512 */ struct __res_state { +/* 636 | 4 */ int retrans; +/* 640 | 4 */ int retry; +/* 644 | 4 */ unsigned long options; +/* 648 | 4 */ int nscount; +/* 652 | 48 */ struct sockaddr_in nsaddr_list[3]; +/* 700 | 2 */ unsigned short id; +/* XXX 2-byte hole */ +/* 704 | 28 */ char *dnsrch[7]; +/* 732 | 256 */ char defdname[256]; +/* 988 | 4 */ unsigned long pfcode; +/* 992: 0 | 4 */ unsigned int ndots : 4; +/* 992: 4 | 4 */ unsigned int nsort : 4; +/* 993: 0 | 4 */ unsigned int ipv6_unavail : 1; +/* 993: 1 | 4 */ unsigned int unused : 23; +/* 996 | 80 */ struct { +/* 0 | 4 */ struct in_addr addr; +/* 4 | 4 */ uint32_t mask; + } sort_list[10]; +/* 1076 | 4 */ void *__glibc_unused_qhook; +/* 1080 | 4 */ void *__glibc_unused_rhook; +/* 1084 | 4 */ int res_h_errno; +/* 1088 | 4 */ int _vcsock; +/* 1092 | 4 */ unsigned int _flags; +/* 1096 | 52 */ union { +/* 52 */ char pad[52]; +/* 44 */ struct { +/* 1096 | 2 */ uint16_t nscount; +/* 1098 | 6 */ uint16_t nsmap[3]; +/* 1104 | 12 */ int nssocks[3]; +/* 1116 | 2 */ uint16_t nscount6; +/* 1118 | 2 */ uint16_t nsinit; +/* 1120 | 12 */ struct sockaddr_in6 *nsaddrs[3]; +/* 1132 | 8 */ unsigned long long __glibc_extension_index; + + /* total size (bytes): 44 */ + } _ext; + + /* total size (bytes): 52 */ + } _u; + + /* total size (bytes): 512 */ + } res; +/* 1148 | 128 */ sigset_t sigmask; +/* 1276 | 1 */ _Bool c11; +/* 1277 | 1 */ _Bool exiting; +/* XXX 2-byte hole */ +/* 1280 | 4 */ int exit_lock; +/* 1284 | 8 */ struct tls_internal_t { +/* 1284 | 4 */ char *strsignal_buf; +/* 1288 | 4 */ char *strerror_l_buf; + + /* total size (bytes): 8 */ + } tls_state; +/* XXX 20-byte hole */ +/* 1312 | 32 */ union { +/* 20 */ struct { +/* 1312 | 4 */ uint32_t cpu_id_start; +/* 1316 | 4 */ uint32_t cpu_id; +/* 1320 | 8 */ uint64_t rseq_cs; +/* 1328 | 4 */ uint32_t flags; + + /* total size (bytes): 20 */ + }; +/* 32 */ char pad[32]; + + /* total size (bytes): 32 */ + } rseq_area; + + /* total size (bytes): 1344 */ + } diff --git a/SOURCES/ld-so-abi-ppc64le.baseline b/SOURCES/ld-so-abi-ppc64le.baseline new file mode 100644 index 0000000..df5a31f --- /dev/null +++ b/SOURCES/ld-so-abi-ppc64le.baseline @@ -0,0 +1,539 @@ +--- _rtld_global_ro --- +/* offset | size */ type = struct rtld_global_ro { +/* 0 | 4 */ int _dl_debug_mask; +/* 4 | 4 */ unsigned int _dl_osversion; +/* 8 | 8 */ const char *_dl_platform; +/* 16 | 8 */ size_t _dl_platformlen; +/* 24 | 8 */ size_t _dl_pagesize; +/* 32 | 8 */ size_t _dl_minsigstacksize; +/* 40 | 4 */ int _dl_inhibit_cache; +/* XXX 4-byte hole */ +/* 48 | 16 */ struct r_scope_elem { +/* 48 | 8 */ struct link_map **r_list; +/* 56 | 4 */ unsigned int r_nlist; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } _dl_initial_searchlist; +/* 64 | 4 */ int _dl_clktck; +/* 68 | 4 */ int _dl_verbose; +/* 72 | 4 */ int _dl_debug_fd; +/* 76 | 4 */ int _dl_lazy; +/* 80 | 4 */ int _dl_bind_not; +/* 84 | 4 */ int _dl_dynamic_weak; +/* 88 | 4 */ fpu_control_t _dl_fpu_control; +/* 92 | 4 */ int _dl_correct_cache_id; +/* 96 | 8 */ uint64_t _dl_hwcap; +/* 104 | 8 */ Elf64_auxv_t *_dl_auxv; +/* 112 | 24 */ struct cpu_features { +/* 112 | 1 */ _Bool use_cached_memopt; +/* XXX 7-byte hole */ +/* 120 | 8 */ unsigned long hwcap; +/* 128 | 8 */ unsigned long hwcap2; + + /* total size (bytes): 24 */ + } _dl_powerpc_cpu_features; +/* 136 | 960 */ const char _dl_powerpc_cap_flags[64][15]; +/* 1096 | 4 */ int _dl_cache_line_size; +/* XXX 4-byte hole */ +/* 1104 | 8 */ const char *_dl_inhibit_rpath; +/* 1112 | 8 */ const char *_dl_origin_path; +/* 1120 | 8 */ Elf64_Addr _dl_use_load_bias; +/* 1128 | 8 */ size_t _dl_tls_static_size; +/* 1136 | 8 */ size_t _dl_tls_static_align; +/* 1144 | 8 */ size_t _dl_tls_static_surplus; +/* 1152 | 8 */ const char *_dl_profile; +/* 1160 | 8 */ const char *_dl_profile_output; +/* 1168 | 8 */ const char *_dl_trace_prelink; +/* 1176 | 8 */ struct link_map *_dl_trace_prelink_map; +/* 1184 | 8 */ struct r_search_path_elem *_dl_init_all_dirs; +/* 1192 | 8 */ const Elf64_Ehdr *_dl_sysinfo_dso; +/* 1200 | 8 */ struct link_map *_dl_sysinfo_map; +/* 1208 | 8 */ int (*_dl_vdso_clock_gettime64)(clockid_t, struct timespec *); +/* 1216 | 8 */ int (*_dl_vdso_gettimeofday)(struct timeval *, void *); +/* 1224 | 8 */ time_t (*_dl_vdso_time)(time_t *); +/* 1232 | 8 */ int (*_dl_vdso_getcpu)(unsigned int *, unsigned int *, void *); +/* 1240 | 8 */ int (*_dl_vdso_clock_getres_time64)(clockid_t, struct timespec *); +/* 1248 | 8 */ uint64_t (*_dl_vdso_get_tbfreq)(void); +/* 1256 | 8 */ void *_dl_vdso_sigtramp_rt64; +/* 1264 | 8 */ uint64_t _dl_hwcap2; +/* 1272 | 4 */ enum dso_sort_algorithm _dl_dso_sort_algo; +/* XXX 4-byte hole */ +/* 1280 | 8 */ void (*_dl_debug_printf)(const char *, ...); +/* 1288 | 8 */ void (*_dl_mcount)(Elf64_Addr, Elf64_Addr); +/* 1296 | 8 */ lookup_t (*_dl_lookup_symbol_x)(const char *, struct link_map *, const Elf64_Sym **, struct r_scope_elem **, const struct r_found_version *, int, int, struct link_map *); +/* 1304 | 8 */ void *(*_dl_open)(const char *, int, const void *, Lmid_t, int, char **, char **); +/* 1312 | 8 */ void (*_dl_close)(void *); +/* 1320 | 8 */ int (*_dl_catch_error)(const char **, const char **, _Bool *, void (*)(void *), void *); +/* 1328 | 8 */ void (*_dl_error_free)(void *); +/* 1336 | 8 */ void *(*_dl_tls_get_addr_soft)(struct link_map *); +/* 1344 | 8 */ int (*_dl_discover_osversion)(void); +/* 1352 | 8 */ const struct dlfcn_hook *_dl_dlfcn_hook; +/* 1360 | 8 */ struct audit_ifaces *_dl_audit; +/* 1368 | 4 */ unsigned int _dl_naudit; +/* XXX 4-byte padding */ + + /* total size (bytes): 1376 */ + } +--- _rtld_global --- +/* offset | size */ type = struct rtld_global { +/* 0 | 2432 */ struct link_namespaces _dl_ns[16]; +/* 2432 | 8 */ size_t _dl_nns; +/* 2440 | 40 */ __rtld_lock_recursive_t _dl_load_lock; +/* 2480 | 40 */ __rtld_lock_recursive_t _dl_load_write_lock; +/* 2520 | 40 */ __rtld_lock_recursive_t _dl_load_tls_lock; +/* 2560 | 8 */ unsigned long long _dl_load_adds; +/* 2568 | 8 */ struct link_map *_dl_initfirst; +/* 2576 | 8 */ struct link_map *_dl_profile_map; +/* 2584 | 8 */ unsigned long _dl_num_relocations; +/* 2592 | 8 */ unsigned long _dl_num_cache_relocations; +/* 2600 | 8 */ struct r_search_path_elem *_dl_all_dirs; +/* 2608 | 1160 */ struct link_map { +/* 2608 | 8 */ Elf64_Addr l_addr; +/* 2616 | 8 */ char *l_name; +/* 2624 | 8 */ Elf64_Dyn *l_ld; +/* 2632 | 8 */ struct link_map *l_next; +/* 2640 | 8 */ struct link_map *l_prev; +/* 2648 | 8 */ struct link_map *l_real; +/* 2656 | 8 */ Lmid_t l_ns; +/* 2664 | 8 */ struct libname_list *l_libname; +/* 2672 | 648 */ Elf64_Dyn *l_info[81]; +/* 3320 | 8 */ const Elf64_Phdr *l_phdr; +/* 3328 | 8 */ Elf64_Addr l_entry; +/* 3336 | 2 */ Elf64_Half l_phnum; +/* 3338 | 2 */ Elf64_Half l_ldnum; +/* XXX 4-byte hole */ +/* 3344 | 16 */ struct r_scope_elem { +/* 3344 | 8 */ struct link_map **r_list; +/* 3352 | 4 */ unsigned int r_nlist; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_searchlist; +/* 3360 | 16 */ struct r_scope_elem { +/* 3360 | 8 */ struct link_map **r_list; +/* 3368 | 4 */ unsigned int r_nlist; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_symbolic_searchlist; +/* 3376 | 8 */ struct link_map *l_loader; +/* 3384 | 8 */ struct r_found_version *l_versions; +/* 3392 | 4 */ unsigned int l_nversions; +/* 3396 | 4 */ Elf_Symndx l_nbuckets; +/* 3400 | 4 */ Elf32_Word l_gnu_bitmask_idxbits; +/* 3404 | 4 */ Elf32_Word l_gnu_shift; +/* 3408 | 8 */ const Elf64_Addr *l_gnu_bitmask; +/* 3416 | 8 */ union { +/* 8 */ const Elf32_Word *l_gnu_buckets; +/* 8 */ const Elf_Symndx *l_chain; + + /* total size (bytes): 8 */ + }; +/* 3424 | 8 */ union { +/* 8 */ const Elf32_Word *l_gnu_chain_zero; +/* 8 */ const Elf_Symndx *l_buckets; + + /* total size (bytes): 8 */ + }; +/* 3432 | 4 */ unsigned int l_direct_opencount; +/* 3436: 0 | 4 */ enum {lt_executable, lt_library, lt_loaded} l_type : 2; +/* 3436: 2 | 4 */ unsigned int l_relocated : 1; +/* 3436: 3 | 4 */ unsigned int l_init_called : 1; +/* 3436: 4 | 4 */ unsigned int l_global : 1; +/* 3436: 5 | 4 */ unsigned int l_reserved : 2; +/* 3436: 7 | 4 */ unsigned int l_main_map : 1; +/* 3437: 0 | 4 */ unsigned int l_visited : 1; +/* 3437: 1 | 4 */ unsigned int l_map_used : 1; +/* 3437: 2 | 4 */ unsigned int l_map_done : 1; +/* 3437: 3 | 4 */ unsigned int l_phdr_allocated : 1; +/* 3437: 4 | 4 */ unsigned int l_soname_added : 1; +/* 3437: 5 | 4 */ unsigned int l_faked : 1; +/* 3437: 6 | 4 */ unsigned int l_need_tls_init : 1; +/* 3437: 7 | 4 */ unsigned int l_auditing : 1; +/* 3438: 0 | 4 */ unsigned int l_audit_any_plt : 1; +/* 3438: 1 | 4 */ unsigned int l_removed : 1; +/* 3438: 2 | 4 */ unsigned int l_contiguous : 1; +/* 3438: 3 | 4 */ unsigned int l_symbolic_in_local_scope : 1; +/* 3438: 4 | 4 */ unsigned int l_free_initfini : 1; +/* 3438: 5 | 4 */ unsigned int l_ld_readonly : 1; +/* 3438: 6 | 4 */ unsigned int l_tls_in_slotinfo : 1; +/* 3438: 7 | 4 */ unsigned int l_find_object_processed : 1; +/* 3439 | 1 */ _Bool l_nodelete_active; +/* 3440 | 1 */ _Bool l_nodelete_pending; +/* XXX 7-byte hole */ +/* 3448 | 16 */ struct r_search_path_struct { +/* 3448 | 8 */ struct r_search_path_elem **dirs; +/* 3456 | 4 */ int malloced; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_rpath_dirs; +/* 3464 | 8 */ struct reloc_result *l_reloc_result; +/* 3472 | 8 */ Elf64_Versym *l_versyms; +/* 3480 | 8 */ const char *l_origin; +/* 3488 | 8 */ Elf64_Addr l_map_start; +/* 3496 | 8 */ Elf64_Addr l_map_end; +/* 3504 | 8 */ Elf64_Addr l_text_end; +/* 3512 | 32 */ struct r_scope_elem *l_scope_mem[4]; +/* 3544 | 8 */ size_t l_scope_max; +/* 3552 | 8 */ struct r_scope_elem **l_scope; +/* 3560 | 16 */ struct r_scope_elem *l_local_scope[2]; +/* 3576 | 16 */ struct r_file_id { +/* 3576 | 8 */ dev_t dev; +/* 3584 | 8 */ ino64_t ino; + + /* total size (bytes): 16 */ + } l_file_id; +/* 3592 | 16 */ struct r_search_path_struct { +/* 3592 | 8 */ struct r_search_path_elem **dirs; +/* 3600 | 4 */ int malloced; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_runpath_dirs; +/* 3608 | 8 */ struct link_map **l_initfini; +/* 3616 | 8 */ struct link_map_reldeps *l_reldeps; +/* 3624 | 4 */ unsigned int l_reldepsmax; +/* 3628 | 4 */ unsigned int l_used; +/* 3632 | 4 */ Elf64_Word l_feature_1; +/* 3636 | 4 */ Elf64_Word l_flags_1; +/* 3640 | 4 */ Elf64_Word l_flags; +/* 3644 | 4 */ int l_idx; +/* 3648 | 0 */ struct link_map_machine { + + + /* total size (bytes): 0 */ + } l_mach; +/* 3648 | 32 */ struct { +/* 3648 | 8 */ const Elf64_Sym *sym; +/* 3656 | 4 */ int type_class; +/* XXX 4-byte hole */ +/* 3664 | 8 */ struct link_map *value; +/* 3672 | 8 */ const Elf64_Sym *ret; + + /* total size (bytes): 32 */ + } l_lookup_cache; +/* 3680 | 8 */ void *l_tls_initimage; +/* 3688 | 8 */ size_t l_tls_initimage_size; +/* 3696 | 8 */ size_t l_tls_blocksize; +/* 3704 | 8 */ size_t l_tls_align; +/* 3712 | 8 */ size_t l_tls_firstbyte_offset; +/* 3720 | 8 */ ptrdiff_t l_tls_offset; +/* 3728 | 8 */ size_t l_tls_modid; +/* 3736 | 8 */ size_t l_tls_dtor_count; +/* 3744 | 8 */ Elf64_Addr l_relro_addr; +/* 3752 | 8 */ size_t l_relro_size; +/* 3760 | 8 */ unsigned long long l_serial; + + /* total size (bytes): 1160 */ + } _dl_rtld_map; +/* 3768 | 256 */ struct auditstate _dl_rtld_auditstate[16]; +/* 4024 | 4 */ Elf64_Word _dl_stack_flags; +/* 4028 | 1 */ _Bool _dl_tls_dtv_gaps; +/* XXX 3-byte hole */ +/* 4032 | 8 */ size_t _dl_tls_max_dtv_idx; +/* 4040 | 8 */ struct dtv_slotinfo_list *_dl_tls_dtv_slotinfo_list; +/* 4048 | 8 */ size_t _dl_tls_static_nelem; +/* 4056 | 8 */ size_t _dl_tls_static_used; +/* 4064 | 8 */ size_t _dl_tls_static_optional; +/* 4072 | 8 */ void *_dl_initial_dtv; +/* 4080 | 8 */ size_t _dl_tls_generation; +/* 4088 | 8 */ struct dl_scope_free_list *_dl_scope_free_list; +/* 4096 | 16 */ list_t _dl_stack_used; +/* 4112 | 16 */ list_t _dl_stack_user; +/* 4128 | 16 */ list_t _dl_stack_cache; +/* 4144 | 8 */ size_t _dl_stack_cache_actsize; +/* 4152 | 8 */ uintptr_t _dl_in_flight_stack; +/* 4160 | 4 */ int _dl_stack_cache_lock; +/* XXX 4-byte padding */ + + /* total size (bytes): 4168 */ + } +--- struct link_map --- +/* offset | size */ type = struct link_map { +/* 0 | 8 */ Elf64_Addr l_addr; +/* 8 | 8 */ char *l_name; +/* 16 | 8 */ Elf64_Dyn *l_ld; +/* 24 | 8 */ struct link_map *l_next; +/* 32 | 8 */ struct link_map *l_prev; +/* 40 | 8 */ struct link_map *l_real; +/* 48 | 8 */ Lmid_t l_ns; +/* 56 | 8 */ struct libname_list *l_libname; +/* 64 | 648 */ Elf64_Dyn *l_info[81]; +/* 712 | 8 */ const Elf64_Phdr *l_phdr; +/* 720 | 8 */ Elf64_Addr l_entry; +/* 728 | 2 */ Elf64_Half l_phnum; +/* 730 | 2 */ Elf64_Half l_ldnum; +/* XXX 4-byte hole */ +/* 736 | 16 */ struct r_scope_elem { +/* 736 | 8 */ struct link_map **r_list; +/* 744 | 4 */ unsigned int r_nlist; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_searchlist; +/* 752 | 16 */ struct r_scope_elem { +/* 752 | 8 */ struct link_map **r_list; +/* 760 | 4 */ unsigned int r_nlist; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_symbolic_searchlist; +/* 768 | 8 */ struct link_map *l_loader; +/* 776 | 8 */ struct r_found_version *l_versions; +/* 784 | 4 */ unsigned int l_nversions; +/* 788 | 4 */ Elf_Symndx l_nbuckets; +/* 792 | 4 */ Elf32_Word l_gnu_bitmask_idxbits; +/* 796 | 4 */ Elf32_Word l_gnu_shift; +/* 800 | 8 */ const Elf64_Addr *l_gnu_bitmask; +/* 808 | 8 */ union { +/* 8 */ const Elf32_Word *l_gnu_buckets; +/* 8 */ const Elf_Symndx *l_chain; + + /* total size (bytes): 8 */ + }; +/* 816 | 8 */ union { +/* 8 */ const Elf32_Word *l_gnu_chain_zero; +/* 8 */ const Elf_Symndx *l_buckets; + + /* total size (bytes): 8 */ + }; +/* 824 | 4 */ unsigned int l_direct_opencount; +/* 828: 0 | 4 */ enum {lt_executable, lt_library, lt_loaded} l_type : 2; +/* 828: 2 | 4 */ unsigned int l_relocated : 1; +/* 828: 3 | 4 */ unsigned int l_init_called : 1; +/* 828: 4 | 4 */ unsigned int l_global : 1; +/* 828: 5 | 4 */ unsigned int l_reserved : 2; +/* 828: 7 | 4 */ unsigned int l_main_map : 1; +/* 829: 0 | 4 */ unsigned int l_visited : 1; +/* 829: 1 | 4 */ unsigned int l_map_used : 1; +/* 829: 2 | 4 */ unsigned int l_map_done : 1; +/* 829: 3 | 4 */ unsigned int l_phdr_allocated : 1; +/* 829: 4 | 4 */ unsigned int l_soname_added : 1; +/* 829: 5 | 4 */ unsigned int l_faked : 1; +/* 829: 6 | 4 */ unsigned int l_need_tls_init : 1; +/* 829: 7 | 4 */ unsigned int l_auditing : 1; +/* 830: 0 | 4 */ unsigned int l_audit_any_plt : 1; +/* 830: 1 | 4 */ unsigned int l_removed : 1; +/* 830: 2 | 4 */ unsigned int l_contiguous : 1; +/* 830: 3 | 4 */ unsigned int l_symbolic_in_local_scope : 1; +/* 830: 4 | 4 */ unsigned int l_free_initfini : 1; +/* 830: 5 | 4 */ unsigned int l_ld_readonly : 1; +/* 830: 6 | 4 */ unsigned int l_tls_in_slotinfo : 1; +/* 830: 7 | 4 */ unsigned int l_find_object_processed : 1; +/* 831 | 1 */ _Bool l_nodelete_active; +/* 832 | 1 */ _Bool l_nodelete_pending; +/* XXX 7-byte hole */ +/* 840 | 16 */ struct r_search_path_struct { +/* 840 | 8 */ struct r_search_path_elem **dirs; +/* 848 | 4 */ int malloced; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_rpath_dirs; +/* 856 | 8 */ struct reloc_result *l_reloc_result; +/* 864 | 8 */ Elf64_Versym *l_versyms; +/* 872 | 8 */ const char *l_origin; +/* 880 | 8 */ Elf64_Addr l_map_start; +/* 888 | 8 */ Elf64_Addr l_map_end; +/* 896 | 8 */ Elf64_Addr l_text_end; +/* 904 | 32 */ struct r_scope_elem *l_scope_mem[4]; +/* 936 | 8 */ size_t l_scope_max; +/* 944 | 8 */ struct r_scope_elem **l_scope; +/* 952 | 16 */ struct r_scope_elem *l_local_scope[2]; +/* 968 | 16 */ struct r_file_id { +/* 968 | 8 */ dev_t dev; +/* 976 | 8 */ ino64_t ino; + + /* total size (bytes): 16 */ + } l_file_id; +/* 984 | 16 */ struct r_search_path_struct { +/* 984 | 8 */ struct r_search_path_elem **dirs; +/* 992 | 4 */ int malloced; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_runpath_dirs; +/* 1000 | 8 */ struct link_map **l_initfini; +/* 1008 | 8 */ struct link_map_reldeps *l_reldeps; +/* 1016 | 4 */ unsigned int l_reldepsmax; +/* 1020 | 4 */ unsigned int l_used; +/* 1024 | 4 */ Elf64_Word l_feature_1; +/* 1028 | 4 */ Elf64_Word l_flags_1; +/* 1032 | 4 */ Elf64_Word l_flags; +/* 1036 | 4 */ int l_idx; +/* 1040 | 0 */ struct link_map_machine { + + + /* total size (bytes): 0 */ + } l_mach; +/* 1040 | 32 */ struct { +/* 1040 | 8 */ const Elf64_Sym *sym; +/* 1048 | 4 */ int type_class; +/* XXX 4-byte hole */ +/* 1056 | 8 */ struct link_map *value; +/* 1064 | 8 */ const Elf64_Sym *ret; + + /* total size (bytes): 32 */ + } l_lookup_cache; +/* 1072 | 8 */ void *l_tls_initimage; +/* 1080 | 8 */ size_t l_tls_initimage_size; +/* 1088 | 8 */ size_t l_tls_blocksize; +/* 1096 | 8 */ size_t l_tls_align; +/* 1104 | 8 */ size_t l_tls_firstbyte_offset; +/* 1112 | 8 */ ptrdiff_t l_tls_offset; +/* 1120 | 8 */ size_t l_tls_modid; +/* 1128 | 8 */ size_t l_tls_dtor_count; +/* 1136 | 8 */ Elf64_Addr l_relro_addr; +/* 1144 | 8 */ size_t l_relro_size; +/* 1152 | 8 */ unsigned long long l_serial; + + /* total size (bytes): 1160 */ + } +--- struct pthread --- +/* offset | size */ type = struct pthread { +/* 0 | 192 */ union { +/* 8 */ struct { +/* 0 | 4 */ int multiple_threads; +/* 4 | 4 */ int gscope_flag; + + /* total size (bytes): 8 */ + } header; +/* 192 */ void *__padding[24]; + + /* total size (bytes): 192 */ + }; +/* 192 | 16 */ list_t list; +/* 208 | 4 */ pid_t tid; +/* 212 | 4 */ pid_t pid_ununsed; +/* 216 | 8 */ void *robust_prev; +/* 224 | 24 */ struct robust_list_head { +/* 224 | 8 */ void *list; +/* 232 | 8 */ long futex_offset; +/* 240 | 8 */ void *list_op_pending; + + /* total size (bytes): 24 */ + } robust_head; +/* 248 | 8 */ struct _pthread_cleanup_buffer *cleanup; +/* 256 | 8 */ struct pthread_unwind_buf *cleanup_jmp_buf; +/* 264 | 4 */ int cancelhandling; +/* 268 | 4 */ int flags; +/* 272 | 512 */ struct pthread_key_data specific_1stblock[32]; +/* 784 | 256 */ struct pthread_key_data *specific[32]; +/* 1040 | 1 */ _Bool specific_used; +/* 1041 | 1 */ _Bool report_events; +/* 1042 | 1 */ _Bool user_stack; +/* 1043 | 1 */ _Bool stopped_start; +/* 1044 | 4 */ int setup_failed; +/* 1048 | 4 */ int lock; +/* 1052 | 4 */ unsigned int setxid_futex; +/* 1056 | 8 */ hp_timing_t cpuclock_offset_ununsed; +/* 1064 | 8 */ struct pthread *joinid; +/* 1072 | 8 */ void *result; +/* 1080 | 4 */ struct sched_param { +/* 1080 | 4 */ int sched_priority; + + /* total size (bytes): 4 */ + } schedparam; +/* 1084 | 4 */ int schedpolicy; +/* 1088 | 8 */ void *(*start_routine)(void *); +/* 1096 | 8 */ void *arg; +/* 1104 | 24 */ td_eventbuf_t eventbuf; +/* 1128 | 8 */ struct pthread *nextevent; +/* 1136 | 32 */ struct _Unwind_Exception { +/* 1136 | 32 */ union { +/* 32 */ struct { +/* 1136 | 8 */ _Unwind_Exception_Class exception_class; +/* 1144 | 8 */ _Unwind_Exception_Cleanup_Fn exception_cleanup; +/* 1152 | 8 */ _Unwind_Word private_1; +/* 1160 | 8 */ _Unwind_Word private_2; + + /* total size (bytes): 32 */ + }; +/* 16 */ _Unwind_Word unwind_exception_align[2]; + + /* total size (bytes): 32 */ + }; + + /* total size (bytes): 32 */ + } exc; +/* 1168 | 8 */ void *stackblock; +/* 1176 | 8 */ size_t stackblock_size; +/* 1184 | 8 */ size_t guardsize; +/* 1192 | 8 */ size_t reported_guardsize; +/* 1200 | 8 */ struct priority_protection_data *tpp; +/* 1208 | 568 */ struct __res_state { +/* 1208 | 4 */ int retrans; +/* 1212 | 4 */ int retry; +/* 1216 | 8 */ unsigned long options; +/* 1224 | 4 */ int nscount; +/* 1228 | 48 */ struct sockaddr_in nsaddr_list[3]; +/* 1276 | 2 */ unsigned short id; +/* XXX 2-byte hole */ +/* 1280 | 56 */ char *dnsrch[7]; +/* 1336 | 256 */ char defdname[256]; +/* 1592 | 8 */ unsigned long pfcode; +/* 1600: 0 | 4 */ unsigned int ndots : 4; +/* 1600: 4 | 4 */ unsigned int nsort : 4; +/* 1601: 0 | 4 */ unsigned int ipv6_unavail : 1; +/* 1601: 1 | 4 */ unsigned int unused : 23; +/* 1604 | 80 */ struct { +/* 0 | 4 */ struct in_addr addr; +/* 4 | 4 */ uint32_t mask; + } sort_list[10]; +/* XXX 4-byte hole */ +/* 1688 | 8 */ void *__glibc_unused_qhook; +/* 1696 | 8 */ void *__glibc_unused_rhook; +/* 1704 | 4 */ int res_h_errno; +/* 1708 | 4 */ int _vcsock; +/* 1712 | 4 */ unsigned int _flags; +/* XXX 4-byte hole */ +/* 1720 | 56 */ union { +/* 52 */ char pad[52]; +/* 56 */ struct { +/* 1720 | 2 */ uint16_t nscount; +/* 1722 | 6 */ uint16_t nsmap[3]; +/* 1728 | 12 */ int nssocks[3]; +/* 1740 | 2 */ uint16_t nscount6; +/* 1742 | 2 */ uint16_t nsinit; +/* 1744 | 24 */ struct sockaddr_in6 *nsaddrs[3]; +/* 1768 | 8 */ unsigned long long __glibc_extension_index; + + /* total size (bytes): 56 */ + } _ext; + + /* total size (bytes): 56 */ + } _u; + + /* total size (bytes): 568 */ + } res; +/* 1776 | 128 */ sigset_t sigmask; +/* 1904 | 1 */ _Bool c11; +/* 1905 | 1 */ _Bool exiting; +/* XXX 2-byte hole */ +/* 1908 | 4 */ int exit_lock; +/* 1912 | 16 */ struct tls_internal_t { +/* 1912 | 8 */ char *strsignal_buf; +/* 1920 | 8 */ char *strerror_l_buf; + + /* total size (bytes): 16 */ + } tls_state; +/* XXX 24-byte hole */ +/* 1952 | 32 */ union { +/* 24 */ struct { +/* 1952 | 4 */ uint32_t cpu_id_start; +/* 1956 | 4 */ uint32_t cpu_id; +/* 1960 | 8 */ uint64_t rseq_cs; +/* 1968 | 4 */ uint32_t flags; +/* XXX 4-byte padding */ + + /* total size (bytes): 24 */ + }; +/* 32 */ char pad[32]; + + /* total size (bytes): 32 */ + } rseq_area; + + /* total size (bytes): 1984 */ + } diff --git a/SOURCES/ld-so-abi-s390x.baseline b/SOURCES/ld-so-abi-s390x.baseline new file mode 100644 index 0000000..bdd3281 --- /dev/null +++ b/SOURCES/ld-so-abi-s390x.baseline @@ -0,0 +1,534 @@ +--- _rtld_global_ro --- +/* offset | size */ type = struct rtld_global_ro { +/* 0 | 4 */ int _dl_debug_mask; +/* 4 | 4 */ unsigned int _dl_osversion; +/* 8 | 8 */ const char *_dl_platform; +/* 16 | 8 */ size_t _dl_platformlen; +/* 24 | 8 */ size_t _dl_pagesize; +/* 32 | 8 */ size_t _dl_minsigstacksize; +/* 40 | 4 */ int _dl_inhibit_cache; +/* XXX 4-byte hole */ +/* 48 | 16 */ struct r_scope_elem { +/* 48 | 8 */ struct link_map **r_list; +/* 56 | 4 */ unsigned int r_nlist; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } _dl_initial_searchlist; +/* 64 | 4 */ int _dl_clktck; +/* 68 | 4 */ int _dl_verbose; +/* 72 | 4 */ int _dl_debug_fd; +/* 76 | 4 */ int _dl_lazy; +/* 80 | 4 */ int _dl_bind_not; +/* 84 | 4 */ int _dl_dynamic_weak; +/* 88 | 4 */ fpu_control_t _dl_fpu_control; +/* 92 | 4 */ int _dl_correct_cache_id; +/* 96 | 8 */ uint64_t _dl_hwcap; +/* 104 | 8 */ Elf64_auxv_t *_dl_auxv; +/* 112 | 128 */ struct cpu_features { +/* 112 | 8 */ unsigned long hwcap; +/* 120 | 8 */ unsigned long __reserved_hwcap2; +/* 128 | 8 */ unsigned long long __reserved; +/* 136 | 8 */ unsigned long long stfle_orig; +/* 144 | 8 */ unsigned long long stfle_filtered; +/* 152 | 88 */ unsigned long long __reserved2[11]; + + /* total size (bytes): 128 */ + } _dl_s390_cpu_features; +/* 240 | 8 */ const char *_dl_inhibit_rpath; +/* 248 | 8 */ const char *_dl_origin_path; +/* 256 | 8 */ Elf64_Addr _dl_use_load_bias; +/* 264 | 8 */ size_t _dl_tls_static_size; +/* 272 | 8 */ size_t _dl_tls_static_align; +/* 280 | 8 */ size_t _dl_tls_static_surplus; +/* 288 | 8 */ const char *_dl_profile; +/* 296 | 8 */ const char *_dl_profile_output; +/* 304 | 8 */ const char *_dl_trace_prelink; +/* 312 | 8 */ struct link_map *_dl_trace_prelink_map; +/* 320 | 8 */ struct r_search_path_elem *_dl_init_all_dirs; +/* 328 | 8 */ const Elf64_Ehdr *_dl_sysinfo_dso; +/* 336 | 8 */ struct link_map *_dl_sysinfo_map; +/* 344 | 8 */ int (*_dl_vdso_clock_gettime64)(clockid_t, struct timespec *); +/* 352 | 8 */ int (*_dl_vdso_gettimeofday)(struct timeval *, void *); +/* 360 | 8 */ int (*_dl_vdso_getcpu)(unsigned int *, unsigned int *, void *); +/* 368 | 8 */ int (*_dl_vdso_clock_getres_time64)(clockid_t, struct timespec *); +/* 376 | 8 */ uint64_t _dl_hwcap2; +/* 384 | 4 */ enum dso_sort_algorithm _dl_dso_sort_algo; +/* XXX 4-byte hole */ +/* 392 | 8 */ void (*_dl_debug_printf)(const char *, ...); +/* 400 | 8 */ void (*_dl_mcount)(Elf64_Addr, Elf64_Addr); +/* 408 | 8 */ lookup_t (*_dl_lookup_symbol_x)(const char *, struct link_map *, const Elf64_Sym **, struct r_scope_elem **, const struct r_found_version *, int, int, struct link_map *); +/* 416 | 8 */ void *(*_dl_open)(const char *, int, const void *, Lmid_t, int, char **, char **); +/* 424 | 8 */ void (*_dl_close)(void *); +/* 432 | 8 */ int (*_dl_catch_error)(const char **, const char **, _Bool *, void (*)(void *), void *); +/* 440 | 8 */ void (*_dl_error_free)(void *); +/* 448 | 8 */ void *(*_dl_tls_get_addr_soft)(struct link_map *); +/* 456 | 8 */ int (*_dl_discover_osversion)(void); +/* 464 | 8 */ const struct dlfcn_hook *_dl_dlfcn_hook; +/* 472 | 8 */ struct audit_ifaces *_dl_audit; +/* 480 | 4 */ unsigned int _dl_naudit; +/* XXX 4-byte padding */ + + /* total size (bytes): 488 */ + } +--- _rtld_global --- +/* offset | size */ type = struct rtld_global { +/* 0 | 2432 */ struct link_namespaces _dl_ns[16]; +/* 2432 | 8 */ size_t _dl_nns; +/* 2440 | 40 */ __rtld_lock_recursive_t _dl_load_lock; +/* 2480 | 40 */ __rtld_lock_recursive_t _dl_load_write_lock; +/* 2520 | 40 */ __rtld_lock_recursive_t _dl_load_tls_lock; +/* 2560 | 8 */ unsigned long long _dl_load_adds; +/* 2568 | 8 */ struct link_map *_dl_initfirst; +/* 2576 | 8 */ struct link_map *_dl_profile_map; +/* 2584 | 8 */ unsigned long _dl_num_relocations; +/* 2592 | 8 */ unsigned long _dl_num_cache_relocations; +/* 2600 | 8 */ struct r_search_path_elem *_dl_all_dirs; +/* 2608 | 1152 */ struct link_map { +/* 2608 | 8 */ Elf64_Addr l_addr; +/* 2616 | 8 */ char *l_name; +/* 2624 | 8 */ Elf64_Dyn *l_ld; +/* 2632 | 8 */ struct link_map *l_next; +/* 2640 | 8 */ struct link_map *l_prev; +/* 2648 | 8 */ struct link_map *l_real; +/* 2656 | 8 */ Lmid_t l_ns; +/* 2664 | 8 */ struct libname_list *l_libname; +/* 2672 | 616 */ Elf64_Dyn *l_info[77]; +/* 3288 | 8 */ const Elf64_Phdr *l_phdr; +/* 3296 | 8 */ Elf64_Addr l_entry; +/* 3304 | 2 */ Elf64_Half l_phnum; +/* 3306 | 2 */ Elf64_Half l_ldnum; +/* XXX 4-byte hole */ +/* 3312 | 16 */ struct r_scope_elem { +/* 3312 | 8 */ struct link_map **r_list; +/* 3320 | 4 */ unsigned int r_nlist; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_searchlist; +/* 3328 | 16 */ struct r_scope_elem { +/* 3328 | 8 */ struct link_map **r_list; +/* 3336 | 4 */ unsigned int r_nlist; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_symbolic_searchlist; +/* 3344 | 8 */ struct link_map *l_loader; +/* 3352 | 8 */ struct r_found_version *l_versions; +/* 3360 | 4 */ unsigned int l_nversions; +/* XXX 4-byte hole */ +/* 3368 | 8 */ Elf_Symndx l_nbuckets; +/* 3376 | 4 */ Elf32_Word l_gnu_bitmask_idxbits; +/* 3380 | 4 */ Elf32_Word l_gnu_shift; +/* 3384 | 8 */ const Elf64_Addr *l_gnu_bitmask; +/* 3392 | 8 */ union { +/* 8 */ const Elf32_Word *l_gnu_buckets; +/* 8 */ const Elf_Symndx *l_chain; + + /* total size (bytes): 8 */ + }; +/* 3400 | 8 */ union { +/* 8 */ const Elf32_Word *l_gnu_chain_zero; +/* 8 */ const Elf_Symndx *l_buckets; + + /* total size (bytes): 8 */ + }; +/* 3408 | 4 */ unsigned int l_direct_opencount; +/* 3412: 0 | 4 */ enum {lt_executable, lt_library, lt_loaded} l_type : 2; +/* 3412: 2 | 4 */ unsigned int l_relocated : 1; +/* 3412: 3 | 4 */ unsigned int l_init_called : 1; +/* 3412: 4 | 4 */ unsigned int l_global : 1; +/* 3412: 5 | 4 */ unsigned int l_reserved : 2; +/* 3412: 7 | 4 */ unsigned int l_main_map : 1; +/* 3413: 0 | 4 */ unsigned int l_visited : 1; +/* 3413: 1 | 4 */ unsigned int l_map_used : 1; +/* 3413: 2 | 4 */ unsigned int l_map_done : 1; +/* 3413: 3 | 4 */ unsigned int l_phdr_allocated : 1; +/* 3413: 4 | 4 */ unsigned int l_soname_added : 1; +/* 3413: 5 | 4 */ unsigned int l_faked : 1; +/* 3413: 6 | 4 */ unsigned int l_need_tls_init : 1; +/* 3413: 7 | 4 */ unsigned int l_auditing : 1; +/* 3414: 0 | 4 */ unsigned int l_audit_any_plt : 1; +/* 3414: 1 | 4 */ unsigned int l_removed : 1; +/* 3414: 2 | 4 */ unsigned int l_contiguous : 1; +/* 3414: 3 | 4 */ unsigned int l_symbolic_in_local_scope : 1; +/* 3414: 4 | 4 */ unsigned int l_free_initfini : 1; +/* 3414: 5 | 4 */ unsigned int l_ld_readonly : 1; +/* 3414: 6 | 4 */ unsigned int l_tls_in_slotinfo : 1; +/* 3414: 7 | 4 */ unsigned int l_find_object_processed : 1; +/* 3415 | 1 */ _Bool l_nodelete_active; +/* 3416 | 1 */ _Bool l_nodelete_pending; +/* XXX 7-byte hole */ +/* 3424 | 16 */ struct r_search_path_struct { +/* 3424 | 8 */ struct r_search_path_elem **dirs; +/* 3432 | 4 */ int malloced; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_rpath_dirs; +/* 3440 | 8 */ struct reloc_result *l_reloc_result; +/* 3448 | 8 */ Elf64_Versym *l_versyms; +/* 3456 | 8 */ const char *l_origin; +/* 3464 | 8 */ Elf64_Addr l_map_start; +/* 3472 | 8 */ Elf64_Addr l_map_end; +/* 3480 | 8 */ Elf64_Addr l_text_end; +/* 3488 | 32 */ struct r_scope_elem *l_scope_mem[4]; +/* 3520 | 8 */ size_t l_scope_max; +/* 3528 | 8 */ struct r_scope_elem **l_scope; +/* 3536 | 16 */ struct r_scope_elem *l_local_scope[2]; +/* 3552 | 16 */ struct r_file_id { +/* 3552 | 8 */ dev_t dev; +/* 3560 | 8 */ ino64_t ino; + + /* total size (bytes): 16 */ + } l_file_id; +/* 3568 | 16 */ struct r_search_path_struct { +/* 3568 | 8 */ struct r_search_path_elem **dirs; +/* 3576 | 4 */ int malloced; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_runpath_dirs; +/* 3584 | 8 */ struct link_map **l_initfini; +/* 3592 | 8 */ struct link_map_reldeps *l_reldeps; +/* 3600 | 4 */ unsigned int l_reldepsmax; +/* 3604 | 4 */ unsigned int l_used; +/* 3608 | 4 */ Elf64_Word l_feature_1; +/* 3612 | 4 */ Elf64_Word l_flags_1; +/* 3616 | 4 */ Elf64_Word l_flags; +/* 3620 | 4 */ int l_idx; +/* 3624 | 16 */ struct link_map_machine { +/* 3624 | 8 */ Elf64_Addr plt; +/* 3632 | 8 */ const Elf64_Rela *jmprel; + + /* total size (bytes): 16 */ + } l_mach; +/* 3640 | 32 */ struct { +/* 3640 | 8 */ const Elf64_Sym *sym; +/* 3648 | 4 */ int type_class; +/* XXX 4-byte hole */ +/* 3656 | 8 */ struct link_map *value; +/* 3664 | 8 */ const Elf64_Sym *ret; + + /* total size (bytes): 32 */ + } l_lookup_cache; +/* 3672 | 8 */ void *l_tls_initimage; +/* 3680 | 8 */ size_t l_tls_initimage_size; +/* 3688 | 8 */ size_t l_tls_blocksize; +/* 3696 | 8 */ size_t l_tls_align; +/* 3704 | 8 */ size_t l_tls_firstbyte_offset; +/* 3712 | 8 */ ptrdiff_t l_tls_offset; +/* 3720 | 8 */ size_t l_tls_modid; +/* 3728 | 8 */ size_t l_tls_dtor_count; +/* 3736 | 8 */ Elf64_Addr l_relro_addr; +/* 3744 | 8 */ size_t l_relro_size; +/* 3752 | 8 */ unsigned long long l_serial; + + /* total size (bytes): 1152 */ + } _dl_rtld_map; +/* 3760 | 256 */ struct auditstate _dl_rtld_auditstate[16]; +/* 4016 | 4 */ Elf64_Word _dl_stack_flags; +/* 4020 | 1 */ _Bool _dl_tls_dtv_gaps; +/* XXX 3-byte hole */ +/* 4024 | 8 */ size_t _dl_tls_max_dtv_idx; +/* 4032 | 8 */ struct dtv_slotinfo_list *_dl_tls_dtv_slotinfo_list; +/* 4040 | 8 */ size_t _dl_tls_static_nelem; +/* 4048 | 8 */ size_t _dl_tls_static_used; +/* 4056 | 8 */ size_t _dl_tls_static_optional; +/* 4064 | 8 */ void *_dl_initial_dtv; +/* 4072 | 8 */ size_t _dl_tls_generation; +/* 4080 | 8 */ struct dl_scope_free_list *_dl_scope_free_list; +/* 4088 | 16 */ list_t _dl_stack_used; +/* 4104 | 16 */ list_t _dl_stack_user; +/* 4120 | 16 */ list_t _dl_stack_cache; +/* 4136 | 8 */ size_t _dl_stack_cache_actsize; +/* 4144 | 8 */ uintptr_t _dl_in_flight_stack; +/* 4152 | 4 */ int _dl_stack_cache_lock; +/* XXX 4-byte padding */ + + /* total size (bytes): 4160 */ + } +--- struct link_map --- +/* offset | size */ type = struct link_map { +/* 0 | 8 */ Elf64_Addr l_addr; +/* 8 | 8 */ char *l_name; +/* 16 | 8 */ Elf64_Dyn *l_ld; +/* 24 | 8 */ struct link_map *l_next; +/* 32 | 8 */ struct link_map *l_prev; +/* 40 | 8 */ struct link_map *l_real; +/* 48 | 8 */ Lmid_t l_ns; +/* 56 | 8 */ struct libname_list *l_libname; +/* 64 | 616 */ Elf64_Dyn *l_info[77]; +/* 680 | 8 */ const Elf64_Phdr *l_phdr; +/* 688 | 8 */ Elf64_Addr l_entry; +/* 696 | 2 */ Elf64_Half l_phnum; +/* 698 | 2 */ Elf64_Half l_ldnum; +/* XXX 4-byte hole */ +/* 704 | 16 */ struct r_scope_elem { +/* 704 | 8 */ struct link_map **r_list; +/* 712 | 4 */ unsigned int r_nlist; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_searchlist; +/* 720 | 16 */ struct r_scope_elem { +/* 720 | 8 */ struct link_map **r_list; +/* 728 | 4 */ unsigned int r_nlist; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_symbolic_searchlist; +/* 736 | 8 */ struct link_map *l_loader; +/* 744 | 8 */ struct r_found_version *l_versions; +/* 752 | 4 */ unsigned int l_nversions; +/* XXX 4-byte hole */ +/* 760 | 8 */ Elf_Symndx l_nbuckets; +/* 768 | 4 */ Elf32_Word l_gnu_bitmask_idxbits; +/* 772 | 4 */ Elf32_Word l_gnu_shift; +/* 776 | 8 */ const Elf64_Addr *l_gnu_bitmask; +/* 784 | 8 */ union { +/* 8 */ const Elf32_Word *l_gnu_buckets; +/* 8 */ const Elf_Symndx *l_chain; + + /* total size (bytes): 8 */ + }; +/* 792 | 8 */ union { +/* 8 */ const Elf32_Word *l_gnu_chain_zero; +/* 8 */ const Elf_Symndx *l_buckets; + + /* total size (bytes): 8 */ + }; +/* 800 | 4 */ unsigned int l_direct_opencount; +/* 804: 0 | 4 */ enum {lt_executable, lt_library, lt_loaded} l_type : 2; +/* 804: 2 | 4 */ unsigned int l_relocated : 1; +/* 804: 3 | 4 */ unsigned int l_init_called : 1; +/* 804: 4 | 4 */ unsigned int l_global : 1; +/* 804: 5 | 4 */ unsigned int l_reserved : 2; +/* 804: 7 | 4 */ unsigned int l_main_map : 1; +/* 805: 0 | 4 */ unsigned int l_visited : 1; +/* 805: 1 | 4 */ unsigned int l_map_used : 1; +/* 805: 2 | 4 */ unsigned int l_map_done : 1; +/* 805: 3 | 4 */ unsigned int l_phdr_allocated : 1; +/* 805: 4 | 4 */ unsigned int l_soname_added : 1; +/* 805: 5 | 4 */ unsigned int l_faked : 1; +/* 805: 6 | 4 */ unsigned int l_need_tls_init : 1; +/* 805: 7 | 4 */ unsigned int l_auditing : 1; +/* 806: 0 | 4 */ unsigned int l_audit_any_plt : 1; +/* 806: 1 | 4 */ unsigned int l_removed : 1; +/* 806: 2 | 4 */ unsigned int l_contiguous : 1; +/* 806: 3 | 4 */ unsigned int l_symbolic_in_local_scope : 1; +/* 806: 4 | 4 */ unsigned int l_free_initfini : 1; +/* 806: 5 | 4 */ unsigned int l_ld_readonly : 1; +/* 806: 6 | 4 */ unsigned int l_tls_in_slotinfo : 1; +/* 806: 7 | 4 */ unsigned int l_find_object_processed : 1; +/* 807 | 1 */ _Bool l_nodelete_active; +/* 808 | 1 */ _Bool l_nodelete_pending; +/* XXX 7-byte hole */ +/* 816 | 16 */ struct r_search_path_struct { +/* 816 | 8 */ struct r_search_path_elem **dirs; +/* 824 | 4 */ int malloced; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_rpath_dirs; +/* 832 | 8 */ struct reloc_result *l_reloc_result; +/* 840 | 8 */ Elf64_Versym *l_versyms; +/* 848 | 8 */ const char *l_origin; +/* 856 | 8 */ Elf64_Addr l_map_start; +/* 864 | 8 */ Elf64_Addr l_map_end; +/* 872 | 8 */ Elf64_Addr l_text_end; +/* 880 | 32 */ struct r_scope_elem *l_scope_mem[4]; +/* 912 | 8 */ size_t l_scope_max; +/* 920 | 8 */ struct r_scope_elem **l_scope; +/* 928 | 16 */ struct r_scope_elem *l_local_scope[2]; +/* 944 | 16 */ struct r_file_id { +/* 944 | 8 */ dev_t dev; +/* 952 | 8 */ ino64_t ino; + + /* total size (bytes): 16 */ + } l_file_id; +/* 960 | 16 */ struct r_search_path_struct { +/* 960 | 8 */ struct r_search_path_elem **dirs; +/* 968 | 4 */ int malloced; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_runpath_dirs; +/* 976 | 8 */ struct link_map **l_initfini; +/* 984 | 8 */ struct link_map_reldeps *l_reldeps; +/* 992 | 4 */ unsigned int l_reldepsmax; +/* 996 | 4 */ unsigned int l_used; +/* 1000 | 4 */ Elf64_Word l_feature_1; +/* 1004 | 4 */ Elf64_Word l_flags_1; +/* 1008 | 4 */ Elf64_Word l_flags; +/* 1012 | 4 */ int l_idx; +/* 1016 | 16 */ struct link_map_machine { +/* 1016 | 8 */ Elf64_Addr plt; +/* 1024 | 8 */ const Elf64_Rela *jmprel; + + /* total size (bytes): 16 */ + } l_mach; +/* 1032 | 32 */ struct { +/* 1032 | 8 */ const Elf64_Sym *sym; +/* 1040 | 4 */ int type_class; +/* XXX 4-byte hole */ +/* 1048 | 8 */ struct link_map *value; +/* 1056 | 8 */ const Elf64_Sym *ret; + + /* total size (bytes): 32 */ + } l_lookup_cache; +/* 1064 | 8 */ void *l_tls_initimage; +/* 1072 | 8 */ size_t l_tls_initimage_size; +/* 1080 | 8 */ size_t l_tls_blocksize; +/* 1088 | 8 */ size_t l_tls_align; +/* 1096 | 8 */ size_t l_tls_firstbyte_offset; +/* 1104 | 8 */ ptrdiff_t l_tls_offset; +/* 1112 | 8 */ size_t l_tls_modid; +/* 1120 | 8 */ size_t l_tls_dtor_count; +/* 1128 | 8 */ Elf64_Addr l_relro_addr; +/* 1136 | 8 */ size_t l_relro_size; +/* 1144 | 8 */ unsigned long long l_serial; + + /* total size (bytes): 1152 */ + } +--- struct pthread --- +/* offset | size */ type = struct pthread { +/* 0 | 192 */ union { +/* 64 */ tcbhead_t header; +/* 192 */ void *__padding[24]; + + /* total size (bytes): 192 */ + }; +/* 192 | 16 */ list_t list; +/* 208 | 4 */ pid_t tid; +/* 212 | 4 */ pid_t pid_ununsed; +/* 216 | 8 */ void *robust_prev; +/* 224 | 24 */ struct robust_list_head { +/* 224 | 8 */ void *list; +/* 232 | 8 */ long futex_offset; +/* 240 | 8 */ void *list_op_pending; + + /* total size (bytes): 24 */ + } robust_head; +/* 248 | 8 */ struct _pthread_cleanup_buffer *cleanup; +/* 256 | 8 */ struct pthread_unwind_buf *cleanup_jmp_buf; +/* 264 | 4 */ int cancelhandling; +/* 268 | 4 */ int flags; +/* 272 | 512 */ struct pthread_key_data specific_1stblock[32]; +/* 784 | 256 */ struct pthread_key_data *specific[32]; +/* 1040 | 1 */ _Bool specific_used; +/* 1041 | 1 */ _Bool report_events; +/* 1042 | 1 */ _Bool user_stack; +/* 1043 | 1 */ _Bool stopped_start; +/* 1044 | 4 */ int setup_failed; +/* 1048 | 4 */ int lock; +/* 1052 | 4 */ unsigned int setxid_futex; +/* 1056 | 8 */ hp_timing_t cpuclock_offset_ununsed; +/* 1064 | 8 */ struct pthread *joinid; +/* 1072 | 8 */ void *result; +/* 1080 | 4 */ struct sched_param { +/* 1080 | 4 */ int sched_priority; + + /* total size (bytes): 4 */ + } schedparam; +/* 1084 | 4 */ int schedpolicy; +/* 1088 | 8 */ void *(*start_routine)(void *); +/* 1096 | 8 */ void *arg; +/* 1104 | 24 */ td_eventbuf_t eventbuf; +/* 1128 | 8 */ struct pthread *nextevent; +/* 1136 | 32 */ struct _Unwind_Exception { +/* 1136 | 32 */ union { +/* 32 */ struct { +/* 1136 | 8 */ _Unwind_Exception_Class exception_class; +/* 1144 | 8 */ _Unwind_Exception_Cleanup_Fn exception_cleanup; +/* 1152 | 8 */ _Unwind_Word private_1; +/* 1160 | 8 */ _Unwind_Word private_2; + + /* total size (bytes): 32 */ + }; +/* 16 */ _Unwind_Word unwind_exception_align[2]; + + /* total size (bytes): 32 */ + }; + + /* total size (bytes): 32 */ + } exc; +/* 1168 | 8 */ void *stackblock; +/* 1176 | 8 */ size_t stackblock_size; +/* 1184 | 8 */ size_t guardsize; +/* 1192 | 8 */ size_t reported_guardsize; +/* 1200 | 8 */ struct priority_protection_data *tpp; +/* 1208 | 568 */ struct __res_state { +/* 1208 | 4 */ int retrans; +/* 1212 | 4 */ int retry; +/* 1216 | 8 */ unsigned long options; +/* 1224 | 4 */ int nscount; +/* 1228 | 48 */ struct sockaddr_in nsaddr_list[3]; +/* 1276 | 2 */ unsigned short id; +/* XXX 2-byte hole */ +/* 1280 | 56 */ char *dnsrch[7]; +/* 1336 | 256 */ char defdname[256]; +/* 1592 | 8 */ unsigned long pfcode; +/* 1600: 0 | 4 */ unsigned int ndots : 4; +/* 1600: 4 | 4 */ unsigned int nsort : 4; +/* 1601: 0 | 4 */ unsigned int ipv6_unavail : 1; +/* 1601: 1 | 4 */ unsigned int unused : 23; +/* 1604 | 80 */ struct { +/* 0 | 4 */ struct in_addr addr; +/* 4 | 4 */ uint32_t mask; + } sort_list[10]; +/* XXX 4-byte hole */ +/* 1688 | 8 */ void *__glibc_unused_qhook; +/* 1696 | 8 */ void *__glibc_unused_rhook; +/* 1704 | 4 */ int res_h_errno; +/* 1708 | 4 */ int _vcsock; +/* 1712 | 4 */ unsigned int _flags; +/* XXX 4-byte hole */ +/* 1720 | 56 */ union { +/* 52 */ char pad[52]; +/* 56 */ struct { +/* 1720 | 2 */ uint16_t nscount; +/* 1722 | 6 */ uint16_t nsmap[3]; +/* 1728 | 12 */ int nssocks[3]; +/* 1740 | 2 */ uint16_t nscount6; +/* 1742 | 2 */ uint16_t nsinit; +/* 1744 | 24 */ struct sockaddr_in6 *nsaddrs[3]; +/* 1768 | 8 */ unsigned long long __glibc_extension_index; + + /* total size (bytes): 56 */ + } _ext; + + /* total size (bytes): 56 */ + } _u; + + /* total size (bytes): 568 */ + } res; +/* 1776 | 128 */ sigset_t sigmask; +/* 1904 | 1 */ _Bool c11; +/* 1905 | 1 */ _Bool exiting; +/* XXX 2-byte hole */ +/* 1908 | 4 */ int exit_lock; +/* 1912 | 16 */ struct tls_internal_t { +/* 1912 | 8 */ char *strsignal_buf; +/* 1920 | 8 */ char *strerror_l_buf; + + /* total size (bytes): 16 */ + } tls_state; +/* XXX 24-byte hole */ +/* 1952 | 32 */ union { +/* 24 */ struct { +/* 1952 | 4 */ uint32_t cpu_id_start; +/* 1956 | 4 */ uint32_t cpu_id; +/* 1960 | 8 */ uint64_t rseq_cs; +/* 1968 | 4 */ uint32_t flags; +/* XXX 4-byte padding */ + + /* total size (bytes): 24 */ + }; +/* 32 */ char pad[32]; + + /* total size (bytes): 32 */ + } rseq_area; + + /* total size (bytes): 1984 */ + } diff --git a/SOURCES/ld-so-abi-x86_64.baseline b/SOURCES/ld-so-abi-x86_64.baseline new file mode 100644 index 0000000..5274a5f --- /dev/null +++ b/SOURCES/ld-so-abi-x86_64.baseline @@ -0,0 +1,586 @@ +--- _rtld_global_ro --- +/* offset | size */ type = struct rtld_global_ro { +/* 0 | 4 */ int _dl_debug_mask; +/* 4 | 4 */ unsigned int _dl_osversion; +/* 8 | 8 */ const char *_dl_platform; +/* 16 | 8 */ size_t _dl_platformlen; +/* 24 | 8 */ size_t _dl_pagesize; +/* 32 | 8 */ size_t _dl_minsigstacksize; +/* 40 | 4 */ int _dl_inhibit_cache; +/* XXX 4-byte hole */ +/* 48 | 16 */ struct r_scope_elem { +/* 48 | 8 */ struct link_map **r_list; +/* 56 | 4 */ unsigned int r_nlist; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } _dl_initial_searchlist; +/* 64 | 4 */ int _dl_clktck; +/* 68 | 4 */ int _dl_verbose; +/* 72 | 4 */ int _dl_debug_fd; +/* 76 | 4 */ int _dl_lazy; +/* 80 | 4 */ int _dl_bind_not; +/* 84 | 4 */ int _dl_dynamic_weak; +/* 88 | 2 */ fpu_control_t _dl_fpu_control; +/* XXX 2-byte hole */ +/* 92 | 4 */ int _dl_correct_cache_id; +/* 96 | 8 */ uint64_t _dl_hwcap; +/* 104 | 8 */ Elf64_auxv_t *_dl_auxv; +/* 112 | 480 */ struct cpu_features { +/* 112 | 20 */ struct cpu_features_basic { +/* 112 | 4 */ enum cpu_features_kind kind; +/* 116 | 4 */ int max_cpuid; +/* 120 | 4 */ unsigned int family; +/* 124 | 4 */ unsigned int model; +/* 128 | 4 */ unsigned int stepping; + + /* total size (bytes): 20 */ + } basic; +/* 132 | 288 */ struct cpuid_feature_internal features[9]; +/* 420 | 4 */ unsigned int preferred[1]; +/* 424 | 4 */ unsigned int isa_1; +/* XXX 4-byte hole */ +/* 432 | 8 */ unsigned long xsave_state_size; +/* 440 | 4 */ unsigned int xsave_state_full_size; +/* XXX 4-byte hole */ +/* 448 | 8 */ unsigned long data_cache_size; +/* 456 | 8 */ unsigned long shared_cache_size; +/* 464 | 8 */ unsigned long non_temporal_threshold; +/* 472 | 8 */ unsigned long rep_movsb_threshold; +/* 480 | 8 */ unsigned long rep_movsb_stop_threshold; +/* 488 | 8 */ unsigned long rep_stosb_threshold; +/* 496 | 8 */ unsigned long level1_icache_size; +/* 504 | 8 */ unsigned long level1_icache_linesize; +/* 512 | 8 */ unsigned long level1_dcache_size; +/* 520 | 8 */ unsigned long level1_dcache_assoc; +/* 528 | 8 */ unsigned long level1_dcache_linesize; +/* 536 | 8 */ unsigned long level2_cache_size; +/* 544 | 8 */ unsigned long level2_cache_assoc; +/* 552 | 8 */ unsigned long level2_cache_linesize; +/* 560 | 8 */ unsigned long level3_cache_size; +/* 568 | 8 */ unsigned long level3_cache_assoc; +/* 576 | 8 */ unsigned long level3_cache_linesize; +/* 584 | 8 */ unsigned long level4_cache_size; + + /* total size (bytes): 480 */ + } _dl_x86_cpu_features; +/* 592 | 27 */ const char _dl_x86_hwcap_flags[3][9]; +/* 619 | 36 */ const char _dl_x86_platforms[4][9]; +/* XXX 1-byte hole */ +/* 656 | 8 */ const char *_dl_inhibit_rpath; +/* 664 | 8 */ const char *_dl_origin_path; +/* 672 | 8 */ Elf64_Addr _dl_use_load_bias; +/* 680 | 8 */ size_t _dl_tls_static_size; +/* 688 | 8 */ size_t _dl_tls_static_align; +/* 696 | 8 */ size_t _dl_tls_static_surplus; +/* 704 | 8 */ const char *_dl_profile; +/* 712 | 8 */ const char *_dl_profile_output; +/* 720 | 8 */ const char *_dl_trace_prelink; +/* 728 | 8 */ struct link_map *_dl_trace_prelink_map; +/* 736 | 8 */ struct r_search_path_elem *_dl_init_all_dirs; +/* 744 | 8 */ const Elf64_Ehdr *_dl_sysinfo_dso; +/* 752 | 8 */ struct link_map *_dl_sysinfo_map; +/* 760 | 8 */ int (*_dl_vdso_clock_gettime64)(clockid_t, struct timespec *); +/* 768 | 8 */ int (*_dl_vdso_gettimeofday)(struct timeval *, void *); +/* 776 | 8 */ time_t (*_dl_vdso_time)(time_t *); +/* 784 | 8 */ int (*_dl_vdso_getcpu)(unsigned int *, unsigned int *, void *); +/* 792 | 8 */ int (*_dl_vdso_clock_getres_time64)(clockid_t, struct timespec *); +/* 800 | 8 */ uint64_t _dl_hwcap2; +/* 808 | 4 */ enum dso_sort_algorithm _dl_dso_sort_algo; +/* XXX 4-byte hole */ +/* 816 | 8 */ void (*_dl_debug_printf)(const char *, ...); +/* 824 | 8 */ void (*_dl_mcount)(Elf64_Addr, Elf64_Addr); +/* 832 | 8 */ lookup_t (*_dl_lookup_symbol_x)(const char *, struct link_map *, const Elf64_Sym **, struct r_scope_elem **, const struct r_found_version *, int, int, struct link_map *); +/* 840 | 8 */ void *(*_dl_open)(const char *, int, const void *, Lmid_t, int, char **, char **); +/* 848 | 8 */ void (*_dl_close)(void *); +/* 856 | 8 */ int (*_dl_catch_error)(const char **, const char **, _Bool *, void (*)(void *), void *); +/* 864 | 8 */ void (*_dl_error_free)(void *); +/* 872 | 8 */ void *(*_dl_tls_get_addr_soft)(struct link_map *); +/* 880 | 8 */ int (*_dl_discover_osversion)(void); +/* 888 | 8 */ const struct dlfcn_hook *_dl_dlfcn_hook; +/* 896 | 8 */ struct audit_ifaces *_dl_audit; +/* 904 | 4 */ unsigned int _dl_naudit; +/* XXX 4-byte padding */ + + /* total size (bytes): 912 */ + } +--- _rtld_global --- +/* offset | size */ type = struct rtld_global { +/* 0 | 2432 */ struct link_namespaces _dl_ns[16]; +/* 2432 | 8 */ size_t _dl_nns; +/* 2440 | 40 */ __rtld_lock_recursive_t _dl_load_lock; +/* 2480 | 40 */ __rtld_lock_recursive_t _dl_load_write_lock; +/* 2520 | 40 */ __rtld_lock_recursive_t _dl_load_tls_lock; +/* 2560 | 8 */ unsigned long long _dl_load_adds; +/* 2568 | 8 */ struct link_map *_dl_initfirst; +/* 2576 | 8 */ struct link_map *_dl_profile_map; +/* 2584 | 8 */ unsigned long _dl_num_relocations; +/* 2592 | 8 */ unsigned long _dl_num_cache_relocations; +/* 2600 | 8 */ struct r_search_path_elem *_dl_all_dirs; +/* 2608 | 1160 */ struct link_map { +/* 2608 | 8 */ Elf64_Addr l_addr; +/* 2616 | 8 */ char *l_name; +/* 2624 | 8 */ Elf64_Dyn *l_ld; +/* 2632 | 8 */ struct link_map *l_next; +/* 2640 | 8 */ struct link_map *l_prev; +/* 2648 | 8 */ struct link_map *l_real; +/* 2656 | 8 */ Lmid_t l_ns; +/* 2664 | 8 */ struct libname_list *l_libname; +/* 2672 | 616 */ Elf64_Dyn *l_info[77]; +/* 3288 | 8 */ const Elf64_Phdr *l_phdr; +/* 3296 | 8 */ Elf64_Addr l_entry; +/* 3304 | 2 */ Elf64_Half l_phnum; +/* 3306 | 2 */ Elf64_Half l_ldnum; +/* XXX 4-byte hole */ +/* 3312 | 16 */ struct r_scope_elem { +/* 3312 | 8 */ struct link_map **r_list; +/* 3320 | 4 */ unsigned int r_nlist; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_searchlist; +/* 3328 | 16 */ struct r_scope_elem { +/* 3328 | 8 */ struct link_map **r_list; +/* 3336 | 4 */ unsigned int r_nlist; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_symbolic_searchlist; +/* 3344 | 8 */ struct link_map *l_loader; +/* 3352 | 8 */ struct r_found_version *l_versions; +/* 3360 | 4 */ unsigned int l_nversions; +/* 3364 | 4 */ Elf_Symndx l_nbuckets; +/* 3368 | 4 */ Elf32_Word l_gnu_bitmask_idxbits; +/* 3372 | 4 */ Elf32_Word l_gnu_shift; +/* 3376 | 8 */ const Elf64_Addr *l_gnu_bitmask; +/* 3384 | 8 */ union { +/* 8 */ const Elf32_Word *l_gnu_buckets; +/* 8 */ const Elf_Symndx *l_chain; + + /* total size (bytes): 8 */ + }; +/* 3392 | 8 */ union { +/* 8 */ const Elf32_Word *l_gnu_chain_zero; +/* 8 */ const Elf_Symndx *l_buckets; + + /* total size (bytes): 8 */ + }; +/* 3400 | 4 */ unsigned int l_direct_opencount; +/* 3404: 0 | 4 */ enum {lt_executable, lt_library, lt_loaded} l_type : 2; +/* 3404: 2 | 4 */ unsigned int l_relocated : 1; +/* 3404: 3 | 4 */ unsigned int l_init_called : 1; +/* 3404: 4 | 4 */ unsigned int l_global : 1; +/* 3404: 5 | 4 */ unsigned int l_reserved : 2; +/* 3404: 7 | 4 */ unsigned int l_main_map : 1; +/* 3405: 0 | 4 */ unsigned int l_visited : 1; +/* 3405: 1 | 4 */ unsigned int l_map_used : 1; +/* 3405: 2 | 4 */ unsigned int l_map_done : 1; +/* 3405: 3 | 4 */ unsigned int l_phdr_allocated : 1; +/* 3405: 4 | 4 */ unsigned int l_soname_added : 1; +/* 3405: 5 | 4 */ unsigned int l_faked : 1; +/* 3405: 6 | 4 */ unsigned int l_need_tls_init : 1; +/* 3405: 7 | 4 */ unsigned int l_auditing : 1; +/* 3406: 0 | 4 */ unsigned int l_audit_any_plt : 1; +/* 3406: 1 | 4 */ unsigned int l_removed : 1; +/* 3406: 2 | 4 */ unsigned int l_contiguous : 1; +/* 3406: 3 | 4 */ unsigned int l_symbolic_in_local_scope : 1; +/* 3406: 4 | 4 */ unsigned int l_free_initfini : 1; +/* 3406: 5 | 4 */ unsigned int l_ld_readonly : 1; +/* 3406: 6 | 4 */ unsigned int l_tls_in_slotinfo : 1; +/* 3406: 7 | 4 */ unsigned int l_find_object_processed : 1; +/* 3407 | 1 */ _Bool l_nodelete_active; +/* 3408 | 1 */ _Bool l_nodelete_pending; +/* 3409: 0 | 4 */ enum {lc_property_unknown, lc_property_none, lc_property_valid} l_property : 2; +/* XXX 6-bit hole */ +/* XXX 2-byte hole */ +/* 3412 | 4 */ unsigned int l_x86_feature_1_and; +/* 3416 | 4 */ unsigned int l_x86_isa_1_needed; +/* XXX 4-byte hole */ +/* 3424 | 16 */ struct r_search_path_struct { +/* 3424 | 8 */ struct r_search_path_elem **dirs; +/* 3432 | 4 */ int malloced; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_rpath_dirs; +/* 3440 | 8 */ struct reloc_result *l_reloc_result; +/* 3448 | 8 */ Elf64_Versym *l_versyms; +/* 3456 | 8 */ const char *l_origin; +/* 3464 | 8 */ Elf64_Addr l_map_start; +/* 3472 | 8 */ Elf64_Addr l_map_end; +/* 3480 | 8 */ Elf64_Addr l_text_end; +/* 3488 | 32 */ struct r_scope_elem *l_scope_mem[4]; +/* 3520 | 8 */ size_t l_scope_max; +/* 3528 | 8 */ struct r_scope_elem **l_scope; +/* 3536 | 16 */ struct r_scope_elem *l_local_scope[2]; +/* 3552 | 16 */ struct r_file_id { +/* 3552 | 8 */ dev_t dev; +/* 3560 | 8 */ ino64_t ino; + + /* total size (bytes): 16 */ + } l_file_id; +/* 3568 | 16 */ struct r_search_path_struct { +/* 3568 | 8 */ struct r_search_path_elem **dirs; +/* 3576 | 4 */ int malloced; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_runpath_dirs; +/* 3584 | 8 */ struct link_map **l_initfini; +/* 3592 | 8 */ struct link_map_reldeps *l_reldeps; +/* 3600 | 4 */ unsigned int l_reldepsmax; +/* 3604 | 4 */ unsigned int l_used; +/* 3608 | 4 */ Elf64_Word l_feature_1; +/* 3612 | 4 */ Elf64_Word l_flags_1; +/* 3616 | 4 */ Elf64_Word l_flags; +/* 3620 | 4 */ int l_idx; +/* 3624 | 24 */ struct link_map_machine { +/* 3624 | 8 */ Elf64_Addr plt; +/* 3632 | 8 */ Elf64_Addr gotplt; +/* 3640 | 8 */ void *tlsdesc_table; + + /* total size (bytes): 24 */ + } l_mach; +/* 3648 | 32 */ struct { +/* 3648 | 8 */ const Elf64_Sym *sym; +/* 3656 | 4 */ int type_class; +/* XXX 4-byte hole */ +/* 3664 | 8 */ struct link_map *value; +/* 3672 | 8 */ const Elf64_Sym *ret; + + /* total size (bytes): 32 */ + } l_lookup_cache; +/* 3680 | 8 */ void *l_tls_initimage; +/* 3688 | 8 */ size_t l_tls_initimage_size; +/* 3696 | 8 */ size_t l_tls_blocksize; +/* 3704 | 8 */ size_t l_tls_align; +/* 3712 | 8 */ size_t l_tls_firstbyte_offset; +/* 3720 | 8 */ ptrdiff_t l_tls_offset; +/* 3728 | 8 */ size_t l_tls_modid; +/* 3736 | 8 */ size_t l_tls_dtor_count; +/* 3744 | 8 */ Elf64_Addr l_relro_addr; +/* 3752 | 8 */ size_t l_relro_size; +/* 3760 | 8 */ unsigned long long l_serial; + + /* total size (bytes): 1160 */ + } _dl_rtld_map; +/* 3768 | 256 */ struct auditstate _dl_rtld_auditstate[16]; +/* 4024 | 4 */ unsigned int _dl_x86_feature_1; +/* 4028 | 4 */ struct dl_x86_feature_control { +/* 4028: 0 | 4 */ enum dl_x86_cet_control ibt : 2; +/* 4028: 2 | 4 */ enum dl_x86_cet_control shstk : 2; +/* XXX 4-bit padding */ +/* XXX 3-byte padding */ + + /* total size (bytes): 4 */ + } _dl_x86_feature_control; +/* 4032 | 4 */ Elf64_Word _dl_stack_flags; +/* 4036 | 1 */ _Bool _dl_tls_dtv_gaps; +/* XXX 3-byte hole */ +/* 4040 | 8 */ size_t _dl_tls_max_dtv_idx; +/* 4048 | 8 */ struct dtv_slotinfo_list *_dl_tls_dtv_slotinfo_list; +/* 4056 | 8 */ size_t _dl_tls_static_nelem; +/* 4064 | 8 */ size_t _dl_tls_static_used; +/* 4072 | 8 */ size_t _dl_tls_static_optional; +/* 4080 | 8 */ void *_dl_initial_dtv; +/* 4088 | 8 */ size_t _dl_tls_generation; +/* 4096 | 8 */ struct dl_scope_free_list *_dl_scope_free_list; +/* 4104 | 16 */ list_t _dl_stack_used; +/* 4120 | 16 */ list_t _dl_stack_user; +/* 4136 | 16 */ list_t _dl_stack_cache; +/* 4152 | 8 */ size_t _dl_stack_cache_actsize; +/* 4160 | 8 */ uintptr_t _dl_in_flight_stack; +/* 4168 | 4 */ int _dl_stack_cache_lock; +/* XXX 4-byte padding */ + + /* total size (bytes): 4176 */ + } +--- struct link_map --- +/* offset | size */ type = struct link_map { +/* 0 | 8 */ Elf64_Addr l_addr; +/* 8 | 8 */ char *l_name; +/* 16 | 8 */ Elf64_Dyn *l_ld; +/* 24 | 8 */ struct link_map *l_next; +/* 32 | 8 */ struct link_map *l_prev; +/* 40 | 8 */ struct link_map *l_real; +/* 48 | 8 */ Lmid_t l_ns; +/* 56 | 8 */ struct libname_list *l_libname; +/* 64 | 616 */ Elf64_Dyn *l_info[77]; +/* 680 | 8 */ const Elf64_Phdr *l_phdr; +/* 688 | 8 */ Elf64_Addr l_entry; +/* 696 | 2 */ Elf64_Half l_phnum; +/* 698 | 2 */ Elf64_Half l_ldnum; +/* XXX 4-byte hole */ +/* 704 | 16 */ struct r_scope_elem { +/* 704 | 8 */ struct link_map **r_list; +/* 712 | 4 */ unsigned int r_nlist; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_searchlist; +/* 720 | 16 */ struct r_scope_elem { +/* 720 | 8 */ struct link_map **r_list; +/* 728 | 4 */ unsigned int r_nlist; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_symbolic_searchlist; +/* 736 | 8 */ struct link_map *l_loader; +/* 744 | 8 */ struct r_found_version *l_versions; +/* 752 | 4 */ unsigned int l_nversions; +/* 756 | 4 */ Elf_Symndx l_nbuckets; +/* 760 | 4 */ Elf32_Word l_gnu_bitmask_idxbits; +/* 764 | 4 */ Elf32_Word l_gnu_shift; +/* 768 | 8 */ const Elf64_Addr *l_gnu_bitmask; +/* 776 | 8 */ union { +/* 8 */ const Elf32_Word *l_gnu_buckets; +/* 8 */ const Elf_Symndx *l_chain; + + /* total size (bytes): 8 */ + }; +/* 784 | 8 */ union { +/* 8 */ const Elf32_Word *l_gnu_chain_zero; +/* 8 */ const Elf_Symndx *l_buckets; + + /* total size (bytes): 8 */ + }; +/* 792 | 4 */ unsigned int l_direct_opencount; +/* 796: 0 | 4 */ enum {lt_executable, lt_library, lt_loaded} l_type : 2; +/* 796: 2 | 4 */ unsigned int l_relocated : 1; +/* 796: 3 | 4 */ unsigned int l_init_called : 1; +/* 796: 4 | 4 */ unsigned int l_global : 1; +/* 796: 5 | 4 */ unsigned int l_reserved : 2; +/* 796: 7 | 4 */ unsigned int l_main_map : 1; +/* 797: 0 | 4 */ unsigned int l_visited : 1; +/* 797: 1 | 4 */ unsigned int l_map_used : 1; +/* 797: 2 | 4 */ unsigned int l_map_done : 1; +/* 797: 3 | 4 */ unsigned int l_phdr_allocated : 1; +/* 797: 4 | 4 */ unsigned int l_soname_added : 1; +/* 797: 5 | 4 */ unsigned int l_faked : 1; +/* 797: 6 | 4 */ unsigned int l_need_tls_init : 1; +/* 797: 7 | 4 */ unsigned int l_auditing : 1; +/* 798: 0 | 4 */ unsigned int l_audit_any_plt : 1; +/* 798: 1 | 4 */ unsigned int l_removed : 1; +/* 798: 2 | 4 */ unsigned int l_contiguous : 1; +/* 798: 3 | 4 */ unsigned int l_symbolic_in_local_scope : 1; +/* 798: 4 | 4 */ unsigned int l_free_initfini : 1; +/* 798: 5 | 4 */ unsigned int l_ld_readonly : 1; +/* 798: 6 | 4 */ unsigned int l_tls_in_slotinfo : 1; +/* 798: 7 | 4 */ unsigned int l_find_object_processed : 1; +/* 799 | 1 */ _Bool l_nodelete_active; +/* 800 | 1 */ _Bool l_nodelete_pending; +/* 801: 0 | 4 */ enum {lc_property_unknown, lc_property_none, lc_property_valid} l_property : 2; +/* XXX 6-bit hole */ +/* XXX 2-byte hole */ +/* 804 | 4 */ unsigned int l_x86_feature_1_and; +/* 808 | 4 */ unsigned int l_x86_isa_1_needed; +/* XXX 4-byte hole */ +/* 816 | 16 */ struct r_search_path_struct { +/* 816 | 8 */ struct r_search_path_elem **dirs; +/* 824 | 4 */ int malloced; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_rpath_dirs; +/* 832 | 8 */ struct reloc_result *l_reloc_result; +/* 840 | 8 */ Elf64_Versym *l_versyms; +/* 848 | 8 */ const char *l_origin; +/* 856 | 8 */ Elf64_Addr l_map_start; +/* 864 | 8 */ Elf64_Addr l_map_end; +/* 872 | 8 */ Elf64_Addr l_text_end; +/* 880 | 32 */ struct r_scope_elem *l_scope_mem[4]; +/* 912 | 8 */ size_t l_scope_max; +/* 920 | 8 */ struct r_scope_elem **l_scope; +/* 928 | 16 */ struct r_scope_elem *l_local_scope[2]; +/* 944 | 16 */ struct r_file_id { +/* 944 | 8 */ dev_t dev; +/* 952 | 8 */ ino64_t ino; + + /* total size (bytes): 16 */ + } l_file_id; +/* 960 | 16 */ struct r_search_path_struct { +/* 960 | 8 */ struct r_search_path_elem **dirs; +/* 968 | 4 */ int malloced; +/* XXX 4-byte padding */ + + /* total size (bytes): 16 */ + } l_runpath_dirs; +/* 976 | 8 */ struct link_map **l_initfini; +/* 984 | 8 */ struct link_map_reldeps *l_reldeps; +/* 992 | 4 */ unsigned int l_reldepsmax; +/* 996 | 4 */ unsigned int l_used; +/* 1000 | 4 */ Elf64_Word l_feature_1; +/* 1004 | 4 */ Elf64_Word l_flags_1; +/* 1008 | 4 */ Elf64_Word l_flags; +/* 1012 | 4 */ int l_idx; +/* 1016 | 24 */ struct link_map_machine { +/* 1016 | 8 */ Elf64_Addr plt; +/* 1024 | 8 */ Elf64_Addr gotplt; +/* 1032 | 8 */ void *tlsdesc_table; + + /* total size (bytes): 24 */ + } l_mach; +/* 1040 | 32 */ struct { +/* 1040 | 8 */ const Elf64_Sym *sym; +/* 1048 | 4 */ int type_class; +/* XXX 4-byte hole */ +/* 1056 | 8 */ struct link_map *value; +/* 1064 | 8 */ const Elf64_Sym *ret; + + /* total size (bytes): 32 */ + } l_lookup_cache; +/* 1072 | 8 */ void *l_tls_initimage; +/* 1080 | 8 */ size_t l_tls_initimage_size; +/* 1088 | 8 */ size_t l_tls_blocksize; +/* 1096 | 8 */ size_t l_tls_align; +/* 1104 | 8 */ size_t l_tls_firstbyte_offset; +/* 1112 | 8 */ ptrdiff_t l_tls_offset; +/* 1120 | 8 */ size_t l_tls_modid; +/* 1128 | 8 */ size_t l_tls_dtor_count; +/* 1136 | 8 */ Elf64_Addr l_relro_addr; +/* 1144 | 8 */ size_t l_relro_size; +/* 1152 | 8 */ unsigned long long l_serial; + + /* total size (bytes): 1160 */ + } +--- struct pthread --- +/* offset | size */ type = struct pthread { +/* 0 | 704 */ union { +/* 704 */ tcbhead_t header; +/* 192 */ void *__padding[24]; + + /* total size (bytes): 704 */ + }; +/* 704 | 16 */ list_t list; +/* 720 | 4 */ pid_t tid; +/* 724 | 4 */ pid_t pid_ununsed; +/* 728 | 8 */ void *robust_prev; +/* 736 | 24 */ struct robust_list_head { +/* 736 | 8 */ void *list; +/* 744 | 8 */ long futex_offset; +/* 752 | 8 */ void *list_op_pending; + + /* total size (bytes): 24 */ + } robust_head; +/* 760 | 8 */ struct _pthread_cleanup_buffer *cleanup; +/* 768 | 8 */ struct pthread_unwind_buf *cleanup_jmp_buf; +/* 776 | 4 */ int cancelhandling; +/* 780 | 4 */ int flags; +/* 784 | 512 */ struct pthread_key_data specific_1stblock[32]; +/* 1296 | 256 */ struct pthread_key_data *specific[32]; +/* 1552 | 1 */ _Bool specific_used; +/* 1553 | 1 */ _Bool report_events; +/* 1554 | 1 */ _Bool user_stack; +/* 1555 | 1 */ _Bool stopped_start; +/* 1556 | 4 */ int setup_failed; +/* 1560 | 4 */ int lock; +/* 1564 | 4 */ unsigned int setxid_futex; +/* 1568 | 8 */ hp_timing_t cpuclock_offset_ununsed; +/* 1576 | 8 */ struct pthread *joinid; +/* 1584 | 8 */ void *result; +/* 1592 | 4 */ struct sched_param { +/* 1592 | 4 */ int sched_priority; + + /* total size (bytes): 4 */ + } schedparam; +/* 1596 | 4 */ int schedpolicy; +/* 1600 | 8 */ void *(*start_routine)(void *); +/* 1608 | 8 */ void *arg; +/* 1616 | 24 */ td_eventbuf_t eventbuf; +/* 1640 | 8 */ struct pthread *nextevent; +/* 1648 | 32 */ struct _Unwind_Exception { +/* 1648 | 32 */ union { +/* 32 */ struct { +/* 1648 | 8 */ _Unwind_Exception_Class exception_class; +/* 1656 | 8 */ _Unwind_Exception_Cleanup_Fn exception_cleanup; +/* 1664 | 8 */ _Unwind_Word private_1; +/* 1672 | 8 */ _Unwind_Word private_2; + + /* total size (bytes): 32 */ + }; +/* 16 */ _Unwind_Word unwind_exception_align[2]; + + /* total size (bytes): 32 */ + }; + + /* total size (bytes): 32 */ + } exc; +/* 1680 | 8 */ void *stackblock; +/* 1688 | 8 */ size_t stackblock_size; +/* 1696 | 8 */ size_t guardsize; +/* 1704 | 8 */ size_t reported_guardsize; +/* 1712 | 8 */ struct priority_protection_data *tpp; +/* 1720 | 568 */ struct __res_state { +/* 1720 | 4 */ int retrans; +/* 1724 | 4 */ int retry; +/* 1728 | 8 */ unsigned long options; +/* 1736 | 4 */ int nscount; +/* 1740 | 48 */ struct sockaddr_in nsaddr_list[3]; +/* 1788 | 2 */ unsigned short id; +/* XXX 2-byte hole */ +/* 1792 | 56 */ char *dnsrch[7]; +/* 1848 | 256 */ char defdname[256]; +/* 2104 | 8 */ unsigned long pfcode; +/* 2112: 0 | 4 */ unsigned int ndots : 4; +/* 2112: 4 | 4 */ unsigned int nsort : 4; +/* 2113: 0 | 4 */ unsigned int ipv6_unavail : 1; +/* 2113: 1 | 4 */ unsigned int unused : 23; +/* 2116 | 80 */ struct { +/* 0 | 4 */ struct in_addr addr; +/* 4 | 4 */ uint32_t mask; + } sort_list[10]; +/* XXX 4-byte hole */ +/* 2200 | 8 */ void *__glibc_unused_qhook; +/* 2208 | 8 */ void *__glibc_unused_rhook; +/* 2216 | 4 */ int res_h_errno; +/* 2220 | 4 */ int _vcsock; +/* 2224 | 4 */ unsigned int _flags; +/* XXX 4-byte hole */ +/* 2232 | 56 */ union { +/* 52 */ char pad[52]; +/* 56 */ struct { +/* 2232 | 2 */ uint16_t nscount; +/* 2234 | 6 */ uint16_t nsmap[3]; +/* 2240 | 12 */ int nssocks[3]; +/* 2252 | 2 */ uint16_t nscount6; +/* 2254 | 2 */ uint16_t nsinit; +/* 2256 | 24 */ struct sockaddr_in6 *nsaddrs[3]; +/* 2280 | 8 */ unsigned long long __glibc_extension_index; + + /* total size (bytes): 56 */ + } _ext; + + /* total size (bytes): 56 */ + } _u; + + /* total size (bytes): 568 */ + } res; +/* 2288 | 128 */ sigset_t sigmask; +/* 2416 | 1 */ _Bool c11; +/* 2417 | 1 */ _Bool exiting; +/* XXX 2-byte hole */ +/* 2420 | 4 */ int exit_lock; +/* 2424 | 16 */ struct tls_internal_t { +/* 2424 | 8 */ char *strsignal_buf; +/* 2432 | 8 */ char *strerror_l_buf; + + /* total size (bytes): 16 */ + } tls_state; +/* XXX 24-byte hole */ +/* 2464 | 32 */ union { +/* 24 */ struct { +/* 2464 | 4 */ uint32_t cpu_id_start; +/* 2468 | 4 */ uint32_t cpu_id; +/* 2472 | 8 */ uint64_t rseq_cs; +/* 2480 | 4 */ uint32_t flags; +/* XXX 4-byte padding */ + + /* total size (bytes): 24 */ + }; +/* 32 */ char pad[32]; + + /* total size (bytes): 32 */ + } rseq_area; + + /* total size (bytes): 2496 */ + } diff --git a/SOURCES/verify-ld-so-abi.sh b/SOURCES/verify-ld-so-abi.sh new file mode 100644 index 0000000..6b33dd9 --- /dev/null +++ b/SOURCES/verify-ld-so-abi.sh @@ -0,0 +1,101 @@ +#!/bin/bash +# +# This script verifies the ABI of ld.so by comparing the layout of +# critical data structures against a known baseline for a given architecture. +# +# This is useful to prevent unintentional ABI breaks between releases. +# +# Usage: ./elf/verify-ld-so-abi.sh [--generate-baseline] + +set -euo pipefail + +if [ "$#" -lt 2 ] || [ "$#" -gt 3 ]; then + echo "Usage: $0 [--generate-baseline]" + exit 1 +fi + +ARCH="$1" +LDSO_PATH="$2" +GENERATE_BASELINE=false +if [ "${3:-}" == "--generate-baseline" ]; then + GENERATE_BASELINE=true +fi + +# The script is expected to be in the 'elf' directory and run from the glibc root. +SCRIPT_DIR="$(dirname "$0")" +BASELINE_DIR="$SCRIPT_DIR" +BASELINE_FILE="$BASELINE_DIR/ld-so-abi-$ARCH.baseline" + +# List of structs and global variables to check in ld.so. +# These are critical for the dynamic linker's internal ABI. +SYMBOLS_TO_CHECK=( + "_rtld_global_ro" + "_rtld_global" + "struct link_map" + "struct pthread" +) + +# Check for dependencies. +if ! command -v gdb &> /dev/null; then + echo "Error: gdb is not installed. Please install it to continue." >&2 + exit 127 +fi + +if [ ! -f "$LDSO_PATH" ]; then + echo "Error: ld.so not found at '$LDSO_PATH'" >&2 + exit 1 +fi + +TEMP_FILE=$(mktemp) +# Ensure the temporary file is cleaned up on script exit. +trap 'rm -f "$TEMP_FILE"' EXIT + +echo "Generating current ABI layout for '$ARCH' from '$LDSO_PATH'..." + +for symbol in "${SYMBOLS_TO_CHECK[@]}"; do + echo "--- $symbol ---" >> "$TEMP_FILE" + # Use ptype/o to get the struct layout with offsets. + # If a symbol does not exist, GDB will exit with an error, which is + # caught by 'set -e'. + gdb -batch -ex "ptype/o $symbol" "$LDSO_PATH" >> "$TEMP_FILE" +done + +if [ "$GENERATE_BASELINE" = true ]; then + echo "Generating new baseline for '$ARCH'..." + mkdir -p "$BASELINE_DIR" + # Atomically move the new baseline into place. + mv "$TEMP_FILE" "$BASELINE_FILE" + echo "Baseline created at $BASELINE_FILE" + # The temp file has been moved, so disable the trap. + trap - EXIT + exit 0 +fi + +# --- Comparison Mode --- + +if [ ! -f "$BASELINE_FILE" ]; then + echo "Error: Baseline file for architecture '$ARCH' does not exist." >&2 + echo "Path: $BASELINE_FILE" >&2 + echo >&2 + echo "To generate a new baseline, run this command with the --generate-baseline flag:" >&2 + echo "$0 $ARCH '$LDSO_PATH' --generate-baseline" >&2 + exit 77 +fi + +echo "Comparing with baseline file: $BASELINE_FILE" + +# Compare the generated layout with the official baseline. +if ! diff -u "$BASELINE_FILE" "$TEMP_FILE"; then + echo >&2 + echo "Error: ABI layout mismatch for '$ARCH' has been detected." >&2 + echo "The layout of structs in '$LDSO_PATH' has changed." >&2 + echo >&2 + echo "If this change is intentional, update the baseline file by running:" >&2 + echo "$0 $ARCH '$LDSO_PATH' --generate-baseline" >&2 + echo "Or by applying the diff using 'patch -R'" + exit 1 +else + echo "OK: ABI layout for '$ARCH' is consistent with the baseline." + exit 0 +fi + diff --git a/SOURCES/wrap-find-debuginfo.sh b/SOURCES/wrap-find-debuginfo.sh index 59c7356..5257de7 100644 --- a/SOURCES/wrap-find-debuginfo.sh +++ b/SOURCES/wrap-find-debuginfo.sh @@ -48,6 +48,7 @@ script_path="$1" shift # libc.so.6 always uses this name, so it is simpler to locate. +# This can result in multiple paths, hence the loop below. libc_path=`find "$sysroot_path" -name libc.so.6` diff --git a/SPECS/glibc.spec b/SPECS/glibc.spec index b57d635..d433745 100644 --- a/SPECS/glibc.spec +++ b/SPECS/glibc.spec @@ -157,7 +157,7 @@ end \ Summary: The GNU libc libraries Name: glibc Version: %{glibcversion} -Release: 168%{?dist} +Release: 231%{?dist} # In general, GPLv2+ is used by programs, LGPLv2+ is used for # libraries. @@ -198,6 +198,13 @@ Source11: parse-SUPPORTED.py # Include in the source RPM for reference. Source12: ChangeLog.old Source13: nscd-sysusers.conf +Source14: glibc.abignore +Source15: verify-ld-so-abi.sh +Source16: ld-so-abi-aarch64.baseline +Source17: ld-so-abi-i386.baseline +Source18: ld-so-abi-ppc64le.baseline +Source19: ld-so-abi-s390x.baseline +Source20: ld-so-abi-x86_64.baseline # glibc_ldso: ABI-specific program interpreter name. Used for debuginfo # extraction (wrap-find-debuginfo.sh) and smoke testing ($run_ldso below). @@ -279,7 +286,7 @@ local original = rpm.expand("%{macrobody:__debug_install_post}") -- Avoid embedded newlines that confuse the macro definition. original = original:match("^%s*(.-)%s*$"):gsub("\\\n", "") rpm.define("__debug_install_post bash " .. wrapper - .. " " .. sysroot .. " %{_prefix}/%{glibc_ldso} " .. original) + .. " " .. sysroot .. " %{_prefix}%{glibc_ldso} " .. original) } # sysroot package support. These contain arch-specific packages, so @@ -1114,6 +1121,226 @@ Patch806: glibc-RHEL-24740-1.patch Patch807: glibc-RHEL-24740-2.patch Patch808: glibc-RHEL-24740-3.patch Patch809: glibc-RHEL-71547.patch +Patch810: glibc-RHEL-57585-1.patch +Patch811: glibc-RHEL-57585-2.patch +Patch812: glibc-RHEL-57585-3.patch +Patch813: glibc-RHEL-57585-4.patch +Patch814: glibc-RHEL-57585-5.patch +Patch815: glibc-RHEL-67593.patch +Patch816: glibc-RHEL-46729.patch +Patch817: glibc-RHEL-61569-1.patch +Patch818: glibc-RHEL-61569-2.patch +Patch819: glibc-RHEL-65280-1.patch +Patch820: glibc-RHEL-65280-2.patch +Patch821: glibc-RHEL-65280-3.patch +Patch822: glibc-RHEL-65280-4.patch +Patch823: glibc-RHEL-65280-5.patch +Patch824: glibc-RHEL-65280-6.patch +Patch825: glibc-RHEL-65280-7.patch +Patch826: glibc-RHEL-55471-1.patch +Patch827: glibc-RHEL-55471-2.patch +Patch828: glibc-RHEL-55471-3.patch +Patch829: glibc-RHEL-55471-4.patch +Patch830: glibc-RHEL-55471-5.patch +Patch831: glibc-RHEL-55471-6.patch +Patch832: glibc-RHEL-55471-7.patch +Patch833: glibc-RHEL-55471-8.patch +Patch834: glibc-RHEL-55471-9.patch +Patch835: glibc-RHEL-55471-10.patch +Patch836: glibc-RHEL-56627-1.patch +Patch837: glibc-RHEL-56627-2.patch +Patch838: glibc-RHEL-56627-3.patch +Patch839: glibc-RHEL-56627-4.patch +Patch840: glibc-RHEL-56627-5.patch +Patch841: glibc-RHEL-56627-6.patch +Patch842: glibc-RHEL-56627-7.patch +Patch843: glibc-RHEL-56627-8.patch +Patch844: glibc-RHEL-28119.patch +Patch845: glibc-RHEL-61561.patch +Patch846: glibc-RHEL-83527-1.patch +Patch847: glibc-RHEL-83527-2.patch +Patch848: glibc-RHEL-83007.patch +Patch849: glibc-RHEL-84305.patch +Patch850: glibc-RHEL-80538-1.patch +Patch851: glibc-RHEL-80538-2.patch +Patch852: glibc-RHEL-80538-3.patch +Patch853: glibc-RHEL-80538-4.patch +Patch854: glibc-RHEL-44920-1.patch +Patch855: glibc-RHEL-44920-2.patch +Patch856: glibc-RHEL-44920-3.patch +Patch857: glibc-RHEL-44920-4.patch +Patch858: glibc-RHEL-44920-5.patch +Patch859: glibc-RHEL-44920-6.patch +Patch860: glibc-RHEL-44920-7.patch +Patch861: glibc-RHEL-44920-8.patch +Patch862: glibc-RHEL-46726-1.patch +Patch863: glibc-RHEL-46726-2.patch +Patch864: glibc-RHEL-46726-3.patch +Patch865: glibc-RHEL-46726-4.patch +Patch866: glibc-RHEL-46726-5.patch +Patch867: glibc-RHEL-46726-6.patch +Patch868: glibc-RHEL-46726-7.patch +Patch869: glibc-RHEL-46726-8.patch +Patch870: glibc-RHEL-46726-9.patch +Patch871: glibc-RHEL-46726-10.patch +Patch872: glibc-RHEL-46726-11.patch +Patch873: glibc-RHEL-46726-12.patch +Patch874: glibc-RHEL-46726-13.patch +Patch875: glibc-RHEL-46726-14.patch +Patch876: glibc-RHEL-46726-15.patch +Patch877: glibc-RHEL-46737-1.patch +Patch878: glibc-RHEL-46737-2.patch +Patch879: glibc-RHEL-46737-3.patch +Patch880: glibc-RHEL-61560.patch +Patch881: glibc-RHEL-59712-1.patch +Patch882: glibc-RHEL-59712-2.patch +Patch883: glibc-RHEL-68805-1.patch +Patch884: glibc-RHEL-68805-2.patch +Patch885: glibc-RHEL-68805-3.patch +Patch886: glibc-RHEL-68805-4.patch +Patch887: glibc-RHEL-68805-5.patch +Patch888: glibc-RHEL-68805-6.patch +Patch889: glibc-RHEL-68805-7.patch +Patch890: glibc-RHEL-68805-8.patch +Patch891: glibc-RHEL-68805-9.patch +Patch892: glibc-RHEL-63210.patch +Patch893: glibc-RHEL-65355-1.patch +Patch894: glibc-RHEL-65355-2.patch +Patch895: glibc-RHEL-71922.patch +Patch896: glibc-RHEL-56546.patch +Patch897: glibc-RHEL-61558-1.patch +Patch898: glibc-RHEL-61558-2.patch +Patch899: glibc-RHEL-61558-3.patch +Patch900: glibc-RHEL-61558-4.patch +Patch901: glibc-RHEL-92697-1.patch +Patch902: glibc-RHEL-92697-2.patch +Patch903: glibc-RHEL-92697-3.patch +Patch904: glibc-RHEL-92697-4.patch +Patch905: glibc-RHEL-92697-5.patch +Patch906: glibc-RHEL-92697-6.patch +# glibc-RHEL-92697-7.patch was skipped by accident. +Patch907: glibc-RHEL-92697-8.patch +Patch908: glibc-RHEL-92697-9.patch +Patch909: glibc-RHEL-92095.patch +Patch910: glibc-RHEL-57587.patch +Patch911: glibc-RHEL-72017-1.patch +Patch912: glibc-RHEL-72017-2.patch +Patch913: glibc-RHEL-72017-3.patch +Patch914: glibc-RHEL-72017-4.patch +Patch915: glibc-RHEL-72017-5.patch +Patch916: glibc-RHEL-57671-1.patch +Patch917: glibc-RHEL-57671-2.patch +Patch918: glibc-RHEL-57671-3.patch +Patch919: glibc-RHEL-94634.patch +Patch920: glibc-RHEL-71584.patch +Patch921: glibc-RHEL-50546-1.patch +Patch922: glibc-RHEL-50546-2.patch +Patch923: glibc-RHEL-50546-3.patch +Patch924: glibc-RHEL-50546-4.patch +Patch925: glibc-RHEL-50546-5.patch +Patch926: glibc-RHEL-50546-6.patch +Patch927: glibc-RHEL-57110-1.patch +Patch928: glibc-RHEL-57110-2.patch +Patch929: glibc-RHEL-57110-3.patch +Patch930: glibc-RHEL-57110-4.patch +Patch931: glibc-RHEL-57110-5.patch +Patch932: glibc-RHEL-77082-1.patch +Patch933: glibc-RHEL-77082-2.patch +Patch934: glibc-RHEL-77082-3.patch +Patch935: glibc-RHEL-77082-4.patch +Patch936: glibc-RHEL-77082-5.patch +Patch937: glibc-RHEL-95546-1.patch +Patch938: glibc-RHEL-95546-2.patch +Patch939: glibc-RHEL-95546-3.patch +Patch940: glibc-RHEL-48820-1.patch +Patch941: glibc-RHEL-48820-2.patch +Patch942: glibc-RHEL-48820-3.patch +Patch943: glibc-RHEL-48820-4.patch +Patch944: glibc-RHEL-48820-5.patch +Patch945: glibc-RHEL-48820-6.patch +Patch946: glibc-RHEL-48820-7.patch +Patch947: glibc-RHEL-53909-1.patch +Patch948: glibc-RHEL-53909-2.patch +Patch949: glibc-RHEL-62188-1.patch +Patch950: glibc-RHEL-62188-2.patch +Patch951: glibc-RHEL-24168-1.patch +Patch952: glibc-RHEL-24168-2.patch +Patch953: glibc-RHEL-24168-3.patch +Patch954: glibc-RHEL-24168-4.patch +Patch955: glibc-RHEL-24168-5.patch +Patch956: glibc-RHEL-24168-6.patch +Patch957: glibc-RHEL-24168-7.patch +Patch958: glibc-RHEL-24168-8.patch +Patch959: glibc-RHEL-24168-9.patch +Patch960: glibc-RHEL-24168-10.patch +Patch961: glibc-RHEL-24168-11.patch +Patch962: glibc-RHEL-24168-12.patch +Patch963: glibc-RHEL-24168-13.patch +Patch964: glibc-RHEL-24168-14.patch +Patch965: glibc-RHEL-24168-15.patch +Patch966: glibc-RHEL-24168-16.patch +Patch967: glibc-RHEL-24168-17.patch +Patch968: glibc-RHEL-24168-18.patch +Patch969: glibc-RHEL-24168-19.patch +Patch970: glibc-RHEL-24168-20.patch +Patch971: glibc-RHEL-24168-21.patch +Patch972: glibc-RHEL-24168-22.patch +Patch973: glibc-RHEL-47403-1.patch +Patch974: glibc-RHEL-47403-2.patch +Patch975: glibc-RHEL-47403-3.patch +Patch976: glibc-RHEL-47403-4.patch +Patch977: glibc-RHEL-47403-5.patch +Patch978: glibc-RHEL-47403-6.patch +Patch979: glibc-RHEL-47403-7.patch +Patch980: glibc-RHEL-47403-8.patch +Patch981: glibc-RHEL-47403-9.patch +Patch982: glibc-RHEL-47403-10.patch +Patch983: glibc-RHEL-47403-11.patch +Patch984: glibc-RHEL-95247.patch +Patch985: glibc-RHEL-49549-1.patch +Patch986: glibc-RHEL-49549-2.patch +Patch987: glibc-RHEL-49549-3.patch +Patch988: glibc-RHEL-49549-4.patch +Patch989: glibc-RHEL-49549-5.patch +Patch990: glibc-RHEL-49549-6.patch +Patch991: glibc-RHEL-49549-7.patch +Patch992: glibc-RHEL-49549-8.patch +Patch993: glibc-RHEL-49549-9.patch +Patch994: glibc-RHEL-101986-1.patch +Patch995: glibc-RHEL-101986-2.patch +Patch996: glibc-RHEL-93320-1.patch +Patch997: glibc-RHEL-93320-2.patch +Patch998: glibc-RHEL-93320-3.patch +Patch999: glibc-RHEL-93320-4.patch +Patch1000: glibc-RHEL-93320-5.patch +Patch1001: glibc-RHEL-93320-6.patch +Patch1002: glibc-RHEL-93320-7.patch +Patch1003: glibc-RHEL-93320-8.patch +Patch1004: glibc-RHEL-93320-9.patch +Patch1005: glibc-RHEL-93320-10.patch +Patch1006: glibc-RHEL-93320-11.patch +Patch1007: glibc-RHEL-93320-12.patch +Patch1008: glibc-RHEL-93320-13.patch +Patch1009: glibc-RHEL-93320-14.patch +Patch1010: glibc-RHEL-93320-15.patch +Patch1011: glibc-RHEL-93320-16.patch +Patch1012: glibc-RHEL-93320-17.patch +Patch1013: glibc-RHEL-93320-18.patch +Patch1014: glibc-RHEL-93320-19.patch +Patch1015: glibc-RHEL-103952.patch +Patch1016: glibc-RHEL-105327.patch +Patch1017: glibc-RHEL-74251.patch +Patch1018: glibc-RHEL-105957.patch +Patch1019: glibc-RHEL-50086-1.patch +Patch1020: glibc-RHEL-50086-2.patch +Patch1021: glibc-RHEL-107564.patch +Patch1022: glibc-RHEL-105965.patch +Patch1023: glibc-RHEL-108221.patch +Patch1024: glibc-RHEL-104852-1.patch +Patch1025: glibc-RHEL-104852-2.patch +Patch1026: glibc-RHEL-106206.patch +Patch1027: glibc-RHEL-108220.patch +Patch1028: glibc-RHEL-107518.patch ############################################################################## # Continued list of core "glibc" package information: @@ -1138,6 +1365,9 @@ Provides: rtld(GNU_HASH) # We need libgcc for cancellation support in POSIX threads. Requires: libgcc%{_isa} +# Encourage the package manager to break the libgcc/glibc dependency +# cycle by installing libgcc first. (This is the historic installation order.) +Requires(pre): libgcc%{_isa} Requires: glibc-common = %{version}-%{release} @@ -1153,6 +1383,10 @@ Requires: basesystem # after nss_*.x86_64. (See below for the other ordering.) Recommends: (nss_db(x86-32) if nss_db(x86-64)) Recommends: (nss_hesiod(x86-32) if nss_hesiod(x86-64)) +# Deinstall the glibc32 package if present. This helps tests that do +# not run against the compose. +Conflicts: glibc32 <= %{version}-%{release} +Obsoletes: glibc32 <= %{version}-%{release} %endif # This is for building auxiliary programs like memusage, nscd @@ -1175,6 +1409,10 @@ BuildRequires: audit-libs-devel >= 1.1.3, sed >= 3.95, libcap-devel, gettext BuildRequires: procps-ng, util-linux, gawk BuildRequires: systemtap-sdt-devel +%if %{with testsuite} +BuildRequires: gdb +%endif + %if %{with valgrind} # Require valgrind for smoke testing the dynamic loader to make sure we # have not broken valgrind. @@ -1942,6 +2180,32 @@ that can be installed across architectures. %dnl %%{without bootstrap} %endif +############################################################################## +# glibc32 (only for use in building GCC, not shipped) +############################################################################## +%ifarch x86_64 +%package -n glibc32 +Summary: The GNU libc libraries (32-bit) +Conflicts: glibc(x86-32) +%dnl The gcc package does not use ELF dependencies to install glibc32: +%dnl BuildRequires: (glibc32 or glibc-devel(%{__isa_name}-32)) +%dnl Not generating the ELF dependencies for glibc32 makes it less likely +%dnl that the package is selected by accident over glibc.i686. +AutoReqProv: no + +%description -n glibc32 +This package is only used for internal building of multilib aware +packages, like gcc, due to a technical limitation in the distribution +build environment. Any package which needs both 32-bit and 64-bit +runtimes at the same time must install glibc32 (marked as a 64-bit +package) to access the 32-bit development files during a 64-bit build. + +This package is not supported or intended for use outside of the +distribution build enviroment. Regular users can install both 32-bit and +64-bit runtimes and development files without any problems. + +%endif + ############################################################################## # Prepare for the build. ############################################################################## @@ -1975,6 +2239,12 @@ diff -u \ --label "glibc localedata/SUPPORTED" localedata/SUPPORTED.glibc rm localedata/SUPPORTED.spec localedata/SUPPORTED.glibc +# Prepare for ld.so ABI check +cp %{SOURCE15} . +chmod +x verify-ld-so-abi.sh + +cp %{_sourcedir}/*.baseline . + ############################################################################## # Build glibc... ############################################################################## @@ -2113,14 +2383,12 @@ build() --with-nonshared-cflags="$BuildFlagsNonshared" \ --enable-bind-now \ --build=%{target} \ + ${configure_host} \ --enable-stack-protector=strong \ --enable-tunables \ --enable-systemtap \ ${core_with_options} \ %{?glibc_rtld_early_cflags:--with-rtld-early-cflags=%glibc_rtld_early_cflags} \ -%ifarch x86_64 %{ix86} - --enable-cet \ -%endif %ifarch %{ix86} --disable-multi-arch \ %endif @@ -2142,6 +2410,17 @@ build() popd } +%ifarch x86_64 +# Build for the glibc32 package. +GCC="$GCC -m32" GXX="$GXX -m32" BuildFlags="${BuildFlags/-m64/-m32}" configure_host="--host=i686-linux-gnu" build 32 +%endif + +configure_host="" + +%ifarch x86_64 +configure_host="--enable-cet" +%endif + # Default set of compiler options. build @@ -2184,6 +2463,19 @@ for d in %{glibc_sysroot}%{_libdir}; do done %endif +%ifarch x86_64 +# Install for the glibc32 package. +pushd build-%{target}-32 +%make_build install_root=%{glibc_sysroot} install +popd +pushd %{glibc_sysroot} +rm -rf etc var usr/bin usr/lib/gconv usr/libexec usr/sbin usr/share +rm -f lib/libnss_db* lib/libnss_hesiod* lib/libnsl* usr/lib/libnsl* usr/lib/libnss* +rm usr/lib/libc_malloc_debug.so +strip -g usr/lib/*.o +popd +%endif + # Build and install: pushd build-%{target} %make_build install_root=%{glibc_sysroot} install @@ -2335,11 +2627,15 @@ ln locale-archive locale-archive.real # each langpack ends up retaining a copy. If we convert these to symbolic # links instead, we save ~350K each when they get installed that way. # -# LC_MEASUREMENT and LC_PAPER also have several duplicates but we don't -# bother with these because they are only ~30 bytes each. +# To simplify testing, do this for LC_NAME and LC_NUMERIC as well, +# although the savings are minimal. (It is not clear what is smaller: +# multiple short symbolic links, or one file hard linked into multiple +# directories.) pushd %{glibc_sysroot}/usr/lib/locale -for f in $(find eo *_* -samefile C.utf8/LC_CTYPE); do - rm $f && ln -s '../C.utf8/LC_CTYPE' $f +for k in CTYPE NAME NUMERIC; do + for f in $(find eo *_* -samefile C.utf8/LC_$k); do + rm $f && ln -s ../C.utf8/LC_$k $f + done done popd @@ -2486,7 +2782,17 @@ pushd %{glibc_sysroot}/%{sysroot_prefix} mkdir -p usr/lib usr/lib64 cp -a %{glibc_sysroot}/%{_prefix}/include usr/. +%ifarch x86_64 +# 32-bit headers for glibc32 don't go in the sysroot. +rm usr/include/gnu/*-32.h +%endif for lib in lib lib64; do +%ifarch x86_64 + if [ "$lib" = "lib" ]; then + # 32-bit libraries built for glibc32 don't go in the sysroot. + continue + fi +%endif for pfx in "" %{_prefix}/; do if test -d %{glibc_sysroot}/$pfx$lib ; then # Implement UsrMove: everything goes into usr/$lib. Only @@ -2707,6 +3013,11 @@ $run_ldso /usr/bin/valgrind --error-exitcode=1 \ %endif %endif +# Verify ld.so ABI. +if test -f "ld-so-abi-%{_arch}.baseline" ; then + ./verify-ld-so-abi.sh %{_arch} %{glibc_sysroot}%{_prefix}%{glibc_ldso} +fi + %endif @@ -3106,7 +3417,214 @@ update_gconv_modules_cache () %{sysroot_prefix} %endif +%ifarch x86_64 +%files -n glibc32 +%{_includedir}/gnu/lib-names-32.h +%{_includedir}/gnu/stubs-32.h +%{_prefix}/lib/*.a +%{_prefix}/lib/*.o +%{_prefix}/lib/*.so* +%{_prefix}/lib/audit/* +%endif + %changelog +* Tue Aug 19 2025 Arjun Shankar - 2.34-231 +- Define __libc_tsd_CTYPE_* TLS variables as initial-exec (RHEL-107518) + +* Tue Aug 19 2025 Arjun Shankar - 2.34-230 +- elf: Remove a duplicate test related Makefile target (RHEL-108220) + +* Tue Aug 19 2025 Arjun Shankar - 2.34-229 +- inet: Fix namespace pollution in fortification header (RHEL-106206) + +* Mon Aug 11 2025 Florian Weimer - 2.34-228 +- Handle load segment gaps in _dl_find_object (RHEL-104852) + +* Mon Aug 11 2025 Florian Weimer - 2.34-227 +- Disable failing subtest of elf/tst-dl_find_object-static (RHEL-108221) + +* Thu Aug 07 2025 Florian Weimer - 2.34-226 +- Prevent inlining of _dl_debug_state (RHEL-105965) + +* Tue Aug 05 2025 Florian Weimer - 2.34-225 +- Add definition of _dl_find_object to libc.a (RHEL-107564) + +* Thu Jul 31 2025 Frédéric Bérat - 2.34-224 +- Add support for new IBM Z17 hardware in glibc (RHEL-50086) + +* Wed Jul 30 2025 Frédéric Bérat - 2.34-223 +- Add ld-so-abi-check + +* Wed Jul 30 2025 Florian Weimer - 2.34-222 +- Build glibc32 from the main glibc package (RHEL-106470) + +* Tue Jul 29 2025 Florian Weimer - 2.34-221 +- Use Requires(pre): libgcc%%{_isa} to break libgcc cycle (RHEL-106166) + +* Mon Jul 28 2025 Frédéric Bérat - 2.34-220 +- Revert downstream changes as `_dl_find_object` has been backported + (RHEL-105957) + +* Fri Jul 25 2025 Frédéric Bérat - 2.34-219 +- The dynamic linker no longer crashed when processing specific symbol versions. + (RHEL-74251) + +* Fri Jul 25 2025 Frédéric Bérat - 2.34-218 +- CVE-2025-8058: Double free in regcomp (RHEL-105327) + +* Wed Jul 23 2025 Florian Weimer - 2.34-217 +- iconv: Do not create executable output files (RHEL-103952) + +* Mon Jul 14 2025 Benjamin Herrenschmidt - 2.34-216 +- Backport GLIBC_2.35 libc symbols incl. _dl_find_object (RHEL-93320) + +* Thu Jul 10 2025 Arjun Shankar - 2.34-215 +- Extend struct r_debug to support multiple namespaces (RHEL-101986) + +* Wed Jul 09 2025 Arjun Shankar - 2.34-214 +- Signal la_objopen for ld.so with dlmopen (RHEL-49549) + +* Wed Jul 09 2025 Arjun Shankar - 2.34-213 +- Reduce spurious rebuilds while running tests (RHEL-95247) + +* Tue Jul 08 2025 Frédéric Bérat - 2.34-212 +- Prevented `ld.so` from asserting and crashing during audited library loads. + (RHEL-47403) + +* Tue Jul 08 2025 Arjun Shankar - 2.34-211 +- Improve qsort implementation (RHEL-24168) + +* Tue Jul 01 2025 Arjun Shankar - 2.34-210 +- Add new tests for clock_nanosleep (RHEL-62188) + +* Tue Jul 01 2025 Arjun Shankar - 2.34-209 +- Add new test for if_nameindex and if_indextoname (RHEL-53909) + +* Thu Jun 26 2025 Frédéric Bérat - 2.34-208 +- Switch to main malloc after final ld.so self-relocation. (RHEL-48820) + +* Tue Jun 24 2025 Frédéric Bérat - 2.34-207 +- CVE-2025-5702 glibc: Vector register overwrite bug in glibc (RHEL-95546) + +* Wed Jun 18 2025 Florian Weimer - 2.34-206 +- langpacks: Use symlinks for LC_NAME, LC_NUMERIC files if possible (RHEL-97434) + +* Wed Jun 11 2025 Frédéric Bérat - 2.34-205 +- Add testcases for abs(), labs(), and llabs() functions. (RHEL-77082) + +* Wed Jun 11 2025 Arjun Shankar - 2.34-204 +- manual: Document error codes of several socket functions (RHEL-57110) + +* Thu Jun 05 2025 Arjun Shankar - 2.34-203 +- manual: Document several *at file system interface functions (RHEL-50546) + +* Wed Jun 04 2025 Frédéric Bérat - 2.34-202 +- x86: Avoid integer truncation with large cache sizes (RHEL-71584) + +* Wed Jun 04 2025 Frédéric Bérat - 2.34-201 +- Report error if setaffinity wrapper fails (RHEL-94634) + +* Tue Jun 03 2025 Florian Weimer - 2.34-200 +- manual: Document the clock_nanosleep function (RHEL-57671) + +* Tue May 27 2025 Frédéric Bérat - 2.34-199 +- Ensure fallback initialization of ctype TLS data pointers to fix segfaults in + programs using dlmopen or auditors (RHEL-72017) + +* Mon May 26 2025 Frédéric Bérat - 2.34-198 +- Document additional CLOCK_* values in glibc manual (RHEL-57587) + +* Thu May 22 2025 Frédéric Bérat - 2.34-197 +- Prevent `,ccs=` from being treated as individual mode flags in `fopen` calls + (RHEL-92095) + +* Thu May 22 2025 Florian Weimer - 2.34-196 +- SGID test enhancements (RHEL-92697) + +* Wed May 21 2025 Florian Weimer - 2.34-195 +- CVE-2025-4802: static setuid dlopen may search LD_LIBRARY_PATH (RHEL-92697) + +* Mon May 19 2025 DJ Delorie - 2.34-194 +- manual: Improve the documentation of the Thread APIs (RHEL-61558) + +* Fri May 16 2025 Florian Weimer - 2.34-193 +- manual: Clarifications for listing directories (RHEL-56546) + +* Thu May 15 2025 Patsy Griffin - 2.34-192 +- elf: Keep using minimal malloc after early DTV resize (RHEL-71922) + +* Wed May 14 2025 Frédéric Bérat - 2.34-191 +- Improve POSIX semaphore documentation (RHEL-65355) + +* Wed May 14 2025 Frédéric Bérat - 2.34-190 +- Add test case for fflush (RHEL-63210) + +* Mon May 05 2025 Frédéric Bérat - 2.34-189 +- Resolve stdio flushing issues (RHEL-68805) + +* Tue Apr 22 2025 Patsy Griffin - 2.34-188 +- libio: Fix a deadlock after fork in popen +- libio: Correctly link tst-popen-fork against libpthread (RHEL-59712) + +* Tue Apr 8 2025 Florian Weimer - 2.34-187 +- Document behavior of sched_yield with SCHED_RR and SCHED_OTHER (RHEL-61560) + +* Tue Apr 8 2025 Florian Weimer - 2.34-186 +- Increase reliability of stdio-common/tst-setvbuf2 (RHEL-46737) + +* Wed Apr 2 2025 DJ Delorie - 2.34-185 +- Extend setvbuf testing (RHEL-46737) + +* Wed Apr 2 2025 Florian Weimer - 2.34-184 +- Extend scanf testing (RHEL-46726) + +* Mon Mar 31 2025 Frédéric Bérat - 2.34-183 +- Fortify inet_ntop and inet_pton (RHEL-44920) + +* Thu Mar 27 2025 Arjun Shankar - 2.34-182 +- Improve printf fortification against %n in writeable memory (RHEL-80538) + +* Thu Mar 20 2025 Arjun Shankar - 2.34-181 +- Make test tst-cpuclock2 run more reliably (RHEL-84305) + +* Fri Mar 14 2025 Arjun Shankar - 2.34-180 +- Fix a race condition in a threaded fopen test (RHEL-83007) + +* Fri Mar 14 2025 Arjun Shankar - 2.34-179 +- assert: Add test for CVE-2025-0395 (RHEL-83527) + +* Fri Mar 14 2025 Arjun Shankar - 2.34-178 +- nptl: extend test coverage for sched_yield (RHEL-61561) + +* Fri Mar 14 2025 Arjun Shankar - 2.34-177 +- Fix missing rseq acceleration for sched_getcpu (RHEL-28119) + +* Wed Mar 12 2025 Florian Weimer - 2.34-176 +- Add sched_setattr, sched_getattr, pthread_gettid_np (RHEL-56627, RHEL-83017) + +* Mon Mar 10 2025 Tulio Magno Quites Machado Filho - 2.34-175 +- Backport fwrite tests and a fix for BZ 29459 (RHEL-55471) + +* Fri Mar 07 2025 Arjun Shankar - 2.34-174 +- nptl: Keep __rseq_size consistent (RHEL-65280) + +* Thu Mar 06 2025 Arjun Shankar - 2.34-173 +- Make __rseq_size useful for feature detection (RHEL-65280) + +* Mon Mar 03 2025 Frederic Berat - 2.34-172 +- Backport: support: Add support_next_to_fault_before support function + (RHEL-61569) +- Backport: posix: Rewrite cpuset tests (RHEL-61569) + +* Mon Mar 03 2025 Frederic Berat - 2.34-171 +- Backport: Add new tests for fopen (RHEL-46729) + +* Fri Feb 28 2025 DJ Delorie - 2.34-170 +- manual: Update signal descriptions (RHEL-67593) + +* Fri Feb 14 2025 Tulio Magno Quites Machado Filho - 2.34-169 +- Backport documentation for time functions (RHEL-57585) + * Thu Feb 13 2025 Florian Weimer - 2.34-168 - Fix transliteration regression in iconv tool (RHEL-71547)